Ticket #469: bcfg-admin.diff

File bcfg-admin.diff, 1.2 KB (added by desai, 16 years ago)
  • src/sbin/bcfg2-admin

     
    33 
    44import getopt, difflib, logging, lxml.etree, os, popen2, re, socket, sys, ConfigParser 
    55import Bcfg2.Server.Core, Bcfg2.Logging, Bcfg2.tlslite.api 
    6 import xml.sax.saxutils 
     6import xml.sax.saxutils, binascii 
    77 
    88log = logging.getLogger('bcfg-admin') 
    99 
     
    313313    if not entry: 
    314314        err_exit("Could not find state data for entry; rerun bcfg2 on client system") 
    315315 
    316     diff = entry[0].get('current_diff') 
     316    if 'current_bdiff' in entry[0].attrib: 
     317        diff = binascii.a2b_base64(entry[0].get('current_bdiff')) 
     318    else: 
     319        diff = entry[0].get('current_diff') 
    317320 
    318321    try: 
    319322        bcore = Bcfg2.Server.Core.Core({}, cfile) 
     
    331334        err_exit("Got wrong numbers of matching generators for entry:" \ 
    332335                 + "%s" % ([g.__name__ for g in glist])) 
    333336    plugin = glist[0] 
     337    if diff == None: 
     338        err_exit("Failed to locate diff\nStatistics entry was:\n%s" % lxml.etree.tostring(entry[0])) 
    334339    try: 
    335340        plugin.AcceptEntry(m, 'ConfigFile', ename, diff) 
    336341    except Bcfg2.Server.Plugin.PluginExecutionError: