def synchronizeListWithRepository(self, list):
        Repository.synchronizeListWithRepository(self, list)
        console.write("update: " + list.repository + '\n')
        console.write("loading ")
        localRevision = int(list.getRevision())
        if self.__pluginsXml == None:
            self.__getPluginsList()
        pluginsElement = self.__pluginsXml.getElementsByTagName("PLUGINS")
        remoteRevision = int(pluginsElement[0].getAttribute("revision"))
        console.write(". ")
        if localRevision == remoteRevision:
            console.write("local list already updated.\n")
        if localRevision > remoteRevision:
            raise error.FatalError("Local plugins list corrupted!!")

        if localRevision < remoteRevision:
            list.resetToEmptyListFile( ` remoteRevision `)
            console.write(". ")

            pluginElements = self.__pluginsXml.getElementsByTagName("PLUGIN")
            plugins = [plugin.firstChild.data for plugin in pluginElements]

            console.write(". ")
            for plugin in plugins:
                url = self.url + "/src/" + plugin + "/plugin.xml"
                pluginXml = xml.dom.minidom.parse(urllib.urlopen(url))
                console.write(". ")
                element = pluginXml.getElementsByTagName("PLUGIN")
                pluginInfo = list.addPluginWithXml(element[0])
            list.synchronizeListWithFileSystem()
            console.write("DONE.\n")
    def synchronizeListWithRepository(self, list):
        Repository.synchronizeListWithRepository(self,list)
        console.write("update: "+ list.repository + '\n')
        console.write("loading ")
        localRevision = int(list.getRevision())
        if self.__pluginsXml == None:
            self.__getPluginsList()
        pluginsElement = self.__pluginsXml.getElementsByTagName("PLUGINS")
        remoteRevision = int(pluginsElement[0].getAttribute("revision"))
        console.write(". ")
        if localRevision == remoteRevision:
            console.write("local list already updated.\n")
        if localRevision > remoteRevision:
            raise error.FatalError("Local plugins list corrupted!!")
        
        if localRevision < remoteRevision:
            list.resetToEmptyListFile(`remoteRevision`)
            console.write(". ")
            
            pluginElements = self.__pluginsXml.getElementsByTagName("PLUGIN")
            plugins = [plugin.firstChild.data for plugin in pluginElements]

            console.write(". ")
            for plugin in plugins:
                url = self.url + "/src/" + plugin + "/plugin.xml"
                pluginXml =  xml.dom.minidom.parse(urllib.urlopen(url))
                console.write(". ")
                element = pluginXml.getElementsByTagName("PLUGIN")
                pluginInfo = list.addPluginWithXml(element[0])
            list.synchronizeListWithFileSystem()
            console.write("DONE.\n")
 def getPluginSource(self, list, plugin, dir):
     Repository.getPluginSource(self, list, plugin, dir)
     url = "%s/src/%s-%s-src.tar.gz" % (list.repository,
                                        plugin["name"][0]["value"],
                                        plugin["version"][0]["value"])
     filename = dir + "/%s-%s-src.tar.gz" % (plugin["name"][0]["value"],
                                             plugin["version"][0]["value"])
     return self.__getRemoteFile(url, filename)
 def getPluginBinary(self, list, plugin):
     Repository.getPluginBinary(self, list, plugin)
     url = "%s/pub/%s-%s-%s.tar.gz" % (
         list.repository, plugin["name"][0]["value"],
         plugin["version"][0]["value"], config.arch)
     filename = config.MYSERVER_PLUGIN_DIR + "/%s-%s-%s.tar.gz" % (
         plugin["name"][0]["value"], plugin["version"][0]["value"],
         config.arch)
     return self.__getRemoteFile(url, filename)
 def __init__(self, url):
     Repository.__init__(self, url)
     self.__pluginsXml = None
 def getPluginSource(self,list,plugin, dir):
     Repository.getPluginSource(self,list,plugin,dir)
     url ="%s/src/%s-%s-src.tar.gz" % (list.repository,plugin["name"][0]["value"],plugin["version"][0]["value"])
     filename = dir + "/%s-%s-src.tar.gz" % (plugin["name"][0]["value"],plugin["version"][0]["value"])
     return self.__getRemoteFile(url, filename)
     
 def getPluginBinary(self,list,plugin):
     Repository.getPluginBinary(self,list,plugin)
     url ="%s/pub/%s-%s-%s.tar.gz" % (list.repository,plugin["name"][0]["value"],plugin["version"][0]["value"],config.arch)
     filename = config.MYSERVER_PLUGIN_DIR + "/%s-%s-%s.tar.gz" % (plugin["name"][0]["value"],plugin["version"][0]["value"],config.arch)
     return self.__getRemoteFile(url, filename)
 def __init__ (self,url):
     Repository.__init__(self,url)
     self.__pluginsXml = None