Merge lp://qastaging/~mcgrue/nova/volume-cleanup into lp://qastaging/~hudson-openstack/nova/trunk

Proposed by Ben McGraw
Status: Work in progress
Proposed branch: lp://qastaging/~mcgrue/nova/volume-cleanup
Merge into: lp://qastaging/~hudson-openstack/nova/trunk
Diff against target: 785 lines (+98/-364)
15 files modified
Authors (+1/-0)
bin/nova-manage (+2/-3)
doc/source/runnova/getting.started.rst (+0/-1)
nova/db/api.py (+1/-35)
nova/db/sqlalchemy/api.py (+0/-55)
nova/db/sqlalchemy/migrate_repo/versions/042_kill_export_devices.py (+51/-0)
nova/db/sqlalchemy/migration.py (+1/-1)
nova/db/sqlalchemy/models.py (+0/-16)
nova/exception.py (+0/-4)
nova/tests/fake_flags.py (+0/-4)
nova/tests/integrated/test_volumes.py (+5/-5)
nova/tests/test_volume.py (+2/-80)
nova/volume/driver.py (+28/-146)
nova/volume/manager.py (+7/-11)
nova/volume/san.py (+0/-3)
To merge this branch: bzr merge lp://qastaging/~mcgrue/nova/volume-cleanup
Reviewer Review Type Date Requested Status
Thierry Carrez (community) ffe Disapprove
Soren Hansen (community) Needs Fixing
Jay Pipes (community) Needs Information
Rick Harris (community) Needs Fixing
Review via email: mp+72109@code.qastaging.launchpad.net

Description of the change

Stage 1 of the AES removal / volume cleanup work.

To post a comment you must log in.
1455. By Dan Prince

Cleanup the '_base' directory in libvirt tests.

1456. By Tushar Patil

Accept binary user_data in radix-64 format when you launch a new server using OSAPI. This user_data would be stored along with the other server properties in the database. Once the VM instance boots you can query for the user-data to do any custom installation of applications/servers or do some specific job like setting up networking route table.

You can query for user-data using curl with the URL:-
curl http://169.254.169.254/latest/user-data

1457. By John Tran

Fixed bug in which DescribeInstances was returning deleted instances. Added tests for pertinent api methods.

1458. By Matt Dietz

Fixes lp828207

The Host API reboot action was broken due to addition of a parameter to a utility method in compute/api.py

Revision history for this message
Rick Harris (rconradharris) wrote :

Looks good, just a couple of small pep8 violations:

nova/db/sqlalchemy/migrate_repo/versions/037_kill_export_devices.py:38:1: E302 expected 2 blank lines, found 1
def downgrade(migrate_engine):
^
    Separate top-level function and class definitions with two blank lines.

    Method definitions inside a class are separated by a single blank line.

    Extra blank lines may be used (sparingly) to separate groups of related
    functions. Blank lines may be omitted between a bunch of related
    one-liners (e.g. a set of dummy implementations).

    Use blank lines in functions, sparingly, to indicate logical sections.

    Okay: def a():\n pass\n\n\ndef b():\n pass
    Okay: def a():\n pass\n\n\n# Foo\n# Bar\n\ndef b():\n pass

    E301: class Foo:\n b = 0\n def bar():\n pass
    E302: def a():\n pass\n\ndef b(n):\n pass
    E303: def a():\n pass\n\n\n\ndef b(n):\n pass
    E303: def a():\n\n\n\n pass
    E304: @decorator\n\ndef a():\n pass
nova/db/sqlalchemy/migrate_repo/versions/037_kill_export_devices.py:47:1: E302 expected 2 blank lines, found 1
def upgrade(migrate_engine):
^
    Separate top-level function and class definitions with two blank lines.

    Method definitions inside a class are separated by a single blank line.

    Extra blank lines may be used (sparingly) to separate groups of related
    functions. Blank lines may be omitted between a bunch of related
    one-liners (e.g. a set of dummy implementations).

    Use blank lines in functions, sparingly, to indicate logical sections.

    Okay: def a():\n pass\n\n\ndef b():\n pass
    Okay: def a():\n pass\n\n\n# Foo\n# Bar\n\ndef b():\n pass

    E301: class Foo:\n b = 0\n def bar():\n pass
    E302: def a():\n pass\n\ndef b(n):\n pass
    E303: def a():\n pass\n\n\n\ndef b(n):\n pass
    E303: def a():\n\n\n\n pass
    E304: @decorator\n\ndef a():\n pass

review: Needs Fixing
1459. By Rick Harris

Passes empty string instead of None to MySQLdb driver if the DB password isn't set.

1460. By Ed Leafe

Updated docs for the recent scheduler class changes.

Revision history for this message
Ben McGraw (mcgrue) wrote :

Sorry about that, Rick. Fixed as of revision 1361.

1461. By Alex Meade

Fixes issue where ServersXMLSerializer was missing a method for update actions

1462. By Vish Ishaya

Makes all of the binary services launch using the same strategy.
 * Removes helper methods from utils for loading flags and logging
 * Changes service.serve to use Launcher
 * Changes service.wait to actually wait for all the services to exit
 * Changes nova-api to explicitly load flags and logging and use service.serve
 * Fixes the annoying IOError when /etc/nova/nova.conf doesn't exist

1463. By Josh Kearney

Currently, rescue/unrescue is only available over the admin API. Non-admin tenants also need to be able to access this functionality. This patch adds rescue functionality over an API extension.

1464. By dan wendlandt

Bugfix for lp 828429. Its still not clear to me exactly how this code path is actually invoked when nova is used, so I'm looking for input on whether we should be adding a test case for this, removing the code as unused, etc. Thanks.

1465. By Ryu Ishimoto

Added uuid column in virtual_interfaces table, and an OpenStack extension API for virtual interfaces to expose these IDs. Also set this UUID as one of the external IDs in the OVS vif driver.

1466. By Ed Leafe

Removes the incorrect hard-coded filter path.

1467. By Vish Ishaya

Next round of prep for keystone integration.

 * adds middleware for authenticating ec2 signature with keystone
 * adds middleware for converting keystone response into request context
 * gives examples of alternative pipelines for keystone integration

Next steps:
 * provide default config with no keystone integration (perhaps setting every context to admin?)
 * write authmanager to keystone conversion code
 * add api extension to create and destroy access/secret keys
 * deprecate authmanager
 * rename project to tenant

1468. By Anthony Young

Assorted fixes to os-floating-ips to make it play nicely with an in-progress novaclient implementation, as well as some changes to make it more consistent with other os rest apis. Changes include:

* switch associate/disassociate to PUTs. Previously, it was doing create calls with one-off parameter resources.
* allow graceful handling when there are no floating ips for a tenant
* allow graceful handling when disassociating an already disassociated address

1469. By Tushar Patil

Added OS APIs to associate/disassociate security groups to/from instances.

I will add views to return list of security groups associated with the servers later after this branch is merged into trunk. The reason I will do this later is because my previous merge proposal (https://code.launchpad.net/~tpatil/nova/add-options-network-create-os-apis/+merge/68292) is dependent on this work. In this merge proposal I have added a new extension which still uses default OS v1.1 controllers and views, but I am going to override views in this extension to send extra information like security groups.

Revision history for this message
Jay Pipes (jaypipes) wrote :

Hi!

There is a merge conflict here... look for <<<<<<< TREE in the diff.

Also, is there a reason why we are removing functionality (as opposed to deprecating it)?

-jay

review: Needs Information
1470. By Sandy Walsh

Fixes utils.to_primitive (again) to handle modules, builtins and whatever other crap might be hiding in an object.

1471. By Alex Meade

Adds accessIPv4 and accessIPv6 to servers requests and responses as per the current spec.

Revision history for this message
Vish Ishaya (vishvananda) wrote :

The reason for removal, is I'm rewriting the communication between compute and volume here:

https://code.launchpad.net/~vishvananda/nova/volume-cleanup-2/+merge/72270

maintaining AoE through this refactor seems silly since no one is using it.

Revision history for this message
Jay Pipes (jaypipes) wrote :

Are we positive absolutely *nobody* is running AoE? If not, deprecation seems the way to go...

1472. By William Wolf

implemented tenant ids to be included in request uris.

1473. By Alex Meade

The FixedIpCommandsTestCase in test_nova_manage previously accessed the database. This branch stubs out the database for these tests, lowering their run time from 104 secs -> .02 secs total.

I have verified the tested functionality is still being tested.

1474. By Soren Hansen

Move documentation from nova.virt.fake into nova.virt.driver.

1475. By Alex Meade

Fixes bug 831627 where nova-manage does not exit when given a non-existent network address

1476. By Tushar Patil

Our goal is to add optional parameter to the Create server OS 1.0 and 1.1 API to achieve following objectives:-

1) Specify number and order of networks to the create server API.

In the current implementation every instance you launch for a project having 3 networks assigned to it will always have 3 vnics. In this case it is not possible to have one instance with 2 vnics ,another with 1 vnic and so on. This is not flexible enough and the network resources are not used effectively.

2) Specify fixed IP address to the vnic at the boot time. When you launch a server, you can specify the fixed IP address you want to be assigned to the vnic from a particular network. If this fixed IP address is already in use, it will give exception.

Example of Server Create API request XML:
<?xml version="1.0" encoding="UTF-8"?>

<server xmlns="http://docs.nttpflab.com/servers/api/v1.0"
        name="new-server-test" imageId="1" flavorId="1">
  <metadata>
    <meta key="My Server Name">Apache1</meta>
  </metadata>
  <personality>
    <file path="/etc/banner.txt">
        ICAgICAgDQoiQSBjbG91ZCBkb2VzIG5vdCBrbm93IHdoeSBp
    </file>
  </personality>
  <networks>
      <network uuid="6622436e-5289-460f-8479-e4dcc63f16c5" fixed_ip="10.0.0.3">
      <network uuid="d97efefc-e071-4174-b6dd-b33af0a37706" fixed_ip="10.0.1.3">
  </networks>
</server>

3) Networks is an optional parameter, so if you don't provide any networks to the server Create API, it will behave exactly the same as of today.

This feature is supported to all of the network models.

1477. By Christopher MacGown <email address hidden>

Implements first-pass of config-drive that adds a vfat format drive to a vm when config_drive is True (or an image id).

1478. By Vish Ishaya

This branch does the final tear out of AuthManager from the main code. The NoAuth middlewares (active by default) allow a user to specify any user and project id through headers (os_api) or access key (ec2_api).

The plan is to leave the auth manager code in but mention that it is deprecated. There is a sample paste config in ini to still allow old auth. Immediately after the diablo release we can tear out all of the Auth related code and not support the deprecated auth anymore.

Revision history for this message
Soren Hansen (soren) wrote :

The conflict remains. You need to merge the current trunk into your branch and fix it.

review: Needs Fixing
Revision history for this message
Soren Hansen (soren) wrote :

As much as I'd love AoE to *die* *die* *die*, I do see Jay's point. I'm not sure what tools we have to actually deprecate stuff, though. Logging? Release notes? What else? The second iscsi support landed, AoE was deprecated, but I guess this might not have been communicated very well to users.

1479. By Thierry Carrez

Refresh translations

1480. By Dan Prince

Move use_ipv6 into flags. Its used in multiple places (network manager and the OSAPI) and should be defined at the top level.

1481. By Brian Waldon

Fixes bug that causes 400 status code when an instance wasn't attached to a network.

1482. By Nachi Ueno

I added notifications decorator for each API call using monkey_patching.
By this merge, users can get API call notification from any modules.

1483. By Vish Ishaya

Adds a use_deprecated_auth flag to make sure creds generated using nova-manage commands will work with noauth.

Revision history for this message
Ben McGraw (mcgrue) wrote :

(How did bzr let me commit something with conflicts?)

Revision history for this message
Jay Pipes (jaypipes) wrote :

> (How did bzr let me commit something with conflicts?)

The same way git lets you commit something with conflicts.

Revision history for this message
Vish Ishaya (vishvananda) wrote :

The diff shows what happens when the branch is merged into trunk, so if recent additions have been added to trunk it will show conflicts. Speaking of which, looks like there is still another one. Also need to bump the version number of the migrate script. I think we're on 39?

1484. By Ben McGraw

resolving conflicts.

Revision history for this message
Thierry Carrez (ttx) wrote :

This should wait for Essex, based on the meeting we had on 2011-08-23 ?

review: Disapprove
Revision history for this message
Thierry Carrez (ttx) :
review: Disapprove (ffe)

Unmerged revisions

1484. By Ben McGraw

resolving conflicts.

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
The diff is not available at this time. You can reload the page or download it.