Sha256: 39e0e94d1f68a6ecf7027ddf29775570814230f5c5da0499cb6cbf6f9b48dda8

Contents?: true

Size: 1.16 KB

Versions: 13

Compression:

Stored size: 1.16 KB

Contents

# IAM Managed Policy is not updated once created, because fog doesn't support policy versioning right now

class BuildCloud::IAMManagedPolicy
    
    require 'json'

    include ::BuildCloud::Component

    @@objects = []

    def initialize ( fog_interfaces, log, options = {} )

        @iam     = fog_interfaces[:iam]
        @log     = log
        @options = options

        @log.debug( options.inspect )

        required_options(:name, :policy_document)

    end

        
    def create

        unless exists?

            @log.info( "Creating new IAM policy #{@options[:name]}" )
            
            policy = @iam.create_policy(@options[:name],JSON.parse(@options[:policy_document]), @options[:policy_path], @options[:policy_description])
            
            @log.debug( policy.inspect )

        else
            policy = fog_object
        end

    end

    def read
        @iam.managed_policies.select { |r| r.name == @options[:name] }.first
    end

    alias_method :fog_object, :read

    def delete

        return unless exists?

        @log.info( "Deleting IAM managed policy #{@options[:name]}" )
        @fog.delete_policy(fog_object['Arn'])

    end

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
build-cloud-1.1.6 lib/build-cloud/iammanagedpolicy.rb
build-cloud-1.1.5 lib/build-cloud/iammanagedpolicy.rb
build-cloud-1.1.4 lib/build-cloud/iammanagedpolicy.rb
build-cloud-1.1.3 lib/build-cloud/iammanagedpolicy.rb
build-cloud-1.1.2 lib/build-cloud/iammanagedpolicy.rb
build-cloud-1.0.1 lib/build-cloud/iammanagedpolicy.rb
build-cloud-1.1.1 lib/build-cloud/iammanagedpolicy.rb
build-cloud-1.0.0 lib/build-cloud/iammanagedpolicy.rb
build-cloud-0.0.24 lib/build-cloud/iammanagedpolicy.rb
build-cloud-0.0.23 lib/build-cloud/iammanagedpolicy.rb
build-cloud-0.0.22 lib/build-cloud/iammanagedpolicy.rb
build-cloud-0.0.21 lib/build-cloud/iammanagedpolicy.rb
build-cloud-0.0.20 lib/build-cloud/iammanagedpolicy.rb