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)