Sha256: 9232dfe9860c23c6ec1c9e5198c484f074551fcf93e70f7821a56d72e7e68050

Contents?: true

Size: 1.06 KB

Versions: 54

Compression:

Stored size: 1.06 KB

Contents

class Ey::Core::Client::LogicalDatabase < Ey::Core::Model
  extend Ey::Core::Associations

  identity :id

  attribute :name
  attribute :username
  attribute :password
  attribute :created_at, type: :time
  attribute :updated_at, type: :time
  attribute :deleted_at, type: :time
  attribute :extensions, type: :array

  has_one :service, resource: :database_service

  def save!
    requires :name

    params = {
      "url"              => self.collection.url,
      "database_service" => self.service_id,
      "logical_database" => Cistern::Hash.slice(attributes, :name, :extensions),
    }

    if new_record?
      self.connection.requests.new(self.connection.create_logical_database(params).body["request"])
    else raise NotImplementedError
    end
  end

  def destroy!
    connection.requests.new(self.connection.destroy_logical_database("id" => self.id).body["request"])
  end

  def connect(cluster_component, configuration={})
    requires :identity

    self.connection.connectors.create(source: self, destination: cluster_component, configuration: configuration)
  end
end

Version data entries

54 entries across 54 versions & 3 rubygems

Version Path
ey-core-3.6.0.autoscaling1 lib/ey-core/models/logical_database.rb
ey-core-3.6.4 lib/ey-core/models/logical_database.rb
ey-core-3.6.3 lib/ey-core/models/logical_database.rb
ey-core-3.6.1 lib/ey-core/models/logical_database.rb
groove-ey-core-3.6.3 lib/ey-core/models/logical_database.rb
groove-ey-core-3.6.2 lib/ey-core/models/logical_database.rb
groove-ey-core-3.6.1 lib/ey-core/models/logical_database.rb
ey-core-3.5.0 lib/ey-core/models/logical_database.rb
ey-core-3.4.4 lib/ey-core/models/logical_database.rb
ey-core-3.4.2 lib/ey-core/models/logical_database.rb
ey-core-3.4.1 lib/ey-core/models/logical_database.rb
ey-core-3.4.0 lib/ey-core/models/logical_database.rb
ey-core-3.3.1 lib/ey-core/models/logical_database.rb
ey-core-3.3.0 lib/ey-core/models/logical_database.rb
ey-core-3.2.6 lib/ey-core/models/logical_database.rb
ey-core-3.2.5 lib/ey-core/models/logical_database.rb
ey-core-3.2.4 lib/ey-core/models/logical_database.rb
ey-core-3.2.3 lib/ey-core/models/logical_database.rb
ey-core-3.2.2 lib/ey-core/models/logical_database.rb
ey-core-3.2.1 lib/ey-core/models/logical_database.rb