Ticket #549: unicode_supportv2.diff
File unicode_supportv2.diff, 11.7 KB (added by [email protected]…, 15 years ago) |
---|
-
src/lib/Server/Plugins/Cfg.py
79 79 if entry.get('encoding') == 'base64': 80 80 entry.text = binascii.b2a_base64(data) 81 81 else: 82 entry.text = data82 entry.text = unicode(data, "utf-8") 83 83 if entry.text in ['', None]: 84 84 entry.set('empty', 'true') 85 85 -
src/lib/Server/Plugins/TGenshi.py
52 52 name=fname, metadata=metadata, path=self.name, 53 53 properties=self.properties).filter(removecomment) 54 54 if isinstance(self.template, TextTemplate): 55 entry.text = stream.render('text') 55 textdata = stream.render('text') 56 if type(textdata) == unicode: 57 entry.text = textdata 58 else: 59 entry.text = unicode(textdata, 'UTF-8') 56 60 else: 57 entry.text = stream.render('xml') 61 xmldata = stream.render('xml') 62 if type(xmldata) == unicode: 63 entry.text = xmldata 64 else: 65 entry.text = unicode(xmldata, 'UTF-8') 58 66 except TemplateError, terror: 59 67 logger.error('Genshi template error: %s' % terror) 60 68 raise Bcfg2.Server.Plugin.PluginExecutionError -
src/lib/Server/Plugins/Metadata.py
267 267 except IOError: 268 268 self.logger.error("Failed to write clients.xml") 269 269 raise MetadataRuntimeError 270 datafile.write(lxml.etree.tostring(self.clientdata.getroot() ))270 datafile.write(lxml.etree.tostring(self.clientdata.getroot(), encoding='UTF-8', xml_declaration=True)) 271 271 datafile.close() 272 272 273 273 def write_probedata(self): … … 281 281 value=self.probedata[client][probe]) 282 282 for group in self.cgroups[client]: 283 283 lxml.etree.SubElement(cx, "Group", name=group) 284 data = lxml.etree.tostring(top )284 data = lxml.etree.tostring(top, encoding='UTF-8', xml_declaration=True) 285 285 try: 286 286 datafile = open("%s/%s" % (self.data, 'probed.xml'), 'w') 287 287 except IOError: -
src/lib/Server/Plugins/TCheetah.py
34 34 self.template.path = entry.get('realname', entry.get('name')) 35 35 36 36 try: 37 entry.text = str(self.template)37 entry.text = unicode(str(self.template),'UTF-8') 38 38 except: 39 39 (a, b, c) = sys.exc_info() 40 40 msg = traceback.format_exception(a, b, c, limit=2)[-1][:-1] -
src/lib/Server/Statistics.py
28 28 except IOError, ioerr: 29 29 self.logger.error("Failed to open %s for writing: %s" % (self.filename + '.new', ioerr)) 30 30 else: 31 fout.write(lxml.etree.tostring(self.element ))31 fout.write(lxml.etree.tostring(self.element, encoding='UTF-8', xml_declaration=True)) 32 32 fout.close() 33 33 os.rename(self.filename + '.new', self.filename) 34 34 self.dirty = 0 -
src/lib/Server/Admin/Pull.py
70 70 new_entry['text'] = '\n'.join(difflib.restore(diff.split('\n'), 1)) 71 71 else: 72 72 print "found no data::" 73 print lxml.etree.tostring(cfentry )73 print lxml.etree.tostring(cfentry, encoding='UTF-8', xml_declaration=True) 74 74 raise SystemExit(1) 75 75 return new_entry 76 76 -
src/lib/Client/Tools/POSIX.py
320 320 self.logger.error("Cannot verify incomplete ConfigFile %s" % (entry.get('name'))) 321 321 return False 322 322 tempdata = entry.text 323 if type(tempdata) == unicode: 324 tempdata = tempdata.encode('UTF-8') 323 325 try: 324 326 content = open(entry.get('name')).read() 325 327 except IOError, error: 326 328 self.logger.error("Failed to read %s: %s" % (error.filename, error.strerror)) 327 329 return False 330 # comparaison should be done with figerprints or md5sum so it would be faster 331 # for big binary files 328 332 contentStatus = content == tempdata 329 333 if not contentStatus: 330 334 if tbin or not isString(content): … … 348 352 break 349 353 if do_diff: 350 354 diff = '\n'.join(rawdiff) 351 entry.set("current_bdiff", binascii.b2a_base64(diff)) 355 # entry.set("current_bdiff", binascii.b2a_base64(diff)) 356 # entry.set("current_diff", diff) 352 357 udiff = '\n'.join([x for x in \ 353 358 difflib.unified_diff(content.split('\n'), \ 354 359 tempdata.split('\n'))]) … … 356 361 eudiff = udiff.encode('ascii') 357 362 except: 358 363 eudiff = "Binary file: no diff printed" 364 359 365 nqtext = entry.get('qtext', '') 360 366 361 367 if nqtext: … … 417 423 elif entry.get('empty', 'false') == 'true': 418 424 filedata = '' 419 425 else: 420 filedata = entry.text 426 if type(entry.text) == unicode: 427 filedata = entry.text.encode('UTF-8') 428 else: 429 filedata = entry.text 421 430 newfile.write(filedata) 422 431 newfile.close() 423 432 try: -
src/sbin/bcfg2-ping-sweep
63 63 elm.set("pingable",'N') 64 64 65 65 fout = open(clientdatapath, 'w') 66 fout.write(lxml.etree.tostring(clientElement.getroot() ))66 fout.write(lxml.etree.tostring(clientElement.getroot(), encoding='UTF-8', xml_declaration=True)) 67 67 fout.close() 68 68 -
src/sbin/bcfg2
244 244 if len(probes.findall(".//probe")) > 0: 245 245 try: 246 246 # upload probe responses 247 proxy.RecvProbeData(Bcfg2.Client.XML.tostring(probedata ))247 proxy.RecvProbeData(Bcfg2.Client.XML.tostring(probedata, encoding='UTF-8', xml_declaration=True)) 248 248 except: 249 249 self.logger.error("Failed to upload probe data", exc_info=1) 250 250 raise SystemExit(1) … … 293 293 feedback = self.tools.GenerateStats() 294 294 295 295 try: 296 proxy.RecvStats(Bcfg2.Client.XML.tostring(feedback ))296 proxy.RecvStats(Bcfg2.Client.XML.tostring(feedback, encoding='UTF-8', xml_declaration=True)) 297 297 except xmlrpclib.Fault: 298 298 self.logger.error("Failed to upload configuration statistics") 299 299 raise SystemExit(2) -
src/sbin/bcfg2-server
104 104 if isinstance(p, Bcfg2.Server.Plugin.ProbingPlugin)]: 105 105 for probe in plugin.GetProbes(meta): 106 106 resp.append(probe) 107 return tostring(resp )107 return tostring(resp, encoding='UTF-8', xml_declaration=True) 108 108 except Bcfg2.Server.Plugins.Metadata.MetadataConsistencyError: 109 109 warning = 'Client metadata resolution error for %s; check server log' % address[0] 110 110 self.logger.warning(warning) … … 158 158 '''Build config for a client''' 159 159 try: 160 160 client = self.Core.metadata.resolve_client(address) 161 return tostring(self.Core.BuildConfiguration(client) )161 return tostring(self.Core.BuildConfiguration(client), encoding='UTF-8', xml_declaration=True) 162 162 except Bcfg2.Server.Plugins.Metadata.MetadataConsistencyError: 163 163 self.logger.warning("Metadata consistency failure for %s" % (address)) 164 164 raise Fault, (6, "Metadata consistency failure") -
src/sbin/bcfg2-build-reports
100 100 for item in items: 101 101 channel.append(item) 102 102 103 tree = "<?xml version=\"1.0\"?>" + tostring(rssdata)103 tree = tostring(rssdata, encoding='UTF-8', xml_declaration=True) 104 104 fil.write(tree) 105 105 fil.close() 106 106 … … 249 249 250 250 #apply XSLT, different ones based on report type, and options 251 251 if deliverymechanism == 'null-operator': #Special Cases 252 fileout(tostring(ElementTree(procnodereport).getroot() ), deliv)252 fileout(tostring(ElementTree(procnodereport).getroot(), encoding='UTF-8', xml_declaration=True), deliv) 253 253 break 254 254 transform = delivtype + '-' + deliverymechanism + '.xsl' 255 255 … … 301 301 (toastring, socket.getfqdn(), outputstring) 302 302 mail(outputstring, c) #call function to send 303 303 else: 304 outputstring = tostring(stylesheet.apply(ElementTree(procnodereport)).getroot() )304 outputstring = tostring(stylesheet.apply(ElementTree(procnodereport)).getroot(), encoding='UTF-8', xml_declaration=True) 305 305 if deliverymechanism == 'rss': 306 306 rss(outputstring, deliv, reprt) 307 307 else: # must be deliverymechanism == 'www': -
src/sbin/bcfg2-info
97 97 if len(args.split()) == 2: 98 98 client, ofile = args.split() 99 99 output = open(ofile, 'w') 100 data = lxml.etree.tostring(self.BuildConfiguration(client) )100 data = lxml.etree.tostring(self.BuildConfiguration(client), encoding='UTF-8', xml_declaration=True) 101 101 output.write(data) 102 102 output.close() 103 103 else: … … 121 121 entry = lxml.etree.Element('ConfigFile', name=fname) 122 122 metadata = self.metadata.get_metadata(client) 123 123 self.Bind(entry, metadata) 124 print lxml.etree.tostring(entry )124 print lxml.etree.tostring(entry, encoding="UTF-8", xml_declaration=True) 125 125 else: 126 126 print 'Usage: buildfile filename hostname' 127 127