diff options
Diffstat (limited to 'util/cpt_upgraders/process-fdmap-rename.py')
-rw-r--r-- | util/cpt_upgraders/process-fdmap-rename.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/util/cpt_upgraders/process-fdmap-rename.py b/util/cpt_upgraders/process-fdmap-rename.py new file mode 100644 index 000000000..6bbbd5459 --- /dev/null +++ b/util/cpt_upgraders/process-fdmap-rename.py @@ -0,0 +1,32 @@ +# http://stackoverflow.com/questions/15069127/python-configparser-module-\ +# rename-a-section +def rename_section(cp, section_from, section_to): + items = cp.items(section_from) + cp.add_section(section_to) + for item in items: + cp.set(section_to, item[0], item[1]) + cp.remove_section(section_from) + +# Checkpoint version F renames an internal member of Process class. +def upgrader(cpt): + import re + for sec in cpt.sections(): + fdm = 'FdMap' + fde = 'FDEntry' + if re.match('.*\.%s.*' % fdm, sec): + rename = re.sub(fdm, fde, sec) + split = re.split(fde, rename) + + # rename the section and add the 'mode' field + rename_section(cpt, sec, rename) + cpt.set(rename, 'mode', "0") # no proper value to set :( + + # add in entries 257 to 1023 + if split[1] == "0": + for x in range(257, 1024): + seq = (split[0], fde, "%s" % x) + section = "".join(seq) + cpt.add_section(section) + cpt.set(section, 'fd', '-1') + +legacy_version = 15 |