def aes_domain_poll_create()

in source/lambda/deploy_es/index.py [0:0]


def aes_domain_poll_create(event, context):
    logger.info("Got create poll")
    suffix = ''.join(secrets.choice(string.ascii_uppercase) for i in range(8))
    physicalResourceId = f'aes-siem-domain-{__version__}-{suffix}'
    kibanapass = helper_domain.Data.get('kibanapass')
    if not kibanapass:
        kibanapass = 'MASKED'
    # response = opensearch_client.describe_domain(DomainName=aesdomain)
    response = client.describe_elasticsearch_domain(DomainName=aesdomain)
    logger.debug('Processing domain creation')
    logger.debug(json.dumps(response, default=json_serial))
    is_processing = response['DomainStatus']['Processing']
    if is_processing:
        return None

    logger.info('OpenSearch Service domain is created')

    userdb_enabled = (response['DomainStatus']['AdvancedSecurityOptions']
                      ['InternalUserDatabaseEnabled'])
    if not userdb_enabled:
        logger.info(f'ID: {KIBANAADMIN}, PASSWORD: {kibanapass}')
        update_response = create_kibanaadmin(kibanapass)
        while not userdb_enabled:
            logger.debug('Processing domain configuration')
            userdb_enabled = (update_response['DomainConfig']
                              ['AdvancedSecurityOptions']['Options']
                              ['InternalUserDatabaseEnabled'])
            time.sleep(3)
        logger.info('Finished doman configuration with new random password')

    es_endpoint = None
    while not es_endpoint:
        time.sleep(10)  # wait to finish setup of endpoint
        logger.debug('Processing ES endpoint creation')
        # response = opensearch_client.describe_domain(DomainName=aesdomain)
        response = client.describe_elasticsearch_domain(DomainName=aesdomain)
        es_endpoint = response['DomainStatus'].get('Endpoint')
        if not es_endpoint and 'Endpoints' in response['DomainStatus']:
            es_endpoint = response['DomainStatus']['Endpoints']['vpc']
    logger.debug('Finished ES endpoint creation')

    # ToDo: import dashboard for aesadmin private tenant
    # tenant = 'private'
    # auth = {'username': 'aesadmin', 'password': kibanapass}
    # cookies = set_tenant_get_cookies(es_endpoint, dist_name, tenant, auth)
    # load_dashboard_into_aes(es_endpoint, dist_name, auth, cookies)

    if event and 'RequestType' in event:
        # Response For CloudFormation Custome Resource
        helper_domain.Data['es_endpoint'] = es_endpoint
        helper_domain.Data['kibanaadmin'] = KIBANAADMIN
        helper_domain.Data['kibanapass'] = kibanapass
        logger.info("End create poll")
        return physicalResourceId