FAQ
List,

First I'm very new to Python. I usually do this kind of thing with shell
scripts, however, I'm trying to move to using python primarily so I can
learn the language. I'm attempting to write a script that will check a
server for various configuration settings and report and/or change based on
those findings. I know there are other tools that can do this, but for
various reasons I must script this. I have come up with two ways to
accomplish what I'm trying to do and I'm looking for the more elegant
solution -- or if there is another solution that I have not thought of. Any
input would be greatly appreciated and thanks for your time.

method 1:
=============
[master script]

def execute_script(cscript):
process = subprocess.Popen(cscript, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
output_data = process.communicate()

if process.returncode == 0:
return "OK"
elif process.returncode == 90:
return "DEFER"
elif process.returncode == 80:
return "UPDATED"
else:
return "ERROR"

if __name__ == '__main__':

# Find all configuration scripts
print "Searching for config scripts"
cscripts = []
for config_script in os.listdir(BASE_DIR + "/config.d"):
cscripts.append(BASE_DIR + '/config.d/' + config_script)
print "Found %d configuration scripts" % (len(cscripts))

# Loop through scripts and execute
for config_script in cscripts:
action_title = "Checking %s" % (config_script[len(BASE_DIR +
'/config.d/'):])
print "%-75.75s [ %s ]" % (action_title,
execute_script(config_script))

[config script template]
#!/usr/bin/env python

def check():
# do some checking
return results

return check()



method 2:
============
[master script]
if __name__ == '__main__':

# Find all configuration scripts
print "Searching for config scripts"
cscripts = []
for config_script in os.listdir(BASE_DIR + "/config.d"):
cscripts.append(BASE_DIR + '/config.d/' + config_script)
print "Found %d configuration scripts" % (len(cscripts))

# Loop through scripts and execute
for config_script in cscripts:
import config_script
action_title = "Checking %s" % (config_script[len(BASE_DIR +
'/config.d/'):])
print "%-75.75s [ %s ]" % (action_title, config_script.check())


[config script template]
#!/usr/bin/env python

def check():
# do some stuff
return result # return str OK, DEFER, UPDATED or ERROR
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/python-list/attachments/20110620/f93c4d5f/attachment.html>

Search Discussions

Discussion Posts

Follow ups

Related Discussions

Discussion Navigation
viewthread | post
posts ‹ prev | 1 of 7 | next ›
Discussion Overview
grouppython-list @
categoriespython
postedJun 20, '11 at 4:13a
activeJun 21, '11 at 12:34a
posts7
users4
websitepython.org

People

Translate

site design / logo © 2022 Grokbase