lib/fog/oraclecloud/compute.rb in fog-oraclecloud-0.1.12 vs lib/fog/oraclecloud/compute.rb in fog-oraclecloud-0.1.13
- old
+ new
@@ -1,185 +1,185 @@
-module Fog
- module Compute
- class OracleCloud < Fog::Service
- requires :oracle_username, :oracle_password, :oracle_domain, :oracle_compute_api
-
- model_path 'fog/oraclecloud/models/compute'
- model :security_application
- collection :security_applications
-
- model :security_rule
- collection :security_rules
-
- model :security_list
- collection :security_lists
-
- model :image
- collection :images
-
- model :image_list
- collection :image_lists
-
- model :instance
- collection :instances
-
- model :ssh_key
- collection :ssh_keys
-
- model :object_plan
- collection :object_plans
- model :orchestration
- collection :orchestrations
-
- model :volume
- collection :volumes
-
- request_path 'fog/oraclecloud/requests/compute'
- request :list_security_applications
- request :create_security_application
- request :delete_security_application
- request :get_security_application
-
- request :list_security_rules
- request :create_security_rule
- request :delete_security_rule
- request :get_security_rule
-
- request :list_security_lists
-
- request :get_image
- request :create_image
- request :delete_image
- request :list_images
-
- request :list_image_lists
- request :get_image_list
- request :create_image_list
- request :update_image_list
- request :delete_image_list
-
- request :list_instances
- request :get_instance
- request :create_instance
- request :delete_instance
-
- request :list_ssh_keys
- request :get_ssh_key
- request :create_ssh_key
- request :delete_ssh_key
- request :update_ssh_key
-
- request :get_orchestration
- request :list_orchestrations
- request :create_orchestration
- request :update_orchestration
- request :delete_orchestration
- request :start_orchestration
- request :stop_orchestration
-
- request :list_volumes
- request :create_volume
-
- class Real
-
- def initialize(options={})
- @username = options[:oracle_username]
- @password = options[:oracle_password]
- @identity_domain = options[:oracle_domain]
- @api_endpoint = options[:oracle_compute_api]
-
- @connection = Fog::XML::Connection.new(@api_endpoint)
-
- # Get authentication token
- authenticate
- end
-
- def authenticate()
- begin
- response = @connection.request({
- :expects => 204,
- :method => 'POST',
- :path => "/authenticate/",
- :headers => {
- 'Content-Type' => 'application/oracle-compute-v3+json'
- },
- :body => Fog::JSON.encode({
- 'user' => "/Compute-#{@identity_domain}/#{@username}",
- 'password'=> @password
- })
- })
- rescue Excon::Errors::HTTPStatusError => error
- error
- end
- if response.nil? || !response.headers['Set-Cookie'] then
- raise Error.new('Could not authenticate to Compute Cloud Service. Check your athentication details in your config')
- end
- @auth_cookie = response.headers['Set-Cookie']
- end
-
- def request(params, parse_json = true, &block)
- begin
- response = @connection.request(params.merge!({
- :headers => {
- 'Cookie' => @auth_cookie
- }.merge!(params[:headers] || {})
- }), &block)
- rescue Excon::Errors::HTTPStatusError => error
- raise case error
- when Excon::Errors::NotFound
- Fog::Compute::OracleCloud::NotFound.slurp(error)
- when Excon::Errors::Conflict
- data = Fog::JSON.decode(error.response.body)
- raise Error.new(data['message'])
- else
- error
- end
- end
- if !response.body.empty? && parse_json
- response.body = Fog::JSON.decode(response.body)
- end
- response
- end
- end
-
- class Mock
- def initialize(options={})
- @username = options[:oracle_username]
- @password = options[:oracle_password]
- @identity_domain = options[:oracle_domain]
- @api_endpoint = options[:oracle_compute_api]
-
- end
-
- def self.data
- @data ||= {
- :instances => {},
- :sshkeys => {},
- :orchestrations => {},
- :image_lists => {
- "/oracle/public/Oracle_Linux_7" => {
- "name" => "/oracle/public/Oracle_Linux_7",
- "default" => 1,
- "description" => "Oracle Linux 7",
- "entries" =>[{
- "attributes" => {},
- "version" => 1,
- "machineimages" => ["/oracle/public/OracleLinux7"],
- "uri" => "https://@api_endpoint:443/imagelist/oracle/public/OracleLinux7"
- }]
- }
- },
- :deleted_at => {}
- }
- end
-
- def self.reset
- @data = nil
- end
-
- def data
- self.class.data
- end
- end
- end
- end
+module Fog
+ module Compute
+ class OracleCloud < Fog::Service
+ requires :oracle_username, :oracle_password, :oracle_domain, :oracle_compute_api
+
+ model_path 'fog/oraclecloud/models/compute'
+ model :security_application
+ collection :security_applications
+
+ model :security_rule
+ collection :security_rules
+
+ model :security_list
+ collection :security_lists
+
+ model :image
+ collection :images
+
+ model :image_list
+ collection :image_lists
+
+ model :instance
+ collection :instances
+
+ model :ssh_key
+ collection :ssh_keys
+
+ model :object_plan
+ collection :object_plans
+ model :orchestration
+ collection :orchestrations
+
+ model :volume
+ collection :volumes
+
+ request_path 'fog/oraclecloud/requests/compute'
+ request :list_security_applications
+ request :create_security_application
+ request :delete_security_application
+ request :get_security_application
+
+ request :list_security_rules
+ request :create_security_rule
+ request :delete_security_rule
+ request :get_security_rule
+
+ request :list_security_lists
+
+ request :get_image
+ request :create_image
+ request :delete_image
+ request :list_images
+
+ request :list_image_lists
+ request :get_image_list
+ request :create_image_list
+ request :update_image_list
+ request :delete_image_list
+
+ request :list_instances
+ request :get_instance
+ request :create_instance
+ request :delete_instance
+
+ request :list_ssh_keys
+ request :get_ssh_key
+ request :create_ssh_key
+ request :delete_ssh_key
+ request :update_ssh_key
+
+ request :get_orchestration
+ request :list_orchestrations
+ request :create_orchestration
+ request :update_orchestration
+ request :delete_orchestration
+ request :start_orchestration
+ request :stop_orchestration
+
+ request :list_volumes
+ request :create_volume
+
+ class Real
+
+ def initialize(options={})
+ @username = options[:oracle_username]
+ @password = options[:oracle_password]
+ @identity_domain = options[:oracle_domain]
+ @api_endpoint = options[:oracle_compute_api]
+
+ @connection = Fog::XML::Connection.new(@api_endpoint)
+
+ # Get authentication token
+ authenticate
+ end
+
+ def authenticate()
+ begin
+ response = @connection.request({
+ :expects => 204,
+ :method => 'POST',
+ :path => "/authenticate/",
+ :headers => {
+ 'Content-Type' => 'application/oracle-compute-v3+json'
+ },
+ :body => Fog::JSON.encode({
+ 'user' => "/Compute-#{@identity_domain}/#{@username}",
+ 'password'=> @password
+ })
+ })
+ rescue Excon::Errors::HTTPStatusError => error
+ error
+ end
+ if response.nil? || !response.headers['Set-Cookie'] then
+ raise Error.new('Could not authenticate to Compute Cloud Service. Check your athentication details in your config')
+ end
+ @auth_cookie = response.headers['Set-Cookie']
+ end
+
+ def request(params, parse_json = true, &block)
+ begin
+ response = @connection.request(params.merge!({
+ :headers => {
+ 'Cookie' => @auth_cookie
+ }.merge!(params[:headers] || {})
+ }), &block)
+ rescue Excon::Errors::HTTPStatusError => error
+ raise case error
+ when Excon::Errors::NotFound
+ Fog::Compute::OracleCloud::NotFound.slurp(error)
+ when Excon::Errors::Conflict
+ data = Fog::JSON.decode(error.response.body)
+ raise Error.new(data['message'])
+ else
+ error
+ end
+ end
+ if !response.body.empty? && parse_json
+ response.body = Fog::JSON.decode(response.body)
+ end
+ response
+ end
+ end
+
+ class Mock
+ def initialize(options={})
+ @username = options[:oracle_username]
+ @password = options[:oracle_password]
+ @identity_domain = options[:oracle_domain]
+ @api_endpoint = options[:oracle_compute_api]
+
+ end
+
+ def self.data
+ @data ||= {
+ :instances => {},
+ :sshkeys => {},
+ :orchestrations => {},
+ :image_lists => {
+ "/oracle/public/Oracle_Linux_7" => {
+ "name" => "/oracle/public/Oracle_Linux_7",
+ "default" => 1,
+ "description" => "Oracle Linux 7",
+ "entries" =>[{
+ "attributes" => {},
+ "version" => 1,
+ "machineimages" => ["/oracle/public/OracleLinux7"],
+ "uri" => "https://@api_endpoint:443/imagelist/oracle/public/OracleLinux7"
+ }]
+ }
+ },
+ :deleted_at => {}
+ }
+ end
+
+ def self.reset
+ @data = nil
+ end
+
+ def data
+ self.class.data
+ end
+ end
+ end
+ end
end
\ No newline at end of file