lib/fog/oraclecloud/requests/database/create_instance.rb in fog-oraclecloud-0.1.12 vs lib/fog/oraclecloud/requests/database/create_instance.rb in fog-oraclecloud-0.1.13

- old
+ new

@@ -1,101 +1,101 @@ -module Fog - module OracleCloud - class Database - class Real - - def create_instance(config, options) - parameters = options.select{|key, value| [:admin_password, :backup_destination, :charset, :cloud_storage_container, :cloud_storage_pwd, :cloud_storage_user, :cloud_storage_if_missing, :disaster_recovery, :failover_database, :golden_gate, :is_rac, :ncharset, :pdb_name, :sid, :timezone, :usable_storage, :create_storage_container_if_missing].include?(key)} - params = { - 'type' => 'db' - } - parameters.each { |key, value| - if !value.nil? then - if key == :cloud_storage_container then - if !value.start_with?("Storage-") then - value = "Storage-#{@identity_domain}/#{value}" - end - end - new_key = key.to_s.split('_').collect(&:capitalize).join - new_key = new_key[0,1].downcase + new_key[1..-1] - params[new_key] = value - end - } - body_data = { - 'serviceName' => config[:service_name], - 'version' => config[:version], - 'level' => config[:level], - 'edition' => config[:edition], - 'subscriptionType' => config[:subscription_type], - 'description' => config[:description], - 'shape' => config[:shape], - 'vmPublicKeyText' => config[:ssh_key], - 'parameters' => [params] - } - body_data = body_data.reject {|key, value| value.nil?} - - request( - :method => 'POST', - :expects => 202, - :path => "/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}", - :body => Fog::JSON.encode(body_data), - #:headers => { - # 'Content-Type'=>'application/vnd.com.oracle.oracloud.provisioning.Service+json' - #} - ) - end - - end - - class Mock - def create_instance(config, options) - response = Excon::Response.new - job_id = rand(10000).to_s - data = { - 'serviceName' => config[:service_name], - 'shape' => config[:shape], - 'edition' => config[:edition], - 'version' => config[:version], - 'status' => 'Starting Provisioning', # Not a valid status, but we use it to simulate the time that the Oracle Cloud takes to add this to the list of instances - 'charset' => 'AL32UTF8', - 'ncharset' => 'AL16UTF16', - 'pdbName' => 'pdb1', # Note this is only valid for 12c instances. Too hard to fix for mocking - 'timezone' => 'UTC', - 'creation_job_id' => job_id, - 'totalSharedStorage' => options[:usable_storage], - 'domainName' => @identity_domain, - 'creation_date'=>Time.now.strftime('%Y-%b-%dT%H:%M:%S'), - 'serviceType'=>'DBaaS', - 'creator'=>@username - } - .merge(config.select {|key, value| [:description, :level, :subscription_type].include?(key) }) - .merge(options.select {|key, value| [:backup_destination, :failover_database, :cloud_storage_container, :is_rac, :ncharset, :pdb_name, :sid, :timezone].include?(key) }) - - self.data[:instances][config[:service_name]] = data - self.data[:created_at][config[:service_name]] = Time.now - - # Also create some compute nodes - node = { - "status"=>"Running", - "creation_job_id"=>"5495118", - "creation_time"=>"Tue Jun 28 23:52:45 UTC 2016", - "created_by"=>"dbaasadmin", - "shape"=>"oc4", - "sid"=>"ORCL1", - "pdbName"=>"PDB1", - "listenerPort"=> 1521, - "connect_descriptor"=>"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=db12c-xp-rac2)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=db12c-xp-rac1)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVICE_NAME=PDB1.usexample.oraclecloud.internal)))", - "connect_descriptor_with_public_ip"=>"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=129.144.23.176)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=129.144.23.112)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVICE_NAME=PDB1.usexample.oraclecloud.internal)))", - "initialPrimary"=> true, - "storageAllocated"=> 97280, - "reservedIP"=>"129.144.23.112", - "hostname"=>"db12c-xp-rac1" - } - self.data[:servers][config[:service_name]] = [node] - response.headers['Location'] = "https://dbaas.oraclecloud.com:443/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/status/create/job/#{job_id}" - response.status = 202 - response - end - end - end - end -end +module Fog + module OracleCloud + class Database + class Real + + def create_instance(config, options) + parameters = options.select{|key, value| [:admin_password, :backup_destination, :charset, :cloud_storage_container, :cloud_storage_pwd, :cloud_storage_user, :cloud_storage_if_missing, :disaster_recovery, :failover_database, :golden_gate, :is_rac, :ncharset, :pdb_name, :sid, :timezone, :usable_storage, :create_storage_container_if_missing].include?(key)} + params = { + 'type' => 'db' + } + parameters.each { |key, value| + if !value.nil? then + if key == :cloud_storage_container then + if !value.start_with?("Storage-") then + value = "Storage-#{@identity_domain}/#{value}" + end + end + new_key = key.to_s.split('_').collect(&:capitalize).join + new_key = new_key[0,1].downcase + new_key[1..-1] + params[new_key] = value + end + } + body_data = { + 'serviceName' => config[:service_name], + 'version' => config[:version], + 'level' => config[:level], + 'edition' => config[:edition], + 'subscriptionType' => config[:subscription_type], + 'description' => config[:description], + 'shape' => config[:shape], + 'vmPublicKeyText' => config[:ssh_key], + 'parameters' => [params] + } + body_data = body_data.reject {|key, value| value.nil?} + + request( + :method => 'POST', + :expects => 202, + :path => "/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}", + :body => Fog::JSON.encode(body_data), + #:headers => { + # 'Content-Type'=>'application/vnd.com.oracle.oracloud.provisioning.Service+json' + #} + ) + end + + end + + class Mock + def create_instance(config, options) + response = Excon::Response.new + job_id = rand(10000).to_s + data = { + 'serviceName' => config[:service_name], + 'shape' => config[:shape], + 'edition' => config[:edition], + 'version' => config[:version], + 'status' => 'Starting Provisioning', # Not a valid status, but we use it to simulate the time that the Oracle Cloud takes to add this to the list of instances + 'charset' => 'AL32UTF8', + 'ncharset' => 'AL16UTF16', + 'pdbName' => 'pdb1', # Note this is only valid for 12c instances. Too hard to fix for mocking + 'timezone' => 'UTC', + 'creation_job_id' => job_id, + 'totalSharedStorage' => options[:usable_storage], + 'domainName' => @identity_domain, + 'creation_date'=>Time.now.strftime('%Y-%b-%dT%H:%M:%S'), + 'serviceType'=>'DBaaS', + 'creator'=>@username + } + .merge(config.select {|key, value| [:description, :level, :subscription_type].include?(key) }) + .merge(options.select {|key, value| [:backup_destination, :failover_database, :cloud_storage_container, :is_rac, :ncharset, :pdb_name, :sid, :timezone].include?(key) }) + + self.data[:instances][config[:service_name]] = data + self.data[:created_at][config[:service_name]] = Time.now + + # Also create some compute nodes + node = { + "status"=>"Running", + "creation_job_id"=>"5495118", + "creation_time"=>"Tue Jun 28 23:52:45 UTC 2016", + "created_by"=>"dbaasadmin", + "shape"=>"oc4", + "sid"=>"ORCL1", + "pdbName"=>"PDB1", + "listenerPort"=> 1521, + "connect_descriptor"=>"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=db12c-xp-rac2)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=db12c-xp-rac1)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVICE_NAME=PDB1.usexample.oraclecloud.internal)))", + "connect_descriptor_with_public_ip"=>"(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=129.144.23.176)(PORT=1521))(ADDRESS=(PROTOCOL=TCP)(HOST=129.144.23.112)(PORT=1521))(LOAD_BALANCE=ON)(FAILOVER=ON))(CONNECT_DATA=(SERVICE_NAME=PDB1.usexample.oraclecloud.internal)))", + "initialPrimary"=> true, + "storageAllocated"=> 97280, + "reservedIP"=>"129.144.23.112", + "hostname"=>"db12c-xp-rac1" + } + self.data[:servers][config[:service_name]] = [node] + response.headers['Location'] = "https://dbaas.oraclecloud.com:443/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/status/create/job/#{job_id}" + response.status = 202 + response + end + end + end + end +end