コード例 #1
0
    def model_s3buckets(self, s3buckets, log):
        log.debug('model_s3buckets data: {}'.format(s3buckets))

        rm = []
        rm_owner = []
        rm_bucket = []
        for entry in s3buckets:
            soup = BeautifulSoup(entry['body'], 'xml')
            # TODO: What if the soup is empty ?
            om_owner = ObjectMap()
            id = 'bucketaccount_{}'.format(soup.find("Owner").find("ID").text)
            om_owner.id = self.prepId(id)
            om_owner.title = soup.find("Owner").find("DisplayName").text
            rm_owner.append(om_owner)
            comp_id = 'scalityS3BucketAccounts/{}'.format(om_owner.id)

            s3bucket_maps = []
            buckets_list = soup.find_all(name="Bucket")
            for s3bucket in buckets_list:
                bucket_name = s3bucket.Name.text
                om_s3bucket = ObjectMap()
                id = 'bucket_{}_{}'.format(om_owner.title, bucket_name)
                om_s3bucket.id = self.prepId(id)
                om_s3bucket.title = bucket_name
                om_s3bucket.bucket_name = bucket_name
                om_s3bucket.creation_date = s3bucket.CreationDate.text
                om_s3bucket.key_index = int(entry['key_index'])
                s3bucket_maps.append(om_s3bucket)

            rm_bucket.append(
                RelationshipMap(
                    compname=comp_id,
                    relname='scalityS3Buckets',
                    modname='ZenPacks.community.Scality.ScalityS3Bucket',
                    objmaps=s3bucket_maps))
        rm.append(
            RelationshipMap(
                relname='scalityS3BucketAccounts',
                modname='ZenPacks.community.Scality.ScalityS3BucketAccount',
                compname='',
                objmaps=rm_owner))

        rm.extend(rm_bucket)
        return rm