summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add the PXE VendorPassthru interface to PXEDracDriver2014.2.rc32014.2proposed/junoLucas Alvares Gomes2014-10-141-0/+1
| | | | | | | | | | Without the PXE VendorPassthru interface to expose the "pass_deploy_info" method in the vendor_passthru endpoint of the API the DRAC it can't continue the deployment after the ramdisk is booted. Closes-Bug: #1379705 Change-Id: I21042cbb95a486742abfcb430471d01cd73b3a4a (cherry picked from commit 78ec7d5336eb65ff845da7ea9f93d34b402f5a0f)
* Clear hash ring cache in get_topic_for*2014.2.rc2Jim Rollenhagen2014-10-082-0/+35
| | | | | | | | | | This causes the hash ring to be reset on each API request, avoiding an issue where a new conductor never joins the ring until the API service is restarted. Closes-Bug: 1378570 Change-Id: Ic57370163f2f833efab662837036298f29f4ca90
* Merge "ilo* drivers to use only ilo credentials"2014.2.rc1Jenkins2014-10-035-16/+107
|\
| * ilo* drivers to use only ilo credentialsAnusha Ramineni2014-10-025-16/+107
| | | | | | | | | | | | | | | | | | | | | | | | | | Currently IloVirtualMediaIscsiDriver and IloVirtualMediaAgentDriver and pxe_ilo driver uses ipmitool for console and management interfaces. This imposes user/operator to specify ipmi credentials along with ilo credentials (which are same) during creation of node. This fix proposes to update the ipmi credentials on the fly by inheriting IPMI console and Management Interface. Change-Id: I81c1311b05bd00bb8245ceb71a140f6bdd2e7daa Closes-bug:#1367182
* | Make hash ring mapping be more consistentRobert Collins2014-10-024-51/+167
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Nejc Saje reported on the openstack-dev list that our hash ring was not stable as hosts were added or removed. This is a significant issue since the hash ring is meant to minimize the impact of adding or removing conductors to only approximately the change in capacity. IMPORTANT: When this patch is added to a running Ironic environment it will cause ring calculations to change. This will cause most existing node -> conductor mappings to be invalid, which will cause existing deployed nodes to be unable to reboot (if using a netbooting driver like pxe_ipmi). The cluster will self-correct over time as the periodic task _sync_hash_ring() rebuilds PXE environments. NOTE: The meaning of the hash_partition_exponent configuration setting had to be changed - if we define the total number of partitions of the ring via it then adding a host simultaneously removes some partitions of each existing host as well as adding new partitions from the new host - this results in more perturbation. Instead we use it to define the number of partitions per host. Existing deployments will continue to work, but may be able to reduce some CPU overhead by shrinking their setting. Change-Id: Iad3c9f6b460e9162ca91d5719e42f7950f2f18df Closes-Bug: #1365334 DocImpact: See above. UpgradeImpact: See above.
* | Add periodic task to rebuild conductor local stateDevananda van der Veen2014-10-025-32/+308
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This adds a periodic task which can rebuild the conductor's local state (PXE config files, etc) when conductors join or leave the cluster. For any node which is newly mapped to the conductor, this will trigger calling prepare() and take_over() on that node's deploy interface. This uses the periodic_max_worker setting like other periodic jobs, starting the take over process in separate threads. Thus, in a large cluster, it may take some time for all nodes to settle down. It also adds a new CONF option to control the timing of this job. There is a lot of room for improvement and optimization in this, however getting a fix in place is critical to the Juno release. NOTE: This does not re-establish any console sessions. Co-Authored-By: Lucas Alvares Gomes <lucasagomes@gmail.com> Change-Id: I0dbe9a5a98ec5fd0c69f32d7590d8141da5a23c2 Closes-bug: #1279331
* | Merge "Add a call to management.validate(task)"Jenkins2014-10-022-18/+25
|\ \
| * | Add a call to management.validate(task)Sam Betts2014-10-012-18/+25
| | | | | | | | | | | | | | | | | | | | | | | | Makes sure _send_sensor_data calls the driver validate method before calling get_sensor_data. Change-Id: I859ff3d315765f463a433fe3c02cb975f98972d2 Closes-Bug: 1375103
* | | Merge "Add "affinity" tracking to nodes and conductors"Jenkins2014-10-0211-40/+168
|\ \ \
| * | | Add "affinity" tracking to nodes and conductorsDevananda van der Veen2014-10-0111-40/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add "conductor_affinity" column to nodes table, containing a reference to the `id` of the conductor service (not its hostname) that has most recently performed some action which could require local state to be maintained (eg, built a PXE config, or started a SOL session). Using the `id` as a foreign key necessitates not deleting conductors when unregistering them, but instead marking them offline. This also helps in determining if a conductor service was only restarted (though this patch does not implement graceful shutdown). Thus, this patch also adds an "online" boolean column to the conductors table to track whether a conductor is on- or offline, and updates the register and unregister methods to use that field transparently. It may be noted that this does not change the behavior of register_conductor or unregister_conductor, though an optional "update_existing" parameter has been added to register_conductor. This replaces a DELETE query with an UPDATE query instead. Co-Authored-By: David Shrewsbury <shrewsbury.dave@gmail.com> Co-Authored-By: Lucas Alvares Gomes <lucasagomes@gmail.com> Related-bug: #1279331 Change-Id: I8e8b5cc00fc9f565ad2fb442e9a26077342e0a25
* | | | Update hacking version in test requirementsGhe Rivero2014-10-011-1/+1
| |_|/ |/| | | | | | | | | | | | | | | | | The current version >=0.8.0,<0.9 is not compatible with the one from global requirements project >=0.9.2,<0.10 Change-Id: I24dac763e744653bfc890feacd5d360c4838f715
* | | Merge "Replace custom lazy loading by stevedore"Jenkins2014-10-013-46/+21
|\ \ \
| * | | Replace custom lazy loading by stevedoreJulien Danjou2014-10-013-46/+21
| | | | | | | | | | | | | | | | Change-Id: I0b09e8822af6e8c3ce7299d31eb53f30a50262bc
* | | | Merge "Use DbTestCase as test base when context needed"Jenkins2014-10-0122-132/+49
|\ \ \ \ | |/ / / |/| | |
| * | | Use DbTestCase as test base when context neededVladyslav Drok2014-09-3022-132/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There is tests.db.base.DbTestCase class which inherits from tests.base.TestCase and adds context to test case object. Some test cases initialize context in their setUp method, so to avoid this initialization and unnecessary imports tests.db.base.DbTestCase can be used as their base class. Change-Id: I46cf7d1a33f8fbaa7d720bcfc574c9640ef83c06
* | | | Updated from global requirementsOpenStack Proposal Bot2014-10-011-1/+1
| | | | | | | | | | | | | | | | Change-Id: I05b251ce54af888229910eefb39db582c60c6d84
* | | | Merge "Remove useless variable in migration"Jenkins2014-09-301-2/+0
|\ \ \ \
| * | | | Remove useless variable in migrationJulien Danjou2014-09-301-2/+0
| | | | | | | | | | | | | | | | | | | | Change-Id: Id328df393c7f741b9e0b7f0cf2c43ca6eaa4470b
* | | | | Merge "Imported Translations from Transifex"Jenkins2014-09-303-125/+159
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Imported Translations from TransifexOpenStack Proposal Bot2014-09-303-125/+159
| | | | | | | | | | | | | | | | | | | | Change-Id: I5b9e2147daaeff1860917fb77c2708b55efb2f9f
* | | | | Merge "Refactor PXE clean up tests"Jenkins2014-09-302-88/+122
|\ \ \ \ \
| * | | | | Refactor PXE clean up testsDmitry Tantsur2014-09-252-88/+122
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make this tests really unit test, leave a separate "full flow" test for checking the most common case without mocks. Also add missing test for iscsi_deploy. Change-Id: Idc85efce2d58e41642a4a72c612df4a5f9f12082 Closes-Bug: #1370487
* | | | | | Merge "Force the SSH commands to use their default language"Jenkins2014-09-302-14/+15
|\ \ \ \ \ \
| * | | | | | Force the SSH commands to use their default languageLucas Alvares Gomes2014-09-252-14/+15
| |/ / / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | SSH commands often have to parse an output and do some pattern matchings (e.g using grep) that makes those commands dependent on the system language and causing it to fail on systems with a non-english locale setting. This patch forces the SSH commands to use their default language (whatever language the strings in the application was written in) for output by passing LC_ALL=C as part of the command. For virsh, vmware, vbox and prlctl the default language is english making the commands from the SSH driver to work independent of the system language. Closes-Bug: #1373671 Change-Id: I175d84fca4e10b8c9468bc4fe54ecd865725e39c
* | | | | | Merge "For convention rename the first classmethod parameter to cls"Jenkins2014-09-301-3/+3
|\ \ \ \ \ \
| * | | | | | For convention rename the first classmethod parameter to clsLucas Alvares Gomes2014-09-301-3/+3
| | |_|_|/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a follow-up patch on 9de2d21a96f440807b9822173de3fd3b6119fbe8 Change-Id: I043cc279dce7e2dbf9511a2f23c443c438affb51
* | | | | | Merge "Always reset target_power_state in node_power_action"Jenkins2014-09-301-0/+2
|\ \ \ \ \ \
| * | | | | | Always reset target_power_state in node_power_actionDmitry Tantsur2014-09-301-0/+2
| | |_|/ / / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently under some conditions target_power_state can be left on the node, making it impossible to operate on via API. Change-Id: Iba92c9bfae3616661cadf602618a66d2664264ee Closes-Bug: #1375641
* | | | | | Merge "Stop running check_uptodate in the pep8 testenv"Jenkins2014-09-301-1/+8
|\ \ \ \ \ \ | |_|/ / / / |/| | | | |
| * | | | | Stop running check_uptodate in the pep8 testenvDevananda van der Veen2014-09-291-1/+8
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As per this discussion on the mailing list: http://lists.openstack.org/pipermail/openstack-dev/2014-September/047160.html We are going to stop enforcing the correctness of the sample config file, and move to a separate non-voting check test that notifies us when it is no longer accurate, thus prompting a human to correct it. This addresses the issue where config options in dependent libraries (eg. keystone) repeatedly break our gate, without removing the sample config file that deployers benefit from. Change-Id: Ief88a693e4967b32f5f2f71b9a683599527a5129
* | | | | Add HashRingManager to wrap hash ring singletonGregory Haynes2014-09-295-40/+49
|/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently, the API service creates a new hash ring on every request. Instead of that, we should cache the hash ring object -- but we should also expose a way to refresh it when necessary. This method will also be used by the ConductorManager to cache and refresh the hash ring when conductors join / leave the cluster. This patch preserves the existing API behavior by resetting the hash ring on every request. This should be addressed in a subsequent patch. Co-Authored-By: Devananda van der Veen <devananda.vdv@gmail.com> Change-Id: Ib7ab55452499d1e1c362e4cd127f1e6e38106d6c
* | | | Merge "Conductor changes target_power_state before starting work"Jenkins2014-09-293-16/+49
|\ \ \ \
| * | | | Conductor changes target_power_state before starting workDevananda van der Veen2014-09-293-16/+49
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A race was discovered between when Nova requests a power state change and when that request is visible in Ironic's API, which could lead to Nova believing the request was completely satisfied before it actually started. A partial fix has been proposed to Nova: https://review.openstack.org/124162 This also requires that Ironic change the node's target_power_state from within ConductorManager *prior* to spawning the background thread which performs the actual work. Looking into this exposed another potential race in Ironic whereby a power state change request could be responded with 202-Accepted, but the background thread might fail to be started, and no error would be reported. The new behavior is to set node.last_error in the same way that this is handled for provision state changes that fail in the same way. Change-Id: I4d85c9230bcd9b6e36ffa9a326fda9908fee7e76 Closes-bug: #1310135
* | | | | Merge "Fix typo in agent validation code"Jenkins2014-09-292-1/+9
|\ \ \ \ \
| * | | | | Fix typo in agent validation codeDmitry Tantsur2014-09-292-1/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change-Id: I3309af3627700e3d051042049b8eacac1c632bd4 Closes-Bug: #1375042
* | | | | | Merge "Updated from global requirements"Jenkins2014-09-291-1/+1
|\ \ \ \ \ \ | |/ / / / / |/| | | | |
| * | | | | Updated from global requirementsOpenStack Proposal Bot2014-09-261-1/+1
| |/ / / / | | | | | | | | | | | | | | | Change-Id: Ie0388faf64e2d2d76713bfb6fec096e1d3027b1b
* | | | | Merge "Adds openSUSE support for developer documentation"Jenkins2014-09-271-0/+11
|\ \ \ \ \ | |_|_|/ / |/| | | |
| * | | | Adds openSUSE support for developer documentationAlberto Planas2014-09-261-0/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Support for openSUSE documentation is updated in this patch. Change-Id: I3606c999fd1a17df975d9dd734c2582841ecc152
* | | | | Merge "Remove unneeded context initialization in tests"Jenkins2014-09-2614-30/+6
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Remove unneeded context initialization in testsVladyslav Drok2014-09-2514-30/+6
| | |/ / | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some test case classes that inherit from ironic.tests.db.base.DbTestCase set context in their setUp method, while it is already initialized in DbTestCase's setUp method. This change removes such unneeded initializations. Closes-bug: #1373979 Change-Id: I7ab07168f1f30b4544801a1798cbda191c8d15c7
* | | | Merge "Remove untranslated PO files"Jenkins2014-09-2621-10110/+0
|\ \ \ \ | |_|/ / |/| | |
| * | | Remove untranslated PO filesAndreas Jaeger2014-09-2521-10110/+0
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The proposal bot only imports file that are at least 75 % translated. Remove any PO file that is untranslated or has less than 75 % of translations. This actually removed *all* files. Checked number of translated entries with: cd ironic/locale for i in `find . -name *.po `; do echo $i;msgfmt --statistics $i; done See also https://www.transifex.com/projects/p/ironic/ for current translation state. Whenever a file is again translated sufficiently, the proposal bot will propose a new patch - thus we do not lose any translations. Change-Id: I9319c37d8af11a2163528c60e3a2bb0a84db4f21
* | | Merge "Add parameter to override locale to utils.execute"Jenkins2014-09-254-28/+54
|\ \ \
| * | | Add parameter to override locale to utils.executeVladyslav Drok2014-09-254-28/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In common.utils.mkfs and in common.disk_partitioner.list_partitions functions standard locale is required in order to get correct console output. In this change use_standard_locale flag is added to common.utils.execute function to avoid code duplication when copying environment variables and setting correct loacale. Change-Id: Icd0ceb7b588d435eba9eb30846a9c66565e98a5e
* | | | Update ironic.conf.sampleLucas Alvares Gomes2014-09-251-0/+26
| |/ / |/| | | | | | | | | | | | | | Update ironic.conf.sample due to changes in keystoneclient Change-Id: I8f73b53f5a5714158aeffa41cd0891a5c3092128
* | | Merge "Updated from global requirements"Jenkins2014-09-251-1/+1
|\ \ \
| * | | Updated from global requirementsOpenStack Proposal Bot2014-09-251-1/+1
| | | | | | | | | | | | | | | | Change-Id: I68341cf5814c4d312535efe679143a14a3391215
* | | | Merge "Don't reraise Exceptions from agent driver"Jenkins2014-09-252-2/+59
|\ \ \ \
| * | | | Don't reraise Exceptions from agent driverRuby Loo2014-09-242-2/+59
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Since we only want drivers to raise IronicExceptions, this raises a VendorPassthruException instead of any non-IronicException in the agent's AgentVendorInterface.vendor_passthru() method. Change-Id: I6a0b55e3b825ce08c1d217da287ee127989741c6 Partial-Bug: #1267693