From ecb4e555b48ae2cacefe58a3ce107f7cc701076b Mon Sep 17 00:00:00 2001 From: TC1977 <37350377+TC1977@users.noreply.github.com> Date: Tue, 21 May 2019 11:17:58 -0400 Subject: [PATCH] Update users: add server pick-list (#1441) * Pick server to update from menu * Command instead of shell * Move to find module Switched to the find module, and made the whole block dependent on server being undefined. * Change names * users.yml update - Add assert to check if any servers found - Set server_list as a proper list * Change 'Build string' to 'Build list' --- users.yml | 33 ++++++++++++++++++++++++++++++--- 1 file changed, 30 insertions(+), 3 deletions(-) diff --git a/users.yml b/users.yml index 9d2b21e..a77676c 100644 --- a/users.yml +++ b/users.yml @@ -7,17 +7,44 @@ tasks: - block: + - name: Get list of installed config files + find: + paths: configs/ + depth: 2 + recurse: true + hidden: true + patterns: ".config.yml" + register: _configs_list + + - name: Verify servers + assert: + that: _configs_list.matched > 0 + msg: No servers found, nothing to update. + + - name: Build list of installed servers + set_fact: + server_list: >- + [{% for i in _configs_list.files %} + '{{ i.path.split('/')[1] }}' + {{ ',' if not loop.last else '' }} + {% endfor %}] + - name: Server address prompt pause: - prompt: "Enter the IP address of your server: (or use localhost for local installation)" + prompt: | + Select the server to update user list below: + {% for r in server_list %} + {{ loop.index }}. {{ r }} + {% endfor %} register: _server - when: server is undefined + when: server is undefined + - block: - name: Set facts based on the input set_fact: algo_server: >- {% if server is defined %}{{ server }} - {%- elif _server.user_input %}{{ _server.user_input }} + {%- elif _server.user_input %}{{ server_list[_server.user_input | int -1 ] }} {%- else %}omit{% endif %} - name: Import host specific variables