1954 Commits

Author SHA1 Message Date
Dmitry Tantsur
a08029a44e Switch the inspector job to tinyIPA until DIB is fixed
Change-Id: Ibe4d212d83bc27163af1fa9aa82881ade2d647db
2020-07-03 10:31:59 +02:00
Dmitry Tantsur
ba3caa6c64 Increase the ESP partition size to 550 MiB when using software RAID
This has been a popular guidance, and diskimage-builder has recently
started following it.

Change-Id: I794c846fb191c15b0a30546bf64d624dfbde0fd4
2020-07-02 17:30:33 +02:00
Zuul
de7d5affe7 Merge "Mount all vfat partitions before calling grub2" 2020-07-02 10:37:04 +00:00
zhangbailin
c1c093fc2e Bump hacking min version to 3.0.1
flake8 new release 3.8.0 added new checks and gate pep8
job start failing. hacking 3.0.1 fix the pinning of flake8 to
avoid bringing in a new version with new checks.

Though it is fixed in latest hacking but 2.0 and 3.0 has cap for
flake8 as <4.0.0 which mean flake8 new version 3.9.0 can also
break the pep8 job if new check are added.

To avoid similar gate break in future, we need to bump the hacking min
version.

- http://lists.openstack.org/pipermail/openstack-discuss/2020-May/014828.html

Change-Id: Iff96a7a4c8f2a0f625a47ac44158d904fa132157
2020-06-30 23:58:44 +00:00
Arne Wiebalck
c5022790b3 Mount all vfat partitions before calling grub2
In order to ensure grub2 finds all files it needs, mount all
vfat partitions specified in the deployed image.

Story: #2007618
Task: #39629
Change-Id: Ie5b6e0abc3f266409562f9ecb26538126b667056
2020-06-30 18:31:58 +02:00
Dmitry Tantsur
00ad03b709 Fixes minor issues in the read() retries patch
Follow-up to commit c5b97eb781cf9851f9abe87a1500b4da55b8bde8.

Two things slipped through the cracks:
* ImageDownloadError was instantiated incorrectly, resulting in a wrong
  error message. This was uncovered by using assertRaisesRegext in tests.
* We allowed calling write(None). This was uncovered by avoiding sleep(4)
  in tests and enabling more failed calls before timeout.

Change-Id: If5e798c5461ea3e474a153574b0db2da96f2dfa8
2020-06-30 10:51:53 +02:00
Zuul
f97f8e2c06 Merge "Fix confusing logging when running asynchronous commands" 2020-06-29 22:40:02 +00:00
Zuul
9219aae291 Merge "Extend retries to 9, 10 seconds apart." 2020-06-29 22:40:01 +00:00
Zuul
17f1dd362c Merge "Add debug message to node lookup" 2020-06-29 22:22:14 +00:00
Riccardo Pittau
4e0981e386 Temporary switch to tinyipa jobs
To unlock the CI until the issue with the EPEL repo is fixed.

Change-Id: Ia939df9354ddcbb11852d99b672443d37b87a0fd
2020-06-29 15:08:49 +02:00
Dmitry Tantsur
0eee26ea66 Fix confusing logging when running asynchronous commands
We log them as completed when they start executing.

Also fix a problem in remove_large_keys that prevented items
with defaultdict from being logged.

Change-Id: I34a06cc85f55c693416f8c4c9877d55d6affafc9
2020-06-26 15:19:04 +02:00
Riccardo Pittau
5cc44d251f Add debug message to node lookup
This should help identify the start of the node lookup.

Change-Id: I72f0949fee84be5a2b06eab976c5560e252fa63a
2020-06-25 16:04:00 +02:00
Zuul
c94fb84497 Merge "Minor clean-up follow-up to timeout on read() fix" 2020-06-25 10:23:18 +00:00
Julia Kreger
7abda4eefe Minor clean-up follow-up to timeout on read() fix
Just some minor cleanup driven from the review process.

Change-Id: I0b3d73c251d6da6d85e11279990dcc36751e27e7
2020-06-24 10:02:28 -07:00
Julia Kreger
c77a7df851 Extend retries to 9, 10 seconds apart.
The download retry interval was previously five seconds which is
not long enough to recover after a hard network connectivity break
where we may be reliant upon network port forwarding hold-down
timers or even routing protocol route propogation to recover
communication.

Previously the time value was 5 seconds, with 3 attempts, meaning
15 seconds total ignoring the error detection timeouts.

Now it is 10 seconds, with 10 attempts, meaning 100 seconds before
the error detection timeouts.

Change-Id: I6d11edc9a3156f2bdc21c3d432ecc7625d652699
2020-06-23 20:27:49 +00:00
Julia Kreger
159ab9f0ce Add full download retries
Instead of just trying to get the connection and handler
for the download, lets try to retry the whole action of
of downloading.

Change-Id: I9217792d32e6f33c70f146a9b7d3ef58c5644d8a
2020-06-23 20:27:41 +00:00
Julia Kreger
c5b97eb781 Add timeout operations to try and prevent hang on read()
Socket read operations can be blocking and may not timeout as
expected when thinking of timeouts at the beginning of a
socket request. This can occur when streaming file contents
down to the agent and there is a hard connectivity break.

In other words, we could be in a situation like:

- read(fd, len) - Gets data
- Select returns context to the program, we do things with data.
** hard connectivity break for next 90 seconds**
-  read(fd, len) - We drain the in-memory buffer side of the socket.
-  Select returns context, we do things with our remaining data
** Server retransmits **
** Server times out due to no ack **
** Server closes socket and issues a FIN,RST packet to the client **
** Connectivity restored, Client never got FIN,RST **
** Client socket still waiting for more data **
- read(fd, len) - No data returned
- Select returns, yet we have no data to act on as the buffer is
  empty OR the buffered data doesn't meet our requried read len value.
  tl;dr noop
- read(fd, len) <-- We continue to try and read until the socket is
                    recognized as dead, which could be a long time.

NOTE: The above read()s are python's read() on an contents being
      streamed. Lower level reads exist, but brains will hurt
      if we try to cover the dynamics at that level.

As such, we need to keep an eye on when the last time we
received a packet, and treat that as if we have timed out
or not. Requests periodically yeilds back even when no data
has been received, in order to allow the caller to wall
clock the progress/status and take appropriate action.

When we exceed the timeout time value with our wall clock,
we will fail the download.

Change-Id: I7214fc9dbd903789c9e39ee809f05454aeb5a240
2020-06-23 13:25:09 -07:00
Zuul
46bf7e0ef4 Merge "Add a deploy step for writing an image" 2020-06-20 00:00:10 +00:00
Zuul
e8836e5359 Merge "Make get_partition_uuids work with whole disk images" 2020-06-20 00:00:09 +00:00
Dmitry Tantsur
29eab32040 Remove .travis.yml (wow, it is ancient)
Change-Id: I476a6eb5f64a6306038063cd2f96f96ace5c5d91
2020-06-18 14:18:43 +02:00
Dmitry Tantsur
6d7ec350ff Make get_partition_uuids work with whole disk images
We used to popular root UUID inside the message formatting function,
move it to actual prepare_image/cache_image calls.

Change-Id: Ifb22220dfd49633e8623dd76f7a6a128f5874b78
2020-06-17 14:38:58 +02:00
Zuul
1609551a90 Merge "Fix apidoc build" 2020-06-16 10:41:49 +00:00
Julia Kreger
cf870ae510 Fix apidoc build
Change-Id: Id7c5686cdbdc79812e06eb4a5f87eddc75005cc3
2020-06-15 11:30:02 -07:00
Zuul
751dac7b90 Merge "Split and move logic for partition tables" 2020-06-11 22:53:07 +00:00
Zuul
54c1c32ae6 Merge "Add ffi development lib to bindep" 2020-06-10 22:41:36 +00:00
Zuul
504c52389b Merge "Document how to output journal to console" 2020-06-09 16:16:24 +00:00
Jay Faulkner
3dd929eb92 Document how to output journal to console
Having all logs from the device visible on console may be useful for
deployers who do not enable login access to IPA ramdisks as a matter of
policy.

Change-Id: If9d29dd00a8c35fe679e1f54d1574eed0a79470c
2020-06-09 14:30:18 +00:00
Zuul
d7cf7bd341 Merge "New extension call to return partition UUIDs" 2020-06-09 12:31:55 +00:00
Zuul
b9af690bd3 Merge "Make the install_bootloader command asynchronous" 2020-06-09 12:31:53 +00:00
Hervé Beraud
648ac493ac drop mock from lower-constraints
The mock third party library was needed for mock support in py2
runtimes. Since we now only support py36 and later, we don't need it
in lower-constraints.

These changes will help us to drop `mock` from openstack/requirements

Change-Id: I2901831fad91a35a095936fcc6f84663f123880b
2020-06-09 01:16:01 +02:00
Dmitry Tantsur
7e5fe1121e Make the install_bootloader command asynchronous
It does not return anything, so it makes no point for it to be
synchronous. Ironic always calls it with wait=True, so there is
no problem with backward compatibility either.

Change-Id: I44fec2e0cb54486328ce71263613d8592e384870
2020-06-08 15:10:05 +02:00
Riccardo Pittau
4da53ab7d4 Add ffi development lib to bindep
The ffi development library is necessary to build ipa.

Change-Id: I1c5c5a29e073774e93a6df6d754e1eb97aa9b86b
2020-06-05 14:34:40 +02:00
Dmitry Tantsur
9d4cf5532f Add a deploy step for writing an image
The new step just invokes the appropriate method of the standby extension.

Change-Id: Ic74f83ab2b7e58f8e4b46e0abfab79e221afeb3e
Story: 2006963
2020-06-02 15:23:54 +02:00
Dmitry Tantsur
6c1545b75b New extension call to return partition UUIDs
Currently we parse the success message from the write_image call.
This is inconvenient and incompatible with the deploy steps split.

Change-Id: I258dc1ff1ad1c9df5cbc26a7825d9e7ef2f3205b
Story: #2006963
2020-06-02 15:05:59 +02:00
Zuul
3fbcc7c38e Merge "Convert jobs to dib" 2020-05-29 08:17:09 +00:00
Fedor Tarasenko
952489020e Fix an issue with high cpu usage caused by ironic-python-agent
Currently running of ipa-centos8-stable-ussuri image causes 100%
cpu usage while cleaning. Proposed change fixes this behavior and
significantly speeds up cleaning.

Change-Id: I2ba9a69f22b11830d8ff1bc346b17bf1a52f25b0
Story: #2007696
Task: #39809
2020-05-25 22:18:17 +03:00
Riccardo Pittau
557d5603a2 Split and move logic for partition tables
Move and split the logic to create the partition tables when
applying raid configuration.

Change-Id: Ic76dd2067ace02dd02351caca0c7f9b05571e510
2020-05-25 08:11:28 +00:00
Andreas Jaeger
f108b7a2d0 Switch to newer openstackdocstheme and reno versions
Switch to openstackdocstheme 2.2.1 and reno 3.1.0 versions. Using
these versions will allow especially:
* Linking from HTML to PDF document
* Allow parallel building of documents
* Fix some rendering problems

Update Sphinx version as well.

Set openstackdocs_pdf_link to link to PDF file. Note that
the link to the published document only works on docs.openstack.org
where the PDF file is placed in the top-level html directory. The
site-preview places the PDF in a pdf directory.

Disable openstackdocs_auto_name to use 'project' variable as name.

Change pygments_style to 'native' since old theme version always used
'native' and the theme now respects the setting and using 'sphinx' can
lead to some strange rendering.

openstackdocstheme renames some variables, so follow the renames
before the next release removes them. A couple of variables are also
not needed anymore, remove them.
This repo uses storyboard, configure the proper variables.

See also
http://lists.openstack.org/pipermail/openstack-discuss/2020-May/014971.html

Change-Id: Id084bfc9d5ae7a95d3cba22a00b4c03a35967ee4
2020-05-23 18:29:40 +02:00
Riccardo Pittau
437a8c61d1 Convert jobs to dib
This patch converts the main jobs to dib images.
The discrepancy in the names is due to the fact that some other
projects, like diskimage-builder and ironic-python-agent-builder,
use those jobs, so we leave them for the time being.
The same thing happen for the tinyipa jobs, we create some ad-hoc
jobs until we convert the jobs in the other projects.

Depends-On: https://review.opendev.org/718607

Change-Id: If12a6152015ad00145002f0e5cc2bb948ea6457a
2020-05-15 10:46:39 +02:00
Zuul
bfa184e88d Merge "Update lower-constraints.txt" 2020-05-14 01:26:24 +00:00
Zuul
fc7ac48a6e Merge "Fix pep8 errors" 2020-05-13 11:27:36 +00:00
Zuul
363c4c3676 Merge "CI: raise DIB jobs memory to 3 GiB" 2020-05-13 10:19:34 +00:00
Zuul
cb5769d307 Merge "Fix TypeError with newer version of lshw" 2020-05-12 20:26:25 +00:00
Zuul
5e20d7b7f6 Merge "Add function to calculate memory" 2020-05-12 20:26:23 +00:00
Riccardo Pittau
06267a9716 Update lower-constraints.txt
We need to list all dependencies in lower-constraints

Change-Id: I6c62b125da68f3d9aa2f08df34232206b194bd42
2020-05-12 17:53:05 +02:00
Dmitry Tantsur
67dd91dbea CI: raise DIB jobs memory to 3 GiB
The only reason the current 2 GiB nodes work is because DIB started
removing linux-firmware from its images. Unfortunately, we need this
package on bare metal, and readding it brings to 3 GiB consump

Change-Id: Ic0f2274b29abe7470b835cfc305898643204e1f6
2020-05-12 14:07:33 +02:00
Riccardo Pittau
f6ee877cde Fix pep8 errors
For some reason pep8 test started to complain causing mayhem.
This patch fixes the issues and does some refactor of dmi_inspector
tests moving pure data to a separate file.

Change-Id: Ia244a496acd80abad679f8ae9832d4f0471500e7
2020-05-12 10:57:23 +02:00
Sean McGinnis
e00fe3b85d
Add py38 package metadata
Now that we are running the Victoria tests that include a
voting py38, we can now add the Python 3.8 metadata to the
package information to reflect that support.

Change-Id: I7631fe14a812624e9d8d0a1946ffb5b0f6dec893
Signed-off-by: Sean McGinnis <sean.mcginnis@gmail.com>
2020-05-02 07:48:12 -05:00
318828ce10 Add Python3 victoria unit tests
This is an automatically generated patch to ensure unit testing
is in place for all the of the tested runtimes for victoria.

See also the PTI in governance [1].

[1]: https://governance.openstack.org/tc/reference/project-testing-interface.html

Change-Id: Ib5e28a43be2514a25c033c74250a875af0a3363f
2020-04-27 14:25:50 +00:00
0edc9c1224 Update master for stable/ussuri
Add file to the reno documentation build to show release notes for
stable/ussuri.

Use pbr instruction to increment the minor version number
automatically so that master versions are higher than the versions on
stable/ussuri.

Change-Id: I697166b2f7ff2f5a5d873cfcfc95ee1729de7140
Sem-Ver: feature
2020-04-27 14:25:47 +00:00