Sha256: 5d76237c28992c4d198498ab13fb2c1b4b11ed783286d5ef45676d5b6ce9a767

Contents?: true

Size: 1.34 KB

Versions: 5

Compression:

Stored size: 1.34 KB

Contents

module Aptible
  module Api
    class Database < Resource
      belongs_to :account
      belongs_to :database_image
      belongs_to :current_configuration
      embeds_one :last_operation
      embeds_one :disk
      has_one :service
      has_one :initialize_from
      has_many :operations
      has_many :backups
      has_many :dependents
      has_many :configurations
      embeds_many :database_credentials

      field :id
      field :handle
      field :type
      field :passphrase
      field :connection_url
      field :created_at, type: Time
      field :updated_at, type: Time
      field :status
      field :docker_repo
      field :port_mapping

      def failed?
        # TODO: Add failed status at API level
        return false if provisioned?

        operations.select { |o| o.type == 'provision' }.all?(&:failed?)
      end

      def provisioned?
        status == 'provisioned'
      end

      def current_configuration_with_deleted
        id = links['current_configuration'].href.split('/').last
        Aptible::Api::Configuration.find(
          id, with_deleted: true, token: token, headers: headers
        )
      end

      def disk_with_deleted
        id = links['disk'].href.split('/').last
        Aptible::Api::Disk.find(
          id, with_deleted: true, token: token, headers: headers
        )
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
aptible-api-1.2.7 lib/aptible/api/database.rb
aptible-api-1.2.6 lib/aptible/api/database.rb
aptible-api-1.2.5 lib/aptible/api/database.rb
aptible-api-1.2.4 lib/aptible/api/database.rb
aptible-api-1.2.3 lib/aptible/api/database.rb