def _create(self, vpc_id, vpc_cidr, subnet_cidrs, internet_gateway_id, compute_subnet_size):
     public_cidr = get_subnet_cidr(
         vpc_cidr=vpc_cidr, occupied_cidr=subnet_cidrs, min_subnet_size=compute_subnet_size + HEAD_NODE_SUBNET_IPS
     )
     _validate_cidr(public_cidr)
     parameters = self.get_cfn_parameters(vpc_id, internet_gateway_id, public_cidr)
     stack_output = _create_network_stack(self, parameters)
     return {"master_subnet_id": get_stack_output_value(stack_output, "PublicSubnetId"), "use_public_ips": "true"}
예제 #2
0
def test_get_subnet_cidr():
    assert_that(
        get_subnet_cidr(
            vpc_cidr="10.0.0.0/16",
            occupied_cidr=["10.0.0.0/18", "10.0.64.0/18", "10.0.128.0/18"],
            min_subnet_size=17000,
        )).is_none()
    assert_that(
        get_subnet_cidr(
            vpc_cidr="10.0.0.0/16",
            occupied_cidr=["10.0.0.0/18", "10.0.64.0/18", "10.0.128.0/18"],
            min_subnet_size=100)).is_equal_to("10.0.192.0/20")
    assert_that(
        get_subnet_cidr(
            vpc_cidr="10.0.0.0/16",
            occupied_cidr=[
                "10.0.0.0/19", "10.0.32.0/20", "10.0.48.0/21", "10.0.64.0/18",
                "10.0.128.0/17"
            ],
            min_subnet_size=100,
        )).is_equal_to("10.0.56.0/21")
    assert_that(get_subnet_cidr("10.0.0.0/16", ["10.0.0.0/24"],
                                256)).is_equal_to("10.0.16.0/20")
 def _create(self, vpc_id, vpc_cidr, subnet_cidrs, internet_gateway_id, compute_subnet_size):  # noqa D102
     public_cidr = evaluate_cidr(vpc_cidr=vpc_cidr, occupied_cidrs=subnet_cidrs, target_size=HEAD_NODE_SUBNET_IPS)
     _validate_cidr(public_cidr)
     subnet_cidrs.append(public_cidr)
     private_cidr = get_subnet_cidr(
         vpc_cidr=vpc_cidr, occupied_cidr=subnet_cidrs, min_subnet_size=compute_subnet_size
     )
     _validate_cidr(private_cidr)
     parameters = self.get_cfn_parameters(vpc_id, internet_gateway_id, public_cidr, private_cidr)
     stack_output = _create_network_stack(self, parameters)
     return {
         "master_subnet_id": get_stack_output_value(stack_output, "PublicSubnetId"),
         "compute_subnet_id": get_stack_output_value(stack_output, "PrivateSubnetId"),
         "use_public_ips": "false",
     }