Merge lp://qastaging/~vishvananda/nova/no-db-messaging into lp://qastaging/~hudson-openstack/nova/trunk
Status: | Work in progress |
---|---|
Proposed branch: | lp://qastaging/~vishvananda/nova/no-db-messaging |
Merge into: | lp://qastaging/~hudson-openstack/nova/trunk |
Prerequisite: | lp://qastaging/~termie/nova/rpc_multicall |
Diff against target: |
658 lines (+220/-143) 9 files modified
nova/context.py (+3/-3) nova/db/sqlalchemy/api.py (+1/-1) nova/db/sqlalchemy/models.py (+18/-5) nova/scheduler/manager.py (+7/-5) nova/tests/scheduler/test_scheduler.py (+32/-27) nova/tests/test_volume.py (+34/-18) nova/utils.py (+14/-1) nova/volume/api.py (+58/-23) nova/volume/manager.py (+53/-60) |
To merge this branch: | bzr merge lp://qastaging/~vishvananda/nova/no-db-messaging |
Related bugs: | |
Related blueprints: |
No DB Messaging
(High)
|
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Matt Dietz (community) | Needs Information | ||
Rick Harris (community) | Needs Fixing | ||
Dan Prince (community) | Abstain | ||
Review via email:
|
Description of the change
This is an initial proposal for feedback. This branch is an attempt to start on this blueprint:
https:/
which will allow for the implementation of this blueprint:
https:/
And will ultimately make it easy to replace our various services with external projects.
This prototype changes volume_create and volume_delete to pass data through the queue instead of writing information to the database and reading it on the other end. It attempts to make minimal changes. It includes:
* a small change to model code to allow for conversion into dicts
* scheduler uses muticall instead of cast
* volume.
* volume.manager returns updates instead of modifying the database directly
Please note that this is an initial proposal. It is based on some changes made by termie to allow the driver to return multiple times for a single call. It works to create volumes, but I haven't modified the tests to pass yet.
To Do:
* change the driver code so it doesn't store its extra data about volumes in the global db.
* fix the tests
* modify attach and detach to use the same methodology
I'm open to feedback about this approach. I tried a few other versions and this seems like the simplest change set to get what we want. If this looks good, I will modify the other volume commands to work the same way and propose a similar set of changes for compute.
Unmerged revisions
- 1123. By Vish Ishaya
-
merged trunk
- 1122. By Vish Ishaya
-
remove merge error calling failing test
- 1121. By Vish Ishaya
-
fix snapshot test
- 1120. By Vish Ishaya
-
return not yield in scheduler shortcut
- 1119. By Vish Ishaya
-
make sure to handle VolumeIsBusy
- 1118. By Vish Ishaya
-
merged trunk and removed conflicts
- 1117. By Vish Ishaya
-
lost some changes from rpc branch, bring them in manually
- 1116. By Vish Ishaya
-
use strtime for passing datetimes back and forth through the queue
- 1115. By Vish Ishaya
-
fix tests
- 1114. By Vish Ishaya
-
keep the database on the receiving end as well
Hey Vish,
I'm not able to boot any instances via the OS API w/ this branch. Looks to be related to the set_admin_password functionality which now polls for the compute host to be assigned:
(nova.api. openstack) : TRACE: File "/usr/lib/ pymodules/ python2. 6/nova/ compute/ api.py" , line 501, in _set_admin_password openstack) : TRACE: host = self._find_ host(context, instance_id) openstack) : TRACE: File "/usr/lib/ pymodules/ python2. 6/nova/ compute/ api.py" , line 497, in _find_host openstack) : TRACE: % instance_id) openstack) : TRACE: Error: Unable to find host for Instance 1 openstack) : TRACE:
(nova.api.
(nova.api.
(nova.api.
(nova.api.
(nova.api.