summaryrefslogtreecommitdiff
path: root/ironic/nova
Commit message (Collapse)AuthorAgeFilesLines
* rename oslo.concurrency to oslo_concurrencyZhiQiang Fan2014-12-101-1/+1
| | | | | | | | oslo.concurrency-0.3.0 has moved its path to oslo_concurrency, the old path oslo.concurrency can still work but is deprecated now. Change-Id: I2b2b362f766bb82058af6f9ed92189165aa9a629 Closes-Bug: #1398656
* Switch to oslo.concurrencyDerek Higgins2014-10-281-1/+1
| | | | | | | | | | | Nova has removed nova/openstack/common/lockutils.py and switched to oslo.concurrency so we can no longer import lockutils from the nova tree. Make the same switch in the ironic tree. Closes-Bug: #1386631 Change-Id: I8db99d61dbe6c50c9edae37077242e2696bc5671
* Deprecate Ironic compute driver and sched managerMichael Davies2014-09-0921-3623/+28
| | | | | | | | | | | | | | | | | | | Updates the Ironic compute driver and scheduler manager so that they subclass the now in-Nova-tree driver classes. This should de-duplicate code maintenance across Nova and Ironic and also provide end users an easier upgrade path (with Deprecation log messages). This patch also removes the old Ironic compute driver tests and classes since those now live in Nova. This patch also removes a line from tox.ini which was copying the second set of unit test outputs; those no longer exist, since we are no longer running unit tests on nova code in this tree. Co-Authored-By: Dan Prince <dprince@redhat.com> Co-Authored-By: Devananda van der Veen <devananda.vdv@gmail.com> Change-Id: Ic194f779eca470e4a4dd8a3fbd31ca5a6f6b4f7e
* Merge "Driver merge review comments from 111425"Jenkins2014-09-052-24/+13
|\
| * Driver merge review comments from 111425Lucas Alvares Gomes2014-09-042-24/+13
| | | | | | | | | | | | | | | | | | This review contain fixes that addresses the review comments raised in https://review.openstack.org/#/c/111425 revision 19 and 22. Once these changes are merged here in Ironic, they will be proposed as updates to the patch series over in Nova. Change-Id: Idf4ea36670e5832600c5ff5f814e06aa096e156e
* | Merge "Nova review updates for _node_resource"Jenkins2014-09-042-3/+32
|\ \ | |/ |/|
| * Nova review updates for _node_resourceMichael Davies2014-09-042-3/+32
| | | | | | | | | | | | | | | | | | | | | | | | In review https://review.openstack.org/#/c/111425/14 it has been raised that if the cpu_arch is not set, we should be using Nova helper functions instead of 'NotFound'. Also we should be canonicalizing the user provided config value. Once this is approved and merged, it will be proposed back into the Nova tree. Change-Id: Idfe0730daa22c6550a1a15b45f481635d2eb5195
* | Avoid deadlock when logging network_infoPhil Day2014-09-011-2/+10
|/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | _plug_vifs() and _unplug_vifs() in driver.py both log network_info However network_info is not a simple structure, its a reference to a wrapper class that wraps a green thread for async network allocation. Accessing network_info forces a wait on the wrapped thread (if the network allocation has not completed), which can lead to a deadlock as follows: Thread 1 (periodic task in Nova) has grabbed the COMPUTE_RESOURCE_SEMAPHORE in update_available_resource, and is waiting for the IO thread lock in the logging handle routine Thread 2 (in the ironic driver) has grabbed the IO thread lock in the logging handle routine and is waiting for the async network object to be ready so _str_ can be called to finish formatting the log message Thread 3 (which is doing the async network object allocation) wants to call update_usage in the resource tracker, but that needs the COMPUTE_RESOURCE_SEMAPHORE which is held by the first thread The problem is similar to https://review.openstack.org/#/c/71409 and the fix is simply to covert network info to a string before the call to LOG() Closes-Bug: 1364059 Co-authored-by: Michey Mehta michey.mehta@hp.com Change-Id: I3b750ac386588d9235ff10a972b3ab1d8f45cf38
* Merge "Update nova driver's power_off() parameters"Jenkins2014-08-251-2/+5
|\
| * Update nova driver's power_off() parametersAdam Gandelman2014-08-211-2/+5
| | | | | | | | | | | | | | | | | | | | The nova driver's power_off() function received two new parameters in commit c07ed15415c0ec3c5862f437f440632eff1e94df (nova). The in-tree drivers were all updated. This updates the Ironic driver and avoids a traceback during power off. Change-Id: I0cbe7d954f0bcc16f7249304321a08d457eaba52 Closes-bug: #1359943
* | Nova ironic driver review update requests to p4Michael Davies2014-08-202-8/+8
|/ | | | | | | | | In https://review.openstack.org/#/c/111425/7/nova/tests/virt/... ...ironic/test_driver.py it was requested to change the way API testing was conducted. In doing this, some slight alterations have been needed to ensure conformity. Change-Id: Ia2905e4a8a27ff196198e35d04d0570065d2779d
* Use cache in node_is_available()Jim Rollenhagen2014-08-192-1/+43
| | | | | | | | This should make start-up times much better. Closes-Bug: 1357027 Change-Id: I98ce118667dd9b8bf93ad781bfa8dc5077f34b45
* Query full node details and cacheChris Behrens2014-08-193-12/+69
| | | | | | | | | | Re-use this information to reduce a massive amount of queries to ironic api to get info about individual nodes on the periodic task that syncs resource usage. Partial-Bug: 1357027 Change-Id: Ie6b6898297a6f2346745c04a37d34dbb647ff6e7
* Update compute driver macs_for_instance per docsDan Prince2014-08-192-6/+7
| | | | | | | | | Updates the docstring for the macs_for_instance method to match the documented Nova driver. Also updates the method to return values per the docs. Change-Id: I87f36ab675f57137f46416fa810eda5662d92ee0
* Merge "Driver merge review comments from 111425-2-3"Jenkins2014-08-131-8/+17
|\
| * Driver merge review comments from 111425-2-3Michael Davies2014-08-131-8/+17
| | | | | | | | | | | | | | | | | | This review contain fixes that addresses the review comments raised in https://review.openstack.org/#/c/111425 revisions 2 & 3. Once these changes are merged here in Ironic, they will be proposed as updates to the patch series over in Nova. Change-Id: Ie7bc50a9804373c9c4f8850f4e2b201c1d01effb
* | Merge "Allow Ironic URL from config file"Jenkins2014-08-132-2/+4
|\ \
| * | Allow Ironic URL from config fileJim Rollenhagen2014-07-112-2/+4
| | | | | | | | | | | | | | | | | | | | | | | | Currently when using username/password auth from configs with ironic client, it's not possible to specify the ironic URL in a config file. This commit makes that possible. Change-Id: Ib99c48c2f80abaf42b08f36af942535d7c9ac5d1
* | | Import fixes from the Nova driver reviewsLucas Alvares Gomes2014-08-121-69/+73
| |/ |/| | | | | | | | | | | | | | | | | | | Import fixes from the Nova driver review, based upon revision 4 of https://review.openstack.org/#/c/111423/ - Add unittests for patcher.create() - Convert some of the tests for the PXEDriverFields to GenericDriverFields and make sure that the delta from the PXE class is covered Change-Id: Iec8d1d379458b89a2140dc473ad691dc5dd6d3dc
* | Add method for deallocating networks on rescheduleDan Prince2014-08-111-0/+8
| | | | | | | | | | | | | | | | Per nova baremetal commit d3854f2c05502c7407d716da7d1bd7f1ca3e0a15 we should now return True from the deallocate_networks_on_reschedule Nova compute Ironic driver. Change-Id: I54a3252ab15e2d8b596ccc90eb4755405021f1da
* | backport reviewer comments on nova.virt.ironic.patcherDevananda van der Veen2014-08-071-4/+4
| | | | | | | | | | | | | | | | Backport comments on the Nova driver review in https://review.openstack.org/#/c/111423/ to Ironic's tree. Change-Id: If5939e3dcc3686046e0fc7989114d25270f034e8
* | Move the 'instance_info' fields to GenericDriverFieldsLucas Alvares Gomes2014-08-072-48/+86
| | | | | | | | | | | | | | | | | | | | | | | | | | The instance_info parameters are common across all drivers and not just for PXE drivers. This patch corrects an issue in nova/virt/ironic/patcher.py by moving the generation of the instance_info patch to the common base class. It also adds notes stating the intent to remove the PXE-specific patching in Kilo. Closes-Bug: #1353631 Change-Id: I80d2208d41d21821f0da662637418ecd76b5db2b
* | Add ironic-python-agent deploy driverJim Rollenhagen2014-07-301-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | This commit adds a deploy driver for the ironic-python-agent project. Caveats: * Only basic functionality (deploy and tear_down) is implemented. * Only whole disk images are supported. Implements: blueprint agent-driver Change-Id: Iebf8d8f756770549d6fcd1bb2fe94d2585d576b1
* | Import fixes from the Nova driver reviewsMichael Davies2014-07-254-78/+92
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Import fixes from the Nova driver review, based upon revision 7 of https://review.openstack.org/#/c/103167/ - better use of _L* helpers - dynamically import python-ironicclient when the driver is initialized, so that Nova does not need to add it to requirements.txt - remove unused CONF options pxe_bootfile_name and instance_type_extra_specs Co-authored-by: Devananda van der Veen <devananda.vdv@gmail.com> Change-Id: Iee1481632e9927766776c7d35264e8cf4c469c8a
* | Merge "Backporting nova host manager changes into ironic"Jenkins2014-07-243-15/+11
|\ \
| * | Backporting nova host manager changes into ironicMichael Davies2014-07-243-15/+11
| | | | | | | | | | | | | | | | | | | | | | | | Some very trivial pep8 fixes need to go back into the ironic tree in case of future round-trip revisions. This patch just backports then so they won't be forgotten. Change-Id: I6142c5fa9d06462c1cda863b0d32ced6f06ac66a
* | | Merge "Generalize exception handling in Nova driver"Jenkins2014-07-242-11/+41
|\ \ \ | |/ / |/| |
| * | Generalize exception handling in Nova driverAdam Gandelman2014-07-242-11/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | We need to ensure nodes get unprovisioned and disassociated from instances upon all failure cases, not only the specific exceptions being caught now. This removes the catching of those specific exceptions during instance spawn and performs required cleanup and re-raising. Change-Id: I9461139400d7aa0a339550cf89f3d49e3a8cb2c0
* | | Import fixes from Nova scheduler reviewsMichael Davies2014-07-226-47/+136
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Import fixes from the Nova scheduler driver review, based upon revision 4 of https://review.openstack.org/#/c/103165 - create BaseBaremetalHostManager class - import and refactor the BaremetalHostManager - refactor IronicHostManager - minor updates to ExactMatch filters Note that this change also adds back in copyright notices from baremetal_host_manager to the ironic_host_manager to reflect the common heritage of the code. Change-Id: Iab0d0f1c05474bf341828a2e5aba95715bf71d82
* | Import a few more fixes from the Nova driverDevananda van der Veen2014-07-151-26/+2
| | | | | | | | | | | | | | Import a few fixes based on comments on rev 4 of https://review.openstack.org/#/c/103167/ Change-Id: Ic7f6b54e9b4b94b4cb3108dd7d4ea808a99fa382
* | Make ComputeCapabilitiesFilter work with IronicDevananda van der Veen2014-07-142-4/+50
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | It is not currently possible to selectively associate a Nova flavor with certain nodes in Ironic, beyond variances in the cpu/ram/disk. The ComputeCapabilitiesFilter exists in Nova for just this purpose, but the nova.virt.ironic driver is not propagating the correct data up to the scheduler. This patch parses the node.properties['capabilities'] as a series of comma-separated k:v pairs and passes them up to Nova so that it can be matched against flavor.extra_specs['capabilities'] by the scheduler filter. Co-Author: Matthew Gilliard <matthew.gilliard@hp.com> DocImpact: adds the ability to specify multiple capabilities to a node for scheduling purposes Closes-bug: 1339816 Change-Id: Ide39f4a2796b169025bf0083e021166ae35f30f8
* | Merge "Clean up nova virt driver test code"Jenkins2014-07-131-46/+41
|\ \ | |/ |/|
| * Clean up nova virt driver test codeDevananda van der Veen2014-07-111-46/+41
| | | | | | | | | | | | Some minor cleanup of the nova.virt.ironic driver test code. Change-Id: If9e21cc9dc521b65561fdc96c5c5591abc03f72e
* | Merge "Allow overriding the log level for ironicclient"Jenkins2014-07-101-0/+11
|\ \ | |/ |/|
| * Allow overriding the log level for ironicclientChris Behrens2014-06-171-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | oslo provides a 'default_log_levels' conf variable for overriding logging levels for certain modules. This could be used to override ironicclient's default logging level, however it requires re-setting all of the log levels for oslo's defaults. This is rather inconvenient. I think it makes sense to allow the ironic virt driver to have an easy config option for this. When in debug mode, ironicclient logs every single API call and response. In an environment with a lot of nodes, it clutters the logs. This adds a 'client_log_level' config option to the 'ironic' config section in nova. If it's unset (default), there's no change in behavior. If it's set, it takes precedence over the 'default_log_levels', 'verbose', and 'debug' settings that one may have in nova.conf Example usage: [ironic] client_log_level=INFO DocImpact Closes-bug: 1325663 Change-Id: Id16d5017e1d9ae5d2b15ff3daca177ab36a32869
* | Simplify error handlingRobert Collins2014-07-071-3/+1
| | | | | | | | | | | | This code block is needlessly complex. Change-Id: I41375458d21e38267cd0a1d21b0b14ab498fc172
* | Merge "Update nova rebuild to account for new image"Jenkins2014-07-044-18/+139
|\ \
| * | Update nova rebuild to account for new imageAdam Gandelman2014-07-024-18/+139
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Update the Nova driver's rebuild() to account for changes in the instance image during rebuild. Currently, rebuild ignores user requests to rebuild with a new image, making it impossible to do image-based upgrades. This adds logic to the patcher to account for the preserve_ephemeral flag and updates rebuild() to use the patcher to re-patch all driver_info during rebuild. This also adds missing test coverage of the rebuild code. Change-Id: I6c8aacd36e0095d0590a1dc552730f2d52036225 Closes-bug: #1334905.
* | | Merge "Minor cleanups to nova virt driver and tests"Jenkins2014-07-042-8/+0
|\ \ \
| * | | Minor cleanups to nova virt driver and testsDevananda van der Veen2014-07-022-8/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | - remove unused classmethod "instance" from nova.virt.ironic driver - two more pep8 fixes in unit tests Change-Id: I0ba4b4717abe8bb8fdb9092c8e07332c3c011a22
* | | | Merge "Update Nova's available resources at termination"Jenkins2014-07-021-0/+24
|\ \ \ \ | |/ / / |/| | |
| * | | Update Nova's available resources at terminationAdam Gandelman2014-06-301-0/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This updates ClusteredComputeManager to override terminate_instance() with a call to update_available_resource(). The goal here is to limit the lag between when an Ironic node has been freed and when it will become available again to the Nova. This avoids scheduling errors against Ironic node inventories with high utilization and/or limited node resources. Change-Id: I767cb97d9b182f1f9528d078b07a85ffbad313ba Closes-bug: #1334027
* | | | Merge "Add/Update docstrings in the Nova Ironic Driver"Jenkins2014-07-021-12/+133
|\ \ \ \
| * | | | Add/Update docstrings in the Nova Ironic DriverLucas Alvares Gomes2014-06-301-13/+134
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add and update the docstrings in the Nova Ironic Driver. The 'node' parameter from the power_on and power_off method was removed because it's not part of the interface and wasn't being used. To maintain the function signature consistent with the base class the 'node' parameter from the get_available_resource() method was renamed to 'nodename'. Also, the method manage_image_cache() was removed from the driver because it was simply calling "pass", just like the base class. Change-Id: I0d2fe07992bde7bf09df934282b0551a35e99c1c
* | | | | Merge "Update Nova Ironic Driver destroy() method"Jenkins2014-07-021-4/+15
|\ \ \ \ \ | |/ / / /
| * | | | Update Nova Ironic Driver destroy() methodLucas Alvares Gomes2014-06-301-4/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Add DocString * Add a missing parameter 'destroy_disks', although not used by Ironic we should keep the function signature consistent with the base class. * When calling destroy() passing an non-existent instance log a warning message instead of debug. As suggested on the base class: "If the instance is not found (for example if networking failed), this function should still succeed. It's probably a good idea to log a warning in that case." Change-Id: I0e7d9a9e5522606bafd5ef6d9dbe525ad39026d2
* | | | | Merge "Nova Ironic driver get_info() to return memory stats in KBytes"Jenkins2014-07-022-4/+21
|\ \ \ \ \ | |/ / / /
| * | | | Nova Ironic driver get_info() to return memory stats in KBytesLucas Alvares Gomes2014-06-302-4/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | According to the base class 'max_mem' and 'mem' should be returned in KBytes, other drivers are also converting those values to KBytes so Ironic should as well. This patch also add the missing docstring for the get_info() method. Change-Id: Ia7063b994d506b511271920678868d336a776ec9
* | | | | Merge "Add the remaining unittests to the ClientWrapper class"Jenkins2014-07-021-3/+48
|\ \ \ \ \ | |_|_|/ / |/| | | |
| * | | | Add the remaining unittests to the ClientWrapper classLucas Alvares Gomes2014-06-271-3/+48
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | This patch also pep8-fy the imports in the test_client_wrapper.py. Closes-Bug: #1316549 Change-Id: Iaf154886c5c05f94ac045fbc99f93915bb91c878