@@ -103,6 +103,7 @@ define(['knockout', 'utils/observable-properties', 'utils/common-utilities', 'ut
103103
104104 // update the secrets list when any model content changes.
105105 wdtModel . modelContentChanged . subscribe ( ( ) => {
106+ wktLogger . debug ( 'modelContentChanged event calling updateSecrets()' ) ;
106107 this . updateSecrets ( ) ;
107108 } ) ;
108109
@@ -132,15 +133,20 @@ define(['knockout', 'utils/observable-properties', 'utils/common-utilities', 'ut
132133 } ;
133134
134135 this . setCredentialPathsForSecretsTable = ( json ) => {
136+ wktLogger . debug ( 'entering setCredentialPathsForSecretsTable() with secrets table length = %s' , this . secrets . value . length ) ;
135137 if ( this . secrets . value . length > 0 ) {
136138 if ( ! json . credentialPaths ) {
139+ wktLogger . debug ( 'creating credentialPaths array' ) ;
137140 json . credentialPaths = [ ] ;
138141 }
139142 for ( const secret of this . secrets . value ) {
143+ wktLogger . debug ( 'working on secret path %s' , `${ name } .secrets.${ secret . uid } ` ) ;
140144 if ( secret . username ) {
145+ wktLogger . debug ( 'setting secret %s' , `${ name } .secrets.${ secret . uid } .username` ) ;
141146 json . credentialPaths . push ( `${ name } .secrets.${ secret . uid } .username` ) ;
142147 }
143148 if ( secret . password ) {
149+ wktLogger . debug ( 'setting secret %s' , `${ name } .secrets.${ secret . uid } .password` ) ;
144150 json . credentialPaths . push ( `${ name } .secrets.${ secret . uid } .password` ) ;
145151 }
146152 }
@@ -207,10 +213,18 @@ define(['knockout', 'utils/observable-properties', 'utils/common-utilities', 'ut
207213
208214 this . handlePrepareModelSecrets = ( secrets ) => {
209215 if ( secrets && secrets . secrets && secrets . secrets . length ) {
216+ wktLogger . debug ( 'handlePrepareModelSecrets() working on %d secrets' , secrets . secrets . length ) ;
210217 for ( const secret of secrets . secrets ) {
211- const existingSecretObject = findSecretByName ( secret . name , this . secrets . observable ( ) ) ;
218+ wktLogger . debug ( 'working on secret %s' , secret . name ) ;
219+
220+ // The secret should always exist already because prepare model updated the model first,
221+ // which triggers updating the secrets ListProperty. If not, something is broken...
222+ //
223+ const existingSecretObject = findSecretByName ( this . uid . value , secret . name , this . secrets . observable ( ) ) ;
212224 updateSecretFromPrepareModelResults ( existingSecretObject , secret . keys ) ;
213225 }
226+ } else {
227+ wktLogger . debug ( 'handlePrepareModelSecrets() has nothing to do' ) ;
214228 }
215229 } ;
216230
@@ -222,7 +236,7 @@ define(['knockout', 'utils/observable-properties', 'utils/common-utilities', 'ut
222236
223237 this . getFieldValueFromExistingSecrets = ( uid , fieldName , defaultValue ) => {
224238 let result = defaultValue ;
225- for ( const domainSecret of this . secrets . value ) {
239+ for ( const domainSecret of this . secrets . observable ( ) ) {
226240 if ( domainSecret . uid === uid ) {
227241 if ( domainSecret [ fieldName ] ) {
228242 result = domainSecret [ fieldName ] ;
@@ -269,10 +283,11 @@ define(['knockout', 'utils/observable-properties', 'utils/common-utilities', 'ut
269283 }
270284 }
271285
272- function findSecretByName ( secretName , secretsList ) {
286+ function findSecretByName ( domainUid , secretName , secretsList ) {
273287 let result ;
288+ const domainQualifiedSecretName = `${ domainUid } -${ secretName } ` ;
274289 for ( const secret of secretsList ) {
275- if ( secret . name === secretName ) {
290+ if ( secret . name === domainQualifiedSecretName || secret . name === secretName ) {
276291 result = secret ;
277292 break ;
278293 }
0 commit comments