krkn-lib 5.1.8__tar.gz → 5.1.9__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.8 → krkn_lib-5.1.9}/PKG-INFO +1 -1
  2. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/pyproject.toml +1 -1
  3. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/k8s/krkn_kubernetes.py +33 -0
  4. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_kubernetes_list.py +13 -0
  5. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/LICENSE +0 -0
  6. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/README.md +0 -0
  7. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/__init__.py +0 -0
  8. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/aws_tests/__init__.py +0 -0
  9. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/aws_tests/test_krkn_telemetry_kubernetes.py +0 -0
  10. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/aws_tests/test_krkn_telemetry_openshift.py +0 -0
  11. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/elastic/__init__.py +0 -0
  12. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/elastic/krkn_elastic.py +0 -0
  13. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/k8s/__init__.py +0 -0
  14. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/k8s/pod_monitor/__init__.py +0 -0
  15. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/k8s/pod_monitor/pod_monitor.py +0 -0
  16. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/k8s/templates/hog_pod.j2 +0 -0
  17. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/k8s/templates/node_exec_pod.j2 +0 -0
  18. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/k8s/templates/service_hijacking_config_map.j2 +0 -0
  19. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/k8s/templates/service_hijacking_pod.j2 +0 -0
  20. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/k8s/templates/syn_flood_pod.j2 +0 -0
  21. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/__init__.py +0 -0
  22. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/elastic/__init__.py +0 -0
  23. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/elastic/models.py +0 -0
  24. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/k8s/__init__.py +0 -0
  25. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/k8s/models.py +0 -0
  26. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/krkn/__init__.py +0 -0
  27. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/krkn/models.py +0 -0
  28. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/pod_monitor/__init__.py +0 -0
  29. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/pod_monitor/models.py +0 -0
  30. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/telemetry/__init__.py +0 -0
  31. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/models/telemetry/models.py +0 -0
  32. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/ocp/__init__.py +0 -0
  33. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/ocp/krkn_openshift.py +0 -0
  34. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/prometheus/__init__.py +0 -0
  35. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/prometheus/krkn_prometheus.py +0 -0
  36. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/telemetry/__init__.py +0 -0
  37. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/telemetry/k8s/__init__.py +0 -0
  38. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/telemetry/k8s/krkn_telemetry_kubernetes.py +0 -0
  39. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/telemetry/ocp/__init__.py +0 -0
  40. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/telemetry/ocp/krkn_telemetry_openshift.py +0 -0
  41. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/__init__.py +0 -0
  42. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/base_test.py +0 -0
  43. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_elastic.py +0 -0
  44. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_elastic_models.py +0 -0
  45. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_kubernetes_check.py +0 -0
  46. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_kubernetes_create.py +0 -0
  47. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_kubernetes_delete.py +0 -0
  48. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_kubernetes_exec.py +0 -0
  49. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_kubernetes_get.py +0 -0
  50. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_kubernetes_misc.py +0 -0
  51. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_kubernetes_models.py +0 -0
  52. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_kubernetes_pods_monitor.py +0 -0
  53. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_kubernetes_pods_monitor_models.py +0 -0
  54. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_openshift.py +0 -0
  55. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_prometheus.py +0 -0
  56. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_krkn_telemetry_models.py +0 -0
  57. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_utils.py +0 -0
  58. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/tests/test_version.py +0 -0
  59. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/utils/__init__.py +0 -0
  60. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/utils/functions.py +0 -0
  61. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/utils/safe_logger.py +0 -0
  62. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/version/__init__.py +0 -0
  63. {krkn_lib-5.1.8 → krkn_lib-5.1.9}/src/krkn_lib/version/version.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: krkn-lib
3
- Version: 5.1.8
3
+ Version: 5.1.9
4
4
  Summary: Foundation library for Kraken
5
5
  License: Apache-2.0
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [tool.poetry]
2
2
  name = "krkn-lib"
3
- version = "5.1.8"
3
+ version = "5.1.9"
4
4
  description = "Foundation library for Kraken"
5
5
  authors = ["Red Hat Chaos Team"]
6
6
  license = "Apache-2.0"
@@ -3141,3 +3141,36 @@ class KrknKubernetes:
3141
3141
  pids_list = list(filter(None, pids_list))
3142
3142
  return pids_list
3143
3143
  return None
3144
+
3145
+ def list_pod_network_interfaces(
3146
+ self, pod_name: str, namespace: str, container_name: str = None
3147
+ ) -> list[str]:
3148
+ """
3149
+ Lists the network interfaces of a pod (Linux only)
3150
+ :param pod_name: the name of the pod
3151
+ :param namespace: the namespaces of the pod
3152
+ :param container_name: the container of the pod where the interfaces
3153
+ will be listed, if None the first will be picked
3154
+ :return: the list of the interfaces
3155
+ """
3156
+
3157
+ if not self.check_if_pod_exists(pod_name, namespace):
3158
+ raise Exception(
3159
+ f"target pod {pod_name} does not exist in "
3160
+ f"namespace {namespace}"
3161
+ )
3162
+
3163
+ cmd = "ls /sys/class/net"
3164
+ nics_str = self.exec_cmd_in_pod(
3165
+ [cmd],
3166
+ pod_name,
3167
+ namespace,
3168
+ container_name,
3169
+ )
3170
+ nics = nics_str.split("\n")
3171
+ try:
3172
+ nics.remove("lo")
3173
+ nics.remove("")
3174
+ except ValueError:
3175
+ pass
3176
+ return nics
@@ -173,6 +173,19 @@ class KrknKubernetesTestsList(BaseTest):
173
173
  len(schedulable_nodes), len(schedulable_nodes_empty_selector)
174
174
  )
175
175
 
176
+ def test_list_pod_network_interfaces(self):
177
+ namespace = "test-cid-" + self.get_random_string(10)
178
+ base_pod_name = "test-name-" + self.get_random_string(10)
179
+ self.deploy_namespace(namespace, [])
180
+ self.deploy_fedtools(namespace=namespace, name=base_pod_name)
181
+ self.wait_pod(base_pod_name, namespace)
182
+
183
+ nics = self.lib_k8s.list_pod_network_interfaces(
184
+ base_pod_name, namespace
185
+ )
186
+ self.assertGreater(len(nics), 0)
187
+ self.assertTrue("eth0" in nics)
188
+
176
189
 
177
190
  if __name__ == "__main__":
178
191
  unittest.main()
File without changes
File without changes