summaryrefslogtreecommitdiffstats
path: root/src/virtBootstrap/utils.py
Commit message (Collapse)AuthorAgeFilesLines
* Use explicit importRadostin Stoyanov2017-08-031-8/+24
| | | | | Reduce the number of import statements and improve readability. Update the unit tests to match these changes.
* sources: Set default format with a constantRadostin Stoyanov2017-08-031-0/+2
|
* Add support for setting root passowrd in qcow2Radostin Stoyanov2017-07-241-1/+25
| | | | | For containers bootstrapped in qcow2 format use the tool 'virt-edit' to insert the hashed root password in the shadow file of the last layer
* Drop need of root privileges to set root passwordRadostin Stoyanov2017-07-211-0/+33
| | | | | | | | | | | | | | These changes aim to avoid the requirement for root privileges when setting the password of root user on root file system. The "-R, --root" flag of chpasswd is using chroot to apply changes in root file system and this requires root privileges. [1] Instead compute hash of the root password using passlib [2] and insert the value in the /etc/shadow file in the rootfs. [1] https://en.wikipedia.org/wiki/Chroot#Limitations [2] http://passlib.readthedocs.io/en/stable/lib/passlib.hosts.html
* DockerSource: Add support for Manifest version 1Radostin Stoyanov2017-07-211-2/+5
| | | | | | | | | | | | | | | | Handle differences between version 1 and 2 of the Manifest file for Docker registry. Layers' blob sums in v1 are stored in a list "fsLayers" and the digest is stored in following filed with name "blobSum". [1] In v2 the layer list is stored in field with name "layers" and ordered starting from the base image (opposite order of v1). The digest is stored under a following field with name "digest". The size in bytes is included in a field with name "size". [2] [1] https://docs.docker.com/registry/spec/manifest-v2-1/#manifest-field-descriptions [2] https://docs.docker.com/registry/spec/manifest-v2-2/#image-manifest-field-descriptions
* Python 3/2 compatibility: Convert Byte-str to StrRadostin Stoyanov2017-07-211-7/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Encoded Unicode in Python 3 is represented as binary data. The difference with Python2 is that any attempt to mix text and data in Python 3.0 raises TypeError, whereas if you were to mix Unicode and 8-bit strings in Python 2.x, it would work if the 8-bit string happened to contain only 7-bit (ASCII) bytes, but you would get UnicodeDecodeError if it contained non-ASCII values. Reference: https://docs.python.org/release/3.0.1/whatsnew/3.0.html#text-vs-data-instead-of-unicode-vs-8-bit Example: Python 2: >>> b'foo.bar'.split('.') ['foo', 'bar'] Python 3: >>> b'foo.bar'.split('.') Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: a bytes-like object is required, not 'str' >>> b'foo.bar'.split(b'.') [b'foo', b'bar']
* utils: bytes_to_size remove trailing spaceRadostin Stoyanov2017-07-181-1/+1
| | | | | Remove traling space which occurs when the number is smaller than kibibyte.
* utils: size_to_bytes convert from intRadostin Stoyanov2017-07-181-2/+2
| | | | | | | | | | | | When converting 0 KB with string input the result will be string with zeroes. >>> print(size_to_bytes('0', 'KB')) 000000... Instead convert the string input to integer and then perform the conversion. Rename the variable from "string" to "number" to avoid confusion.
* Rename format_number() into bytes_to_size()Cédric Bosdonnat2017-07-051-2/+2
| | | | rename the function to match its counterpart size_to_bytes().
* Gather common utility functions in "utils" moduleRadostin Stoyanov2017-07-051-0/+346
Add new module to collect utility functions used in virt-bootstrap. Move the function definitions from "sources" and "virt_bootstrap" to the new module.