6
6
"""
7
7
import os
8
8
import java .io .File as JFile
9
+ import java .io .BufferedReader as BufferedReader
10
+ import java .io .InputStreamReader as InputStreamReader
11
+ import java .io .IOException as IOException
9
12
import java .lang .IllegalArgumentException as JIllegalArgumentException
13
+ import java .lang .System as System
10
14
import java .net .URI as JURI
11
15
import java .net .URISyntaxException as JURISyntaxException
12
16
@@ -45,12 +49,16 @@ class CommandLineArgUtil(object):
45
49
ADMIN_USER_SWITCH = '-admin_user'
46
50
# phony arg used as a key to store the password
47
51
ADMIN_PASS_SWITCH = '-admin_pass'
52
+ ADMIN_PASS_FILE_SWITCH = '-admin_pass_file'
53
+ ADMIN_PASS_ENV_SWITCH = '-admin_pass_env'
48
54
ARCHIVE_FILE_SWITCH = '-archive_file'
49
55
SKIP_ARCHIVE_FILE_SWITCH = '-skip_archive'
50
56
MODEL_FILE_SWITCH = '-model_file'
51
57
DISCARD_CURRENT_EDIT_SWITCH = '-discard_current_edit'
52
58
OPSS_WALLET_SWITCH = '-opss_wallet'
53
59
OPSS_WALLET_PASSPHRASE = '-opss_wallet_passphrase'
60
+ OPSS_WALLET_FILE_PASSPHRASE = '-opss_wallet_passphrase_file'
61
+ OPSS_WALLET_ENV_PASSPHRASE = '-opss_wallet_passphrase_env'
54
62
PREVIOUS_MODEL_FILE_SWITCH = '-prev_model_file'
55
63
VARIABLE_FILE_SWITCH = '-variable_file'
56
64
RCU_DB_SWITCH = '-rcu_db'
@@ -62,6 +70,8 @@ class CommandLineArgUtil(object):
62
70
RCU_SCHEMA_PASS_SWITCH = '-rcu_schema_pass'
63
71
# phony arg used as a key to store the encryption passphrase
64
72
PASSPHRASE_SWITCH = '-passphrase'
73
+ PASSPHRASE_ENV_SWITCH = '-passphrase_env'
74
+ PASSPHRASE_FILE_SWITCH = '-passphrase_file'
65
75
ENCRYPT_MANUAL_SWITCH = '-manual'
66
76
# phony arg used as a key to store the password
67
77
ONE_PASS_SWITCH = '-password'
@@ -230,10 +240,26 @@ def process_args(self, args, tool_type=TOOL_TYPE_DEFAULT, trailing_arg_count=0):
230
240
value , idx = self ._get_arg_value (args , idx )
231
241
self ._validate_admin_pass_arg (value )
232
242
self ._add_arg (key , value )
243
+ elif self .is_admin_pass_env_key (key ):
244
+ env_var , idx = self ._get_arg_value (args , idx )
245
+ value = self ._get_env_var_value (env_var )
246
+ self ._add_arg (self .get_admin_pass_key (), value )
247
+ elif self .is_admin_pass_file_key (key ):
248
+ file_var , idx = self ._get_arg_value (args , idx )
249
+ value = self ._get_from_file_value (file_var )
250
+ self ._add_arg (self .get_admin_pass_key (), value )
233
251
elif self .is_archive_file_key (key ):
234
252
value , idx = self ._get_arg_value (args , idx )
235
253
full_path = self ._validate_archive_file_arg (value )
236
254
self ._add_arg (key , full_path , True )
255
+ elif self .is_opss_passphrase_env (key ):
256
+ env_var , idx = self ._get_arg_value (args , idx )
257
+ value = self ._get_env_var_value (env_var )
258
+ self ._add_arg (self .get_opss_passphrase_key (), value )
259
+ elif self .is_opss_passphrase_file (key ):
260
+ file_var , idx = self ._get_arg_value (args , idx )
261
+ value = self ._get_from_file_value (file_var )
262
+ self ._add_arg (self .get_opss_passphrase_key (), value )
237
263
elif self .is_opss_passphrase_key (key ):
238
264
value , idx = self ._get_arg_value (args , idx )
239
265
self ._validate_opss_passphrase_arg (value )
@@ -281,6 +307,14 @@ def process_args(self, args, tool_type=TOOL_TYPE_DEFAULT, trailing_arg_count=0):
281
307
value , idx = self ._get_arg_value (args , idx )
282
308
self ._validate_passphrase_arg (value )
283
309
self ._add_arg (key , value )
310
+ elif self .is_passphrase_env_switch (key ):
311
+ env_var , idx = self ._get_arg_value (args , idx )
312
+ value = self ._get_env_var_value (env_var )
313
+ self ._add_arg (self .get_passphrase_switch (), value )
314
+ elif self .is_passphrase_file_switch (key ):
315
+ file_var , idx = self ._get_arg_value (args , idx )
316
+ value = self ._get_from_file_value (file_var )
317
+ self ._add_arg (self .get_passphrase_switch (), value )
284
318
elif self .is_one_pass_switch (key ):
285
319
value , idx = self ._get_arg_value (args , idx )
286
320
self ._validate_one_pass_arg (value )
@@ -663,6 +697,12 @@ def get_admin_pass_key(self):
663
697
def is_admin_pass_key (self , key ):
664
698
return self .ADMIN_PASS_SWITCH == key
665
699
700
+ def is_admin_pass_env_key (self , key ):
701
+ return self .ADMIN_PASS_ENV_SWITCH == key
702
+
703
+ def is_admin_pass_file_key (self , key ):
704
+ return self .ADMIN_PASS_FILE_SWITCH == key
705
+
666
706
def _validate_admin_pass_arg (self , value ):
667
707
method_name = '_validate_admin_pass_arg'
668
708
@@ -709,6 +749,14 @@ def is_opss_passphrase_key(self, key):
709
749
710
750
return self .OPSS_WALLET_PASSPHRASE == key
711
751
752
+ def is_opss_passphrase_env (self , key ):
753
+
754
+ return self .OPSS_WALLET_ENV_PASSPHRASE == key
755
+
756
+ def is_opss_passphrase_file (self , key ):
757
+
758
+ return self .OPSS_WALLET_FILE_PASSPHRASE == key
759
+
712
760
def _validate_opss_passphrase_arg (self , value ):
713
761
method_name = '_validate_opss_passphrase_arg'
714
762
if value is None or len (value ) == 0 :
@@ -721,6 +769,12 @@ def _validate_opss_passphrase_arg(self, value):
721
769
def get_opss_wallet_key (self ):
722
770
return self .OPSS_WALLET_SWITCH
723
771
772
+ def get_opss_wallet_env (self ):
773
+ return self .OPSS_WALLET_ENV_SWITCH
774
+
775
+ def get_opss_wallet_file (self ):
776
+ return self .OPSS_WALLET__SWITCH
777
+
724
778
def is_opss_wallet_key (self , key ):
725
779
return self .OPSS_WALLET_SWITCH == key
726
780
@@ -885,12 +939,45 @@ def _validate_rcu_schema_pass_arg(self, value):
885
939
raise ex
886
940
return
887
941
942
+ def _get_env_var_value (self , env_var ):
943
+ _method_name = '_get_env_var_value'
944
+ value = System .getenv (env_var )
945
+ if not value :
946
+ ex = exception_helper .create_cla_exception ('WLSDPLY-01649' , env_var )
947
+ ex .setExitCode (self .ARG_VALIDATION_ERROR_EXIT_CODE )
948
+ self ._logger .throwing (ex , class_name = self ._class_name , method_name = _method_name )
949
+ raise ex
950
+ return value
951
+
952
+ def _get_from_file_value (self , file_var ):
953
+ _method_name = '_get_from_file_value'
954
+ ifile = None
955
+ try :
956
+ stream = JFileUtils .getFileAsStream (file_var )
957
+ ifile = BufferedReader (InputStreamReader (stream ))
958
+ value = ifile .readLine ()
959
+ ifile .close ()
960
+ return value
961
+ except IOException :
962
+ if ifile :
963
+ ifile .close ()
964
+ ex = exception_helper .create_cla_exception ('WLSDPLY-01651' , file_var )
965
+ ex .setExitCode (self .ARG_VALIDATION_ERROR_EXIT_CODE )
966
+ self ._logger .throwing (ex , class_name = self ._class_name , method_name = _method_name )
967
+ raise ex
968
+
888
969
def get_passphrase_switch (self ):
889
970
return self .PASSPHRASE_SWITCH
890
971
891
972
def is_passphrase_switch (self , key ):
892
973
return self .PASSPHRASE_SWITCH == key
893
974
975
+ def is_passphrase_env_switch (self , key ):
976
+ return self .PASSPHRASE_ENV_SWITCH == key
977
+
978
+ def is_passphrase_file_switch (self , key ):
979
+ return self .PASSPHRASE_FILE_SWITCH == key
980
+
894
981
def _validate_passphrase_arg (self , value ):
895
982
method_name = '_validate_passphrase_switch'
896
983
0 commit comments