def reset(global_objects, soft = True) : ''' TBD ''' try : _msg = "Killing all processes..." print _msg, _proc_man = ProcessManagement() _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f cbact") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f cloud-api") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f cloud-gui") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f ai-") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f vm-") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f submit-") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f capture-") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f gmetad.py") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f gtkCBUI_") print "done" _proc_man.run_os_command("screen -wipe") _msg = "Flushing Object Store..." print _msg, _rmc = RedisMgdConn(global_objects["objectstore"]) _rmc.flush_object_store() print "done" if not soft : _msg = "Flushing Metric Store..." print _msg, _mmc = MongodbMgdConn(global_objects["metricstore"]) _mmc.flush_metric_store(global_objects["mon_defaults"]["username"]) print "done" _msg = "Flushing Log Store..." print _msg, _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f rsyslogd") _file_list = [] _file_list.append("operations.log") _file_list.append("report.log") _file_list.append("submmiter.log") _file_list.append("loadmanager.log") _file_list.append("gui.log") _file_list.append("remotescripts.log") _file_list.append("monitor.log") _file_list.append("subscribe.log") for _fn in _file_list : _proc_man.run_os_command("rm -rf " + global_objects["space"]["stores_working_dir"] + "/logs/" + _fn) _status, _msg = syslog_logstore_setup(global_objects, "check") print "done" _msg = "" _status = 0 except ProcessManagement.ProcessManagementException, obj : _status = str(obj.status) _msg = str(obj.msg)
def reset(global_objects, soft = True) : ''' TBD ''' try : _msg = "Killing all processes..." print _msg, _proc_man = ProcessManagement() _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f cbact") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f cloud-") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f ai-") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f vm-") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f submit-") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f capture-") _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f gmetad.py") print "done" _proc_man.run_os_command("screen -wipe") _msg = "Flushing Object Store..." print _msg, _rmc = RedisMgdConn(global_objects["objectstore"]) _rmc.flush_object_store() print "done" if not soft : _msg = "Flushing Metric Store..." print _msg, _mmc = MongodbMgdConn(global_objects["metricstore"]) _mmc.flush_metric_store(global_objects["mon_defaults"]["username"]) print "done" _msg = "Flushing Log Store..." print _msg, _proc_man.run_os_command("pkill -9 -u " + global_objects["space"]["username"] + " -f rsyslogd") _proc_man.run_os_command("rm " + global_objects["space"]["stores_working_dir"] + "/logs/*.log") _status, _msg = syslog_logstore_setup(global_objects, "check") print "done" _msg = "" _status = 0 except ProcessManagement.ProcessManagementException, obj : _status = str(obj.status) _msg = str(obj.msg)
def reset(global_objects, soft=True): ''' TBD ''' try: _stores_wk_dir = global_objects["space"]["stores_working_dir"] _log_dir = global_objects["space"]["log_dir"] _username = global_objects["space"]["username"] _logstore_username = global_objects["logstore"]["username"] _filestore_username = global_objects["filestore"]["username"] _filestore_config_file_fn = _stores_wk_dir + '/' + _filestore_username + "_rsync.conf" _msg = "Killing all processes..." print _msg, _proc_man = ProcessManagement() _proc_man.run_os_command("pkill -9 -u " + _username + " -f cbact") _proc_man.run_os_command("pkill -9 -u " + _username + " -f cloud-api") _proc_man.run_os_command("pkill -9 -u " + _username + " -f cloud-gui") _proc_man.run_os_command("pkill -9 -u " + _username + " -f ai-") _proc_man.run_os_command("pkill -9 -u " + _username + " -f vm-") _proc_man.run_os_command("pkill -9 -u " + _username + " -f submit-") _proc_man.run_os_command("pkill -9 -u " + _username + " -f capture-") _proc_man.run_os_command("pkill -9 -u " + _username + " -f gmetad.py") _proc_man.run_os_command("pkill -9 -u " + _username + " -f gtkCBUI_") print "done" _proc_man.run_os_command("screen -wipe") _proc_man.run_os_command("rm -rf /tmp/restart_cb*" + global_objects["logstore"]["username"]) _proc_man.run_os_command("rm -rf /tmp/" + _username + "_*-*-*-*-*_avg_acc") _msg = "Flushing Object Store..." print _msg, _rmc = RedisMgdConn(global_objects["objectstore"]) _rmc.flush_object_store() print "done" _msg = "Flushing Log Store..." print _msg, _proc_man.run_os_command("pkill -9 -u " + _logstore_username + " -f rsyslogd") _file_list = [] _file_list.append("operations.log") _file_list.append("report.log") _file_list.append("submmiter.log") _file_list.append("loadmanager.log") _file_list.append("gui.log") _file_list.append("remotescripts.log") _file_list.append("messages.log") _file_list.append("monitor.log") _file_list.append("subscribe.log") for _fn in _file_list: _proc_man.run_os_command("rm -rf " + _log_dir + '/' + _logstore_username + '_' + _fn) _proc_man.run_os_command("touch " + _log_dir + '/' + _logstore_username + '_' + _fn) _status, _msg = syslog_logstore_setup(global_objects, "check") global_objects["logstore"]["just_restarted"] = True print "done\n" #_msg = "Flushing File Store..." #print _msg, #_proc_man.run_os_command("sudo pkill -9 -u root -f \"rsync --daemon --config " + _filestore_config_file_fn +"\"", raise_exception = False) #_proc_man.run_os_command("sudo rm -rf " + _stores_wk_dir + '/' + _filestore_username + "_rsyncd.pid") #_status, _msg = rsync_filestore_setup(global_objects, "check") #print "done" if not soft: _msg = "Flushing Metric Store..." print _msg, _mmc = MongodbMgdConn(global_objects["metricstore"]) _mmc.flush_metric_store(global_objects["mon_defaults"]["username"]) print "done" _msg = "" _status = 0 except ProcessManagement.ProcessManagementException, obj: _status = str(obj.status) _msg = str(obj.msg)
def mongodb_metricstore_setup(global_objects, operation="check"): ''' TBD ''' _protocol = global_objects["metricstore"]["protocol"] _hostname = global_objects["metricstore"]["host"] _databaseid = global_objects["metricstore"]["database"] _timeout = float(global_objects["metricstore"]["timeout"]) _username = global_objects["mon_defaults"]["username"] _usage = global_objects["metricstore"]["usage"].lower() try: if operation == "check": if _usage == "shared": _hostport = int(global_objects["metricstore"]["port"]) if not pre_check_port(_hostname, _hostport, _protocol): _proc_man = ProcessManagement(username="******") _mongodb_pid = _proc_man.get_pid_from_cmdline("mongod -f") _cmd = "/usr/local/bin/mongod -f /etc/mongod.conf --pidfilepath /var/run/mongod.pid" if not _mongodb_pid: _msg = "Unable to detect a shared MongoDB server daemon running. " _msg += "Please try to start one (e.g., " + _cmd + ")" print _msg exit(8) else: _usage = "private" _config_file_fn = global_objects["space"][ "stores_working_dir"] + '/' + _username + "_mongod.conf" _cmd = "mkdir -p " + global_objects["space"][ "stores_working_dir"] + "/logs; mongod -f " + _config_file_fn + " --pidfilepath " + global_objects[ "space"]["stores_working_dir"] + "/mongod.pid" _proc_man = ProcessManagement(username=_username) _mongodb_pid = _proc_man.get_pid_from_cmdline("mongod -f") if not _mongodb_pid: global_objects["metricstore"][ "port"] = _proc_man.get_free_port( global_objects["metricstore"]["port"], protocol="tcp") _hostport = int(global_objects["metricstore"]["port"]) _config_file_contents = global_objects["metricstore"][ "config_string"].replace('_', ' ') _config_file_contents = _config_file_contents.replace( "REPLPORT", str(_hostport)) _config_file_contents = _config_file_contents.replace( "REPLSTORESWORKINGDIR", global_objects["space"]["stores_working_dir"]) _config_file_contents = _config_file_contents.replace( "--", '=') _config_file_contents = _config_file_contents.replace( ';', '\n') _config_file_fn = global_objects["space"][ "stores_working_dir"] + '/' + _username + "_mongod.conf" _config_file_fd = open(_config_file_fn, 'w') _config_file_fd.write(_config_file_contents) _config_file_fd.close() _mongodb_pid = _proc_man.start_daemon(_cmd) sleep(5) if not _mongodb_pid: _msg = "Unable to detect a private MongoDB server daemon running. " _msg += "Please try to start one (e.g., " + _cmd + ")" print _msg exit(8) else: global_objects["metricstore"][ "port"] = _proc_man.get_port_from_pid(_mongodb_pid[0]) _hostport = int(global_objects["metricstore"]["port"]) _nh_conn = Nethashget(_hostname) _nh_conn.nmap(_hostport, _protocol) _msg = "A Metric Store of the kind \"MongoDB\" (" + _usage + ") " _msg += "on node " + _hostname + ", " + _protocol _msg += " port " + str(_hostport) + ", database id \"" + str( _databaseid) _msg += "\" seems to be running." cbdebug(_msg) _status = 0 else: operation = "initialize" _mmc = MongodbMgdConn(global_objects["metricstore"]) _mmc.initialize_metric_store(_username) _msg = "The Metric Store of the kind \"MongoDB\" was successfully initialized " _msg += "on node: " + str(global_objects["metricstore"]) cbdebug(_msg) _status = 0 _status = 0 return _status, _msg except ProcessManagement.ProcessManagementException, obj: _status = str(obj.status) _msg = str(obj.msg) raise StoreSetupException(_msg, 9)
def reset(global_objects, soft = True) : ''' TBD ''' try : _stores_wk_dir = global_objects["space"]["stores_working_dir"] _log_dir = global_objects["space"]["log_dir"] _username = global_objects["space"]["username"] _logstore_username = global_objects["logstore"]["username"] _filestore_username = global_objects["filestore"]["username"] _filestore_config_file_fn = _stores_wk_dir + '/' + _filestore_username + "_rsync.conf" _msg = "Killing all processes..." print _msg, _proc_man = ProcessManagement() _proc_man.run_os_command("pkill -9 -u " + _username + " -f cbact") _proc_man.run_os_command("pkill -9 -u " + _username + " -f cloud-api") _proc_man.run_os_command("pkill -9 -u " + _username + " -f cloud-gui") _proc_man.run_os_command("pkill -9 -u " + _username + " -f ai-") _proc_man.run_os_command("pkill -9 -u " + _username + " -f vm-") _proc_man.run_os_command("pkill -9 -u " + _username + " -f submit-") _proc_man.run_os_command("pkill -9 -u " + _username + " -f capture-") _proc_man.run_os_command("pkill -9 -u " + _username + " -f gmetad.py") _proc_man.run_os_command("pkill -9 -u " + _username + " -f gtkCBUI_") print "done" _proc_man.run_os_command("screen -wipe") _proc_man.run_os_command("rm -rf /tmp/restart_cb*" + global_objects["logstore"]["username"]) _proc_man.run_os_command("rm -rf /tmp/*-*-*-*-*_avg_acc") _msg = "Flushing Object Store..." print _msg, _rmc = RedisMgdConn(global_objects["objectstore"]) _rmc.flush_object_store() print "done" _msg = "Flushing Log Store..." print _msg, _proc_man.run_os_command("pkill -9 -u " + _logstore_username + " -f rsyslogd") _file_list = [] _file_list.append("operations.log") _file_list.append("report.log") _file_list.append("submmiter.log") _file_list.append("loadmanager.log") _file_list.append("gui.log") _file_list.append("remotescripts.log") _file_list.append("messages.log") _file_list.append("monitor.log") _file_list.append("subscribe.log") for _fn in _file_list : _proc_man.run_os_command("rm -rf " + _log_dir + '/' + _logstore_username + '_' + _fn) _proc_man.run_os_command("touch " + _log_dir + '/' + _logstore_username + '_' + _fn) _status, _msg = syslog_logstore_setup(global_objects, "check") global_objects["logstore"]["just_restarted"] = True print "done\n" #_msg = "Flushing File Store..." #print _msg, #_proc_man.run_os_command("sudo pkill -9 -u root -f \"rsync --daemon --config " + _filestore_config_file_fn +"\"", raise_exception = False) #_proc_man.run_os_command("sudo rm -rf " + _stores_wk_dir + '/' + _filestore_username + "_rsyncd.pid") #_status, _msg = rsync_filestore_setup(global_objects, "check") #print "done" if not soft : _msg = "Flushing Metric Store..." print _msg, _mmc = MongodbMgdConn(global_objects["metricstore"]) _mmc.flush_metric_store(global_objects["mon_defaults"]["username"]) print "done" _msg = "" _status = 0 except ProcessManagement.ProcessManagementException, obj : _status = str(obj.status) _msg = str(obj.msg)
def mongodb_metricstore_setup(global_objects, operation = "check") : ''' TBD ''' _protocol = global_objects["metricstore"]["protocol"] _hostname = global_objects["metricstore"]["host"] _databaseid = global_objects["metricstore"]["database"] _timeout = float(global_objects["metricstore"]["timeout"]) _username = global_objects["mon_defaults"]["username"] _usage = global_objects["metricstore"]["usage"].lower() try : if operation == "check" : if _usage == "shared" : _hostport = int(global_objects["metricstore"]["port"]) if not pre_check_port(_hostname, _hostport, _protocol) : _proc_man = ProcessManagement(username = "******") _mongodb_pid = _proc_man.get_pid_from_cmdline("mongod -f") _cmd = "/usr/local/bin/mongod -f /etc/mongod.conf --pidfilepath /var/run/mongod.pid" if not _mongodb_pid : _msg = "Unable to detect a shared MongoDB server daemon running. " _msg += "Please try to start one (e.g., " + _cmd + ")" print _msg exit(8) else : _usage = "private" _config_file_fn = global_objects["space"]["stores_working_dir"] + '/' + _username + "_mongod.conf" _cmd = "mkdir -p " + global_objects["space"]["stores_working_dir"] + "/logs; mongod -f " + _config_file_fn + " --pidfilepath " + global_objects["space"]["stores_working_dir"] + "/mongod.pid" _proc_man = ProcessManagement(username = _username) _mongodb_pid = _proc_man.get_pid_from_cmdline("mongod -f") if not _mongodb_pid : global_objects["metricstore"]["port"] = _proc_man.get_free_port(global_objects["metricstore"]["port"], protocol = "tcp") _hostport = int(global_objects["metricstore"]["port"]) _config_file_contents = global_objects["metricstore"]["config_string"].replace('_', ' ') _config_file_contents = _config_file_contents.replace("REPLPORT", str(_hostport)) _config_file_contents = _config_file_contents.replace("REPLSTORESWORKINGDIR", global_objects["space"]["stores_working_dir"]) _config_file_contents = _config_file_contents.replace("--", '=') _config_file_contents = _config_file_contents.replace(';','\n') _config_file_fn = global_objects["space"]["stores_working_dir"] + '/' + _username + "_mongod.conf" _config_file_fd = open(_config_file_fn, 'w') _config_file_fd.write(_config_file_contents) _config_file_fd.close() _mongodb_pid = _proc_man.start_daemon(_cmd) sleep(5) if not _mongodb_pid : _msg = "Unable to detect a private MongoDB server daemon running. " _msg += "Please try to start one (e.g., " + _cmd + ")" print _msg exit(8) else : global_objects["metricstore"]["port"] = _proc_man.get_port_from_pid(_mongodb_pid[0]) _hostport = int(global_objects["metricstore"]["port"]) _nh_conn = Nethashget(_hostname) _nh_conn.nmap(_hostport, _protocol) _msg = "A Metric Store of the kind \"MongoDB\" (" + _usage + ") " _msg += "on node " + _hostname + ", " + _protocol _msg += " port " + str(_hostport) + ", database id \"" + str(_databaseid) _msg += "\" seems to be running." cbdebug(_msg) _status = 0 else: operation = "initialize" _mmc = MongodbMgdConn(global_objects["metricstore"]) _mmc.initialize_metric_store(_username) _msg = "The Metric Store of the kind \"MongoDB\" was successfully initialized " _msg += "on node: " + str(global_objects["metricstore"]) cbdebug(_msg) _status = 0 _status = 0 return _status, _msg except ProcessManagement.ProcessManagementException, obj : _status = str(obj.status) _msg = str(obj.msg) raise StoreSetupException(_msg, 9)