[Patchew-devel] [PATCH] deploy: rewrite tester playbook

Paolo Bonzini posted 1 patch 44 weeks ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/patchew next tags/patchew/20190131164502.23700-1-pbonzini@redhat.com
scripts/playbooks/deploy-testers.yml | 31 +++++++++++++++-------------
1 file changed, 17 insertions(+), 14 deletions(-)

[Patchew-devel] [PATCH] deploy: rewrite tester playbook

Posted by Paolo Bonzini 44 weeks ago
The tester deployment playbook is not using become correctly and thus
does not copy the source to the destination directory for the right
user.

While at it, also modify it so that the password and log are stored
under the per-instance data directory, allowing more tester instances
to run with the same user.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 scripts/playbooks/deploy-testers.yml | 31 +++++++++++++++-------------
 1 file changed, 17 insertions(+), 14 deletions(-)

diff --git a/scripts/playbooks/deploy-testers.yml b/scripts/playbooks/deploy-testers.yml
index 7b375db..a875d99 100644
--- a/scripts/playbooks/deploy-testers.yml
+++ b/scripts/playbooks/deploy-testers.yml
@@ -24,8 +24,8 @@
       private: no
   vars:
     base_dir: "{{ instance_name }}"
-    src_dir: "{{ base_dir }}/src"
-    patchew_cmd: "{{ src_dir }}/patchew-cli -s {{ patchew_server }}"
+    dest_base_dir: "~{{ cron_user }}/{{ base_dir }}"
+    patchew_cmd: "{{ base_dir }}/src/patchew-cli -s {{ patchew_server }}"
   tasks:
     - debug:
         msg: Patchew tester deploy starting
@@ -35,13 +35,16 @@
         shell: /bin/bash
         state: present
     - name: Create patchew data folder
+      become: yes
+      become_user: "{{ cron_user }}"
       file:
-        path: "{{ base_dir }}"
+        path: "{{ dest_base_dir }}"
         state: directory
     - name: Copy source
+      remote_user: "{{ cron_user }}"
       synchronize:
         src: ../../../
-        dest: "{{ src_dir }}"
+        dest: "{{ dest_base_dir }}/src"
         recursive: true
         group: no
         owner: no
@@ -51,19 +54,19 @@
           - "--exclude=*.swp"
           - "--exclude=/venv"
     - name: Generate password file
-      shell: "echo {{ tester_pass }} > $HOME/.patchew-tester-pass"
+      become: yes
+      become_user: "{{ cron_user }}"
+      shell: "cd ~{{ cron_user }} && echo {{ tester_pass }} > {{ base_dir }}/patchew-tester-pass"
     - name: Login with patchew-cli
-      shell: "{{ patchew_cmd }} login {{ tester_user }} $(cat $HOME/.patchew-tester-pass)"
+      become: yes
+      become_user: "{{ cron_user }}"
+      shell: "cd ~{{ cron_user }} && {{ patchew_cmd }} login {{ tester_user }} $(cat {{ base_dir }}/patchew-tester-pass)"
     - name: Logout with patchew-cli
-      shell: "{{ patchew_cmd }} logout"
-    - name: Define PATCHEW env in cron
-      cron:
-        name: PATCHEW
-        user: "{{ cron_user }}"
-        env: yes
-        value: "{{ patchew_cmd }}"
+      become: yes
+      become_user: "{{ cron_user }}"
+      shell: "cd ~{{ cron_user }} && {{ patchew_cmd }} logout"
     - cron:
         name: "Patchew tester {{ instance_name }}"
         user: "{{ cron_user }}"
         minute: "*/10"
-        job: "{ $PATCHEW login {{ tester_user }} $(cat $HOME/.patchew-tester-pass); $PATCHEW tester --name {{ instance_name }} --singleton -p {{ tester_project }}; } >>$HOME/patchew-tester.log 2>&1"
+        job: "{ {{ patchew_cmd }} login {{ tester_user }} $(cat {{ base_dir }}/patchew-tester-pass); {{ patchew_cmd }} tester --name {{ instance_name }} --singleton -p {{ tester_project }}; } >>{{ base_dir }}/log 2>&1"
-- 
2.20.1

_______________________________________________
Patchew-devel mailing list
Patchew-devel@redhat.com
https://www.redhat.com/mailman/listinfo/patchew-devel