checkmk-dev-tools 2.1.3__tar.gz → 2.2.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/PKG-INFO +2 -2
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/ci_artifacts.py +18 -8
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/version.py +1 -1
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/pyproject.toml +2 -2
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/README.md +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/__init__.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/activity_from_fs.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/binreplace.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/check_rpath.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/cli.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/cpumon.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/decent_output.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/jenkins_utils/__init__.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/job_resource_usage.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/last_access.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/lockable_resources.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/procmon.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/pycinfo.py +0 -0
- {checkmk_dev_tools-2.1.3 → checkmk_dev_tools-2.2.0}/cmk_dev/utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: checkmk-dev-tools
|
|
3
|
-
Version: 2.
|
|
3
|
+
Version: 2.2.0
|
|
4
4
|
Summary: Checkmk DevOps tools
|
|
5
5
|
Author: Frans Fürst
|
|
6
6
|
Author-email: frans.fuerst@checkmk.com
|
|
@@ -14,7 +14,7 @@ Requires-Dist: pydantic (>=2,<3)
|
|
|
14
14
|
Requires-Dist: python-jenkins (>=1.8.3,<1.9.0)
|
|
15
15
|
Requires-Dist: rich
|
|
16
16
|
Requires-Dist: trickkiste (>=0.3.4,<0.4.0)
|
|
17
|
-
Project-URL: Changelog, https://github.com/Checkmk/checkmk-dev-tools/blob/release/2.
|
|
17
|
+
Project-URL: Changelog, https://github.com/Checkmk/checkmk-dev-tools/blob/release/2.2.0/changelog.md
|
|
18
18
|
Project-URL: Repository, https://github.com/Checkmk/checkmk-dev-tools
|
|
19
19
|
Description-Content-Type: text/markdown
|
|
20
20
|
|
|
@@ -582,7 +582,7 @@ async def build_id_from_queue_item(
|
|
|
582
582
|
) -> BuildId:
|
|
583
583
|
"""Waits for queue item with given @queue_id to be scheduled and returns Build instance"""
|
|
584
584
|
if queue_item is None:
|
|
585
|
-
queue_item = await client.queue_item(queue_id)
|
|
585
|
+
queue_item = await client.queue_item(queue_id, depth=1)
|
|
586
586
|
|
|
587
587
|
log().info(
|
|
588
588
|
"waiting for queue item %s to be scheduled (%s%s)",
|
|
@@ -592,7 +592,7 @@ async def build_id_from_queue_item(
|
|
|
592
592
|
)
|
|
593
593
|
|
|
594
594
|
while True:
|
|
595
|
-
queue_item = await client.queue_item(queue_id)
|
|
595
|
+
queue_item = await client.queue_item(queue_id, depth=1)
|
|
596
596
|
if queue_item.executable:
|
|
597
597
|
return queue_item.executable.number
|
|
598
598
|
log().debug("still waiting in queue, because %s", queue_item.why)
|
|
@@ -640,9 +640,7 @@ async def find_matching_queue_item(
|
|
|
640
640
|
"""Looks for a queued build matching job and parameters and returns the QueueId"""
|
|
641
641
|
log().debug("Checking queued items with the Jenkins API")
|
|
642
642
|
|
|
643
|
-
for
|
|
644
|
-
queue_item = await jenkins_client.queue_item(simple_queue_item.id, depth=2)
|
|
645
|
-
|
|
643
|
+
for queue_item in await jenkins_client.queue_info():
|
|
646
644
|
# In order to compare with `job.url` we would have to inject the jenkins base URL
|
|
647
645
|
# Instead we can also strip it off from `job.url` and compare relative URLs instead
|
|
648
646
|
# Instead of "https://ci.com/job/name/42/" == "https://ci.com/job/name/42/" we compare
|
|
@@ -1095,12 +1093,15 @@ async def identify_matching_build(
|
|
|
1095
1093
|
f"Got {len(matching_builds)} InfluxDB job history entries of today, generated {len(builds)} builds to check"
|
|
1096
1094
|
)
|
|
1097
1095
|
|
|
1096
|
+
log().info("Check for matching existing builds")
|
|
1098
1097
|
# ugly code duplication incomming, rework this to a dedicated function
|
|
1099
1098
|
for build in list(builds.values()):
|
|
1100
1099
|
if meets_constraints(build, params, time_constraints, path_hashes):
|
|
1101
1100
|
log().info("found matching (may finished) build: %s (%s)", build.number, build.url)
|
|
1102
1101
|
return build
|
|
1102
|
+
log().info("No matching builds found in the InfluxDB")
|
|
1103
1103
|
|
|
1104
|
+
log().info("Check for matching queue items via Jenkins API")
|
|
1104
1105
|
if hasattr(args, "ignore_build_queue") and not args.ignore_build_queue:
|
|
1105
1106
|
if matching_item := await find_matching_queue_item(
|
|
1106
1107
|
jenkins_client=jenkins_client,
|
|
@@ -1109,32 +1110,39 @@ async def identify_matching_build(
|
|
|
1109
1110
|
path_hashes=path_hashes,
|
|
1110
1111
|
next_check_sleep=next_check_sleep,
|
|
1111
1112
|
):
|
|
1112
|
-
log().
|
|
1113
|
+
log().info("Found matching queued item %s", matching_item)
|
|
1113
1114
|
return await jenkins_client.build_info(job.path, matching_item)
|
|
1115
|
+
log().info("No matching queue items found via Jenkins API")
|
|
1114
1116
|
|
|
1115
1117
|
# exit here with no matching result if
|
|
1116
1118
|
# - the InfluxDB connection was a success
|
|
1117
1119
|
# - and some data was found by the query
|
|
1118
1120
|
# otherwise fall back to the old Jenkins job history crawling
|
|
1119
1121
|
if influx_client.health().status == "pass" and matching_builds:
|
|
1122
|
+
log().info("Return None and schedule a new build")
|
|
1120
1123
|
return None
|
|
1121
1124
|
|
|
1122
|
-
log().
|
|
1125
|
+
log().info("Start finding matching build via Jenkins API")
|
|
1123
1126
|
# fetch a job's build history first
|
|
1124
1127
|
await job.expand(jenkins_client)
|
|
1125
1128
|
|
|
1129
|
+
log().info("Check for matching existing builds")
|
|
1126
1130
|
# Look for finished builds
|
|
1127
1131
|
for build in filter(lambda b: b.completed, job.build_infos.values()):
|
|
1128
1132
|
if meets_constraints(build, params, time_constraints, path_hashes):
|
|
1129
1133
|
log().info("found matching finished build: %s (%s)", build.number, build.url)
|
|
1130
1134
|
return build
|
|
1135
|
+
log().info("No matching builds found via the Jenkins API")
|
|
1131
1136
|
|
|
1137
|
+
log().info("Check for matching non finished builds")
|
|
1132
1138
|
# Look for still unfinished builds
|
|
1133
1139
|
for build in filter(lambda b: not b.completed, job.build_infos.values()):
|
|
1134
1140
|
if meets_constraints(build, params, time_constraints, path_hashes):
|
|
1135
1141
|
log().info("found matching unfinished build: %s (%s)", build.number, build.url)
|
|
1136
1142
|
return build
|
|
1143
|
+
log().info("No matching non finished builds found via the Jenkins API")
|
|
1137
1144
|
|
|
1145
|
+
log().info("Check for matching queue items via Jenkins API")
|
|
1138
1146
|
if args and not args.ignore_build_queue:
|
|
1139
1147
|
if matching_item := await find_matching_queue_item(
|
|
1140
1148
|
jenkins_client=jenkins_client,
|
|
@@ -1143,9 +1151,11 @@ async def identify_matching_build(
|
|
|
1143
1151
|
path_hashes=path_hashes,
|
|
1144
1152
|
next_check_sleep=next_check_sleep,
|
|
1145
1153
|
):
|
|
1146
|
-
log().
|
|
1154
|
+
log().info("Found matching queued item %s", matching_item)
|
|
1147
1155
|
return await jenkins_client.build_info(job.path, matching_item)
|
|
1156
|
+
log().info("No matching queue items found via Jenkins API")
|
|
1148
1157
|
|
|
1158
|
+
log().info("Return None and schedule a new build")
|
|
1149
1159
|
return None
|
|
1150
1160
|
|
|
1151
1161
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[tool.poetry]
|
|
2
2
|
name = "checkmk-dev-tools"
|
|
3
|
-
version = "2.
|
|
3
|
+
version = "2.2.0" # will-be-updated-automatically
|
|
4
4
|
description = "Checkmk DevOps tools"
|
|
5
5
|
authors = [
|
|
6
6
|
"Frans Fürst <frans.fuerst@checkmk.com>",
|
|
@@ -14,7 +14,7 @@ exclude = ["cmk_dev/out"]
|
|
|
14
14
|
|
|
15
15
|
[tool.poetry.urls]
|
|
16
16
|
Repository = "https://github.com/Checkmk/checkmk-dev-tools"
|
|
17
|
-
Changelog = "https://github.com/Checkmk/checkmk-dev-tools/blob/release/2.
|
|
17
|
+
Changelog = "https://github.com/Checkmk/checkmk-dev-tools/blob/release/2.2.0/changelog.md"
|
|
18
18
|
|
|
19
19
|
[tool.poetry.scripts]
|
|
20
20
|
activity-from-fs = 'cmk_dev.activity_from_fs:main'
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|