Hello community,

here is the log from the commit of package fence-agents for openSUSE:Factory 
checked in at 2014-09-18 07:12:57
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/fence-agents (Old)
 and      /work/SRC/openSUSE:Factory/.fence-agents.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "fence-agents"

Changes:
--------
--- /work/SRC/openSUSE:Factory/fence-agents/fence-agents.changes        
2014-07-02 15:05:25.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.fence-agents.new/fence-agents.changes   
2014-09-18 07:12:59.000000000 +0200
@@ -0,0 +1,42 @@
+------------------------------------------------------------------- 
+Tue Sep 16 07:15:30 UTC 2014 - kgronl...@suse.com
+
+- Backport fixes from upstream (bnc#896833):
+  + fence_brocade: Add support for 'list' action
+  + fencing: Monitor is not working correctly without 'list' or 'status'
+  + fence_apc_snmp: Add support for firmware 6.x
+  + fence_zvm: Add support for "on" and "status"
+  + fence_zvm: Add current XML metadata to test suite
+  + [build] Fix automake files, so 'make distcheck' works
+  + fencing: Add new options --ssl-secure and --ssl-insecure
+  + [tests] Update XML metadata of fence agents
+  + fence_cisco_ucs & fence_vmware_soap: Logout has to be performed even when 
fencing fails
+  + fence_zvm: Fixes for better upstream inclusion
+  + fence_zvm: Add support for 'on', improve documentation
+- Added patches:
+  + 0001-fence_brocade-Add-support-for-list-action.patch
+  + 0002-fencing-Monitor-is-not-working-correctly-without-lis.patch
+  + 0003-fence_apc_snmp-Add-support-for-firmware-6.x.patch
+  + 0004-fence_zvm-Add-support-for-on-and-status.patch
+  + 0005-fence_zvm-Add-current-XML-metadata-to-test-suite.patch
+  + 0006-build-Fix-automake-files-so-make-distcheck-works.patch
+  + 0007-fencing-Add-new-options-ssl-secure-and-ssl-insecure.patch
+  + 0008-tests-Update-XML-metadata-of-fence-agents.patch
+  + 0009-fence_cisco_ucs-fence_vmware_soap-Logout-has-to-be-p.patch
+  + 0010-fence_zvm-Fixes-for-better-upstream-inclusion.patch
+  + 0011-fence_zvm-Add-support-for-on-improve-documentation.patch
+- Add dependency on python-requests
+
+-------------------------------------------------------------------
+Tue Jul  1 12:32:09 UTC 2014 - kgronl...@suse.com
+
+- Update to 4.0.10:
+  * fence_scsi is reimplemented on top of fencing library
+  * fence_zvm support distributed z/VM systems
+  * support for --delay was added to fence_zvm
+  * unmaintained fence agents were removed:
+    * fence_baytech, fence_bullpap, fence_cpint, fence_mcdata,
+    * fence_rackswitch, fence_vixel, fence_xcat
+    * we do not plan to remove other agents
+  * update fence_rsb to work with new firmware 
+

New:
----
  0001-fence_brocade-Add-support-for-list-action.patch
  0002-fencing-Monitor-is-not-working-correctly-without-lis.patch
  0003-fence_apc_snmp-Add-support-for-firmware-6.x.patch
  0004-fence_zvm-Add-support-for-on-and-status.patch
  0005-fence_zvm-Add-current-XML-metadata-to-test-suite.patch
  0006-build-Fix-automake-files-so-make-distcheck-works.patch
  0007-fencing-Add-new-options-ssl-secure-and-ssl-insecure.patch
  0008-tests-Update-XML-metadata-of-fence-agents.patch
  0009-fence_cisco_ucs-fence_vmware_soap-Logout-has-to-be-p.patch
  0010-fence_zvm-Fixes-for-better-upstream-inclusion.patch
  0011-fence_zvm-Add-support-for-on-improve-documentation.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ fence-agents.spec ++++++
--- /var/tmp/diff_new_pack.ysMy8r/_old  2014-09-18 07:13:00.000000000 +0200
+++ /var/tmp/diff_new_pack.ysMy8r/_new  2014-09-18 07:13:00.000000000 +0200
@@ -26,9 +26,34 @@
 Release:        0
 Url:            http://git.fedorahosted.org/git/fence-agents.git
 Source0:        %{name}-%{version}.tar.xz
+
+# PATCH-FIX-UPSTREAM: fence_brocade: Add support for 'list' action
+Patch1:         0001-fence_brocade-Add-support-for-list-action.patch
+# PATCH-FIX-UPSTREAM: fencing: Monitor is not working correctly without 'list' 
or 'status'
+Patch2:         0002-fencing-Monitor-is-not-working-correctly-without-lis.patch
+# PATCH-FIX-UPSTREAM: fence_apc_snmp: Add support for firmware 6.x
+Patch3:         0003-fence_apc_snmp-Add-support-for-firmware-6.x.patch
+# PATCH-FIX-UPSTREAM: fence_zvm: Add support for "on" and "status"
+Patch4:         0004-fence_zvm-Add-support-for-on-and-status.patch
+# PATCH-FIX-UPSTREAM: fence_zvm: Add current XML metadata to test suite
+Patch5:         0005-fence_zvm-Add-current-XML-metadata-to-test-suite.patch
+# PATCH-FIX-UPSTREAM: [build] Fix automake files, so 'make distcheck' works
+Patch6:         0006-build-Fix-automake-files-so-make-distcheck-works.patch
+# PATCH-FIX-UPSTREAM: fencing: Add new options --ssl-secure and --ssl-insecure
+Patch7:         0007-fencing-Add-new-options-ssl-secure-and-ssl-insecure.patch
+# PATCH-FIX-UPSTREAM: [tests] Update XML metadata of fence agents
+Patch8:         0008-tests-Update-XML-metadata-of-fence-agents.patch
+# PATCH-FIX-UPSTREAM: fence_cisco_ucs & fence_vmware_soap: Logout has to be 
performed even when fencing fails
+Patch9:         0009-fence_cisco_ucs-fence_vmware_soap-Logout-has-to-be-p.patch
+# PATCH-FIX-UPSTREAM: fence_zvm: Fixes for better upstream inclusion
+Patch10:        0010-fence_zvm-Fixes-for-better-upstream-inclusion.patch
+# PATCH-FIX-UPSTREAM: fence_zvm: Add support for 'on', improve documentation
+Patch11:        0011-fence_zvm-Add-support-for-on-improve-documentation.patch
+
 Requires:       python-curl
 Requires:       python-openssl
 Requires:       python-pexpect
+Requires:       python-requests
 
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 BuildRequires:  autoconf
@@ -45,6 +70,7 @@
 BuildRequires:  python
 BuildRequires:  python-curl
 BuildRequires:  python-pexpect
+BuildRequires:  python-requests
 BuildRequires:  python-suds
 BuildRequires:  python-xml
 BuildRequires:  xz
@@ -151,6 +177,17 @@
 
 %prep
 %setup -q -n %{name}-%{version}
+%patch1 -p1
+%patch2 -p1
+%patch3 -p1
+%patch4 -p1
+%patch5 -p1
+%patch6 -p1
+%patch7 -p1
+%patch8 -p1
+%patch9 -p1
+%patch10 -p1
+%patch11 -p1
 
 %build
 CFLAGS="${CFLAGS} ${RPM_OPT_FLAGS}"

++++++ 0001-fence_brocade-Add-support-for-list-action.patch ++++++
>From 98236c1c0f0f3b9d6def701e5e9cc67f35649441 Mon Sep 17 00:00:00 2001
From: Marek 'marx' Grac <mg...@redhat.com>
Date: Tue, 1 Jul 2014 15:25:45 +0200
Subject: [PATCH 01/11] fence_brocade: Add support for 'list' action

---
 fence/agents/brocade/fence_brocade.py | 41 +++++++++++++++++++----------------
 1 file changed, 22 insertions(+), 19 deletions(-)

diff --git a/fence/agents/brocade/fence_brocade.py 
b/fence/agents/brocade/fence_brocade.py
index f935280..3e5dd93 100644
--- a/fence/agents/brocade/fence_brocade.py
+++ b/fence/agents/brocade/fence_brocade.py
@@ -12,24 +12,6 @@ REDHAT_COPYRIGHT=""
 BUILD_DATE="March, 20013"
 #END_VERSION_GENERATION
 
-def get_power_status(conn, options):
-       conn.send_eol("portCfgShow " + options["--plug"])
-
-       conn.log_expect(options, options["--command-prompt"], 
int(options["--shell-timeout"]))
-
-       show_re = re.compile(r'^\s*Persistent Disable\s*(ON|OFF)\s*$', 
re.IGNORECASE)
-       lines = conn.before.split("\n")
-
-       for line in lines:
-               res = show_re.search(line)
-               if res != None:
-                       # We queried if it is disabled, so we have to negate 
answer
-                       if res.group(1) == "ON":
-                               return "off"
-                       else:
-                               return "on"
-
-       fail(EC_STATUS)
 def set_power_status(conn, options):
        action = {
                'on' : "portCfgPersistentEnable",
@@ -39,6 +21,27 @@ def set_power_status(conn, options):
        conn.send_eol(action + " " + options["--plug"])
        conn.log_expect(options, options["--command-prompt"], 
int(options["--power-timeout"]))
 
+def get_power_status(conn, options):
+       line_re = re.compile(r'=========', re.IGNORECASE)
+       outlets = {}
+       in_index = False
+
+       conn.send_eol("switchshow")
+       conn.log_expect(options, options["--command-prompt"], 
int(options["--power-timeout"]))
+       for line in str(conn.before).split("\n"):
+               if line_re.search(line):
+                       in_index = True
+               elif in_index and line.lstrip()[0].isdigit():
+                       tokens = line.lstrip().split()
+                       status = "off" if len(tokens) > 7 and tokens[7] == 
"Disabled" else "on"
+                       outlets[tokens[0]] = ("", status)
+
+       if options["--action"] == "status":
+               (_, status) = outlets[options["--plug"]]
+               return status
+       else:
+               return outlets
+
 def main():
        device_opt = ["ipaddr", "login", "passwd", "cmd_prompt", "secure", 
"port", "fabric_fencing"]
 
@@ -66,7 +69,7 @@ FC switch needs to be enabled. This can be done by running 
fence_brocade and spe
        ## Operate the fencing device
        ####
        conn = fence_login(options)
-       result = fence_action(conn, options, set_power_status, 
get_power_status, None)
+       result = fence_action(conn, options, set_power_status, 
get_power_status, get_power_status)
        fence_logout(conn, "exit")
        sys.exit(result)
 
-- 
1.8.4.5

++++++ 0002-fencing-Monitor-is-not-working-correctly-without-lis.patch ++++++
>From 5a1fd08c7cf4a4c7d41db3db0a83eed226804b40 Mon Sep 17 00:00:00 2001
From: Marek 'marx' Grac <mg...@redhat.com>
Date: Tue, 1 Jul 2014 15:27:27 +0200
Subject: [PATCH 02/11] fencing: Monitor is not working correctly without
 'list' or 'status'

Action monitor either executes 'status' (without --plug) or 'list' (with 
--plug). But
it is not required to have 'list' action. If they do not then 'monitor' has to 
be done
in different way, e.g. login/logout.
---
 fence/agents/ovh/fence_ovh.py         | 13 ++++++++++---
 fence/agents/raritan/fence_raritan.py |  5 ++++-
 2 files changed, 14 insertions(+), 4 deletions(-)

diff --git a/fence/agents/ovh/fence_ovh.py b/fence/agents/ovh/fence_ovh.py
index f9a1c39..14a0706 100644
--- a/fence/agents/ovh/fence_ovh.py
+++ b/fence/agents/ovh/fence_ovh.py
@@ -94,10 +94,10 @@ Poweroff is simulated with a reboot into rescue-pro mode."
        docs["vendorurl"] = "http://www.ovh.net";
        show_docs(options, docs)
 
-       if options["--action"] in ["list", "status"]:
-               fail_usage("Action '" + options["--action"] + "' is not 
supported in this fence agent")
+       if options["--action"] == "list":
+               fail_usage("Action 'list' is not supported in this fence agent")
 
-       if not options["--plug"].endswith(".ovh.net"):
+       if options["--action"] != "monitor" and not 
options["--plug"].endswith(".ovh.net"):
                options["--plug"] += ".ovh.net"
 
        if not options.has_key("--email"):
@@ -107,6 +107,13 @@ Poweroff is simulated with a reboot into rescue-pro mode."
 
        conn = soap_login(options)
 
+       if options["--action"] == 'monitor':
+               try:
+                       conn.service.logout(options["session"])
+               except Exception:
+                       pass
+               sys.exit(0)
+
        # Save datetime just before changing netboot
        before_netboot_reboot = datetime.now()
 
diff --git a/fence/agents/raritan/fence_raritan.py 
b/fence/agents/raritan/fence_raritan.py
index 3506e25..bb6ad52 100644
--- a/fence/agents/raritan/fence_raritan.py
+++ b/fence/agents/raritan/fence_raritan.py
@@ -79,7 +79,10 @@ block any necessary fencing actions."
        except pexpect.TIMEOUT:
                fail(EC_LOGIN_DENIED)
 
-       result = fence_action(conn, options, set_power_status, get_power_status)
+       result = 0
+       if options["--action"] != "monitor":
+               result = fence_action(conn, options, set_power_status, 
get_power_status)
+
        fence_logout(conn, "exit\n")
        sys.exit(result)
 
-- 
1.8.4.5

++++++ 0003-fence_apc_snmp-Add-support-for-firmware-6.x.patch ++++++
>From acd138f4da16067f073d40b09a16a64867ef7e8f Mon Sep 17 00:00:00 2001
From: Marek 'marx' Grac <mg...@redhat.com>
Date: Mon, 4 Aug 2014 16:29:09 +0200
Subject: [PATCH 03/11] fence_apc_snmp: Add support for firmware 6.x

Resolves: rhbz#1123897
---
 fence/agents/apc_snmp/fence_apc_snmp.py | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/fence/agents/apc_snmp/fence_apc_snmp.py 
b/fence/agents/apc_snmp/fence_apc_snmp.py
index cbb6856..a2b0d18 100644
--- a/fence/agents/apc_snmp/fence_apc_snmp.py
+++ b/fence/agents/apc_snmp/fence_apc_snmp.py
@@ -87,6 +87,18 @@ class ApcMS(object):
        turn_off = 2
        has_switches = False
 
+class ApcMS6(object):
+       # Master Switch with 6.x firmware
+       status_oid = '.1.3.6.1.4.1.318.1.1.4.4.2.1.3.%d'
+       control_oid = '.1.3.6.1.4.1.318.1.1.12.3.3.1.1.4.%d'
+       outlet_table_oid = '1.3.6.1.4.1.318.1.1.4.4.2.1.4'
+       ident_str = "APC Master Switch with firmware v6.x"
+       state_on = 1
+       state_off = 2
+       turn_on = 1
+       turn_off = 2
+       has_switches = False
+
 ### FUNCTIONS ###
 def apc_set_device(conn):
        global device
@@ -94,6 +106,7 @@ def apc_set_device(conn):
        agents_dir = {'.1.3.6.1.4.1.318.1.3.4.5':ApcRPDU,
                    '.1.3.6.1.4.1.318.1.3.4.4':ApcMSP,
                     '.1.3.6.1.4.1.850.1':TripplitePDU,
+                   '.1.3.6.1.4.1.318.1.3.4.6':ApcMS6,
                    None:ApcMS}
 
        # First resolve type of APC
-- 
1.8.4.5

++++++ 0004-fence_zvm-Add-support-for-on-and-status.patch ++++++
++++ 799 lines (skipped)

++++++ 0005-fence_zvm-Add-current-XML-metadata-to-test-suite.patch ++++++
>From c19e51064fd01d9d033452943e3d2a8dc617174b Mon Sep 17 00:00:00 2001
From: Marek 'marx' Grac <mg...@redhat.com>
Date: Wed, 27 Aug 2014 13:23:21 +0200
Subject: [PATCH 05/11] fence_zvm: Add current XML metadata to test suite

---
 tests/data/metadata/fence_zvmip.xml | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/tests/data/metadata/fence_zvmip.xml 
b/tests/data/metadata/fence_zvmip.xml
index e28bc1c..5a737ca 100644
--- a/tests/data/metadata/fence_zvmip.xml
+++ b/tests/data/metadata/fence_zvmip.xml
@@ -40,6 +40,8 @@
 </parameters>
 <actions>
        <action name="off" />
+       <action name="on" />
        <action name="metadata" />
+       <action name="status" />
 </actions>
 </resource-agent>
-- 
1.8.4.5

++++++ 0006-build-Fix-automake-files-so-make-distcheck-works.patch ++++++
>From 3b3a7cf2d58fd863fef21553db5715c1dfab26a0 Mon Sep 17 00:00:00 2001
From: Marek 'marx' Grac <mg...@redhat.com>
Date: Wed, 27 Aug 2014 15:18:01 +0200
Subject: [PATCH 06/11] [build] Fix automake files, so 'make distcheck' works

---
 Makefile.am                   | 2 +-
 fence/agents/Makefile.am      | 3 +--
 fence/agents/scsi/Makefile.am | 2 +-
 3 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index e70dac5..5e2e22d 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -15,7 +15,7 @@ noinst_HEADERS                = make/copyright.cf
 
 ACLOCAL_AMFLAGS                = -I m4
 
-SUBDIRS                        = fence doc
+SUBDIRS                        = fence/agents/lib fence doc
 
 install-exec-local:
                        $(INSTALL) -d $(DESTDIR)/$(LOGDIR)
diff --git a/fence/agents/Makefile.am b/fence/agents/Makefile.am
index c47f5d5..3b76b9a 100644
--- a/fence/agents/Makefile.am
+++ b/fence/agents/Makefile.am
@@ -1,4 +1,3 @@
 MAINTAINERCLEANFILES   = Makefile.in
 
-SUBDIRS                = lib \
-                         $(AGENTS_LIST)
+SUBDIRS                = $(AGENTS_LIST)
diff --git a/fence/agents/scsi/Makefile.am b/fence/agents/scsi/Makefile.am
index 5722e18..c113f06 100644
--- a/fence/agents/scsi/Makefile.am
+++ b/fence/agents/scsi/Makefile.am
@@ -20,4 +20,4 @@ include $(top_srcdir)/make/fenceman.mk
 include $(top_srcdir)/make/agentpycheck.mk
 
 clean-local: clean-man
-       rm -f $(TARGET) $(SYMTARGET)
+       rm -f $(TARGET) $(SYMTARGET) fence_scsi_check
-- 
1.8.4.5

++++++ 0007-fencing-Add-new-options-ssl-secure-and-ssl-insecure.patch ++++++
>From 39df713492714f55e9d5bf578bece4cd9fc98fef Mon Sep 17 00:00:00 2001
From: Marek 'marx' Grac <mg...@redhat.com>
Date: Mon, 1 Sep 2014 15:05:20 +0200
Subject: [PATCH 07/11] fencing: Add new options --ssl-secure and
 --ssl-insecure

These new options extends current --ssl (same as --ssl-secure). Until now 
certificate of the fence device
was not validated what can possibly lead to attack on infrastructe. With this 
patch, user can decide
if certificate should (--ssl-secure) or should not (--ssl-insecure) be verified.

The default option is to validate certificate.

Resolves: rhbz#1072564
---
 fence/agents/cisco_ucs/fence_cisco_ucs.py     |  9 ++++++--
 fence/agents/lib/fencing.py.py                | 28 ++++++++++++++++++++---
 fence/agents/rhevm/fence_rhevm.py             |  9 ++++++--
 fence/agents/vmware_soap/fence_vmware_soap.py | 33 +++++++++++++++++++++++----
 4 files changed, 68 insertions(+), 11 deletions(-)

diff --git a/fence/agents/cisco_ucs/fence_cisco_ucs.py 
b/fence/agents/cisco_ucs/fence_cisco_ucs.py
index f72e696..888d689 100644
--- a/fence/agents/cisco_ucs/fence_cisco_ucs.py
+++ b/fence/agents/cisco_ucs/fence_cisco_ucs.py
@@ -90,8 +90,13 @@ def send_command(opt, command, timeout):
        conn.setopt(pycurl.POSTFIELDS, command)
        conn.setopt(pycurl.WRITEFUNCTION, web_buffer.write)
        conn.setopt(pycurl.TIMEOUT, timeout)
-       conn.setopt(pycurl.SSL_VERIFYPEER, 0)
-       conn.setopt(pycurl.SSL_VERIFYHOST, 0)
+       if opt.has_key("--ssl") or opt.has_key("--ssl-secure"):
+               conn.setopt(pycurl.SSL_VERIFYPEER, 1)
+               conn.setopt(pycurl.SSL_VERIFYHOST, 2)
+
+       if opt.has_key("--ssl-insecure"):
+               conn.setopt(pycurl.SSL_VERIFYPEER, 0)
+               conn.setopt(pycurl.SSL_VERIFYHOST, 0)
        conn.perform()
        result = web_buffer.getvalue()
 
diff --git a/fence/agents/lib/fencing.py.py b/fence/agents/lib/fencing.py.py
index 4520ea8..7d1d28e 100644
--- a/fence/agents/lib/fencing.py.py
+++ b/fence/agents/lib/fencing.py.py
@@ -179,6 +179,21 @@ all_opt = {
                "required" : "0",
                "shortdesc" : "SSL connection",
                "order" : 1},
+       "ssl_insecure" : {
+               "getopt" : "9",
+               "longopt" : "ssl-insecure",
+               "help" : "--ssl-insecure                 Use ssl connection 
without verifying certificate",
+               "required" : "0",
+               "shortdesc" : "SSL connection without verifying fence device's 
certificate",
+               "order" : 1},
+       "ssl_secure" : {
+               "getopt" : "9",
+               "longopt" : "ssl-secure",
+               "help" : "--ssl-secure                   Use ssl connection 
with verifying certificate",
+               "required" : "0",
+               "shortdesc" : "SSL connection with verifying fence device's 
certificate",
+               "order" : 1},
+
        "notls" : {
                "getopt" : "t",
                "longopt" : "notls",
@@ -385,6 +400,7 @@ DEPENDENCY_OPT = {
                "secure" : ["identity_file", "ssh_options"],
                "ipaddr" : ["ipport", "inet4_only", "inet6_only"],
                "port" : ["separator"],
+               "ssl" : ["ssl_secure", "ssl_insecure"],
                "community" : ["snmp_auth_prot", "snmp_sec_level", 
"snmp_priv_prot", \
                        "snmp_priv_passwd", "snmp_priv_passwd_script"]
        }
@@ -663,7 +679,7 @@ def check_input(device_opt, opt):
                elif options.has_key("--ssh") or 
(all_opt["secure"].has_key("default") and all_opt["secure"]["default"] == '1'):
                        all_opt["ipport"]["default"] = 22
                        all_opt["ipport"]["help"] = "-u, --ipport=[port]        
    TCP/UDP port to use (default 22)"
-               elif options.has_key("--ssl") or 
(all_opt["ssl"].has_key("default") and all_opt["ssl"]["default"] == '1'):
+               elif options.has_key("--ssl") or 
options.has_key("--ssl-secure") or options.has_key("--ssl-insecure") or 
(all_opt["ssl"].has_key("default") and all_opt["ssl"]["default"] == '1'):
                        all_opt["ipport"]["default"] = 443
                        all_opt["ipport"]["help"] = "-u, --ipport=[port]        
    TCP/UDP port to use (default 443)"
                elif device_opt.count("web"):
@@ -970,11 +986,17 @@ def fence_login(options, re_login_string=r"(login\s*: 
)|(Login Name:  )|(usernam
 
                if options.has_key("--ssl"):
                        gnutls_opts = ""
+                       ssl_opts = ""
+
                        if options.has_key("--notls"):
                                gnutls_opts = "--priority 
\"NORMAL:-VERS-TLS1.2:-VERS-TLS1.1:-VERS-TLS1.0:+VERS-SSL3.0\""
 
-                       command = '%s %s --insecure --crlf -p %s %s' % \
-                                       (SSL_PATH, gnutls_opts, 
options["--ipport"], options["--ip"])
+                       # --ssl is same as the --ssl-secure
+                       if options.has_key("--ssl-insecure"):
+                               ssl_opts = "--insecure"
+
+                       command = '%s %s %s --insecure --crlf -p %s %s' % \
+                                       (SSL_PATH, gnutls_opts, ssl_opts, 
options["--ipport"], options["--ip"])
                        try:
                                conn = fspawn(options, command)
                        except pexpect.ExceptionPexpect, ex:
diff --git a/fence/agents/rhevm/fence_rhevm.py 
b/fence/agents/rhevm/fence_rhevm.py
index a0d8d59..444fb56 100644
--- a/fence/agents/rhevm/fence_rhevm.py
+++ b/fence/agents/rhevm/fence_rhevm.py
@@ -91,8 +91,13 @@ def send_command(opt, command, method="GET"):
        conn.setopt(pycurl.HTTPAUTH, pycurl.HTTPAUTH_BASIC)
        conn.setopt(pycurl.USERPWD, opt["--username"] + ":" + opt["--password"])
        conn.setopt(pycurl.TIMEOUT, int(opt["--shell-timeout"]))
-       conn.setopt(pycurl.SSL_VERIFYPEER, 0)
-       conn.setopt(pycurl.SSL_VERIFYHOST, 0)
+       if opt.has_key("--ssl") or opt.has_key("--ssl-secure"):
+               conn.setopt(pycurl.SSL_VERIFYPEER, 1)
+               conn.setopt(pycurl.SSL_VERIFYHOST, 2)
+
+       if opt.has_key("--ssl-insecure"):
+               conn.setopt(pycurl.SSL_VERIFYPEER, 0)
+               conn.setopt(pycurl.SSL_VERIFYHOST, 0)
 
        if method == "POST":
                conn.setopt(pycurl.POSTFIELDS, "<action />")
diff --git a/fence/agents/vmware_soap/fence_vmware_soap.py 
b/fence/agents/vmware_soap/fence_vmware_soap.py
index 53fd9ea..3217c6b 100644
--- a/fence/agents/vmware_soap/fence_vmware_soap.py
+++ b/fence/agents/vmware_soap/fence_vmware_soap.py
@@ -2,12 +2,14 @@
 
 import sys
 import shutil, tempfile, suds
-import logging
+import logging, requests
 import atexit
 sys.path.append("@FENCEAGENTSLIBDIR@")
 
 from suds.client import Client
 from suds.sudsobject import Property
+from suds.transport.http import HttpAuthenticated
+from suds.transport import Reply, TransportError
 from fencing import *
 from fencing import fail, EC_STATUS, EC_LOGIN_DENIED, EC_INVALID_PRIVILEGES, 
EC_WAITING_ON, EC_WAITING_OFF
 from fencing import run_delay
@@ -18,12 +20,31 @@ REDHAT_COPYRIGHT=""
 BUILD_DATE="April, 2011"
 #END_VERSION_GENERATION
 
+class RequestsTransport(HttpAuthenticated):
+       def __init__(self, **kwargs):
+               self.cert = kwargs.pop('cert', None)
+               self.verify = kwargs.pop('verify', True)
+               self.session = requests.Session()
+               # super won't work because not using new style class
+               HttpAuthenticated.__init__(self, **kwargs)
+
+       def send(self, request):
+               self.addcredentials(request)
+               resp = self.session.post(request.url, data = request.message, 
headers = request.headers, cert = self.cert, verify = self.verify)
+               result = Reply(resp.status_code, resp.headers, resp.content)
+               return result
+
 def soap_login(options):
        run_delay(options)
 
-       if options.has_key("--ssl"):
+       if options.has_key("--ssl") or options.has_key("--ssl-secure") or 
options.has_key("--ssl-insecure"):
+               if options.has_key("--ssl-insecure"):
+                       verify = False
+               else:
+                       verify = True
                url = "https://";
        else:
+               verify = False
                url = "http://";
 
        url += options["--ip"] + ":" + str(options["--ipport"]) + "/sdk"
@@ -33,8 +54,8 @@ def soap_login(options):
        atexit.register(remove_tmp_dir, tmp_dir)
 
        try:
-               conn = Client(url + "/vimService.wsdl")
-               conn.set_options(location=url)
+               headers = {"Content-Type" : "text/xml;charset=UTF-8", 
"SOAPAction" : ""}
+               conn = Client(url + "/vimService.wsdl", location = url, 
transport = RequestsTransport(verify = verify), headers = headers)
 
                mo_ServiceInstance = Property('ServiceInstance')
                mo_ServiceInstance._type = 'ServiceInstance'
@@ -43,6 +64,8 @@ def soap_login(options):
                mo_SessionManager._type = 'SessionManager'
 
                conn.service.Login(mo_SessionManager, options["--username"], 
options["--password"])
+       except requests.exceptions.SSLError, ex:
+               fail_usage("Server side certificate verification failed")
        except Exception:
                fail(EC_LOGIN_DENIED)
 
@@ -205,6 +228,8 @@ Alternatively you can always use UUID to access virtual 
machine."
 
        logging.basicConfig(level=logging.INFO)
        logging.getLogger('suds.client').setLevel(logging.CRITICAL)
+       logging.getLogger("requests").setLevel(logging.CRITICAL)
+       logging.getLogger("urllib3").setLevel(logging.CRITICAL)
 
        ##
        ## Operate the fencing device
-- 
1.8.4.5

++++++ 0008-tests-Update-XML-metadata-of-fence-agents.patch ++++++
>From 667bd9c6755e4211d42a7f03e3f28f035921cf76 Mon Sep 17 00:00:00 2001
From: Marek 'marx' Grac <mg...@redhat.com>
Date: Mon, 1 Sep 2014 16:37:50 +0200
Subject: [PATCH 08/11] [tests] Update XML metadata of fence agents

added --ssl-secure, --ssl-insecure
---
 tests/data/metadata/fence_cisco_ucs.xml   | 10 ++++++++++
 tests/data/metadata/fence_docker.xml      | 10 ++++++++++
 tests/data/metadata/fence_ilo.xml         | 10 ++++++++++
 tests/data/metadata/fence_ilo2.xml        | 10 ++++++++++
 tests/data/metadata/fence_rhevm.xml       | 10 ++++++++++
 tests/data/metadata/fence_vmware_soap.xml | 10 ++++++++++
 6 files changed, 60 insertions(+)

diff --git a/tests/data/metadata/fence_cisco_ucs.xml 
b/tests/data/metadata/fence_cisco_ucs.xml
index 30a3cb4..75e45ce 100644
--- a/tests/data/metadata/fence_cisco_ucs.xml
+++ b/tests/data/metadata/fence_cisco_ucs.xml
@@ -13,6 +13,11 @@
                <content type="boolean"  />
                <shortdesc lang="en">Disable TLS negotiation</shortdesc>
        </parameter>
+       <parameter name="ssl_secure" unique="0" required="0">
+               <getopt mixed="--ssl-secure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection with verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="port" unique="0" required="1">
                <getopt mixed="-n, --plug=[id]" />
                <content type="string"  />
@@ -53,6 +58,11 @@
                <content type="string"  />
                <shortdesc lang="en">Additional path needed to access 
suborganization</shortdesc>
        </parameter>
+       <parameter name="ssl_insecure" unique="0" required="0">
+               <getopt mixed="--ssl-insecure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection without verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="action" unique="0" required="1">
                <getopt mixed="-o, --action=[action]" />
                <content type="string" default="reboot"  />
diff --git a/tests/data/metadata/fence_docker.xml 
b/tests/data/metadata/fence_docker.xml
index bda31d01..d100b8c 100644
--- a/tests/data/metadata/fence_docker.xml
+++ b/tests/data/metadata/fence_docker.xml
@@ -8,6 +8,11 @@
                <content type="string" default="80"  />
                <shortdesc lang="en">TCP/UDP port to use for connection with 
device</shortdesc>
        </parameter>
+       <parameter name="ssl_secure" unique="0" required="0">
+               <getopt mixed="--ssl-secure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection with verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="port" unique="0" required="1">
                <getopt mixed="-n, --plug=[id]" />
                <content type="string"  />
@@ -41,6 +46,11 @@
                <content type="boolean"  />
                <shortdesc lang="en">SSL connection</shortdesc>
        </parameter>
+       <parameter name="ssl_insecure" unique="0" required="0">
+               <getopt mixed="--ssl-insecure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection without verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="action" unique="0" required="1">
                <getopt mixed="-o, --action=[action]" />
                <content type="string" default="reboot"  />
diff --git a/tests/data/metadata/fence_ilo.xml 
b/tests/data/metadata/fence_ilo.xml
index eb8951c..25d9d54 100644
--- a/tests/data/metadata/fence_ilo.xml
+++ b/tests/data/metadata/fence_ilo.xml
@@ -19,6 +19,11 @@
                <content type="string"  />
                <shortdesc lang="en">Force ribcl version to use</shortdesc>
        </parameter>
+       <parameter name="ssl_secure" unique="0" required="0">
+               <getopt mixed="--ssl-secure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection with verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="action" unique="0" required="1">
                <getopt mixed="-o, --action=[action]" />
                <content type="string" default="reboot"  />
@@ -54,6 +59,11 @@
                <content type="boolean" default="1"  />
                <shortdesc lang="en">SSL connection</shortdesc>
        </parameter>
+       <parameter name="ssl_insecure" unique="0" required="0">
+               <getopt mixed="--ssl-insecure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection without verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="login" unique="0" required="1">
                <getopt mixed="-l, --username=[name]" />
                <content type="string"  />
diff --git a/tests/data/metadata/fence_ilo2.xml 
b/tests/data/metadata/fence_ilo2.xml
index 4d65808..47e8e28 100644
--- a/tests/data/metadata/fence_ilo2.xml
+++ b/tests/data/metadata/fence_ilo2.xml
@@ -19,6 +19,11 @@
                <content type="string"  />
                <shortdesc lang="en">Force ribcl version to use</shortdesc>
        </parameter>
+       <parameter name="ssl_secure" unique="0" required="0">
+               <getopt mixed="--ssl-secure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection with verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="action" unique="0" required="1">
                <getopt mixed="-o, --action=[action]" />
                <content type="string" default="reboot"  />
@@ -54,6 +59,11 @@
                <content type="boolean" default="1"  />
                <shortdesc lang="en">SSL connection</shortdesc>
        </parameter>
+       <parameter name="ssl_insecure" unique="0" required="0">
+               <getopt mixed="--ssl-insecure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection without verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="login" unique="0" required="1">
                <getopt mixed="-l, --username=[name]" />
                <content type="string"  />
diff --git a/tests/data/metadata/fence_rhevm.xml 
b/tests/data/metadata/fence_rhevm.xml
index a47f025..c9d6eeb 100644
--- a/tests/data/metadata/fence_rhevm.xml
+++ b/tests/data/metadata/fence_rhevm.xml
@@ -13,6 +13,11 @@
                <content type="boolean"  />
                <shortdesc lang="en">Disable TLS negotiation</shortdesc>
        </parameter>
+       <parameter name="ssl_secure" unique="0" required="0">
+               <getopt mixed="--ssl-secure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection with verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="port" unique="0" required="1">
                <getopt mixed="-n, --plug=[id]" />
                <content type="string"  />
@@ -48,6 +53,11 @@
                <content type="boolean"  />
                <shortdesc lang="en">SSL connection</shortdesc>
        </parameter>
+       <parameter name="ssl_insecure" unique="0" required="0">
+               <getopt mixed="--ssl-insecure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection without verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="action" unique="0" required="1">
                <getopt mixed="-o, --action=[action]" />
                <content type="string" default="reboot"  />
diff --git a/tests/data/metadata/fence_vmware_soap.xml 
b/tests/data/metadata/fence_vmware_soap.xml
index 97d8fc6..d0a465f 100644
--- a/tests/data/metadata/fence_vmware_soap.xml
+++ b/tests/data/metadata/fence_vmware_soap.xml
@@ -15,6 +15,11 @@ Name of virtual machine (-n / port) has to be used in 
inventory path format (e.g
                <content type="boolean"  />
                <shortdesc lang="en">Disable TLS negotiation</shortdesc>
        </parameter>
+       <parameter name="ssl_secure" unique="0" required="0">
+               <getopt mixed="--ssl-secure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection with verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="port" unique="0" required="1">
                <getopt mixed="-n, --plug=[id]" />
                <content type="string"  />
@@ -50,6 +55,11 @@ Name of virtual machine (-n / port) has to be used in 
inventory path format (e.g
                <content type="boolean"  />
                <shortdesc lang="en">SSL connection</shortdesc>
        </parameter>
+       <parameter name="ssl_insecure" unique="0" required="0">
+               <getopt mixed="--ssl-insecure" />
+               <content type="boolean"  />
+               <shortdesc lang="en">SSL connection without verifying fence 
device's certificate</shortdesc>
+       </parameter>
        <parameter name="action" unique="0" required="1">
                <getopt mixed="-o, --action=[action]" />
                <content type="string" default="reboot"  />
-- 
1.8.4.5

++++++ 0009-fence_cisco_ucs-fence_vmware_soap-Logout-has-to-be-p.patch ++++++
>From 65ae2524836e5ba5252fdc800e6276f80fdfac57 Mon Sep 17 00:00:00 2001
From: Marek 'marx' Grac <mg...@redhat.com>
Date: Mon, 8 Sep 2014 15:10:05 +0200
Subject: [PATCH 09/11] fence_cisco_ucs & fence_vmware_soap: Logout has to be
 performed even when fencing fails

Previously, logout was not performed in the case when fence agent was aborted 
e.g. timeout. What could
lead to a situation when connections were not closed correctly. In the extreme 
case, it was not possible
to log into device at all

Resolves: rhbz#1111599
---
 fence/agents/cisco_ucs/fence_cisco_ucs.py     | 35 +++++++++++++++++----------
 fence/agents/vmware_soap/fence_vmware_soap.py | 29 +++++++++++++---------
 2 files changed, 39 insertions(+), 25 deletions(-)

diff --git a/fence/agents/cisco_ucs/fence_cisco_ucs.py 
b/fence/agents/cisco_ucs/fence_cisco_ucs.py
index 888d689..f411433 100644
--- a/fence/agents/cisco_ucs/fence_cisco_ucs.py
+++ b/fence/agents/cisco_ucs/fence_cisco_ucs.py
@@ -19,6 +19,8 @@ RE_STATUS = re.compile("<lsPower .*? state=\"(.*?)\"", 
re.IGNORECASE)
 RE_GET_DN = re.compile(" dn=\"(.*?)\"", re.IGNORECASE)
 RE_GET_DESC = re.compile(" descr=\"(.*?)\"", re.IGNORECASE)
 
+options_global = None
+
 def get_power_status(conn, options):
        del conn
 
@@ -115,27 +117,37 @@ def define_new_opts():
                "default" : "",
                "order" : 1}
 
+def logout():
+       ### Logout; we do not care about result as we will end in any case
+       try:
+               send_command(options_global, "<aaaLogout inCookie=\"" + 
options_global["cookie"] + "\" />",
+                               int(options_global["--shell-timeout"]))
+       except Exception:
+               pass
+
 def main():
+       global options_global
        device_opt = ["ipaddr", "login", "passwd", "ssl", "notls", "port", 
"web", "suborg"]
 
        atexit.register(atexit_handler)
+       atexit.register(logout)
 
        define_new_opts()
 
-       options = check_input(device_opt, process_input(device_opt))
+       options_global = check_input(device_opt, process_input(device_opt))
 
        docs = {}
        docs["shortdesc"] = "Fence agent for Cisco UCS"
        docs["longdesc"] = "fence_cisco_ucs is an I/O Fencing agent which can 
be \
 used with Cisco UCS to fence machines."
        docs["vendorurl"] = "http://www.cisco.com";
-       show_docs(options, docs)
+       show_docs(options_global, docs)
 
-       run_delay(options)
+       run_delay(options_global)
        ### Login
        try:
-               res = send_command(options, "<aaaLogin inName=\"" + 
options["--username"] +
-                               "\" inPassword=\"" + options["--password"] + 
"\" />", int(options["--login-timeout"]))
+               res = send_command(options_global, "<aaaLogin inName=\"" + 
options_global["--username"] +
+                               "\" inPassword=\"" + 
options_global["--password"] + "\" />", int(options_global["--login-timeout"]))
                result = RE_COOKIE.search(res)
                if result == None:
                        ## Cookie is absenting in response
@@ -143,22 +155,19 @@ used with Cisco UCS to fence machines."
        except Exception:
                fail(EC_LOGIN_DENIED)
 
-       options["cookie"] = result.group(1)
+       options_global["cookie"] = result.group(1)
 
        ##
        ## Modify suborg to format /suborg
-       if options["--suborg"] != "":
-               options["--suborg"] = "/" + 
options["--suborg"].lstrip("/").rstrip("/")
+       if options_global["--suborg"] != "":
+               options_global["--suborg"] = "/" + 
options_global["--suborg"].lstrip("/").rstrip("/")
 
        ##
        ## Fence operations
        ####
-       result = fence_action(None, options, set_power_status, 
get_power_status, get_list)
-
-       ### Logout; we do not care about result as we will end in any case
-       send_command(options, "<aaaLogout inCookie=\"" + options["cookie"] + 
"\" />",
-                       int(options["--shell-timeout"]))
+       result = fence_action(None, options_global, set_power_status, 
get_power_status, get_list)
 
+       ## Logout is done every time at atexit phase
        sys.exit(result)
 
 if __name__ == "__main__":
diff --git a/fence/agents/vmware_soap/fence_vmware_soap.py 
b/fence/agents/vmware_soap/fence_vmware_soap.py
index 3217c6b..2cea105 100644
--- a/fence/agents/vmware_soap/fence_vmware_soap.py
+++ b/fence/agents/vmware_soap/fence_vmware_soap.py
@@ -20,6 +20,9 @@ REDHAT_COPYRIGHT=""
 BUILD_DATE="April, 2011"
 #END_VERSION_GENERATION
 
+options_global = None
+conn_global = None
+
 class RequestsTransport(HttpAuthenticated):
        def __init__(self, **kwargs):
                self.cert = kwargs.pop('cert', None)
@@ -203,12 +206,21 @@ def set_power_status(conn, options):
 def remove_tmp_dir(tmp_dir):
        shutil.rmtree(tmp_dir)
 
+def logout():
+       try:
+               conn_global.service.Logout(options_global["mo_SessionManager"])
+       except Exception:
+               pass
+
 def main():
+       global options_global
+       global conn_global
        device_opt = ["ipaddr", "login", "passwd", "web", "ssl", "notls", 
"port"]
 
        atexit.register(atexit_handler)
+       atexit.register(logout)
 
-       options = check_input(device_opt, process_input(device_opt))
+       options_global = check_input(device_opt, process_input(device_opt))
 
        ##
        ## Fence agent specific defaults
@@ -224,7 +236,7 @@ format (e.g. /datacenter/vm/Discovered virtual 
machine/myMachine). \
 In the cases when name of yours VM is unique you can use it instead. \
 Alternatively you can always use UUID to access virtual machine."
        docs["vendorurl"] = "http://www.vmware.com";
-       show_docs(options, docs)
+       show_docs(options_global, docs)
 
        logging.basicConfig(level=logging.INFO)
        logging.getLogger('suds.client').setLevel(logging.CRITICAL)
@@ -234,18 +246,11 @@ Alternatively you can always use UUID to access virtual 
machine."
        ##
        ## Operate the fencing device
        ####
-       conn = soap_login(options)
+       conn_global = soap_login(options_global)
 
-       result = fence_action(conn, options, set_power_status, 
get_power_status, get_power_status)
-
-       ##
-       ## Logout from system
-       #####
-       try:
-               conn.service.Logout(options["mo_SessionManager"])
-       except Exception:
-               pass
+       result = fence_action(conn_global, options_global, set_power_status, 
get_power_status, get_power_status)
 
+       ## Logout from system is done automatically via atexit()
        sys.exit(result)
 
 if __name__ == "__main__":
-- 
1.8.4.5

++++++ 0010-fence_zvm-Fixes-for-better-upstream-inclusion.patch ++++++
>From 0595f0fd88f395041059b85b37ba846e766a5ed3 Mon Sep 17 00:00:00 2001
From: Marek 'marx' Grac <mg...@redhat.com>
Date: Fri, 12 Sep 2014 21:02:59 +0200
Subject: [PATCH 10/11] fence_zvm: Fixes for better upstream inclusion

---
 fence/agents/zvm/Makefile.am   | 7 +++++++
 fence/agents/zvm/fence_zvm.c   | 1 +
 fence/agents/zvm/fence_zvmip.c | 1 +
 3 files changed, 9 insertions(+)

diff --git a/fence/agents/zvm/Makefile.am b/fence/agents/zvm/Makefile.am
index 2439985..62eb862 100644
--- a/fence/agents/zvm/Makefile.am
+++ b/fence/agents/zvm/Makefile.am
@@ -1,5 +1,7 @@
 MAINTAINERCLEANFILES   = Makefile.in
 
+TARGET                 = fence_zvmip
+
 sbin_PROGRAMS          = fence_zvm fence_zvmip
 
 noinst_HEADERS         = fence_zvm.h
@@ -12,6 +14,11 @@ fence_zvmip_CFLAGS   = -D_GNU_SOURCE
 
 dist_man_MANS          = fence_zvm.8 fence_zvmip.8
 
+#include $(top_srcdir)/make/fencemanc.mk
+
+clean-local:
+       rm -f $(sbin_PROGRAMS)
+
 FENCE_TEST_ARGS                = -n test -a test -p test -u test
 
 include $(top_srcdir)/make/agentccheck.mk
diff --git a/fence/agents/zvm/fence_zvm.c b/fence/agents/zvm/fence_zvm.c
index 2ec4be9..e5a7c2b 100644
--- a/fence/agents/zvm/fence_zvm.c
+++ b/fence/agents/zvm/fence_zvm.c
@@ -599,6 +599,7 @@ zvm_metadata()
        fprintf (stdout, "<longdesc>");
        fprintf (stdout, "The fence_zvm agent is intended to be used with with 
z/VM SMAPI service.");
        fprintf (stdout, "</longdesc>\n");
+       fprintf (stdout, "<vendor-url>http://www.ibm.com</vendor-url>\n");
 
        fprintf (stdout, "<parameters>\n");
 
diff --git a/fence/agents/zvm/fence_zvmip.c b/fence/agents/zvm/fence_zvmip.c
index 94c9e2e..3342bc6 100644
--- a/fence/agents/zvm/fence_zvmip.c
+++ b/fence/agents/zvm/fence_zvmip.c
@@ -804,6 +804,7 @@ zvm_metadata()
        fprintf (stdout, "<longdesc>");
        fprintf (stdout, "The fence_zvm agent is intended to be used with with 
z/VM SMAPI service via TCP/IP");
        fprintf (stdout, "</longdesc>\n");
+       fprintf (stdout, "<vendor-url>http://www.ibm.com</vendor-url>\n");
 
        fprintf (stdout, "<parameters>\n");
 
-- 
1.8.4.5

++++++ 0011-fence_zvm-Add-support-for-on-improve-documentation.patch ++++++
>From 5d8e167cb54051ff95fcc8ac3e87d2c63209748a Mon Sep 17 00:00:00 2001
From: Marek 'marx' Grac <mg...@redhat.com>
Date: Mon, 15 Sep 2014 15:05:25 +0200
Subject: [PATCH 11/11] fence_zvm: Add support for 'on', improve documentation

Author: Neale Ferguson
---
 fence/agents/zvm/fence_zvm.8   |  2 +-
 fence/agents/zvm/fence_zvm.c   | 38 +++++++++++++++++++++-----------------
 fence/agents/zvm/fence_zvmip.8 |  2 +-
 fence/agents/zvm/fence_zvmip.c | 38 +++++++++++++++++++++-----------------
 4 files changed, 44 insertions(+), 36 deletions(-)

diff --git a/fence/agents/zvm/fence_zvm.8 b/fence/agents/zvm/fence_zvm.8
index 359436e..8c0d35a 100644
--- a/fence/agents/zvm/fence_zvm.8
+++ b/fence/agents/zvm/fence_zvm.8
@@ -52,7 +52,7 @@ forcibly terminated. Currently, this option is ignored.
 This option is used by fence_node(8) and is ignored by fence_zvm.
 .TP
 \fIaction = < action >\fP
-Fencing action: "off" - fence off device; "metadata" - display device 
metadata; "status" - state of device
+Fencing action: "off" - deactivate virtual machine; "on" - activate virtual 
machine; "metadata" - display device metadata" - describe fence agent 
parameters; "status" - state of virtual machine
 .TP
 \fIport = < target >\fP
 Name of virtual machine to recycle.
diff --git a/fence/agents/zvm/fence_zvm.c b/fence/agents/zvm/fence_zvm.c
index e5a7c2b..524e21e 100644
--- a/fence/agents/zvm/fence_zvm.c
+++ b/fence/agents/zvm/fence_zvm.c
@@ -699,15 +699,15 @@ get_options_stdin (zvm_driver_t *zvm)
 
                if (!strcasecmp (opt, "action")) {
                        if (strcasecmp(arg, "off") == 0) {
-                               fence = 0;
+                               fence = 1;
                        } else if (strcasecmp(arg, "on") == 0) {
-                               fence = 1;
+                               fence = 2;
                        } else if (strcasecmp(arg, "metadata") == 0) {
-                               fence = 2;
+                               fence = 3;
                        } else if (strcasecmp(arg, "status") == 0) {
-                               fence = 3;
-                       } else {
                                fence = 4;
+                       } else {
+                               fence = 5;
                        }
                } else if (!strcasecmp (opt, "ipaddr")) {
                        lSrvName = MIN(strlen(arg), sizeof(zvm->smapiSrv));
@@ -738,7 +738,7 @@ get_options_stdin (zvm_driver_t *zvm)
                                zvm->delay = DEFAULT_DELAY;
                        }
                } else if (!strcasecmp (opt, "help")) {
-                       fence = 4;
+                       fence = 5;
                }
        }
        return(fence);
@@ -769,15 +769,15 @@ get_options(int argc, char **argv, zvm_driver_t *zvm)
                        break;
                case 'o' :
                        if (strcasecmp(optarg, "off") == 0) {
-                               fence = 0;
+                               fence = 1;
                        } else if (strcasecmp(optarg, "on") == 0) {
-                               fence = 1;
+                               fence = 2;
                        } else if (strcasecmp(optarg, "metadata") == 0) {
-                               fence = 2;
+                               fence = 3;
                        } else if (strcasecmp(optarg, "status") == 0) {
-                               fence = 3;
-                       } else {
                                fence = 4;
+                       } else {
+                               fence = 5;
                        }
                        break;
                case 'a' :
@@ -807,7 +807,7 @@ get_options(int argc, char **argv, zvm_driver_t *zvm)
                        memcpy(zvm->node, optarg, lSrvNode);
                        break;
                default :
-                       fence = 4;
+                       fence = 5;
                }
        }
        return(fence);
@@ -874,22 +874,26 @@ main(int argc, char **argv)
                fence = get_options_stdin(&zvm);
 
        switch(fence) {
-               case 0 :        // OFF
+               case 0 :        // OFFON
+                       if ((rc = check_parm(&zvm)) == 0) 
+                               rc = zvm_smapi_imageRecycle(&zvm);
+                       break;
+               case 1 :        // OFF
                        if ((rc = check_parm(&zvm)) == 0)
                                rc = zvm_smapi_imageDeactivate(&zvm);
                        break;
-               case 1 :        // ON
+               case 2 :        // ON
                        if ((rc = check_parm(&zvm)) == 0)
                                rc = zvm_smapi_imageActivate(&zvm);
                        break;
-               case 2 :        // METADATA
+               case 3 :        // METADATA
                        rc = zvm_metadata();
                        break;
-               case 3 :        // STATUS
+               case 4 :        // STATUS
                        if ((rc = check_parm(&zvm)) == 0)
                                rc = zvm_smapi_imageQuery(&zvm);
                        break;
-               case 4 :
+               case 5 :
                        rc = usage();
        }
        closelog();
diff --git a/fence/agents/zvm/fence_zvmip.8 b/fence/agents/zvm/fence_zvmip.8
index 8217d61..6b01425 100644
--- a/fence/agents/zvm/fence_zvmip.8
+++ b/fence/agents/zvm/fence_zvmip.8
@@ -55,7 +55,7 @@ Display usage information
 This option is used by fence_node(8) and is ignored by fence_zvmip.
 .TP
 \fIaction = < action >\fP
-Fencing action: "off" - fence off device; "metadata" - display device 
metadata; "status" - state of device
+Fencing action: "off" - deactivate virtual machine; "on" - activate virtual 
machine; "metadata" - display device metadata" - describe fence agent 
parameters; "status" - state of virtual machine
 .TP
 \fIplug = < plug >\fP
 Name of virtual machine to recycle.
diff --git a/fence/agents/zvm/fence_zvmip.c b/fence/agents/zvm/fence_zvmip.c
index 3342bc6..bd7c536 100644
--- a/fence/agents/zvm/fence_zvmip.c
+++ b/fence/agents/zvm/fence_zvmip.c
@@ -677,15 +677,15 @@ get_options_stdin (zvm_driver_t *zvm)
 
                if (!strcasecmp (opt, "action")) {
                        if (strcasecmp(arg, "off") == 0) {
-                               fence = 0;
+                               fence = 1;
                        } else if (strcasecmp(arg, "on") == 0) {
-                               fence = 1;
+                               fence = 2;
                        } else if (strcasecmp(arg, "metadata") == 0) {
-                               fence = 2;
+                               fence = 3;
                        } else if (strcasecmp(arg, "status") == 0) {
-                               fence = 3;
-                       } else {
                                fence = 4;
+                       } else {
+                               fence = 5;
                        }
                } else if (!strcasecmp (opt, "ipaddr")) {
                        lSrvName = MIN(strlen(arg), sizeof(zvm->smapiSrv)-1);
@@ -712,7 +712,7 @@ get_options_stdin (zvm_driver_t *zvm)
                                zvm->timeOut = DEFAULT_TIMEOUT;
                        }
                } else if (!strcasecmp (opt, "help")) {
-                       fence = 2;
+                       fence = 5;
                }
        }
        return(fence);
@@ -746,15 +746,15 @@ get_options(int argc, char **argv, zvm_driver_t *zvm)
                        break;
                case 'o' :
                        if (strcasecmp(optarg, "off") == 0) {
-                               fence = 0;
+                               fence = 1;
                        } else if (strcasecmp(optarg, "on") == 0) {
-                               fence = 1;
+                               fence = 2;
                        } else if (strcasecmp(optarg, "metadata") == 0) {
-                               fence = 2;
+                               fence = 3;
                        } else if (strcasecmp(optarg, "status") == 0) {
-                               fence = 3;
-                       } else {
                                fence = 4;
+                       } else {
+                               fence = 5;
                        }
                        break;
                case 'p' :
@@ -784,7 +784,7 @@ get_options(int argc, char **argv, zvm_driver_t *zvm)
                        }
                        break;
                default :
-                       fence = 4;
+                       fence = 5;
                }
        }
        return(fence);
@@ -944,22 +944,26 @@ main(int argc, char **argv)
                fence = get_options_stdin(&zvm);
 
        switch(fence) {
-               case 0 :        // OFF
+               case 0 :        // OFFON
+                       if ((rc = check_parm(&zvm)) == 0)
+                               rc = zvm_smapi_imageRecycle(&zvm);
+                       break;
+               case 1 :        // OFF
                        if ((rc = check_parm(&zvm)) == 0)
                                rc = zvm_smapi_imageDeactivate(&zvm);
                        break;
-               case 1 :        // ON
+               case 2 :        // ON
                        if ((rc = check_parm(&zvm)) == 0)
                                rc = zvm_smapi_imageActivate(&zvm);
                        break;
-               case 2 :        // METADATA
+               case 3 :        // METADATA
                        rc = zvm_metadata();
                        break;
-               case 3 :        // STATUS
+               case 4 :        // STATUS
                        if ((rc = check_parm(&zvm)) == 0)
                                rc = zvm_smapi_imageQuery(&zvm);
                        break;
-               case 4 :
+               case 5 :
                        rc = usage();
        }
        closelog();
-- 
1.8.4.5

-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to