def paasta_maintenance(): """Manipulate the maintenance state of a PaaSTA host. :returns: None """ args = parse_args() if args.verbose >= 2: logging.basicConfig(level=logging.DEBUG) elif args.verbose == 1: logging.basicConfig(level=logging.INFO) else: logging.basicConfig(level=logging.WARNING) action = args.action hostnames = args.hostname if action != 'status' and not hostnames: paasta_print("You must specify one or more hostnames") return start = args.start duration = args.duration ret = "Done" if action == 'drain': mesos_maintenance.drain(hostnames, start, duration) elif action == 'undrain': mesos_maintenance.undrain(hostnames) elif action == 'down': mesos_maintenance.down(hostnames) elif action == 'up': mesos_maintenance.up(hostnames) elif action == 'status': ret = mesos_maintenance.friendly_status() elif action == 'cluster_status': ret = mesos_maintenance.status() elif action == 'schedule': ret = mesos_maintenance.schedule() elif action == 'is_safe_to_drain': ret = is_safe_to_drain(hostnames[0]) elif action == 'is_safe_to_kill': ret = is_safe_to_kill(hostnames[0]) elif action == 'is_host_drained': ret = mesos_maintenance.is_host_drained(hostnames[0]) elif action == 'is_host_down': ret = mesos_maintenance.is_host_down(hostnames[0]) elif action == 'is_host_draining': ret = mesos_maintenance.is_host_draining(hostnames[0]) elif action == 'is_host_past_maintenance_start': ret = mesos_maintenance.is_host_past_maintenance_start(hostnames[0]) elif action == 'is_host_past_maintenance_end': ret = mesos_maintenance.is_host_past_maintenance_end(hostnames[0]) else: raise NotImplementedError("Action: '%s' is not implemented." % action) paasta_print(ret) return ret
def paasta_maintenance(): """Manipulate the maintenance state of a PaaSTA host. :returns: None """ args = parse_args() if args.verbose >= 2: logging.basicConfig(level=logging.DEBUG) elif args.verbose == 1: logging.basicConfig(level=logging.INFO) else: logging.basicConfig(level=logging.WARNING) action = args.action hostnames = args.hostname if action != 'status' and not hostnames: paasta_print("You must specify one or more hostnames") return start = args.start duration = args.duration ret = "Done" if action == 'drain': mesos_maintenance.drain(hostnames, start, duration) elif action == 'undrain': mesos_maintenance.undrain(hostnames) elif action == 'down': mesos_maintenance.down(hostnames) elif action == 'up': mesos_maintenance.up(hostnames) elif action == 'status': ret = "%s" % mesos_maintenance.status() elif action == 'schedule': ret = "%s" % mesos_maintenance.schedule() elif action == 'is_safe_to_drain': ret = is_safe_to_drain(hostnames[0]) elif action == 'is_safe_to_kill': ret = is_safe_to_kill(hostnames[0]) elif action == 'is_host_drained': ret = mesos_maintenance.is_host_drained(hostnames[0]) elif action == 'is_host_down': ret = mesos_maintenance.is_host_down(hostnames[0]) elif action == 'is_host_draining': ret = mesos_maintenance.is_host_draining(hostnames[0]) elif action == 'is_host_past_maintenance_start': ret = mesos_maintenance.is_host_past_maintenance_start(hostnames[0]) elif action == 'is_host_past_maintenance_end': ret = mesos_maintenance.is_host_past_maintenance_end(hostnames[0]) else: raise NotImplementedError("Action: '%s' is not implemented." % action) paasta_print(ret) return ret
def test_schedule( mock_get_maintenance_schedule, ): schedule() assert mock_get_maintenance_schedule.call_count == 1
def test_schedule(mock_get_maintenance_schedule, ): schedule() assert mock_get_maintenance_schedule.call_count == 1