Esempio n. 1
0
def fetch_and_save_service_config(args, token, version, filename):
    try:
        # build request url
        service_mgmt_url = SERVICE_MGMT_URL_TEMPLATE.format(
            args.management, args.service, version)
        # Validate service config if we have service name and version
        logging.info("Fetching the service configuration "\
                     "from the service management service")
        # download service config
        config = fetch.fetch_service_json(service_mgmt_url, token)

        # Save service json for ESP
        service_config = args.config_dir + "/" + filename

        try:
            f = open(service_config, 'w+')
            json.dump(config,
                      f,
                      sort_keys=True,
                      indent=2,
                      separators=(',', ': '))
            f.close()
        except IOError as err:
            logging.error("Cannot save service config." + err.strerror)
            sys.exit(3)

    except fetch.FetchError as err:
        logging.error(err.message)
        sys.exit(err.code)
Esempio n. 2
0
def fetch_service_config(args, service_config):
    try:
        # Fetch service config
        if args.service_config_url is None:
            if args.service is None:
                logging.info(
                    "Fetching the service name from the metadata service")
                args.service = fetch.fetch_service_name(args.metadata)

            if args.version is None:
                logging.info(
                    "Fetching the service config ID from the metadata service")
                args.version = fetch.fetch_service_config_id(args.metadata)

            service_mgmt_url = SERVICE_MGMT_URL_TEMPLATE.format(
                args.service, args.version)
        else:
            service_mgmt_url = args.service_config_url

        # Get the access token
        if args.service_account_key is None:
            logging.info("Fetching an access token from the metadata service")
            token = fetch.fetch_access_token(args.metadata)
        else:
            token = fetch.make_access_token(args.service_account_key)

        logging.info(
            "Fetching the service configuration from the service management service"
        )
        config = fetch.fetch_service_json(service_mgmt_url, token)

        # Validate service config if we have service name and version
        if args.service is not None and args.version is not None:
            fetch.validate_service_config(config, args.service, args.version)

        # Save service json for ESP
        try:
            f = open(service_config, 'w+')
            json.dump(config,
                      f,
                      sort_keys=True,
                      indent=2,
                      separators=(',', ': '))
            f.close()
        except IOError as err:
            logging.error("Cannot save service config." + err.strerror)
            sys.exit(3)

    except fetch.FetchError as err:
        logging.error(err.message)
        sys.exit(err.code)
Esempio n. 3
0
def fetch_and_save_service_config_url(config_dir, token, service_mgmt_url, filename):
    try:
        # download service config
        config = fetch.fetch_service_json(service_mgmt_url, token)

        # Save service json for ESP
        service_config = config_dir + "/" + filename

        try:
            f = open(service_config, 'w+')
            json.dump(config, f, sort_keys=True, indent=2,
                      separators=(',', ': '))
            f.close()
        except IOError as err:
            logging.error("[ESP] Cannot save service config." + err.strerror)
            sys.exit(3)

    except fetch.FetchError as err:
        logging.error(err.message)
        sys.exit(err.code)