| - name: Find all source repos used by this job | 
 |   find: | 
 |     paths: | 
 |       - src/git.openstack.org/openstack | 
 |       - src/git.openstack.org/openstack-dev | 
 |       - src/git.openstack.org/openstack-infra | 
 |     file_type: directory | 
 |   register: found_repos | 
 |  | 
 | - name: Copy Zuul repos into devstack working directory | 
 |   command: rsync -a {{ item.path }} {{ devstack_base_dir }} | 
 |   with_items: '{{ found_repos.files }}' | 
 |   become: yes | 
 |  | 
 | - name: Setup refspec for repos into devstack working directory | 
 |   shell: | 
 |     # Copied almost "as-is" from devstack-gate setup-workspace function | 
 |     # but removing the dependency on functions.sh | 
 |     # TODO this should be rewritten as a python module. | 
 |     cmd: | | 
 |       cd {{ devstack_base_dir }}/{{ item.path | basename }} | 
 |       base_branch={{ devstack_sources_branch }} | 
 |       if git branch -a | grep "$base_branch" > /dev/null ; then | 
 |           git checkout $base_branch | 
 |       elif [[ "$base_branch" == stable/* ]]; then | 
 |           # Look for an eol tag for the stable branch. | 
 |           eol_tag=${base_branch#stable/}-eol | 
 |           if git tag -l |grep $eol_tag >/dev/null; then | 
 |               git checkout $eol_tag | 
 |               git reset --hard $eol_tag | 
 |               if ! git clean -x -f -d -q ; then | 
 |                   sleep 1 | 
 |                   git clean -x -f -d -q | 
 |               fi | 
 |           fi | 
 |       else | 
 |           git checkout master | 
 |       fi | 
 |   args: | 
 |     executable: /bin/bash | 
 |   with_items: '{{ found_repos.files }}' | 
 |   when: devstack_sources_branch is defined | 
 |  | 
 | - name: Set ownership of repos | 
 |   file: | 
 |     path: '{{ devstack_base_dir }}' | 
 |     state: directory | 
 |     recurse: true | 
 |     owner: stack | 
 |     group: stack | 
 |   become: yes |