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
 | 
