summaryrefslogtreecommitdiffstats
path: root/ipaclient
diff options
context:
space:
mode:
authorMartin Babinsky <mbabinsk@redhat.com>2016-06-08 18:25:55 +0200
committerMartin Basti <mbasti@redhat.com>2016-06-17 18:55:19 +0200
commita6eb87bd68295e15ea19f5cb274cffbef5954d04 (patch)
tree0fb3ca783ca7e06fa6594954ea4d227c7ac1797d /ipaclient
parentdb882ae8d6eba768e08be9317e386f8ab3c8fcf7 (diff)
downloadfreeipa-a6eb87bd68295e15ea19f5cb274cffbef5954d04.tar.gz
freeipa-a6eb87bd68295e15ea19f5cb274cffbef5954d04.tar.xz
freeipa-a6eb87bd68295e15ea19f5cb274cffbef5954d04.zip
server-del: perform full master removal in managed topology
This patch implements most of the del_master_managed() functionality as a part of `server-del` command. `server-del` nows performs these actions: * check topology connectivity * check that at least one CA/DNS server and DNSSec masters are left after removal * cleanup all LDAP entries/attributes exposing information about the master * cleanup master DNS records * remove master and service principals * remove master entry from LDAP * check that all segments pointing to the master were removed `server-del` now accepts the following options: * `--force`: force master removal even if it doesn't exist * `--ignore-topology-disconnect`: ignore errors arising from disconnected topology before and after master removal * `--ignore-last-of-role`: remove master even if it is last DNS server, and DNSSec key master. The last CA will *not* be removed regardless of this option. https://fedorahosted.org/freeipa/ticket/5588 Reviewed-By: Martin Basti <mbasti@redhat.com>
Diffstat (limited to 'ipaclient')
-rw-r--r--ipaclient/plugins/server.py17
1 files changed, 17 insertions, 0 deletions
diff --git a/ipaclient/plugins/server.py b/ipaclient/plugins/server.py
new file mode 100644
index 000000000..277a87488
--- /dev/null
+++ b/ipaclient/plugins/server.py
@@ -0,0 +1,17 @@
+#
+# Copyright (C) 2016 FreeIPA Contributors see COPYING for license
+#
+
+from ipaclient.frontend import MethodOverride
+from ipalib import _
+from ipalib.plugable import Registry
+
+register = Registry()
+
+
+@register(override=True)
+class server_del(MethodOverride):
+ def interactive_prompt_callback(self, kw):
+ self.api.Backend.textui.print_plain(
+ _("Removing %(servers)s from replication topology, "
+ "please wait...") % {'servers': ', '.join(kw['cn'])})