class BuildCloud::IAMManagedPolicy
IAM Managed Policy is not updated once created, because fog doesn't support policy versioning right now
Public Class Methods
new( fog_interfaces, log, options = {} )
click to toggle source
# File lib/build-cloud/iammanagedpolicy.rb, line 12 def initialize ( fog_interfaces, log, options = {} ) @iam = fog_interfaces[:iam] @log = log @options = options @log.debug( options.inspect ) required_options(:name, :policy_document) end
Public Instance Methods
create()
click to toggle source
# File lib/build-cloud/iammanagedpolicy.rb, line 25 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
delete()
click to toggle source
# File lib/build-cloud/iammanagedpolicy.rb, line 51 def delete return unless exists? @log.info( "Deleting IAM managed policy #{@options[:name]}" ) @fog.delete_policy(fog_object['Arn']) end
read()
click to toggle source
Fog only partly implements collection behaviour for managed policies Work around this using each() - and not, for example, select()
# File lib/build-cloud/iammanagedpolicy.rb, line 43 def read @iam.managed_policies.each do |item| return item if item.name == @options[:name] end end
Also aliased as: fog_object