Skip to content

Reimplement kickstart parser

Ed Bartosh openembedded-core 1 version New

Get series with b4
b4 am [email protected]

Versions newest first

  1. v1 Latest9 patches 0 repliesNew

Patches in v1 No applies recorded yet

#Subject and filesSizeRepliesApplied
1/9wic: add partition modulescripts/lib/wic/partition.py+410 -00 replies
2/9wic: add kickstart parser modulescripts/lib/wic/kickstart.py+120 -00 replies
3/9wic: use new kickstart parserscripts/lib/wic/conf.py scripts/lib/wic/imager/direct.py+3 -30 replies
4/9wic: remove pykickstart codescripts/lib/wic/3rdparty/pykickstart/__init__.py scripts/lib/wic/3rdparty/pykickstart/base.py scripts/lib/wic/3rdparty/pykickstart/commands/__init__.py +16 more+0 -32640 replies
5/9wic: adjust code for new data structurescripts/lib/wic/imager/baseimager.py scripts/lib/wic/imager/direct.py scripts/lib/wic/plugins/source/bootimg-efi.py +1 more+12 -120 replies
6/9wic: get rid of get_timeout getterscripts/lib/wic/plugins/source/bootimg-efi.py scripts/lib/wic/plugins/source/bootimg-pcbios.py scripts/lib/wic/plugins/source/isoimage-isohybrid.py +1 more+16 -320 replies
7/9wic: get rid of get_rootfs and set_rootfsscripts/lib/wic/imager/direct.py scripts/lib/wic/plugins/source/isoimage-isohybrid.py scripts/lib/wic/plugins/source/rootfs.py +1 more+18 -180 replies
8/9wic: get rid of set_size and set_source_file settersscripts/lib/wic/plugins/source/bootimg-efi.py scripts/lib/wic/plugins/source/bootimg-pcbios.py scripts/lib/wic/plugins/source/isoimage-isohybrid.py+7 -70 replies
9/9wic: get rid of 2 gettersscripts/lib/wic/imager/direct.py scripts/lib/wic/plugins/source/bootimg-efi.py scripts/lib/wic/plugins/source/bootimg-pcbios.py+9 -80 replies

Reviews trailers per patch

No Reviewed-by, Acked-by or Tested-by trailers for v1 yet.

Read the v1 thread

Cover letter [wic][PATCH 0/9] Reimplement kickstart parser

Hi,

This patchset contains reimplementation of .ks file parser.
New parser code is much smaller (around 4K) than complex pykickstart parser from Fedora (around 170K). I hope it's much more clean and mainainable too.

Getting rid of dependency to pykickstart was in my TODO list since March 2015 when I first looked at wic codebase. When I started to work on #8848 (sharing a single Kickstart partition layout definition (.wks) between several images) I decided to implement new parser instead of tweaking complicated pykickstart condebase.

As as side effect of this work test coverage report for wic codebase looks shorter and coverage is increased from 58% to 63%:

Name Stmts Miss Branch BrMiss Cover
-------------------------------------------------------------------------------------

scripts/lib/wic/__init__                                3      0      0      0   100%
scripts/lib/wic/conf                                   45      4     12      5    84%
scripts/lib/wic/creator                                61     19     29     15    62%
scripts/lib/wic/engine                                102     61     56     44    34%
scripts/lib/wic/help                                   49      4     18      3    90%
scripts/lib/wic/imager/__init__                         0      0      0      0   100%
scripts/lib/wic/imager/baseimager                      73     15     26     10    75%
scripts/lib/wic/imager/direct                         171     25     79     24    80%
scripts/lib/wic/kickstart                              67     18     20     12    66%
scripts/lib/wic/msger                                 187    101     86     54    43%
scripts/lib/wic/partition                             199     95     50     36    47%
scripts/lib/wic/plugin                                 84      7     34      6    89%
scripts/lib/wic/pluginbase                             34      4     12      5    80%
scripts/lib/wic/plugins/imager/direct_plugin           36      3      4      1    90%
scripts/lib/wic/plugins/source/bootimg-efi            119     17     26     13    79%
scripts/lib/wic/plugins/source/bootimg-partition       56     45     24     24    14%
scripts/lib/wic/plugins/source/bootimg-pcbios         103      8     30     10    86%
scripts/lib/wic/plugins/source/fsimage                 22     13      6      6    32%
scripts/lib/wic/plugins/source/isoimage-isohybrid     294     95    107     67    60%
scripts/lib/wic/plugins/source/rawcopy                 31     22     10     10    22%
scripts/lib/wic/plugins/source/rootfs                  31     10     12      5    65%
scripts/lib/wic/plugins/source/rootfs_pcbios_ext       73     59     24     24    14%
scripts/lib/wic/utils/__init__                          0      0      0      0   100%
scripts/lib/wic/utils/errors                            8      0      0      0   100%
scripts/lib/wic/utils/fs_related                       41      9      6      3    74%
scripts/lib/wic/utils/misc                             41      4     24      9    80%
scripts/lib/wic/utils/oe/__init__                       0      0      0      0   100%
scripts/lib/wic/utils/oe/misc                         112     20     47     15    78%
scripts/lib/wic/utils/partitionedfs                   151     23     79     24    80%
scripts/lib/wic/utils/runner                           57     16     26     12    66%
scripts/lib/wic/utils/syslinux                         18     15     12     12    10%
scripts/wic                                           170     53     78     30    67%

-------------------------------------------------------------------------------------
TOTAL 2438 765 937 479 63%

The following changes since commit da43a56d3533db37592a1698777af08f51a5800f:

bitbake: Revert "fetch2/local.py: avoid using PREMIRROR" (2016-01-13 09:47:28 +0000)

are available in the git repository at:

git://git.yoctoproject.org/poky-contrib ed/wic/get-rid-of-ks-parser
http://git.yoctoproject.org/cgit.cgi/poky-contrib/log/?h=ed/wic/get-rid-of-ks-parser

Ed Bartosh (9):
wic: add partition module
wic: add kickstart parser module
wic: use new kickstart parser
wic: remove pykickstart code
wic: adjust code for new data structure
wic: get rid of get_timeout getter
wic: get rid of get_rootfs and set_rootfs
wic: get rid of set_size and set_source_file setters
wic: get rid of 2 getters

 scripts/lib/wic/3rdparty/pykickstart/__init__.py   |   0
 scripts/lib/wic/3rdparty/pykickstart/base.py       | 466 ----------------
 .../wic/3rdparty/pykickstart/commands/__init__.py  |  20 -
 .../3rdparty/pykickstart/commands/bootloader.py    | 216 -------
 .../wic/3rdparty/pykickstart/commands/partition.py | 314 -----------
 scripts/lib/wic/3rdparty/pykickstart/constants.py  |  57 --
 scripts/lib/wic/3rdparty/pykickstart/errors.py     | 103 ----
 .../wic/3rdparty/pykickstart/handlers/__init__.py  |   0
 .../wic/3rdparty/pykickstart/handlers/control.py   |  46 --
 .../lib/wic/3rdparty/pykickstart/handlers/f16.py   |  24 -
 scripts/lib/wic/3rdparty/pykickstart/ko.py         |  37 --
 scripts/lib/wic/3rdparty/pykickstart/options.py    | 223 --------
 scripts/lib/wic/3rdparty/pykickstart/parser.py     | 619 ---------------------
 scripts/lib/wic/3rdparty/pykickstart/sections.py   | 244 --------
 scripts/lib/wic/3rdparty/pykickstart/version.py    | 168 ------
 scripts/lib/wic/conf.py                            |   4 +-
 scripts/lib/wic/imager/baseimager.py               |   2 +-
 scripts/lib/wic/imager/direct.py                   |  26 +-
 scripts/lib/wic/kickstart.py                       | 120 ++++
 scripts/lib/wic/kickstart/__init__.py              | 129 -----
 .../lib/wic/kickstart/custom_commands/__init__.py  |   7 -
 .../lib/wic/kickstart/custom_commands/wicboot.py   |  65 ---
 .../{kickstart/custom_commands => }/partition.py   | 170 +-----
 scripts/lib/wic/plugins/source/bootimg-efi.py      |  28 +-
 scripts/lib/wic/plugins/source/bootimg-pcbios.py   |  24 +-
 .../lib/wic/plugins/source/isoimage-isohybrid.py   |  36 +-
 scripts/lib/wic/plugins/source/rootfs.py           |  14 +-
 .../lib/wic/plugins/source/rootfs_pcbios_ext.py    |  11 +-
 28 files changed, 212 insertions(+), 2961 deletions(-)
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/__init__.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/base.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/commands/__init__.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/commands/bootloader.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/commands/partition.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/constants.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/errors.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/handlers/__init__.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/handlers/control.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/handlers/f16.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/ko.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/options.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/parser.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/sections.py
 delete mode 100644 scripts/lib/wic/3rdparty/pykickstart/version.py
 create mode 100644 scripts/lib/wic/kickstart.py
 delete mode 100644 scripts/lib/wic/kickstart/__init__.py
 delete mode 100644 scripts/lib/wic/kickstart/custom_commands/__init__.py
 delete mode 100644 scripts/lib/wic/kickstart/custom_commands/wicboot.py
 rename scripts/lib/wic/{kickstart/custom_commands => }/partition.py (73%)

--
Regards,
Ed