def check_for_hanging_email_queues(age_of_queue = 5,queue_time_string_format="%Y-%m-%d/%H"): rabbit_clusters = ConfigReader.get_cluster_machines("rabbit_clusters") queue_misbehaving = [] for rabbit_machine_parameters in rabbit_clusters: queue_names = get_email_queues(**rabbit_machine_parameters) for queue_name in queue_names: # Check if queue name is a valid time object queue_time_object = None try: queue_time_object = time.strptime(queue_name,queue_time_string_format) except ValueError: continue present_hour = datetime.now() #only considering the hour present_hour_datetime = datetime(present_hour.year,present_hour.month,present_hour.day,present_hour.hour) # time stamp of queue queue_datetime = datetime.fromtimestamp(time.mktime(queue_time_object)) if present_hour_datetime - queue_datetime >= timedelta(hours=age_of_queue): queue_misbehaving.append("Rabbit machine : " + rabbit_machine_parameters["public_ip"] + " : has queue " +\ queue_name +" older than " + str(age_of_queue) + " hours") return json.dumps(queue_misbehaving)
# getting parameters parser = argparse.ArgumentParser(description='Run command on stack') parser.add_argument('-mc','--machine-cluster', help='Cluster to run the command on', required=False) parser.add_argument('-c','--command', help='Command to run on cluster', required=False) parser.add_argument("-f","--filter", action='append',dest='filter', help='Filter a single m/c in the Cluster Ex: nickname REDIS_CHAT') args = vars(parser.parse_args()) # print args # Getting filters args['filter'] = args['filter'][0].split(',') if args['filter'] else None init(autoreset=True) sys.path.append('../python') try: from helpers.common_config_reader import ConfigReader except Exception, e: ConfigReader.load_from_file('../app/config/common_config.json') def shellquote(s): return "'" + s.replace("'", "'\\''") + "'" def convert_to_boolean(parameter): if parameter in ["true", "True","false", "False"]: return True if parameter in ["true", "True"] else False else: return parameter cluster = raw_input(Fore.CYAN + "Enter cluster name [all] : ") or "all" if not args["machine_cluster"] else args["machine_cluster"] command = raw_input(Fore.CYAN + "Enter command name to execute [login] : ") or False if not args["command"] else args["command"] if command and command != "login": command = "hostname; " + command