def configure_default_port(options): from log import logger from installer_io import InstallerIO from configParser import ConfigParser from text import text io = InstallerIO(options.silent) config_file = os.path.join(options.chorus_path, "shared/chorus.properties") chorus_config = ConfigParser(config_file) alpine_config_file = os.path.join(options.chorus_path, "shared/ALPINE_DATA_REPOSITORY/configuration/deploy.properties") alpine_config = ConfigParser(alpine_config_file) ports = ["server_port", "solr_port"] menu = "\n".join(str(i+1) + ". %s: [default: %s]" % (ports[i], chorus_config[ports[i]]) for i in xrange(0, len(ports))) menu += "\n" alpine_ports = ["alpine_port"] menu += "\n".join(str(len(ports)+i+1) + ". %s: [default: %s]" % (alpine_ports[i], alpine_config[alpine_ports[i].replace("_", ".")]) \ for i in xrange(0, len(alpine_ports))) menu += "\n%d. exit" % (len(ports) + len(alpine_ports) + 1) num = io.require_menu(text.get("interview_question", "port_menu") % menu, range(1, len(ports)+len(alpine_ports)+2), default=len(ports)+len(alpine_ports)+1) if num in range(1, len(ports)+1): new_port = io.prompt_int(text.get("interview_question", "change_port") % ports[num-1], default=int(chorus_config[ports[num-1]])) chorus_config[ports[num-1]] = new_port chorus_config.write(config_file) logger.info("%s has successfully changed to %d" % (ports[num-1], new_port)) elif num in range(len(ports)+1, len(ports)+1+len(alpine_ports)): new_port = io.prompt_int(text.get("interview_question", "change_port") % alpine_ports[num-len(ports)-1], default=int(alpine_config[alpine_ports[num-len(ports)-1].replace("_", ".")])) alpine_config[alpine_ports[num-len(ports)-1].replace("_", ".")] = new_port alpine_config.write(alpine_config_file) chorus_config["workflow.url"] = "http://%s:%d" % (alpine_config["alpine.host"], new_port) chorus_config.write(config_file) logger.info("%s has successfully changed to %d" % (alpine_ports[num-len(ports)-1], new_port))
def configure_default_port(options): from log import logger from installer_io import InstallerIO from configParser import ConfigParser from text import text io = InstallerIO(options.silent) config_file = os.path.join(options.chorus_path, "shared/chorus.properties") chorus_config = ConfigParser(config_file) alpine_config_file = os.path.join( options.chorus_path, "shared/ALPINE_DATA_REPOSITORY/configuration/deploy.properties") alpine_config = ConfigParser(alpine_config_file) ports = ["server_port", "solr_port"] menu = "\n".join( str(i + 1) + ". %s: [default: %s]" % (ports[i], chorus_config[ports[i]]) for i in xrange(0, len(ports))) menu += "\n" alpine_ports = ["alpine_port"] menu += "\n".join(str(len(ports)+i+1) + ". %s: [default: %s]" % (alpine_ports[i], alpine_config[alpine_ports[i].replace("_", ".")]) \ for i in xrange(0, len(alpine_ports))) menu += "\n%d. exit" % (len(ports) + len(alpine_ports) + 1) num = io.require_menu(text.get("interview_question", "port_menu") % menu, range(1, len(ports) + len(alpine_ports) + 2), default=len(ports) + len(alpine_ports) + 1) if num in range(1, len(ports) + 1): new_port = io.prompt_int( text.get("interview_question", "change_port") % ports[num - 1], default=int(chorus_config[ports[num - 1]])) chorus_config[ports[num - 1]] = new_port chorus_config.write(config_file) logger.info("%s has successfully changed to %d" % (ports[num - 1], new_port)) elif num in range(len(ports) + 1, len(ports) + 1 + len(alpine_ports)): new_port = io.prompt_int( text.get("interview_question", "change_port") % alpine_ports[num - len(ports) - 1], default=int(alpine_config[alpine_ports[num - len(ports) - 1].replace("_", ".")])) alpine_config[alpine_ports[num - len(ports) - 1].replace( "_", ".")] = new_port alpine_config.write(alpine_config_file) chorus_config["workflow.url"] = "http://%s:%d" % ( alpine_config["alpine.host"], new_port) chorus_config.write(config_file) logger.info("%s has successfully changed to %d" % (alpine_ports[num - len(ports) - 1], new_port))
class Configure: def __init__(self): pass def _version_detect(self): self.chorus_version = None current = os.path.join(self.options.chorus_path, "current") if os.path.lexists(current): self.chorus_version = os.path.basename(os.path.realpath(current)) self.alpine_version = None alpine_current = os.path.join(self.options.chorus_path, "alpine-current") if os.path.lexists(alpine_current): self.alpine_version = os.path.basename( os.path.realpath(alpine_current)) def _load_configure_func(self): dic = {} idx = 1 for importer, modname, ispkg in pkgutil.iter_modules( config_lib.__path__): module = __import__("config_lib." + modname, fromlist="config_lib") for function in inspect.getmembers(module, inspect.isfunction): if not inspect.getmodule(function[1]) == module: continue dic[idx] = function idx += 1 return dic def get_chorus_state(self): if self.chorus_version is None: service_state = "Not installed" elif self._chorus_pid_exist("jetty.pid") and self._chorus_pid_exist("nginx.pid")\ and self._chorus_pid_exist("scheduler.production.pid") and self._chorus_pid_exist("solr-production.pid")\ and self._chorus_pid_exist("worker.production.pid"): service_state = "running" elif self._chorus_pid_exist("jetty.pid") or self._chorus_pid_exist("nginx.pid")\ or self._chorus_pid_exist("scheduler.production.pid") or self._chorus_pid_exist("solr-production.pid")\ or self._chorus_pid_exist("worker.production.pid"): service_state = "partially running" else: service_state = "stopped" return service_state def get_alpine_state(self): if self.alpine_version is None: service_state = "Not installed" elif self._alpine_pid_exist("alpine.pid"): service_state = "running" else: service_state = "stopped" return service_state def _chorus_pid_exist(self, pid_name): return os.path.exists( os.path.join(self.options.chorus_path, "shared/tmp/pids/" + pid_name)) def _alpine_pid_exist(self, pid_name): return os.path.exists( os.path.join(self.options.chorus_path, "alpine-current/" + pid_name)) def config(self, options, is_upgrade): self.options = options self.io = InstallerIO(options.silent) self._version_detect() print "*" * 60 header = "" if self.chorus_version is None: print text.get("status_msg", "no_chorus") else: print text.get("status_msg", "chorus_status") % ( self.chorus_version, self.get_chorus_state()) if self.alpine_version is None: print text.get("status_msg", "no_alpine") else: print text.get("status_msg", "alpine_status") % ( self.alpine_version, self.get_alpine_state()) print "CHORUS_HOME:\t%s" % os.getenv("CHORUS_HOME", "not set in ~/.bashrc") print "*" * 60 if self.chorus_version is None: return self.method = self._load_configure_func() not_experiment_method = [ "enable_alpine_agent", "role_permission_migrate" ] while True: menu = "" lens = len(self.method) + 1 for e in self.method.keys(): if self.method[e][0] not in not_experiment_method: menu += str( e) + ". " + self.method[e][0] + " (experimental) \n" else: menu += str(e) + ". " + self.method[e][0] + "\n" menu += "%d. exit" % lens selection = self.io.require_menu( text.get("interview_question", "configuration_menu") % menu, range(1, lens + 1), default=lens) if selection == lens: break self.method[selection][1](options) if self.io.require_confirmation(text.get("interview_question", "back_to_menu"), default="no"): continue else: break print "*" * 60 print text.get("status_msg", "configure_post_step") print "*" * 60
class Configure: def __init__(self): pass def _version_detect(self): self.chorus_version = None current = os.path.join(self.options.chorus_path, "current") if os.path.lexists(current): self.chorus_version = os.path.basename(os.path.realpath(current)) self.alpine_version = None alpine_current = os.path.join(self.options.chorus_path, "alpine-current") if os.path.lexists(alpine_current): self.alpine_version = os.path.basename(os.path.realpath(alpine_current)) def _load_configure_func(self): dic = {} idx = 1 for importer, modname, ispkg in pkgutil.iter_modules(config_lib.__path__): module = __import__("config_lib." + modname, fromlist="config_lib") for function in inspect.getmembers(module, inspect.isfunction): if not inspect.getmodule(function[1]) == module: continue dic[idx] = function idx += 1 return dic def get_chorus_state(self): if self.chorus_version is None: service_state = "Not installed" elif self._chorus_pid_exist("jetty.pid") and self._chorus_pid_exist("nginx.pid")\ and self._chorus_pid_exist("scheduler.production.pid") and self._chorus_pid_exist("solr-production.pid")\ and self._chorus_pid_exist("worker.production.pid"): service_state = "running" elif self._chorus_pid_exist("jetty.pid") or self._chorus_pid_exist("nginx.pid")\ or self._chorus_pid_exist("scheduler.production.pid") or self._chorus_pid_exist("solr-production.pid")\ or self._chorus_pid_exist("worker.production.pid"): service_state = "partially running" else: service_state = "stopped" return service_state def get_alpine_state(self): if self.alpine_version is None: service_state = "Not installed" elif self._alpine_pid_exist("alpine.pid"): service_state = "running" else: service_state = "stopped" return service_state def _chorus_pid_exist(self, pid_name): return os.path.exists(os.path.join(self.options.chorus_path, "shared/tmp/pids/" + pid_name)) def _alpine_pid_exist(self, pid_name): return os.path.exists(os.path.join(self.options.chorus_path, "alpine-current/" + pid_name)) def config(self, options, is_upgrade): self.options = options self.io = InstallerIO(options.silent) self._version_detect() print "*" * 60 header = "" if self.chorus_version is None: print text.get("status_msg", "no_chorus") else: print text.get("status_msg", "chorus_status") % (self.chorus_version, self.get_chorus_state()) if self.alpine_version is None: print text.get("status_msg", "no_alpine") else: print text.get("status_msg", "alpine_status") % (self.alpine_version, self.get_alpine_state()) print "CHORUS_HOME:\t%s" % os.getenv("CHORUS_HOME", "not set in ~/.bashrc") print "*" * 60 if self.chorus_version is None: return self.method = self._load_configure_func() while True: menu = "" lens = len(self.method) + 1 for e in self.method.keys(): if self.method[e][0] != "enable_alpine_agent": menu += str(e) + ". " + self.method[e][0] + " (experimental) \n" else: menu += str(e) + ". " + self.method[e][0] + "\n" menu += "%d. exit" % lens selection = self.io.require_menu(text.get("interview_question", "configuration_menu") % menu, range(1, lens + 1), default=lens) if selection == lens: break self.method[selection][1](options) if self.io.require_confirmation(text.get("interview_question", "back_to_menu"), default="no"): continue else: break print "*" * 60 print text.get("status_msg", "configure_post_step") print "*" * 60