Exemplo n.º 1
0
    def delete_transitive_peering(self):
        logger.info('Begin deleting transitive peering from gateway1 to vpc3 through gateway2...')
        response = delete_transitive_peering(logger, self.base_url, self.cid,
                                             self.gateway1_name, self.gateway2_name, self.vpc3_cidr)
        logger.info('End deleting transitive peering from gateway1 to vpc3 through gateway2')
        self.handle_api_error(response, raise_except=True)

        time.sleep(10)

        logger.info('Pings from user instance from VPC1 to user instance in VPC3 without Transitive Peering')
        logger.info('SSH into the user instance at VPC1')
        vpc1_cfg = read_config_file(file_path=self.cfg_file_vpc1)
        vpc3_cfg = read_config_file(file_path=self.cfg_file_vpc3)
        ssh = SSHSession(vpc1_cfg['inst_public_ip'], 'ubuntu', ssh_key=self.private_key)

        ping_result = ping_from_instance(ssh, vpc3_cfg['inst_private_ip'])

        if not ping_result:
            logger.error('Test passed - Ping failed WITHOUT transitive peering')
            ssh.close()
            return True
        else:
            logger.info('Test failed - Ping succeeded WITHOUT transitive peering')
            ssh.close()
            return False
Exemplo n.º 2
0
    def __init__(self, argv):
        config_file = './' + argv[1]
        logger.info('config_file: {}'.format(config_file))
        cfg = read_config_file(file_path=config_file)
        self.account_name = cfg['account_name']
        self.account_password = cfg['account_password']
        self.account_email = cfg['account_email']
        self.cloud_type = cfg['cloud_type']
        self.aws_account_number = cfg['aws_account_number']
        self.aws_access_key_id = cfg['aws_access_key_id']
        self.aws_secret_access_key = cfg['aws_secret_access_key']
        self.ucc_public_ip = cfg['ucc_public_ip']
        self.controller_username = cfg['controller_username']
        self.controller_password = cfg['controller_password']
        self.region_vpc1 = cfg['region_vpc1']
        self.region_vpc2 = cfg['region_vpc2']
        self.region_vpc3 = cfg['region_vpc3']
        self.vpc1_cidr = cfg['vpc1_cidr']
        self.vpc2_cidr = cfg['vpc2_cidr']
        self.vpc3_cidr = cfg['vpc3_cidr']
        self.vpc1_subnet_cidr = cfg['vpc1_subnet_cidr']
        self.vpc2_subnet_cidr = cfg['vpc2_subnet_cidr']
        self.vpc3_subnet_cidr = cfg['vpc3_subnet_cidr']
        self.vpc1_tag = cfg['vpc1_tag']
        self.vpc2_tag = cfg['vpc2_tag']
        self.vpc3_tag = cfg['vpc3_tag']
        self.gateway1_size = cfg['gateway1_size']
        self.gateway2_size = cfg['gateway2_size']
        self.gateway3_size = cfg['gateway3_size']
        self.gateway1_name = cfg['gateway1_name']
        self.gateway2_name = cfg['gateway2_name']
        self.gateway3_name = cfg['gateway3_name']
        self.base_url = "https://" + self.ucc_public_ip + "/v1/api"

        self.cfg_file_vpc1 = CONFIG_PATH + self.vpc1_tag + CFG_EXT
        self.cfg_file_vpc2 = CONFIG_PATH + self.vpc2_tag + CFG_EXT
        self.cfg_file_vpc3 = CONFIG_PATH + self.vpc3_tag + CFG_EXT
        self.private_key = CONFIG_PATH + self.vpc1_tag + SSHKEY_EXT
        self.aws_cfg_vpc1 = []
        self.aws_cfg_vpc2 = []
        self.aws_cfg_vpc3 = []
        self.cid = ''

        # Login controller to retrieve CID
        logger.info('Begin login controller...')
        response = login_GET_method(
            url=self.base_url,
            username=self.controller_username,
            password=self.controller_password)
        resp_json = response.json()
        if resp_json["return"]:
            self.cid = resp_json["CID"]
            logger.info(msg="CID: " + self.cid)
        logger.info('End login controller.')
        self.handle_api_error(response, raise_except=True)
Exemplo n.º 3
0
    def create_gateway2(self):
        logger.info('Begin launching Aviatrix gateway2 with NAT enabled in VPC2...')

        self.aws_cfg_vpc2 = read_config_file(file_path=self.cfg_file_vpc2)
        vpc_server_id = self.aws_cfg_vpc2['vpc_id']
        subnet_name = self.vpc2_subnet_cidr + '~~' + \
                      self.region_vpc2 + '~~' + self.vpc2_tag + '-public'

        response = create_gateway(
            url=self.base_url,
            CID=self.cid,
            avx_cloud_account_name=self.account_name,
            cloud_type=self.cloud_type,
            vpc_region=self.region_vpc2,
            vpc_id=vpc_server_id,
            subnet_name=subnet_name,
            gateway_size=self.gateway2_size,
            gateway_name=self.gateway2_name,
            allocate_new_eip="on",
            enable_nat="yes",
            vpn_access="no")
        logger.info('End launching Aviatrix gateway2 in VPC2.')

        self.handle_api_error(response, raise_except=True)

        logger.info('Begin getting Aviatrix gateway2 info...')
        response = get_gateway_info(
            url=self.base_url,
            CID=self.cid,
            gateway_name=self.gateway2_name)
        logger.info('End getting Aviatrix gateway2 info.')
        self.handle_api_error(response, raise_except=True)
        resp = response.json()
        cfg_gw = resp['results']
        logger.info('cfg_gw: {}'.format(cfg_gw))

        return cfg_gw