Commit graph

116 commits

Author SHA1 Message Date
Anders Ingemann
3542406b91 Fix (de-)serialization 2015-04-16 22:15:17 +02:00
Anders Ingemann
2b33561b82 Don't kill SSH, ask callback server to stop instead of commtimeout 2015-04-16 22:15:17 +02:00
Anders Ingemann
a35ae91b67 Simplify? Hopefully... 2015-04-16 22:15:17 +02:00
Anders Ingemann
282e22c001 debugging 2015-04-16 22:15:17 +02:00
Anders Ingemann
569e1246a5 Deserialize manifest 2015-04-16 22:15:17 +02:00
Anders Ingemann
922cabe80a Serialize exception info by printing it 2015-04-16 22:15:17 +02:00
Anders Ingemann
150b15bb4f (g|s)etstate for manifest 2015-04-16 22:15:17 +02:00
Anders Ingemann
aa9616f4a6 Stop callback server last 2015-04-16 22:15:17 +02:00
Anders Ingemann
16837b38c2 Close thread on both ends! 2015-04-16 22:15:17 +02:00
Anders Ingemann
e271f3e49a Initial work on integration testing started.
The work consists of three parts:
* Allow for bootstrapping remotely,
  this makes it possible to run the tests
  on e.g. OSX with VirtualBox installed
* Make bootstrapping a fully automated process
  where the manifests can be generated by the tests
  and the tests can call the bootstrapper directly in python
* Create a framework wherein instances can be booted up
  using the bootstrapped images and subsequently tested
2015-04-16 22:15:17 +02:00
Anders Ingemann
d06fbb4a2d Turn on nazi option for sphinx and fix warnings 2015-04-11 16:40:44 +02:00
Jonh Wendell
1290694f9a Add the manifest "include-source-type" key for packages object
It controls whether to include the 'deb-src' lines in image's
source.list.

Currently they are always included. This patch changes this
behavior by not including them by default; the user must set
this new config to true in order to include them.

This saves a bit of bandwidth in default installations. Also,
the use of src packages is not so usual in ordinary installations.
2015-03-03 19:39:58 -03:00
Anders Ingemann
f48d392df8 Fix pep8 error 2015-02-22 16:44:58 +01:00
jbergler
57909eb9bc Allow mixed kernel/userspace architecture.
This is to allow building an image for a 64bit machine but with 32bit userspace.

Probably not a common usecase but ideal if you need to address more higher quantities of memory but cant migrate to a full 64bit userspace due to something like ruby eating twice as much memory.
2014-11-20 17:23:28 +00:00
Filipe Brandenburger
1fe10207b8 Check the value of the --color argument
Make sure it's either `auto' (the default), `always' or `never'. If it
does not match any of the values, raise a Docopt exception that causes
it to print usage and exit.

Tested:
- $ sudo ./bootstrap-vz --color=invalid manifests/gce.manifest.yml
  Value of --color must be one of auto, always or never.
  Usage: bootstrap-vz [options] MANIFEST

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-24 10:52:08 -07:00
Filipe Brandenburger
84cf497c66 Support --color option to indicate whether to use colors in the terminal
Mimic the behavior of the --color=<auto|always|never> found in tools
like `ls' and `grep'. Default to `auto' which checks whether stderr is a
tty to define whether colors are used.

Tested:
- Ran ./boostrap-vz --color=never and --color=always, confirmed
  colorization worked as expected.
- Ran ./boostrap-vz --color=auto ${manifest_file} 2>bootstrap.log,
  confirmed colors were not added to boostrap.log by default, repeated
  the test with --color=always and confirmed escape sequences were
  output.

Signed-off-by: Filipe Brandenburger <filbranden@google.com>
2014-08-22 11:46:19 -07:00
Anders Ingemann
cca31b642f Add documentation for the run() function.
Also: Move the return statement in run() to the bottom
2014-07-09 23:31:16 +02:00
Anders Ingemann
0cc26d82d0 Allow passing data into the manifest.
This makes it possible to create dynamically created manifests
2014-07-09 23:17:05 +02:00
Anders Ingemann
7fe9c1ba36 Refactor logging setup to be more modular 2014-07-09 23:17:05 +02:00
Anders Ingemann
1dc9ae18db Do a basic validation of the manifest before accessing it.
This prevents cryptic error messages
2014-07-09 23:17:05 +02:00
Anders Ingemann
34bb45bb00 Factor release codename fetching out into common.tools
This allows code that runs before the bootstrapinformation object has been created
to also figure out the release codename
2014-07-09 23:17:05 +02:00
Anders Ingemann
03a0746299 Convert every JSON file to YAML
Lines removed: over 500. Readiblity gained: A shitload
Now you can actually get an overview of a manifest on a single screen height.
I am sure that it will also save a lot of hassle when modifying schema in the future.
No more "expected property name" etc. because of an extraneous comma
Comments are of course natively support, so there's no need for this minify_json hokey pokey
2014-07-09 23:17:04 +02:00
Anders Ingemann
ebba39f59b Convert "provider" into provider specific section
This is where all provider specific settings belong
like waagent on azure, guest additions iso path on vbox and virtualization type on ec2
2014-07-09 23:17:04 +02:00
Tomasz Rybak
869d7d770c Return information about created image. 2014-06-30 20:02:50 +02:00
Tiago Ilieve
a9a5be7717 Allow stable/oldstable on manifest
This closes #94.
2014-06-19 14:53:23 -03:00
Anders Ingemann
02c683120a Refactor tasklist for easier integration by taskoverview 2014-05-10 17:28:31 +02:00
Anders Ingemann
07dc9ec2a9 Don't allow target in include/exclude_packages
Fix indentation in schema
2014-05-08 22:20:48 +02:00
Anders Ingemann
2cf6e8cbbd Merge pull request #82 from dbalan/expose_debootstrap_include
Expose debootstrap include/exclude in manifest.
2014-05-08 22:14:21 +02:00
Anders Ingemann
ee3fe0bf42 Convert param docs into parseable format. 2014-05-04 19:31:53 +02:00
Anders Ingemann
3cc84c95e8 Silly me, putting things where they don't belong 2014-05-04 19:09:34 +02:00
Dhananjay Balan
2982bfc629 Expose debootstrap include/exclude in manifest.
This is useful in many cases in which the next steps of bootstrapping the image depends on the packages, for e.g to use a non-conventional repository transports like https.
2014-05-04 22:12:03 +05:30
Anders Ingemann
2ebacf6a3a Fix MBR offset and add some comments to explain 2014-05-04 13:41:16 +02:00
Anders Ingemann
a9558a729a Make the gpt_offset fiddling easier to understand 2014-05-04 13:41:16 +02:00
Anders Ingemann
f3d633780f Use string concatenation instead of format()
String concatenation can at times be easier to read that format().
One should choose whichever approach is more readable.
2014-05-04 13:41:15 +02:00
Anders Ingemann
b25e607388 Move "sections" setting into "packages" section.
Rename it to "components", which is the real name for it (see http://manpages.debian.org/cgi-bin/man.cgi?query=sources.list).
2014-05-03 21:57:12 +02:00
Anders Ingemann
7958950d19 Generalize "grub only on partitioned volumes" err
(move it into base manifest validation)
2014-05-03 16:13:49 +02:00
Anders Ingemann
0a2cd86b4b Add get_standard_rollback_tasks()
This simplifies the the providser rollback_tasks fn considerably
2014-05-03 16:13:49 +02:00
Tomasz Rybak
b327823261 Add Google Cloud Engine (GCE) provider:
* force kpartx to use synchronous mode, removing sleep(10)
 * get image configuration, use it during tarball creation and registration
 * add (non-working, path problems) image registration
 * add cleaning of image from Google keys and repositories
 * add NTP server address in manifest
 * add preference for backport kernels in manifest
 * disable IPv6
 * correctly set host name
2014-05-03 14:25:54 +02:00
Tiago Ilieve
47997b4b13 PEP8 fixes 2014-04-27 11:05:53 -03:00
Tiago Ilieve
18fce45d91 Move hostname setting from vagrant into common
This closes #19.
2014-04-13 21:18:02 -03:00
Anders Ingemann
3b23ccf92c Don't use DictClass for provider namespaces
It's a hack only for the manifest vars and shouldn't be used for anything else
2014-04-10 00:20:35 +02:00
Anders Ingemann
8ded026f5b Use importlib to import providers and plugins 2014-04-08 21:58:48 +02:00
Anders Ingemann
1e14a9105a Add provider & plugin namespace to bootstrap info 2014-04-08 21:58:48 +02:00
Anders Ingemann
2017806d1f Switch to docopt for options parsing
Add option to not log to any file.
2014-04-08 21:26:15 +02:00
Anders Ingemann
b04fbf2323 Factor manifest_vars population into separate fn 2014-04-08 21:26:15 +02:00
Anders Ingemann
71b28af3bd Merge branch 'master' into development 2014-04-08 20:03:26 +02:00
Rory Finnegan
df6f190a6a Fixed import style. 2014-04-08 14:45:12 +00:00
Rory Finnegan
4b5c2d8c5f Added YAML config support.
- Manifest format parsing is now checked by the file extension ie: .json, .yml or .yaml.
- load_yaml in common/tools is the same as the json version.
- schema checking of manifest still passes (and fails appropriately) like the json manifests.
- I've also included a sample yaml config based off of the debian test json manifest.
2014-04-08 14:45:12 +00:00
Anders Ingemann
6cafdbee14 Merge pull request #33 from JamesBromberger/master
Manifest, deb Descurity in apt sources.list
2014-04-08 15:37:52 +02:00
Anders Ingemann
cf4a414c59 When detaching unset single partition dev_path 2014-04-07 21:52:26 +02:00