Sha256: 4a753fe9736fc5762fa8e1acbd28e5f613afcd95105bc197bfe47141fbce0af3

Contents?: true

Size: 1.94 KB

Versions: 1

Compression:

Stored size: 1.94 KB

Contents

require File.expand_path('../../../helpers/compute/data_helper', __FILE__)

module Fog
  module Compute
    class ProfitBricks
      class Group < Fog::Models::ProfitBricks::Base
        include Fog::Helpers::ProfitBricks::DataHelper

        identity  :id

        # properties
        attribute :name
        attribute :create_datacenter,       :aliases => 'createDataCenter'
        attribute :create_snapshot,         :aliases => 'createSnapshot'
        attribute :reserve_ip,              :aliases => 'reserveIp'
        attribute :access_activity_log,     :aliases => 'accessActivityLog'

        # entities
        attribute :users
        attribute :resources

        attr_accessor :options

        def initialize(attributes = {})
          super
        end

        def save
          requires :name

          options = {}
          options[:name]              = name
          options[:createDataCenter]  = create_datacenter if create_datacenter
          options[:createSnapshot]    = create_snapshot if create_snapshot
          options[:reserveIp]         = reserve_ip if reserve_ip
          options[:accessActivityLog] = access_activity_log if access_activity_log

          data = service.create_group(options)
          merge_attributes(flatten(data.body))
          true
        end

        def update
          requires :id, :name

          options = {}
          options[:name]              = name
          options[:createDataCenter]  = create_datacenter if create_datacenter
          options[:createSnapshot]    = create_snapshot if create_snapshot
          options[:reserveIp]         = reserve_ip if reserve_ip
          options[:accessActivityLog] = access_activity_log if access_activity_log

          data = service.update_group(id, options)
          merge_attributes(flatten(data.body))
          true
        end

        def delete
          requires :id
          service.delete_group(id)
          true
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fog-profitbricks-4.0.0 lib/fog/profitbricks/models/compute/group.rb