Class: CumulogicClient::Nosql

Inherits:
Object
  • Object
show all
Defined in:
lib/cumulogic_client/nosql.rb

Constant Summary collapse

NoSQLSpec =
Class.new do
  attr_accessor :name
  attr_accessor :description
  attr_accessor :nodes
  attr_accessor :collectionName
  attr_accessor :characterSet
  attr_accessor :port
  attr_accessor :noSqlEngineId
  attr_accessor :targetCloudId
  attr_accessor :availabilityZoneName
  attr_accessor :instanceTypeId
  attr_accessor :serviceTag
  attr_accessor :accessGroupId
  attr_accessor :noSqlParamGroupId
  attr_accessor :storageSize
  attr_accessor :isbackupPreferenceSet
  attr_accessor :isAutoUpdateEnabled
  attr_accessor :backupRetentionPeriod
  attr_accessor :backupStartTime
  attr_accessor :ownerType
  attr_accessor :isAvailabilityZoneMandatory
  attr_accessor :isInstanceTypeMandatory
  attr_accessor :availabilityZone
  attr_accessor :isVolumeSizeMandatory
  attr_accessor :backupRetentionPeriod
  attr_accessor :backupStartTime
  attr_accessor :start

  def to_hash
    Hash[*instance_variables.map { |v| [v.to_s().tr("@", ""), instance_variable_get(v)] }.flatten]
  end
end

Instance Method Summary collapse

Constructor Details

#initialize(api_url, username, password, use_ssl = nil, debug = false) ⇒ Nosql

Returns a new instance of Nosql.



17
18
19
# File 'lib/cumulogic_client/nosql.rb', line 17

def initialize(api_url, username, password, use_ssl=nil, debug=false)
  @client = CumulogicClient::BaseClient.new(api_url, username, password, use_ssl, debug)
end

Instance Method Details

#create(spec, wait = true) ⇒ Object



51
52
53
54
55
56
# File 'lib/cumulogic_client/nosql.rb', line 51

def create(spec, wait=true)
  response = @client.call('nosql/instance/createNoSqlInstance', spec.to_hash)
  @newInstanceId = response[0]['noSqlInstanceId']
  @client.provisioning_completed(self, 30) if wait
  return @newInstanceId
end

#delete(instanceId) ⇒ Object



47
48
49
# File 'lib/cumulogic_client/nosql.rb', line 47

def delete(instanceId)
  return @client.call('nosql/instance/deleteNoSqlInstance', wrapParam(instanceId))
end

#engine_listObject



21
22
23
# File 'lib/cumulogic_client/nosql.rb', line 21

def engine_list()
  return @client.call('nosql/nosqlengine/list')
end

#events(instanceId) ⇒ Object



33
34
35
# File 'lib/cumulogic_client/nosql.rb', line 33

def events(instanceId)
  return @client.call('nosql/instance/showEvents', wrapParams(instanceId))
end

#get(instanceId) ⇒ Object



29
30
31
# File 'lib/cumulogic_client/nosql.rb', line 29

def get(instanceId)
  return @client.call('nosql/instance/getAllHostByNoSqlInstanceID', wrapParam(instanceId))
end

#get_serviceplans(createdBy, serviceType) ⇒ Object



58
59
60
# File 'lib/cumulogic_client/nosql.rb', line 58

def get_serviceplans(createdBy, serviceType)
  @client.get_serviceplans(createdBy, serviceType)
end

#isCompleteObject

Raises:

  • (RuntimeError)


62
63
64
65
66
67
68
69
# File 'lib/cumulogic_client/nosql.rb', line 62

def isComplete()
  instances = self.list()
  puts instances
  target = instances.select { |id| id["noSqlInstanceId"] = @newInstanceId }
  return false if (target[0]["status"] == 2)
  raise RuntimeError, "Error provisioning instance: #{target[0]["errorMessage"]}" if (target[0]["status"] == 3)
  return true
end

#listObject



25
26
27
# File 'lib/cumulogic_client/nosql.rb', line 25

def list()
  return @client.call('nosql/instance/list')
end

#terminate(instanceId) ⇒ Object



43
44
45
# File 'lib/cumulogic_client/nosql.rb', line 43

def terminate(instanceId)
  return @client.call('nosql/instance/terminateNoSqlInstance', wrapParam(instanceId))
end

#wrapParam(instanceId) ⇒ Object



37
38
39
40
41
# File 'lib/cumulogic_client/nosql.rb', line 37

def wrapParam(instanceId)
  {
    'noSqlInstanceId' => instanceId
  }
end