Merge "pass-to-parent: Fix passing multiple secrets to parent"

This commit is contained in:
Zuul
2019-05-22 04:51:21 +00:00
committed by Gerrit Code Review
3 changed files with 21 additions and 12 deletions
@@ -43,16 +43,19 @@
name: pass
parent: parent-job
secrets:
name: secret
secret: secret1
pass-to-parent: true
- name: secret1
secret: secret1
pass-to-parent: true
- name: secret2
secret: secret2
pass-to-parent: true
files: pass.txt
- job:
name: override
parent: pass
secrets:
name: secret
name: secret1
secret: secret2
pass-to-parent: true
files: override.txt
+12 -6
View File
@@ -4284,15 +4284,18 @@ class TestSecretPassToParent(ZuulTestCase):
self.assertEqual(
self._getSecrets('pass', 'playbooks'),
[{'parent_secret': {'password': 'password3'},
'secret': {'password': 'password1'}}])
'secret1': {'password': 'password1'},
'secret2': {'password': 'password2'}}])
self.assertEqual(
self._getSecrets('pass', 'pre_playbooks'),
[{'parent_secret': {'password': 'password3'},
'secret': {'password': 'password1'}}])
'secret1': {'password': 'password1'},
'secret2': {'password': 'password2'}}])
self.assertEqual(
self._getSecrets('pass', 'post_playbooks'),
[{'parent_secret': {'password': 'password3'},
'secret': {'password': 'password1'}}])
'secret1': {'password': 'password1'},
'secret2': {'password': 'password2'}}])
B = self.fake_gerrit.addFakeChange('org/project', 'master', 'B',
files=file_dict)
@@ -4320,15 +4323,18 @@ class TestSecretPassToParent(ZuulTestCase):
self.assertEqual(
self._getSecrets('override', 'playbooks'),
[{'parent_secret': {'password': 'password3'},
'secret': {'password': 'password1'}}])
'secret1': {'password': 'password1'},
'secret2': {'password': 'password2'}}])
self.assertEqual(
self._getSecrets('override', 'pre_playbooks'),
[{'parent_secret': {'password': 'password3'},
'secret': {'password': 'password1'}}])
'secret1': {'password': 'password1'},
'secret2': {'password': 'password2'}}])
self.assertEqual(
self._getSecrets('override', 'post_playbooks'),
[{'parent_secret': {'password': 'password3'},
'secret': {'password': 'password1'}}])
'secret1': {'password': 'password1'},
'secret2': {'password': 'password2'}}])
def test_secret_ptp_trusted_untrusted(self):
# Test if we pass a secret to a parent and one of the parents
+2 -2
View File
@@ -1572,8 +1572,8 @@ class Job(ConfigObject):
secret = layout.secrets.get(secret_use.name)
decrypted_secret = secret.decrypt(
other.source_context.project.private_secrets_key)
decrypted_secret.name = secret_use.alias
decrypted_secrets.append(decrypted_secret)
decrypted_secret.name = secret_use.alias
decrypted_secrets.append(decrypted_secret)
# Add the secrets to any existing playbooks. If any of
# them are in an untrusted project, then we've just given
# a secret to a playbook which can run in dynamic config,