OpenStack Compute (Nova)
Go to file
Chris Behrens 0fab78825e compute_api create*() and schedulers refactoring
Fixes bug 844160

Makes the servers create API call work with all schedulers, removes
'zone boot', and folds create_instance_helper back into servers
controller.

Notable changes:
1) compute API's create_at_all_once has been removed. It was only used
by zone boot.
2) compute API's create() no longer creates Instance DB entries. The
schedulers now do this. This makes sense, as only the schedulers will
know where the instances will be placed. They could be placed locally or
in a child zone. However, this comes at a cost. compute_api.create() now
does a 'call' to the scheduler instead of a 'cast' in most cases (* see
below). This is so it can receive the instance ID(s) that were created
back from the scheduler. Ultimately, we probably need to figure out a
way to generate UUIDs before scheduling and return only the information
we know about an instance before it is actually scheduled and created.
We could then revert this back to a cast. (Or maybe we always return a
reservation ID instead of an instance.)
3) scheduler* calls do not return a host now.  They return a value
that'll be returned if the caller does an rpc.call().  The casts to
hosts are now done by the scheduler drivers themselves.
4) There's been an undocumented feature in the OS API to allow multiple
instances to be built. I've kept it.
5) If compute_api.create() is creating multiple instances, only a single
call is made to the scheduler, vs the old way of sending many casts. All
schedulers now check how many instances have been requested.
6) I've added an undocumented option 'return_reservation_id' when
building. If set to True, only a reservation ID is returned to the API
caller, not the instance. This essentially gives you the old 'nova
zone-boot' functionality.
7) It was requested I create a stub for a zones extension, so you'll see
the empty extension in here. We'll move some code to it later.
8) Fixes an unrelated bug that merged into trunk recently where zones DB
calls were not being done with admin context always, anymore.
9) Scheduler calls were always done with admin context when they should
elevate only when needed.
10) Moved stub_network flag so individual tests can run again.

* Case #6 above doesn't wait for the scheduler response with instance
IDs. It does a 'cast' instead.

Change-Id: Ic040780a2e86d7330e225f14056dadbaa9fb3c7e
2011-09-27 05:32:24 +00:00
bin show swap in Mb in nova manage 2011-09-20 02:55:56 -07:00
bzrplugins/novalog PEP8 and pylint cleanup. There should be no functional changes here, just style changes to get violations down. 2010-10-21 11:49:51 -07:00
contrib add kombu to pip-requires and contrib/nova.sh 2011-08-30 13:55:06 -07:00
doc compute_api create*() and schedulers refactoring 2011-09-27 05:32:24 +00:00
etc/nova remove keystone 2011-09-20 15:17:03 -07:00
nova compute_api create*() and schedulers refactoring 2011-09-27 05:32:24 +00:00
plugins/xenserver Merge "Adds disk config" 2011-09-27 05:05:35 +00:00
po Last Diablo translations 2011-09-09 08:46:58 +02:00
smoketests Merge w/ trunk. 2011-08-16 08:41:52 -04:00
tools Merge "Don't use GitPython for authors check" 2011-09-23 17:38:21 +00:00
.bzrignore merge with trunk, resolve conflicts 2011-07-26 09:50:05 +04:00
.gitignore Move virtualenv installation out of the makefile. 2010-07-26 23:16:49 +02:00
.mailmap Fix bug 856664 overLimit errors now return 413 2011-09-23 13:41:34 -05:00
Authors Add rfc.sh to help with gerrit workflow. 2011-09-22 15:21:01 -07:00
builddeb.sh update copyrights 2010-07-15 01:28:51 -04:00
HACKING typo 2011-07-29 15:58:41 -04:00
LICENSE initial commit 2010-05-27 23:05:26 -07:00
MANIFEST.in Update MANIFEST.in to match directory moves from rev1559 2011-09-13 15:09:10 +02:00
pylintrc Don't warn about C0111 (No docstrings) 2011-03-16 15:28:09 -07:00
README Minor spellchecking fixes 2010-12-20 14:54:27 -06:00
run_tests.py only create the db if it doesn't exist, add an option -r to run_tests.py to delete it 2011-06-25 17:26:38 -07:00
run_tests.sh Fix outstanding pep8 errors for a clean trunk. 2011-09-23 10:26:22 -04:00
setup.cfg Added babel/gettext build support. 2011-01-10 11:26:38 -08:00
setup.py These fixes are the result of trolling the pylint violations here 2011-08-10 14:53:53 +00:00

The Choose Your Own Adventure README for Nova:

  You have come across a cloud computing fabric controller.  It has identified
  itself as "Nova."  It is apparent that it maintains compatibility with
  the popular Amazon EC2 and S3 APIs.

To monitor it from a distance: follow @novacc on twitter

To tame it for use in your own cloud: read http://nova.openstack.org/getting.started.html

To study its anatomy: read http://nova.openstack.org/architecture.html

To dissect it in detail: visit http://code.launchpad.net/nova

To taunt it with its weaknesses: use http://bugs.launchpad.net/nova

To watch it: http://hudson.openstack.org

To hack at it: read HACKING

To laugh at its PEP8 problems: http://hudson.openstack.org/job/nova-pep8/violations

To cry over its pylint problems: http://hudson.openstack.org/job/nova-pylint/violations