summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorNarayan Desai <desai@mcs.anl.gov>2007-02-12 20:48:33 +0000
committerNarayan Desai <desai@mcs.anl.gov>2007-02-12 20:48:33 +0000
commit9ca71e5e36ba918c1c1e85643ef54ab24fcbff30 (patch)
tree27126e0a89e0e97c152a9ff57ef11072d1e114a6 /tools
parent4f608872f119e6954779c4e96e356d8baa1c6017 (diff)
downloadbcfg2-9ca71e5e36ba918c1c1e85643ef54ab24fcbff30.tar.gz
bcfg2-9ca71e5e36ba918c1c1e85643ef54ab24fcbff30.tar.bz2
bcfg2-9ca71e5e36ba918c1c1e85643ef54ab24fcbff30.zip
Remove crosscheck script
git-svn-id: https://svn.mcs.anl.gov/repos/bcfg/trunk/bcfg2@2802 ce84e21b-d406-0410-9b95-82705330c041
Diffstat (limited to 'tools')
-rw-r--r--tools/crosscheck.py92
1 files changed, 0 insertions, 92 deletions
diff --git a/tools/crosscheck.py b/tools/crosscheck.py
deleted file mode 100644
index c1447acd4..000000000
--- a/tools/crosscheck.py
+++ /dev/null
@@ -1,92 +0,0 @@
-#!/usr/bin/env python
-
-import lxml.etree
-import sys
-
-important = {'Package':['name', 'version'],
- 'Service':['name', 'status'],
- 'Directory':['name', 'owner', 'group', 'perms'],
- 'SymLink':['name', 'to'],
- 'ConfigFile':['name', 'owner', 'group', 'perms'],
- 'Permissions':['name', 'perms'],
- 'PostInstall':['name']}
-
-def compare(new, old):
- for child in new.getchildren():
- equiv = old.xpath('%s[@name="%s"]' % (child.tag, child.get('name')))
- if not important.has_key(child.tag):
- print "tag type %s not handled" % (child.tag)
- continue
- if len(equiv) == 0:
- print "didn't find matching %s %s" % (child.tag, child.get('name'))
- continue
- elif len(equiv) >= 1:
- if child.tag == 'ConfigFile':
- if child.text != equiv[0].text:
- print "%s %s contents differ" \
- % (child.tag, child.get('name'))
- continue
- noattrmatch = [field for field in important[child.tag] if \
- child.get(field) != equiv[0].get(field)]
- if not noattrmatch:
- new.remove(child)
- old.remove(equiv[0])
- else:
- print "%s %s attributes %s do not match" % \
- (child.tag, child.get('name'), noattrmatch)
- if len(old.getchildren()) == 0 and len(new.getchildren()) == 0:
- return True
- if new.tag == 'Independant':
- name = 'Indep'
- else:
- name = new.get('name')
- both = []
- oldl = ["%s %s" % (entry.tag, entry.get('name')) for entry in old]
- newl = ["%s %s" % (entry.tag, entry.get('name')) for entry in new]
- for entry in newl:
- if entry in oldl:
- both.append(entry)
- newl.remove(entry)
- oldl.remove(entry)
- for entry in both:
- print "%s differs (in bundle %s)" % (entry, name)
- for entry in oldl:
- print "%s only in old configuration (in bundle %s)" % (entry, name)
- for entry in newl:
- print "%s only in new configuration (in bundle %s)" % (entry, name)
- return False
-
-
-if __name__ == '__main__':
- try:
- (new, old) = sys.argv[1:3]
- except IndexError:
- print "Usage: crosscheck.py <new> <old>"
- raise SystemExit
-
- new = lxml.etree.parse(new).getroot()
- old = lxml.etree.parse(old).getroot()
- for src in [new, old]:
- for bundle in src.findall('./Bundle'):
- if bundle.get('name')[-4:] == '.xml':
- bundle.set('name', bundle.get('name')[:-4])
-
- for bundle in new.findall('./Bundle'):
- equiv = old.xpath('Bundle[@name="%s"]' % (bundle.get('name')))
- if len(equiv) == 0:
- print "couldnt find matching bundle for %s" % bundle.get('name')
- continue
- if len(equiv) == 1:
- if compare(bundle, equiv[0]):
- new.remove(bundle)
- old.remove(equiv[0])
- else:
- print "dunno what is going on for bundle %s" % (bundle.get('name'))
- i1 = new.find('./Independant')
- i2 = old.find('./Independant')
- if compare(i1, i2):
- new.remove(i1)
- old.remove(i2)
-
- #print lxml.etree.tostring(new)
- #print lxml.etree.tostring(old)