Commit graph

101 commits

Author SHA1 Message Date
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
Anders Ingemann
2c20b593b4 Remove load_json fn from manifest 2014-04-07 21:50:59 +02:00
Anders Ingemann
bd56e810b2 Fix check_ordering of succ. (it always succeeded) 2014-04-07 21:50:06 +02:00
Anders Ingemann
a0bc989459 Remove default argument (info={}) in tasklist.run 2014-04-07 21:49:52 +02:00
Anders Ingemann
bbea12599c Minor adjustments in pkg code 2014-04-07 21:49:07 +02:00
Anders Ingemann
801284cfec Unset unlinked_device_path after use 2014-04-07 21:48:25 +02:00
Anders Ingemann
0c4ba09958 Remove unused real_device_path 2014-04-07 21:48:03 +02:00
Anders Ingemann
bb680b28c5 Re-raise the catched exception after rollback 2014-04-07 21:47:05 +02:00
Anders Ingemann
ef1ab7692a Move import statement 2014-04-07 21:46:46 +02:00
Anders Ingemann
1371f639ac Move volume imports in fs/__init__ 2014-04-07 21:45:45 +02:00
James Bromberger
334ef9209b Merge remote-tracking branch 'upstream/master'
Conflicts:
	bootstrapvz/common/tasks/apt.py
2014-04-05 09:38:21 +00:00
Jan Brauer
8d399dade5 Add support for adding APT preferences 2014-04-04 12:22:46 +02:00
Anders Ingemann
33a430566b bootstrap-vz is now a proper python package
logs/ was remove. logs are now placed in /var/logs/bootstrap-vz instead
2014-04-02 23:25:50 +02:00
Anders Ingemann
bbb06d717e Properly fix imports and make bootstrapvz work like a package 2014-04-02 21:32:10 +02:00
Anders Ingemann
6d757d2598 relative imports fixed 2014-04-02 21:26:14 +02:00
Anders Ingemann
18dfefe560 Minor doc fixes 2014-04-02 21:26:14 +02:00