mirror-workspace-git: use port when pushing git repo through ssh

In the case of using a custom SSH port to connect to the ansible host,
the task of pushing the repository failed, as it assumed the SSH port to
be the default 22.

Now the command is aware of the custom SSH port, as it is specified in
the host facts.

Note that we have to escape the hostname if it is an ipv6 address
(because : is a special character in ipv6 addresses). Thankfully ansible
provides a filter to do that for us:
https://docs.ansible.com/ansible/2.5/user_guide/playbooks_filters_ipaddr.html#wrapping-ipv6-addresses-in-brackets

Change-Id: I76969850fc3a57078370fe38efdebac146720797
This commit is contained in:
Tudor Tabacel 2018-11-09 14:20:17 +01:00 committed by Clark Boylan
parent f6de96597f
commit 719f214db7

View File

@ -7,7 +7,7 @@
with_dict: "{{ zuul.projects }}" with_dict: "{{ zuul.projects }}"
- name: Synchronize src repos to workspace directory - name: Synchronize src repos to workspace directory
command: "git push --mirror git+ssh://{{ ansible_user }}@{{ ansible_host }}/{{ ansible_user_dir }}/{{ item.value.src_dir}}" command: "git push --mirror git+ssh://{{ ansible_user }}@{{ ansible_host | ipwrap }}:{{ ansible_port }}/{{ ansible_user_dir }}/{{ item.value.src_dir}}"
args: args:
chdir: "{{ zuul.executor.work_root }}/{{ item.value.src_dir }}" chdir: "{{ zuul.executor.work_root }}/{{ item.value.src_dir }}"
with_dict: "{{ zuul.projects }}" with_dict: "{{ zuul.projects }}"