class Fog::OracleCloud::SOA::Instance
Public Instance Methods
admin_password=(value)
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 77 def admin_password=(value) if !(value[0] =~ /[[:alpha:]]/) or value.size < 8 or value.size > 30 or !(value =~ /[_#$]/) or !(value =~ /[0-9]/) raise ArgumentError, "Invalid admin password. Password must be between 8 and 30 characters in length; must start with a letter and can only contain letters, numbers and $, \#, _" else attributes[:admin_password] = value end end
destroy(dba_name, dba_password)
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 102 def destroy(dba_name, dba_password) requires :service_name service.delete_instance(service_name, dba_name, dba_password, :force_delete => force_delete, :skip_backup => skip_backup).body end
job_status()
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 109 def job_status requires :creation_job_id service.get_job_status('create', creation_job_id) end
num_nodes=(value)
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 60 def num_nodes=(value) if value.nil? then value = 1 end if [1, 2, 4].include? value.to_i then attributes[:num_nodes] = value.to_i else raise ArgumentError, "Invalid server count (#{value}). Valid values - 1, 2 or 4" end end
ready?()
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 90 def ready? status == "Running" end
save()
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 85 def save #identity ? update : create create end
service_name=(value)
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 44 def service_name=(value) if value.include? '_' or !(value[0] =~ /[[:alpha:]]/) or value.size > 50 or !(value[/[a-zA-Z0-9-]+/] == value) raise ArgumentError, "Invalid service name. Names must be less than 50 characters; must start with a letter and can only contain letters, numbers and hyphens (-); can not end with a hyphen" else attributes[:service_name] = value end end
shape=(value)
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 69 def shape=(value) if %w( oc1m oc2m oc3m oc4m oc5m).include? value then attributes[:shape]=value else raise ArgumentError, "Invalid Shape. Valid values - oc1m, oc2m, oc3m, oc4m or oc5m" end end
stopped?()
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 98 def stopped? status == 'Stopped' end
stopping?()
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 94 def stopping? status == 'Maintenance' || status == 'Terminating' end
topology=(value)
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 52 def topology=(value) if %w(osb soa soaosb b2b mft apim insight).include? value then attributes[:topology]=value else raise ArgumentError, "Invalid topology. Valid values - osb, soa, soaosb, b2b, mft, apim, insight" end end
Private Instance Methods
create()
click to toggle source
# File lib/fog/oraclecloud/models/soa/instance.rb, line 116 def create requires :service_name, :dba_name, :dba_password, :db_service_name, :shape, :version, :ssh_key, :admin_password, :admin_username, :topology stor_user = cloud_storage_user || service.username stor_pwd = cloud_storage_pwd || service.password if cloud_storage_container.nil? then cloud_storage_container = "#{service_name}_Backup" begin container = Fog::Storage[:oraclecloud].containers.get(cloud_storage_container) rescue Excon::Error::NotFound => error # Doesn't exist, create it first # The Oracle Cloud currently doesn't create a storage container for us, if it doesn't exist. Do it manually now container = Fog::Storage[:oraclecloud].containers.create( :name => cloud_storage_container, ) end end params = { :serviceName => service_name, :cloudStorageContainer => cloud_storage_container, :cloudStoragePassword => stor_pwd, :cloudStorageUser => stor_user, :description => description, :provisionOTD => provision_otd.nil? ? false : provision_otd, :subscriptionType => 'MONTHLY', :level => 'PAAS', :topology => topology } options = { :adminPassword => admin_password, :adminUserName => admin_username, :dbaName => dba_name, :dbaPassword => dba_password, :dbServiceName => db_service_name, :managedServerCount => num_nodes || 1, :shape => shape, :VMsPublicKey => ssh_key, :version => version } data = service.create_instance(params, options) end