summaryrefslogtreecommitdiffstats
path: root/nova/console
Commit message (Collapse)AuthorAgeFilesLines
* Add rpc client side version control.Russell Bryant2013-06-141-1/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Improve Python 3.x compatibilityDirk Mueller2013-06-011-1/+1
| | | | | | | | | 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
* Convert to using oslo's execute() method.Michael Still2013-05-041-3/+3
| | | | | | | | 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
* Move get_backdoor_port to base rpc API.Russell Bryant2013-04-243-9/+2
| | | | | | | | | | | | | 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
* Add an rpc API common to all services.Russell Bryant2013-04-231-1/+2
| | | | | | | | | | | | | | | | | | | | 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
* Revert changing to FQDN for hostnames.Michael Still2013-03-121-1/+1
| | | | | | | | | | | | | | | 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
* Fix issues with re-raising exceptions.Russell Bryant2013-03-051-2/+3
| | | | | | | | | | | | | | | | 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 OpenStack LLC to FoundationKurt Taylor2013-02-267-7/+7
| | | | | | Update all references of "LLC" to "Foundation". Change-Id: I009e86784ef4dcf38882d64b0eff484576e04efe
* Use oslo-config-2013.1b4Mark McLoughlin2013-02-196-6/+11
| | | | | | | | | | | | | | | | | | | | | | | | | 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
* Pull NovaWebSocketProxy class out of nova-novncproxy binaryDaniel P. Berrange2013-01-161-0/+89
| | | | | | | | | | | | | 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>
* Merge "VMware Compute Driver Rename"Jenkins2013-01-141-1/+1
|\
| * VMware Compute Driver RenameSean Chen2013-01-141-1/+1
| | | | | | | | | | | | | | | | | | | | 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
* | Keep self and context out of error notification payload.Sandy Walsh2013-01-142-4/+0
|/ | | | | | | | | | | | | | 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
* Move global service networking opts to new moduleMark McLoughlin2013-01-091-1/+1
| | | | | | | | | | | 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
* Move console_topic into nova.console.rpcapiMark McLoughlin2013-01-082-2/+8
| | | | | | | | 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
* Add helper methods to nova.pathsMark McLoughlin2013-01-041-2/+2
| | | | | | | | | | | | | | | 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 global path opts in nova.pathsMark McLoughlin2013-01-041-1/+1
| | | | | | | | | | | | 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
* Merge "Add get_backdoor_port to console."Jenkins2013-01-023-1/+14
|\
| * Add get_backdoor_port to console.Matthew Treinish2012-12-193-1/+14
| | | | | | | | | | | | | | | | 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
* | Refactor xvp consoleChuck Short2012-12-161-3/+9
|/ | | | | | | | 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>
* Use CONF.import_opt() for nova.config optsMark McLoughlin2012-11-203-3/+4
| | | | | | | | | | | | | 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
* Remove nova.config.CONFMark McLoughlin2012-11-206-9/+8
| | | | | | | | | | | | | | | 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
* Remove nova.flagsMark McLoughlin2012-11-176-6/+0
| | | | | | | | 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
* Switch from FLAGS to CONF in nova.consoleMark McLoughlin2012-11-076-33/+37
| | | | | | | | | | | 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
* De-duplicate option: console_public_hostnameJoe Gordon2012-11-051-10/+2
| | | | | | | console_public_hostname was defined in both console.manager and vmrc_manager. Change-Id: I377ca893a84ff60f2d289cde3eba05993e2a09b1
* Use uuidutils.is_uuid_like for uuid validationZhongyue Luo2012-11-051-2/+2
| | | | Change-Id: I8fc760062ecaee45d263db663a52971be96f264a
* Replaced default hostname function from gethostname to getfqdnLuis Fernandez Alvarez2012-09-261-1/+1
| | | | | | | | | | | | | | 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 man pagesJoe Gordon2012-09-171-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* fix rpcapi version.Russell Bryant2012-09-111-0/+8
| | | | | | | | | | | | 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
* Use the compute_rpcapi instance not the moduleYun Mao2012-08-241-1/+1
| | | | | | | | | 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
* Typo fix: existant => existentJoe Gordon2012-08-221-1/+1
| | | | | | | | | Impact: * debug log message in nova/compute/manager * Test function names * Test strings and comments Change-Id: I9be1b0ced2dfe257eef9785659f2cbe27b07ad3f
* Merge "Remove unused function in console api"Jenkins2012-08-201-6/+0
|\
| * Remove unused function in console apiSulochan Acharya2012-08-151-6/+0
| | | | | | | | | | | | | | | | 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
* | Fix use of non-existant var pool.Russell Bryant2012-08-161-1/+1
|/ | | | | | | | | | | 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
* Fix uuid related bug in console/apiYun Mao2012-08-141-7/+4
| | | | | | | | | 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 console/vmrc_manager.py import errorZhongyue Luo2012-07-251-1/+1
| | | | | | Fixes bug #1028748 Change-Id: I1be5637f561008489fe7367052ec2ecb6b9ae59f
* Change base rpc version to 1.0 in compute rpcapi.Russell Bryant2012-07-121-3/+4
| | | | | | | | | | | | | | | | | | | 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
* Switch to common logging.Andrew Bogott2012-07-023-3/+3
| | | | | | I only just moved logging from nova to common, so behavior should remain the same. Change-Id: I1d7304ca200f9d024bb7244d25be2f9a670318fb
* Use rpc from openstack-common.Russell Bryant2012-06-202-3/+3
| | | | | | | | Final patch for blueprint common-rpc. This patch removes nova.rpc in favor of the copy in openstack-common. Change-Id: I9c2f6bdbe8cd0c44417f75284131dbf3c126d1dd
* Merge "Convert consoles to use instance uuid."Jenkins2012-06-073-24/+25
|\
| * Convert consoles to use instance uuid.Michael Still2012-06-073-24/+25
| | | | | | | | | | | | Continued work on blueprint finish-uuid-conversion. Change-Id: I4032419d66e9bbb17b770d8974a92a136bf9c5d2
* | Replace standard json module with openstack.common.jsonutilsZhongyue Luo2012-06-071-7/+7
|/ | | | | | | | | | | 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
* Add get_console_topic() to the compute rpcapi.Russell Bryant2012-05-311-5/+3
| | | | | | | | | 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
* Add get_console_pool_info() to the compute rpcapi.Russell Bryant2012-05-312-14/+8
| | | | | | | | | 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
* Move queue_get_for() from db to rpc.Russell Bryant2012-05-303-9/+9
| | | | | | | | | | | | 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
* Add version to console rpc API.Russell Bryant2012-05-233-14/+58
| | | | | | Part of blueprint versioned-rpc-apis. Change-Id: I17d6e3094c56d8628688dabdc8d40b2f4f815af4
* Alphabetize importsJoe Gordon2012-05-141-1/+1
| | | | | | | Except for nova/api/, nova/tests/, nova/virt/ In preparation for automated checking being enabled (N306) Change-Id: I5af70ea13b470ce58695ef0a5e0ff9da3ac1b135
* Use openstack.common.importutils.Russell Bryant2012-04-282-3/+4
| | | | | | | | | | | | | | 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
* Log instance.Michael Still2012-04-261-1/+1
| | | | Change-Id: I8fbfd7fdc6e16d555151d63657fb8435077a006e
* Fix OpenStack CapitalizationJoe Gordon2012-03-154-4/+4
| | | | | | | Openstack => OpenStack for nova/*py Change-Id: Ibcfae4776422a515a109e59510fc84f8b63c00b9