62 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			62 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | # encoding: UTF-8 | ||
|  | require "json" | ||
|  | require "routes/v2.0/base_routes" | ||
|  | require "providers/provider_factory" | ||
|  | 
 | ||
|  | module Version2_0 | ||
|  |   class GroupRoutes < BaseRoutes | ||
|  | 
 | ||
|  |     def initialize wrapper | ||
|  |       super wrapper | ||
|  |       puts "Group routes initialized" | ||
|  |     end | ||
|  | 
 | ||
|  |     # Get security groups for :provider | ||
|  |     # | ||
|  |     # * *Request* | ||
|  |     #   - method : GET | ||
|  |     #   - headers : | ||
|  |     #     - Accept: application/json | ||
|  |     # | ||
|  |     # * *Returns* : | ||
|  |     #   - ec2: | ||
|  |     #   { | ||
|  |     #     "default": { | ||
|  |     #       "description": "default group", | ||
|  |     #       "id": "sg-565cf93f", | ||
|  |     #       "rules": [ | ||
|  |     #         { | ||
|  |     #           "protocol": "tcp", | ||
|  |     #           "from": 22, | ||
|  |     #           "to": 22, | ||
|  |     #           "cidr": "0.0.0.0/0" | ||
|  |     #         } | ||
|  |     #       ] | ||
|  |     #     } | ||
|  |     #   } | ||
|  |     #   - openstack: | ||
|  |     #   { | ||
|  |     #     "default": { | ||
|  |     #       "description": "default", | ||
|  |     #       "rules": [ | ||
|  |     #         { | ||
|  |     #           "protocol": null, | ||
|  |     #           "from": null, | ||
|  |     #           "to": null, | ||
|  |     #           "cidr": null | ||
|  |     #         } | ||
|  |     #       ] | ||
|  |     #     } | ||
|  |     #   } | ||
|  |     # TODO: vpc support for ec2 | ||
|  |     get "/groups/:provider" do | ||
|  |       check_headers :accept | ||
|  |       check_privileges("group", "r") | ||
|  |       check_provider(params[:provider]) | ||
|  |       p = ::Version2_0::Provider::ProviderFactory.get params[:provider] | ||
|  |       json p.groups(params) | ||
|  |     end | ||
|  | 
 | ||
|  |   end | ||
|  | end |