def main()

in tooling/mass-change/mass-change.py [0:0]


def main():

  args = parseArguments()

  dir = args.amba_dir

  # Walk the directory structure and find all alerts.yaml files
  for subdir, dirs, files in os.walk(dir):
    for file in files:
      if file != "alerts.yaml":
        continue

      with open(os.path.join(subdir, file), "r+") as f:

        alerts = []
        try:
          alerts = yaml.load(f, Loader=yaml.FullLoader)
        except:
          continue

        resourceType = os.path.basename(subdir)
        resouceCategory = os.path.basename(os.path.dirname(subdir))

        if alerts:
          duplicate_alerts = []
          metric_names = set()
          for alert in alerts:
            # skip if type is not Metric
            if alert.get("type") != "Metric":
              continue

            metric_name = alert["properties"]["metricName"]
            if metric_name in metric_names:
              duplicate_alerts.append(alert)
            else:
              metric_names.add(metric_name)

          if duplicate_alerts:
            for alert in duplicate_alerts:
              # Print the alert category, type, name, and metric name
              print(f"{resouceCategory} {resourceType} {alert.get('name')} {alert.get('properties', {}).get('metricName')}")