コード例 #1
0
    def setUp(self):

        self.vpc = Mock()
        self.cidr = "10.0.0.0/24"
        self.availability_zone = "a1"
        self.vpc_name = "name"
        self.reservation_id = "res"
        self.tag_srv = Mock()
        self.subnet_waiter = Mock()
        self.subnet_srv = SubnetService(self.tag_srv, self.subnet_waiter)
コード例 #2
0
    def __init__(self):
        self.image_waiter = AMIWaiter()
        self.command_result_parser = CommandResultsParser()
        self.cancellation_service = CommandCancellationService()
        self.client_err_wrapper = ClientErrorWrapper()
        self.tag_service = TagService(
            client_err_wrapper=self.client_err_wrapper)
        self.ec2_instance_waiter = InstanceWaiter(
            cancellation_service=self.cancellation_service)
        self.instance_service = InstanceService(self.tag_service,
                                                self.ec2_instance_waiter)
        self.ec2_storage_service = EC2StorageService()
        self.model_parser = AWSModelsParser()
        self.cloudshell_session_helper = CloudshellDriverHelper()
        self.aws_session_manager = AWSSessionProvider()
        self.password_waiter = PasswordWaiter(self.cancellation_service)
        self.vm_custom_params_extractor = VmCustomParamsExtractor()
        self.ami_credentials_service = InstanceCredentialsService(
            self.password_waiter)
        self.security_group_service = SecurityGroupService(self.tag_service)
        self.subnet_waiter = SubnetWaiter()
        self.subnet_service = SubnetService(self.tag_service,
                                            self.subnet_waiter)
        self.s3_service = S3BucketService()
        self.vpc_peering_waiter = VpcPeeringConnectionWaiter()
        self.key_pair_service = KeyPairService(self.s3_service)
        self.vpc_waiter = VPCWaiter()
        self.route_tables_service = RouteTablesService(self.tag_service)
        self.network_interface_service = NetworkInterfaceService(
            subnet_service=self.subnet_service,
            security_group_service=self.security_group_service,
        )
        self.elastic_ip_service = ElasticIpService()
        self.vm_details_provider = VmDetailsProvider()
        self.session_number_service = SessionNumberService()
        self.traffic_mirror_service = TrafficMirrorService()
        self.request_parser = DriverRequestParser()

        self.vpc_service = VPCService(
            tag_service=self.tag_service,
            subnet_service=self.subnet_service,
            instance_service=self.instance_service,
            vpc_waiter=self.vpc_waiter,
            vpc_peering_waiter=self.vpc_peering_waiter,
            sg_service=self.security_group_service,
            route_table_service=self.route_tables_service,
            traffic_mirror_service=self.traffic_mirror_service,
        )
        self.prepare_connectivity_operation = PrepareSandboxInfraOperation(
            vpc_service=self.vpc_service,
            security_group_service=self.security_group_service,
            key_pair_service=self.key_pair_service,
            tag_service=self.tag_service,
            route_table_service=self.route_tables_service,
            cancellation_service=self.cancellation_service,
            subnet_service=self.subnet_service,
            subnet_waiter=self.subnet_waiter,
        )

        self.deploy_ami_operation = DeployAMIOperation(
            instance_service=self.instance_service,
            ami_credential_service=self.ami_credentials_service,
            security_group_service=self.security_group_service,
            tag_service=self.tag_service,
            vpc_service=self.vpc_service,
            key_pair_service=self.key_pair_service,
            subnet_service=self.subnet_service,
            elastic_ip_service=self.elastic_ip_service,
            network_interface_service=self.network_interface_service,
            cancellation_service=self.cancellation_service,
            device_index_strategy=AllocateMissingValuesDeviceIndexStrategy(),
            vm_details_provider=self.vm_details_provider,
        )

        self.refresh_ip_operation = RefreshIpOperation(
            instance_service=self.instance_service)

        self.power_management_operation = PowerOperation(
            instance_service=self.instance_service,
            instance_waiter=self.ec2_instance_waiter,
        )

        self.delete_ami_operation = DeleteAMIOperation(
            instance_service=self.instance_service,
            ec2_storage_service=self.ec2_storage_service,
            security_group_service=self.security_group_service,
            tag_service=self.tag_service,
            elastic_ip_service=self.elastic_ip_service,
        )

        self.clean_up_operation = CleanupSandboxInfraOperation(
            vpc_service=self.vpc_service,
            key_pair_service=self.key_pair_service,
            route_table_service=self.route_tables_service,
            traffic_mirror_service=self.traffic_mirror_service,
        )

        self.deployed_app_ports_operation = DeployedAppPortsOperation(
            self.vm_custom_params_extractor,
            security_group_service=self.security_group_service,
            instance_service=self.instance_service,
        )

        self.access_key_operation = GetAccessKeyOperation(
            key_pair_service=self.key_pair_service)

        self.set_app_security_groups_operation = SetAppSecurityGroupsOperation(
            instance_service=self.instance_service,
            tag_service=self.tag_service,
            security_group_service=self.security_group_service,
        )

        self.vm_details_operation = VmDetailsOperation(
            instance_service=self.instance_service,
            vm_details_provider=self.vm_details_provider,
        )

        self.autoload_operation = AutoloadOperation()

        self.snapshot_operation = SnapshotOperation(self.instance_service,
                                                    self.image_waiter)

        self.traffic_mirroring_operation = TrafficMirrorOperation(
            tag_service=self.tag_service,
            session_number_service=self.session_number_service,
            traffic_mirror_service=self.traffic_mirror_service,
            cancellation_service=self.cancellation_service,
        )
コード例 #3
0
class TestSubnetService(TestCase):
    def setUp(self):

        self.vpc = Mock()
        self.cidr = "10.0.0.0/24"
        self.availability_zone = "a1"
        self.vpc_name = "name"
        self.reservation_id = "res"
        self.tag_srv = Mock()
        self.subnet_waiter = Mock()
        self.subnet_srv = SubnetService(self.tag_srv, self.subnet_waiter)

    def test_create_subnet_for_vpc(self):
        subnet = Mock()
        self.vpc.create_subnet = Mock(return_value=subnet)
        self.subnet_srv._get_subnet_name = Mock(return_value=self.vpc_name)

        self.subnet_srv.create_subnet_for_vpc(
            self.vpc,
            self.cidr,
            self.vpc_name,
            self.availability_zone,
            self.reservation_id,
        )

        self.vpc.create_subnet.assert_called_with(CidrBlock=self.cidr,
                                                  AvailabilityZone="a1")
        self.subnet_waiter.wait.assert_called_with(
            subnet, self.subnet_waiter.AVAILABLE)
        self.tag_srv.get_default_tags.assert_called_with(
            self.vpc_name, self.reservation_id)
        self.assertEqual(subnet, self.vpc.create_subnet())

    def test_delete_subnet(self):
        subnet = Mock()
        res = self.subnet_srv.delete_subnet(subnet)
        self.assertTrue(res)
        self.assertTrue(subnet.delete.called)

    def test_get_subnet_name(self):
        subnet_name = self.subnet_srv._get_subnet_name("some_subnet")
        self.assertEquals(subnet_name, "VPC Name: some_subnet")

    def test_get_vpc_subnets(self):
        # arrange
        subnet1 = Mock()
        subnet2 = Mock()
        vpc = Mock()
        vpc.subnets.all = Mock(return_value=[subnet1, subnet2])

        # act
        subnets = self.subnet_srv.get_vpc_subnets(vpc)

        # assert
        vpc.subnets.all.assert_called_once()
        self.assertTrue(subnet1 in subnets)
        self.assertTrue(subnet2 in subnets)
        self.assertEquals(len(subnets), 2)

    def test_get_vpc_subnets_throw_if_empty(self):
        # arrange
        vpc = Mock()
        vpc.id = "123"
        vpc.subnets.all = Mock(return_value=[])
        # act
        with self.assertRaises(Exception,
                               msg="The given VPC(123) has no subnets"):
            self.subnet_srv.get_vpc_subnets(vpc)
        # assert
        vpc.subnets.all.assert_called_once()

    def test_get_first_or_none_subnet_from_vpc_returns_first(self):
        # arrange
        subnet1 = Mock()
        subnet2 = Mock()
        vpc = Mock()
        vpc.subnets.all = Mock(return_value=[subnet1, subnet2])

        # act
        subnet_result = self.subnet_srv.get_first_or_none_subnet_from_vpc(
            vpc=vpc)

        # assert
        vpc.subnets.all.assert_called_once()
        self.assertEquals(subnet1, subnet_result)

    def test_set_subnet_route_table(self):
        # arrange
        ec2_client = Mock()
        # act
        self.subnet_srv.set_subnet_route_table(ec2_client=ec2_client,
                                               subnet_id="123",
                                               route_table_id="456")
        # assert
        ec2_client.associate_route_table.assert_called_with(RouteTableId="456",
                                                            SubnetId="123")

    def test_create_subnet_nowait(self):
        # Act
        self.subnet_srv.create_subnet_nowait(self.vpc, "1.2.3.4/24", "zoneA")
        # Assert
        self.vpc.create_subnet.assert_called_once_with(
            CidrBlock="1.2.3.4/24", AvailabilityZone="zoneA")

    def test_get_first_or_none_subnet_from_vpc__returns_none(self):
        # Arrange
        self.vpc.subnets.all = Mock(return_value=[])
        # Act
        subnet = self.subnet_srv.get_first_or_none_subnet_from_vpc(self.vpc)
        # Assert
        self.assertEqual(subnet, None)

    def test_get_first_or_none_subnet_from_vpc__returns_by_cidr(self):
        # Arrange
        s = Mock()
        s.cidr_block = "1.2.3.4/24"
        self.vpc.subnets.all = Mock(return_value=[s, Mock()])
        # Act
        subnet = self.subnet_srv.get_first_or_none_subnet_from_vpc(
            self.vpc, "1.2.3.4/24")
        # Assert
        self.assertEqual(subnet, s)