diff --git a/jenkins_jobs/modules/wrappers.py b/jenkins_jobs/modules/wrappers.py index 6d303605b..8afb409c8 100644 --- a/jenkins_jobs/modules/wrappers.py +++ b/jenkins_jobs/modules/wrappers.py @@ -2035,10 +2035,6 @@ def ssh_agent_credentials(registry, xml_parent, data): .. literalinclude:: /../../tests/wrappers/fixtures/ssh-agent-credentials003.yaml - The **users** with one value in list equals to the **user**. In this - case old style XML will be generated. Use this format if you use - SSH-Agent plugin < 1.5. - Example: .. literalinclude:: @@ -2053,16 +2049,22 @@ def ssh_agent_credentials(registry, xml_parent, data): logger = logging.getLogger(__name__) + plugin_info = registry.get_plugin_info("SSH Agent Plugin") + plugin_ver = pkg_resources.parse_version( + plugin_info.get("version", str(sys.maxsize)) + ) + entry_xml = XML.SubElement( xml_parent, "com.cloudbees.jenkins.plugins.sshagent.SSHAgentBuildWrapper" ) + user_parent_entry_xml = entry_xml xml_key = "user" user_list = list() if "users" in data: user_list += data["users"] - if len(user_list) > 1: - entry_xml = XML.SubElement(entry_xml, "credentialIds") + if plugin_ver >= pkg_resources.parse_version("1.5.0"): + user_parent_entry_xml = XML.SubElement(entry_xml, "credentialIds") xml_key = "string" if "user" in data: logger.warning( @@ -2081,7 +2083,7 @@ def ssh_agent_credentials(registry, xml_parent, data): ) for user in user_list: - XML.SubElement(entry_xml, xml_key).text = user + XML.SubElement(user_parent_entry_xml, xml_key).text = user mapping = [("ignore-missing-credentials", "ignoreMissing", False)] helpers.convert_mapping_to_xml(entry_xml, data, mapping, fail_required=False) diff --git a/tests/wrappers/fixtures/ssh-agent-credentials002.xml b/tests/wrappers/fixtures/ssh-agent-credentials002.xml index 2b6f9fe6f..3f9c2be93 100644 --- a/tests/wrappers/fixtures/ssh-agent-credentials002.xml +++ b/tests/wrappers/fixtures/ssh-agent-credentials002.xml @@ -6,8 +6,8 @@ 44747833-247a-407a-a98f-a5a2d785111c f1c0f777-7ac6-43fd-b5c7-68b420aa1392 dd647a01-be21-402b-bfc5-a4e89be7d0c4 - false + false diff --git a/tests/wrappers/fixtures/ssh-agent-credentials003.xml b/tests/wrappers/fixtures/ssh-agent-credentials003.xml index ab9fad817..11866125c 100644 --- a/tests/wrappers/fixtures/ssh-agent-credentials003.xml +++ b/tests/wrappers/fixtures/ssh-agent-credentials003.xml @@ -5,8 +5,8 @@ 44747833-247a-407a-a98f-a5a2d785111c dd647a01-be21-402b-bfc5-a4e89be7d0c4 - false + false diff --git a/tests/wrappers/fixtures/ssh-agent-credentials004-post-v1.5.xml b/tests/wrappers/fixtures/ssh-agent-credentials004-post-v1.5.xml new file mode 100644 index 000000000..2ffc44e36 --- /dev/null +++ b/tests/wrappers/fixtures/ssh-agent-credentials004-post-v1.5.xml @@ -0,0 +1,11 @@ + + + + + + 49d20745-9889-4c02-b286-fc6fb89c36bd + + false + + + diff --git a/tests/wrappers/fixtures/ssh-agent-credentials004-post-v1.5.yaml b/tests/wrappers/fixtures/ssh-agent-credentials004-post-v1.5.yaml new file mode 100644 index 000000000..b0668a940 --- /dev/null +++ b/tests/wrappers/fixtures/ssh-agent-credentials004-post-v1.5.yaml @@ -0,0 +1,4 @@ +wrappers: + - ssh-agent-credentials: + users: + - '49d20745-9889-4c02-b286-fc6fb89c36bd' diff --git a/tests/wrappers/fixtures/ssh-agent-credentials004.plugins_info.yaml b/tests/wrappers/fixtures/ssh-agent-credentials004.plugins_info.yaml new file mode 100644 index 000000000..33670f3de --- /dev/null +++ b/tests/wrappers/fixtures/ssh-agent-credentials004.plugins_info.yaml @@ -0,0 +1,3 @@ +- longName: 'SSH Agent Plugin' + shortName: 'ssh-agent' + version: "1.4" diff --git a/tests/wrappers/fixtures/ssh-agent-credentials005.xml b/tests/wrappers/fixtures/ssh-agent-credentials005.xml new file mode 100644 index 000000000..c0f45d739 --- /dev/null +++ b/tests/wrappers/fixtures/ssh-agent-credentials005.xml @@ -0,0 +1,9 @@ + + + + + + false + + + diff --git a/tests/wrappers/fixtures/ssh-agent-credentials005.yaml b/tests/wrappers/fixtures/ssh-agent-credentials005.yaml new file mode 100644 index 000000000..5f453180c --- /dev/null +++ b/tests/wrappers/fixtures/ssh-agent-credentials005.yaml @@ -0,0 +1,3 @@ +wrappers: + - ssh-agent-credentials: + users: []