X-Git-Url: https://pwan.org/git/?a=blobdiff_plain;f=certmaster%2Fminion%2Fmodules%2Fnetapp%2Fcommon.py;fp=certmaster%2Fminion%2Fmodules%2Fnetapp%2Fcommon.py;h=979c95c02f27811adb72461aef5ed102ebdf1772;hb=8f2ff4d7c902d534d68ff1a16418b7be492033bf;hp=0000000000000000000000000000000000000000;hpb=5b2601a56907b02efc6567354fa051ef08d97b6f;p=certmaster.git diff --git a/certmaster/minion/modules/netapp/common.py b/certmaster/minion/modules/netapp/common.py new file mode 100644 index 0000000..979c95c --- /dev/null +++ b/certmaster/minion/modules/netapp/common.py @@ -0,0 +1,49 @@ +## +## NetApp Filer 'common' Module +## +## Copyright 2008, Red Hat, Inc +## John Eckersberg +## +## This software may be freely redistributed under the terms of the GNU +## general public license. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. +## + +import re +import sub_process + +SSH = '/usr/bin/ssh' +SSH_USER = 'root' +SSH_OPTS = '-o forwardagent=no' +class GenericSSHError(Exception): pass +class NetappCommandError(Exception): pass + +def ssh(host, cmdargs, input=None, user=SSH_USER): + cmdline = [SSH, SSH_OPTS, "%s@%s" % (user, host)] + cmdline.extend(cmdargs) + + cmd = sub_process.Popen(cmdline, + executable=SSH, + stdin=sub_process.PIPE, + stdout=sub_process.PIPE, + stderr=sub_process.PIPE, + shell=False) + + (out, err) = cmd.communicate(input) + + if cmd.wait() != 0: + raise GenericSSHError, err + else: + return out + err + +def check_output(regex, output): + #strip newlines + output = output.replace('\n', ' ') + if re.search(regex, output): + return True + else: + raise NetappCommandError, output +