Skip to content
This repository has been archived by the owner on Oct 13, 2023. It is now read-only.

[ART-2617] use upstream-equivalent FROM images when a flag is set in group.yaml #646

Merged
merged 7 commits into from
Sep 29, 2022

Conversation

locriandev
Copy link
Contributor

@openshift-ci openshift-ci bot requested review from jupierce and thegreyd September 19, 2022 11:14
@sosiouxme sosiouxme changed the title [ART-2617] use upstream-equivalent FROM images when a flag in set in group.yaml [ART-2617] use upstream-equivalent FROM images when a flag is set in group.yaml Sep 23, 2022
Copy link
Contributor

@sosiouxme sosiouxme left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

couldn't get it to work as expected, will probably need a better review later.

when you are refactoring into smaller methods, that's a time i'd really like to see some unit tests added for them (which this file is sorely lacking, due in part to its giant methods).

return stream.image

# When canonical_builders_from_upstream flag is set, try to match upstream FROM
original_parent = original_parent
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

uh...?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Removed.

# specific sha.
# If you are here trying to figure out how to change this behavior, you should
# consider using 'from!:' in the assembly metadata for this component. This will
# all you to fully pin the parent images (e.g. {'from!:' ['image': <pullspec>] })
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# all you to fully pin the parent images (e.g. {'from!:' ['image': <pullspec>] })
# allow you to fully pin the parent images (e.g. {'from!:' ['image': <pullspec>] })

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

labels = json.loads(out)['config']['config']['Labels']
builder_tag = f'{labels["version"]}-{labels["release"]}'

# Verify wether the image exists
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Verify wether the image exists
# Verify whether the image exists

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

Comment on lines 1630 to 1650
upstream_equivalent = f'registry-proxy.engineering.redhat.com/rh-osbs/' \
f'openshift-golang-builder:{builder_tag}'
cmd = f'oc image info {upstream_equivalent} --filter-by-os linux/amd64 -o json'
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actually I don't want to assume this is just for golang-builder (even though that's the only use case for now), and I don't want to look things up by registry repo. With one more label (com.redhat.component) we have the NVR and can look up anything in brew!

That does leave the question of how to make sure we're not substituting for members, though, and I think the easiest rule to follow here is... only if the image was specified with

  builder:
  - stream: ...

then it's eligible for override by whatever the upstream is pointing at, if that has the labels of a brew NVR. (And I think that's already the only path to this code, right?) I thought it might be useful to be able to do this for base images too but after a bit of consideration, not really.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, this code is executed only for images specified with builder: stream (and for assembly stream builds...)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed in ac3e683

@@ -1612,6 +1612,50 @@ def _mapped_image_for_assembly_build(self, parent_images, i):
unique_pullspec += f':{parent_build_nvr["version"]}-{parent_build_nvr["release"]}'
return unique_pullspec

def _mapped_image_from_stream(self, image, original_parent, dfp):
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

could there be some logger.debug statements in here, and probably even a logger.info for when the upstream does override our config? in my tests it wasn't easy to see why the upstream override isn't happening as expected. actually i don't think it's even getting here

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added in 98d9760


except ChildProcessError:
# It doesn't. Emit a warning and do typical stream resolution
logger.warning(f'Could not match upstream parent {original_parent}')
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

self.logger

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Fixed

except ChildProcessError:
# It doesn't. Emit a warning and do typical stream resolution
logger.warning(f'Could not match upstream parent {original_parent}')
stream = self.runtime.resolve_stream(image.stream)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

already did this...?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Right. Removed

@openshift-eng openshift-eng deleted a comment from openshift-bot Sep 24, 2022
@openshift-eng openshift-eng deleted a comment from openshift-bot Sep 24, 2022
@openshift-eng openshift-eng deleted a comment from openshift-bot Sep 24, 2022
@openshift-eng openshift-eng deleted a comment from openshift-bot Sep 24, 2022
@openshift-eng openshift-eng deleted a comment from openshift-bot Sep 24, 2022
@openshift-eng openshift-eng deleted a comment from openshift-bot Sep 24, 2022
@openshift-eng openshift-eng deleted a comment from openshift-bot Sep 24, 2022
@openshift-bot
Copy link

Build #10

GLOB sdist-make: /mnt/workspace/jenkins/working/art-tools_doozer_PR-646/setup.py
py38 recreate: /mnt/workspace/jenkins/working/art-tools_doozer_PR-646/.tox/py38
py38 installdeps: -rrequirements-dev.txt
py38 inst: /mnt/workspace/jenkins/working/art-tools_doozer_PR-646/.tox/.tmp/package/1/rh-doozer-2.0.15.dev124+gb804022.zip
py38 installed: aiofiles==22.1.0,astroid==2.12.10,attrs==22.1.0,autopep8==1.7.0,bashlex==0.16,bcrypt==4.0.0,certifi==2022.9.24,cffi==1.15.1,charset-normalizer==2.1.1,click==8.1.3,coverage==6.4.4,cryptography==38.0.1,decorator==5.1.1,Deprecated==1.2.13,dill==0.3.5.1,distlib==0.3.6,dockerfile-parse==1.2.0,filelock==3.8.0,flake8==5.0.4,flexmock==0.11.3,future==0.18.2,gssapi==1.8.1,idna==3.4,iniconfig==1.1.1,isort==5.10.1,koji==1.30.0,krb5==0.4.0,lazy-object-proxy==1.7.1,mccabe==0.7.0,mock==4.0.3,mysql-connector-python==8.0.30,openshift-client==1.0.18,packaging==21.3,paramiko==2.11.0,platformdirs==2.5.2,pluggy==1.0.0,protobuf==3.20.1,py==1.11.0,pycodestyle==2.9.1,pycparser==2.21,pyflakes==2.5.0,pygit2==1.10.1,PyGithub==1.55,PyJWT==2.5.0,pylint==2.15.3,PyNaCl==1.5.0,pyparsing==3.0.9,pyspnego==0.6.0,pytest==7.1.3,python-dateutil==2.8.2,PyYAML==6.0,requests==2.28.1,requests-gssapi==1.2.3,requests-kerberos==0.14.0,rh-doozer @ file:///mnt/workspace/jenkins/working/art-tools_doozer_PR-646/.tox/.tmp/package/1/rh-doozer-2.0.15.dev124%2Bgb804022.zip,semver==2.13.0,setuptools-scm==7.0.5,six==1.16.0,tenacity==8.1.0,toml==0.10.2,tomli==2.0.1,tomlkit==0.11.4,tox==3.26.0,typing==3.7.4.3,typing-extensions==4.3.0,urllib3==1.26.12,virtualenv==20.16.5,wrapt==1.14.1
py38 run-test-pre: PYTHONHASHSEED='638430070'
py38 run-test: commands[0] | coverage run --branch --source doozerlib -m unittest discover -t . -s tests/
.................................................................................................................s.s....................................s.s...s.s.s..s.s.s.........................../usr/lib64/python3.8/multiprocessing/pool.py:265: ResourceWarning: unclosed running multiprocessing pool <multiprocessing.pool.ThreadPool state=RUN pool_size=10>
  _warn(f"unclosed running multiprocessing pool {self!r}",
ResourceWarning: Enable tracemalloc to get the object allocation traceback
...............................................
----------------------------------------------------------------------
Ran 234 tests in 1.345s

OK (skipped=10)
py38 run-test: commands[1] | flake8
py38 run-test: commands[2] | coverage report
Name                                          Stmts   Miss Branch BrPart  Cover
-------------------------------------------------------------------------------
doozerlib/__init__.py                             9      2      2      1    73%
doozerlib/assembly.py                           164     43     99      8    70%
doozerlib/assembly_inspector.py                 177    158    102      0     8%
doozerlib/assertion.py                           13      0      6      0   100%
doozerlib/brew.py                               347    200    162      4    40%
doozerlib/build_status_detector.py               85     10     56      3    87%
doozerlib/cli/__init__.py                       103     45     20      0    47%
doozerlib/cli/__main__.py                      1153   1153    468      0     0%
doozerlib/cli/cli_opts.py                        15      3      6      0    86%
doozerlib/cli/config_plashet.py                 536    536    248      0     0%
doozerlib/cli/detect_embargo.py                 167     35     70      8    75%
doozerlib/cli/get_nightlies.py                  233     63    139      3    71%
doozerlib/cli/images_health.py                   82     30     26      2    59%
doozerlib/cli/images_streams.py                 625    625    264      0     0%
doozerlib/cli/inspect_stream.py                  46     46     14      0     0%
doozerlib/cli/release_calc_upgrade_tests.py      24     24      6      0     0%
doozerlib/cli/release_gen_assembly.py           218    218    112      0     0%
doozerlib/cli/release_gen_payload.py            577    191    256     15    63%
doozerlib/cli/rpms_build.py                     165     59     58      8    57%
doozerlib/cli/scan_sources.py                   179    138     96      2    17%
doozerlib/config.py                              97     97     46      0     0%
doozerlib/constants.py                           11      0      0      0   100%
doozerlib/coverity.py                           245    215     76      0    10%
doozerlib/dblib.py                              257    154     74      4    37%
doozerlib/distgit.py                           1495    950    728     40    34%
doozerlib/dotconfig.py                           54     43     33      0    15%
doozerlib/exceptions.py                           2      0      2      0   100%
doozerlib/exectools.py                          197    107     78     10    43%
doozerlib/gitdata.py                            171    137     86      0    17%
doozerlib/image.py                              495    324    220      6    29%
doozerlib/logutil.py                              9      0      4      1    92%
doozerlib/metadata.py                           439    161    212     30    58%
doozerlib/model.py                              113     21     44      2    83%
doozerlib/olm/__init__.py                         0      0      0      0   100%
doozerlib/olm/bundle.py                         315    230     74      0    22%
doozerlib/osbs2_builder.py                      114     29     46     18    67%
doozerlib/plashet.py                            134      9     92     15    89%
doozerlib/pushd.py                               22      2      4      0    92%
doozerlib/repos.py                              209    105    117     17    45%
doozerlib/rhcos.py                              170     33     62     10    76%
doozerlib/rpm_builder.py                        232     31    125     32    81%
doozerlib/rpm_utils.py                          134     33     90     11    74%
doozerlib/rpmcfg.py                             141     58     62      8    55%
doozerlib/runtime.py                            922    670    378      8    22%
doozerlib/source_modifications.py               112     29     34      4    73%
doozerlib/state.py                               23     12     10      0    39%
doozerlib/util.py                               411    207    154      5    46%
-------------------------------------------------------------------------------
TOTAL                                         11442   7236   5061    275    34%
___________________________________ summary ____________________________________
  py38: commands succeeded
  congratulations :)

@openshift-eng openshift-eng deleted a comment from openshift-bot Sep 26, 2022
@openshift-eng openshift-eng deleted a comment from openshift-bot Sep 26, 2022
@openshift-bot
Copy link

Build #11

GLOB sdist-make: /mnt/workspace/jenkins/working/art-tools_doozer_PR-646/setup.py
py38 inst-nodeps: /mnt/workspace/jenkins/working/art-tools_doozer_PR-646/.tox/.tmp/package/1/rh-doozer-2.0.15.dev124+g34cb193.zip
py38 installed: aiofiles==22.1.0,astroid==2.12.10,attrs==22.1.0,autopep8==1.7.0,bashlex==0.16,bcrypt==4.0.0,certifi==2022.9.24,cffi==1.15.1,charset-normalizer==2.1.1,click==8.1.3,coverage==6.4.4,cryptography==38.0.1,decorator==5.1.1,Deprecated==1.2.13,dill==0.3.5.1,distlib==0.3.6,dockerfile-parse==1.2.0,filelock==3.8.0,flake8==5.0.4,flexmock==0.11.3,future==0.18.2,gssapi==1.8.1,idna==3.4,iniconfig==1.1.1,isort==5.10.1,koji==1.30.0,krb5==0.4.0,lazy-object-proxy==1.7.1,mccabe==0.7.0,mock==4.0.3,mysql-connector-python==8.0.30,openshift-client==1.0.18,packaging==21.3,paramiko==2.11.0,platformdirs==2.5.2,pluggy==1.0.0,protobuf==3.20.1,py==1.11.0,pycodestyle==2.9.1,pycparser==2.21,pyflakes==2.5.0,pygit2==1.10.1,PyGithub==1.55,PyJWT==2.5.0,pylint==2.15.3,PyNaCl==1.5.0,pyparsing==3.0.9,pyspnego==0.6.0,pytest==7.1.3,python-dateutil==2.8.2,PyYAML==6.0,requests==2.28.1,requests-gssapi==1.2.3,requests-kerberos==0.14.0,rh-doozer @ file:///mnt/workspace/jenkins/working/art-tools_doozer_PR-646/.tox/.tmp/package/1/rh-doozer-2.0.15.dev124%2Bg34cb193.zip,semver==2.13.0,setuptools-scm==7.0.5,six==1.16.0,tenacity==8.1.0,toml==0.10.2,tomli==2.0.1,tomlkit==0.11.4,tox==3.26.0,typing==3.7.4.3,typing-extensions==4.3.0,urllib3==1.26.12,virtualenv==20.16.5,wrapt==1.14.1
py38 run-test-pre: PYTHONHASHSEED='209507644'
py38 run-test: commands[0] | coverage run --branch --source doozerlib -m unittest discover -t . -s tests/
.................................................................................................................s.s....................................s.s...s.s.s..s.s.s........................................./usr/lib64/python3.8/multiprocessing/pool.py:265: ResourceWarning: unclosed running multiprocessing pool <multiprocessing.pool.ThreadPool state=RUN pool_size=10>
  _warn(f"unclosed running multiprocessing pool {self!r}",
ResourceWarning: Enable tracemalloc to get the object allocation traceback
.................................
----------------------------------------------------------------------
Ran 234 tests in 1.320s

OK (skipped=10)
py38 run-test: commands[1] | flake8
py38 run-test: commands[2] | coverage report
Name                                          Stmts   Miss Branch BrPart  Cover
-------------------------------------------------------------------------------
doozerlib/__init__.py                             9      2      2      1    73%
doozerlib/assembly.py                           164     43     99      8    70%
doozerlib/assembly_inspector.py                 177    158    102      0     8%
doozerlib/assertion.py                           13      0      6      0   100%
doozerlib/brew.py                               347    200    162      4    40%
doozerlib/build_status_detector.py               85     10     56      3    87%
doozerlib/cli/__init__.py                       103     45     20      0    47%
doozerlib/cli/__main__.py                      1153   1153    468      0     0%
doozerlib/cli/cli_opts.py                        15      3      6      0    86%
doozerlib/cli/config_plashet.py                 536    536    248      0     0%
doozerlib/cli/detect_embargo.py                 167     35     70      8    75%
doozerlib/cli/get_nightlies.py                  233     63    139      3    71%
doozerlib/cli/images_health.py                   82     30     26      2    59%
doozerlib/cli/images_streams.py                 625    625    264      0     0%
doozerlib/cli/inspect_stream.py                  46     46     14      0     0%
doozerlib/cli/release_calc_upgrade_tests.py      24     24      6      0     0%
doozerlib/cli/release_gen_assembly.py           218    218    112      0     0%
doozerlib/cli/release_gen_payload.py            577    191    256     15    63%
doozerlib/cli/rpms_build.py                     165     59     58      8    57%
doozerlib/cli/scan_sources.py                   179    138     96      2    17%
doozerlib/config.py                              97     97     46      0     0%
doozerlib/constants.py                           11      0      0      0   100%
doozerlib/coverity.py                           245    215     76      0    10%
doozerlib/dblib.py                              257    154     74      4    37%
doozerlib/distgit.py                           1493    948    728     40    34%
doozerlib/dotconfig.py                           54     43     33      0    15%
doozerlib/exceptions.py                           2      0      2      0   100%
doozerlib/exectools.py                          197    107     78     10    43%
doozerlib/gitdata.py                            171    137     86      0    17%
doozerlib/image.py                              495    324    220      6    29%
doozerlib/logutil.py                              9      0      4      1    92%
doozerlib/metadata.py                           439    161    212     30    58%
doozerlib/model.py                              113     21     44      2    83%
doozerlib/olm/__init__.py                         0      0      0      0   100%
doozerlib/olm/bundle.py                         315    230     74      0    22%
doozerlib/osbs2_builder.py                      114     29     46     18    67%
doozerlib/plashet.py                            134      9     92     15    89%
doozerlib/pushd.py                               22      2      4      0    92%
doozerlib/repos.py                              209    105    117     17    45%
doozerlib/rhcos.py                              170     33     62     10    76%
doozerlib/rpm_builder.py                        232     31    125     32    81%
doozerlib/rpm_utils.py                          134     33     90     11    74%
doozerlib/rpmcfg.py                             141     58     62      8    55%
doozerlib/runtime.py                            922    670    378      8    22%
doozerlib/source_modifications.py               112     29     34      4    73%
doozerlib/state.py                               23     12     10      0    39%
doozerlib/util.py                               411    207    154      5    46%
-------------------------------------------------------------------------------
TOTAL                                         11440   7234   5061    275    34%
___________________________________ summary ____________________________________
  py38: commands succeeded
  congratulations :)

@openshift-bot
Copy link

Build #12

GLOB sdist-make: /mnt/workspace/jenkins/working/art-tools_doozer_PR-646/setup.py
py38 inst-nodeps: /mnt/workspace/jenkins/working/art-tools_doozer_PR-646/.tox/.tmp/package/1/rh-doozer-2.0.15.dev125+gac3e683.zip
py38 installed: aiofiles==22.1.0,astroid==2.12.10,attrs==22.1.0,autopep8==1.7.0,bashlex==0.16,bcrypt==4.0.0,certifi==2022.9.24,cffi==1.15.1,charset-normalizer==2.1.1,click==8.1.3,coverage==6.4.4,cryptography==38.0.1,decorator==5.1.1,Deprecated==1.2.13,dill==0.3.5.1,distlib==0.3.6,dockerfile-parse==1.2.0,filelock==3.8.0,flake8==5.0.4,flexmock==0.11.3,future==0.18.2,gssapi==1.8.1,idna==3.4,iniconfig==1.1.1,isort==5.10.1,koji==1.30.0,krb5==0.4.0,lazy-object-proxy==1.7.1,mccabe==0.7.0,mock==4.0.3,mysql-connector-python==8.0.30,openshift-client==1.0.18,packaging==21.3,paramiko==2.11.0,platformdirs==2.5.2,pluggy==1.0.0,protobuf==3.20.1,py==1.11.0,pycodestyle==2.9.1,pycparser==2.21,pyflakes==2.5.0,pygit2==1.10.1,PyGithub==1.55,PyJWT==2.5.0,pylint==2.15.3,PyNaCl==1.5.0,pyparsing==3.0.9,pyspnego==0.6.0,pytest==7.1.3,python-dateutil==2.8.2,PyYAML==6.0,requests==2.28.1,requests-gssapi==1.2.3,requests-kerberos==0.14.0,rh-doozer @ file:///mnt/workspace/jenkins/working/art-tools_doozer_PR-646/.tox/.tmp/package/1/rh-doozer-2.0.15.dev125%2Bgac3e683.zip,semver==2.13.0,setuptools-scm==7.0.5,six==1.16.0,tenacity==8.1.0,toml==0.10.2,tomli==2.0.1,tomlkit==0.11.4,tox==3.26.0,typing==3.7.4.3,typing-extensions==4.3.0,urllib3==1.26.12,virtualenv==20.16.5,wrapt==1.14.1
py38 run-test-pre: PYTHONHASHSEED='3243757372'
py38 run-test: commands[0] | coverage run --branch --source doozerlib -m unittest discover -t . -s tests/
.................................................................................................................s.s....................................s.s...s.s.s..s.s.s........................................./usr/lib64/python3.8/multiprocessing/pool.py:265: ResourceWarning: unclosed running multiprocessing pool <multiprocessing.pool.ThreadPool state=RUN pool_size=10>
  _warn(f"unclosed running multiprocessing pool {self!r}",
ResourceWarning: Enable tracemalloc to get the object allocation traceback
.................................
----------------------------------------------------------------------
Ran 234 tests in 1.303s

OK (skipped=10)
py38 run-test: commands[1] | flake8
py38 run-test: commands[2] | coverage report
Name                                          Stmts   Miss Branch BrPart  Cover
-------------------------------------------------------------------------------
doozerlib/__init__.py                             9      2      2      1    73%
doozerlib/assembly.py                           164     43     99      8    70%
doozerlib/assembly_inspector.py                 177    158    102      0     8%
doozerlib/assertion.py                           13      0      6      0   100%
doozerlib/brew.py                               347    200    162      4    40%
doozerlib/build_status_detector.py               85     10     56      3    87%
doozerlib/cli/__init__.py                       103     45     20      0    47%
doozerlib/cli/__main__.py                      1153   1153    468      0     0%
doozerlib/cli/cli_opts.py                        15      3      6      0    86%
doozerlib/cli/config_plashet.py                 536    536    248      0     0%
doozerlib/cli/detect_embargo.py                 167     35     70      8    75%
doozerlib/cli/get_nightlies.py                  233     63    139      3    71%
doozerlib/cli/images_health.py                   82     30     26      2    59%
doozerlib/cli/images_streams.py                 625    625    264      0     0%
doozerlib/cli/inspect_stream.py                  46     46     14      0     0%
doozerlib/cli/release_calc_upgrade_tests.py      24     24      6      0     0%
doozerlib/cli/release_gen_assembly.py           218    218    112      0     0%
doozerlib/cli/release_gen_payload.py            577    191    256     15    63%
doozerlib/cli/rpms_build.py                     165     59     58      8    57%
doozerlib/cli/scan_sources.py                   179    138     96      2    17%
doozerlib/config.py                              97     97     46      0     0%
doozerlib/constants.py                           11      0      0      0   100%
doozerlib/coverity.py                           245    215     76      0    10%
doozerlib/dblib.py                              257    154     74      4    37%
doozerlib/distgit.py                           1497    952    730     40    34%
doozerlib/dotconfig.py                           54     43     33      0    15%
doozerlib/exceptions.py                           2      0      2      0   100%
doozerlib/exectools.py                          197    107     78     10    43%
doozerlib/gitdata.py                            171    137     86      0    17%
doozerlib/image.py                              495    324    220      6    29%
doozerlib/logutil.py                              9      0      4      1    92%
doozerlib/metadata.py                           439    161    212     30    58%
doozerlib/model.py                              113     21     44      2    83%
doozerlib/olm/__init__.py                         0      0      0      0   100%
doozerlib/olm/bundle.py                         315    230     74      0    22%
doozerlib/osbs2_builder.py                      114     29     46     18    67%
doozerlib/plashet.py                            134      9     92     15    89%
doozerlib/pushd.py                               22      2      4      0    92%
doozerlib/repos.py                              209    105    117     17    45%
doozerlib/rhcos.py                              170     33     62     10    76%
doozerlib/rpm_builder.py                        232     31    125     32    81%
doozerlib/rpm_utils.py                          134     33     90     11    74%
doozerlib/rpmcfg.py                             141     58     62      8    55%
doozerlib/runtime.py                            922    670    378      8    22%
doozerlib/source_modifications.py               112     29     34      4    73%
doozerlib/state.py                               23     12     10      0    39%
doozerlib/util.py                               411    207    154      5    46%
-------------------------------------------------------------------------------
TOTAL                                         11444   7238   5063    275    34%
___________________________________ summary ____________________________________
  py38: commands succeeded
  congratulations :)

@openshift-bot
Copy link

Build #13

GLOB sdist-make: /mnt/workspace/jenkins/working/art-tools_doozer_PR-646/setup.py
py38 inst-nodeps: /mnt/workspace/jenkins/working/art-tools_doozer_PR-646/.tox/.tmp/package/1/rh-doozer-2.0.15.dev126+g98d9760.zip
py38 installed: aiofiles==22.1.0,astroid==2.12.10,attrs==22.1.0,autopep8==1.7.0,bashlex==0.16,bcrypt==4.0.0,certifi==2022.9.24,cffi==1.15.1,charset-normalizer==2.1.1,click==8.1.3,coverage==6.4.4,cryptography==38.0.1,decorator==5.1.1,Deprecated==1.2.13,dill==0.3.5.1,distlib==0.3.6,dockerfile-parse==1.2.0,filelock==3.8.0,flake8==5.0.4,flexmock==0.11.3,future==0.18.2,gssapi==1.8.1,idna==3.4,iniconfig==1.1.1,isort==5.10.1,koji==1.30.0,krb5==0.4.0,lazy-object-proxy==1.7.1,mccabe==0.7.0,mock==4.0.3,mysql-connector-python==8.0.30,openshift-client==1.0.18,packaging==21.3,paramiko==2.11.0,platformdirs==2.5.2,pluggy==1.0.0,protobuf==3.20.1,py==1.11.0,pycodestyle==2.9.1,pycparser==2.21,pyflakes==2.5.0,pygit2==1.10.1,PyGithub==1.55,PyJWT==2.5.0,pylint==2.15.3,PyNaCl==1.5.0,pyparsing==3.0.9,pyspnego==0.6.0,pytest==7.1.3,python-dateutil==2.8.2,PyYAML==6.0,requests==2.28.1,requests-gssapi==1.2.3,requests-kerberos==0.14.0,rh-doozer @ file:///mnt/workspace/jenkins/working/art-tools_doozer_PR-646/.tox/.tmp/package/1/rh-doozer-2.0.15.dev126%2Bg98d9760.zip,semver==2.13.0,setuptools-scm==7.0.5,six==1.16.0,tenacity==8.1.0,toml==0.10.2,tomli==2.0.1,tomlkit==0.11.4,tox==3.26.0,typing==3.7.4.3,typing-extensions==4.3.0,urllib3==1.26.12,virtualenv==20.16.5,wrapt==1.14.1
py38 run-test-pre: PYTHONHASHSEED='3748803248'
py38 run-test: commands[0] | coverage run --branch --source doozerlib -m unittest discover -t . -s tests/
.................................................................................................................s.s....................................s.s...s.s.s..s.s.s........................................./usr/lib64/python3.8/multiprocessing/pool.py:265: ResourceWarning: unclosed running multiprocessing pool <multiprocessing.pool.ThreadPool state=RUN pool_size=10>
  _warn(f"unclosed running multiprocessing pool {self!r}",
ResourceWarning: Enable tracemalloc to get the object allocation traceback
.................................
----------------------------------------------------------------------
Ran 234 tests in 1.324s

OK (skipped=10)
py38 run-test: commands[1] | flake8
py38 run-test: commands[2] | coverage report
Name                                          Stmts   Miss Branch BrPart  Cover
-------------------------------------------------------------------------------
doozerlib/__init__.py                             9      2      2      1    73%
doozerlib/assembly.py                           164     43     99      8    70%
doozerlib/assembly_inspector.py                 177    158    102      0     8%
doozerlib/assertion.py                           13      0      6      0   100%
doozerlib/brew.py                               347    200    162      4    40%
doozerlib/build_status_detector.py               85     10     56      3    87%
doozerlib/cli/__init__.py                       103     45     20      0    47%
doozerlib/cli/__main__.py                      1153   1153    468      0     0%
doozerlib/cli/cli_opts.py                        15      3      6      0    86%
doozerlib/cli/config_plashet.py                 536    536    248      0     0%
doozerlib/cli/detect_embargo.py                 167     35     70      8    75%
doozerlib/cli/get_nightlies.py                  233     63    139      3    71%
doozerlib/cli/images_health.py                   82     30     26      2    59%
doozerlib/cli/images_streams.py                 625    625    264      0     0%
doozerlib/cli/inspect_stream.py                  46     46     14      0     0%
doozerlib/cli/release_calc_upgrade_tests.py      24     24      6      0     0%
doozerlib/cli/release_gen_assembly.py           218    218    112      0     0%
doozerlib/cli/release_gen_payload.py            577    191    256     15    63%
doozerlib/cli/rpms_build.py                     165     59     58      8    57%
doozerlib/cli/scan_sources.py                   179    138     96      2    17%
doozerlib/config.py                              97     97     46      0     0%
doozerlib/constants.py                           11      0      0      0   100%
doozerlib/coverity.py                           245    215     76      0    10%
doozerlib/dblib.py                              257    154     74      4    37%
doozerlib/distgit.py                           1501    956    730     40    34%
doozerlib/dotconfig.py                           54     43     33      0    15%
doozerlib/exceptions.py                           2      0      2      0   100%
doozerlib/exectools.py                          197    107     78     10    43%
doozerlib/gitdata.py                            171    137     86      0    17%
doozerlib/image.py                              495    324    220      6    29%
doozerlib/logutil.py                              9      0      4      1    92%
doozerlib/metadata.py                           439    161    212     30    58%
doozerlib/model.py                              113     21     44      2    83%
doozerlib/olm/__init__.py                         0      0      0      0   100%
doozerlib/olm/bundle.py                         315    230     74      0    22%
doozerlib/osbs2_builder.py                      114     29     46     18    67%
doozerlib/plashet.py                            134      9     92     15    89%
doozerlib/pushd.py                               22      2      4      0    92%
doozerlib/repos.py                              209    105    117     17    45%
doozerlib/rhcos.py                              170     33     62     10    76%
doozerlib/rpm_builder.py                        232     31    125     32    81%
doozerlib/rpm_utils.py                          134     33     90     11    74%
doozerlib/rpmcfg.py                             141     58     62      8    55%
doozerlib/runtime.py                            922    670    378      8    22%
doozerlib/source_modifications.py               112     29     34      4    73%
doozerlib/state.py                               23     12     10      0    39%
doozerlib/util.py                               411    207    154      5    46%
-------------------------------------------------------------------------------
TOTAL                                         11448   7242   5063    275    34%
___________________________________ summary ____________________________________
  py38: commands succeeded
  congratulations :)

@sosiouxme sosiouxme merged commit 161b667 into openshift-eng:master Sep 29, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants