Sha256: 6fe25a41f272307537bde1c97c131ff6251b36ce25be28aa8e9cadfec42b1f92

Contents?: true

Size: 1.33 KB

Versions: 91

Compression:

Stored size: 1.33 KB

Contents

require 'fog/core/model'

module Fog
  module Identity
    class OpenStack
      class Tenant < Fog::Model
        identity :id

        attribute :description
        attribute :enabled
        attribute :name

        def to_s
          self.name
        end

        def roles_for(user)
          service.roles(
            :tenant => self,
            :user   => user)
        end

        def users
          requires :id
          service.users(:tenant_id => self.id)
        end

        def destroy
          requires :id
          service.delete_tenant(self.id)
          true
        end

        def update(attr = nil)
          requires :id
          merge_attributes(
            service.update_tenant(self.id, attr || attributes).body['tenant'])
          self
        end

        def save
          requires :name
          identity ? update : create
        end

        def create
          merge_attributes(
            service.create_tenant(attributes).body['tenant'])
          self
        end

        def grant_user_role(user_id, role_id)
          service.add_user_to_tenant(self.id, user_id, role_id)
        end

        def revoke_user_role(user_id, role_id)
          service.remove_user_from_tenant(self.id, user_id, role_id)
        end
      end # class Tenant
    end # class OpenStack
  end # module Identity
end # module Fog

Version data entries

91 entries across 91 versions & 10 rubygems

Version Path
vagrant-cloudstack-1.1.0 vendor/bundle/gems/fog-1.22.1/lib/fog/openstack/models/identity/tenant.rb
fog-1.30.0 lib/fog/openstack/models/identity/tenant.rb
fog-1.29.0 lib/fog/openstack/models/identity/tenant.rb
fog-1.28.0 lib/fog/openstack/models/identity/tenant.rb
fog-1.27.0 lib/fog/openstack/models/identity/tenant.rb
fog-1.26.0 lib/fog/openstack/models/identity/tenant.rb
fog-1.25.0 lib/fog/openstack/models/identity/tenant.rb
nsidc-fog-1.24.1 lib/fog/openstack/models/identity/tenant.rb
fog-1.24.0 lib/fog/openstack/models/identity/tenant.rb
ns-fog-1.22.11 lib/fog/openstack/models/identity/tenant.rb
ns-fog-1.22.10 lib/fog/openstack/models/identity/tenant.rb
ns-fog-1.22.9 lib/fog/openstack/models/identity/tenant.rb
ns-fog-1.22.8 lib/fog/openstack/models/identity/tenant.rb
ns-fog-1.22.7 lib/fog/openstack/models/identity/tenant.rb
ns-fog-1.22.6 lib/fog/openstack/models/identity/tenant.rb
fog-1.23.0 lib/fog/openstack/models/identity/tenant.rb
ns-fog-1.22.4 lib/fog/openstack/models/identity/tenant.rb
ns-fog-1.22.3 lib/fog/openstack/models/identity/tenant.rb
ns-fog-1.22.2 lib/fog/openstack/models/identity/tenant.rb
fog-1.22.1 lib/fog/openstack/models/identity/tenant.rb