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 __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, )
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)