Author: gnichols
Date: 2012-02-03 14:48:52 +0000 (Fri, 03 Feb 2012)
New Revision: 1172
Modified:
trunk/v7/environment.py
Log:
746029 - FEAT: v7 should log reboot and fv guest time limit changes made to /etc/v7.xml
Modified: trunk/v7/environment.py
===================================================================
--- trunk/v7/environment.py 2012-02-03 14:10:17 UTC (rev 1171)
+++ trunk/v7/environment.py 2012-02-03 14:48:52 UTC (rev 1172)
@@ -13,8 +13,7 @@
#
# Author: Greg Nichols
-import os
-import string
+import os, string, inspect
from xml.dom.minidom import getDOMImplementation, parse
import xml.dom.ext
from tags import Tags, Attributes, Constants
@@ -104,7 +103,31 @@
timeLimitsElement.setAttribute(Attributes.fv_guest_timelimit, "%u" % self.defaultFVGuestTimelimit)
timeLimitsElement.setAttribute(Attributes.reboot_timelimit, "%u" % self.defaultRebootTimelimit)
+ def showChangesFromDefault(self):
+
+ specialCaseNames = {'DatabaseName': 'getResultsFileName',
+ 'Export': "getServerExport",
+ 'MaximumAttachmentFileSize': 'getMaximumAttachmentSize',
+ 'Transfer': 'getServerTransfer' }
+ changed = False
+
+ for (name, thing) in inspect.getmembers(self):
+ if "default" in name:
+ methodName = "get" + name[7:]
+ # special cases
+ if name[7:] in specialCaseNames:
+ methodName = specialCaseNames[name[7:]]
+ try:
+ if getattr(self, methodName)() != thing:
+ if not changed:
+ print "Warning: the configuration file has been changed from default settings:"
+ changed = True
+ print " %s was changed from %s to %s" % (name[7:], thing, getattr(self, methodName)())
+ except Exception, e:
+ print e
+
+ return changed
def _getFilesystemElement(self):
return self.findOrCreateElement(self.document.documentElement, Tags.file_system)
@@ -142,6 +165,10 @@
storeDirectoryElement = self.findOrCreateElement(self._getFilesystemElement(), Tags.store_directory)
return self.getTextNode(storeDirectoryElement).data
+ def getLibraryDirectory(self):
+ libraryDirectoryElement = self.findOrCreateElement(self._getFilesystemElement(), Tags.library_directory)
+ return self.getTextNode(libraryDirectoryElement).data
+
def getSourceDirectory(self):
sourceDirectoryElement = self.findOrCreateElement(self._getFilesystemElement(), Tags.source_directory)
return self.getTextNode(sourceDirectoryElement).data
@@ -218,4 +245,9 @@
if not self._getTimelimitsElement().getAttribute(Attributes.reboot_timelimit):
return self.defaultRebootTimelimit
return string.atoi(self._getTimelimitsElement().getAttribute(Attributes.reboot_timelimit))
-
\ No newline at end of file
+
+
+if __name__ == "__main__":
+
+ environment = Environment()
+ environment.showChangesFromDefault()