Gitweb: http://git.fedorahosted.org/git/?p=dlm.git;a=commitdiff;h=87007d98a6f20bc4b…
Commit: 87007d98a6f20bc4b923aa87937818e765bfb0a4
Parent: 6a030a4efa08528c75ab5d045a3b3752a4b85fb2
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Tue Jan 29 13:15:27 2013 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Jan 29 13:15:27 2013 -0600
dlm_controld: fix fencing retries
Fix the previous commit which caused fencing to
not be retried when daemon_fence_work was called
from anything bug process_fencing_changes.
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
dlm_controld/daemon_cpg.c | 25 +++++++++++++------------
1 files changed, 13 insertions(+), 12 deletions(-)
diff --git a/dlm_controld/daemon_cpg.c b/dlm_controld/daemon_cpg.c
index 0eec5ce..4002809 100644
--- a/dlm_controld/daemon_cpg.c
+++ b/dlm_controld/daemon_cpg.c
@@ -731,7 +731,7 @@ static void fence_pid_cancel(int nodeid, int pid)
* later same as case B above
*/
-static int daemon_fence_work(void)
+static void daemon_fence_work(void)
{
struct node_daemon *node, *safe;
int rv, nodeid, pid, need, low, actor, result;
@@ -742,13 +742,13 @@ static int daemon_fence_work(void)
/* We've seen a nodedown confchg callback, but not the
corresponding ringid callback. */
log_retry(retry_fencing, "fence work wait for cpg ringid");
- return retry;
+ goto out;
}
if (cluster_ringid_seq != daemon_ringid.seq) {
/* wait for ringids to be in sync */
log_retry(retry_fencing, "fence work wait for cluster ringid");
- return retry;
+ goto out;
}
/* retry = 1; */
@@ -1105,21 +1105,22 @@ static int daemon_fence_work(void)
if (zombie_count)
clear_zombies();
- return retry;
-}
-
-void process_fencing_changes(void)
-{
- int retry;
-
- retry = daemon_fence_work();
-
+ /*
+ * setting retry_fencing will cause the main daemon poll loop
+ * to timeout in 1 second and call this function again.
+ */
+ out:
if (retry)
retry_fencing++;
else
retry_fencing = 0;
}
+void process_fencing_changes(void)
+{
+ daemon_fence_work();
+}
+
static void receive_fence_clear(struct dlm_header *hd, int len)
{
struct fence_result *fr;
Gitweb: http://git.fedorahosted.org/git/?p=fence-agents.git;a=commitdiff;h=09ee8c20…
Commit: 09ee8c204b2736731587cbbdaaad07fea04a4638
Parent: 0000000000000000000000000000000000000000
Author: Marek 'marx' Grac <mgrac(a)redhat.com>
AuthorDate: 2013-01-29 15:41 +0000
Committer: Marek 'marx' Grac <mgrac(a)redhat.com>
CommitterDate: 2013-01-29 15:41 +0000
annotated tag: v4.0.0 has been created
at 09ee8c204b2736731587cbbdaaad07fea04a4638 (tag)
tagging f450d953656d61f609d8874f515e9d4c48308d4b (commit)
replaces v3.1.11
v4.0.0 release
David Vossel (1):
fence_scsi: support unfence action in Pacemaker
Marek 'marx' Grac (27):
code cleanup: Fix minor warning according to pylint
code cleanup: Fix warnings according to pylint
code cleanup: Fix warnings according to pylint and typos
fence agents: Exceptions (EOF/TIMEOUT) should be handled in fencing library, not in every fence agent
fencing: Add support for usage of longopt keys in options
fence agents: Transfer non-SNMP fence agents to long-opts
fencing: Simplify exceptions catching when closing connection
fence agents: Transfer SNMP fence agents to long-opts + transfer script
fence_hds_cb: Style clean-up
fence_hds_cb: Port fence agent to longopts
fence_hds_cb: Push exception handling to fencing library
fencing: UUID can be entered also as port number (-n / --plug / port)
fencing: Replace common options with more flexible mechanism
fencing: Replace all short (getopt) options in code by their long variants
fencing: Operation 'reboot' is not working because fence_fabric was wrongly used
fence_lpar: Typo in definition of 'managed' option
fence_cisco_ucs: Simplify code by using rstrip()
fencing: Improve XML metadata output
fence_ilo_mp: Remove dependant device options like in rest of fence agents
fencing: Fix minor inconsistencies
fencing: Add new option --ssh-options
fencing: Move options which are used only once to appropriate fence agent
fencing: Fix usage of UUID if option --port/plug is not defined.
fencing: Do not check IP address if fence agent does not need any.
fence_lpar: Option 'partion' is moved to fence_lpar
fence_drac5: Fix regression on Dell CMC and Dell DRAC5
fence_drac5: Fix 'list' operation
Matt Clark (2):
New fencing script for Hitachi compute blade 2000
Fixed date of copyright. Copy paste error.
Ryan O'Hara (1):
fence_scsi: change on_target metadata attribute
Gitweb: http://git.fedorahosted.org/git/?p=fence-agents.git;a=commitdiff;h=ab138e98…
Commit: ab138e9885728f48c8bd67429059d9e52362a2a9
Parent: f450d953656d61f609d8874f515e9d4c48308d4b
Author: Marek 'marx' Grac <mgrac(a)redhat.com>
AuthorDate: 2013-01-29 15:43 +0000
Committer: Marek 'marx' Grac <mgrac(a)redhat.com>
CommitterDate: 2013-01-29 15:43 +0000
annotated tag: v3.1.12 has been updated
to ab138e9885728f48c8bd67429059d9e52362a2a9 (tag)
from f450d953656d61f609d8874f515e9d4c48308d4b (which is now obsolete)
tagging f450d953656d61f609d8874f515e9d4c48308d4b (commit)
replaces v3.1.11
v3.1.12 release
David Vossel (1):
fence_scsi: support unfence action in Pacemaker
Marek 'marx' Grac (27):
code cleanup: Fix minor warning according to pylint
code cleanup: Fix warnings according to pylint
code cleanup: Fix warnings according to pylint and typos
fence agents: Exceptions (EOF/TIMEOUT) should be handled in fencing library, not in every fence agent
fencing: Add support for usage of longopt keys in options
fence agents: Transfer non-SNMP fence agents to long-opts
fencing: Simplify exceptions catching when closing connection
fence agents: Transfer SNMP fence agents to long-opts + transfer script
fence_hds_cb: Style clean-up
fence_hds_cb: Port fence agent to longopts
fence_hds_cb: Push exception handling to fencing library
fencing: UUID can be entered also as port number (-n / --plug / port)
fencing: Replace common options with more flexible mechanism
fencing: Replace all short (getopt) options in code by their long variants
fencing: Operation 'reboot' is not working because fence_fabric was wrongly used
fence_lpar: Typo in definition of 'managed' option
fence_cisco_ucs: Simplify code by using rstrip()
fencing: Improve XML metadata output
fence_ilo_mp: Remove dependant device options like in rest of fence agents
fencing: Fix minor inconsistencies
fencing: Add new option --ssh-options
fencing: Move options which are used only once to appropriate fence agent
fencing: Fix usage of UUID if option --port/plug is not defined.
fencing: Do not check IP address if fence agent does not need any.
fence_lpar: Option 'partion' is moved to fence_lpar
fence_drac5: Fix regression on Dell CMC and Dell DRAC5
fence_drac5: Fix 'list' operation
Matt Clark (2):
New fencing script for Hitachi compute blade 2000
Fixed date of copyright. Copy paste error.
Ryan O'Hara (1):
fence_scsi: change on_target metadata attribute
Gitweb: http://git.fedorahosted.org/git/?p=fence-agents.git;a=commitdiff;h=4bd62484…
Commit: 4bd62484e17cc63b27a103c744ec11fb00610b48
Parent: 81f9d0ac95b57791b5937ea96fac889e10782d53
Author: Marek 'marx' Grac <mgrac(a)redhat.com>
AuthorDate: Tue Jan 29 15:24:20 2013 +0100
Committer: Marek 'marx' Grac <mgrac(a)redhat.com>
CommitterDate: Tue Jan 29 15:24:20 2013 +0100
fence_drac5: Fix regression on Dell CMC and Dell DRAC5
Standard EOL for agents connecting via ssh is CR/LF.
Some Dell devices represents CR/LF as double-enter what creates a problem in parsing of output.
This patch adds a check for double-enter. This can be detected in function which power on/off machine
because 'get power status' was run before and if we can find a line without any command we know that
there is a double-enter problem.
Resolves: rhbz#904195
Resolves: rhbz#904195
---
fence/agents/drac5/fence_drac5.py | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/fence/agents/drac5/fence_drac5.py b/fence/agents/drac5/fence_drac5.py
index 09157fe..3ec354e 100644
--- a/fence/agents/drac5/fence_drac5.py
+++ b/fence/agents/drac5/fence_drac5.py
@@ -46,7 +46,14 @@ def set_power_status(conn, options):
conn.send_eol("racadm serveraction " + action + " -m " + options["--module-name"])
elif options["model"] == "DRAC 5":
conn.send_eol("racadm serveraction " + action)
+
+ ## Fix issue with double-enter [CR/LF]
+ ## We need to read two additional command prompts (one from get + one from set command)
conn.log_expect(options, options["--command-prompt"], int(options["--power-timeout"]))
+ if len(conn.before.strip()) == 0:
+ options["eol"] = options["eol"][:-1]
+ conn.log_expect(options, options["--command-prompt"], int(options["--power-timeout"]))
+ conn.log_expect(options, options["--command-prompt"], int(options["--power-timeout"]))
def get_list_devices(conn, options):
outlets = { }