summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Limit memory usage when running qemu-img convertmitaka-eolstable/mitakaLucas Alvares Gomes2017-01-312-0/+8
| | | | | | | | | | This patch is limiting the memory address space to 1 GiB when invoking qemu-img convert. The qemu-img command can be exploited so we better play on the safe side (See: bug #1449062). Change-Id: I2088f74b32d1392310c569cfaa7fd368cb737421 Closes-Bug: #1657808 (cherry picked from commit 449cda4fed51250992446c83a4b50bc45fd10c6d)
* [Mitaka only] Fix incomplete root device hints validationDmitry Tantsur2016-09-063-1/+20
| | | | | | | | | | | Fixes two root device hints, 'wwn_with_extension' and 'wwn_vendor_extension', that were implemented and documented, but were not added to the list of supported root device hints, and thus fail validation. This code was completely rewritten on master, so this change is not a backport. Change-Id: I7bcc8c10d461b388f306c467e42d1e72f4e8a0f7 Closes-Bug: #1620563
* Enforce upper-constraints when building ramdisksMathieu Mitchell2016-08-267-9/+108
| | | | | | | | | | | | | | | | | | | | | | | Currently, building ramdisks installs ironic-python-agent without any upper-constraints. This causes the package to be installed with newer, untested dependencies. This commits introduces a tool to generate a local upper-constraints file based on predefined strategies (below). Additionally, the fallback to the openstack/requirements uses the URL defined in tox.ini instead of redefining it. This prevents having to keep track of two separate variables when releasing. upper-constraints lookup strategies (in order): * UPPER_CONSTRAINTS_FILE points to a local file * UPPER_CONSTRAINTS_FILE points to a URL * /opt/stack/new/requirements/upper-constraints.txt * upper-constraints.txt from openstack/requirements git repository Partial-bug: #1616554 Change-Id: Ib5c0c57cafdb6ffd7456e61f3b1bb5fa57520e5a (cherry picked from commit a0ca6ce157b8a84f282d8abbdd27c75f48d991ff)
* Use constraints for all the thingsJim Rollenhagen2016-08-252-1/+20
| | | | | | | | | | | | | | | This configures tox to use upper-constraints for everything, except environments used for post jobs (as constraints aren't supported there yet). This also doesn't enable constraints for our image builds, as it isn't possible to pass an environment variable into the Dockerfile to allow folks to choose their own constraints file (and we don't want to force people to rely on git.o.o for building images). Closes-Bug: #1617087 Change-Id: I285855c6386f59e9dd352473aa28463109818c90 (cherry picked from commit 4e35b0ee64a249c8461efc1c4374dd6cd9253220)
* Updated from global requirementsOpenStack Proposal Bot2016-07-081-1/+1
| | | | Change-Id: I5f139376be9f216fcbc1a43f8e4698bf498a6649
* Fix unwanted unmounting of /usr/share/oem1.2.3Brad Morgan2016-06-211-0/+3
| | | | | | | | | | | | | | Creating specific partitions will cause a udev event to trigger, causing systemd to attempt to mount the new partition at /usr/share/oem. This mount will not succeed, but will unmount /usr/share/oem, causing ironic-python-agent to die. Masking this unit disables this behavior. Change-Id: Ifea3482f36a354cbf988e6f6003f4284c5c2a21d Closes-bug: #1592163 (cherry picked from commit da0a8aff88e67fce7603b03a220b77b451349e7d)
* Provide fallback from ATA erase to shredding1.2.2Julia Kreger2016-06-013-17/+250
| | | | | | | | | | | | | | | | | | | | | Presently should the ATA erasure operation fails, IPA halts the cleaning process and the node goes to CLEANFAIL state as a result. This failure could be the result of a previous cleaning failure that left drive security enabled, for which code has been added in an attempt to address this case by attempting to unlock the the drive. In the event that an operator wishes to automatically fallback to disk scrubbing operations, the capability has been added through a driver_internal_info field "agent_continue_if_ata_erase_failed" that can be set to True, however defaults to False keeping the same behavior that IPA presently exhibits in the event of ATA erase operations failing. Partial-Bug: #1536695 Change-Id: I88edd9477f4f05aa55b2fe8efa4bbff1c5573bb1 (cherry picked from commit ed74a062c19a63a2c05a506c4ed8d3aa4ecfa09e)
* Wait for at least one suitable disk to appear on start upDmitry Tantsur2016-05-254-1/+71
| | | | | | | | | | | | | | | | | | | Some kernel modules take substantial time to initialize. For example, with mpt2sas RAID driver inspection and deployment randomly fail due to IPA starting before the driver finishes initialization. This problem is probably impossible to solve in a generic case, as modern Linux environment do not have a notion of "hardware is fully initialized" moment. All hardware is essentially hotplug. To solve it at least for the simplest case, this patch adds a wait loop on start up waiting for at least one suitable disk to appear in inventory. Note that root device hints are not considered, as the node might not be known at that moment yet. Change-Id: Id163ca28f7c140c302ea04947ded3f3c58b284de Partial-Bug: #1582797 (cherry picked from commit c15ed6a48e36da26576242277aa531720fd15d2d)
* Merge "TinyIPA: Shave off some file size from tinyipa ramdisk" into ↵Jenkins2016-05-202-1/+13
|\ | | | | | | stable/mitaka
| * TinyIPA: Shave off some file size from tinyipa ramdiskSam Betts2016-05-182-1/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch aims to reduce the TinyIPA ramdisk file size by removing some files that aren't required to run IPA once built and also striping the binaries we build for qemu-utils and tgt to make them as small as possible. This patch also cherrypicks a fix to the orignal patch which if missing will cause the the post job to fail when it trys to upload tinyipa. Change-Id: I6b8d648800284444d67a6988511707e57de1e6c9 (cherry picked from commit 6633cbb7d680d1df8a5bf2ec6bc1553458dee9a8) (cherry picked from commit 83ab1bc7dd475d72cc9a98c92257f6f4398bee29)
* | Merge "TinyIPA: Precompile python code for faster load" into stable/mitakaJenkins2016-05-203-0/+13
|\ \ | |/
| * TinyIPA: Precompile python code for faster loadSam Betts2016-05-183-0/+13
| | | | | | | | | | | | | | | | | | This patch adds code into the tinyipa build process and IPA itself to allow the required python code to be PYTHONOPTIMIZE precompiled into pyo files, this speeds up IPA startup time in a nested virt by 50%. Change-Id: Ib60c420719ea52a602c1752b572d3b217c2cefc7 (cherry picked from commit f58f7b9a076444e05088186dde7b8703c4476761)
* | Merge "Use TinyCore Linux 7.x for TinyIPA" into stable/mitakaJenkins2016-05-204-9/+12
|\ \ | |/
| * Use TinyCore Linux 7.x for TinyIPAMathieu Mitchell2016-05-184-9/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Bump to the latest version mainly to get the slimmed down gdisk [1]. Additionally, ensure /dev/pts is mounted in the chroot to avoid make from segfaulting when ttyname fails [2]. This only affects interactive mode. This patch also cherrypicks the commit which adds the popts dependency which was a follow up fix which if missing makes the upgraded TinyIPA fail. [1]: http://forum.tinycorelinux.net/index.php/topic,19951.0.html [2]: http://patches.openembedded.org/patch/117921/ Change-Id: If752cd9ed561a571c9690eb7390c3ee3910b09e0 (cherry picked from commit 7274e2ee81e28c36988873f77f0da30b06e072e1) (cherry picked from commit 085e622945e273cc759ff4bff7c08d15fc1e15c6)
* | Merge "Remove "Experimental" warning from tinyipa README" into stable/mitakaJenkins2016-05-171-3/+0
|\ \ | |/ |/|
| * Remove "Experimental" warning from tinyipa READMESam Betts2016-05-111-3/+0
| | | | | | | | | | Change-Id: I81d2b52f7a5733a833fec9fcce0667f9f4bf5620 (cherry picked from commit bfe334a3dbed6f471c65ed489394c169b02ff5be)
* | Optimise tinyipa boot timeSam Betts2016-05-121-5/+5
| | | | | | | | | | | | | | | | | | | | This patch reduces tinyipa boot time significantly by preinstalling all required system packages at build time instead of the traditional tinycorelinux method of loading them at runtime, cutting many seconds of unpacking squashfs files out of the boot procedure. Change-Id: If10cb64ea6b64972df0cdbd1056d84f136fec94a (cherry picked from commit 046994a04f5f2804091fbdf2d425019bb7b64952)
* | Enable branch tagging during tinyipa buildSam Betts2016-05-122-4/+14
| | | | | | | | | | | | | | | | | | | | For publishing tinyipa from stable/branches we need to be able to place branch references into the files created so that when they are uploaded versions from different branches do not conflict. This change also adds building a tar for publishing too. Change-Id: I9d879689c8e88768aaa96d0033b62d062f9cdc27 (cherry picked from commit 90156c006db181634114e3acdf90885062a0aba5)
* | Merge "Stop using git:// and be nice to people behind proxy servers" into ↵1.2.1Jenkins2016-05-121-1/+1
|\ \ | | | | | | | | | stable/mitaka
| * | Stop using git:// and be nice to people behind proxy serversJohn L. Villalovos2016-05-051-1/+1
| |/ | | | | | | | | | | | | | | | | | | | | The build of tinyipa is doing a: git clone git://... Doing a git clone git://... behind a proxy server is painful. Use the 'official' QEMU github mirror and clone with https. Change-Id: Ia14835e6867b945cccb8b1987aa4881d8524561c Closes-Bug: #1578778 (cherry picked from commit 4be5e084080cde8e53dd83e21a4ac9da3a12b6b2)
* | Add script to install missing tinyipa dependenciesSam Betts2016-05-115-3/+29
| | | | | | | | | | | | | | | | | | | | | | | | Squashfs-tools is missing when building the tinyipa image during the post job, this patch adds a new script to the tinyipa build process that ensures that missing dependencies get installed as part of the build process. It also replaces a use of realpath it build-iso.sh where it should be readlink to ensure that we don't need that dependency. Change-Id: I9a60dcf42f6a9ba624aa347f0f375bb40432ef77 Closes-Bug: #1567981 (cherry picked from commit 4230a3ba6e4360371e259f2b102bf4518134344e)
* | [inspection] wait for the PXE DHCP by default and remove the carrier checkDmitry Tantsur2016-05-104-15/+97
|/ | | | | | | | | | | | | | | | | | | | | | | | We hoped that checking /sys/class/net/XXX/carrier will allow us to not wait for interfaces that are not connected at all. In reality this field turned out to be unreliable. For example, it is also set to 0 when interface is down or is being configured. The bug https://bugzilla.redhat.com/show_bug.cgi?id=1327255 shows the case when carrier is 0 for all interfaces, including one that is used to post back data, which is obvious non-sense. This change removes check on carrier for the loop. To avoid 60 seconds wait for people with several NIC's, it's changed to only wait for the PXE booting NIC, which obviously must get an IP address. This makes IP addresses in the inspection data for other NIC's somewhat unreliable. A new option inspection_dhcp_all_interfaces is introduced to allow waiting for all NIC's to get IP addresses. This change should finally fix bug 1564954. Change-Id: I8b04bf726980fdcf6bd536c6bb28e30ac50658fb Related-Bug: #1564954 (cherry picked from commit 6da6ace3840d56c7145ddf528bbdcbb813fc6ce2)
* Merge "Wait for the interfaces to get IP addresses before inspection" into ↵Jenkins2016-04-157-10/+163
|\ | | | | | | stable/mitaka
| * Wait for the interfaces to get IP addresses before inspectionDmitry Tantsur2016-04-147-10/+163
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the DIB build the DHCP code (provided by the dhcp-all-interfaces element) races with the service starting IPA. It does not matter for deployment itself, as we're waiting for the route to the Ironic API to appear. However, for inspection it may result in reporting back all NIC's without IP addresses. Inspection fails in this case. This change makes inspection wait for *all* NIC's to get their IP addresses up to a small timeout. The timeout is 60 seconds by default and can be changed via the new ipa-inspection-dhcp-wait-timeout kernel option (0 to not wait). After the wait inspection proceedes in any case, so the worst downside is making inspection 60 seconds longer. To avoid waiting for NIC's that are not even connected, this change extends the NetworkInterface class with 'has_carrier' field. Closes-Bug: #1564954 Change-Id: I5bf14de4c1c622f4bf6e3eadbe20c44759da5d66 (cherry picked from commit 3deb25a3cec7955c5e38d83af74add58478f884c)
* | Install qemu-image from backports repovsaienko2016-04-151-4/+3
|/ | | | | | | | | | | | | | | | | | | | | | | qemu-image has been installed from testing to fix issues when qemu-img can't convert image: qemu-img: error writing zeroes at sector 0: Invalid argument The issue has been fixed in qemu 2.2.0-rc2, reference [0]. Which has been added to debian backports. This patch fixes issue with building coreos image, when qemu-utils can't be installed from testing due to dependency problems. Reference: [0] http://git.qemu-project.org/?p=qemu.git;a=commitdiff;h=f3a9cfddae [1] https://bugs.launchpad.net/cinder/+bug/1389728 Change-Id: Ie62a88e1d012aba1392b19c18137529c4c3ebf31 Related-Bug: #1490086 Closes-bug: #1570090 Closes-Bug: #1569835 (cherry picked from commit 52066d0a4920d2ccb3c6aef165e4a843ede4a809)
* Merge "Add disk_label support for partition images" into stable/mitakaJenkins2016-04-053-6/+64
|\
| * Add disk_label support for partition imagesNisha Agarwal2016-03-233-6/+64
| | | | | | | | | | | | | | | | | | | | This commit adds the disk_label support for partition images. It also fixes the node_uuid info passed to the ironic_lib. Partial-Bug: 1560560 Change-Id: I8b8ef20787468c1b8dc6fbc0b8905abd285325e1 (cherry picked from commit 4ec49be8e219581159a57bd41566d23ce806e5dc)
* | Correct link to enabling agent driversJim Rollenhagen2016-04-011-1/+1
| | | | | | | | | | | | | | | | | | The current link points to a section of the docs that is just a pointer to another section of our docs. Change this to point directly to the correct docs, saving users an extra click. Change-Id: I6814fda9292921aeedb90041563b3dbb997de9c6 (cherry picked from commit 99f70370b7cbe7a89a2d23ec32d872bac36745ae)
* | Fix full_trusty_build once and for allJim Rollenhagen2016-03-301-7/+9
| | | | | | | | | | | | | | | | | | | | | | After finally being able to test this locally, I've found that the 'cgroup-lite' package is what we were missing, not lxc. Additionally, the output is written by root, not the current user, so use sudo when modifying/writing files in imagebuild/coreos/UPLOAD. Change-Id: I8cf5ce5bd5345ccea5e8869f2628f8616d0fe758 Closes-Bug: #1559383 (cherry picked from commit 473b6b4661480e0a2e2c363553e48d62c7145272)
* | Append BRANCH_PATH to filenames of build outputJim Rollenhagen2016-03-291-1/+19
|/ | | | | | | | | | This adds $BRANCH_PATH (from the dependent patch) to the file names of the build output, so that we can upload images for each branch we maintain. Change-Id: I8c767fa1b56a566c1acabab8552a51ffeb4e1d7d Depends-On: I540d2f139c80bb7f382315258dbe3a7a14be74c8 Partial-Bug: #1561756 (cherry picked from commit 7862d1458097e26148f11210d0458ec4968ce7f5)
* Update .gitreview for stable/mitakaDavanum Srinivas2016-03-211-0/+1
| | | | Change-Id: Ibbfe089cefb96589ebba3964a7545f287b3217ca
* Merge "Fixes the agent message for uefi netboot for partition image"1.2.0Jenkins2016-03-212-2/+18
|\
| * Fixes the agent message for uefi netboot for partition imageNisha Agarwal2016-03-212-2/+18
| | | | | | | | | | | | | | | | | | | | | | | | The agent returns "efi_system_partition_uuid=None" in the status message for uefi netboot for partition images. This commit fixes to remove this unwanted message from the status message as efi partition is created only for localboot. Closes-bug: 1526289 Change-Id: I6376406cdde29493619f50b0a6cd8b6ce3784d6e
* | Merge "Bind to interface routable to the ironic host, not a random one"Jenkins2016-03-216-99/+179
|\ \
| * | Bind to interface routable to the ironic host, not a random oneDmitry Tantsur2016-03-216-99/+179
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Binding to the first interface that has an IP address is error-prone: there is no guarantee that ironic can reach us via this inteface. It is much safer to detect the interface facing ironic and bind to it. Unused LookupAgentInterfaceError exception is deleted. The TinyIPA build also requires iptables dependency at build time to insert the required kernel modules. Closes-Bug: #1558956 Change-Id: I9586805e6c7f52a50834bc03efeb72d1faa6cb65
* | | Merge "Fix tinyipa build uname, picking up hosts kernel"Jenkins2016-03-214-2/+113
|\ \ \ | |/ /
| * | Fix tinyipa build uname, picking up hosts kernelSam Betts2016-03-214-2/+113
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During the tinyipa build process we use the tinyipa package manager, tce-load. When tce-load trys to look for packages that are kernel specfic it uses uname to calculate the kernel version, and because we're building in a chroot it detects the hosts kernel version instead of the kernel version we are actually going to be using for the final tinyipa image, this causes it to fail to find certain packages. This patch injects a fake uname script into the tinyipa build and finalise environments to simulate running under the correct kernel version. Change-Id: I2b483806cbb1786763e32f3ccb7f88a6deeee3d1
* | | Merge "Replace SYSRQ commands"Jenkins2016-03-212-7/+11
|\ \ \ | |_|/ |/| |
| * | Replace SYSRQ commandsLucas Alvares Gomes2016-03-212-7/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is modifying the shutdown.sh script to not use SYSRQ when performing power actions. SYSRQ has a similar effect to a hardware reset button/power switch, which can be problematic after copying an image to the disk (data loss) therefore, this patch is changing the script to use soft power action via the poweroff and reboot commands. SYSRQ was required before because the ironic-python-agent service was running inside a docker container, but since we've moved it to run into a chroot (when built with coreos) or on the ramdisk's OS (when built with DIB) the SYSRQ actions are not needed anymore. In many parts of Ironic we were considering the standby.{power_off, reboot} methods of IPA to be soft actions, which they are not at present. This patch is also fixing that assumption. Change-Id: Ibe3a3f61a4a0e98b2c2501ad95154839933b4d7a Closes-Bug: #1557450
* | | Merge " make enforce_type=True in CONF.set_override"Jenkins2016-03-212-7/+12
|\ \ \
| * | | make enforce_type=True in CONF.set_overrideLiuNanke2016-01-122-7/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Method CONF.set_override to change config option's value with designated value in unit test, but never check if the designated vaule is valid. Each config option has a type like strOpt, BoolOpt, etc. StrOpt with parameter choices only allows values in set of choices. In short word, each config option has limitation for type and value. In production code, oslo.conf can ensure user's input is valid, but in unit test, test methods can pass if we use method CONF.set_override without parameter enforce_type=True even we pass wrong type or wrong value to config option. This commit makes sure calling method CONF.set_override with enforce_type=True. This commit also fixes violations. Note: We can't set enforce_type=True by default in oslo.config now, it may break all project's unit test. We can switch enforce_type=True by default when all project fix violations like this commit. Change-Id: Iba3e7fca01fc91e4396e698fc00cad35ba8f3543 Related-Bug: #1517839
* | | | Merge "Add psmisc and dosfstools to IPA packages list"Jenkins2016-03-211-1/+1
|\ \ \ \ | |_|_|/ |/| | |
| * | | Add psmisc and dosfstools to IPA packages listNisha Agarwal2016-03-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds the 'psmisc' and 'dosfstools' packages for python-ironic-agent. 'psmisc' is required by fuser command and dosfstools is required by mkfs for vfat creation. Partial-Bug: 1526289 Change-Id: I30bda5cd50c66d3a22ea611ad3ae7f43533d5770
* | | | Fix build tinyipa to work on FedoraMoshe Levi2016-03-213-5/+11
|/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch update the tinyipa script to work on Fedora. First issue I add was that chroot --userspec= didn't accepted the ts:staff, but work with uid and guid. Also I added env -i to start empty environment var for some reason my environment var mess up the build Change-Id: I5ed1995ba8a6d30af8e3a3fb51286e689cc15df9
* | | Merge "Add sync() command to the standby module"Jenkins2016-03-213-0/+32
|\ \ \
| * | | Add sync() command to the standby moduleLucas Alvares Gomes2016-03-183-0/+32
| | |/ | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch is adding a new command called sync to the standby module of IPA. The new command runs synchronously and it's responsible for flushing file system buffers to the disks. The initial intention for this command is to use it as part of the fix for the bug #1512492 where some hardware/firmwares do have problems to come back online after a soft ACPI power off, therefore we need to call sync() to make sure all file system buffers have been synced and then issue a hard power off (e.g via the BMC). Partial-Bug: #1512492 Change-Id: I5cd1d1b821426e995dc584452494b93ab23917e0
* | | Merge "Add support for partition images in agent driver."Jenkins2016-03-184-29/+343
|\ \ \ | |/ / |/| |
| * | Add support for partition images in agent driver.Faizan Barmawer2016-03-184-29/+343
| | | | | | | | | | | | | | | | | | | | | | | | | | | It also adds the ironic-lib in the requirements list of the IPA package. Partial-bug: 1526289 Depends-On: I22bc29a39bf5c35f3eecb6d4e51cebd6aee0ce19 Change-Id: I37908470484744bb720f741d378106d1cb1227a3
* | | Merge "Document hardware inventory sent to lookup and inspection"Jenkins2016-03-152-0/+49
|\ \ \
| * | | Document hardware inventory sent to lookup and inspectionDmitry Tantsur2016-02-182-0/+49
| | | | | | | | | | | | | | | | | | | | | | | | Also add a missing docstring to HardwareManager.list_hardware_info. Change-Id: Iee3584320f0591398e7761513ff588efeb62886d