Some build environments (e.g. Google Cloud Container Builder docker
images) don't have enough of a /dev filesystem to have
/dev/disk/by-uuid/ by default. Make them if they don't exist.
mountpoints. Without this having /tmp on separate partition results
in error as the permissions of /tmp are 0755. Setting them to 01777
fixes the setup.
This allows to build an image with qcow2 as a disk backend.
The update implements a new class that inherits from QEMUVolume and just
needs the extention and file format.
Enables the use of Logical Volumes as disk backends.
It uses an existing volume group and has no support for creating a new one.
It will not override an existing logical volume and fail gracefully.
The lv is created, activated and then mounted as a loop device.
The boostraping process is then launched on the loop device.
Once the process is completed, the lv is unmounted and desactivated.
The created lv will be deleted should the boostraping process fail.
The lv must be activated before use.
A manifest has been included for testing purposes.
Only tasks from the loaded provider and plugins were
considered, when creating the task graph.
This was a problem with the prebootstrapped plugin
specifically, which could be used with both ec2 and
vbox.
Fixed the problem by loading all known plugins and
providers and adding them to the taskgraph, nothing
less will do.
Up until now I didn't see the point of using spaces for indentation.
However, the previous commit (a18bec3) was quite eye opening.
Given that python is an indentation aware language, the amount of
mistakes that went unnoticed because tabs and spaces were used
at the same time (tabs for indentation and spaces for alignment)
were unacceptable.
E101,W191 have been re-enable in the tox flake8 checker and
the documentation has been modified accordingly.
The following files have been left as-is:
* bootstrapvz/common/assets/extlinux/extlinux.conf
* bootstrapvz/common/assets/init.d/expand-root
* bootstrapvz/common/assets/init.d/generate-ssh-hostkeys
* bootstrapvz/common/assets/init.d/squeeze/generate-ssh-hostkeys
* bootstrapvz/plugins/docker_daemon/assets/init.d/docker
* bootstrapvz/providers/ec2/assets/bin/growpart
* bootstrapvz/providers/ec2/assets/grub.d/40_custom
* bootstrapvz/providers/ec2/assets/init.d/ec2-get-credentials
* bootstrapvz/providers/ec2/assets/init.d/ec2-run-user-data
* docs/_static/taskoverview.coffee
* docs/_static/taskoverview.less
* tests/unit/subprocess.sh
This lets plugins define arbitrary datatypes for their configuration,
not only objects.
Also, `additionalProperties` was not specified, so entries with
arbitrary names could be added. This isn't the case anymore.
All provider specific settings have been moved to the
provider section. The image name itself is now located
at the top level and called "name". It is required for all providers.
Although it isn't yet deprecated by the wiki[1], the Debian mirrors HTTP
redirector names itself as `httpredir.debian.org`, even when accessed at
`http.debian.net`.
[1]: https://wiki.debian.org/DebianGeoMirror
Looks like we may or may not need to create those uuid links by
ourselves. This patch also adds a verification to not create/delete the
link if it already exists or not, respectively.