def _verify_boomi_licensing()

in functions/source/LicenseVerificationAndTokenGenerator/lambda_function.py [0:0]


def _verify_boomi_licensing(username, password, account):
    _headers = _create_auth_headers(username, password, account)
    API_URL = f"https://api.boomi.com/api/rest/v1/{account}/Account/{account}"
    resp = requests.get(API_URL, headers=_headers)
    resp.raise_for_status()
    json_resp = resp.json()

    account_status = json_resp['status']
    molecule_licenses_purchased = json_resp['molecule']['purchased']
    molecule_licenses_used = json_resp['molecule']['used']

    # Is the account active?
    if account_status == 'active':
        logger.info(f"Account is active")
    else:
        logger.error('Exception: Boomi account is inactive')
        raise Exception(f"Boomi account {account} is inactive.")

    # Do we have license entitelements at all?
    if molecule_licenses_purchased > molecule_licenses_used:
        logger.info(
            f"Licenses are available - Purchased: {molecule_licenses_purchased} / Used: {molecule_licenses_used}")
    else:
        logger.error('Exception: No molecule license available')
        raise Exception(
            f"No molecule licenses for account {account} are available. Purchased: {molecule_licenses_purchased}, Used: {molecule_licenses_used}")