Ejemplo n.º 1
0
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)
Ejemplo n.º 2
0
# 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