Comment 0 for bug 1427950

Revision history for this message
Scott Moser (smoser) wrote :

curtin can run in python3 or python2.
maas-images of 12.04 do not have python3.
maas-images of 15.04 do not have python-yaml (python2) future images might not have any python2.

right now maas invokes curtin thorugh cloud-init user-data. curtin packs itself into a self extracting executable, is transferred via user-data and invoked inside the image. Sending it through the user-data means that the maas server being updated is all that is necessary to deliver new curtin (rather than SRU to each release).

Right now, in vivid that means that curtin tries to run with python2 and thus fails to import yaml.

Basically curtin can't really depend on anything that isn't in ubuntu maas image (cloud-iamge derived). And, it doesn't get installed via apt.

A couple solutions here:
a.) a mechanism in curtin to run with python3 or python2, and just go on as is.
    on new cloud-images curtin will get the python3-yaml (a dependency of cloud-init) and in older versions it would run with python2. A '$python -m curtin.checkdeps' would be run as a way to determine which python to run,

b.) get python-yaml into maas images and use python2.

c.) allow curtin to 'apt-get install' its deps.
   note, this has the unfortunate dependency on doing that, and then having more io and network traffic and such during an install if the image doesn't contain python-yaml or other things.