def __init__(self, program_name, arg_map): """ Create a new model context instance. Tools should use model_context_helper.create_context(), to ensure that the typedef is initialized correctly. Unit tests should use this constructor directly, since typedef files are not deployed. :param program_name: the program name, used for logging :param arg_map: all the arguments passed to the tool """ self._program_name = program_name self._logger = platform_logger.PlatformLogger('wlsdeploy.util') self._wls_helper = WebLogicHelper(self._logger) self._oracle_home = None self._wl_home = None self._java_home = None self._domain_home = None self._domain_name = None self._domain_parent_dir = None self._domain_type = 'WLS' self._domain_typedef = None self._admin_url = None self._admin_user = None self._admin_password = None self._archive_file_name = None self._archive_file = None self._model_file = None self._model_sample = False self._previous_model_file = None self._variable_file_name = None self._run_rcu = False self._rcu_database = None self._rcu_prefix = None self._rcu_sys_pass = None self._rcu_schema_pass = None self._encryption_passphrase = None self._encrypt_manual = False self._encrypt_one_pass = None self._use_encryption = False self._wl_version = None self._wlst_mode = None self._recursive = False self._attributes_only = False self._folders_only = False self._opss_wallet_passphrase = None self._opss_wallet = None self._update_rcu_schema_pass = False self._validation_method = None self._rollback_if_restart_required = None self._domain_resource_file = None self._output_dir = None self._target = None self._target_configuration = None self._variable_injector_file = None self._variable_keywords_file = None self._variable_properties_file = None self._rcu_db_user = '******' self._trailing_args = [] if CommandLineArgUtil.ORACLE_HOME_SWITCH in arg_map: self._oracle_home = arg_map[CommandLineArgUtil.ORACLE_HOME_SWITCH] self._wl_home = self._wls_helper.get_weblogic_home( self._oracle_home) if CommandLineArgUtil.JAVA_HOME_SWITCH in arg_map: self._java_home = arg_map[CommandLineArgUtil.JAVA_HOME_SWITCH] if CommandLineArgUtil.DOMAIN_HOME_SWITCH in arg_map: self._domain_home = arg_map[CommandLineArgUtil.DOMAIN_HOME_SWITCH] self._domain_name = os.path.basename(self._domain_home) if CommandLineArgUtil.DOMAIN_PARENT_SWITCH in arg_map: self._domain_parent_dir = arg_map[ CommandLineArgUtil.DOMAIN_PARENT_SWITCH] if CommandLineArgUtil.DOMAIN_TYPE_SWITCH in arg_map: self._domain_type = arg_map[CommandLineArgUtil.DOMAIN_TYPE_SWITCH] if CommandLineArgUtil.ADMIN_URL_SWITCH in arg_map: self._admin_url = arg_map[CommandLineArgUtil.ADMIN_URL_SWITCH] if CommandLineArgUtil.ADMIN_USER_SWITCH in arg_map: self._admin_user = arg_map[CommandLineArgUtil.ADMIN_USER_SWITCH] if CommandLineArgUtil.ADMIN_PASS_SWITCH in arg_map: self._admin_password = arg_map[ CommandLineArgUtil.ADMIN_PASS_SWITCH] if CommandLineArgUtil.ARCHIVE_FILE_SWITCH in arg_map: self._archive_file_name = arg_map[ CommandLineArgUtil.ARCHIVE_FILE_SWITCH] if CommandLineArgUtil.MODEL_FILE_SWITCH in arg_map: self._model_file = arg_map[CommandLineArgUtil.MODEL_FILE_SWITCH] if CommandLineArgUtil.MODEL_SAMPLE_SWITCH in arg_map: self._model_sample = arg_map[ CommandLineArgUtil.MODEL_SAMPLE_SWITCH] if CommandLineArgUtil.PREVIOUS_MODEL_FILE_SWITCH in arg_map: self._previous_model_file = arg_map[ CommandLineArgUtil.PREVIOUS_MODEL_FILE_SWITCH] if CommandLineArgUtil.ATTRIBUTES_ONLY_SWITCH in arg_map: self._attributes_only = arg_map[ CommandLineArgUtil.ATTRIBUTES_ONLY_SWITCH] if CommandLineArgUtil.FOLDERS_ONLY_SWITCH in arg_map: self._folders_only = arg_map[ CommandLineArgUtil.FOLDERS_ONLY_SWITCH] if CommandLineArgUtil.RECURSIVE_SWITCH in arg_map: self._recursive = arg_map[CommandLineArgUtil.RECURSIVE_SWITCH] if CommandLineArgUtil.VARIABLE_FILE_SWITCH in arg_map: self._variable_file_name = arg_map[ CommandLineArgUtil.VARIABLE_FILE_SWITCH] if CommandLineArgUtil.RUN_RCU_SWITCH in arg_map: self._run_rcu = arg_map[CommandLineArgUtil.RUN_RCU_SWITCH] if CommandLineArgUtil.RCU_DB_SWITCH in arg_map: self._rcu_database = arg_map[CommandLineArgUtil.RCU_DB_SWITCH] if CommandLineArgUtil.RCU_PREFIX_SWITCH in arg_map: self._rcu_prefix = arg_map[CommandLineArgUtil.RCU_PREFIX_SWITCH] if CommandLineArgUtil.RCU_SYS_PASS_SWITCH in arg_map: self._rcu_sys_pass = arg_map[ CommandLineArgUtil.RCU_SYS_PASS_SWITCH] if CommandLineArgUtil.RCU_DB_USER_SWITCH in arg_map: self._rcu_db_user = arg_map[CommandLineArgUtil.RCU_DB_USER_SWITCH] if CommandLineArgUtil.RCU_SCHEMA_PASS_SWITCH in arg_map: self._rcu_schema_pass = arg_map[ CommandLineArgUtil.RCU_SCHEMA_PASS_SWITCH] if CommandLineArgUtil.DOMAIN_TYPEDEF in arg_map: self._domain_typedef = arg_map[CommandLineArgUtil.DOMAIN_TYPEDEF] if CommandLineArgUtil.PASSPHRASE_SWITCH in arg_map: self._encryption_passphrase = arg_map[ CommandLineArgUtil.PASSPHRASE_SWITCH] if CommandLineArgUtil.ENCRYPT_MANUAL_SWITCH in arg_map: self._encrypt_manual = arg_map[ CommandLineArgUtil.ENCRYPT_MANUAL_SWITCH] if CommandLineArgUtil.ONE_PASS_SWITCH in arg_map: self._encrypt_one_pass = arg_map[ CommandLineArgUtil.ONE_PASS_SWITCH] if CommandLineArgUtil.ROLLBACK_IF_RESTART_REQ_SWITCH in arg_map: self._rollback_if_restart_required = arg_map[ CommandLineArgUtil.ROLLBACK_IF_RESTART_REQ_SWITCH] if CommandLineArgUtil.USE_ENCRYPTION_SWITCH in arg_map: self._use_encryption = arg_map[ CommandLineArgUtil.USE_ENCRYPTION_SWITCH] if CommandLineArgUtil.ARCHIVE_FILE in arg_map: self._archive_file = arg_map[CommandLineArgUtil.ARCHIVE_FILE] if CommandLineArgUtil.OPSS_WALLET_PASSPHRASE in arg_map: self._opss_wallet_passphrase = arg_map[ CommandLineArgUtil.OPSS_WALLET_PASSPHRASE] if CommandLineArgUtil.OPSS_WALLET_SWITCH in arg_map: self._opss_wallet = arg_map[CommandLineArgUtil.OPSS_WALLET_SWITCH] if CommandLineArgUtil.UPDATE_RCU_SCHEMA_PASS_SWITCH in arg_map: self._update_rcu_schema_pass = True if CommandLineArgUtil.VALIDATION_METHOD in arg_map: self._validation_method = arg_map[ CommandLineArgUtil.VALIDATION_METHOD] if CommandLineArgUtil.TARGET_VERSION_SWITCH in arg_map: self._wl_version = arg_map[ CommandLineArgUtil.TARGET_VERSION_SWITCH] if CommandLineArgUtil.DOMAIN_RESOURCE_FILE_SWITCH in arg_map: self._domain_resource_file = arg_map[ CommandLineArgUtil.DOMAIN_RESOURCE_FILE_SWITCH] if CommandLineArgUtil.TRAILING_ARGS_SWITCH in arg_map: self._trailing_args = arg_map[ CommandLineArgUtil.TRAILING_ARGS_SWITCH] if CommandLineArgUtil.TARGET_SWITCH in arg_map: self._target = arg_map[CommandLineArgUtil.TARGET_SWITCH] if CommandLineArgUtil.TARGET_MODE_SWITCH in arg_map: wlst_mode_string = arg_map[CommandLineArgUtil.TARGET_MODE_SWITCH] if wlst_mode_string.lower() == 'online': self._wlst_mode = WlstModes.ONLINE else: self._wlst_mode = WlstModes.OFFLINE if CommandLineArgUtil.OUTPUT_DIR_SWITCH in arg_map: self._output_dir = arg_map[CommandLineArgUtil.OUTPUT_DIR_SWITCH] if CommandLineArgUtil.VARIABLE_INJECTOR_FILE_SWITCH in arg_map: self._variable_injector_file = arg_map[ CommandLineArgUtil.VARIABLE_INJECTOR_FILE_SWITCH] if CommandLineArgUtil.VARIABLE_KEYWORDS_FILE_SWITCH in arg_map: self._variable_keywords_file = arg_map[ CommandLineArgUtil.VARIABLE_KEYWORDS_FILE_SWITCH] if CommandLineArgUtil.VARIABLE_PROPERTIES_FILE_SWITCH in arg_map: self._variable_properties_file = arg_map[ CommandLineArgUtil.VARIABLE_PROPERTIES_FILE_SWITCH] if self._wl_version is None: self._wl_version = self._wls_helper.get_actual_weblogic_version() if self._wlst_mode is None: self._wlst_mode = WlstModes.OFFLINE return
from wlsdeploy.tool.util import filter_helper from wlsdeploy.tool.validate.validator import Validator from wlsdeploy.util import getcreds from wlsdeploy.util import tool_exit from wlsdeploy.util import variables from wlsdeploy.util import wlst_helper from wlsdeploy.util.cla_utils import CommandLineArgUtil from wlsdeploy.util.model_context import ModelContext from wlsdeploy.util.model_translator import FileToPython from wlsdeploy.util.weblogic_helper import WebLogicHelper _program_name = 'createDomain' _class_name = 'create' __logger = PlatformLogger('wlsdeploy.create') __wlst_mode = WlstModes.OFFLINE __version = WebLogicHelper(__logger).get_actual_weblogic_version() __tmp_model_dir = None __required_arguments = [ CommandLineArgUtil.ORACLE_HOME_SWITCH, CommandLineArgUtil.DOMAIN_PARENT_SWITCH, CommandLineArgUtil.DOMAIN_TYPE_SWITCH ] __optional_arguments = [ CommandLineArgUtil.ARCHIVE_FILE_SWITCH, CommandLineArgUtil.JAVA_HOME_SWITCH, CommandLineArgUtil.MODEL_FILE_SWITCH, CommandLineArgUtil.RUN_RCU_SWITCH, CommandLineArgUtil.RCU_SYS_PASS_SWITCH, CommandLineArgUtil.RCU_DB_SWITCH, CommandLineArgUtil.RCU_PREFIX_SWITCH, CommandLineArgUtil.RCU_SCHEMA_PASS_SWITCH, CommandLineArgUtil.VARIABLE_FILE_SWITCH,
def __check_and_customize_model(model, model_context, aliases, credential_injector): """ Customize the model dictionary before persisting. Validate the model after customization for informational purposes. Any validation errors will not stop the discovered model to be persisted. :param model: completely discovered model, before any tokenization :param model_context: configuration from command-line :param aliases: used for validation if model changes are made :param credential_injector: injector created to collect and tokenize credentials, possibly None """ _method_name = '__check_and_customize_model' __logger.entering(class_name=_class_name, method_name=_method_name) if filter_helper.apply_filters(model.get_model(), "discover", model_context): __logger.info('WLSDPLY-06014', _class_name=_class_name, method_name=_method_name) # target config always present in model context, default config if not declared target_configuration = model_context.get_target_configuration() # if target config declared, use the validation method it contains (lax, etc.) if model_context.is_targetted_config(): validation_method = target_configuration.get_validation_method() model_context.set_validation_method(validation_method) credential_cache = None if credential_injector is not None: credential_cache = credential_injector.get_variable_cache() # Generate k8s create secret script if target_configuration.uses_credential_secrets(): target_configuration_helper.generate_k8s_script( model_context, credential_cache, model.get_model()) # if target handles credential configuration, clear property cache to keep out of variables file. if model_context.get_target_configuration().manages_credentials(): credential_cache.clear() # Apply the injectors specified in model_variable_injector.json, or in the target configuration. # Include the variable mappings that were collected in credential_cache. variable_injector = VariableInjector( _program_name, model.get_model(), model_context, WebLogicHelper(__logger).get_actual_weblogic_version(), credential_cache) inserted, variable_model, variable_file_name = variable_injector.inject_variables_keyword_file( ) if inserted: model = Model(variable_model) try: validator = Validator(model_context, wlst_mode=__wlst_mode, aliases=aliases) # no variables are generated by the discover tool validator.validate_in_tool_mode( model.get_model(), variables_file_name=variable_file_name, archive_file_name=model_context.get_archive_file_name()) except ValidateException, ex: __logger.warning('WLSDPLY-06015', ex.getLocalizedMessage(), class_name=_class_name, method_name=_method_name)
from wlsdeploy.tool.validate.validator import Validator from wlsdeploy.tool.util import filter_helper from wlsdeploy.tool.util.wlst_helper import WlstHelper from wlsdeploy.util import getcreds from wlsdeploy.util import tool_exit from wlsdeploy.util import variables from wlsdeploy.util.cla_utils import CommandLineArgUtil from wlsdeploy.util.model import Model from wlsdeploy.util.model_context import ModelContext from wlsdeploy.util.model_translator import FileToPython from wlsdeploy.util.weblogic_helper import WebLogicHelper _program_name = 'deployApps' _class_name = 'deploy' __logger = PlatformLogger('wlsdeploy.deploy') __wls_helper = WebLogicHelper(__logger) __wlst_helper = WlstHelper(__logger, ExceptionType.DEPLOY) __wlst_mode = WlstModes.OFFLINE __tmp_model_dir = None __required_arguments = [ CommandLineArgUtil.ORACLE_HOME_SWITCH, CommandLineArgUtil.DOMAIN_HOME_SWITCH ] __optional_arguments = [ # Used by shell script to locate WLST CommandLineArgUtil.DOMAIN_TYPE_SWITCH, CommandLineArgUtil.ARCHIVE_FILE_SWITCH, CommandLineArgUtil.MODEL_FILE_SWITCH, CommandLineArgUtil.PREVIOUS_MODEL_FILE_SWITCH,
def __init__(self, program_name, arg_map): """ Create a new model context instance. Tools should use model_context_helper.create_context(), to ensure that the typedef is initialized correctly. Unit tests should use this constructor directly, since typedef files are not deployed. :param program_name: the program name, used for logging :param arg_map: all the arguments passed to the tool """ self._program_name = program_name self._logger = platform_logger.PlatformLogger('wlsdeploy.util') self._wls_helper = WebLogicHelper(self._logger) self._oracle_home = None self._wl_home = None self._java_home = None self._domain_home = None self._domain_name = None self._domain_parent_dir = None self._domain_type = 'WLS' self._domain_typedef = None self._admin_url = None self._admin_user = None self._admin_password = None self._archive_file_name = None self._archive_file = None self._model_file = None self._previous_model_file = None self._variable_file_name = None self._run_rcu = False self._rcu_database = None self._rcu_prefix = None self._rcu_sys_pass = None self._rcu_schema_pass = None self._encryption_passphrase = None self._encrypt_manual = False self._encrypt_one_pass = None self._use_encryption = False self._wl_version = None self._wlst_mode = None self._recursive = False self._attributes_only = False self._folders_only = False self._opss_wallet_passphrase = None self._opss_wallet = None self._update_rcu_schema_pass = False self._validation_method = None self._rollback_if_restart_required = None self._domain_resource_file = None self._output_dir = None self._target = None self._target_configuration = None self._variable_injector_file = None self._variable_keywords_file = None self._variable_properties_file = None self._rcu_db_user = self.DB_USER_DEFAULT self._discard_current_edit = False self._model_config = None self._ignore_missing_archive_entries = False self._trailing_args = [] if self._wl_version is None: self._wl_version = self._wls_helper.get_actual_weblogic_version() if self._wlst_mode is None: self._wlst_mode = WlstModes.OFFLINE self.__copy_from_args(arg_map) return