Exemplo n.º 1
0
 def test_send_events_from_file_delete_file_smoke(self):
   # Create a temporary file because we don't want to risk deleting a
   # checked-in file.
   with infra_libs.temporary_directory(prefix='send-events-test-') as tempdir:
     event_file = os.path.join(tempdir, 'events.log')
     with open(event_file, 'w') as f:
       f.write('{"build-event-type": "STEP", '
               '"build-event-build-name": "infra-continuous-precise-64", '
               '"event-mon-service-name": "buildbot/master/chromium.infra", '
               '"build-event-step-number": 9, '
               '"build-event-build-number": 5, '
               '"event-mon-timestamp-kind": "END", '
               '"build-event-step-name": "cipd - test packages integrity", '
               '"build-event-build-scheduling-time": 1434665160000, '
               '"build-event-hostname": "vm25-m1"}\n')
     self.assertTrue(os.path.isfile(event_file))
     args = send_event.get_arguments(['--events-from-file', event_file,
                                      '--delete-file-when-sent'])
     send_event.send_events_from_file(args)
     self.assertFalse(os.path.isfile(event_file))
Exemplo n.º 2
0
    def test_send_events_from_file_smoke(self):
        # Create a temporary file because we don't want to risk deleting a
        # checked-in file.
        with infra_libs.temporary_directory(
                prefix='send-events-test') as tempdir:
            event_file = os.path.join(tempdir, 'events.log')
            with open(event_file, 'w') as f:
                f.write(
                    '{"build-event-type": "STEP", '
                    '"build-event-build-name": "infra-continuous-precise-64", '
                    '"event-mon-service-name": "buildbot/master/chromium.infra", '
                    '"build-event-step-number": 9, '
                    '"build-event-build-number": 5, '
                    '"event-mon-timestamp-kind": "END", '
                    '"build-event-step-name": "cipd - test packages integrity", '
                    '"build-event-build-scheduling-time": 1434665160000, '
                    '"build-event-hostname": "vm25-m1"}\n')

            self.assertTrue(os.path.isfile(event_file))
            args = send_event.get_arguments(['--events-from-file', event_file])
            send_event.send_events_from_file(args)
            self.assertTrue(os.path.isfile(event_file))
Exemplo n.º 3
0
def main(argv):  # pragma: no cover
    # Does nothing when no arguments are passed, to make it safe to import this
    # module (main() is executed on import, because this file is called __main__).
    status = 0

    if len(argv) == 0:
        return status

    success_metric = ts_mon.BooleanMetric('send_monitoring_event/success')

    try:
        args = send_event.get_arguments(argv)

        send_event.process_argparse_options(args)

        if args.build_event_type:
            success_metric.set(send_event.send_build_event(args))

        elif args.service_event_type:
            success_metric.set(send_event.send_service_event(args))

        elif args.events_from_file:
            success_metric.set(send_event.send_events_from_file(args))

        else:
            print >> sys.stderr, (
                'At least one of the --*-event-type options or '
                '--events-from-file should be provided. Nothing '
                'was sent.')
            status = 2
            success_metric.set(False)
    except Exception:
        success_metric.set(False)
    finally:
        event_mon.close()
        try:
            ts_mon.flush()
        except ts_mon.MonitoringNoConfiguredMonitorError:
            pass
    return status
Exemplo n.º 4
0
def main(argv):  # pragma: no cover
  # Does nothing when no arguments are passed, to make it safe to import this
  # module (main() is executed on import, because this file is called __main__).
  status = 0

  if len(argv) == 0:
    return status

  try:
    args = send_event.get_arguments(argv)
    send_event.process_argparse_options(args)

    if args.build_event_type:
      success_metric.set(send_event.send_build_event(args))

    elif args.service_event_type:
      success_metric.set(send_event.send_service_event(args))

    elif args.events_from_file:
      success_metric.set(send_event.send_events_from_file(args))

    else:
      print >> sys.stderr, ('At least one of the --*-event-type options or '
                            '--events-from-file should be provided. Nothing '
                            'was sent.')
      status = 2
      success_metric.set(False)
  except Exception:
    success_metric.set(False)
    traceback.print_exc()  # helps with debugging locally.
  finally:
    event_mon.close()
    try:
      ts_mon.flush()
    except ts_mon.MonitoringNoConfiguredMonitorError:
      logging.error("Unable to flush ts_mon because it's not configured.")
    except Exception:
      logging.exception("Flushing ts_mon metrics failed.")
  return status
Exemplo n.º 5
0
def main(argv):  # pragma: no cover
  # Does nothing when no arguments are passed, to make it safe to import this
  # module (main() is executed on import, because this file is called __main__).
  status = 0

  if len(argv) == 0:
    return status

  success_metric = ts_mon.BooleanMetric('send_monitoring_event/success')

  try:
    args = send_event.get_arguments(argv)

    send_event.process_argparse_options(args)

    if args.build_event_type:
      success_metric.set(send_event.send_build_event(args))

    elif args.service_event_type:
      success_metric.set(send_event.send_service_event(args))

    elif args.events_from_file:
      success_metric.set(send_event.send_events_from_file(args))

    else:
      print >> sys.stderr, ('At least one of the --*-event-type options or '
                            '--events-from-file should be provided. Nothing '
                            'was sent.')
      status = 2
      success_metric.set(False)
  except Exception:
    success_metric.set(False)
  finally:
    event_mon.close()
    try:
      ts_mon.flush()
    except ts_mon.MonitoringNoConfiguredMonitorError:
      pass
  return status