import argparse from owsclient import OwsClient from fansifter_common.m2m_token import M2MTokenManager from fansifter_common.adapters.aws.secretsmanager import SecretsManager secrets_manager = SecretsManager(region_name="us-east-1") def notify_ows_dmp(env: str): M2M_TOKEN_SECRET_KEY_NAME = f"{env}/lambda-jwt-refresh/jwt_token" M2M_TOKEN_SECRET_EXPIRY_KEY_NAME = ( f"{env}/lambda-jwt-refresh/jwt_token_expiration" ) m2m_token_manager: M2MTokenManager = M2MTokenManager( secrets_manager=secrets_manager, secret_name_key=M2M_TOKEN_SECRET_KEY_NAME, secret_expire_name_key=M2M_TOKEN_SECRET_EXPIRY_KEY_NAME, ) ows_client = OwsClient( environment=env, service_name="ows-dmp", m2m_token_manager=m2m_token_manager, ) meta_notify_path = "/meta/ad-reporting/handle-dbt-sync" tiktok_notify_path = "/tiktok/ad-reporting/handle-dbt-sync" google_notify_path = "/google/ad-reporting/handle-dbt-sync" try: response = ows_client.post( service_name="ows-dmp", path=meta_notify_path, timeout=10, ) response.raise_for_status() response = ows_client.post( service_name="ows-dmp", path=tiktok_notify_path, timeout=10 ) response.raise_for_status() response = ows_client.post( service_name="ows-dmp", path=google_notify_path, timeout=10 ) response.raise_for_status() except Exception as exc: print("Failed to notify OWS DMP, error: {}".format(exc)) if __name__ == '__main__': parser = argparse.ArgumentParser(description='Notify OWS DMP about finished dbt run') parser.add_argument( '-e', '--environment', type=str, help='Environment (qa, prod)', default='qa', choices=['qa', 'prod'] ) args = parser.parse_args() notify_ows_dmp(env=args.environment)