def check_mesos_no_duplicate_frameworks(): master = get_mesos_master() try: state = master.state except MasterNotAvailableException as e: paasta_print("CRITICAL: %s" % e.message) sys.exit(2) marathon_clients = marathon_tools.get_list_of_marathon_clients() try: framework_ids = get_marathon_framework_ids(marathon_clients) except (MarathonError, ValueError) as e: paasta_print( "CRITICAL: Unable to contact Marathon cluster: {}".format(e)) sys.exit(2) result = assert_framework_count( state=state, marathon_framework_ids=framework_ids, ) if result.healthy: paasta_print("OK: " + result.message) sys.exit(0) else: paasta_print("CRITICAL: %s" % result.message) sys.exit(2)
def main(): args = parse_args() if args.verbose: logging.basicConfig(level=logging.DEBUG) else: logging.basicConfig(level=logging.WARNING) clients = marathon_tools.get_list_of_marathon_clients() for client in clients: for deployment in client.list_deployments(): delete_deployment_if_too_old( client=client, deployment=deployment, max_date=args.age, dry_run=args.dry_run, )
def check_marathon_apps(): clients = marathon_tools.get_list_of_marathon_clients() if not clients: paasta_print("UNKNOWN: Failed to load marathon clients.") sys.exit(3) try: result = assert_marathon_apps(clients) except (MarathonError, InternalServerError, ValueError) as e: paasta_print("CRITICAL: Unable to connect to Marathon cluster: %s" % e) sys.exit(2) if result.healthy: paasta_print("OK: " + result.message) sys.exit(0) else: paasta_print(result.message) sys.exit(2)
def main(): exit_code = 1 args = parse_args() full_appid = args.appname.lstrip('/') system_paasta_config = load_system_paasta_config() cluster = system_paasta_config.get_cluster() clients = marathon_tools.get_list_of_marathon_clients(system_paasta_config=system_paasta_config) for client in clients: if marathon_tools.is_app_id_running(app_id=full_appid, client=client): kill_marathon_app( full_appid=full_appid, cluster=cluster, client=client, soa_dir=args.soa_dir, ) exit_code = 0 if exit_code: paasta_print("Couldn't find an app named {}".format(full_appid)) return exit_code
def get_deployments(): clients = get_list_of_marathon_clients() return [ deployment for deployment in itertools.chain.from_iterable( c.list_deployments() for c in clients) ]