Skip to content
Snippets Groups Projects
provisioning_proxy.py 2.04 KiB
Newer Older
import logging

from orchestrator.types import UUIDstr

from gso.products.product_blocks.device import DeviceBlockProvisioning
from gso import settings
from gso.products.product_types.device import DeviceProvisioning

logger = logging.getLogger(__name__)
def provision_node(
        node_subscription_params: DeviceProvisioning,
    oss = settings.load_oss_params()
    pp_params = oss.PROVISIONING_PROXY
    assert pp_params
    device_params = node_subscription_params.device
    callback_url = f'{settings.load_oss_params().GENERAL.public_hostname}' \
                   f'/api/process/{process_id}/resume'  # TODO: verify this URL
    logger.debug(f'[disabled] provisioning node {device_params}')
        'callback': callback_url,
        'dry_run': dry_run,
        'device': {
            'fqdn': device_params.fqdn,
            'lo_address': {
                'v4': str(device_params.lo_ipv4_address),
                'v6': str(device_params.lo_ipv6_address)
            },
            'lo_iso_address': device_params.lo_iso_address,
            'si_ipv4_network': str(device_params.si_ipv4_network),
            'ias_lt_network': {
                'v4': str(device_params.ias_lt_ipv4_network),
                'v6': str(device_params.ias_lt_ipv6_network)
            },
            'site_country_code': device_params.site_country_code,
            'site_city': device_params.site_city,
            'site_latitude': device_params.site_latitude,
            'site_longitude': device_params.site_longitude,
            'snmp_location': device_params.snmp_location,
            'device_type': node_subscription_params.device_type,
            'device_vendor': node_subscription_params.device_vendor,
            'ts_address': device_params.ts_address,
            'ts_port': device_params.ts_port
        }
    post_request = requests.post(
        f'{pp_params.scheme}://{pp_params.api_base}'
        json=parameters)
    post_request.raise_for_status()