Ejemplo n.º 1
0
    def test_create_delete_instance(self):
        instance_type = CONF.aws.instance_type
        image_id = CONF.aws.image_id
        data = self.client.run_instances(
            ImageId=image_id, InstanceType=instance_type,
            Placement={'AvailabilityZone': self.zone}, MinCount=1, MaxCount=1)
        instance_id = data['Instances'][0]['InstanceId']
        res_clean = self.addResourceCleanUp(self.client.terminate_instances,
                                            InstanceIds=[instance_id])
        self.assertEqual(1, len(data['Instances']))
        self.get_instance_waiter().wait_available(instance_id,
                                                  final_set=('running'))

        data = self.client.describe_instances(InstanceIds=[instance_id])
        reservations = data.get('Reservations', [])
        self.assertNotEmpty(reservations)
        instances = reservations[0].get('Instances', [])
        self.assertEqual(1, len(instances))
        self.assertEqual(1, len(instances[0]['SecurityGroups']))
        groups = reservations[0].get('Groups', [])
        if base.TesterStateHolder().get_ec2_enabled():
            self.assertEqual(1, len(groups))
            self.assertEqual(groups[0]['GroupName'],
                             instances[0]['SecurityGroups'][0]['GroupName'])
        else:
            self.assertEqual(0, len(groups))

        self.client.terminate_instances(InstanceIds=[instance_id])
        self.cancelResourceCleanUp(res_clean)
        self.get_instance_waiter().wait_delete(instance_id)
Ejemplo n.º 2
0
    def setUpClass(cls):
        super(VpnGatewayTest, cls).setUpClass()
        if not base.TesterStateHolder().get_vpc_enabled():
            raise cls.skipException('VPC is disabled')

        data = cls.client.create_vpc(CidrBlock=cls.VPC_CIDR)
        cls.vpc_id = data['Vpc']['VpcId']
        cls.get_vpc_waiter().wait_available(cls.vpc_id)
        cls.addResourceCleanUpStatic(cls.client.delete_vpc, VpcId=cls.vpc_id)
    def setUpClass(cls):
        super(SecurityGroupTest, cls).setUpClass()
        if not base.TesterStateHolder().get_vpc_enabled():
            raise cls.skipException('VPC is disabled')

        resp, data = cls.client.CreateVpc(CidrBlock=cls.VPC_CIDR)
        cls.assertResultStatic(resp, data)
        cls.vpc_id = data['Vpc']['VpcId']
        cls.addResourceCleanUpStatic(cls.client.DeleteVpc, VpcId=cls.vpc_id)
        cls.get_vpc_waiter().wait_available(cls.vpc_id)
Ejemplo n.º 4
0
    def setUpClass(cls):
        super(NetworkInterfaceTest, cls).setUpClass()
        if not base.TesterStateHolder().get_vpc_enabled():
            raise cls.skipException('VPC is disabled')

        data = cls.client.create_vpc(CidrBlock=cls.VPC_CIDR)
        cls.vpc_id = data['Vpc']['VpcId']
        cls.addResourceCleanUpStatic(cls.client.delete_vpc, VpcId=cls.vpc_id)
        cls.get_vpc_waiter().wait_available(cls.vpc_id)

        aws_zone = CONF.aws.aws_zone
        data = cls.client.create_subnet(VpcId=cls.vpc_id,
                                        CidrBlock=cls.SUBNET_CIDR,
                                        AvailabilityZone=aws_zone)
        cls.subnet_id = data['Subnet']['SubnetId']
        cls.addResourceCleanUpStatic(cls.client.delete_subnet,
                                     SubnetId=cls.subnet_id)
        cls.get_subnet_waiter().wait_available(cls.subnet_id)
Ejemplo n.º 5
0
    def setUpClass(cls):
        super(VpnConnectionTest, cls).setUpClass()
        if not base.TesterStateHolder().get_vpc_enabled():
            raise cls.skipException('VPC is disabled')

        data = cls.client.create_customer_gateway(
            Type='ipsec.1', PublicIp=cls.CUSTOMER_GATEWAY_IP, BgpAsn=65000)
        cls.cgw_id = data['CustomerGateway']['CustomerGatewayId']
        cls.addResourceCleanUpStatic(cls.client.delete_customer_gateway,
                                     CustomerGatewayId=cls.cgw_id)
        cls.get_customer_gateway_waiter().wait_available(cls.cgw_id)

        data = cls.client.create_vpn_gateway(
            Type='ipsec.1', AvailabilityZone=CONF.aws.aws_zone)
        cls.vgw_id = data['VpnGateway']['VpnGatewayId']
        cls.addResourceCleanUpStatic(cls.client.delete_vpn_gateway,
                                     VpnGatewayId=cls.vgw_id)
        cls.get_vpn_gateway_waiter().wait_available(cls.vgw_id)
Ejemplo n.º 6
0
    def setUpClass(cls):
        super(InstanceInVPCTest, cls).setUpClass()
        if not base.TesterStateHolder().get_vpc_enabled():
            raise cls.skipException('VPC is disabled')
        if not CONF.aws.image_id:
            raise cls.skipException('aws image_id does not provided')

        resp, data = cls.client.CreateVpc(CidrBlock=cls.VPC_CIDR)
        cls.assertResultStatic(resp, data)
        cls.vpc_id = data['Vpc']['VpcId']
        cls.addResourceCleanUpStatic(cls.client.DeleteVpc, VpcId=cls.vpc_id)
        cls.get_vpc_waiter().wait_available(cls.vpc_id)

        aws_zone = CONF.aws.aws_zone
        resp, data = cls.client.CreateSubnet(VpcId=cls.vpc_id,
                                             CidrBlock=cls.SUBNET_CIDR,
                                             AvailabilityZone=aws_zone)
        cls.assertResultStatic(resp, data)
        cls.subnet_id = data['Subnet']['SubnetId']
        cls.addResourceCleanUpStatic(cls.client.DeleteSubnet,
                                     SubnetId=cls.subnet_id)
        cls.get_subnet_waiter().wait_available(cls.subnet_id)
 def setUpClass(cls):
     super(InstancesInVPCTest, cls).setUpClass()
     if not base.TesterStateHolder().get_vpc_enabled():
         raise cls.skipException('VPC is disabled')
     if not CONF.aws.image_id:
         raise cls.skipException('aws image_id does not provided')
Ejemplo n.º 8
0
    def test_instance_attributes_negative(self):
        instance_id = self.run_instance()

        self.assertRaises('InvalidParameterValue',
            self.client.describe_instance_attribute,
            InstanceId=instance_id, Attribute='fake_attribute')
        self.assertRaises('InvalidInstanceID.NotFound',
            self.client.describe_instance_attribute,
            InstanceId='i-0', Attribute='disableApiTermination')
        if base.TesterStateHolder().get_ec2_enabled():
            self.assertRaises('InvalidParameterCombination',
                self.client.describe_instance_attribute,
                InstanceId=instance_id, Attribute='sourceDestCheck')

        self.assertRaises('InvalidParameterValue',
            self.client.modify_instance_attribute,
            InstanceId=instance_id, Attribute='fake_attribute')
        self.assertRaises('MissingParameter',
            self.client.modify_instance_attribute,
            InstanceId=instance_id, Attribute='disableApiTermination')
        self.assertRaises('InvalidParameterCombination',
            self.client.modify_instance_attribute,
            InstanceId=instance_id)
        self.assertRaises('InvalidParameterCombination',
            self.client.modify_instance_attribute,
            InstanceId=instance_id, Attribute='disableApiTermination',
            Value='True', DisableApiTermination={'Value': False})

        ex_str = ('InvalidParameterCombination'
                  if base.TesterStateHolder().get_ec2_enabled() else
                  'InvalidGroup.NotFound')
        self.assertRaises(ex_str,
            self.client.modify_instance_attribute,
            InstanceId=instance_id, Groups=['sg-0'])
        if base.TesterStateHolder().get_ec2_enabled():
            self.assertRaises('InvalidParameterCombination',
                self.client.modify_instance_attribute,
                InstanceId=instance_id, Attribute='sourceDestCheck',
                Value='False')

        self.assertRaises('InvalidParameterValue',
            self.client.reset_instance_attribute,
            InstanceId=instance_id, Attribute='fake_attribute')
        self.assertRaises('InvalidParameterValue',
            self.client.reset_instance_attribute,
            InstanceId=instance_id, Attribute='disableApiTermination')
        self.assertRaises('InvalidParameterValue',
            self.client.reset_instance_attribute,
            InstanceId='i-0', Attribute='disableApiTermination')
        self.assertRaises('InvalidParameterValue',
            self.client.reset_instance_attribute,
            InstanceId=instance_id, Attribute='groupSet')
        self.assertRaises('InvalidParameterValue',
            self.client.reset_instance_attribute,
            InstanceId=instance_id, Attribute='instanceType')

        if base.TesterStateHolder().get_ec2_enabled():
            self.assertRaises('InvalidParameterCombination',
                self.client.reset_instance_attribute,
                InstanceId=instance_id, Attribute='sourceDestCheck')

        self.assertRaises('IncorrectInstanceState',
            self.client.modify_instance_attribute,
            InstanceId=instance_id, Attribute='instanceType',
            Value=CONF.aws.instance_type)
        self.assertRaises('IncorrectInstanceState',
            self.client.modify_instance_attribute,
            InstanceId=instance_id,
            InstanceType={'Value': CONF.aws.instance_type})

        self.client.terminate_instances(InstanceIds=[instance_id])
        self.get_instance_waiter().wait_delete(instance_id)
Ejemplo n.º 9
0
 def setUpClass(cls):
     super(VPCTest, cls).setUpClass()
     if not base.TesterStateHolder().get_vpc_enabled():
         raise cls.skipException('VPC is disabled')
Ejemplo n.º 10
0
 def setUpClass(cls):
     super(CustomerGatewayTest, cls).setUpClass()
     if not base.TesterStateHolder().get_vpc_enabled():
         raise cls.skipException('VPC is disabled')
     base.check_network_feature_enabled('vpnaas')
Ejemplo n.º 11
0
 def setUpClass(cls):
     super(SecurityGroupEC2ClassicTest, cls).setUpClass()
     if not base.TesterStateHolder().get_ec2_enabled():
         raise cls.skipException('EC2-classic is disabled')
Ejemplo n.º 12
0
    def test_create_instance_with_invalid_params(self):
        def _rollback(fn_data):
            self.client.terminate_instances(
                InstanceIds=[fn_data['Instances'][0]['InstanceId']])

        kwargs = {
            'ImageId': CONF.aws.image_id,
            'InstanceType': CONF.aws.instance_type,
            'MinCount': 1,
            'MaxCount': 1,
            'PrivateIpAddress': '10.16.1.2'
        }
        ex_str = ('InvalidParameterCombination'
                  if base.TesterStateHolder().get_ec2_enabled() else
                  'InvalidParameterValue')
        self.assertRaises(ex_str,
                          self.client.run_instances,
                          rollback_fn=_rollback,
                          **kwargs)

        kwargs = {
            'ImageId': CONF.aws.image_id,
            'InstanceType': CONF.aws.instance_type,
            'MinCount': 1,
            'MaxCount': 1,
            'SubnetId': self.subnet_id,
            'PrivateIpAddress': '10.16.1.12'
        }
        self.assertRaises('InvalidParameterValue',
                          self.client.run_instances,
                          rollback_fn=_rollback,
                          **kwargs)

        kwargs = {
            'SubnetId': self.subnet_id,
        }
        data = self.client.create_network_interface(*[], **kwargs)
        ni_id1 = data['NetworkInterface']['NetworkInterfaceId']
        self.addResourceCleanUp(self.client.delete_network_interface,
                                NetworkInterfaceId=ni_id1)
        self.get_network_interface_waiter().wait_available(ni_id1)

        kwargs = {
            'SubnetId': self.subnet_id,
        }
        data = self.client.create_network_interface(*[], **kwargs)
        ni_id2 = data['NetworkInterface']['NetworkInterfaceId']
        self.addResourceCleanUp(self.client.delete_network_interface,
                                NetworkInterfaceId=ni_id2)
        self.get_network_interface_waiter().wait_available(ni_id2)

        # NOTE(andrey-mp): A network interface may not specify a network
        # interface ID and delete on termination as true
        kwargs = {
            'ImageId':
            CONF.aws.image_id,
            'InstanceType':
            CONF.aws.instance_type,
            'MinCount':
            1,
            'MaxCount':
            1,
            'NetworkInterfaces': [{
                'NetworkInterfaceId': ni_id1,
                'DeviceIndex': 0,
                'DeleteOnTermination': True
            }]
        }
        self.assertRaises('InvalidParameterCombination',
                          self.client.run_instances,
                          rollback_fn=_rollback,
                          **kwargs)

        if CONF.aws.run_incompatible_tests:
            # NOTE(andrey-mp): Each network interface requires a device index.
            kwargs = {
                'ImageId':
                CONF.aws.image_id,
                'InstanceType':
                CONF.aws.instance_type,
                'MinCount':
                1,
                'MaxCount':
                1,
                'NetworkInterfaces': [{
                    'NetworkInterfaceId': ni_id1
                }, {
                    'NetworkInterfaceId': ni_id2
                }]
            }
            self.assertRaises('InvalidParameterValue',
                              self.client.run_instances,
                              rollback_fn=_rollback,
                              **kwargs)