Commit graph

92 commits

Author SHA1 Message Date
Anders Ingemann
9a50cea204 Add 1 sector gap between partitions on GPT 2015-04-16 22:21:44 +02:00
Anders Ingemann
4d74c72d99 Simplify GPT a little by explicitly taking care of the GPT primary & secondary
Do the math for the GPT offset a little differently
2015-04-16 22:21:44 +02:00
Anders Ingemann
016fef606f Account for PartitioGap in a few more places 2015-04-16 22:21:44 +02:00
Anders Ingemann
31b9cb5caa The dmsetup function still divided self.size by 512, which is not necessary any longer since we are calculating in actual sectors now 2015-04-16 22:21:43 +02:00
Anders Ingemann
ac7e32d35e Preserve stacktraces when reraising exceptions 2015-04-16 22:21:43 +02:00
Anders Ingemann
16eaade09a Fix sectors/bytes type problem with single partition 2015-04-16 22:21:42 +02:00
Anders Ingemann
a476248ed6 Partition volumes by sectors instead of bytes
This allows for finer grained control over the partition sizes and gaps
2015-04-16 22:21:13 +02:00
Anders Ingemann
e8d6e7f602 factor AbstractPartition.Mount out into separate module and make it serializable 2015-04-16 22:15:20 +02:00
Anders Ingemann
e9137ac172 Make serialization a lot more easy to handle 2015-04-16 22:15:20 +02:00
Anders Ingemann
ab18516f79 Support SIGINT over the network 2015-04-16 22:15:20 +02:00
Anders Ingemann
2b6fefd789 Fix serialization of exceptions 2015-04-16 22:15:20 +02:00
Anders Ingemann
056d279b65 Read import in base.__init__ 2015-04-16 22:15:19 +02:00
Anders Ingemann
bc8967529d Move remote log stuff back into remote module 2015-04-16 22:15:19 +02:00
Anders Ingemann
909e5cee46 Put remote module into pkg root 2015-04-16 22:15:19 +02:00
Anders Ingemann
209651ef38 Dry run working in tests 2015-04-16 22:15:19 +02:00
Anders Ingemann
a7a3161d66 Require Pyro4 >= 4.30 2015-04-16 22:15:19 +02:00
Anders Ingemann
c5bc45218e Fix documentation 2015-04-16 22:15:19 +02:00
Anders Ingemann
65b9e10ce3 VirtualBox integration 2015-04-16 22:15:19 +02:00
Anders Ingemann
31c453070f Add log source to log messages 2015-04-16 22:15:18 +02:00
Anders Ingemann
0f4c08e51d Refactor, logging, comments 2015-04-16 22:15:18 +02:00
Anders Ingemann
08976ffe07 Remove unused import 2015-04-16 22:15:18 +02:00
Anders Ingemann
1ddc0fbc32 Add comment about random ports 2015-04-16 22:15:18 +02:00
Anders Ingemann
f8d79f06e3 More graceful CallbackServer shutdown 2015-04-16 22:15:18 +02:00
Anders Ingemann
d88d73c7f1 Allow listening on different ports on remote and local 2015-04-16 22:15:18 +02:00
Anders Ingemann
fd07954764 Remove manual deserialization 2015-04-16 22:15:18 +02:00
Anders Ingemann
ed222d579f Little refactor 2015-04-16 22:15:17 +02:00
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