Page Menu
Home
ClusterLabs Projects
Search
Configure Global Search
Log In
Files
F3152156
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
View Options
diff --git a/fence/agents/lib/fencing_snmp.py.py b/fence/agents/lib/fencing_snmp.py.py
index 9aaf52be..00f3f9cd 100644
--- a/fence/agents/lib/fencing_snmp.py.py
+++ b/fence/agents/lib/fencing_snmp.py.py
@@ -1,134 +1,134 @@
#!@PYTHON@ -tt
# For example of use please see fence_cisco_mds
import re, pexpect
import logging
from fencing import *
from fencing import fail, fail_usage, EC_TIMED_OUT, run_delay
__all__ = ['FencingSnmp']
## do not add code here.
#BEGIN_VERSION_GENERATION
RELEASE_VERSION = ""
REDHAT_COPYRIGHT = ""
BUILD_DATE = ""
#END_VERSION_GENERATION
class FencingSnmp:
def __init__(self, options):
self.options = options
run_delay(options)
def quote_for_run(self, string):
return string.replace(r"'", "'\\''")
def complete_missed_params(self):
mapping = [[
['snmp-priv-passwd', 'password', '!snmp-sec-level'],
'self.options["--snmp-sec-level"]="authPriv"'
], [
['!snmp-version', 'community', '!username', '!snmp-priv-passwd', '!password'],
'self.options["--snmp-version"]="2c"'
]]
for val in mapping:
e = val[0]
res = True
for item in e:
if item[0] == '!' and "--" + item[1:] in self.options:
res = False
break
if item[0] != '!' and "--" + item[0:] not in self.options:
res = False
break
if res:
exec(val[1])
def prepare_cmd(self, command):
cmd = "%s -m '' -Oeqn "% (command)
self.complete_missed_params()
#mapping from our option to snmpcmd option
mapping = (('snmp-version', 'v'), ('community', 'c'))
for item in mapping:
if "--" + item[0] in self.options:
cmd += " -%s '%s'"% (item[1], self.quote_for_run(self.options["--" + item[0]]))
# Some options make sense only for v3 (and for v1/2c can cause "problems")
if ("--snmp-version" in self.options) and (self.options["--snmp-version"] == "3"):
# Mapping from our options to snmpcmd options for v3
mapping_v3 = (('snmp-auth-prot', 'a'), ('snmp-sec-level', 'l'), ('snmp-priv-prot', 'x'), \
('snmp-priv-passwd', 'X'), ('password', 'A'), ('username', 'u'))
for item in mapping_v3:
if "--"+item[0] in self.options:
cmd += " -%s '%s'"% (item[1], self.quote_for_run(self.options["--" + item[0]]))
force_ipvx = ""
if "--inet6-only" in self.options:
force_ipvx = "udp6:"
if "--inet4-only" in self.options:
force_ipvx = "udp:"
cmd += " '%s%s%s'"% (force_ipvx, self.quote_for_run(self.options["--ip"]),
"--ipport" in self.options and self.quote_for_run(":" + str(self.options["--ipport"])) or "")
return cmd
- def run_command(self, command, additional_timemout=0):
+ def run_command(self, command, additional_timeout=0):
try:
logging.debug("%s\n", command)
(res_output, res_code) = pexpect.run(command,
int(self.options["--shell-timeout"]) +
int(self.options["--login-timeout"]) +
- additional_timemout, True)
+ additional_timeout, True)
if res_code == None:
fail(EC_TIMED_OUT)
logging.debug("%s\n", res_output)
if (res_code != 0) or (re.search("^Error ", res_output, re.MULTILINE) != None):
fail_usage("Returned %d: %s"% (res_code, res_output))
except pexpect.ExceptionPexpect:
fail_usage("Cannot run command %s"%(command))
return res_output
- def get(self, oid, additional_timemout=0):
+ def get(self, oid, additional_timeout=0):
cmd = "%s '%s'"% (self.prepare_cmd(self.options["--snmpget-path"]), self.quote_for_run(oid))
- output = self.run_command(cmd, additional_timemout).splitlines()
+ output = self.run_command(cmd, additional_timeout).splitlines()
return output[len(output)-1].split(None, 1)
- def set(self, oid, value, additional_timemout=0):
+ def set(self, oid, value, additional_timeout=0):
mapping = ((int, 'i'), (str, 's'))
type_of_value = ''
for item in mapping:
if isinstance(value, item[0]):
type_of_value = item[1]
break
cmd = "%s '%s' %s '%s'" % (self.prepare_cmd(self.options["--snmpset-path"]),
self.quote_for_run(oid), type_of_value, self.quote_for_run(str(value)))
- self.run_command(cmd, additional_timemout)
+ self.run_command(cmd, additional_timeout)
- def walk(self, oid, additional_timemout=0):
+ def walk(self, oid, additional_timeout=0):
cmd = "%s '%s'"% (self.prepare_cmd(self.options["--snmpwalk-path"]), self.quote_for_run(oid))
- output = self.run_command(cmd, additional_timemout).splitlines()
+ output = self.run_command(cmd, additional_timeout).splitlines()
return [x.split(None, 1) for x in output if x.startswith(".")]
File Metadata
Details
Attached
Mime Type
text/x-diff
Expires
Mon, Feb 24, 4:52 PM (2 h, 51 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1464351
Default Alt Text
(4 KB)
Attached To
Mode
rF Fence Agents
Attached
Detach File
Event Timeline
Log In to Comment