def test_get_name(self): src = { "Tags": [ { "Key": "Not Name", "Value": "xyz" }, { "Key": "Name", "Value": "abc" }, ], "default_attribute": "default_value", } dst = {} default_attribute = "default_attribute" assert get_name(src, dst, default_attribute) == "abc" assert dst["name"] == "abc" src = { "Tags": [{ "Key": "Not Name", "Value": "xyz" }], "default_attribute": "default_value", } dst = {} default_attribute = "default_attribute" assert get_name(src, dst, default_attribute) == "default_value" assert dst["name"] == "default_value"
async def _parse_instance(self, raw_instance): instance = {} id = raw_instance['InstanceId'] instance['id'] = id instance['reservation_id'] = raw_instance['ReservationId'] instance['monitoring_enabled'] = raw_instance['Monitoring'][ 'State'] == 'enabled' instance['user_data'] = await self.facade.ec2.get_instance_user_data( self.region, id) instance['user_data_secrets'] = self._identify_user_data_secrets( instance['user_data']) get_name(raw_instance, instance, 'InstanceId') get_keys(raw_instance, instance, [ 'KeyName', 'LaunchTime', 'InstanceType', 'State', 'IamInstanceProfile', 'SubnetId' ]) instance['network_interfaces'] = {} for eni in raw_instance['NetworkInterfaces']: nic = {} get_keys(eni, nic, [ 'Association', 'Groups', 'PrivateIpAddresses', 'SubnetId', 'Ipv6Addresses' ]) instance['network_interfaces'][eni['NetworkInterfaceId']] = nic return id, instance
def _parse_network_acl(self, raw_network_acl): raw_network_acl['id'] = raw_network_acl.pop('NetworkAclId') get_name(raw_network_acl, raw_network_acl, 'id') raw_network_acl['rules'] = {} raw_network_acl['rules']['ingress'] = self._parse_network_acl_entries(raw_network_acl['Entries'], False) raw_network_acl['rules']['egress'] = self._parse_network_acl_entries(raw_network_acl['Entries'], True) raw_network_acl.pop('Entries') return raw_network_acl['id'], raw_network_acl
def _parse_subnet(self, raw_subnet): raw_subnet['id'] = raw_subnet['SubnetId'] get_name(raw_subnet, raw_subnet, 'SubnetId') raw_subnet.pop('SubnetId') if raw_subnet['Ipv6CidrBlockAssociationSet']: raw_subnet['CidrBlockv6'] = raw_subnet['Ipv6CidrBlockAssociationSet'][0]['Ipv6CidrBlock'] else: raw_subnet['CidrBlockv6'] = None return raw_subnet['id'], raw_subnet
def _parse_network_acl(self, raw_network_acl): raw_network_acl['id'] = raw_network_acl.pop('NetworkAclId') get_name(raw_network_acl, raw_network_acl, 'id') raw_network_acl['rules'] = {} raw_network_acl['rules']['ingress'] = self._parse_network_acl_entries( raw_network_acl['Entries'], False) raw_network_acl['rules']['egress'] = self._parse_network_acl_entries( raw_network_acl['Entries'], True) raw_network_acl.pop('Entries') raw_network_acl['arn'] = format_arn(self.partition, self.service, self.region, raw_network_acl.get('OwnerId'), raw_network_acl.get('id'), self.resource_type) return raw_network_acl['id'], raw_network_acl
async def _parse_instance(self, raw_instance): instance = {} id = raw_instance['InstanceId'] instance['id'] = id instance['arn'] = format_arn(self.partition, self.service, self.region, raw_instance['OwnerId'], raw_instance['InstanceId'], self.resource_type) instance['reservation_id'] = raw_instance['ReservationId'] instance['availability_zone'] = raw_instance.get( 'Placement', {}).get('AvailabilityZone') instance['monitoring_enabled'] = raw_instance['Monitoring'][ 'State'] == 'enabled' instance['user_data'] = await self.facade.ec2.get_instance_user_data( self.region, id) instance['user_data_secrets'] = self._identify_user_data_secrets( instance['user_data']) get_name(raw_instance, instance, 'InstanceId') get_keys(raw_instance, instance, [ 'KeyName', 'LaunchTime', 'InstanceType', 'State', 'IamInstanceProfile', 'SubnetId', 'Tags' ]) if "IamInstanceProfile" in raw_instance: instance['iam_instance_profile_id'] = raw_instance[ 'IamInstanceProfile']['Id'] instance['iam_instance_profile_arn'] = raw_instance[ 'IamInstanceProfile']['Arn'] instance['network_interfaces'] = {} for eni in raw_instance['NetworkInterfaces']: nic = {} get_keys(eni, nic, [ 'Association', 'Groups', 'PrivateIpAddresses', 'SubnetId', 'Ipv6Addresses' ]) instance['network_interfaces'][eni['NetworkInterfaceId']] = nic instance['metadata_options'] = raw_instance.get('MetadataOptions', {}) if 'IamInstanceProfile' in raw_instance: instance['iam_role'] = raw_instance['IamInstanceProfile'][ 'Arn'].split('/')[-1] else: instance['iam_role'] = None return id, instance
def _parse_volume(self, raw_volume): raw_volume['id'] = raw_volume.pop('VolumeId') raw_volume['name'] = get_name(raw_volume, raw_volume, 'id') raw_volume['arn'] = format_arn(self.partition, self.service, self.region, self.facade.owner_id, raw_volume.get('id'), self.resource_type) return raw_volume['id'], raw_volume
def _parse_snapshot(self, raw_snapshot): raw_snapshot['id'] = raw_snapshot.pop('SnapshotId') raw_snapshot['name'] = get_name(raw_snapshot, raw_snapshot, 'id') raw_snapshot['public'] = self._is_public(raw_snapshot) raw_snapshot['arn'] = 'arn:aws:ec2:{}:{}:snapshot/{}'.format( self.get('region'), raw_snapshot.get('OwnerId'), raw_snapshot.get('name')) return raw_snapshot['id'], raw_snapshot
def _parse_volume(self, raw_volume): raw_volume['id'] = raw_volume.pop('VolumeId') raw_volume['name'] = get_name(raw_volume, raw_volume, 'id') if "Tags" in raw_volume: raw_volume['tags'] = { x["Key"]: x["Value"] for x in raw_volume["Tags"] } return raw_volume['id'], raw_volume
def _parse_snapshot(self, raw_snapshot): snapshot_dict = {} snapshot_dict['id'] = raw_snapshot.get('SnapshotId') snapshot_dict['name'] = get_name(raw_snapshot, raw_snapshot, 'SnapshotId') snapshot_dict['description'] = raw_snapshot.get('Description') snapshot_dict['public'] = self._is_public(raw_snapshot) snapshot_dict['encrypted'] = raw_snapshot.get('Encrypted') snapshot_dict['kms_key_id'] = raw_snapshot.get('KmsKeyId') snapshot_dict['owner_id'] = raw_snapshot.get('OwnerId') snapshot_dict['progress'] = raw_snapshot.get('Progress') snapshot_dict['start_time'] = raw_snapshot.get('StartTime') snapshot_dict['state'] = raw_snapshot.get('State') snapshot_dict['volume_id'] = raw_snapshot.get('VolumeId') snapshot_dict['volume_size'] = raw_snapshot.get('VolumeSize') snapshot_dict['create_volume_permissions'] = raw_snapshot.get( 'CreateVolumePermissions') snapshot_dict['arn'] = format_arn(self.partition, self.service, self.region, raw_snapshot.get('OwnerId'), raw_snapshot.get('SnapshotId'), self.resource_type) return snapshot_dict['id'], snapshot_dict
def _parse_volume(self, raw_volume): raw_volume['id'] = raw_volume.pop('VolumeId') raw_volume['name'] = get_name(raw_volume, raw_volume, 'id') return raw_volume['id'], raw_volume
def _parse_volume(self, raw_volume): raw_volume['id'] = raw_volume.pop('VolumeId') raw_volume['name'] = get_name(raw_volume, raw_volume, 'id') raw_volume['arn'] = 'arn:aws:ec2:{}:{}:volume/{}'.format( self.region, self.facade.owner_id, raw_volume.get('name')) return raw_volume['id'], raw_volume
def _parse_snapshot(self, raw_snapshot): raw_snapshot['id'] = raw_snapshot.pop('SnapshotId') raw_snapshot['name'] = get_name(raw_snapshot, raw_snapshot, 'id') raw_snapshot['public'] = self._is_public(raw_snapshot) return raw_snapshot['id'], raw_snapshot
def _parse_log(self, raw_log): get_name(raw_log, raw_log, 'FlowLogId') log_id = raw_log.pop('FlowLogId') return log_id, raw_log
def _parse_subnet(self, raw_subnet): raw_subnet['id'] = raw_subnet['SubnetId'] get_name(raw_subnet, raw_subnet, 'SubnetId') raw_subnet.pop('SubnetId') return raw_subnet['id'], raw_subnet