Introspection naturally happens in large bulks, after which it's inactive.
Small pool for DHCP addresses means that we'll have conflicts due to how
dnsmasq distributes them by default - using hashing. This option tells dnsmasq
to allocate IP addresses sequentially instead to avoid these conflicts.
See https://bugzilla.redhat.com/show_bug.cgi?id=1301659 for detailed analysis.
The drawback of this option is that long-running clients may switch IP
addresses if their lease expires. This is not a concern for short introspection
process.
This change may obsolete the need in the delay between 2 introspections.
Change-Id: Id277f3d31902bee16d3b048dbde5c34af905f0bc
Change the default introspection ramdisk kernel cmdline:
* Set ipa-debug=1 to enable IPA debug logging
* Set "vga=normal console=tty0 console=ttyS0" to get some actual logs saved
and visible through virsh.
Change-Id: Ib049d99a096ad626d3fcf8094f5e358d5b91ff92
Closes-Bug: #1549836
The source builder in DIB has been broken for a while now, and anyway
we have to use the CoreOS builder to create an IPA+inspector gate:
I5631866edee42d5358f692e4fbcd82f1a6a1d4db.
We can provide DIB as an option again as soon as it's fixed.
Change-Id: I9a53c3bedd4106a4b03647209ea2a49efa4b2a47
There is no reason for it to be the default 1 hour, as working introspection
ends within 2-3 minutes on the virtual environment.
Change-Id: I9b9b868f7c30e15c0f5131d53958db28d287ca7d
Currently, when execute devstack/stack.sh,
agent tarball is downloaded every time even if
it exists already.
This patch set
* checks whether kernel/ramdisk exists
and if there are, doesn't down load them.
* checks whether ironic agent kernel/ramdisk exists
and if there are, copy them.
Change-Id: Ic546ba8fc0cc14dc7cf13433e09db35a0854d115
Closes-Bug: #1533491
This should land as soon as DIB 1.7.2 hits the gate.
This reverts commit 357bbcbb1f471cbeca5e9d8ba6d9731591f1290b.
Change-Id: Id9560c67f2339eb6a812c5c28b428a68b4138a79
Currently our logging in processing is very inconsistent:
some log strings mention node UUID, some - node BMC IP, some nothing.
This change introduces a common prefix for all processing logs
based on as much information as possible.
Only code that actually have some context about the node (either
NodeInfo or introspection data) is updated.
Also logging BMC addresses can be disabled now.
Updates example.conf (a lot of updated comments from oslo).
Change-Id: Ib20f2acdc60bfaceed7a33467557b92857c32798
Add info logging to actually see the resulting file name, make other
logging improvement.
Also set ironic-inspector to always store logs.
Change-Id: I75fe35a9ce564b0fd23fbe6f5027e0b576195bcd
* Update default log levels
* Make iptables logging more compact by removing newlines
* Enable debug logging in devstack plugin by default
Change-Id: I2af558078cb27edb5f162372d52c048f0e659079
Use DevStack function for that. Also create a signing cache dir
for tokens and clean it on teardown of DevStack.
Change-Id: I4890f4a31883afdfd8d5eb00f2457a7c5c211f88
Closes-Bug: #1484014
After pxe_ssh got support for cleaning, it now takes substantial
time to get from manageable to available, we need to accound for it.
Also simplify debugging of gate issues:
* Show node info before failing due to provision state not reached
* Shorten retry timeout for enroll->manageable transition to 1 minute
* Report nova hypervisor-stats before failing
Closes-Bug: #1508001
Change-Id: Ic11bd20509b726b1ff2d3a7edd63479e9b79486e
Seems like we were using this function in a wrong way, now change
Icc0eb3808a2b6583828d8c47f0af4181e7e2c75a broke us.
Depends-On: I19bb8ada9a6f42d375838cc88a376715918c2a3e
Closes-Bug: #1506436
Change-Id: I6fd6d6ebc9a8057eb3ec90f989c709cbac86b572
MySQL can't use TEXT fields for primary keys. This change switches all them
to VARCHAR(255). This change should not be breaking for SQLite, as it
does not distinguish between these two data types.
README is updated with up-to-date information about the connection option.
Change-Id: I0153855c1827b55067a7c04310bfad7eb71f35fe
Closes-Bug: #1501746
Previously exercise.sh would fail in this case. It does not matter
for the gate, but simplifies testing locally.
Change-Id: Ibfa519ae15b17d6c8ed915a01e9b56296bab1bab
This patch adds a new command ironic-inspector-dbsync which can be used
to sync the ironic inspector database using alembic migrations. It adds
a migration to match the current required db schema.
Change-Id: I21188b3f5003c8ab43d82903473e2a6ef7f755a0
Closes-Bug: #1495620
This patch set adds support for rootwrap in order to execute iptables.
Co-Authored-By: Dmitry Tantsur <dtantsur@redhat.com>
Change-Id: I7c424c17222f119730b8c5ac0daafd9906282e4d
Closes-bug: #1495844
Gate for liberty is using python-ironic-inspector-client 1.2.0.
Unused function curl_ins is not deleted, as it's likely to be used
the next time we introduce a new API.
Change-Id: I019023cb9add125a7c43b94c3a5a5b029f812c51
Both have potential of breaking our gate (glance is very close to doing it).
Unfortunately, due to v2 vs v3 issue we can't use `openstack endpoint show`
now, so leaving a FIXME item.
Change-Id: Id3e59507409e5fd9d4c24d9796b8fa6249f73f0c
This patch introduces a simple JSON-based DSL to run on introspected
data. Conditions and actions are provided via new plugin entry points.
This patch is missing PUT operation on a rule, this can be added later.
Also not all planned conditions and actions are added in this patch,
will also follow up.
Implements: blueprint rules
Change-Id: If4d17b5f1462d03879cb4c2ff4e5cb3ea364b697
This adds the ability to store all of the data collected
during introspection. The configuration option
"[processing] store_data" (defaults to 'none'), determines
this behavior. Initially, only 'none' and 'swift' are
supported. If 'swift' is used, the data is stored in Swift
with the object name of "inspector_data-<UUID>".
Adds an endpoint /v1/introspection/<UUID>/data which
retrieves the data according to the method in
"[processing] store_data". Returns 404 if this option
is disabled.
There is a further option to store the location of the data
in the Ironic Node.extra column. For 'swift', this will be
the name of the swift object. The option,
"[processing] store_data_location" determines the key
name in the Node.extra column. (defaults to not storing
the location).
Change-Id: Ibc38064f7ea56f85b9f5a77ef6f62a50f0381ff4
Implements: blueprint store-introspection-data
KVM PXE code seems broken in an interesting way, when you try to PXE
boot too many nodes. This change makes inspector sleep configurable
amount of time between powering on nodes with *_ssh driver.
Work around in devstack/exercise.sh is no longer needed and is dropped.
Note that this change is not HA, so we might revisit it in the future.
Change-Id: I9b16592f9b5130e90c02fce1b421887f451e397b
Closes-Bug: #1473024
Currently, Ironic-inspector uses SQLite as database.
We should migrate to oslo.db.
In this patch, make database connect operations to oslo_db.
Change-Id: Ibd0f787b570bc101eab9fbd0b59d8a775a95e2e0
Implements: blueprint migrate-to-oslodb
When there are 2 nova nodes, devstack/exercise.sh loops forever.
This patch fixes this bug.
Change-Id: I0442e5b06c23ddf4771a9a404fc770965db503e4
Closes-Bug: #1472154
* Put nodes in a proper provision state
* Use Ironic API instead of Inspector one for starting introspection
* Insert sleeps between sending nodes on introspection
* Add check on provision state
* Update devstack/plugin.sh to default to network not overlapping
with devstack-gate default one
Closes-Bug: #1470346
Change-Id: Ib7c8fd32cca792c82030e2235166f05d6a40d747
With integration tests on the radar we no longer need to do
integration checking between ramdisk code and inspector here.
Also copy integration test script from functest to devstack.
Once we update the gate to use the new script, the whole functest
directory should be deleted.
Change-Id: Ic29e954fac1c535cb4f83d46ccea9ebfb80f840c
Closes-Bug: #1468748