Skip to content

Commit b0d0c78

Browse files
committed
Enhance yaml/json list handling
1 parent 4d4ce21 commit b0d0c78

7 files changed

+338
-36
lines changed

Diff for: kubernetes/e2e_test/test_utils.py

+82-2
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ def test_deployment_in_namespace(self):
103103
body={})
104104
resp = core_api.delete_namespace(name="dep", body={})
105105

106-
def test_api_service(self):
106+
def test_api_service_with_conflict(self):
107107
k8s_client = client.api_client.ApiClient(configuration=self.config)
108108
k8s_api = utils.create_from_yaml(k8s_client,
109109
"kubernetes/e2e_test/test_yaml/api-service.yaml")
@@ -112,5 +112,85 @@ def test_api_service(self):
112112
svc = k8s_api.read_api_service(
113113
name="v1alpha1.wardle.k8s.io")
114114
self.assertIsNotNone(svc)
115+
svc_conflict = utils.create_from_yaml(k8s_client,
116+
"kubernetes/e2e_test/test_yaml/api-service.yaml")
117+
self.assertEqual([], svc_conflict)
115118
resp = k8s_api.delete_api_service(
116-
name="v1alpha1.wardle.k8s.io", body={})
119+
name="v1alpha1.wardle.k8s.io", body={})
120+
121+
def test_list(self):
122+
k8s_client = client.api_client.ApiClient(configuration=self.config)
123+
k8s_api = utils.create_from_yaml(k8s_client,
124+
"kubernetes/e2e_test/test_yaml/list.yaml")
125+
svc_api = k8s_api[0]
126+
self.assertEqual("v1", svc_api.get_api_resources().group_version)
127+
svc = svc_api.read_namespaced_service(name="list-service-test",
128+
namespace="default")
129+
self.assertIsNotNone(svc)
130+
ext_api = k8s_api[1]
131+
self.assertEqual("extensions/v1beta1",
132+
ext_api.get_api_resources().group_version)
133+
dep = ext_api.read_namespaced_deployment(name="list-deployment-test",
134+
namespace="default")
135+
self.assertIsNotNone(dep)
136+
ext_api.delete_namespaced_deployment(name="list-deployment-test",
137+
namespace="default", body={})
138+
svc_api.delete_namespaced_service(name="list-service-test",
139+
namespace="default", body={})
140+
141+
def test_multi_resource(self):
142+
k8s_client = client.api_client.ApiClient(configuration=self.config)
143+
k8s_api = utils.create_from_yaml(k8s_client,
144+
"kubernetes/e2e_test/test_yaml/multi-resource-yaml.yaml")
145+
svc_api = k8s_api[0]
146+
self.assertEqual("v1", svc_api.get_api_resources().group_version)
147+
svc = svc_api.read_namespaced_service(name="mock",
148+
namespace="default")
149+
self.assertIsNotNone(svc)
150+
ctr_api = k8s_api[1]
151+
self.assertEqual("v1", ctr_api.get_api_resources().group_version)
152+
ctr = ctr_api.read_namespaced_replication_controller(
153+
name="mock", namespace="default")
154+
self.assertIsNotNone(ctr)
155+
ctr_api.delete_namespaced_replication_controller(name="mock",
156+
namespace="default", body={})
157+
svc_api.delete_namespaced_service(name="mock",
158+
namespace="default", body={})
159+
160+
def test_multi_resource_with_conflict(self):
161+
k8s_client = client.api_client.ApiClient(configuration=self.config)
162+
svc_api = utils.create_from_yaml(k8s_client,
163+
"kubernetes/e2e_test/test_yaml/yaml-conflict-first.yaml")
164+
self.assertEqual("v1", svc_api.get_api_resources().group_version)
165+
svc = svc_api.read_namespaced_service(name="mock-2",
166+
namespace="default")
167+
self.assertIsNotNone(svc)
168+
ctr_api = utils.create_from_yaml(k8s_client,
169+
"kubernetes/e2e_test/test_yaml/yaml-conflict-multi.yaml")
170+
self.assertEqual("v1", ctr_api.get_api_resources().group_version)
171+
ctr = ctr_api.read_namespaced_replication_controller(
172+
name="mock-2", namespace="default")
173+
self.assertIsNotNone(ctr)
174+
ctr_api.delete_namespaced_replication_controller(name="mock-2",
175+
namespace="default", body={})
176+
svc_api.delete_namespaced_service(name="mock-2",
177+
namespace="default", body={})
178+
179+
def test_svc_list_with_conflict_no_kind(self):
180+
k8s_client = client.api_client.ApiClient(configuration=self.config)
181+
svc_apis = utils.create_from_yaml(k8s_client,
182+
"kubernetes/e2e_test/test_yaml/multi-resource-svclist.json")
183+
svc_api_0 = svc_apis[0]
184+
self.assertEqual("v1", svc_api_0.get_api_resources().group_version)
185+
svc_0 = svc_api_0.read_namespaced_service(name="mock-3",
186+
namespace="default")
187+
self.assertIsNotNone(svc_0)
188+
svc_api_1 = svc_apis[1]
189+
self.assertEqual("v1", svc_api_1.get_api_resources().group_version)
190+
svc_1 = svc_api_1.read_namespaced_service(name="mock-4",
191+
namespace="default")
192+
self.assertIsNotNone(svc_1)
193+
svc_api_0.delete_namespaced_service(name="mock-3",
194+
namespace="default", body={})
195+
svc_api_1.delete_namespaced_service(name="mock-4",
196+
namespace="default", body={})

Diff for: kubernetes/e2e_test/test_yaml/list.yaml

+29
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
apiVersion: v1
2+
kind: List
3+
items:
4+
- apiVersion: v1
5+
kind: Service
6+
metadata:
7+
name: list-service-test
8+
spec:
9+
ports:
10+
- protocol: TCP
11+
port: 80
12+
selector:
13+
app: list-deployment-test
14+
- apiVersion: extensions/v1beta1
15+
kind: Deployment
16+
metadata:
17+
name: list-deployment-test
18+
labels:
19+
app: list-deployment-test
20+
spec:
21+
replicas: 1
22+
template:
23+
metadata:
24+
labels:
25+
app: list-deployment-test
26+
spec:
27+
containers:
28+
- name: nginx
29+
image: nginx
+60
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
{
2+
"kind":"ServiceList",
3+
"apiVersion":"v1",
4+
"items":[
5+
{
6+
"metadata":{
7+
"name":"mock-3",
8+
"labels":{
9+
"app":"mock-3"
10+
}
11+
},
12+
"spec":{
13+
"ports": [{
14+
"protocol": "TCP",
15+
"port": 99,
16+
"targetPort": 9949
17+
}],
18+
"selector":{
19+
"app":"mock-3"
20+
}
21+
}
22+
},
23+
{
24+
"metadata":{
25+
"name":"mock-3",
26+
"labels":{
27+
"app":"mock-3"
28+
}
29+
},
30+
"spec":{
31+
"ports": [{
32+
"protocol": "TCP",
33+
"port": 99,
34+
"targetPort": 9949
35+
}],
36+
"selector":{
37+
"app":"mock-3"
38+
}
39+
}
40+
},
41+
{
42+
"metadata":{
43+
"name":"mock-4",
44+
"labels":{
45+
"app":"mock-4"
46+
}
47+
},
48+
"spec":{
49+
"ports": [{
50+
"protocol": "TCP",
51+
"port": 99,
52+
"targetPort": 9949
53+
}],
54+
"selector":{
55+
"app":"mock-4"
56+
}
57+
}
58+
}
59+
]
60+
}
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: mock
5+
labels:
6+
app: mock
7+
spec:
8+
ports:
9+
- port: 99
10+
protocol: TCP
11+
targetPort: 9949
12+
selector:
13+
app: mock
14+
---
15+
apiVersion: v1
16+
kind: ReplicationController
17+
metadata:
18+
name: mock
19+
spec:
20+
replicas: 1
21+
selector:
22+
app: mock
23+
template:
24+
metadata:
25+
labels:
26+
app: mock
27+
spec:
28+
containers:
29+
- name: mock-container
30+
image: k8s.gcr.io/pause:2.0
31+
ports:
32+
- containerPort: 9949
33+
protocol: TCP
+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: mock-2
5+
labels:
6+
app: mock-2
7+
spec:
8+
ports:
9+
- port: 99
10+
protocol: TCP
11+
targetPort: 9949
12+
selector:
13+
app: mock-2
+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: mock-2
5+
labels:
6+
app: mock-2
7+
spec:
8+
ports:
9+
- port: 99
10+
protocol: TCP
11+
targetPort: 9949
12+
selector:
13+
app: mock-2
14+
---
15+
apiVersion: v1
16+
kind: ReplicationController
17+
metadata:
18+
name: mock-2
19+
spec:
20+
replicas: 1
21+
selector:
22+
app: mock-2
23+
template:
24+
metadata:
25+
labels:
26+
app: mock-2
27+
spec:
28+
containers:
29+
- name: mock-container
30+
image: k8s.gcr.io/pause:2.0
31+
ports:
32+
- containerPort: 9949
33+
protocol: TCP

0 commit comments

Comments
 (0)