krkn-lib 5.1.0__py3-none-any.whl → 5.1.2__py3-none-any.whl
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.
- krkn_lib/aws_tests/__init__.py +1 -0
- krkn_lib/k8s/krkn_kubernetes.py +15 -11
- krkn_lib/k8s/templates/service_hijacking_pod.j2 +2 -0
- krkn_lib/models/elastic/models.py +36 -3
- krkn_lib/models/telemetry/models.py +64 -0
- krkn_lib/telemetry/k8s/krkn_telemetry_kubernetes.py +1 -0
- krkn_lib/tests/base_test.py +33 -0
- krkn_lib/tests/test_krkn_elastic_models.py +32 -0
- krkn_lib/tests/test_krkn_kubernetes_exec.py +1 -1
- krkn_lib/tests/test_utils.py +21 -0
- krkn_lib/utils/functions.py +24 -0
- {krkn_lib-5.1.0.dist-info → krkn_lib-5.1.2.dist-info}/METADATA +1 -1
- {krkn_lib-5.1.0.dist-info → krkn_lib-5.1.2.dist-info}/RECORD +17 -16
- /krkn_lib/{tests → aws_tests}/test_krkn_telemetry_kubernetes.py +0 -0
- /krkn_lib/{tests → aws_tests}/test_krkn_telemetry_openshift.py +0 -0
- {krkn_lib-5.1.0.dist-info → krkn_lib-5.1.2.dist-info}/LICENSE +0 -0
- {krkn_lib-5.1.0.dist-info → krkn_lib-5.1.2.dist-info}/WHEEL +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
from ..tests.base_test import * # NOQA
|
krkn_lib/k8s/krkn_kubernetes.py
CHANGED
|
@@ -1513,7 +1513,7 @@ class KrknKubernetes:
|
|
|
1513
1513
|
logging.error("Error trying to apply_yaml" + str(e))
|
|
1514
1514
|
|
|
1515
1515
|
def get_pod_info(
|
|
1516
|
-
self, name: str, namespace: str = "default"
|
|
1516
|
+
self, name: str, namespace: str = "default", delete_expected: bool = False
|
|
1517
1517
|
) -> Optional[Pod]:
|
|
1518
1518
|
"""
|
|
1519
1519
|
Retrieve information about a specific pod
|
|
@@ -1583,9 +1583,14 @@ class KrknKubernetes:
|
|
|
1583
1583
|
creation_timestamp=response.metadata.creation_timestamp,
|
|
1584
1584
|
)
|
|
1585
1585
|
except Exception:
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1586
|
+
if not delete_expected:
|
|
1587
|
+
logging.error(
|
|
1588
|
+
"Pod '%s' doesn't exist in namespace '%s'", name, namespace
|
|
1589
|
+
)
|
|
1590
|
+
else:
|
|
1591
|
+
logging.info(
|
|
1592
|
+
"Pod '%s' doesn't exist in namespace '%s'", name, namespace
|
|
1593
|
+
)
|
|
1589
1594
|
return None
|
|
1590
1595
|
return pod_info
|
|
1591
1596
|
|
|
@@ -2384,9 +2389,7 @@ class KrknKubernetes:
|
|
|
2384
2389
|
# due to pipes and scripts the command is executed in
|
|
2385
2390
|
|
|
2386
2391
|
if not os.path.isdir(download_path):
|
|
2387
|
-
|
|
2388
|
-
f"download path {download_path} does not exist"
|
|
2389
|
-
)
|
|
2392
|
+
os.mkdir(download_path)
|
|
2390
2393
|
if not self.path_exists_in_pod(
|
|
2391
2394
|
pod_name, container_name, namespace, remote_archive_path
|
|
2392
2395
|
):
|
|
@@ -2992,9 +2995,8 @@ class KrknKubernetes:
|
|
|
2992
2995
|
return pods_status
|
|
2993
2996
|
|
|
2994
2997
|
while time.time() - start_time <= max_timeout:
|
|
2995
|
-
if event:
|
|
2996
|
-
|
|
2997
|
-
return pods_status
|
|
2998
|
+
if event and event.is_set():
|
|
2999
|
+
return pods_status
|
|
2998
3000
|
|
|
2999
3001
|
time_offset = time.time() - start_time
|
|
3000
3002
|
remaining_time = max_timeout - time_offset
|
|
@@ -3004,7 +3006,7 @@ class KrknKubernetes:
|
|
|
3004
3006
|
if set(pods_and_namespaces) == set(current_pods_and_namespaces):
|
|
3005
3007
|
for pod in current_pods_and_namespaces:
|
|
3006
3008
|
|
|
3007
|
-
pod_info = self.get_pod_info(pod[0], pod[1])
|
|
3009
|
+
pod_info = self.get_pod_info(pod[0], pod[1], delete_expected=True)
|
|
3008
3010
|
# for pod_info in pod_list_info:
|
|
3009
3011
|
if pod_info:
|
|
3010
3012
|
pod_creation_timestamp = (
|
|
@@ -3215,6 +3217,7 @@ class KrknKubernetes:
|
|
|
3215
3217
|
port_number: int = 5000,
|
|
3216
3218
|
port_name: str = "flask",
|
|
3217
3219
|
stats_route: str = "/stats",
|
|
3220
|
+
privileged: bool = True
|
|
3218
3221
|
) -> ServiceHijacking:
|
|
3219
3222
|
"""
|
|
3220
3223
|
Deploys a pod running the service-hijacking webservice
|
|
@@ -3268,6 +3271,7 @@ class KrknKubernetes:
|
|
|
3268
3271
|
config_map_name=config_map_name,
|
|
3269
3272
|
port_number=port_number,
|
|
3270
3273
|
stats_route=stats_route,
|
|
3274
|
+
privileged=privileged
|
|
3271
3275
|
)
|
|
3272
3276
|
)
|
|
3273
3277
|
|
|
@@ -94,7 +94,7 @@ class ElasticNodeInfo(InnerDoc):
|
|
|
94
94
|
count = Integer()
|
|
95
95
|
architecture = Text()
|
|
96
96
|
instance_type = Text()
|
|
97
|
-
|
|
97
|
+
nodes_type = Text()
|
|
98
98
|
kernel_version = Text()
|
|
99
99
|
kubelet_version = Text()
|
|
100
100
|
os_version = Text()
|
|
@@ -114,6 +114,15 @@ class ElasticHealthChecks(InnerDoc):
|
|
|
114
114
|
end_timestamp = Date()
|
|
115
115
|
duration = Float()
|
|
116
116
|
|
|
117
|
+
class ElasticVirtChecks(InnerDoc):
|
|
118
|
+
vm_name = Text()
|
|
119
|
+
ip_address = Text()
|
|
120
|
+
namespace = Text()
|
|
121
|
+
node_name = Text()
|
|
122
|
+
status = Boolean()
|
|
123
|
+
start_timestamp = Date()
|
|
124
|
+
end_timestamp = Date()
|
|
125
|
+
duration = Float()
|
|
117
126
|
|
|
118
127
|
class ElasticChaosRunTelemetry(Document):
|
|
119
128
|
scenarios = Nested(ElasticScenarioTelemetry, multi=True)
|
|
@@ -127,10 +136,11 @@ class ElasticChaosRunTelemetry(Document):
|
|
|
127
136
|
cloud_type = Text()
|
|
128
137
|
cluster_version = Text()
|
|
129
138
|
major_version = Text()
|
|
139
|
+
build_url = Text()
|
|
130
140
|
job_status = Boolean()
|
|
131
141
|
run_uuid = Text(fields={"keyword": Keyword()})
|
|
132
142
|
health_checks = Nested(ElasticHealthChecks, multi=True)
|
|
133
|
-
|
|
143
|
+
virt_checks = Nested(ElasticVirtChecks, multi=True)
|
|
134
144
|
class Index:
|
|
135
145
|
name = "chaos_run_telemetry"
|
|
136
146
|
|
|
@@ -188,6 +198,7 @@ class ElasticChaosRunTelemetry(Document):
|
|
|
188
198
|
self.node_summary_infos = [
|
|
189
199
|
ElasticNodeInfo(
|
|
190
200
|
count=info.count,
|
|
201
|
+
nodes_type=info.nodes_type,
|
|
191
202
|
architecture=info.architecture,
|
|
192
203
|
instance_type=info.instance_type,
|
|
193
204
|
kernel_version=info.kernel_version,
|
|
@@ -204,7 +215,7 @@ class ElasticChaosRunTelemetry(Document):
|
|
|
204
215
|
chaos_run_telemetry.kubernetes_objects_count
|
|
205
216
|
)
|
|
206
217
|
self.network_plugins = chaos_run_telemetry.network_plugins
|
|
207
|
-
|
|
218
|
+
|
|
208
219
|
if chaos_run_telemetry.health_checks:
|
|
209
220
|
self.health_checks = [
|
|
210
221
|
ElasticHealthChecks(
|
|
@@ -223,6 +234,27 @@ class ElasticChaosRunTelemetry(Document):
|
|
|
223
234
|
]
|
|
224
235
|
else:
|
|
225
236
|
self.health_checks = None
|
|
237
|
+
|
|
238
|
+
if chaos_run_telemetry.virt_checks:
|
|
239
|
+
self.virt_checks = [
|
|
240
|
+
ElasticVirtChecks(
|
|
241
|
+
vm_name=info.vm_name,
|
|
242
|
+
ip_address=info.ip_address,
|
|
243
|
+
namespace=info.namespace,
|
|
244
|
+
node_name=info.node_name,
|
|
245
|
+
status=info.status,
|
|
246
|
+
start_timestamp=datetime.datetime.fromisoformat(
|
|
247
|
+
str(info.start_timestamp)
|
|
248
|
+
),
|
|
249
|
+
end_timestamp=datetime.datetime.fromisoformat(
|
|
250
|
+
str(info.end_timestamp)
|
|
251
|
+
),
|
|
252
|
+
duration=info.duration,
|
|
253
|
+
)
|
|
254
|
+
for info in chaos_run_telemetry.virt_checks
|
|
255
|
+
]
|
|
256
|
+
else:
|
|
257
|
+
self.virt_checks = None
|
|
226
258
|
|
|
227
259
|
self.timestamp = chaos_run_telemetry.timestamp
|
|
228
260
|
self.total_node_count = chaos_run_telemetry.total_node_count
|
|
@@ -232,3 +264,4 @@ class ElasticChaosRunTelemetry(Document):
|
|
|
232
264
|
self.run_uuid = chaos_run_telemetry.run_uuid
|
|
233
265
|
self.job_status = chaos_run_telemetry.job_status
|
|
234
266
|
self.major_version = chaos_run_telemetry.major_version
|
|
267
|
+
self.build_url = chaos_run_telemetry.build_url
|
|
@@ -421,6 +421,55 @@ class HealthCheck:
|
|
|
421
421
|
self.end_timestamp = json_dict["end_timestamp"]
|
|
422
422
|
self.duration = json_dict["duration"]
|
|
423
423
|
|
|
424
|
+
@dataclass(order=False)
|
|
425
|
+
class VirtCheck:
|
|
426
|
+
"""
|
|
427
|
+
Virt checks Response for VMI endpoints
|
|
428
|
+
"""
|
|
429
|
+
|
|
430
|
+
vm_name: str
|
|
431
|
+
"""
|
|
432
|
+
Vm name
|
|
433
|
+
"""
|
|
434
|
+
ip_address: str
|
|
435
|
+
"""
|
|
436
|
+
Vm ip address
|
|
437
|
+
"""
|
|
438
|
+
namespace: str
|
|
439
|
+
"""
|
|
440
|
+
Namespace
|
|
441
|
+
"""
|
|
442
|
+
node_name: str
|
|
443
|
+
"""
|
|
444
|
+
Node Name
|
|
445
|
+
"""
|
|
446
|
+
status: bool
|
|
447
|
+
"""
|
|
448
|
+
Status of VMI ssh connection
|
|
449
|
+
"""
|
|
450
|
+
start_timestamp: str
|
|
451
|
+
"""
|
|
452
|
+
start time stamp of virt check
|
|
453
|
+
"""
|
|
454
|
+
end_timestamp: str
|
|
455
|
+
"""
|
|
456
|
+
end time stamp of virt check
|
|
457
|
+
"""
|
|
458
|
+
duration: float
|
|
459
|
+
"""
|
|
460
|
+
Denotes the time between start time and end time
|
|
461
|
+
"""
|
|
462
|
+
|
|
463
|
+
def __init__(self, json_dict: dict = None):
|
|
464
|
+
if json_dict is not None:
|
|
465
|
+
self.node_name = json_dict["node_name"]
|
|
466
|
+
self.ip_address = json_dict["ip_address"]
|
|
467
|
+
self.namespace = json_dict["namespace"]
|
|
468
|
+
self.vm_name = json_dict["vm_name"]
|
|
469
|
+
self.status = json_dict.get("status",True)
|
|
470
|
+
self.start_timestamp = json_dict.get("start_timestamp","")
|
|
471
|
+
self.end_timestamp = json_dict.get("end_timestamp","")
|
|
472
|
+
self.duration = json_dict.get("duration","")
|
|
424
473
|
|
|
425
474
|
@dataclass(order=False)
|
|
426
475
|
class ChaosRunTelemetry:
|
|
@@ -485,10 +534,18 @@ class ChaosRunTelemetry:
|
|
|
485
534
|
"""
|
|
486
535
|
Health checks of application endpoint
|
|
487
536
|
"""
|
|
537
|
+
virt_checks: list[VirtCheck] = None
|
|
538
|
+
"""
|
|
539
|
+
Virt checks of VMIs
|
|
540
|
+
"""
|
|
488
541
|
job_status: bool = True
|
|
489
542
|
"""
|
|
490
543
|
Overall job status, will take all scenario's exit status
|
|
491
544
|
"""
|
|
545
|
+
build_url: str = "manual"
|
|
546
|
+
"""
|
|
547
|
+
Build url if run in CI
|
|
548
|
+
"""
|
|
492
549
|
|
|
493
550
|
def __init__(self, json_dict: any = None):
|
|
494
551
|
self.scenarios = list[ScenarioTelemetry]()
|
|
@@ -500,6 +557,7 @@ class ChaosRunTelemetry:
|
|
|
500
557
|
"%Y-%m-%dT%H:%M:%SZ"
|
|
501
558
|
)
|
|
502
559
|
self.health_checks = list[HealthCheck]()
|
|
560
|
+
self.virt_checks = list[VirtCheck]()
|
|
503
561
|
if json_dict is not None:
|
|
504
562
|
scenarios = json_dict.get("scenarios")
|
|
505
563
|
if scenarios is None or isinstance(scenarios, list) is False:
|
|
@@ -527,7 +585,13 @@ class ChaosRunTelemetry:
|
|
|
527
585
|
if json_dict.get("health_checks")
|
|
528
586
|
else None
|
|
529
587
|
)
|
|
588
|
+
self.virt_checks = (
|
|
589
|
+
[VirtCheck(k) for k in json_dict.get("virt_checks")]
|
|
590
|
+
if json_dict.get("virt_checks")
|
|
591
|
+
else None
|
|
592
|
+
)
|
|
530
593
|
self.job_status = json_dict.get("job_status")
|
|
594
|
+
self.build_url = json_dict.get("build_url")
|
|
531
595
|
|
|
532
596
|
def to_json(self) -> str:
|
|
533
597
|
return json.dumps(self, default=lambda o: o.__dict__, indent=4)
|
|
@@ -102,6 +102,7 @@ class KrknTelemetryKubernetes:
|
|
|
102
102
|
chaos_telemetry.cluster_version = self.__kubecli.get_version()
|
|
103
103
|
chaos_telemetry.major_version = chaos_telemetry.cluster_version[1:5]
|
|
104
104
|
chaos_telemetry.node_taints = taints
|
|
105
|
+
chaos_telemetry.build_url = utils.get_ci_job_url()
|
|
105
106
|
for info in node_infos:
|
|
106
107
|
chaos_telemetry.total_node_count += info.count
|
|
107
108
|
chaos_telemetry.job_status = True
|
krkn_lib/tests/base_test.py
CHANGED
|
@@ -549,6 +549,7 @@ class BaseTest(unittest.TestCase):
|
|
|
549
549
|
"kernel_version": "5.4.0-66-generic",
|
|
550
550
|
"kubelet_version": "v2.1.2",
|
|
551
551
|
"os_version": "Linux",
|
|
552
|
+
"nodes_type": "master"
|
|
552
553
|
}
|
|
553
554
|
],
|
|
554
555
|
"node_taints": [
|
|
@@ -571,6 +572,37 @@ class BaseTest(unittest.TestCase):
|
|
|
571
572
|
"duration": 259.113742,
|
|
572
573
|
}
|
|
573
574
|
],
|
|
575
|
+
"virt_checks": [
|
|
576
|
+
{
|
|
577
|
+
"node_name": "h03-r660",
|
|
578
|
+
"namespace": "benchmark-runner",
|
|
579
|
+
"ip_address": "0.0.0.0",
|
|
580
|
+
"vm_name": "windows-vm-50",
|
|
581
|
+
"status": True,
|
|
582
|
+
"start_timestamp": "2025-03-12T14:57:34.555878",
|
|
583
|
+
"end_timestamp": "2025-03-12T14:57:54.904352",
|
|
584
|
+
"duration": 20.348474
|
|
585
|
+
},
|
|
586
|
+
{
|
|
587
|
+
"node_name": "h27-r660",
|
|
588
|
+
"namespace": "benchmark-runner",
|
|
589
|
+
"vm_name": "windows-vm-51",
|
|
590
|
+
"ip_address": "0.0.0.1",
|
|
591
|
+
"status": True,
|
|
592
|
+
"start_timestamp": "2025-03-12T14:57:34.759105",
|
|
593
|
+
"end_timestamp": "2025-03-12T14:57:54.904352",
|
|
594
|
+
"duration": 20.145247
|
|
595
|
+
},
|
|
596
|
+
{
|
|
597
|
+
"node_name": "h10-r660",
|
|
598
|
+
"namespace": "benchmark-runner",
|
|
599
|
+
"vm_name": "windows-vm-52",
|
|
600
|
+
"ip_address": "0.0.0.2",
|
|
601
|
+
"status": False,
|
|
602
|
+
"start_timestamp": "2025-03-12T14:57:35.308957",
|
|
603
|
+
"end_timestamp": "2025-03-12T14:57:54.904352",
|
|
604
|
+
"duration": 19.595395
|
|
605
|
+
}],
|
|
574
606
|
"total_node_count": 3,
|
|
575
607
|
"cloud_infrastructure": "AWS",
|
|
576
608
|
"cloud_type": "EC2",
|
|
@@ -578,5 +610,6 @@ class BaseTest(unittest.TestCase):
|
|
|
578
610
|
"cluster_version": "4.18.0-0.nightly-202491014",
|
|
579
611
|
"major_verison": "4.18",
|
|
580
612
|
"job_status": True,
|
|
613
|
+
"build_url": "https://github.com/krkn-chaos/krkn-lib/actions/runs/16724993547", # NOQA
|
|
581
614
|
}
|
|
582
615
|
return example_data
|
|
@@ -149,6 +149,9 @@ class TestKrknElasticModels(BaseTest):
|
|
|
149
149
|
self.assertEqual(
|
|
150
150
|
elastic_telemetry.node_summary_infos[0].instance_type, "m2i.xlarge"
|
|
151
151
|
)
|
|
152
|
+
self.assertEqual(
|
|
153
|
+
elastic_telemetry.node_summary_infos[0].nodes_type, "master"
|
|
154
|
+
)
|
|
152
155
|
self.assertEqual(
|
|
153
156
|
elastic_telemetry.node_summary_infos[0].kernel_version,
|
|
154
157
|
"5.4.0-66-generic",
|
|
@@ -211,10 +214,39 @@ class TestKrknElasticModels(BaseTest):
|
|
|
211
214
|
elastic_telemetry.health_checks[0].duration, 259.113742
|
|
212
215
|
)
|
|
213
216
|
|
|
217
|
+
# virt_checks
|
|
218
|
+
self.assertEqual(len(elastic_telemetry.virt_checks), 3)
|
|
219
|
+
self.assertEqual(
|
|
220
|
+
elastic_telemetry.virt_checks[0].vm_name, "windows-vm-50"
|
|
221
|
+
)
|
|
222
|
+
self.assertEqual(
|
|
223
|
+
elastic_telemetry.virt_checks[0].ip_address, "0.0.0.0"
|
|
224
|
+
)
|
|
225
|
+
self.assertEqual(
|
|
226
|
+
elastic_telemetry.virt_checks[0].namespace, "benchmark-runner"
|
|
227
|
+
)
|
|
228
|
+
self.assertEqual(
|
|
229
|
+
elastic_telemetry.virt_checks[0].node_name, "h03-r660"
|
|
230
|
+
)
|
|
231
|
+
|
|
232
|
+
self.assertEqual(elastic_telemetry.virt_checks[0].status, True)
|
|
233
|
+
self.assertEqual(
|
|
234
|
+
elastic_telemetry.virt_checks[0].start_timestamp,
|
|
235
|
+
datetime.datetime.fromisoformat("2025-03-12T14:57:34.555878"),
|
|
236
|
+
)
|
|
237
|
+
self.assertEqual(
|
|
238
|
+
elastic_telemetry.virt_checks[0].end_timestamp,
|
|
239
|
+
datetime.datetime.fromisoformat("2025-03-12T14:57:54.904352"),
|
|
240
|
+
)
|
|
241
|
+
self.assertEqual(
|
|
242
|
+
elastic_telemetry.virt_checks[0].duration, 20.348474
|
|
243
|
+
)
|
|
244
|
+
|
|
214
245
|
self.assertEqual(elastic_telemetry.total_node_count, 3)
|
|
215
246
|
self.assertEqual(elastic_telemetry.cloud_infrastructure, "AWS")
|
|
216
247
|
self.assertEqual(elastic_telemetry.cloud_type, "EC2")
|
|
217
248
|
self.assertEqual(elastic_telemetry.run_uuid, run_uuid)
|
|
249
|
+
self.assertEqual(elastic_telemetry.build_url, "https://github.com/krkn-chaos/krkn-lib/actions/runs/16724993547")
|
|
218
250
|
|
|
219
251
|
def test_ElasticChaosRunTelemetry(self):
|
|
220
252
|
run_uuid = str(uuid.uuid4())
|
|
@@ -124,7 +124,7 @@ class KrknKubernetesTestsExec(BaseTest):
|
|
|
124
124
|
self.fail(f"exception on node command execution: {e}")
|
|
125
125
|
|
|
126
126
|
def test_download_folder_from_pod_as_archive(self):
|
|
127
|
-
workdir_basepath = os.getenv("TEST_WORKDIR")
|
|
127
|
+
workdir_basepath = os.getenv("TEST_WORKDIR", "/tmp")
|
|
128
128
|
workdir = self.get_random_string(10)
|
|
129
129
|
test_workdir = os.path.join(workdir_basepath, workdir)
|
|
130
130
|
os.mkdir(test_workdir)
|
krkn_lib/tests/test_utils.py
CHANGED
|
@@ -410,3 +410,24 @@ class UtilFunctionTests(BaseTest):
|
|
|
410
410
|
success_output_not_test_version, success_test_not_test_version
|
|
411
411
|
)
|
|
412
412
|
self.assertEqual(failure_output, failure_test)
|
|
413
|
+
|
|
414
|
+
def test_get_ci_job_url(self):
|
|
415
|
+
|
|
416
|
+
ci_job_url = utils.get_ci_job_url()
|
|
417
|
+
print('ci job url' + str(ci_job_url))
|
|
418
|
+
self.assertNotEqual(ci_job_url, "manual")
|
|
419
|
+
|
|
420
|
+
github_run_id = os.getenv("GITHUB_RUN_ID","")
|
|
421
|
+
os.environ["GITHUB_RUN_ID"] = ""
|
|
422
|
+
os.environ["PROW_JOB_ID"] = "1953335493844275200"
|
|
423
|
+
os.environ["BUILD_ID"] = "periodic-ci-redhat-chaos-prow-scripts-main-cr-4.19-nightly-krkn-hub-aws" # NOQA
|
|
424
|
+
os.environ["JOB_NAME"] = "1953335493844275200"
|
|
425
|
+
ci_job_url = utils.get_ci_job_url()
|
|
426
|
+
print('ci job url' + str(ci_job_url))
|
|
427
|
+
self.assertIn("prow.ci.openshift.org", ci_job_url)
|
|
428
|
+
os.environ["PROW_JOB_ID"] = ""
|
|
429
|
+
os.environ["BUILD_URL"] = "https://jenkins-csb-openshift-qe-mastern.dno.corp.redhat.com/job/scale-ci/job/e2e-benchmarking-multibranch-pipeline/job/kraken/" # NOQA
|
|
430
|
+
ci_job_url = utils.get_ci_job_url()
|
|
431
|
+
print('ci job url' + str(ci_job_url))
|
|
432
|
+
self.assertEqual(ci_job_url, os.environ["BUILD_URL"])
|
|
433
|
+
os.environ["GITHUB_RUN_ID"] = github_run_id
|
krkn_lib/utils/functions.py
CHANGED
|
@@ -457,3 +457,27 @@ def get_junit_test_case(
|
|
|
457
457
|
ET.SubElement(test_case, "failure", message="").text = test_stdout
|
|
458
458
|
|
|
459
459
|
return ET.tostring(root, encoding="utf-8").decode("UTF-8")
|
|
460
|
+
|
|
461
|
+
|
|
462
|
+
def get_ci_job_url():
|
|
463
|
+
build_url = "manual"
|
|
464
|
+
if os.getenv("GITHUB_RUN_ID", ""):
|
|
465
|
+
# github actions build url
|
|
466
|
+
github_run_id = os.getenv("GITHUB_RUN_ID")
|
|
467
|
+
github_repo = os.getenv("GITHUB_REPOSITORY")
|
|
468
|
+
build_url = (
|
|
469
|
+
f"https://github.com/{github_repo}/actions/runs/{github_run_id}"
|
|
470
|
+
)
|
|
471
|
+
elif os.getenv("PROW_JOB_ID", ""):
|
|
472
|
+
prow_base_url = (
|
|
473
|
+
"https://prow.ci.openshift.org/view/gs/origin-ci-test/logs"
|
|
474
|
+
)
|
|
475
|
+
task_id = os.getenv("BUILD_ID")
|
|
476
|
+
job_id = os.getenv("JOB_NAME")
|
|
477
|
+
|
|
478
|
+
build_url = f"{prow_base_url}/{job_id}/{task_id}"
|
|
479
|
+
|
|
480
|
+
elif os.getenv("BUILD_URL", ""):
|
|
481
|
+
# Jenkins build url
|
|
482
|
+
build_url = os.getenv("BUILD_URL")
|
|
483
|
+
return build_url
|
|
@@ -1,39 +1,42 @@
|
|
|
1
|
+
krkn_lib/aws_tests/__init__.py,sha256=vAyS1U3V-MTOqLgwlAK5W_gIT3VDxDrNzMRpaYe9fME,39
|
|
2
|
+
krkn_lib/aws_tests/test_krkn_telemetry_kubernetes.py,sha256=VxE0MMo6pTVJj2iTJYs0Ei_jbVxOVXpupFLXrnlf02M,12633
|
|
3
|
+
krkn_lib/aws_tests/test_krkn_telemetry_openshift.py,sha256=AE6nwWi2c2WqjU4mQ2Kr1XGr5FcmFbvaZALDDHpaEMQ,2151
|
|
1
4
|
krkn_lib/elastic/__init__.py,sha256=ApLS0O18jzfu1Oe6Ym7XYlC1bFl9JTYO6VjFQflDlA0,36
|
|
2
5
|
krkn_lib/elastic/krkn_elastic.py,sha256=YeZqEV61-icQTVrgA_0hDgD5L0zFmM3vmX_m7hXYOJU,8954
|
|
3
6
|
krkn_lib/k8s/__init__.py,sha256=umPTRrPgLUdtHf9epWNcQaA7p9d3gZFtFiXQw36Pqug,39
|
|
4
|
-
krkn_lib/k8s/krkn_kubernetes.py,sha256=
|
|
7
|
+
krkn_lib/k8s/krkn_kubernetes.py,sha256=ftvC7T-haCXsKD_f5wbfUq3B9rGzzp_qigOV1DlCzV8,127633
|
|
5
8
|
krkn_lib/k8s/pods_monitor_pool.py,sha256=_wy-Z1CSjUd6PBQ6WIAm52UbE0s4FljEub1Cpygf3c4,8006
|
|
6
9
|
krkn_lib/k8s/templates/hog_pod.j2,sha256=PloumCIFkLpZCJPwNRf5kwcAfLH12AXNepQjdn942Wc,1650
|
|
7
10
|
krkn_lib/k8s/templates/node_exec_pod.j2,sha256=hj0yryqooF8eZPdoC7-_4kF5OCvPagfItuRO4PhevaI,558
|
|
8
11
|
krkn_lib/k8s/templates/service_hijacking_config_map.j2,sha256=Ma9W640yR-sRf9VgC5ha_enRjc-I1NAeAtNg4fglJAg,146
|
|
9
|
-
krkn_lib/k8s/templates/service_hijacking_pod.j2,sha256=
|
|
12
|
+
krkn_lib/k8s/templates/service_hijacking_pod.j2,sha256=urksFQ0RBqnux3gl7exEjQi-XjhhXXdNn2shhBYDl-Y,762
|
|
10
13
|
krkn_lib/k8s/templates/syn_flood_pod.j2,sha256=ANCEhFZP6yzChGK52_01mV2k6cIb0JNR9ocSFHpxPT0,1132
|
|
11
14
|
krkn_lib/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
12
15
|
krkn_lib/models/elastic/__init__.py,sha256=B5B2XDHj9grxPBwcGm2SCXAyqtJHkywwDUFPvmrh_H4,30
|
|
13
|
-
krkn_lib/models/elastic/models.py,sha256=
|
|
16
|
+
krkn_lib/models/elastic/models.py,sha256=3-jAjLpZaHtg1Y4csPcyMyOlTS80_hpcPCUKo25z8Fo,8650
|
|
14
17
|
krkn_lib/models/k8s/__init__.py,sha256=B5B2XDHj9grxPBwcGm2SCXAyqtJHkywwDUFPvmrh_H4,30
|
|
15
18
|
krkn_lib/models/k8s/models.py,sha256=o1-5_2WA4dCeY_dqJtGSedLt8stqsq7wd_o7bLaeO4A,10632
|
|
16
19
|
krkn_lib/models/krkn/__init__.py,sha256=B5B2XDHj9grxPBwcGm2SCXAyqtJHkywwDUFPvmrh_H4,30
|
|
17
20
|
krkn_lib/models/krkn/models.py,sha256=npVBsyog_cPrGVHyDzdkAXhkmGlpsusSM_q9nCyN5rE,6762
|
|
18
21
|
krkn_lib/models/telemetry/__init__.py,sha256=B5B2XDHj9grxPBwcGm2SCXAyqtJHkywwDUFPvmrh_H4,30
|
|
19
|
-
krkn_lib/models/telemetry/models.py,sha256=
|
|
22
|
+
krkn_lib/models/telemetry/models.py,sha256=1lIt5NXcQrxtxzzMWggHYpyhpo_VrA8Hs4L6zVGFRPE,18532
|
|
20
23
|
krkn_lib/ocp/__init__.py,sha256=CmweI-5lweWd8wG3q0y9m2ENAr9xvC7aldoJkjC3PQQ,38
|
|
21
24
|
krkn_lib/ocp/krkn_openshift.py,sha256=8bUnJlkC1Yy2euWeOAPrXTCE22r6M8b0__g4NLhuaY4,17904
|
|
22
25
|
krkn_lib/prometheus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
23
26
|
krkn_lib/prometheus/krkn_prometheus.py,sha256=vulbna0FIxcKtt1BlnE4FEU84Zmw31RiQSItm1Xxehs,8894
|
|
24
27
|
krkn_lib/telemetry/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
25
28
|
krkn_lib/telemetry/k8s/__init__.py,sha256=HTC3-41WJaqtHNyRSzUC-SiLnrgshLKEAyFwMdVVTgU,49
|
|
26
|
-
krkn_lib/telemetry/k8s/krkn_telemetry_kubernetes.py,sha256=
|
|
29
|
+
krkn_lib/telemetry/k8s/krkn_telemetry_kubernetes.py,sha256=dglDCGwbYc1HjiMCV01qHJuclzty4Y71fFtLOv1y92I,24635
|
|
27
30
|
krkn_lib/telemetry/ocp/__init__.py,sha256=DgRL7JxW766o2L8m-E94ftgCdWhsgjURz6gAb9J9Rio,48
|
|
28
31
|
krkn_lib/telemetry/ocp/krkn_telemetry_openshift.py,sha256=rpK-TJfpeJWUEQQgzpeUMhMvv3s1J9FrJtIOTUUPndY,9475
|
|
29
32
|
krkn_lib/tests/__init__.py,sha256=_-mAJNNBGEod6A8tfckMP9loSOi_Bj4YHvpo93aqHME,33
|
|
30
|
-
krkn_lib/tests/base_test.py,sha256=
|
|
33
|
+
krkn_lib/tests/base_test.py,sha256=8nd4Q3HZvKqIjrFyuUsBPqcvS8-u49V6uDw2qT_dL5c,22100
|
|
31
34
|
krkn_lib/tests/test_krkn_elastic.py,sha256=VFNu_NQLXEaq2rFR7BLwtynigVLuw8vhBNEUm53vpII,5612
|
|
32
|
-
krkn_lib/tests/test_krkn_elastic_models.py,sha256=
|
|
35
|
+
krkn_lib/tests/test_krkn_elastic_models.py,sha256=TYwbn9HXNM0c_NpUyyQ-VDXSE7oRhTxKG338Pz1yW8w,9083
|
|
33
36
|
krkn_lib/tests/test_krkn_kubernetes_check.py,sha256=7ElT--pJd52ql_WBAfWIa_p27bpWOH6gk_EEcCw_tXc,9333
|
|
34
37
|
krkn_lib/tests/test_krkn_kubernetes_create.py,sha256=QGnO9bwrk_eRyH-4LaEZY6cxu9Qdlcc8CQDxwsnkr5A,2597
|
|
35
38
|
krkn_lib/tests/test_krkn_kubernetes_delete.py,sha256=VXl-NhWrJejwxRhpeyjPVngggQsHeuJ17UfgdXxSF3k,5021
|
|
36
|
-
krkn_lib/tests/test_krkn_kubernetes_exec.py,sha256=
|
|
39
|
+
krkn_lib/tests/test_krkn_kubernetes_exec.py,sha256=BX3x-kSE-HGOZYNEosTDFbeHFBLDhnvyBC9Arai_Bf4,6927
|
|
37
40
|
krkn_lib/tests/test_krkn_kubernetes_get.py,sha256=psTuDuvTTINPNK6Mnn69g9ZKNHKcWJ2fFvw8Kx4g0wI,13064
|
|
38
41
|
krkn_lib/tests/test_krkn_kubernetes_list.py,sha256=_qZJux76O_kDehFRcNDqjWX5edTrKY0_BSa-iky4NWA,5065
|
|
39
42
|
krkn_lib/tests/test_krkn_kubernetes_misc.py,sha256=W-0I5BPIMVO7E3HMh5WsB1hVjq37uNb2YsX2EcN75AQ,13557
|
|
@@ -42,17 +45,15 @@ krkn_lib/tests/test_krkn_kubernetes_monitor.py,sha256=xgaAdGKA5Fdf41Oog3OIWnx2xv
|
|
|
42
45
|
krkn_lib/tests/test_krkn_kubernetes_pods_monitor_pool.py,sha256=AN4_HjhofVmVYTzC6aTokz_wOH7lJGQrsLheI49LTso,5691
|
|
43
46
|
krkn_lib/tests/test_krkn_openshift.py,sha256=ZXHQ8VutqWsjfTdjdvfGGXqNnPL9ByfHKYjkQLkwl1w,4108
|
|
44
47
|
krkn_lib/tests/test_krkn_prometheus.py,sha256=Yh3rHjomZGke6tgfebGyPt_L6di8a7QplPneTVmd70w,9308
|
|
45
|
-
krkn_lib/tests/test_krkn_telemetry_kubernetes.py,sha256=VxE0MMo6pTVJj2iTJYs0Ei_jbVxOVXpupFLXrnlf02M,12633
|
|
46
48
|
krkn_lib/tests/test_krkn_telemetry_models.py,sha256=J2PI4KAfZ7gSKhPC9DTJtlBKtObf69Kh_WbHcKbK8_Q,16219
|
|
47
|
-
krkn_lib/tests/
|
|
48
|
-
krkn_lib/tests/test_utils.py,sha256=r0b9djwmVb6O_P4xBQn4YG1ioXsDQe7E0a_BWSorUgk,13232
|
|
49
|
+
krkn_lib/tests/test_utils.py,sha256=4c48dCFvRVuACSt-PFrupdWKlgtKcowOwxyXzsn2NfM,14296
|
|
49
50
|
krkn_lib/tests/test_version.py,sha256=UepvN_1NixumE1mQssrv0G_Fp2bWibtvbDjEgmWoqe0,209
|
|
50
51
|
krkn_lib/utils/__init__.py,sha256=1U4hxrKaKha2eWTrxyrvjNO3bZNoybQAy8Ne_Oglbxc,68
|
|
51
|
-
krkn_lib/utils/functions.py,sha256=
|
|
52
|
+
krkn_lib/utils/functions.py,sha256=idKZNCFllAuHjZDGpT5LJESWeTU580NhLkp5KQL9PZo,16724
|
|
52
53
|
krkn_lib/utils/safe_logger.py,sha256=NLVy7589hZqrxc-YhkEOhg8GBJ7jxKofAQotiyvyo-4,3687
|
|
53
54
|
krkn_lib/version/__init__.py,sha256=0MLmj0ik-h9IVeq7zw8Xi5ux99DHfxJQ83Iv9Aqiubc,41
|
|
54
55
|
krkn_lib/version/version.py,sha256=pdrCTedp-HDIYnG6e-AwN2nMK8vdbNTioqXxJpIZ6b8,80
|
|
55
|
-
krkn_lib-5.1.
|
|
56
|
-
krkn_lib-5.1.
|
|
57
|
-
krkn_lib-5.1.
|
|
58
|
-
krkn_lib-5.1.
|
|
56
|
+
krkn_lib-5.1.2.dist-info/LICENSE,sha256=DOwG4OVfvD3FzuT8qbYH9my49OTbzzs8ATWU3RVnMuk,10173
|
|
57
|
+
krkn_lib-5.1.2.dist-info/METADATA,sha256=PGLOIwdspIZTSzWN0C35_n6U2VvUzNmEhROG8FtY5Hw,2710
|
|
58
|
+
krkn_lib-5.1.2.dist-info/WHEEL,sha256=b4K_helf-jlQoXBBETfwnf4B04YC67LOev0jo4fX5m8,88
|
|
59
|
+
krkn_lib-5.1.2.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|