You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-admin/rsyslog/files/8-stable/rsyslog-8.35.0-fix-issue271...

242 lines
7.4 KiB

Add missing files for mmkubernetes tests
Upstream bug: https://github.com/rsyslog/rsyslog/pull/2719
--- /dev/null
+++ b/tests/mmkubernetes-basic.out.json
@@ -0,0 +1,110 @@
+[{
+ "kubernetes": {
+ "namespace_id": "namespace-name2-id",
+ "namespace_labels": {
+ "label_1_key": "label 1 value",
+ "label_with_empty_value": "",
+ "label_2_key": "label 2 value"
+ },
+ "creation_timestamp": "2018-04-09T21:56:39Z",
+ "pod_id": "pod-name2-id",
+ "labels": {
+ "custom_label": "pod-name2-label-value",
+ "deploymentconfig": "pod-name2-dc",
+ "component": "pod-name2-component",
+ "label_with_empty_value": "",
+ "deployment": "pod-name2-deployment"
+ },
+ "pod_name": "pod-name2",
+ "namespace_name": "namespace-name2",
+ "container_name": "container-name2",
+ "master_url": "http://localhost:18443"
+ },
+ "docker": {
+ "container_id": "id2"
+ }
+},
+{
+ "message": "a message from container 4",
+ "CONTAINER_NAME": "some-prefix_container-name4_pod-name4_namespace-name4_unused4_unused44",
+ "CONTAINER_ID_FULL": "id4",
+ "kubernetes": {
+ "namespace_id": "namespace-name4-id",
+ "namespace_labels": {
+ "label_1_key": "label 1 value",
+ "label_with_empty_value": "",
+ "label_2_key": "label 2 value"
+ },
+ "creation_timestamp": "2018-04-09T21:56:39Z",
+ "pod_id": "pod-name4-id",
+ "labels": {
+ "custom_label": "pod-name4-label-value",
+ "deploymentconfig": "pod-name4-dc",
+ "component": "pod-name4-component",
+ "label_with_empty_value": "",
+ "deployment": "pod-name4-deployment"
+ },
+ "pod_name": "pod-name4",
+ "namespace_name": "namespace-name4",
+ "container_name": "container-name4",
+ "master_url": "http://localhost:18443"
+ },
+ "docker": {
+ "container_id": "id4"
+ }
+},
+{
+ "kubernetes": {
+ "namespace_id": "namespace-name1-id",
+ "namespace_labels": {
+ "label_1_key": "label 1 value",
+ "label_with_empty_value": "",
+ "label_2_key": "label 2 value"
+ },
+ "creation_timestamp": "2018-04-09T21:56:39Z",
+ "pod_id": "pod-name1-id",
+ "labels": {
+ "custom_label": "pod-name1-label-value",
+ "deploymentconfig": "pod-name1-dc",
+ "component": "pod-name1-component",
+ "label_with_empty_value": "",
+ "deployment": "pod-name1-deployment"
+ },
+ "pod_name": "pod-name1",
+ "namespace_name": "namespace-name1",
+ "container_name": "container-name1",
+ "master_url": "http://localhost:18443"
+ },
+ "docker": {
+ "container_id": "id1"
+ }
+},
+{
+ "message": "a message from container 3",
+ "CONTAINER_NAME": "some-prefix_container-name3.container-hash3_pod-name3_namespace-name3_unused3_unused33",
+ "CONTAINER_ID_FULL": "id3",
+ "kubernetes": {
+ "namespace_id": "namespace-name3-id",
+ "namespace_labels": {
+ "label_1_key": "label 1 value",
+ "label_with_empty_value": "",
+ "label_2_key": "label 2 value"
+ },
+ "creation_timestamp": "2018-04-09T21:56:39Z",
+ "pod_id": "pod-name3-id",
+ "labels": {
+ "custom_label": "pod-name3-label-value",
+ "deploymentconfig": "pod-name3-dc",
+ "component": "pod-name3-component",
+ "label_with_empty_value": "",
+ "deployment": "pod-name3-deployment"
+ },
+ "pod_name": "pod-name3",
+ "namespace_name": "namespace-name3",
+ "container_name": "container-name3",
+ "master_url": "http://localhost:18443"
+ },
+ "docker": {
+ "container_id": "id3"
+ }
+}]
--- /dev/null
+++ b/tests/mmkubernetes_test_server.py
@@ -0,0 +1,121 @@
+# Used by the mmkubernetes tests
+# This is a simple http server which responds to kubernetes api requests
+# and responds with kubernetes api server responses
+# added 2018-04-06 by richm, released under ASL 2.0
+import os
+import json
+import sys
+
+try:
+ from http.server import HTTPServer, BaseHTTPRequestHandler
+except ImportError:
+ from BaseHTTPServer import HTTPServer, BaseHTTPRequestHandler
+
+ns_template = '''{{
+ "kind": "Namespace",
+ "apiVersion": "v1",
+ "metadata": {{
+ "name": "{namespace_name}",
+ "selfLink": "/api/v1/namespaces/{namespace_name}",
+ "uid": "{namespace_name}-id",
+ "resourceVersion": "2988",
+ "creationTimestamp": "2018-04-09T21:56:39Z",
+ "labels": {{
+ "label.1.key":"label 1 value",
+ "label.2.key":"label 2 value",
+ "label.with.empty.value":""
+ }},
+ "annotations": {{
+ "k8s.io/description": "",
+ "k8s.io/display-name": "",
+ "k8s.io/node-selector": "",
+ "k8s.io/sa.scc.mcs": "s0:c9,c4",
+ "k8s.io/sa.scc.supplemental-groups": "1000080000/10000",
+ "k8s.io/sa.scc.uid-range": "1000080000/10000",
+ "quota.k8s.io/cluster-resource-override-enabled": "false"
+ }}
+ }},
+ "spec": {{
+ "finalizers": [
+ "openshift.io/origin",
+ "kubernetes"
+ ]
+ }},
+ "status": {{
+ "phase": "Active"
+ }}
+}}'''
+
+pod_template = '''{{
+ "kind": "Pod",
+ "apiVersion": "v1",
+ "metadata": {{
+ "name": "{pod_name}",
+ "generateName": "{pod_name}-prefix",
+ "namespace": "{namespace_name}",
+ "selfLink": "/api/v1/namespaces/{namespace_name}/pods/{pod_name}",
+ "uid": "{pod_name}-id",
+ "resourceVersion": "3486",
+ "creationTimestamp": "2018-04-09T21:56:39Z",
+ "labels": {{
+ "component": "{pod_name}-component",
+ "deployment": "{pod_name}-deployment",
+ "deploymentconfig": "{pod_name}-dc",
+ "custom.label": "{pod_name}-label-value",
+ "label.with.empty.value":""
+ }},
+ "annotations": {{
+ "k8s.io/deployment-config.latest-version": "1",
+ "k8s.io/deployment-config.name": "{pod_name}-dc",
+ "k8s.io/deployment.name": "{pod_name}-deployment",
+ "k8s.io/custom.name": "custom value",
+ "annotation.with.empty.value":""
+ }}
+ }},
+ "status": {{
+ "phase": "Running",
+ "hostIP": "172.18.4.32",
+ "podIP": "10.128.0.14",
+ "startTime": "2018-04-09T21:57:39Z"
+ }}
+}}'''
+
+class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
+
+ def do_GET(self):
+ # "http://localhost:18443/api/v1/namespaces/namespace-name2"
+ # parse url - either /api/v1/namespaces/$ns_name
+ # or
+ # /api/v1/namespaces/$ns_name/pods/$pod_name
+ comps = self.path.split('/')
+ status = 400
+ if len(comps) >= 5 and comps[1] == 'api' and comps[2] == 'v1':
+ if len(comps) == 5 and comps[3] == 'namespaces': # namespace
+ resp = ns_template.format(namespace_name=comps[4])
+ status = 200
+ elif len(comps) == 7 and comps[3] == 'namespaces' and comps[5] == 'pods':
+ resp = pod_template.format(namespace_name=comps[4], pod_name=comps[6])
+ status = 200
+ else:
+ resp = '{{"error":"do not recognize {0}"}}'.format(self.path)
+ else:
+ resp = '{{"error":"do not recognize {0}"}}'.format(self.path)
+ if not status == 200:
+ self.log_error(resp)
+ self.send_response(status)
+ self.end_headers()
+ self.wfile.write(json.dumps(json.loads(resp), separators=(',',':')))
+
+port = int(sys.argv[1])
+
+httpd = HTTPServer(('localhost', port), SimpleHTTPRequestHandler)
+
+# write "started" to file named in argv[3]
+with open(sys.argv[3], "w") as ff:
+ ff.write("started\n")
+
+# write pid to file named in argv[2]
+with open(sys.argv[2], "w") as ff:
+ ff.write('{0}\n'.format(os.getpid()))
+
+httpd.serve_forever()