class Fog::OracleCloud::Java::Instance

Public Class Methods

new(attributes={}) click to toggle source
Calls superclass method
# File lib/fog/oraclecloud/models/java/instance.rb, line 144
def initialize(attributes={})
  level ||= 'PAAS'
  subscription_type ||= 'HOURLY'
  edition ||= 'EE'

  super
end

Public Instance Methods

access_rules() click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 173
def access_rules
  service.access_rules(:instance => self)
end
destroy() click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 177
            def destroy
  requires :service_name, :dba_name, :dba_password
  service.delete_instance(service_name, dba_name, dba_password, :force_delete => force_delete).body
end
domain_mode=(value) click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 108
def domain_mode=(value)
  if value.to_s == '' then value = 'DEVELOPMENT' end
  if %w(DEVELOPMENT PRODUCTION).include? value then
    attributes[:domain_mode]=value
  else
    raise ArgumentError, "Invalid domain mode '#{value}'. Valid values - DEVELOPMENT or PRODUCTION"
  end
end
edition=(value) click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 117
def edition=(value)
  if value.to_s == '' then value = 'EE' end
  if %w(SE EE SUITE).include? value then
    attributes[:edition]=value
  else
    raise ArgumentError, "Invalid edition. Valid values - SE, EE or SUITE"
  end
end
level=(value) click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 92
def level=(value)
  if %w(PAAS BASIC).include? value then
    attributes[:level]=value
  else
    raise ArgumentError, "Invalid level. Valid values - PAAS or BASIC"
  end
end
num_nodes=(value) click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 135
def num_nodes=(value)
  if value.nil? then value = 1 end
  if value.to_i.is_a? Integer then
    attributes[:num_nodes] = value.to_i
  else
    raise ArgumentError, "Invalid server count (#{value}). Valid values - 1, 2, 4 or 8"
  end
end
ready?() click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 157
def ready?
  status == "Running"
end
save() click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 152
def save
  #identity ? update : create
  create
end
scale_out_a_cluster(cluster_name, create_cluster_if_missing) click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 182
def scale_out_a_cluster(cluster_name, create_cluster_if_missing)
  requires :service_name
  service.scale_out_a_cluster(service_name, cluster_name, create_cluster_if_missing).body
end
servers() click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 169
def servers
  service.servers.all(service_name)
end
shape=(value) click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 127
def shape=(value)
  if %w(oc3 oc4 oc5 oc6 oc1m oc2m oc3m oc4m).include? value then
    attributes[:shape]=value
  else
    raise ArgumentError, "Invalid Shape. Valid values - oc3, oc4, oc5, oc6, oc1m, oc2m, oc3m or oc4m"
  end
end
stopped?() click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 165
def stopped?
  status == 'Stopped'
end
stopping?() click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 161
def stopping?
  status == 'Maintenance' || status == 'Terminating'
end
subscription_type=(value) click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 100
def subscription_type=(value)
  if %w(HOURLY MONTHLY).include? value then
    attributes[:subscription_type]=value
  else
    raise ArgumentError, "Invalid subscription type. Valid values - HOURLY or MONTHLY"
  end
end

Private Instance Methods

create() click to toggle source
# File lib/fog/oraclecloud/models/java/instance.rb, line 189
def create
        requires :service_name, :dba_name, :dba_password, :db_service_name, :shape, :version, :ssh_key, :admin_password, :admin_username
  
  #data = service.create_instance(service_name, cloud_storage_container, cloud_storage_user, cloud_storage_password, dba_name, dba_password, db_servicename, shape, version, vm_public_key,
  #                                  :level => level,
  #                                  :subscriptionType => subscription_type,
  #                                  :description => description)

  if cloud_storage_container.nil? then
    cloud_storage_if_missing = true
    stor_name = "#{service_name}_Backup"
  else
    stor_name = cloud_storage_container
  end
  stor_user = cloud_storage_user || service.username
  stor_pwd = cloud_storage_pwd || service.password

  params = {            
    :serviceName => service_name,
    :cloudStorageContainer => stor_name,
    :cloudStoragePassword => stor_user,
    :cloudStorageUser => stor_pwd,
    :cloudStorageContainerIfMissing => cloud_storage_if_missing,
    :description => description,
    :enableAdminConsole => enable_admin_console.nil? ? true : enable_admin_console,
    :provisionOTD => provision_otd.nil? ? true : provision_otd,
    :sampleAppDeploymentRequested => sample_app_deployment_requested.nil? ? true : sample_app_deployment_requested,
    :subscriptionType => subscription_type || 'HOURLY',
    :level => level || 'PAAS',
  }
  options = {
    :adminPassword => admin_password,
    :adminPort => admin_port,
    :adminUserName => admin_username,
    :backupVolumeSize => backup_volume_size,
    :clusterName => cluster_name,
    :contentPort => content_port,
    :dbaName => dba_name,
    :dbaPassword => dba_password,
    :dbServiceName => db_service_name,
    :deploymentChannelPort => wls_deployment_channel_port,
    :domainMode => domain_mode,
    :domainName => domain_name,
    :domainPartitionCount => domain_partition_count,
    :domainVolumeSize => domain_volume_size,
    :edition => edition || 'EE',
    :ipReservations => ip_reservations,
    :managedServerCount => num_nodes || 1,
    :msInitialHeapMB => ms_initial_heap_mb,
    :msJvmArgs => ms_jvm_args,
    :msMaxHeapMB => ms_max_heap_mb,
    :msMaxPermMB => ms_max_perm_mb,
    :msPermMb => ms_perm_mb,
    :nodeManagerPassword => node_manager_password,
    :nodeManagerPort => node_manager_port,
    :nodeManagerUserName => node_manager_user_name,
    :overwriteMsJvmArgs => overwrite_ms_jvm_args,
    :pdbName => pdb_name,
    :securedAdminPort => secured_admin_port,
    :securedContentPort => secured_content_port,
    :shape => shape,
    :VMsPublicKey => ssh_key,
    :version => version
  }

  if app_dbs and app_dbs.is_a? Array and app_dbs.size >= 1
    options[:appDBs] = []
    app_dbs.each { |db| options[:appDBs].push({
      :dbaName => db.username,
      :dbaPassword => db.password,
      :dbServiceName => db.service_name,
      }) } 
  end
  data = service.create_instance(params, options)

end