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))