def main()

in blueprints/cloud-operations/network-quota-monitoring/src/main.py [0:0]


def main(discovery_root, monitoring_project, project=None, folder=None,
         custom_quota_file=None, dump_file=None, load_file=None,
         debug_plugin=None, debug=False):
  'CLI entry point.'
  logging.basicConfig(level=logging.INFO if not debug else logging.DEBUG)
  if discovery_root.partition('/')[0] not in ('folders', 'organizations'):
    raise SystemExit('Invalid discovery root.')
  descriptors = []
  timeseries = []
  if load_file:
    resources = json.load(load_file)
  else:
    custom_quota = {}
    resources = {}
    if custom_quota_file:
      try:
        custom_quota = yaml.load(custom_quota_file, Loader=yaml.Loader)
      except yaml.YAMLError as e:
        raise SystemExit(f'Error decoding custom quota file: {e.args[0]}')
    do_init(resources, discovery_root, monitoring_project, folder, project,
            custom_quota)
    do_discovery(resources)
    if dump_file:
      json.dump(resources, dump_file, indent=2)
  do_timeseries_calc(resources, descriptors, timeseries, debug_plugin)
  do_timeseries_descriptors(monitoring_project, resources['metric-descriptors'],
                            descriptors)
  do_timeseries(monitoring_project, timeseries, descriptors)