Exemple #1
0
def task_create_ibm_ike_policy(self, task_id, cloud_id, region, ike_policy_id):
    """Create and configure ike policy"""

    ibm_ike_policy = doosradb.session.query(IBMIKEPolicy).filter_by(id=ike_policy_id).first()
    if not ibm_ike_policy:
        return

    self.resource_type = "ike_policies"
    self.resource = ibm_ike_policy
    self.report_utils.update_reporting(
        task_id=task_id, resource_name=self.resource.name, resource_type=self.resource_type, stage=PROVISIONING,
        status=IN_PROGRESS
    )
    configured_ike_policy = self.ibm_manager.rias_ops.fetch_ops.get_all_ike_policies(name=ibm_ike_policy.name)
    configured_ike_policy = configured_ike_policy[0] if configured_ike_policy else None
    if not configured_ike_policy:
        ibm_ike_policy.status = CREATING
        doosradb.session.commit()
        configured_ike_policy = configure_and_save_obj_confs(self.ibm_manager, ibm_ike_policy)

    ibm_ike_policy.status = CREATED
    ibm_ike_policy.resource_id = configured_ike_policy.resource_id
    doosradb.session.commit()

    LOGGER.info(
        "IBM IKE Policy with name '{}' created successfully".format(ibm_ike_policy.name)
    )

    log_resource_billing(self.cloud.project.user_id, self.cloud.project.id, ibm_ike_policy)

    self.report_utils.update_reporting(
        task_id=task_id, resource_name=self.resource.name, resource_type=self.resource_type, stage=PROVISIONING,
        status=SUCCESS
    )
Exemple #2
0
def task_create_ibm_vpn(self, task_id, cloud_id, region, vpn_id):
    """Create and configure VPN and Connections """

    ibm_vpn_gateway = doosradb.session.query(IBMVpnGateway).filter_by(id=vpn_id).first()
    if not ibm_vpn_gateway:
        return

    ibm_vpn_gateway.status = CREATING
    doosradb.session.commit()
    self.resource = ibm_vpn_gateway
    self.resource_type = "vpn_gateways"
    self.report_utils.update_reporting(
        task_id=task_id, resource_name=self.resource.name, resource_type=self.resource_type, stage=PROVISIONING,
        status=IN_PROGRESS
    )
    configured_vpn_gateway = configure_and_save_obj_confs(self.ibm_manager, ibm_vpn_gateway)
    ibm_vpn_gateway.status = CREATED
    ibm_vpn_gateway.resource_id = configured_vpn_gateway.resource_id
    ibm_vpn_gateway.gateway_status = configured_vpn_gateway.gateway_status
    ibm_vpn_gateway.public_ip = configured_vpn_gateway.public_ip
    doosradb.session.commit()
    LOGGER.info("IBM VPN with name '{}' created successfully".format(ibm_vpn_gateway.name))

    log_resource_billing(self.cloud.project.user_id, self.cloud.project.id, ibm_vpn_gateway)

    self.report_utils.update_reporting(
        task_id=task_id, resource_name=self.resource.name, resource_type=self.resource_type, stage=PROVISIONING,
        status=SUCCESS
    )
Exemple #3
0
def task_configure_ibm_vpn_connection(self, task_id, cloud_id, region, vpn_connection_id, resource_group=None):
    """Configure vpn connection"""

    ibm_vpn_connection = doosradb.session.query(IBMVpnConnection).filter_by(id=vpn_connection_id).first()
    if not ibm_vpn_connection:
        return

    if resource_group:
        ibm_resource_group = IBMResourceGroup(name=resource_group, cloud_id=cloud_id)
        ibm_resource_group = ibm_resource_group.get_existing_from_db() or ibm_resource_group
        ibm_vpn_connection.ibm_resource_group = ibm_resource_group
    doosradb.session.commit()

    self.resource = ibm_vpn_connection
    self.resource_type = "vpn_connections"
    self.report_utils.update_reporting(
        task_id=task_id, resource_name=self.resource.name, resource_type=self.resource_type, stage=PROVISIONING,
        status=IN_PROGRESS
    )
    configured_vpn_connection = configure_and_save_obj_confs(self.ibm_manager, ibm_vpn_connection)
    ibm_vpn_connection = configured_vpn_connection.make_copy().add_update_db(ibm_vpn_connection.ibm_vpn_gateway)
    LOGGER.info("IBM VPN Connection with name '{}' created successfully".format(ibm_vpn_connection.name))

    log_resource_billing(self.cloud.project.user_id, self.cloud.project.id, ibm_vpn_connection)

    self.report_utils.update_reporting(
        task_id=task_id, resource_name=self.resource.name, resource_type=self.resource_type, stage=PROVISIONING,
        status=SUCCESS
    )
def task_add_ibm_address_prefix(self, task_id, cloud_id, region,
                                addr_prefix_id):
    """Create and configure address prefixes"""

    ibm_address_prefix = doosradb.session.query(IBMAddressPrefix).filter_by(
        id=addr_prefix_id).first()
    if not ibm_address_prefix:
        return

    ibm_address_prefix.status = CREATING
    doosradb.session.commit()
    self.resource = ibm_address_prefix
    self.resource_type = "address_prefixes"
    self.report_utils.update_reporting(task_id=task_id,
                                       resource_name=self.resource.name,
                                       resource_type=self.resource_type,
                                       stage=PROVISIONING,
                                       status=IN_PROGRESS)
    configured_address_prefix = configure_and_save_obj_confs(
        self.ibm_manager, ibm_address_prefix)
    ibm_address_prefix.status = CREATED
    ibm_address_prefix.resource_id = configured_address_prefix.resource_id
    doosradb.session.commit()
    LOGGER.info(
        "IBM Address Prefix with name '{}' created successfully".format(
            ibm_address_prefix.name))

    log_resource_billing(self.cloud.project.user_id, self.cloud.project.id,
                         ibm_address_prefix)

    self.report_utils.update_reporting(task_id=task_id,
                                       resource_name=self.resource.name,
                                       resource_type=self.resource_type,
                                       stage=PROVISIONING,
                                       status=SUCCESS)
Exemple #5
0
def task_create_ibm_route(self, task_id, cloud_id, region, route_id):
    """Create IBMRoute and configures on ibm cloud"""
    ibm_route = doosradb.session.query(IBMVpcRoute).filter_by(
        id=route_id).first()
    if not ibm_route:
        return
    ibm_route.status = CREATING
    doosradb.session.commit()
    self.resource = ibm_route
    self.resource_type = "routes"
    self.report_utils.update_reporting(task_id=task_id,
                                       resource_name=self.resource.name,
                                       resource_type=self.resource_type,
                                       stage=PROVISIONING,
                                       status=IN_PROGRESS)
    configured_route = configure_and_save_obj_confs(self.ibm_manager,
                                                    ibm_route)
    ibm_route = configured_route.make_copy().add_update_db(
        ibm_route.ibm_vpc_network)
    ibm_route.status = CREATED
    doosradb.session.commit()
    LOGGER.info("IBM Route with name '{route}' created successfully".format(
        route=ibm_route.name))

    log_resource_billing(self.cloud.project.user_id, self.cloud.project.id,
                         ibm_route)

    self.report_utils.update_reporting(task_id=task_id,
                                       resource_name=self.resource.name,
                                       resource_type=self.resource_type,
                                       stage=PROVISIONING,
                                       status=SUCCESS)
def task_add_ibm_security_group(self, task_id, cloud_id, region, security_group_id):
    """Create and configure Security Group"""

    ibm_security_group = doosradb.session.query(IBMSecurityGroup).filter_by(id=security_group_id).first()
    if not ibm_security_group:
        return
    ibm_security_group.status = CREATING
    doosradb.session.commit()
    self.resource = ibm_security_group
    self.resource_type = "security_groups"
    self.report_utils.update_reporting(
        task_id=task_id, resource_name=self.resource.name, resource_type=self.resource_type, stage=PROVISIONING,
        status=IN_PROGRESS
    )
    configured_security_group = configure_and_save_obj_confs(self.ibm_manager, ibm_security_group)
    ibm_security_group = configured_security_group.make_copy().add_update_db(ibm_security_group.ibm_vpc_network)
    LOGGER.info(
        "IBM Security Group with name '{}' created successfully".format(ibm_security_group.name))

    log_resource_billing(self.cloud.project.user_id, self.cloud.project.id, ibm_security_group)

    self.report_utils.update_reporting(
        task_id=task_id, resource_name=self.resource.name, resource_type=self.resource_type, stage=PROVISIONING,
        status=SUCCESS
    )
Exemple #7
0
def task_create_ibm_ssh_key(self,
                            task_id,
                            cloud_id,
                            region,
                            ssh_key_id,
                            resource_group=None):
    """Create and configure ssh key"""

    ibm_ssh_key = doosradb.session.query(IBMSshKey).filter_by(
        id=ssh_key_id).first()
    if not ibm_ssh_key:
        return

    self.resource = ibm_ssh_key
    self.resource_type = "ssh_keys"
    self.report_utils.update_reporting(task_id=task_id,
                                       resource_name=self.resource.name,
                                       resource_type=self.resource_type,
                                       stage=PROVISIONING,
                                       status=IN_PROGRESS)
    configured_ssh_key = self.ibm_manager.rias_ops.fetch_ops.get_all_ssh_keys(
        name=ibm_ssh_key.name, public_key=ibm_ssh_key.public_key)

    configured_ssh_key = configured_ssh_key[0] if configured_ssh_key else None
    if not configured_ssh_key:
        ibm_ssh_key.status = CREATING
        if resource_group:
            ibm_resource_group = IBMResourceGroup(name=resource_group,
                                                  cloud_id=cloud_id)
            ibm_resource_group = ibm_resource_group.get_existing_from_db(
            ) or ibm_resource_group
            ibm_ssh_key.ibm_resource_group = ibm_resource_group

        doosradb.session.commit()
        self.resource = ibm_ssh_key
        configured_ssh_key = configure_and_save_obj_confs(
            self.ibm_manager, ibm_ssh_key)

    ibm_ssh_key.status = CREATED
    ibm_ssh_key.resource_id = configured_ssh_key.resource_id
    doosradb.session.commit()
    LOGGER.info("IBM SSH Key with name '{}' created successfully".format(
        ibm_ssh_key.name))

    log_resource_billing(self.cloud.project.user_id, self.cloud.project.id,
                         ibm_ssh_key)

    self.report_utils.update_reporting(task_id=task_id,
                                       resource_name=self.resource.name,
                                       resource_type=self.resource_type,
                                       stage=PROVISIONING,
                                       status=SUCCESS)
Exemple #8
0
def task_create_floating_ip(self, data, user_id, project_id):
    time.sleep(1)
    ibm_floating_ip = configure_floating_ip(data)
    task = (doosradb.session.query(IBMTask).filter_by(
        id=str(self.request.id).strip()).first())
    if task and ibm_floating_ip and ibm_floating_ip.status == CREATED:
        task.status = SUCCESS
        task.resource_id = ibm_floating_ip.id
        log_resource_billing(user_id, project_id, ibm_floating_ip)
    elif task and ibm_floating_ip:
        task.status = FAILED
        task.resource_id = ibm_floating_ip.id
    elif task:
        task.status = FAILED
    doosradb.session.commit()
Exemple #9
0
def task_create_ibm_vpn_gateway(self, name, vpc_id, data, user_id, project_id):
    time.sleep(1)
    ibm_vpn_gateway = configure_ibm_vpn_gateway(name, vpc_id, data)
    task = (doosradb.session.query(IBMTask).filter_by(
        id=str(self.request.id).strip()).first())
    if task and ibm_vpn_gateway and ibm_vpn_gateway.status == CREATED:
        task.status = SUCCESS
        task.resource_id = ibm_vpn_gateway.id
        log_resource_billing(user_id, project_id, ibm_vpn_gateway)
    elif task and ibm_vpn_gateway:
        task.status = FAILED
        task.resource_id = ibm_vpn_gateway.id
    elif task:
        task.status = FAILED
    doosradb.session.commit()
Exemple #10
0
def task_create_ibm_vpc_address_prefix(self, data, vpc_id, user_id,
                                       project_id):
    time.sleep(1)
    ibm_vpc_address_prefix = configure_address_prefix(data, vpc_id)
    task = (doosradb.session.query(IBMTask).filter_by(
        id=str(self.request.id).strip()).first())
    if task and ibm_vpc_address_prefix and ibm_vpc_address_prefix.status == CREATED:
        task.status = SUCCESS
        task.resource_id = ibm_vpc_address_prefix.id
        log_resource_billing(user_id, project_id, ibm_vpc_address_prefix)
    elif task and ibm_vpc_address_prefix:
        task.status = FAILED
        task.resource_id = ibm_vpc_address_prefix.id
    elif task:
        task.status = FAILED
    doosradb.session.commit()
Exemple #11
0
def task_create_ibm_network_acl_rule(self, rule_name, acl_id, data, user_id,
                                     project_id):
    time.sleep(1)
    ibm_acl_rule = configure_network_acl_rule(acl_id, rule_name, data)
    task = (doosradb.session.query(IBMTask).filter_by(
        id=str(self.request.id).strip()).first())
    if task and ibm_acl_rule and ibm_acl_rule.status == CREATED:
        task.status = SUCCESS
        task.resource_id = ibm_acl_rule.id
        log_resource_billing(user_id, project_id, ibm_acl_rule)
    elif task and ibm_acl_rule:
        task.status = FAILED
        task.resource_id = ibm_acl_rule.id
    elif task:
        task.status = FAILED
    doosradb.session.commit()
Exemple #12
0
def task_create_ibm_subnet(self, name, vpc_id, data, user_id, project_id):
    time.sleep(1)
    ibm_vpc = IBMVpcNetwork.query.get(vpc_id)
    subnet = configure_ibm_subnet(name, ibm_vpc, data)
    task = (doosradb.session.query(IBMTask).filter_by(
        id=str(self.request.id).strip()).first())
    if task and subnet and subnet.status == CREATED:
        task.status = SUCCESS
        task.resource_id = subnet.id
        log_resource_billing(user_id, project_id, subnet)
    elif task and subnet:
        task.status = FAILED
        task.resource_id = subnet.id
    elif task:
        task.status = FAILED
    doosradb.session.commit()
Exemple #13
0
def task_create_ibm_route_for_vpc_network(self, cloud_id, vpc_id, data,
                                          user_id, project_id):
    time.sleep(1)
    route = configure_ibm_vpc_route(cloud_id, vpc_id, data)
    task = (doosradb.session.query(IBMTask).filter_by(
        id=str(self.request.id).strip()).first())
    if task and route and route.status == CREATED:
        task.status = SUCCESS
        task.resource_id = route.id
        log_resource_billing(user_id, project_id, route)
    elif task and route:
        task.status = FAILED
        task.resource_id = route.id
    elif task:
        task.status = FAILED

    doosradb.session.commit()
Exemple #14
0
def task_create_ibm_vpc_network(self, cloud_id, vpc_name, region, data,
                                user_id, project_id):
    time.sleep(1)
    vpc = configure_ibm_vpc(cloud_id, vpc_name, region, data)
    task = (doosradb.session.query(IBMTask).filter_by(
        id=str(self.request.id).strip()).first())
    if task and vpc and vpc.status == CREATED:
        task.status = SUCCESS
        task.resource_id = vpc.id
        log_resource_billing(user_id, project_id, vpc)
    elif task and vpc:
        task.status = FAILED
        task.resource_id = vpc.id
    elif task:
        task.status = FAILED

    doosradb.session.commit()
def task_create_ibm_public_gateway(self,
                                   task_id,
                                   cloud_id,
                                   region,
                                   public_gateway_id,
                                   resource_group=None):
    """Create and configure public gateway"""

    ibm_public_gateway = doosradb.session.query(IBMPublicGateway).filter_by(
        id=public_gateway_id).first()
    if not ibm_public_gateway:
        return
    ibm_public_gateway.status = CREATING

    if resource_group:
        ibm_resource_group = IBMResourceGroup(name=resource_group,
                                              cloud_id=cloud_id)
        ibm_resource_group = ibm_resource_group.get_existing_from_db(
        ) or ibm_resource_group
        ibm_public_gateway.ibm_resource_group = ibm_resource_group

    doosradb.session.commit()
    self.resource = ibm_public_gateway
    self.resource_type = "public_gateways"
    self.report_utils.update_reporting(task_id=task_id,
                                       resource_name=self.resource.name,
                                       resource_type=self.resource_type,
                                       stage=PROVISIONING,
                                       status=IN_PROGRESS)
    configured_public_gateway = configure_and_save_obj_confs(
        self.ibm_manager, ibm_public_gateway)
    ibm_public_gateway = configured_public_gateway.make_copy().add_update_db(
        ibm_public_gateway.ibm_vpc_network)
    LOGGER.info(
        "IBM Public Gateway with name '{}' created successfully".format(
            ibm_public_gateway.name))

    log_resource_billing(self.cloud.project.user_id, self.cloud.project.id,
                         ibm_public_gateway)

    self.report_utils.update_reporting(task_id=task_id,
                                       resource_name=self.resource.name,
                                       resource_type=self.resource_type,
                                       stage=PROVISIONING,
                                       status=SUCCESS)
Exemple #16
0
def task_create_ibm_acl(self,
                        task_id,
                        cloud_id,
                        region,
                        acl_id,
                        resource_group=None):
    """Create and configure ACL"""
    ibm_acl = doosradb.session.query(IBMNetworkAcl).filter_by(
        id=acl_id).first()
    if not ibm_acl:
        return
    ibm_acl.status = CREATING

    if resource_group:
        ibm_resource_group = IBMResourceGroup(name=resource_group,
                                              cloud_id=cloud_id)
        ibm_resource_group = ibm_resource_group.get_existing_from_db(
        ) or ibm_resource_group
        ibm_acl.ibm_resource_group = ibm_resource_group

    doosradb.session.commit()
    self.resource = ibm_acl
    self.resource_type = "acls"
    self.report_utils.update_reporting(task_id=task_id,
                                       resource_name=self.resource.name,
                                       resource_type=self.resource_type,
                                       stage=PROVISIONING,
                                       status=IN_PROGRESS)
    configured_acl = configure_and_save_obj_confs(self.ibm_manager, ibm_acl)
    ibm_acl.status = CREATED
    ibm_acl.resource_id = configured_acl.resource_id
    doosradb.session.commit()
    LOGGER.info("IBM ACL with name '{acl}' created successfully".format(
        acl=ibm_acl.name))

    log_resource_billing(self.cloud.project.user_id, self.cloud.project.id,
                         ibm_acl)

    self.report_utils.update_reporting(task_id=task_id,
                                       resource_name=self.resource.name,
                                       resource_type=self.resource_type,
                                       stage=PROVISIONING,
                                       status=SUCCESS)