def main(argv): req = UpgradeRequest() req.process_args(argv) logger = setup_engage_logger(__name__) upgrade_error_file = os.path.join(req.log_directory, "upgrade_error.json") if os.path.exists(upgrade_error_file): os.remove(upgrade_error_file) return run(req, logger)
def main(argv, installer_file_layout=None): install_request = InstallRequest() install_request.process_args(argv, installer_file_layout) logger = log_setup.setup_engage_logger(__name__) if os.path.exists(install_request.error_file): os.remove(install_request.error_file) if os.path.exists(install_request.config_error_file): os.remove(install_request.config_error_file) try: return run(install_request, logger) except upgrade_engine.UpgradeRollbackInProgress, e: e.write_error_to_file(os.path.join(install_request.installer_file_layout.get_log_directory(), "upgrade_error.json")) return 3 # magic number to indicate rollback is in progress
def main(argv, engage_file_layout=None): dr = DeployRequest() dr.process_args(argv, engage_file_layout) logger = log_setup.setup_engage_logger(__name__) if os.path.exists(dr.error_file): os.remove(dr.error_file) if os.path.exists(dr.config_error_file): os.remove(dr.config_error_file) try: return dr.run(logger) except UserError, e: if engage_file_layout: raise # if called from another script, let that one handle it logger.exception("Aborting install due to error.") if not os.path.exists(dr.error_file): e.write_error_to_file(dr.error_file) return 1
import sys import tarfile import os import os.path from optparse import OptionParser import fixup_python_path from engage.engine.engage_file_layout import get_engine_layout_mgr from engage.engine.cmdline_script_utils import add_standard_cmdline_options, process_standard_options from engage.utils.log_setup import setup_engage_logger logger = setup_engage_logger(__name__) from engage.utils.system_info_bootstrap import SUPPORTED_PLATFORMS def _validate_dir_exists(dirname): if not os.path.isdir(dirname): raise Exception("Directory %s does not exist, your deployment home does not appear to be set up properly" % dirname) def get_distribution_archive_filename(deployment_home): return os.path.join(os.path.join(deployment_home, "engage"), "engage-dist.tar.gz") def create_distribution_from_deployment_home(deployment_home, archive_name=None, include_test_data=False): dh = os.path.abspath(os.path.expanduser(deployment_home)) if not os.path.isdir(dh): raise Exception("Deployment home %s does not exist" % dh) engage_home = os.path.join(dh, "engage")
def main(): parser = OptionParser(usage=usage_msg) add_standard_cmdline_options(parser, running_deployment=False, default_log_level="WARNING") parser.add_option("-r", "--resource-file", dest="resource_file", default=None, help="Name of resource file (defaults to <deployment_home>/config/installed_resources.json)") parser.add_option("--force", dest='force', default=False, action="store_true", help="If stop or restart, try to force everything to stop") parser.add_option("--dry-run", dest="dry_run", default=False, action="store_true", help="If specified, just print what would be done") (options, args) = parser.parse_args() if len(args)==0: parser.print_help() sys.exit(0) if len(args)<1: parser.error("Missing command name. Must be one of %s" % valid_commands) (file_layout, deployment_home) = process_standard_options(options, parser, allow_overrides_of_dh=True, rotate_logfiles=False) if options.resource_file: installed_resources_file = os.path.abspath(os.path.expanduser(options.resource_file)) else: installed_resources_file = file_layout.get_installed_resources_file(deployment_home) if not os.path.exists(installed_resources_file): sys.stderr.write("Error: Installed resources file '%s does not exist\n" % installed_resources_file) sys.exit(1) logger = setup_engage_logger(__name__) mgr_pkg_list = get_mgrs_and_pkgs(file_layout, deployment_home, options, installed_resources_file) resource_map = {} for (mgr, pkg) in mgr_pkg_list: resource_map[mgr.id] = mgr command = args[0] if command not in commands.keys(): sys.stderr.write("Error: invalid command %s\n" % command) parser.print_help() sys.exit(1) if options.force and command not in ['stop', 'restart']: sys.stderr.write("Error: --force option not valid for command %s\n" % command) parser.print_help() sys.exit(1) command_args = args[1:] cmd_fn = commands[command] try: if command in ['stop', 'restart']: rc = cmd_fn(command, command_args, mgr_pkg_list, resource_map, logger, options.dry_run, force=options.force) else: rc = cmd_fn(command, command_args, mgr_pkg_list, resource_map, logger, options.dry_run) except CommandError, msg: sys.stderr.write("Error: %s\n" % msg) sys.exit(1)
import fixup_python_path import engage.drivers.service_manager as service_manager import engage.utils.path as iupath import engage_utils.process as procutils import engage.utils.log_setup as log_setup import engage.utils.file as fileutils import engage.utils.timeout as iutimeout from engage.drivers.action import Action, _check_file_exists, check_file_exists, \ sudo_run_program, get_template_subst, \ set_file_mode_bits, ValueAction, \ sudo_run_program, sudo_set_file_perms_by_name from socket import gethostname logger = log_setup.setup_engage_logger(__name__) from engage.utils.user_error import EngageErrInf, UserError, convert_exc_to_user_error import gettext _ = gettext.gettext errors = { } def define_error(error_code, msg): global errors error_info = EngageErrInf(__name__, error_code, msg) errors[error_info.error_code] = error_info # error codes ERR_MYSQL_QUERY = 1