class Fog::OracleCloud::Java::Mock
Public Class Methods
data()
click to toggle source
# File lib/fog/oraclecloud/java.rb, line 103 def self.data @data ||= { :instances => {}, :servers => {}, :access_rules => {}, :maintenance_at => {}, :deleted_at => {}, :created_at => {} } end
new(options={})
click to toggle source
# File lib/fog/oraclecloud/java.rb, line 84 def initialize(options={}) @username = options[:oracle_username] @password = options[:oracle_password] @identity_domain = options[:oracle_domain] @region_url = options[:oracle_region] == 'emea' ? 'https://jcs.emea.oraclecloud.com' : 'https://jaas.oraclecloud.com' end
reset()
click to toggle source
# File lib/fog/oraclecloud/java.rb, line 114 def self.reset @data = nil end
Public Instance Methods
create_access_rule(service_name, params)
click to toggle source
# File lib/fog/oraclecloud/requests/java/create_access_rule.rb, line 16 def create_access_rule(service_name, params) response = Excon::Response.new params.delete(:service_name) self.data[:access_rules][service_name] << params.collect{|k,v| [k.to_s, v]}.to_h response.status = 202 response end
create_instance(config, options)
click to toggle source
# File lib/fog/oraclecloud/requests/java/create_instance.rb, line 32 def create_instance(config, options) response = Excon::Response.new ip = '192.168.1.1' data = { 'status' => 'In Progress', 'compute_site_name' => 'EM002_Z11', 'content_url' => "http://#{ip}", 'created_by' => @username, 'creation_job_id' => Random.rand(100000), 'creation_time'=> Time.now.strftime('%Y-%b-%dT%H:%M:%S'), 'db_info' => "#{options[:dbServiceName]}:1521/#{options[:pdbName] || 'PDB1'}.#{@identity_domain}.oraclecloud.internal", 'deletion_job_id' => 0, 'domainMode'=>'DEVELOPMENT', 'fmw_control_url'=> "https://#{ip}:#{options[:adminPort] || 7002}/em", 'last_modified_time'=> Time.now.strftime('%Y-%b-%dT%H:%M:%S'), 'num_ip_reservations'=> 2, # Can't rely on this number in mocking mode 'num_nodes'=>options[:managedServerCount], 'otd_provisioned'=>options[:provisionOTD] || 'no', 'psm_plugin_version'=>"16.3.5-532", 'secure_content_url' => "https://#{ip}", 'service_type'=>'jaas', 'service_uri'=>"#{@region_url}/paas/service/dbcs/api/v1.1/instances/#{@identity_domain}/#{config[:serviceName]}", 'wls_admin_url'=> "https://#{ip}:#{options[:adminPort] || 7002}/console", 'wls_deployment_channel_port' => options[:deploymentChannelPort] || 9001, 'wlsVersion'=>'12.2.1.0.160419' } .merge(config.select {|key, value| [:serviceName, :description, :level, :subscriptionType].include?(key) }) .merge(options.select {|key, value| [:clusterName, :dbServiceName, :edition, :shape, :version].include?(key) }).collect{|k,v| [k.to_s, v]}.to_h if data['clusterName'].nil? then data['clusterName'] = data['serviceName'][0,8] + "_cluster" end if data['domainName'].nil? then data['domainName'] = data['serviceName'][0,8] + "_domain" end self.data[:instances][config[:serviceName]] = data self.data[:created_at][config[:serviceName]] = Time.now server = { "clusterName": data['clusterName'] || data['serviceName'][0,8] + "_cluster", "name": "#{data['serviceName'][0,8]}_server_1", "shape": data['shape'], "nodeType": "WLS", "isAdmin": true, "hostname": ip, "status": "Ready", "storageAllocated": 74752, "creationDate": Time.now.strftime('%Y-%b-%dT%H:%M:%S') } self.data[:servers][data['serviceName']] = {} self.data[:servers][data['serviceName']][server[:name]] = server # Add default access rules access_rules = [{ "ruleName" => "sys_ms2db_dblistener", "description"=> "DO NOT MODIFY=> Permit listener connection to database from managed servers", "status"=> "enabled", "source"=> "WLS_MANAGED_SERVER", "destination"=> "dbaas=>nbnws=>DB", "ports"=> "1521", "protocol"=> "tcp", "ruleType"=> "SYSTEM" },{ "ruleName"=> "sys_ms2db_ssh", "description"=> "DO NOT MODIFY=> Permit managed servers to ssh to db", "status"=> "enabled", "source"=> "WLS_MANAGED_SERVER", "destination"=> "dbaas=>nbnws=>DB", "port"=> "22", "portocol"=> "tcp", "ruleType"=> "SYSTEM" },{ "ruleName"=> "ora_p2admin_ssh", "description"=> "DO NOT MODIFY=> Permit public ssh to admin server", "status"=> "enabled", "source"=> "PUBLIC-INTERNET", "destination"=> "WLS_ADMIN_SERVER", "port"=> "22", "portocol"=> "tcp", "ruleType"=> "DEFAULT" },{ "ruleName"=> "ora_p2admin_ahttps", "description"=> "DO NOT MODIFY=> Permit public to https to admin server", "status"=> "enabled", "source"=> "PUBLIC-INTERNET", "destination"=> "WLS_ADMIN_SERVER", "port"=> "7002", "portocol"=> "tcp", "ruleType"=> "DEFAULT" },{ "ruleName"=> "sys_infra2admin_ssh", "description"=> "DO NOT MODIFY=> Permit PSM to ssh to admin server", "status"=> "enabled", "source"=> "PAAS-INFRA", "destination"=> "WLS_ADMIN_SERVER", "port"=> "22", "portocol"=> "tcp", "ruleType"=> "DEFAULT" },{ "ruleName"=> "ora_p2ms_chttp", "description"=> "Permit http connection to managed servers from public", "status"=> "enabled", "source"=> "PUBLIC-INTERNET", "destination"=> "WLS_ADMIN_SERVER", "port"=> "80", "portocol"=> "tcp", "ruleType"=> "DEFAULT" },{ "ruleName"=> "ora_p2ms_chttps", "description"=> "Permit https connection to managed servers from public", "status"=> "enabled", "source"=> "PUBLIC-INTERNET", "destination"=> "WLS_MANAGED_SERVER", "port"=> "443", "portocol"=> "tcp", "ruleType"=> "DEFAULT" }] self.data[:access_rules][data['serviceName']] = access_rules response.status = 202 response end
data()
click to toggle source
# File lib/fog/oraclecloud/java.rb, line 118 def data self.class.data end
delete_access_rule(service_name, rule_name)
click to toggle source
# File lib/fog/oraclecloud/requests/java/delete_access_rule.rb, line 21 def delete_access_rule(service_name, rule_name) response = Excon::Response.new rule = self.data[:access_rules][service_name].detect { |r| r['ruleName'] === rule_name } rule['status'] = 'disabled' self.data[:access_rules][service_name].delete_if { |r| r['ruleName'] === rule_name } response.body = { 'rule' => rule } response.status = 202 response end
delete_instance(name, dba_name, dba_password, options={})
click to toggle source
# File lib/fog/oraclecloud/requests/java/delete_instance.rb, line 27 def delete_instance(name, dba_name, dba_password, options={}) response = Excon::Response.new self.data[:instances][name]['status'] = 'Terminating' self.data[:deleted_at][name] = Time.now response.status = 204 response end
enable_access_rule(service_name, rule_name)
click to toggle source
# File lib/fog/oraclecloud/requests/java/enable_access_rule.rb, line 22 def enable_access_rule(service_name, rule_name) response = Excon::Response.new rule = self.data[:access_rules][service_name].detect { |r| r['ruleName'] === rule_name } rule['status'] = 'enabled' response.body = rule response.status = 200 response end
get_instance(name)
click to toggle source
# File lib/fog/oraclecloud/requests/java/get_instance.rb, line 17 def get_instance(name) response = Excon::Response.new if instance = self.data[:instances][name] case instance['status'] when 'Terminating' if Time.now - self.data[:deleted_at][name] >= Fog::Mock.delay self.data[:deleted_at].delete(name) self.data[:instances].delete(name) end when 'In Progress' if Time.now - self.data[:created_at][name] >= Fog::Mock.delay self.data[:instances][name]['status'] = 'Running' instance = self.data[:instances][name] self.data[:created_at].delete(name) end end response.status = 200 response.body = instance response else raise Fog::OracleCloud::Java::NotFound.new("Java #{name} does not exist"); end end
get_server(service_name, server_name)
click to toggle source
# File lib/fog/oraclecloud/requests/java/get_server.rb, line 17 def get_server(service_name, server_name) response = Excon::Response.new if server = self.data[:servers][service_name][server_name] case server[:status] when 'Maintenance' info = self.data[:maintenance_at][server_name] if Time.now - info['time'] >= Fog::Mock.delay self.data[:servers][service_name][server_name][:status] = 'Ready' self.data[:servers][service_name][server_name][info['attribute']] = info['value'] self.data[:maintenance_at].delete(server_name) end end response.status = 200 response.body = { 'servers' => self.data[:servers][service_name].values } response else raise Fog::OracleCloud::Java::NotFound.new("Java Server #{name} does not exist"); end end
list_access_rules(service_name)
click to toggle source
# File lib/fog/oraclecloud/requests/java/list_access_rules.rb, line 16 def list_access_rules(service_name) response = Excon::Response.new rules = self.data[:access_rules][service_name] response.body = { 'accessRules' => rules } response end
list_instances()
click to toggle source
# File lib/fog/oraclecloud/requests/java/list_instances.rb, line 16 def list_instances response = Excon::Response.new instances = self.data[:instances].values response.body = { 'services' => instances } response end
list_servers(db_name)
click to toggle source
# File lib/fog/oraclecloud/requests/java/list_servers.rb, line 16 def list_servers(db_name) response = Excon::Response.new servers = self.data[:servers][db_name] response.body = { 'servers' => servers.values } response end
password()
click to toggle source
# File lib/fog/oraclecloud/java.rb, line 95 def password @password end
region_url()
click to toggle source
# File lib/fog/oraclecloud/java.rb, line 99 def region_url @region_url end
scale_a_node(service_name, server_name, options={})
click to toggle source
# File lib/fog/oraclecloud/requests/java/scale_a_node.rb, line 28 def scale_a_node(service_name, server_name, options={}) response = Excon::Response.new response.status = 202 self.data[:servers][service_name][server_name][:status] = 'Ready' self.data[:servers][service_name][server_name][:shape] = options[:shape] response.body = { "status" => "New", "details" => { "message" => "scaleup.job.submitted", "jobId" => rand(10000).to_s } } response end
scale_in_a_cluster(service_name, server_name)
click to toggle source
# File lib/fog/oraclecloud/requests/java/scale_in_a_cluster.rb, line 20 def scale_in_a_cluster(service_name, server_name) response = Excon::Response.new response.status = 202 response.body = { "status" => "New", "details" => { "message" => "JAAS-SCALING-044: Scaling in Job (ID: 20) server name [ExampleI_server_4] submitted for service [ExampleInstance]", "jobId" => "20" } } response end
scale_out_a_cluster(service_name, cluster_name, create_cluster_if_missing)
click to toggle source
# File lib/fog/oraclecloud/requests/java/scale_out_a_cluster.rb, line 23 def scale_out_a_cluster(service_name, cluster_name, create_cluster_if_missing) response = Excon::Response.new response.status = 202 response.body = { "status" => "New", "details" => { "message" => "JASS-SCALING-037: Scale out Job (ID: 17) for service [ExampleInstance] in cluster [ExampleI_cluster] submitted", "jobId" => "17" } } response end
username()
click to toggle source
# File lib/fog/oraclecloud/java.rb, line 91 def username @username end