modules/mu/providers/aws/group.rb in cloud-mu-3.2.0 vs modules/mu/providers/aws/group.rb in cloud-mu-3.3.0

- old
+ new

@@ -153,10 +153,11 @@ @cloud_desc_cache = nil # Fetch the AWS API description of this group # return [Struct] def cloud_desc(use_cache: true) return @cloud_desc_cache if @cloud_desc_cache and use_cache + return nil if !@mu_name @cloud_desc_cache = MU::Cloud::AWS.iam(credentials: @config['credentials']).get_group( group_name: @mu_name ) @cloud_desc_cache end @@ -184,16 +185,16 @@ # Remove all groups associated with the currently loaded deployment. # @param noop [Boolean]: If true, will only print what would be done # @param ignoremaster [Boolean]: If true, will remove resources not flagged as originating from this Mu server # @return [void] - def self.cleanup(noop: false, ignoremaster: false, credentials: nil, flags: {}) + def self.cleanup(noop: false, deploy_id: MU.deploy_id, ignoremaster: false, credentials: nil, flags: {}) MU.log "AWS::Group.cleanup: need to support flags['known']", MU::DEBUG, details: flags MU.log "Placeholder: AWS Group artifacts do not support tags, so ignoremaster cleanup flag has no effect", MU::DEBUG, details: ignoremaster resp = MU::Cloud::AWS.iam(credentials: credentials).list_groups( - path_prefix: "/"+MU.deploy_id+"/" + path_prefix: "/"+deploy_id+"/" ) if resp and resp.groups resp.groups.each { |g| MU.log "Deleting IAM group #{g.path}#{g.group_name}" if !noop @@ -272,17 +273,18 @@ if !cloud_desc MU.log "toKitten failed to load a cloud_desc from #{@cloud_id}", MU::ERR, details: @config return nil end - - bok["name"] = cloud_desc.group.group_name - if cloud_desc.group.path != "/" - bok["path"] = cloud_desc.group.path + group_desc = cloud_desc(use_cache: false).respond_to?(:group) ? cloud_desc.group : cloud_desc + bok["name"] = group_desc.group_name + + if group_desc.path != "/" + bok["path"] = group_desc.path end - if cloud_desc.users and cloud_desc.users.size > 0 + if cloud_desc.respond_to?(:users) and cloud_desc.users and cloud_desc.users.size > 0 bok["members"] = cloud_desc.users.map { |u| u.user_name } end # Grab and assimilate any inline policies attached to this group resp = MU::Cloud::AWS.iam(credentials: @credentials).list_group_policies(group_name: @cloud_id)