def testTokenSyntaxErrors(self): """ Test that exceptions are thrown for token syntax errors. """ # Temporarily disable logging for this test. Each test is expected to fail and issue warning messages logger = platform_logger.PlatformLogger('wlsdeploy.variables') original_level = logger.get_level() logger.set_level(Level.OFF) self._test_token_syntax_error("@@SECRET:my-secret/my-key@@") self._test_token_syntax_error("@@SECRET:@@ENVmy-secret:-my-key@@-some-more-text") self._test_token_syntax_error("@@ENV:my-secret!@@") self._test_token_syntax_error("@@FILE:@@ORACLE_HOME@@/my-file") self._test_token_syntax_error("@@PROP:") # Restore original log level logger.set_level(original_level)
class CustomFolderHelperTestCase(unittest.TestCase): """ Test the Custom MBean attribute conversion routines which convert from WLST value to Model value. Test comparison of converted model value to default value. """ _custom_helper = None _logger = platform_logger.PlatformLogger('wlsdeploy.unittest') _aliases = None _model_context = None _wls_version = '12.2.1.3' def setUp(self): arg_map = dict() arg_map[CLA.ORACLE_HOME_SWITCH] = '/my/path/to/oracle' arg_map[CLA.TARGET_MODE_SWITCH] = 'offline' self._model_context = ModelContext("test", arg_map) self._aliases = Aliases(model_context=self._model_context, wlst_mode=WlstModes.OFFLINE, wls_version=self._wls_version) self._custom_helper = CustomFolderHelper(self._aliases, self._logger, self._model_context, ExceptionType.DISCOVER) return def testEncryptedPassword(self): credential_string = 'AES}0vlIcO+I+VWV9aQ1wzQUa1qtByh4D9d0I1dJHa7HsdE=' try: bos = ByteArrayOutputStream() dos = DataOutputStream(bos) dos.writeBytes(credential_string) byte_array = bos.toByteArray() dos.close() except IOException, ioe: self.fail('Unexpected exception writing out credential : ', str(ioe)) converted_type, converted_value = self._custom_helper.convert( byte_array, '[B') self.common_test_converted(alias_constants.PASSWORD_TOKEN, alias_constants.PASSWORD, converted_value, converted_type)
""" Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved. Licensed under the Universal Permissive License v 1.0 as shown at http://oss.oracle.com/licenses/upl. """ from wlsdeploy.aliases.wlst_modes import WlstModes from wlsdeploy.logging import platform_logger from wlsdeploy.tool.discover import discoverer from wlsdeploy.tool.discover.common_resources_discoverer import CommonResourcesDiscoverer from wlsdeploy.tool.discover.global_resources_discoverer import GlobalResourcesDiscoverer _class_name = 'ResourcesDiscoverer' _logger = platform_logger.PlatformLogger(discoverer.get_discover_logger_name()) class ResourcesDiscoverer(object): """ Discover the weblogic resources from the domain. This includes the global resources and the resources common to both global and multi-tenant. """ def __init__(self, model_context, resource_dictionary, base_location, wlst_mode=WlstModes.OFFLINE, aliases=None): self._base_location = base_location self._aliases = aliases self._model_context = model_context self._dictionary = resource_dictionary self._wlst_mode = wlst_mode def discover(self): """ Discover weblogic resources from the on-premise domain. :return: resources: dictionary
from oracle.weblogic.deploy.util import FileUtils from oracle.weblogic.deploy.util import PyWLSTException from oracle.weblogic.deploy.util import WLSDeployArchive from wlsdeploy.aliases.wlst_modes import WlstModes from wlsdeploy.exception import exception_helper from wlsdeploy.exception.expection_types import ExceptionType from wlsdeploy.logging import platform_logger from wlsdeploy.tool.util.wlst_helper import WlstHelper from wlsdeploy.aliases.model_constants import RESOURCE_GROUP from wlsdeploy.aliases.model_constants import RESOURCE_GROUP_TEMPLATE _class_name = "deployer_utils" _logger = platform_logger.PlatformLogger('wlsdeploy.deploy.utils') _wlst_helper = WlstHelper(_logger, ExceptionType.DEPLOY) def get_existing_object_list(location, alias_helper): """ Get a list of the existing names at the specified location. :param location: the location to be examined, for example, location MACHINE returns names under /Machines :param alias_helper: the alias helper used to determine path names """ method_name = 'get_existing_object_list' list_path = alias_helper.get_wlst_list_path(location) existing_names = _wlst_helper.get_existing_object_list(list_path) _logger.finer("WLSDPLY-09100", existing_names, class_name=_class_name,
from java.io import FileReader from java.io import PrintWriter from java.io import IOException from java.util import Properties from oracle.weblogic.deploy.util import PyOrderedDict as OrderedDict from wlsdeploy.util import path_utils from wlsdeploy.util import string_utils from wlsdeploy.exception import exception_helper from wlsdeploy.logging import platform_logger from wlsdeploy.util import dictionary_utils from wlsdeploy.util.cla_utils import CommandLineArgUtil _class_name = "variables" _logger = platform_logger.PlatformLogger('wlsdeploy.variables') _file_variable_pattern = re.compile("@@FILE:[\w.\\\/:-]+@@") _property_pattern = re.compile("(@@PROP:([\\w.-]+)@@)") _environment_pattern = re.compile("(@@ENV:([\\w.-]+)@@)") _secret_pattern = re.compile("(@@SECRET:([\\w.-]+):([\\w.-]+)@@)") _file_nested_variable_pattern = re.compile("@@FILE:@@[\w]+@@[\w.\\\/:-]+@@") # if this pattern is found, token substitution was incomplete _unresolved_token_pattern = re.compile("(@@(PROP|FILE|ENV|SECRET):)") _secret_dirs_variable = "WDT_MODEL_SECRETS_DIRS" _secret_dir_pairs_variable = "WDT_MODEL_SECRETS_NAME_DIR_PAIRS" _secret_token_map = None
def setUp(self): self.name = 'LoggerTestCase' self.logger = platform_logger.PlatformLogger(self.name) self.wls_helper = WebLogicHelper(self.logger)
def __init__(self, program_name, arg_map): 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._print_usage = 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._validation_method = None 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.PREVIOUS_MODEL_FILE_SWITCH in arg_map: self._previous_model_file = arg_map[ CommandLineArgUtil.PREVIOUS_MODEL_FILE_SWITCH] if CommandLineArgUtil.PRINT_USAGE_SWITCH in arg_map: self._print_usage = arg_map[CommandLineArgUtil.PRINT_USAGE_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_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.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.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.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 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
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._print_usage = 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._validation_method = None self._rollback_if_restart_required = None 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.PREVIOUS_MODEL_FILE_SWITCH in arg_map: self._previous_model_file = arg_map[CommandLineArgUtil.PREVIOUS_MODEL_FILE_SWITCH] if CommandLineArgUtil.PRINT_USAGE_SWITCH in arg_map: self._print_usage = arg_map[CommandLineArgUtil.PRINT_USAGE_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_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.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.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 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
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._cancel_changes_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
def __init__(self, file_name, use_ordering=False): self.file_name = file_name self.use_ordering = use_ordering self.logger = platform_logger.PlatformLogger('wlsdeploy.translator')
def __init__(self, dictionary): self.dictionary = dictionary self.logger = platform_logger.PlatformLogger('wlsdeploy.translator') self._hyphenate_yaml_lists = False
def __init__(self, dictionary): self.dictionary = dictionary self.logger = platform_logger.PlatformLogger('wlsdeploy.translator')
""" Copyright (c) 2019, 2020, Oracle Corporation and/or its affiliates. All rights reserved. Licensed under the Universal Permissive License v 1.0 as shown at https://oss.oracle.com/licenses/upl. """ from wlsdeploy.exception import exception_helper from wlsdeploy.logging import platform_logger _class_name = "model_helper" _logger = platform_logger.PlatformLogger('wlsdeploy.model.helper') # Helper methods for WDT model (Jython-compatible) def is_delete_name(name): """ Determines if the specified name is flagged for deletion with the "!" prefix. :param name: the name to be checked :return: True if the name is prefixed, false otherwise """ return name.startswith("!") def get_delete_item_name(name): """ Returns the WLST name of the item to be deleted. Removes the "!" prefix from the name. An exception is thrown if the name is not prefixed. :param name: the prefixed model name of the item to be deleted :return: the model name of the item to be deleted """ _method_name = 'get_delete_item_name'