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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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:
5de5ae1b5d3763dbcf14bf3b4d43199ad5255adf
92c9975bd2d53624ae595b895c2e96991ee43778
2382186311794591fb4d35893ffa774157d6131b
Mailing list discussion:
http://lists.openstack.org/pipermail/openstack-dev/2013-September/014614.html
Change-Id: I3bdc7234f91eb4f9078ee24d7ab093b28f9930c9
Ports the flavormanage extension and the corresponding
unittests to the v3 framework.
Partially implements blueprint nova-v3-api
Change-Id: Iaf6b4a2d7f4e4993a6540e8a3afc774b7b158608
Create a new v3 extension called os-block-device-mapping to handle
the block devices specified on server creation. This extension was
os-block-device-mapping-v2-boot in the old API.
Only the new block device mapping syntax has been ported although the
old one can still be used with v2 API.
blueprint: improve-block-device-handling
Change-Id: I898ae56539c6101680983d1eca4bce6d92bd5ce6
Adds support for specifying the security group during the V3 API
server create to the security groups extensions. This was
accidentally missed during the initial port. Adds the
corresponding XML deserialization and unittests.
Partially implements blueprint nova-v3-api
Fixes bug #1208746
Change-Id: Ie9d9e03ae20357212b0f270d97a19a0d0f9b0557
Adds version information for the V3 API which is only displayed
when the V3 API is enabled. Even if the the V3 API is enabled the
V3 API status is "EXPERIMENTAL" and the V2 one "CURRENT". This was
done so autodiscovery tools would not yet use the V3 version by
default.
Ports the relevant parts of the version extension and associated
tests to the V3 API to display V3 version information for /v3 GET
requests.
DocImpact
Partially implements blueprint nova-v3-api
Change-Id: Idd335ce0df63d91e94a4a757f1fbae94b576c37e
Ports the multiple create extension to the V3 API. There is no part1
patch for this changeset because the original V2 file was just a stub
with all of the code in servers.py
DocImpact
Partially implements blueprint nova-v3-api
Change-Id: I5eba468e9c4b753215b91607a3e2441626d2cb57
Removes V3 API images and image_metadata extensions as the
same functionality can be accessed directly through glance. Also
removes the associated testcases. There is a discussion about
the decision here:
http://lists.openstack.org/pipermail/openstack-dev/2013-August/012958.html
Fixes the image bookmark links in server information requests
so they point to glance
Partially implements blueprint nova-v3-api
Change-Id: Id32be0c0794b0f4dd220a928345ddf0133e9ffca
The fixed ip extension was one of the first ported to the V3 API
but a later decision around not supporting nova network in the V3 API
means that this extension is not required for V3. The fixed ip extension
only supports nova network, not neutron and the same functionality
can be accessed directly through neutron.
Also changes some extension tests to use a different extension
for white/black list testing
Partially implements bp nova-v3-api
Change-Id: Ie589170e863ee489661e789c5134ed8349ced279
This patch move 'personality' from core into extensions.
* demote personality the attribute of server from servers
* add corresponding tests
* move some tests about personality from test_servers to test_personality
Partially implements blueprint nova-v3-api
Change-Id: I62254a94476271b1d8bcc206dfda1236f155960b
This patch contains the changes required to adapt the agent
extension and the corresponding unittest to the v3 framework.
Moves the commented out tests from the v3 version of test_servers
to the user data extension unittests.
Partially implements: bp v3-api-extension-versioning
Partially implements blueprint nova-v3-api
Change-Id: I7eef3ba18d7cc36c1ef78d093f50fd9122ac26c7