Sha256: df8b0d65c133e4a61ab9526923d44dbc5718c19bcf97d828e81a951cfbcf1c47

Contents?: true

Size: 933 Bytes

Versions: 3

Compression:

Stored size: 933 Bytes

Contents

module Brightbox
  class Account < Api
    def ram_free
      [ram_limit.to_i - ram_used.to_i, 0].max
    end

    def cloud_ip_limit
      attributes[:cloud_ips_limit]
    end

    def lb_limit
      attributes[:load_balancers_limit]
    end

    def to_row
      attributes.to_h.merge(
        :ram_free => ram_free,
        :cloud_ip_limit => cloud_ip_limit,
        :lb_limit => lb_limit
      )
    end

    def self.all
      if Brightbox.config.using_application?
        conn.accounts.all
      else
        [conn.account]
      end
    end

    def self.get(id)
      acc = if Brightbox.config.using_application?
              conn.accounts.get(id)
            else
              conn.account
            end

      return unless acc && acc.id == id

      acc
    end

    def self.default_field_order
      %i[id name cloud_ips_limit lb_limit ram_limit ram_used ram_free]
    end

    def to_s
      @id
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
brightbox-cli-5.0.0 lib/brightbox-cli/accounts.rb
brightbox-cli-5.0.0.rc2 lib/brightbox-cli/accounts.rb
brightbox-cli-5.0.0.rc1 lib/brightbox-cli/accounts.rb