def __init__(self, *params, **kwds): """ Valid constructors are __init__(element, doc) __init__(source, dest) __init__(source=source, dest=dest) """ if (len(params) == 2 and isinstance(params[0], CopyObject) and isinstance(params[1], CopyObject)) or ( kwds and kwds.has_key("source") and kwds.has_key("dest") ): source = None dest = None if len(params) == 2: source = params[0] dest = params[1] else: source = kwds["source"] dest = kwds["dest"] doc = xml.dom.getDOMImplementation().createDocument(None, self.TAGNAME, None) element = doc.documentElement element.setAttribute("type", "filesystem") element.appendChild(source.getElement()) element.appendChild(dest.getElement()) Copyset.__init__(self, element, doc) self.source = source self.dest = dest elif len(params) == 2: element = params[0] doc = params[1] Copyset.__init__(self, element, doc) try: __source = element.getElementsByTagName("source")[0] self.source = getCopyObject(__source, doc) except Exception, e: ComLog.getLogger(__logStrLevel__).warning(e) ComLog.debugTraceLog(ComLog.getLogger(__logStrLevel__)) raise ComException( 'Source for filesystem copyset with name "%s" is not defined' % (self.getAttribute("name", "unknown")) ) try: __dest = element.getElementsByTagName("destination")[0] self.dest = getCopyObject(__dest, doc) except Exception, e: ComLog.getLogger(__logStrLevel__).warning(e) raise ComException( 'Destination for filesystem copyset with name "%s" is not defined' % (self.getAttribute("name", "unknown")) )
def __init__(self, element, doc): CopysetJournaled.__init__(self, element, doc) try: __source=element.getElementsByTagName('source')[0] self.source=getCopyObject(__source, doc) #except Exception, e: except Exception, e: ComLog.getLogger(__logStrLevel__).warning(e) raise ComException("source for copyset not defined")
updateFromElement=staticmethod(updateFromElement) __logStrLevel__ = "LVMCopyset" def __init__(self, element, doc): CopysetJournaled.__init__(self, element, doc) try: __source=self.getElement().getElementsByTagName('source')[0] except IndexError, ie: raise IndexError("Source for lvm copyset %s not defined: %s" % (self.getAttribute("name", "unknown"), ie)) try: __dest=self.getElement().getElementsByTagName('destination')[0] except IndexError, ie: raise IndexError("Destination for lvm copyset %s not defined: %s" % (self.getAttribute("name", "unknown"), ie)) # Factory constructs the right copyobject self.source=getCopyObject(__source, doc) self.addToUndoMap(VolumeGroup.__class__.__name__, "create", "remove") self.addToUndoMap(VolumeGroup.__class__.__name__, "activate", "deactivate") self.addToUndoMap(PhysicalVolume.__class__.__name__,"create", "remove") self.addToUndoMap(LogicalVolume.__class__.__name__,"create", "remove") # Factory constructs the right copyobject self.dest=getCopyObject(__dest, doc) # only copy the lvs from source if dest has no lvs # if (len(self.dest.getVolumeGroup().getLogicalVolumes()) == 0): # LVMCopyset.updateFromElement(self.dest, self.source) def doCopy(self): # do everything self.prepareSource() ComLog.getLogger(self.__logStrLevel__).debug("Updating metadata from %s" %(self.source))