Commit Graph

168 Commits

Author SHA1 Message Date
Jenkins 2f4cabff32 Merge "Rename instance_actions v3 to server_actions" 2014-04-24 07:18:42 +00:00
Dirk Mueller b63db53ab1 Remove nova-clear-rabbit-queues
It was already non-functional since
https://review.openstack.org/#/c/40355/

Change-Id: I56b19a49c123b73b6b3a5c4fc5f29864c6fd3b98
Closes-Bug: #1307460
2014-04-14 13:44:46 +02:00
Rohan Kanade 045e1b11fd Rename instance_actions v3 to server_actions
* Renames the os-instance_actions v3 plugin to os-server-actions
* Also modifies api specific tests and expected user input JSON
* DocImpact only for v3 Nova api documentation for this plugin.

Closes-Bug: #1206032

DocImpact

Change-Id: Id5049e10f5ef540d0d8e3871d800e9d9cb33da73
2014-04-01 14:59:31 +02:00
Thierry Carrez 3265368d73 Open Juno development
Bump preversion to 2014.2 to formally open Juno development.
The Icehouse release branch (milestone-proposed) will be cut
from the last commit before this one.

Change-Id: I9b6ed32059a6428dcdd20258c7aaf966c61d5962
2014-03-31 11:36:43 -04:00
Mark McLoughlin 4cd9ce0e2d Remove zmq-receiver from setup.cfg
In commit 1a91aac we removed the zmq-receiver script (in favor of
oslo-messaging-zmq-receiver) but forgot to remove the entry from
setup.cfg.

Closes-Bug: #1279739
Change-Id: Icd08a5b28daee7234abd24ba502c56cc00abcb8c
2014-03-28 13:33:32 +00:00
Jenkins 8bf4464bc7 Merge "Support building wheels (PEP-427)" 2014-03-18 05:44:24 +00:00
Dan Smith 0ba9cca788 Revert "Adding image multiple location support"
This reverts commit a55bbbfa19.

The series of patches involved with adding this feature introduced
an unexpected dependency on glance's v2 API, which we do not
currently support. Triggering a user-facing bug quickly, and leaving
some uncertainty about what else is likely to come in the future,
a revert of this code was decided given the short time to -rc1.

Closes-bug: 1291014
Change-Id: I2ed6a861e583b9513b0984ff9801d4b9f7536798
2014-03-12 08:27:20 -07:00
Dan Smith cef7dd6a8f Revert "enable cloning for rbd-backed ephemeral disks"
This reverts commit c25c60f6a9.

The series of patches involved with adding this feature introduced
an unexpected dependency on glance's v2 API, which we do not
currently support. Triggering a user-facing bug quickly, and leaving
some uncertainty about what else is likely to come in the future,
a revert of this code was decided given the short time to -rc1.

Change-Id: Iee835652f56beed1b8ac74d782e34a5238102840
Related-bug: 1291014
2014-03-12 08:26:53 -07:00
Jenkins 4bf25aac3f Merge "enable cloning for rbd-backed ephemeral disks" 2014-03-10 00:29:18 +00:00
Josh Durgin c25c60f6a9 enable cloning for rbd-backed ephemeral disks
Currently when using rbd as an image backend, nova downloads the
glance image to local disk and then copies it again into rbd. This
can be very slow for large images, and wastes bandwidth as well as
disk space.

When the glance image is stored in the same ceph cluster, the data is
being pulled out and pushed back in unnecessarily. Instead, create a
copy-on-write clone of the image. This is fast, and does not depend
on the size of the image. Instead of taking minutes, booting takes
seconds, and is not limited by the disk copy.

Add some rbd utility functions from cinder to support cloning and
let the rbd imagebackend rely on librbd instead of the rbd
command line tool for checking image existence.

Add an ImageHandler for rbd that does the cloning if an applicable
image location is available. If no such location is available, or rbd
is not configured for ephemeral disks, this handler does nothing, so
enable it by default.

blueprint rbd-clone-image-handler
Closes-bug: 1226351
Change-Id: I9b77a50206d0eda709df8356faaeeba35d232f22
Signed-off-by: Josh Durgin <josh.durgin@inktank.com>
Signed-off-by: Zhi Yan Liu <zhiyanl@cn.ibm.com>
2014-03-07 13:54:37 -08:00
Dan Smith 388de275cb Add os-server-external-events V3 API
Related to blueprint admin-event-callback-api

Change-Id: I93957840ac251cf6a22474897daf80a164ba35c6
2014-03-06 07:40:43 -08:00
Zhi Yan Liu a55bbbfa19 Adding image multiple location support
Images now support multiple locations within its metadata and it may be
stored on more than one backend storage. Nova should add a layer to
transparently handle image preparing and removing for an instance by the
best approach/location, and it should allow administrators to configure
the image handler pipeline with the order who preferred to the layer.

Also, based on this structure we could implement particular sub-class in
relevant hypervisor layer with more advanced functions, such as CoW
making, snapshot capturing and etc. in future.

Implement bp: image-multiple-location
DocImpact

Change-Id: Idce8d21ae37bfdbb28a2567120a83d1061061904
Signed-off-by: Zhi Yan Liu <zhiyanl@cn.ibm.com>
2014-03-05 01:29:33 +08:00
Jenkins 97ab2840e4 Merge "Adds get_console_connect_info API" 2014-03-03 20:21:44 +00:00
Alessandro Pilotti 630a349bc3 Adds get_console_connect_info API
Implements: blueprint hyper-v-rdp-console

Currently graphical console access to Nova instances is limited to
clients which are part of Nova itself (novnc, xvpvnc, spice-html5).
The mentioned clients verify the validity of a console access token
with the following private API:
nova.consoleauth.rpcapi.ConsoleAuthAPI.check_token

The usage of a private API precludes the possibility of employing
external graphical console clients, including FreeRDP-WebConnect, used
to connect to Hyper-V instances via RDP.

This change adds a public API method that wraps the aforementioned
check_token private API. This allows external clients to obtain the
necessary protocol connection information by providing a token
previously obtained with calls to get_vnc_console, get_spice_console
or get_rdp_console.

Includes V2 and V3 API implementations.

Change-Id: Idd1e4f57b16bd1488f3b72bb064cef51321a7c79
2014-02-28 22:05:29 +02:00
Chris Yeoh d94203beb4 Adds create backup server extension for the V3 API
Moves create_backup functionality out of admin_actions
into its own extension. This is part of blueprint v3-admin-actions-split
which allows more selective enablement of features contained
in the admin actions extension.

Note that XML api samples are no longer generated because bp
remove-v3-xml-api has been approved.

Partially implements bp v3-api-admin-actions-split
DocImpact: Adds os-create-backup extension and moves the
create_backup functionality out of os-admin-actions into
this new extension.

Change-Id: I4858a06df20c552bd55ff2841adbcfc761304f42
2014-02-21 10:59:07 +10:30
Jenkins 52a191640e Merge "Removes os-instance-usage-audit-log from the V3 API" 2014-02-17 20:44:54 +00:00
Jenkins d96a6ddb86 Merge "Adds migrate server extension for V3 API" 2014-02-13 01:12:40 +00:00
Jenkins 3ca3dce140 Merge "Remove quota classes extension from the V3 API" 2014-02-12 06:48:33 +00:00
Chris Yeoh 830ac0f065 Adds migrate server extension for V3 API
Moves the migrate/live-migrate server functionality out of admin_actions into
its own extension. This part of the blueprint v3-admin-actions-split
allows more selective enablement of features contained in the admin
actions extension.

Note the XML api samples are no longer generated because
bp remove-v3-xml-api has been approved.

Refactor removes some exception handling for migrate along with the relevant tests
as those exceptions will never occur.

Partially implements bp v3-api-admin-actions-split
DocImpact: Adds os-migrate-server extension and moves migrate/live-migrate
functionality out of os-admin-actions into this new extension.

Change-Id: I6b29f501ad6bb9a6401b1c20cd419d9e05fe369b
2014-02-11 22:20:12 -07:00
Christopher Yeoh 1b15b23b0a Remove quota classes extension from the V3 API
As per discussion at the Nova mid cycle meetup the
quota classes extension is being removed from the
V3 API. The extension was apparently part of a larger
body of work the rest of which never managed to merge.
So its not really useful by itself.

Partially implements bp v3-api-remove-extensions

Change-Id: Id1f288baa723df825151bd84aa27089271c2b8e4
2014-02-10 16:30:11 -07:00
Christopher Yeoh f5cc4f4a7a Removes os-instance-usage-audit-log from the V3 API
The extension pre-dates ceilometer and equivalent
functionality is now much better managed using
ceilometer. So we're removing this before the V3 API
is officially released.

Partially implements blueprint v3-api-remove-extensions

Change-Id: I9b7892346a4ad7c54a903cfcbcb97156dfc8c734
2014-02-09 18:07:49 -07:00
Christopher Yeoh d090d3d8c6 Removes os-simple-tenant-usage from the V3 API
The extension pre-dates ceilometer and equivalent
functionality is now much better managed using
ceilometer. So we're removing this before the V3 API
is officially released.

Partially implements blueprint v3-api-remove-extensions

Change-Id: Ia8fd475e6f0c4dbc67f3c47279cbaa2280b3af0b
2014-02-08 22:55:01 -07:00
Phil Day def860c240 Typo in backwards compat names for notification drivers
The switch to oslo.messaging uses setup.cfg to provide a mapping
for the Nova notification drivers, but mis-spelt them.   This will
break any existing Nova systems that use notifictaions for things
like billing, monitoring, etc

Change-Id: I217d6b68a64ee008a82426b890a32a97b849cb4d
2014-02-07 12:56:54 +00:00
Sascha Peilicke 0dfae3b68d Support building wheels (PEP-427)
Universal is used to identify pure-Python module(by bdist_wheel). For
these, it is sufficient to build a wheel with _any_ Python ABI version
and publish that to PyPI (by whatever means).

Change-Id: Ic22b78ef6434ebf888c92c0a162caeabb70edf88
2014-02-07 12:32:17 +01:00
Jenkins 54ebd15491 Merge "Port to oslo.messaging" 2014-02-02 11:08:37 +00:00
Mark McLoughlin 1a91aacb85 Port to oslo.messaging
The oslo.messaging library takes the existing RPC code from oslo and
wraps it in a sane API with well defined semantics around which we can
make a commitment to retain compatibility in future.

The patch is large, but the changes can be summarized as:

  * oslo.messaging>=1.3.0a4 is required; a proper 1.3.0 release will be
    pushed before the icehouse release candidates.

  * The new rpc module has init() and cleanup() methods which manage the
    global oslo.messaging transport state. The TRANSPORT and NOTIFIER
    globals are conceptually similar to the current RPCIMPL global,
    except we're free to create and use alternate Transport objects
    in e.g. the cells code.

  * The rpc.get_{client,server,notifier}() methods are just helpers
    which wrap the global messaging state, specifiy serializers and
    specify the use of the eventlet executor.

  * In oslo.messaging, a request context is expected to be a dict so
    we add a RequestContextSerializer which can serialize to and from
    dicts using RequestContext.{to,from}_dict()

  * The allowed_rpc_exception_modules configuration option is replaced
    by an allowed_remote_exmods get_transport() parameter. This is not
    something that users ever need to configure, but it is something
    each project using oslo.messaging needs to be able to customize.

  * The nova.rpcclient module is removed; it was only a helper class
    to allow us split a lot of the more tedious changes out of this
    patch.

  * Finalizing the port from RpcProxy to RPCClient is straightforward.
    We put the default topic, version and namespace into a Target and
    contstruct the client using that.

  * Porting endpoint classes (like ComputeManager) just involves setting
    a target attribute on the class.

  * The @client_exceptions() decorator has been renamed to
    @expected_exceptions since it's used on the server side to designate
    exceptions we expect the decorated method to raise.

  * We maintain a global NOTIFIER object and create specializations of
    it with specific publisher IDs in order to avoid notification driver
    loading overhead.

  * rpc.py contains transport aliases for backwards compatibility
    purposes. setup.cfg also contains notification driver aliases for
    backwards compat.

  * The messaging options are moved about in nova.conf.sample because
    the options are advertised via a oslo.config.opts entry point and
    picked up by the generator.

  * We use messaging.ConfFixture in tests to override oslo.messaging
    config options, rather than making assumptions about the options
    registered by the library.

The porting of cells code is particularly tricky:

  * messaging.TransportURL parse() and str() replaces the
    [un]parse_transport_url() methods. Note the complication that an
    oslo.messaging transport URL can actually have multiple hosts in
    order to support message broker clustering. Also the complication
    of transport aliases in rpc.get_transport_url().

  * proxy_rpc_to_manager() is fairly nasty. Right now, we're proxying
    the on-the-wire message format over this call, but you can't supply
    such messages to oslo.messaging's cast()/call() methods. Rather than
    change the inter-cell RPC API to suit oslo.messaging, we instead
    just unpack the topic, server, method and args from the message on
    the remote side.

    cells_api.RPCClientCellsProxy is a mock RPCClient implementation
    which allows us to wrap up a RPC in the message format currently
    used for inter-cell RPCs.

  * Similarly, proxy_rpc_to_manager uses the on-the-wire format for
    exception serialization, but this format is an implementation detail
    of oslo.messaging's transport drivers. So, we need to duplicate the
    exception serialization code in cells.messaging. We may find a way
    to reconcile this in future - for example a ExceptionSerializer
    class might work, but with the current format it might be difficult
    for the deserializer to generically detect a serialized exception.

  * CellsRPCDriver.start_servers() and InterCellRPCAPI._get_client()
    need close review, but they're pretty straightforward ports of code
    to listen on some specialized topics and connect to a remote cell
    using its transport URL.

blueprint: oslo-messaging
Change-Id: Ib613e6300f2c215be90f924afbd223a3da053a69
2014-02-01 09:53:24 +00:00
Chris Yeoh 496cf4871c Adds suspend server extension for V3 API
Moves the suspend/resume server functionality out of admin_actions into
its own extension. This part of the blueprint v3-admin-actions-split
allows more selective enablement of features contained in the admin
actions extension.

Note that XML api samples are no longer generated because
bp remove-v3-xml-api has been approved.

Partially implements bp v3-admin-actions-split
DocImpact: Adds os-suspend-server extension and moves suspend/resume
functionality out of os-admin-actions into this new extension

Change-Id: Ie2ad1c6085d65fee397d6ad5b5c9f3bd8e82ad3c
2014-01-31 15:10:41 +10:30
Chris Yeoh 6609dcf36b Adds pause server extension for V3 API
Moves the pause/unpause server functionality out of admin_actions into
its own extension. This part of the blueprint v3-api-admin-actions-split
allows more selective enablement of features contained in the admin
actions extension.

Note that XML api samples are no longer generated because
bp remove-v3-xml-api has been approved.

Partially implements bp v3-api-admin-actions-split
DocImpact: Adds os-pause-server extension and moves pause/unpause
functionality out of os-admin-actions into this new extension

Change-Id: Ib9cce57e2ff1270a82b9d7e39b23ec6b532b9e77
2014-01-31 15:09:31 +10:30
Jenkins 65d1071a09 Merge "Adds lock server extension for V3 API" 2014-01-30 17:04:43 +00:00
Chris Yeoh 237e990926 Adds lock server extension for V3 API
Moves the lock/unlock server functionality out of admin_actions into
its own extension. This part of the larger
blueprint v3-api-admin-actions-split allows more selective enablement of
features contained in the admin actions extension.

Some setup work is done in the tests directory with an
admin_only_action_common.py file. This allows tests which are
split out from test_admin_actions (as their corresponding features
are separated from the admin_actions extension) can continue to
share code.

Note that XML api samples are no longer generated because
bp remove-v3-xml-api has been approved.

Partially implements bp v3-api-admin-actions-split
DocImpact: Adds os-lock-server extension and moves lock/unlock
functionality out of os-admin-actions into this new extension

Change-Id: Ie4b6e856c2f5c33de5575aa8666e0b2784b58d05
2014-01-30 10:13:23 +10:30
Chris Yeoh 7157859926 Remove V3 API XML entry points
Removes the entry points defined in setup.cfg for
the V3 API XML. These are no longer called.

Partially implements blueprint remove-v3-xml-api

Change-Id: I1fd516b5a01f1ce2b4d42320594616a49b66952d
2014-01-29 23:36:12 +10:30
Thierry Carrez e0e4b55930 Use oslo.rootwrap library instead of local copy
Remove rootwrap code copied from oslo-incubator, make the
nova-rootwrap console_script entrypoint point to oslo.rootwrap
code instead.

Change-Id: Iec7aaf2e1599b2faf403d11b779eeab199a89486
Implements: blueprint nova-oslo-rootwrap
2014-01-17 18:06:33 +01:00
Jenkins 77c58d8643 Merge "Adds user_data extension to nova.api.v3.extensions" 2014-01-16 11:05:49 +00:00
Jenkins 03b267f26c Merge "Removes disk-config extension from v3 api" 2014-01-06 05:26:15 +00:00
He Jie Xu ec1711134e Removes disk-config extension from v3 api
This patch removes disk-config extension for v3 api, and also
remove related tests. And remove resize extension point for
servers core because there isn't any extension using it anymore
and there isn't good way to test resize extension point.

Implements bp api-v3-remove-disk-config
DocImpact

Change-Id: I894ae6f4e0d6c9f956a71e8e061ccb3fa1b039d8
2013-12-30 13:05:55 +08:00
Chris Yeoh c7683c48a9 Adds user_data extension to nova.api.v3.extensions
Although the user_data extension does not create a resource
or controller extension and only implements server.create and
server.create.deserialize entry points it does need to be listed as
a nova.api.v3.extension entry point as the whitelist check
operates on that entry point.

This does not add any runtime overhead and allows user_data to be
specified in the whitelist.

Also adds missing discoverable policy for the user data extension

Partially implements blueprint nova-v3-api

Change-Id: Ia8ac2fa150ab2fe9c1848c5a7ddc416952adf0e4
2013-12-23 09:51:41 +10:30
He Jie Xu 93d3e47531 Remove middleware ratelimits from v3 api
The ratelimit middleware isn't really useful. That is pointed out
by https://review.openstack.org/#/c/34821/. And it didn't get any
object from mail-list:
http://lists.openstack.org/pipermail/openstack-dev/2013-November/020291.html

This patch remove ratelimit middleware and limits extension. The config option
'api_rate_limit' is only valid in v2 api. The pipeline factory for v3 api won't
check that option anymore. For compatibility, if user is still using old
'api-paste.init', pipeline factory will ignore to load ratelimit middleware, and
print warning message to user for notice ratelimit is deprecated in v3 api.

Closes-bug: 1255471
DocImpact

Change-Id: Ifeae0504e11089f95e4d8af58bcb7372dca87f81
2013-12-15 18:52:03 +08:00
Jenkins 457d3b799d Merge "Extends V3 servers api for pci support" 2013-12-11 22:08:53 +00:00
Jenkins 646332f225 Merge "Removes os-personalities extension from the V3 API" 2013-12-07 04:21:58 +00:00
Jenkins da7cfbbb6b Merge "Remove used_limits extension from the V3 API" 2013-12-05 10:49:21 +00:00
Shuangtai Tian c087250048 Extends V3 servers api for pci support
All pci passthrough code is merged into nova, but the API does not support.
this patch extends the servers to show PCI information for instance and compute
node. This is a part of PCI APIs, for more information see the  blueprint.

Partially implement blueprint pci-api-support

Change-Id: I99eeeca67983c49433ab0079f490a454d250f5e0
2013-12-04 10:01:40 +00:00
Chris Yeoh 01baf99b01 Removes os-personalities extension from the V3 API
As per the discussion on the mailing list here:

http://lists.openstack.org/pipermail/openstack-dev/2013-September/015490.html

and discussions at summit, this patch removes the os-personalities
from the V3 API.

DocImpact

Part of blueprint v3-api-remove-extensions

Change-Id: I1a57ca812a9d71c0b1bab5d16ffad8eb82cba539
2013-11-20 22:46:36 +10:30
Christopher Yeoh 97ed2a0f78 Remove V3 API version of coverage extension
As discussed at the summit in the QA session, this removes
the coverage extension from the V3 API. The coverage extension
doesn't work properly and has security issues. An alternative technique,
though more limited in nature will soon be proposed.

Partially implements blueprint nova-v3-api

Change-Id: Ib4296288fefeb7e1e11bb6e44bd1cf355f29b9b9
2013-11-18 21:53:33 +10:30
Chris Yeoh 7af1f66363 Remove used_limits extension from the V3 API
Remove the used_limits extension from the V3 API because
it shows usage for limits which are no longer going to be displayed
by the limits extension. See https://review.openstack.org/#/c/39872/
The limits are not being displayed there because they are already
available through the quotas extension.

Although the quotas extension currently only displays the quota limit
and not usage, the following proposed changeset adds display
of usage: https://review.openstack.org/#/c/32303/. And this is done
in a way which is much more consistent in terms of naming and interface
than used_limits does.

So we no longer need the used_limits extension

Partially implements blueprint nova-v3-api

Change-Id: I8ec1f300335ca4fc3b86323cc3af6bc1591da7bb
2013-11-15 10:59:45 +08:00
He Jie Xu d61d1f62da Enable extension access_ips for v3 API
This patch enable extension access_ips, remove old 'access_ip_*'
attributes and related unittest from servers core. And remove
old attributes from api samples.

Partially implements bp nova-v3-api

DocImpact

Change-Id: Id4c8bb721550e317e0695d7876e2faa3d6e91a60
2013-10-26 17:19:46 +08:00
Jenkins 2492717615 Merge "Adds missing entry in setup.cfg for V3 API shelve plugin" 2013-10-09 08:20:04 +00:00
Thierry Carrez 2a970b76f5 Open Icehouse development
This should be accepted/merged once all the RC1 bugfixes are in.

This bumps the target version to 2014.1, effectively opening the master
branch to Icehouse development, ending the feature freeze.

The Havana release branch is cut from the previous commit in master.

Change-Id: Ia3a41177e3c91bd75b38833761f9f8af2b503e4b
2013-10-02 17:21:24 +02:00
Chris Yeoh 96895e29b1 Adds missing entry in setup.cfg for V3 API shelve plugin
Adds the missing entry in setup.cfg which allows the V3 API
shelve plugin to be loaded. Also adds a v3 version of the unittests
for the shelve plugin.

Change-Id: I737ca0cae503b726b0103a4ae169ffca91188c87
Closes-Bug: #1233454
2013-10-02 12:14:46 +10:00
Dan Smith eef8473fa8 Revert baremetal v3 API extension
Baremetal is scheduled to be deprecated in Nova soon. Since
the V3 API is experimental in Havana, we should revert the
extension to avoid maintenance of the extension and its tests
for no real gain.

Things have changed enough since it was added that a simple
git-revert won't work. This reverts the following changes:

  5de5ae1b5d
  92c9975bd2
  2382186311

Mailing list discussion:

http://lists.openstack.org/pipermail/openstack-dev/2013-September/014614.html

Change-Id: I3bdc7234f91eb4f9078ee24d7ab093b28f9930c9
2013-09-05 15:19:31 -07:00
Jenkins 8d900dacc6 Merge "Port flavormanage extension to v3 API Part 2" 2013-09-04 16:51:07 +00:00