Page Menu
Home
ClusterLabs Projects
Search
Configure Global Search
Log In
Files
F3152120
fence_rsa.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
fence_rsa.py
View Options
#!/usr/bin/python
#####
##
## The Following Agent Has Been Tested On:
##
#####
import
sys
,
re
,
pexpect
,
exceptions
sys
.
path
.
append
(
"@FENCEAGENTSLIBDIR@"
)
from
fencing
import
*
#BEGIN_VERSION_GENERATION
RELEASE_VERSION
=
"New RSA2 Agent - test release on steroids"
REDHAT_COPYRIGHT
=
""
BUILD_DATE
=
""
#END_VERSION_GENERATION
def
get_power_status
(
conn
,
options
):
try
:
conn
.
send
(
"power state
\r\n
"
)
conn
.
log_expect
(
options
,
options
[
"-c"
],
int
(
options
[
"-Y"
]))
except
pexpect
.
EOF
:
fail
(
EC_CONNECTION_LOST
)
except
pexpect
.
TIMEOUT
:
fail
(
EC_TIMED_OUT
)
status
=
re
.
compile
(
"Power: (.*)"
,
re
.
IGNORECASE
)
.
search
(
conn
.
before
)
.
group
(
1
)
return
status
.
lower
()
.
strip
()
def
set_power_status
(
conn
,
options
):
try
:
conn
.
send
(
"power "
+
options
[
"-o"
]
+
"
\r\n
"
)
conn
.
log_expect
(
options
,
options
[
"-c"
],
int
(
options
[
"-g"
]))
except
pexpect
.
EOF
:
fail
(
EC_CONNECTION_LOST
)
except
pexpect
.
TIMEOUT
:
fail
(
EC_TIMED_OUT
)
def
main
():
device_opt
=
[
"help"
,
"version"
,
"agent"
,
"quiet"
,
"verbose"
,
"debug"
,
"action"
,
"ipaddr"
,
"login"
,
"passwd"
,
"passwd_script"
,
"cmd_prompt"
,
"secure"
,
"identity_file"
,
"ipport"
,
"power_timeout"
,
"shell_timeout"
,
"login_timeout"
,
"power_wait"
]
atexit
.
register
(
atexit_handler
)
all_opt
[
"login_timeout"
][
"default"
]
=
10
options
=
check_input
(
device_opt
,
process_input
(
device_opt
))
##
## Fence agent specific defaults
#####
if
0
==
options
.
has_key
(
"-c"
):
options
[
"-c"
]
=
">"
# This device will not allow us to login even with LANG=C
options
[
"ssh_options"
]
=
"-F /dev/null"
docs
=
{
}
docs
[
"shortdesc"
]
=
"Fence agent for IBM RSA"
docs
[
"longdesc"
]
=
""
show_docs
(
options
,
docs
)
##
## Operate the fencing device
######
conn
=
fence_login
(
options
)
result
=
fence_action
(
conn
,
options
,
set_power_status
,
get_power_status
,
None
)
##
## Logout from system
######
try
:
conn
.
sendline
(
"exit"
)
conn
.
close
()
except
exceptions
.
OSError
:
pass
except
pexpect
.
ExceptionPexpect
:
pass
sys
.
exit
(
result
)
if
__name__
==
"__main__"
:
main
()
File Metadata
Details
Attached
Mime Type
text/x-script.python
Expires
Mon, Feb 24, 4:11 PM (1 h, 7 m ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1464328
Default Alt Text
fence_rsa.py (1 KB)
Attached To
Mode
rF Fence Agents
Attached
Detach File
Event Timeline
Log In to Comment