|
|
590d18 |
From f81f6028428f232052fa372bf3b11fa1e7b3905e Mon Sep 17 00:00:00 2001
|
|
|
590d18 |
From: Jan Cholasta <jcholast@redhat.com>
|
|
|
590d18 |
Date: Wed, 30 Sep 2015 09:05:33 +0200
|
|
|
590d18 |
Subject: [PATCH] vault: select a server with KRA for vault operations
|
|
|
590d18 |
|
|
|
590d18 |
This uses the same mechanism which is used for the CA.
|
|
|
590d18 |
|
|
|
590d18 |
https://fedorahosted.org/freeipa/ticket/5302
|
|
|
590d18 |
|
|
|
590d18 |
Reviewed-By: Martin Basti <mbasti@redhat.com>
|
|
|
590d18 |
---
|
|
|
590d18 |
ipalib/constants.py | 3 ---
|
|
|
590d18 |
ipaserver/plugins/dogtag.py | 22 +++++++++++++++++++++-
|
|
|
590d18 |
2 files changed, 21 insertions(+), 4 deletions(-)
|
|
|
590d18 |
|
|
|
590d18 |
diff --git a/ipalib/constants.py b/ipalib/constants.py
|
|
|
590d18 |
index 1509151bac7e0abca081cbba033701db410fc54c..0c5fc49456307ed261acb057ce6612274da2c453 100644
|
|
|
590d18 |
--- a/ipalib/constants.py
|
|
|
590d18 |
+++ b/ipalib/constants.py
|
|
|
590d18 |
@@ -167,9 +167,6 @@ DEFAULT_CONFIG = (
|
|
|
590d18 |
('ca_agent_install_port', None),
|
|
|
590d18 |
('ca_ee_install_port', None),
|
|
|
590d18 |
|
|
|
590d18 |
- # KRA plugin
|
|
|
590d18 |
- ('kra_host', FQDN), # Set in Env._finalize_core()
|
|
|
590d18 |
-
|
|
|
590d18 |
# Topology plugin
|
|
|
590d18 |
('recommended_max_agmts', 4), # Recommended maximum number of replication
|
|
|
590d18 |
# agreements
|
|
|
590d18 |
diff --git a/ipaserver/plugins/dogtag.py b/ipaserver/plugins/dogtag.py
|
|
|
590d18 |
index 47279921a5428f388f84967b7bbe05d758e475bd..f5f8eb67067c87f07c06e556fb9fc73792fbbc64 100644
|
|
|
590d18 |
--- a/ipaserver/plugins/dogtag.py
|
|
|
590d18 |
+++ b/ipaserver/plugins/dogtag.py
|
|
|
590d18 |
@@ -1902,6 +1902,26 @@ class kra(Backend):
|
|
|
590d18 |
|
|
|
590d18 |
super(kra, self).__init__(api)
|
|
|
590d18 |
|
|
|
590d18 |
+ @property
|
|
|
590d18 |
+ def kra_host(self):
|
|
|
590d18 |
+ """
|
|
|
590d18 |
+ :return: host
|
|
|
590d18 |
+ as str
|
|
|
590d18 |
+
|
|
|
590d18 |
+ Select our KRA host.
|
|
|
590d18 |
+ """
|
|
|
590d18 |
+ ldap2 = self.api.Backend.ldap2
|
|
|
590d18 |
+ if host_has_service(api.env.ca_host, ldap2, "KRA"):
|
|
|
590d18 |
+ return api.env.ca_host
|
|
|
590d18 |
+ if api.env.host != api.env.ca_host:
|
|
|
590d18 |
+ if host_has_service(api.env.host, ldap2, "KRA"):
|
|
|
590d18 |
+ return api.env.host
|
|
|
590d18 |
+ host = select_any_master(ldap2, "KRA")
|
|
|
590d18 |
+ if host:
|
|
|
590d18 |
+ return host
|
|
|
590d18 |
+ else:
|
|
|
590d18 |
+ return api.env.ca_host
|
|
|
590d18 |
+
|
|
|
590d18 |
def get_client(self):
|
|
|
590d18 |
"""
|
|
|
590d18 |
Returns an authenticated KRA client to access KRA services.
|
|
|
590d18 |
@@ -1921,7 +1941,7 @@ class kra(Backend):
|
|
|
590d18 |
# https://fedorahosted.org/freeipa/ticket/4557
|
|
|
590d18 |
connection = PKIConnection(
|
|
|
590d18 |
'https',
|
|
|
590d18 |
- api.env.kra_host,
|
|
|
590d18 |
+ self.kra_host,
|
|
|
590d18 |
str(self.kra_port),
|
|
|
590d18 |
'kra')
|
|
|
590d18 |
|
|
|
590d18 |
--
|
|
|
590d18 |
2.4.3
|
|
|
590d18 |
|