| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This is a first pass at client side version control for rpc. It allows
you to configure a max version of messages that clients are allowed to
send. You can find one example of how clients need to adapt in the
conductor rpcapi. All other changes in rpc apis since the grizzly
release are not applicable to this.
Some future improvements to this could be reporting the versions
supported by running services and having that be discoverable via the
API. We could also consider allow setting these client side version
caps via the API. For now, recommended values for these config
options while attempting a rolling upgrade will just have to be documented.
The config options allow specifying specific rpc api version numbers if
desired, but an alias of 'grizzly' is also supported. So typically at
the start of a rolling upgrade you'd have:
[upgrade_levels]
compute=grizzly
conductor=grizzly
scheduler=grizzly
... etc ...
And as you update all instances of a service, you would remove that bit
from your configuration across the deployment using your config management
system of choice.
DocImpact
Implements blueprint rpc-version-control.
Change-Id: I2c0fd6dd7484c87823846d7c31d6525d93cd1b43
|
| |
|
|
|
|
|
|
|
| |
Mechanical translation of the deprecated
except x,y: construct with except x as y:
The latter works with any Python >= 2.6.
Add Hacking check.
Change-Id: I845829d97d379c1cd9b3a77e7e5786586f263b64
|
| |
|
|
|
|
|
|
| |
There are some small warts (mostly around other execute() like
methods which reuse the exception). I will fix these warts in later
reviews.
Change-Id: Ice9cdbdc5f3e5a9f8365f5d99acf1863a9fe3e7a
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
Each service implemented the get_backdoor_port method individually. This
patch moves the implementation of this method to the base rpc API
instead, and removes the now unnecessary code from each of the services.
The server side method was left on all of the managers for rpc backwards
copmatibility. They can be removed on the next major rpc version bump
of those APIs.
Part of blueprint base-rpc-api.
Change-Id: Ia8838fafd80eb86a1c2d66f5e97370042d8d8c53
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This patch adds an rpc API that is exposed by all services. The methods
in this API exist in their own namespace and are versioned independently
of the main API for the service.
The first method for this API is a simple ping() method. This method
exists in the conductor rpc API already, and could be more generally
useful. Other methods will be added in later patches.
The base rpc API will be exposed from all services automatically unless
they override the create_rpc_dispatcher method in the base manager
class. All services need to pass a service_name into the base manager
constructor. Some services already did this, but now it's needed for
all of them.
Implements blueprint base-rpc-api.
Change-Id: I02ab1970578bc53ba26461b533d06d1055c2d88e
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
5dd1553cca7f7e62eebce75e1d936fc211b239ec moved to using a FQDN for
host names. This caused bug 1151012, but Russell and I also believe
the change will break the host column on the instances table. I can't
do a plain old git revert for this change because a lot of the code
has moved after this change.
Revert to using just the hostname (no domain), and we'll revisit the
intent of 5dd1553cca7f7e62eebce75e1d936fc211b239ec separately.
Resolves bug 1151012.
Change-Id: I944f46d6eb2a6944a12833ec8de7afa2b18e66e7
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is complication with re-raising exceptions and our usage of
eventlet. If the code in the exception handler accesses the db or rpc
in the exception handler, it will no longer be able to re-raise the
exception. Using excutils.save_and_reraise_exception() works aorund
this issue.
The most common error is calling LOG.error() or LOG.exception(), as it
is possible for these to go access rpc. There is an option to turn on
notifications for these errors.
Fix bug 845866.
Change-Id: Icfca2af63805711229249aa7abe60a938edd1b35
|
| |
|
|
|
|
| |
Update all references of "LLC" to "Foundation".
Change-Id: I009e86784ef4dcf38882d64b0eff484576e04efe
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The cfg API is now available via the oslo-config library, so switch to
it and remove the copied-and-pasted version.
Add the 2013.1b4 tarball to tools/pip-requires - this will be changed
to 'oslo-config>=2013.1' when oslo-config is published to pypi. This
will happen in time for grizzly final.
Add dependency_links to setup.py so that oslo-config can be installed
from the tarball URL specified in pip-requires.
Remove the 'deps = pep8==1.3.3' from tox.ini as it means all the other
deps get installed with easy_install which can't install oslo-config
from the URL.
Make tools/hacking.py include oslo in IMPORT_EXCEPTIONS like it already
does for paste. It turns out imp.find_module() doesn't correct handle
namespace packages.
Retain dummy cfg.py file until keystoneclient middleware has been
updated (I18c450174277c8e2d15ed93879da6cd92074c27a).
Change-Id: I4815aeb8a9341a31a250e920157f15ee15cfc5bc
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
To allow sharing of proxy code between nova-novncproxy and
nova-spicehtml5proxy, pull the NovaWebSocketProxy class
out of nova-novncproxy into a new nova/console/websocketproxy.py
file
Adds previously missing websockify dep to pip-requires.
Blueprint: libvirt-spice
Change-Id: If1334256680e7075598f00ce153cf6f021cc720f
Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
blueprint vmware-compute-driver
Rename VMWare to VMware
Rename network_utils to network_util to conform to the util class naming convention
Remove the infinite loop in vim.__getattr__
Change-Id: I5bdad331a86c7aa4ca36e7a8345b53e455678c0f
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
| |
Back in the day, having self and context in the error notifications
was handy for debugging. Now, there is a lot of confidential stuff
stored in these objects (especially when self = ComputeManager) ...
like passwords, etc.
This patch strips it out.
Also removes dead wrap_exception calls (which did nothing since they
did not specify a notifier).
Change-Id: Ieab7bd79b64e01c7bca18dbce97455e50094871c
|
| |
|
|
|
|
|
|
|
|
|
| |
The my_ip, host and use_ipv6 options are used all over the codebase
and they're pretty well related to each other. Create a new netconf
module for them to live in.
There are now no options registered globally in nova.config!
blueprint: scope-config-opts
Change-Id: Ifde37839ae6f38e6bf99dff1e80b8e25fd68ed25
|
| |
|
|
|
|
|
|
| |
Even though the console_topic opt is used outside nova.console.rpcapi,
it makes sense for the RPC module to "own" the topic option.
blueprint: scope-config-opts
Change-Id: I0f00927ca1c0bba7b21315240165e83e7075ebb7
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We only ever do one of two things with the global path options:
1) Reference the option in the default of another option so that the
value can be interpolated it
2) Use the value of the option to build a path
Add helper methods for both these cases - e.g. basedir_def() for the
former case and basedir_rel() for the latter case. This makes it much
more obvious how and where these options are used.
Change-Id: I7fd94a329fe911761d02d94e5381e950c6668d56
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Move the global path config options (i.e. state_path, pybasedir and
bindir) into a new nova.paths module. A new module may seem like
overkill but some utility methods associated with these options follow
in a later commit.
Moving them to nova.paths means they are no longer globally defined
and it's more obvious which modules require these options.
Change-Id: I381d23f1bbe36dc6967a38a65062b0983e1661aa
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
This adds a get_backdoor_port function to the console
service which enables returning the eventlet_backdoor port
from rpc for the service.
Change-Id: I3cb7d199fac8c10e4b5fdc04c403b63e75a69d2d
|
| |/
|
|
|
|
|
|
| |
Small re-factoring of the xvp console mainly checking
to make sure that we catch exceptions when they haappen.
Change-Id: I0164111ffa4439d82ae26084433901236a4a2ddc
Signed-off-by: Chuck Short <chuck.short@canonical.com>
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
The only reason for importing nova.config now is where one of the
options defined in that file is needed. Rather than importing
nova.config using an import statement, use CONF.import_opt() so
that it is clear which option we actually require.
In future, we will move many options out of nova.config so many
of these import_opt() calls will either go away or cause a module
other than nova.config to be imported.
Change-Id: I0646efddecdf2530903afd50c1f4364cb1d5dce1
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Modules import nova.config for two reasons right now - firstly, to
reference nova.config.CONF and, secondly, if they use one of the
options defined in nova.config.
Often modules import nova.openstack.common.cfg and nova.config
which is a bit pointless since they could just use cfg.CONF if
they just want to nova.config in order to reference CONF.
Let's just use cfg.CONF everywhere and we can explicitly state
where we actually require options defined in nova.config.
Change-Id: Ie4184a74e3e78c99658becb18dce1c2087e450bb
|
| |
|
|
|
|
|
|
| |
Now that options have all moved from nova.flags to nova.config, we can
safely remove the nova.flags imports and replace them with nova.config
imports.
Change-Id: Ic077a72dd6419bbf1e1babe71acfa43c4e8b55c8
|
| |
|
|
|
|
|
|
|
|
|
| |
Use the global CONF variable instead of FLAGS. This is purely a cleanup
since FLAGS is already just another reference to CONF.
We leave the nova.flags imports until a later cleanup commit since
removing them may cause unpredictable problems due to config options not
being registered.
Change-Id: I155d363e26260aa402bb918b4d0726502e7e8758
|
| |
|
|
|
|
|
| |
console_public_hostname was defined in both console.manager and
vmrc_manager.
Change-Id: I377ca893a84ff60f2d289cde3eba05993e2a09b1
|
| |
|
|
| |
Change-Id: I8fc760062ecaee45d263db663a52971be96f264a
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes bug 1055503
The standard behaviour of the 'gethostname' function in Python differs from
Linux to Windows. A common Linux configuration returns the FQDN, while a
Windows one returns only the host name.
To resolve inconsistent node naming in deployments that mix windows and
Linux, it is proposed to use 'getfqdn' as default function instead of
'gethostname'. This is function is more predictable in all cases.
Change-Id: I3164d9a36df2b8484bbf9a57879c31fa0e342503
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add partially written manpages for:
* nova-all
* nova-api-ec2
* nova-api-metadata
* nova-api-os-compute
* nova-api-os-volume
* nova-api
* nova-cert
* nova-compute
* nova-console
* nova-consoleauth
* nova-dhcpbridge
* nova-network
* nova-novncproxy
* nova-objectstore
* nova-rootwrap
* nova-rpc-zmq-receiver
* nova-scheduler
* nova-volume-usage-audit
* nova-volume
* nova-xvpvncproxy
Change-Id: I3734831ce2f6b5d765e98b3f50fe8c1ad7965685
|
| |
|
|
|
|
|
|
|
|
|
|
| |
In commit ce4dbbd7, the BASE_RPC_API_VERSION was changed to '2.1' in
nova.compute.rpcapi. This should remain '2.0' until the API goes to
3.X. Only specify version '2.1' for the method that requires it
(rebuild_instance).
Add a NOTE above each instance of BASE_RPC_API_VERSION to try to help
clarify this for the future.
Change-Id: I06cef44c905e8966505d5fb5b1046d6a0c75d533
|
| |
|
|
|
|
|
|
|
| |
compute_rpcapi.get_console_pool_info is only available from
the ComputeAPI object, not nova.compute.rpcapi module.
Partially fix bug 1037183
Change-Id: I57df710389bf349c7ba1dd7980105222918bff92
|
| |
|
|
|
|
|
|
|
| |
Impact:
* debug log message in nova/compute/manager
* Test function names
* Test strings and comments
Change-Id: I9be1b0ced2dfe257eef9785659f2cbe27b07ad3f
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| | |
Remove _translate_id_if_necessary from nova.console.api since its
now using instance_uuid and this function is not used anymore.
Complete fix for bug 1014796.
Change-Id: I1350497541ca6571b38a05d66ca3c5498d63a9b5
|
| |/
|
|
|
|
|
|
|
|
|
| |
This code was using pool, but this variable did not exist. It was
erroneously removed in f50ce35c9cf2e05d205485586da1cb6d5433ba56.
This patch fixes the bug, as well as introduces unit tests for this API
that would have caught the problem.
Part of bug 1037183.
Change-Id: I0784aa314a0224198049dbcbe160084bdd1deee1
|
| |
|
|
|
|
|
|
|
| |
A number of variables are undefined while refactoring uuid in
I4032419d66e9bbb17b770d8974a92a136bf9c5d2.
self._translate_uuid_if_necessary is also no longer available.
Those problems are fixed in this patch.
Change-Id: Ifb88b4faa11b2ba8178a9a705ba6da1e4d9b4182
|
| |
|
|
|
|
| |
Fixes bug #1028748
Change-Id: I1be5637f561008489fe7367052ec2ecb6b9ae59f
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
A recent patch change the RPC_API_VERSION in compute/rpcapi.py to 1.1.
This change was the right thing to do in compute/manager.py, but not
compute/rpcapi.py. This patch changes it back to 1.0, and changes the
code to only specify that 1.1 is required for the new method.
This version in the rpcapi modules is used as the default version to set
in a message. The version sent in a message is the minimum version
required to be implemented on the manager side for the message to be
successfully processed. For most messages, that is just 1.0. In the
case of the new method, it's 1.1.
This patch also changes the name of his variable in the rpcapi modules
from RPC_API_VERSION to BASE_RPC_API_VERSION to help clarify this a bit
more.
Change-Id: I2bb4602845869bd44b39531eeb4f1e7c0c4c20c2
|
| |
|
|
|
|
| |
I only just moved logging from nova to common, so behavior should remain the same.
Change-Id: I1d7304ca200f9d024bb7244d25be2f9a670318fb
|
| |
|
|
|
|
|
|
| |
Final patch for blueprint common-rpc.
This patch removes nova.rpc in favor of the copy in openstack-common.
Change-Id: I9c2f6bdbe8cd0c44417f75284131dbf3c126d1dd
|
| |\ |
|
| | |
| |
| |
| |
| |
| | |
Continued work on blueprint finish-uuid-conversion.
Change-Id: I4032419d66e9bbb17b770d8974a92a136bf9c5d2
|
| |/
|
|
|
|
|
|
|
|
|
| |
Implements blueprint use-common-jsonutils
1. Edit openstack-common.conf and import nova/openstack/common/jsonutils.py
2. Remove json package imports and replace with jsonutils
Places where using json.load hasn't changed.
Change-Id: Ie6feab605fb0474fd505c56ef57b7a9ecfa5269d
|
| |
|
|
|
|
|
|
|
| |
Part of bug 1006467.
This patch adds get_console_topic to the compute rpcapi. This method is
used by the console API.
Change-Id: I738be88a52fede0739a73283b6e2640072f0f72b
|
| |
|
|
|
|
|
|
|
| |
Part of bug 1006467.
This patch adds the get_console_pool_info() method to the compute
rpcapi. This is used by the console manager.
Change-Id: I429123ed48cb2a5fcfb70248eac743cf4e7a76f2
|
| |
|
|
|
|
|
|
|
|
|
|
| |
Part of blueprint common-rpc.
The function queue_get_for() is a utility function used by various
consumers of the rpc API. This function lived in the db API, but never
ended up using anything from the database. This patch moves it into the
rpc API so that it can be used by other users of rpc once it moves into
openstack-common.
Change-Id: If92675beecff5471b416a929c161b810e3c71939
|
| |
|
|
|
|
| |
Part of blueprint versioned-rpc-apis.
Change-Id: I17d6e3094c56d8628688dabdc8d40b2f4f815af4
|
| |
|
|
|
|
|
| |
Except for nova/api/, nova/tests/, nova/virt/
In preparation for automated checking being enabled (N306)
Change-Id: I5af70ea13b470ce58695ef0a5e0ff9da3ac1b135
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use import_class(), import_object(), and import_module() from
openstack-common's importutils module. The equivalent functions have
been removed from nova.utils. A few modules had import order cleaned up
in passing, as well.
My initial motivation for this was to remove some more usage of nova
bits from nova.rpc as another step towards being able to move nova.rpc
import openstack-common. Since I was pulling importutils into nova, I
went ahead and converted the whole thing.
Change-Id: I7c7786cf0001bcd06db52b9a99ff4284a3f6c6fa
|
| |
|
|
| |
Change-Id: I8fbfd7fdc6e16d555151d63657fb8435077a006e
|
| |
|
|
|
|
|
| |
Openstack => OpenStack
for nova/*py
Change-Id: Ibcfae4776422a515a109e59510fc84f8b63c00b9
|