From 97be0612fb7be443eb373fa14ba5b95f9c71503f Mon Sep 17 00:00:00 2001
From: Thomas Woerner <twoerner@redhat.com>
Date: Wed, 23 Aug 2017 20:38:51 +0200
Subject: [PATCH] library/ipaclient.py: servers needs to be a list

More than one server could be specified
---
 library/ipaclient.py              | 17 +++++++++--------
 roles/ipaclient/defaults/main.yml |  2 +-
 roles/ipaclient/tasks/install.yml |  2 +-
 3 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/library/ipaclient.py b/library/ipaclient.py
index 0fdc4c45..46b33f43 100644
--- a/library/ipaclient.py
+++ b/library/ipaclient.py
@@ -47,8 +47,8 @@ options:
   realm:
     description:  The Kerberos realm of an existing IPA deployment.
     required: false
-  server:
-    description: The FQDN of the IPA server to connect to.
+  servers:
+    description: The FQDN of the IPA servers to connect to.
     required: false
   principal:
     description: The authorized kerberos principal used to join the IPA realm.
@@ -115,7 +115,7 @@ EXAMPLES = '''
     principal: admin
     password: MySecretPassword
     domain: ipa.domain.com
-    server: ipaserver.ipa.domain.com
+    servers: ipaserver.ipa.domain.com
     ntp: no
     kinit_attempts: 5
 
@@ -222,7 +222,7 @@ def ensure_ipa_client(module):
 
     domain = module.params.get('domain')
     realm = module.params.get('realm')
-    server = module.params.get('server')
+    servers = module.params.get('servers')
     principal = module.params.get('principal')
     password = module.params.get('password')
     keytab = module.params.get('keytab')
@@ -267,9 +267,10 @@ def ensure_ipa_client(module):
     if realm:
         cmd.append("--realm")
         cmd.append(realm)
-    if server:
-        cmd.append("--server")
-        cmd.append(server)
+    if servers:
+        for server in servers:
+            cmd.append("--server")
+            cmd.append(server)
     if password:
         cmd.append("--password")
         cmd.append(password)
@@ -314,7 +315,7 @@ def main():
             state=dict(default='present', choices=['present', 'absent']),
             domain=dict(required=False),
             realm=dict(required=False),
-            server=dict(required=False),
+            servers=dict(required=False, type='list'),
             principal=dict(default='admin'),
             password=dict(required=False, no_log=True),
             keytab=dict(required=False, type='path'),
diff --git a/roles/ipaclient/defaults/main.yml b/roles/ipaclient/defaults/main.yml
index b5ae99b7..fd1efca4 100644
--- a/roles/ipaclient/defaults/main.yml
+++ b/roles/ipaclient/defaults/main.yml
@@ -3,7 +3,7 @@
 
 ipaclient_domain:
 ipaclient_realm:
-ipaclient_server:
+ipaclient_servers:
 
 ipaclient_principal:
 ipaclient_password:
diff --git a/roles/ipaclient/tasks/install.yml b/roles/ipaclient/tasks/install.yml
index 1695bea3..ef4e30cd 100644
--- a/roles/ipaclient/tasks/install.yml
+++ b/roles/ipaclient/tasks/install.yml
@@ -37,7 +37,7 @@
     state: present
     domain: "{{ ipaclient_domain | default(omit) }}"
     realm: "{{ ipaclient_realm | default(omit) }}"
-    server: "{{ ipaclient_server | default(omit) }}"
+    servers: "{{ groups.ipaservers | default(omit) }}"
     principal: "{{ ipaclient_principal | default(omit) }}"
     password: "{{ ipaclient_password | default(omit) }}"
     keytab: "{{ ipaclient_keytab | default(omit) }}"
-- 
GitLab