summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2007-08-07 18:11:05 +0000
committerNarayan Desai <desai@mcs.anl.gov>2007-08-07 18:11:05 +0000
commitcf4b95f1b9e460a3905701feb1040b6c9038e141 (patch)
tree8de60ec0952866d1165d2a6b1804c4abe663bb67 /tools
parentbb95ea862a35e6883b21e162b081beb813d0aabc (diff)
downloadbcfg2-cf4b95f1b9e460a3905701feb1040b6c9038e141.tar.gz
bcfg2-cf4b95f1b9e460a3905701feb1040b6c9038e141.tar.bz2
bcfg2-cf4b95f1b9e460a3905701feb1040b6c9038e141.zip
Make bcfg2-query usable as nodeattr for pdsh
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@3610 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'tools')
-rw-r--r--tools/nodeattr.py73
1 files changed, 0 insertions, 73 deletions
diff --git a/tools/nodeattr.py b/tools/nodeattr.py
deleted file mode 100644
index db769fdd8..000000000
--- a/tools/nodeattr.py
+++ /dev/null
@@ -1,73 +0,0 @@
-#!/usr/bin/python
-
-from elementtree.ElementTree import XML, tostring
-from pdis.xpath import compile as xcompile
-from sys import argv
-
-outputmode = argv[1]
-attr = argv[2]
-
-#this will need to be extrapolated from the bcfg2.conf file
-#but for testing it can stay as is
-
-xmlfile="testing.xml"
-file=open(xmlfile, 'r').readlines()
-myxmlfile=""
-for line in file:
- myxmlfile+=line
-metadata=XML(myxmlfile)
-nodelist=[]
-
-(level,searchterm)=attr.split("=")
-
-if level.lower() == 'image':
- xexpression="/*/Client[@image='%s']"%searchterm
- path = xcompile(xexpression)
- nodelist += [ element.attrib['name'] for element in path.evaluate(metadata) ]
-else:
- profilelist=[]
- if level.lower() == "profile":
- profilelist.append(searchterm)
- else:
- classlist=[]
- xexpression="/*/Profile"
- path=xcompile(xexpression)
- for profile in path.evaluate(metadata):
- if level.lower() == 'class':
- xexpression="/*/Class[@name='%s']"%searchterm
- path=xcompile(xexpression)
- if path.evaluate(profile) and profile.attrib['name'] not in profilelist:
- profilelist.append(profile.attrib['name'])
- else:
- xexpression="/*/Class"
- path=xcompile(xexpression)
- for profclass in path.evaluate(profile):
- xepression="/*/Class[@name='%s']"%profclass.attrib['name']
- path = xcompile(xexpression)
- for myclass in path.evaluate(metadata):
- xexpression="/*/Bundle[@name='%s']"%searchterm
- path=xcompile(xexpression)
- if path.evaluate(myclass) and myclass.attrib['name'] not in classlist:
- classlist.append(myclass.attrib['name'])
- xexpression="/*/Profile"
- path=xcompile(xexpression)
- for profile in path.evaluate(metadata):
- for myclass in classlist:
- xexpression="/*/Class[@name='%s']"%myclass
- path=xcompile(xexpression)
- if path.evaluate(profile) and profile.attrib['name'] not in profilelist:
- profilelist.append(profile.attrib['name'])
-
- for profile in profilelist:
- xexpression="/*/Client[@profile='%s']"%profile
- path = xcompile(xexpression)
- nodelist += [ element.attrib['name'] for element in path.evaluate(metadata) ]
-
-if outputmode == '-c':
- print ",".join(nodelist)
-if outputmode == '-n':
- for node in nodelist:
- print node
-if outputmode == '-s':
- print "not yet implemented"
-