|
|
f778fe |
From e0496566d2634ee6e37939a7fd9b2ee25539df46 Mon Sep 17 00:00:00 2001
|
|
|
f778fe |
From: Ondrej Mular <omular@redhat.com>
|
|
|
f778fe |
Date: Tue, 30 May 2017 16:46:48 +0200
|
|
|
f778fe |
Subject: [PATCH] web UI: fix creating a new cluster
|
|
|
f778fe |
|
|
|
f778fe |
---
|
|
|
f778fe |
pcs/cli/common/parse_args.py | 2 +-
|
|
|
f778fe |
pcs/cluster.py | 5 ++++-
|
|
|
f778fe |
pcs/pcsd.py | 12 +++++++++---
|
|
|
f778fe |
pcs/utils.py | 1 +
|
|
|
f778fe |
pcsd/pcs.rb | 3 ++-
|
|
|
f778fe |
pcsd/remote.rb | 4 ++--
|
|
|
f778fe |
6 files changed, 19 insertions(+), 8 deletions(-)
|
|
|
f778fe |
|
|
|
f778fe |
diff --git a/pcs/cli/common/parse_args.py b/pcs/cli/common/parse_args.py
|
|
|
f778fe |
index 465cb96..e2250c7 100644
|
|
|
f778fe |
--- a/pcs/cli/common/parse_args.py
|
|
|
f778fe |
+++ b/pcs/cli/common/parse_args.py
|
|
|
f778fe |
@@ -17,7 +17,7 @@ PCS_SHORT_OPTIONS = "hf:p:u:V"
|
|
|
f778fe |
PCS_LONG_OPTIONS = [
|
|
|
f778fe |
"debug", "version", "help", "fullhelp",
|
|
|
f778fe |
"force", "skip-offline", "autocorrect", "interactive", "autodelete",
|
|
|
f778fe |
- "all", "full", "groups", "local", "wait", "config",
|
|
|
f778fe |
+ "all", "full", "groups", "local", "wait", "config", "async",
|
|
|
f778fe |
"start", "enable", "disabled", "off", "request-timeout=",
|
|
|
f778fe |
"pacemaker", "corosync",
|
|
|
f778fe |
"no-default-ops", "defaults", "nodesc",
|
|
|
f778fe |
diff --git a/pcs/cluster.py b/pcs/cluster.py
|
|
|
f778fe |
index b47db4a..0fc5e2c 100644
|
|
|
f778fe |
--- a/pcs/cluster.py
|
|
|
f778fe |
+++ b/pcs/cluster.py
|
|
|
f778fe |
@@ -298,6 +298,7 @@ def cluster_certkey(argv):
|
|
|
f778fe |
|
|
|
f778fe |
|
|
|
f778fe |
def cluster_setup(argv):
|
|
|
f778fe |
+ modifiers = utils.get_modificators()
|
|
|
f778fe |
if len(argv) < 2:
|
|
|
f778fe |
usage.cluster(["setup"])
|
|
|
f778fe |
sys.exit(1)
|
|
|
f778fe |
@@ -515,7 +516,9 @@ def cluster_setup(argv):
|
|
|
f778fe |
|
|
|
f778fe |
# sync certificates as the last step because it restarts pcsd
|
|
|
f778fe |
print()
|
|
|
f778fe |
- pcsd.pcsd_sync_certs([], exit_after_error=False)
|
|
|
f778fe |
+ pcsd.pcsd_sync_certs(
|
|
|
f778fe |
+ [], exit_after_error=False, async_restart=modifiers["async"]
|
|
|
f778fe |
+ )
|
|
|
f778fe |
if wait:
|
|
|
f778fe |
print()
|
|
|
f778fe |
wait_for_nodes_started(primary_addr_list, wait_timeout)
|
|
|
f778fe |
diff --git a/pcs/pcsd.py b/pcs/pcsd.py
|
|
|
f778fe |
index 629b4c0..7f7c660 100644
|
|
|
f778fe |
--- a/pcs/pcsd.py
|
|
|
f778fe |
+++ b/pcs/pcsd.py
|
|
|
f778fe |
@@ -79,7 +79,7 @@ def pcsd_certkey(argv):
|
|
|
f778fe |
|
|
|
f778fe |
print("Certificate and key updated, you may need to restart pcsd (service pcsd restart) for new settings to take effect")
|
|
|
f778fe |
|
|
|
f778fe |
-def pcsd_sync_certs(argv, exit_after_error=True):
|
|
|
f778fe |
+def pcsd_sync_certs(argv, exit_after_error=True, async_restart=False):
|
|
|
f778fe |
error = False
|
|
|
f778fe |
nodes_sync = argv if argv else utils.getNodesFromCorosyncConf()
|
|
|
f778fe |
nodes_restart = []
|
|
|
f778fe |
@@ -117,7 +117,9 @@ def pcsd_sync_certs(argv, exit_after_error=True):
|
|
|
f778fe |
return
|
|
|
f778fe |
|
|
|
f778fe |
print("Restarting pcsd on the nodes in order to reload the certificates...")
|
|
|
f778fe |
- pcsd_restart_nodes(nodes_restart, exit_after_error)
|
|
|
f778fe |
+ pcsd_restart_nodes(
|
|
|
f778fe |
+ nodes_restart, exit_after_error, async_restart=async_restart
|
|
|
f778fe |
+ )
|
|
|
f778fe |
|
|
|
f778fe |
def pcsd_clear_auth(argv):
|
|
|
f778fe |
output = []
|
|
|
f778fe |
@@ -148,7 +150,7 @@ def pcsd_clear_auth(argv):
|
|
|
f778fe |
print("Error: " + o)
|
|
|
f778fe |
sys.exit(1)
|
|
|
f778fe |
|
|
|
f778fe |
-def pcsd_restart_nodes(nodes, exit_after_error=True):
|
|
|
f778fe |
+def pcsd_restart_nodes(nodes, exit_after_error=True, async_restart=False):
|
|
|
f778fe |
pcsd_data = {
|
|
|
f778fe |
"nodes": nodes,
|
|
|
f778fe |
}
|
|
|
f778fe |
@@ -188,6 +190,10 @@ def pcsd_restart_nodes(nodes, exit_after_error=True):
|
|
|
f778fe |
utils.err("Unable to restart pcsd", exit_after_error)
|
|
|
f778fe |
return
|
|
|
f778fe |
|
|
|
f778fe |
+ if async_restart:
|
|
|
f778fe |
+ print("Not waiting for restart of pcsd on all nodes.")
|
|
|
f778fe |
+ return
|
|
|
f778fe |
+
|
|
|
f778fe |
# check if the restart was performed already
|
|
|
f778fe |
error = False
|
|
|
f778fe |
for _ in range(5):
|
|
|
f778fe |
diff --git a/pcs/utils.py b/pcs/utils.py
|
|
|
f778fe |
index 4753b87..6515e5f 100644
|
|
|
f778fe |
--- a/pcs/utils.py
|
|
|
f778fe |
+++ b/pcs/utils.py
|
|
|
f778fe |
@@ -2870,6 +2870,7 @@ def get_modificators():
|
|
|
f778fe |
return {
|
|
|
f778fe |
"after": pcs_options.get("--after", None),
|
|
|
f778fe |
"all": "--all" in pcs_options,
|
|
|
f778fe |
+ "async": "--async" in pcs_options,
|
|
|
f778fe |
"autocorrect": "--autocorrect" in pcs_options,
|
|
|
f778fe |
"autodelete": "--autodelete" in pcs_options,
|
|
|
f778fe |
"before": pcs_options.get("--before", None),
|
|
|
f778fe |
diff --git a/pcsd/pcs.rb b/pcsd/pcs.rb
|
|
|
f778fe |
index 930b4a0..9764a43 100644
|
|
|
f778fe |
--- a/pcsd/pcs.rb
|
|
|
f778fe |
+++ b/pcsd/pcs.rb
|
|
|
f778fe |
@@ -1034,7 +1034,8 @@ def pcsd_restart()
|
|
|
f778fe |
# request
|
|
|
f778fe |
fork {
|
|
|
f778fe |
# let us send the response to the restart request
|
|
|
f778fe |
- sleep(3)
|
|
|
f778fe |
+ # we need little bit more time to finish some things when setting up cluster
|
|
|
f778fe |
+ sleep(10)
|
|
|
f778fe |
if ISSYSTEMCTL
|
|
|
f778fe |
exec("systemctl", "restart", "pcsd")
|
|
|
f778fe |
else
|
|
|
f778fe |
diff --git a/pcsd/remote.rb b/pcsd/remote.rb
|
|
|
f778fe |
index 005d45e..f353980 100644
|
|
|
f778fe |
--- a/pcsd/remote.rb
|
|
|
f778fe |
+++ b/pcsd/remote.rb
|
|
|
f778fe |
@@ -965,8 +965,8 @@ def setup_cluster(params, request, auth_user)
|
|
|
f778fe |
nodes_options = nodes + options
|
|
|
f778fe |
nodes_options += options_udp if transport_udp
|
|
|
f778fe |
stdout, stderr, retval = run_cmd(
|
|
|
f778fe |
- auth_user, PCS, "cluster", "setup", "--enable", "--start",
|
|
|
f778fe |
- "--name", params[:clustername], *nodes_options
|
|
|
f778fe |
+ auth_user, PCS, "cluster", "setup", "--enable", "--start", "--async",
|
|
|
f778fe |
+ "--name", params[:clustername], *nodes_options
|
|
|
f778fe |
)
|
|
|
f778fe |
if retval != 0
|
|
|
f778fe |
return [
|
|
|
f778fe |
--
|
|
|
f778fe |
1.8.3.1
|
|
|
f778fe |
|