Commit Graph

40 Commits

Author SHA1 Message Date
Ed Bartosh
7724e6fff7 wic: always read image partitions
Got rid of lazy evaluation of self.partitions property.
It's not needed because partitions of the source image should
be always read.

(From OE-Core rev: 1186fd8fd4a4789dc7c60feb86cc9fdd03fee7b3)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-27 22:30:07 +01:00
Ed Bartosh
cdef76e424 wic: implement 'wic write' command
This command writes image to the media or another file with
the possibility to expand partitions to fill free target space.

[YOCTO #11278]

(From OE-Core rev: ac5fc0d691aad66ac01a5cde34c331c928e9e25a)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-27 22:30:07 +01:00
Ed Bartosh
cee58f1d41 wic: extend list of used tools
Added sfdisk, e2fsck, mkswap, resize2fs, mkdosfs to the
list of used tools in Disk class. They're going to be used
in 'wic write' implementation.

Added dependency to util-linux to wic-tools to ensure that
sfdisk and mkswap are available from wic-tools native sysroot.

(From OE-Core rev: 1add68e4d6150e3038609d8ce7e3cff28fe8fbb8)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-27 22:30:07 +01:00
Ed Bartosh
bb1f418a61 wic: added 'fstypes' parameter to Disk.__init__
This parameter specifies list of supported filesystems.
So far only 'fat' is supported, but 'wic write' is going
to support at least 'fat', 'ext' and 'swap'.

(From OE-Core rev: 7cffcdcfdf4f8934d212740a6d7cf136911ebdac)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-27 22:30:07 +01:00
Ed Bartosh
0ad7e3d1ea wic: convert partition number to int
Converted partition number to int in order to use
it as an index in the list of partitions.

(From OE-Core rev: f901f23eb05cd6b86a49ef1b6ec7efaf72f6d685)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-27 22:30:07 +01:00
Ed Bartosh
60efc91d2b wic: get more info from the 'parted print' output
Got partition type and sector sizes from the output
of 'parted print'. This info may be used in the implementation
of 'wic write' command.

(From OE-Core rev: 5c0926d8efa468177b7cb43a5f06b35058255644)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-27 22:30:07 +01:00
Ed Bartosh
ff0bbdafa4 wic: reimplement getting paths of used tools
So far every used tool have to have separate property and
private attribute in the Disk class. This is too verbose,
considering that there will be much more tools used.

Reimplemented getting tools paths using custom __getattr__
method. This is much more compact and readable.

(From OE-Core rev: d1a831a9870bc31e936eb480485b28f1ffc13080)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-08-27 22:30:07 +01:00
Ed Bartosh
dd7e0ae43d wic: flatten directory structure
Moved misc.py from wic/utils/ to wic/
Removed wic/utils directory

(From OE-Core rev: df906f3caa0721756f5ed48fa657e62e05ae2aa3)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-23 11:44:12 +01:00
Ed Bartosh
6a8f4426b0 wic: implement removing directories
Added support for removing directories using mdeltree
utility to Disk.del method

[YOCTO #11283]

(From OE-Core rev: a5fc61d8f290d370f4bc51d4e2a67a5580edb1b1)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:18:29 +01:00
Ed Bartosh
c5fadce5f9 wic: implement removing files
Added implementation of Disk.del method and wic_r
function that removes files from the vfat partition
using mdel utility.

[YOCTO #11283]

(From OE-Core rev: 4abf2d2643c58322d96d63d5f3ffaf52d62c6792)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:18:29 +01:00
Ed Bartosh
c869c1d6b2 wic: add 'wic rm' command
Added empty 'wic rm' command that does nothing.
The functionality will be added by the next commits.

[YOCTO #11283]

(From OE-Core rev: f8e42c13609c482359fbdb225fb16a45101ae9ae)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:18:29 +01:00
Ed Bartosh
1a07d3502b wic: fully implement 'wic cp'
Added implementation of Disk.copy method and wic_cp
function that copies files/directories to the vfat partition
of the partitioned image.

[YOCTO #11283]

(From OE-Core rev: 416e4599960987f0ce31b3f16f3c6af0bf633a26)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:18:29 +01:00
Ed Bartosh
0a84187b86 wic: add Disk._put_part_image method
This method copies partition image into the wic image.
It will be used in 'wic cp' and 'wic rm' subcommands
to copy changed partition back into wic image.

(From OE-Core rev: 7a7e6635e2e2ddfff2bca58c860634b7a199b0df)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:18:29 +01:00
Ed Bartosh
1344400f1a wic: add mcopy property
Added property that points to the mcopy executable.

(From OE-Core rev: 05badb6427442388b9bea04c8b184a2ce92362ec)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:18:29 +01:00
Ed Bartosh
0165f40cbb wic: add Disk._prop helper
Added generic helper to use in property methods to
access commands in a lazy manner.

(From OE-Core rev: 4c1ded3ddbd04ad1640620ec1348831692a93dbe)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:18:29 +01:00
Ed Bartosh
ecefd3c55b wic: add 'wic cp' command
Added empty 'wic cp' command that does nothing.
The functionality will be added by the next commits.

[YOCTO #11283]

(From OE-Core rev: f0dcf39d52185430422cb0c94c7fe99c12764acd)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:18:29 +01:00
Ed Bartosh
6f1b89c224 engine: implement listing wic images
Implemented 'wic ls' functionality:
 - list image partitions
 - list directory content of vfat partitions

[YOCTO #11283]

(From OE-Core rev: 61667fabd5746caf773f73b3aeb2a04db13cba38)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:18:29 +01:00
Ed Bartosh
746351100e wic: add 'wic ls' command
Added empty 'wic ls' command that does nothing.
The functionality will be added by the next commits.

(From OE-Core rev: ba4613469cc2c3d3433be2e2f520f4fff6b3b333)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-06-14 10:18:29 +01:00
Andreas J. Reichel
05aa049e2c wic: Use argparse instead of optparse
* optparse is deprecated and will not be developed further
    (see: https://docs.python.org/2/library/optparse.html)
* argparse supports subcommands, which simplifies definition of
    arguments and options
* reimplement help mechanism through sub-subcommands

[YOCTO #9636]

(From OE-Core rev: 4fe9635c72a6ee1becc47d832ab54724176ee811)

Signed-off-by: Andreas Reichel <andreas.reichel.ext@siemens.com>
Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Daniel Wagner <daniel.wagner@siemens.com>
Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-05-23 17:45:35 +01:00
Ed Bartosh
0c0ed61992 wic: move PluginMgr class to pluginbase
As PluginMgr class contains only one method it's
better to move it to pluginbase to have all plugin
related APIs in one module.

(From OE-Core rev: 244585b369ecc0019002ca51bf7f8fd506234462)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-04 23:18:17 +00:00
Ed Bartosh
27e172c3b6 wic: remove PluginMgr.get_source_plugins
Used get_plugins('source') instead of get_source_plugins to
unify and simplify API to get plugins.

(From OE-Core rev: aaab003e472416124d7342fc8c4a17c252b83f4d)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-04 23:18:17 +00:00
Ed Bartosh
ec7b604b1e wic: use PluginMgr directly
Instead of making a singleton object of PluginMgr class
it's simpler to use PluginMgr class directly as any class
is a singleton.

(From OE-Core rev: cbe7dbd31f2292416d8e801e142679c69d9a44bc)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-04 23:18:17 +00:00
Ed Bartosh
f8a4bd9950 wic: move WicError to lib/wic/__init__.py
Removed unused exceptions from error.py
Moved definition of WicError to lib/wic/__init__.py

(From OE-Core rev: 15442d072bb6d93bd9b941726f93262503053da5)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-04 23:18:17 +00:00
Ed Bartosh
f5ae79da40 wic: raise WicError in core modules
Replaced sys.exit with raising WicError in the core wic modules.

(From OE-Core rev: 1b11437fb25ece5b3eede52344b071e875fa738f)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-04 23:18:17 +00:00
Ed Bartosh
28014087b8 wic: remove msger module
Removed custom logger module msger as it's replaced
by wic logger.

(From OE-Core rev: 8fdceeee99c3fc60649414b39933ec295c810e6b)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-04 23:18:16 +00:00
Ed Bartosh
fe2d602240 wic: use wic logger in core modules
Replaced msger with wic logger in the core wic modules.

(From OE-Core rev: cdd6675951b74075c9b9159f7465a88f83775bac)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-03-04 23:18:16 +00:00
Ed Bartosh
7cb17e3e9e wic: remove unused argument scripts_path
There is no need to pass scripts_path from main wic module
down the stack as it's not used there.

Removed scripts_path argument from DirectPlugin class
and wic_create function.

(From OE-Core rev: f9f72c506befdff13260f37ded0beaea3aa30fad)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-15 20:06:44 -08:00
Ed Bartosh
71ce8d09e0 wic: flatten imager class hierarchy
wic code is hard to follow due to deep and twiggy class
inheritance tree.

Flatten imager tree:
 wic -> wic_create -> Creator -> DirectPlugin -> DirectImageCreator
to
 wic -> wic_create -> DirectPlugin
by
 removing Creator class and creator module
 merging DirectImageCreator into DirectPlugin

Changed APIs to use the same parameters names.

Passed parsed command line options as an object down the stack.

(From OE-Core rev: 1e28d512341ce470c7afb256a01e597ab87170ca)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-05 09:22:17 +00:00
Ed Bartosh
81ef850314 wic: engine: create output dir
Make sure output directory exists before creating an image.
Create it if it doesn't exist.

(From OE-Core rev: e52bfb0e81d3fb2a474f08b2e2b8b89aadc61d14)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-02 17:37:45 +00:00
Ed Bartosh
653aaea3cc wic: code cleanup
Fixed indentation, unused imports, trailing lines etc.

[YOCTO #10619]

(From OE-Core rev: 5fa7768bfb4b6d464c6a812822b0665f52e7bea4)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-02 17:37:44 +00:00
Ed Bartosh
614851f1db wic: move oe/misc.py one level up
Flattened directory structure:
   moved wic/utils/oe/misc.py -> wic/utils/misc.py

[YOCTO #10619]

(From OE-Core rev: 392532a2748ff2e6412eeb79163662b5168611ce)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-02 17:37:44 +00:00
Ed Bartosh
2d6f96048e wic: move 2 APIs to wic.engine
Moved find_canned and get_custom_config APIs to engine module.
Removed empty wic.utils.misc module.

[YOCTO #10619]

(From OE-Core rev: 10e9afac46575d3f557b7cb505daa31ce9ce85fa)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2017-02-02 17:37:44 +00:00
Ed Bartosh
28c79d8aeb wic: look for wks files in <layer>/wic
Currently wic looks for wks files in
<layer dir>/scripts/lib/wic/canned-wks/ directories.
This path is too nested and doesn't look consistent with the
naming scheme of layer directories.

Added <layer>/wic directory to the list of paths
to look for wks files.

(From OE-Core rev: 803b5fa798cf7580c7c10401eb04a1cccf51b8ab)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-12-22 08:50:16 +00:00
Ed Bartosh
b5804498d6 wic: implement --bmap option
This option enables generation of <image>.bmap file for the
result image using native bmaptool.

[YOCTO #9413]

(From OE-Core rev: d64c7b37c40b052510419b4d6629b83319c833e4)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-19 09:05:19 +01:00
Ed Bartosh
0c57dd96c8 wic: replace print statements with print function
Print statements have been replaced with print function in
Python 3. Replaced them in wic code to be able to run it
under both Python 2 and Python 3.

[YOCTO #9412]

(From OE-Core rev: ee6979a19c77931c3cf6368e695e370d46192fef)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2016-05-14 23:05:13 +01:00
Ed Bartosh
791a3912d9 wic: fix short variable names
Made short variable names longer and more readable.

Fixed pylint warnings "Invalid variable name" and
"Invalid argument name".

(From OE-Core rev: 872cb0d5d79b26f34e6b35d7be8870d245021be4)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-03 12:43:31 +01:00
Ed Bartosh
14b47e22f9 wic: get rid of listing properties
Functionality of listing and using properties of wic images
does not exist in the wic code. However, there are plenty of
help and usage content about it, which is very confusing.

Removed everything regarding image properties from wic codebase.

(From OE-Core rev: af0a6d547a5a3efefdd4900f7079dfd10b85342d)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-03 12:43:30 +01:00
Ed Bartosh
1561970e88 wic: fix pylint warning redefined-builtin
Renamed variables named as Python builtin functions.

(From OE-Core rev: bed98142e3e47ac2862ccf8fe3e4bdeabfc91172)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-03 12:43:30 +01:00
Ed Bartosh
e7287e5157 wic: fix pylint warning unused-variable
Removed or reworked code with unused variables.

(From OE-Core rev: 3644b9f5ca25dfc61d4f5eda0f073c8a879b492b)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-03 12:43:29 +01:00
Ed Bartosh
7d4bb40905 wic: get rid of scripts/lib/image
Moved content of scripts/lib/image/ to scripts/lib/wic as
one directory with the same name as a tool is self-explanatory
and less confusing than two.

(From OE-Core rev: 5dc02d572794298b3362378cea3d7da654456c44)

Signed-off-by: Ed Bartosh <ed.bartosh@linux.intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
2015-09-03 12:43:25 +01:00