import logging

from gso.products.product_blocks.device import DeviceBlockProvisioning
from gso import settings
import requests

logger = logging.getLogger(__name__)


def provision_node(
        node_subscription_params: DeviceBlockProvisioning,
        callback_url: str,
        dry_run: bool = True):
    oss = settings.load_oss_params()
    pp_params = oss.PROVISIONING_PROXY
    assert pp_params

    logger.debug(f'[disabled] provisioning node {node_subscription_params}')

    parameters = {
        'callback': callback_url,
        'dry_run': dry_run,
        'device': node_subscription_params.dict()
    }

    r = requests.post(
        f'https://{pp_params.api_base}'
        f'/api/device',
        json=parameters)
    r.raise_for_status()
    requests.post()