|
43 | 43 | from wlsdeploy.aliases.model_constants import DRIVER_PARAMS_NET_TNS_ADMIN
|
44 | 44 | from wlsdeploy.aliases.model_constants import DRIVER_PARAMS_PROPERTY_VALUE
|
45 | 45 | from wlsdeploy.aliases.model_constants import DRIVER_PARAMS_PROPERTY_VALUE_ENCRYPTED
|
| 46 | +from wlsdeploy.aliases.model_constants import DRIVER_PARAMS_PROPERTY_SYS_PROP_VALUE |
46 | 47 | from wlsdeploy.aliases.model_constants import DRIVER_PARAMS_TRUSTSTOREPWD_PROPERTY
|
47 | 48 | from wlsdeploy.aliases.model_constants import DRIVER_PARAMS_TRUSTSTORETYPE_PROPERTY
|
48 | 49 | from wlsdeploy.aliases.model_constants import DRIVER_PARAMS_TRUSTSTORE_PROPERTY
|
@@ -887,7 +888,55 @@ def __update_precheck_from_model_data_source(self, jdbc_driver_name, jdbc_conn_s
|
887 | 888 | props.put('password', new_password)
|
888 | 889 |
|
889 | 890 | for prop_key, prop_value in model_properties_dict.iteritems():
|
890 |
| - props.put(prop_key, prop_value) |
| 891 | + if isinstance(prop_value, dict): |
| 892 | + if DRIVER_PARAMS_PROPERTY_VALUE in prop_value: |
| 893 | + props.put(prop_key, prop_value[DRIVER_PARAMS_PROPERTY_VALUE]) |
| 894 | + elif DRIVER_PARAMS_PROPERTY_SYS_PROP_VALUE in prop_value: |
| 895 | + sys_prop_name = prop_value[DRIVER_PARAMS_PROPERTY_SYS_PROP_VALUE] |
| 896 | + sys_prop_value = None |
| 897 | + if sys_prop_name is not None: |
| 898 | + sys_prop_value = System.getProperty(sys_prop_name) |
| 899 | + |
| 900 | + if sys_prop_value is not None: |
| 901 | + props.put(prop_key, sys_prop_value) |
| 902 | + else: |
| 903 | + if sys_prop_name is None: |
| 904 | + self.__logger.warning('WLSDPLY-12271', data_source_name, prop_key, |
| 905 | + DRIVER_PARAMS_PROPERTY_SYS_PROP_VALUE, |
| 906 | + class_name=self.__class_name, method_name=_method_name) |
| 907 | + else: |
| 908 | + # The system property specified might be something like "weblogic.Name", which |
| 909 | + # will be set for the actual DataSource inside the server but typically won't |
| 910 | + # be set in a WDT createDomain environment so log as info instead of warning |
| 911 | + # so that createDomain doesn't exit with a non-zero exit code. |
| 912 | + # |
| 913 | + self.__logger.info('WLSDPLY-12273', data_source_name, prop_key, |
| 914 | + DRIVER_PARAMS_PROPERTY_SYS_PROP_VALUE, sys_prop_name, |
| 915 | + class_name=self.__class_name, method_name=_method_name) |
| 916 | + else: |
| 917 | + unhandled_field_name = None |
| 918 | + if DRIVER_PARAMS_PROPERTY_VALUE_ENCRYPTED in prop_value: |
| 919 | + unhandled_field_name = DRIVER_PARAMS_PROPERTY_VALUE_ENCRYPTED |
| 920 | + |
| 921 | + if unhandled_field_name is not None: |
| 922 | + ex = exception_helper.create_create_exception('WLSDPLY-12265', data_source_name, |
| 923 | + prop_key, DRIVER_PARAMS_PROPERTY_VALUE, |
| 924 | + unhandled_field_name) |
| 925 | + self.__logger.throwing(ex, class_name=self.__class_name, method_name=_method_name) |
| 926 | + raise ex |
| 927 | + else: |
| 928 | + unhandled_field_names = prop_value.keys() |
| 929 | + if len(unhandled_field_names) > 0: |
| 930 | + # This should never happen since validation should catch unsupported fields |
| 931 | + unhandled_field_name = unhandled_field_names.join(',') |
| 932 | + ex = exception_helper.create_create_exception('WLSDPLY-12266', data_source_name, |
| 933 | + prop_key, DRIVER_PARAMS_PROPERTY_VALUE, |
| 934 | + unhandled_field_name) |
| 935 | + else: |
| 936 | + ex = exception_helper.create_create_exception('WLSDPLY-12267', data_source_name, |
| 937 | + prop_key, DRIVER_PARAMS_PROPERTY_VALUE) |
| 938 | + self.__logger.throwing(ex, class_name=self.__class_name, method_name=_method_name) |
| 939 | + raise ex |
891 | 940 |
|
892 | 941 | self.__logger.exiting(class_name=self.__class_name, method_name=_method_name,
|
893 | 942 | result=[new_jdbc_driver_name, new_jdbc_conn_string])
|
|
0 commit comments