Sha256: 6246169e42fe9e0994fb14fa241f20746317a55d385b3f59b091a863944689a5

Contents?: true

Size: 1.1 KB

Versions: 4

Compression:

Stored size: 1.1 KB

Contents

module Brightbox
  class ServerGroup < Api
    def self.require_account?; true; end
    def self.all
      conn.server_groups
    end

    def self.get(id)
      conn.server_groups.get(id)
    end

    def self.create(options)
      new(conn.server_groups.create(options))
    end

    def self.default_field_order
      [:id, :server_count, :name]
    end

    def firewall_policy
      FirewallPolicy.all.detect do |policy|
        policy.server_group_id == self.id
      end
    end

    def update(options)
      self.class.conn.update_server_group(id, options)
      self.reload
      self
    end

    def destroy
      fog_model.destroy
    end

    def attributes
      fog_model.attributes
    end

    def to_row
      o = attributes
      o[:servers] = server_string
      o[:server_count] = server_count
      o
    end

    def server_ids
      attributes[:server_ids].map{|id| id.is_a?(Hash) ? id['id'] : id }
    end

    def server_count
      server_ids.respond_to?(:size) ? server_ids.size : 0
    end

    def server_string
      server_ids.respond_to?(:join) ? server_ids.join(" ") : ""
    end

  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
brightbox-cli-1.1.0 lib/brightbox-cli/server_groups.rb
brightbox-cli-1.0.0 lib/brightbox-cli/server_groups.rb
brightbox-cli-1.0.0.rc2 lib/brightbox-cli/server_groups.rb
brightbox-cli-1.0.0.rc1 lib/brightbox-cli/server_groups.rb