def dumpXml(self, data, response, args): new_schema = ReportReader(data) old_schema = ReportReader(None, os.path.join(utils.DHOME_DIR, "%s.xml" % args)) ret = old_schema.checkDiff(new_schema) if ret == 0: print "NO_UPDATE" elif ret == 1: print "UPDATE" elif ret == 2: print "UNSECURE_UPDATE" elif ret == 3: print "IMPOSSIBLE" print "LOCAL version: %s" % self.getVersion(old_schema) print "REMOTE version: %s" % self.getVersion(new_schema) self.updateProgram(args)
def populateProgramIter(self, data, response, index): #TODO: unlock interface it = self.getIterFromIndex(index) model = self.tree.get_model() #print response.status, data if data == None or response.status != 200: self.reportError(data, response, index, STEP_PROGRAM) #self.status.push(0, _("Errore durante lo scaricamento della lista dei file(HTTP %d)") % response.status) model.set_value(it, COL_COLO, self.color_error) return #try: # TODO: in pratica qui dovremmo leggere la revisione e piazzarla nella colonna # infatti suggerisco di modificare il nome delle colonne eliminando la col per l'md5 # e inserirne solo 2 una per la revision nuova e una per la vecchia # NOTA: una sola colonna contenente revision tipo 1.2-r2 new_schema = ReportReader(data) old_schema = ReportReader(None, os.path.join(utils.DHOME_DIR, "pyacqua.xml")) a = (new_schema.get("mainversion"), new_schema.get("secondversion"), new_schema.get("revision")) model.set_value(it, COL_NREV, self.versionize(a)) ret = old_schema.checkDiff(new_schema) if ret == 0: # messaggio nessun aggiornamento disponibile ecc... utils.info(_("Nessun aggiornamento disponibile")) if ret == 1: # versioni compatibili possiamo aggiornare self.__checkFileToUpdate(new_schema) if ret == 2: # TODO: Una choice .. # come una clean install utils.warning(_("Le versioni sono potenzialmente compatibili\nma _NON_ viene garantito il perfetto aggiornamento")) pass if ret == 3: utils.error(_("Versioni incompatibili per procedere con l'aggiornamento")) pass #except: # self.status.push(0, _("Impossibile interpretare il file xml")) # return self.update_btn.set_sensitive(True)