krkn-lib 5.1.6__tar.gz → 5.1.7__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.
Files changed (63) hide show
  1. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/PKG-INFO +4 -2
  2. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/pyproject.toml +1 -1
  3. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/pod_monitor/models.py +8 -0
  4. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_pods_monitor.py +2 -1
  5. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_utils.py +19 -1
  6. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/utils/functions.py +18 -2
  7. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/LICENSE +0 -0
  8. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/README.md +0 -0
  9. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/__init__.py +0 -0
  10. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/aws_tests/__init__.py +0 -0
  11. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/aws_tests/test_krkn_telemetry_kubernetes.py +0 -0
  12. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/aws_tests/test_krkn_telemetry_openshift.py +0 -0
  13. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/elastic/__init__.py +0 -0
  14. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/elastic/krkn_elastic.py +0 -0
  15. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/k8s/__init__.py +0 -0
  16. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/k8s/krkn_kubernetes.py +0 -0
  17. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/k8s/pod_monitor/__init__.py +0 -0
  18. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/k8s/pod_monitor/pod_monitor.py +0 -0
  19. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/hog_pod.j2 +0 -0
  20. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/node_exec_pod.j2 +0 -0
  21. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/service_hijacking_config_map.j2 +0 -0
  22. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/service_hijacking_pod.j2 +0 -0
  23. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/k8s/templates/syn_flood_pod.j2 +0 -0
  24. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/__init__.py +0 -0
  25. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/elastic/__init__.py +0 -0
  26. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/elastic/models.py +0 -0
  27. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/k8s/__init__.py +0 -0
  28. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/k8s/models.py +0 -0
  29. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/krkn/__init__.py +0 -0
  30. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/krkn/models.py +0 -0
  31. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/pod_monitor/__init__.py +0 -0
  32. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/telemetry/__init__.py +0 -0
  33. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/models/telemetry/models.py +0 -0
  34. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/ocp/__init__.py +0 -0
  35. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/ocp/krkn_openshift.py +0 -0
  36. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/prometheus/__init__.py +0 -0
  37. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/prometheus/krkn_prometheus.py +0 -0
  38. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/telemetry/__init__.py +0 -0
  39. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/telemetry/k8s/__init__.py +0 -0
  40. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/telemetry/k8s/krkn_telemetry_kubernetes.py +0 -0
  41. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/telemetry/ocp/__init__.py +0 -0
  42. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/telemetry/ocp/krkn_telemetry_openshift.py +0 -0
  43. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/__init__.py +0 -0
  44. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/base_test.py +0 -0
  45. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_elastic.py +0 -0
  46. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_elastic_models.py +0 -0
  47. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_check.py +0 -0
  48. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_create.py +0 -0
  49. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_delete.py +0 -0
  50. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_exec.py +0 -0
  51. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_get.py +0 -0
  52. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_list.py +0 -0
  53. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_misc.py +0 -0
  54. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_models.py +0 -0
  55. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_kubernetes_pods_monitor_models.py +0 -0
  56. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_openshift.py +0 -0
  57. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_prometheus.py +0 -0
  58. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_krkn_telemetry_models.py +0 -0
  59. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/tests/test_version.py +0 -0
  60. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/utils/__init__.py +0 -0
  61. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/utils/safe_logger.py +0 -0
  62. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/version/__init__.py +0 -0
  63. {krkn_lib-5.1.6 → krkn_lib-5.1.7}/src/krkn_lib/version/version.py +0 -0
@@ -1,8 +1,9 @@
1
- Metadata-Version: 2.3
1
+ Metadata-Version: 2.4
2
2
  Name: krkn-lib
3
- Version: 5.1.6
3
+ Version: 5.1.7
4
4
  Summary: Foundation library for Kraken
5
5
  License: Apache-2.0
6
+ License-File: LICENSE
6
7
  Author: Red Hat Chaos Team
7
8
  Requires-Python: >=3.9,<4.0
8
9
  Classifier: License :: OSI Approved :: Apache Software License
@@ -12,6 +13,7 @@ Classifier: Programming Language :: Python :: 3.10
12
13
  Classifier: Programming Language :: Python :: 3.11
13
14
  Classifier: Programming Language :: Python :: 3.12
14
15
  Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Programming Language :: Python :: 3.14
15
17
  Requires-Dist: PyYAML (==6.0.1)
16
18
  Requires-Dist: base64io (>=1.0.3,<2.0.0)
17
19
  Requires-Dist: coverage (>=7.6.12,<8.0.0)
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "krkn-lib"
3
- version = "5.1.6"
3
+ version = "5.1.7"
4
4
  description = "Foundation library for Kraken"
5
5
  authors = ["Red Hat Chaos Team"]
6
6
  license = "Apache-2.0"
@@ -8,6 +8,7 @@ from krkn_lib.models.k8s import PodsStatus, AffectedPod
8
8
 
9
9
 
10
10
  class PodStatus(Enum):
11
+ UNDEFINED = 0
11
12
  READY = 1
12
13
  NOT_READY = 2
13
14
  DELETION_SCHEDULED = 3
@@ -20,6 +21,7 @@ class PodEvent:
20
21
  status: PodStatus
21
22
 
22
23
  def __init__(self, timestamp: float = None):
24
+ self.status = PodStatus.UNDEFINED
23
25
  if not timestamp:
24
26
  self._timestamp = time.time()
25
27
  else:
@@ -142,12 +144,18 @@ class PodsSnapshot:
142
144
  )
143
145
  )
144
146
  else:
147
+ # pod stayed ready but was restarted
148
+ # or has a failed container
145
149
  pods_status.recovered.append(
146
150
  AffectedPod(
147
151
  pod_name=pod.name,
148
152
  namespace=pod.namespace,
149
153
  pod_readiness_time=ready_status.timestamp
150
154
  - status_change.timestamp,
155
+ pod_rescheduling_time=0,
156
+ total_recovery_time=
157
+ ready_status.timestamp
158
+ - status_change.timestamp
151
159
  )
152
160
  )
153
161
  break
@@ -441,8 +441,9 @@ class TestKrknKubernetesPodsMonitor(BaseTest):
441
441
  pods_status = snapshot.get_pods_status()
442
442
  self.background_delete_ns(namespace)
443
443
  self.assertEqual(len(pods_status.recovered), 1)
444
- self.assertEqual(pods_status.recovered[0].pod_rescheduling_time, None)
444
+ self.assertEqual(pods_status.recovered[0].pod_rescheduling_time, 0)
445
445
  self.assertGreater(pods_status.recovered[0].pod_readiness_time, 0)
446
+ self.assertEqual(pods_status.recovered[0].total_recovery_time, pods_status.recovered[0].pod_readiness_time)
446
447
 
447
448
  def test_monitor_stopping_earlier(self):
448
449
 
@@ -426,7 +426,25 @@ class UtilFunctionTests(BaseTest):
426
426
  os.environ["JOB_NAME"] = "1953335493844275200"
427
427
  ci_job_url = utils.get_ci_job_url()
428
428
  print("ci job url" + str(ci_job_url))
429
- self.assertIn("prow.ci.openshift.org", ci_job_url)
429
+ self.assertIn(
430
+ "prow.ci.openshift.org/view/gs/origin-ci-test", ci_job_url
431
+ )
432
+ os.environ["PULL_NUMBER"] = "68493"
433
+ os.environ["PROW_JOB_ID"] = os.environ["JOB_NAME"] = (
434
+ "1965813126276321280"
435
+ )
436
+ os.environ["JOB_TYPE"] = "presubmit"
437
+
438
+ os.environ["BUILD_ID"] = (
439
+ "rehearse-68493-periodic-ci-redhat-chaos-prow-scripts-main-4.20-nightly-krkn-hub-node-tests-aws-ipsec" # NOQA
440
+ )
441
+
442
+ ci_job_url = utils.get_ci_job_url()
443
+ print("ci job url" + str(ci_job_url))
444
+ self.assertIn(
445
+ "prow.ci.openshift.org/view/gs/test-platform-results", ci_job_url
446
+ )
447
+
430
448
  os.environ["PROW_JOB_ID"] = ""
431
449
  os.environ["BUILD_URL"] = (
432
450
  "https://jenkins-csb-openshift-qe-mastern.dno.corp.redhat.com/job/scale-ci/job/e2e-benchmarking-multibranch-pipeline/job/kraken/" # NOQA
@@ -472,10 +472,26 @@ def get_ci_job_url():
472
472
  prow_base_url = (
473
473
  "https://prow.ci.openshift.org/view/gs/origin-ci-test/logs"
474
474
  )
475
+ prow_pr_base_url=(
476
+ "https://prow.ci.openshift.org/view/gs/test-platform-results/pr-logs/pull/openshift_release" # NOQA
477
+ )
475
478
  task_id = os.getenv("BUILD_ID")
476
479
  job_id = os.getenv("JOB_NAME")
477
-
478
- build_url = f"{prow_base_url}/{job_id}/{task_id}"
480
+ pull_number = os.getenv("PULL_NUMBER")
481
+ job_type=os.getenv("JOB_TYPE")
482
+ if job_type == "presubmit" and "pull" in task_id:
483
+ # Indicates a ci test triggered in PR against source code
484
+ job_type = "pull"
485
+ if job_type == "presubmit" and "rehearse" in task_id:
486
+ # Indicates a rehearsel in PR against openshift/release repo
487
+ job_type = "pull"
488
+ # Handle cases where a periodic job iw triggered via pull request
489
+ if job_type == "periodic" and pull_number:
490
+ job_type = "pull"
491
+ if job_type == "pull" :
492
+ build_url=f"{prow_pr_base_url}/{pull_number}/{task_id}/{job_id}"
493
+ else:
494
+ build_url=f"{prow_base_url}/{job_id}/{task_id}"
479
495
 
480
496
  elif os.getenv("BUILD_URL", ""):
481
497
  # Jenkins build url
File without changes
File without changes