mirror of https://github.com/alibaba/SREWorks.git
67 lines
1.8 KiB
Python
Executable File
67 lines
1.8 KiB
Python
Executable File
#!/usr/bin/python
|
|
# -*- coding: UTF-8 -*-
|
|
|
|
import os
|
|
import os.path
|
|
import sys
|
|
import time
|
|
from subprocess import Popen, PIPE
|
|
|
|
self_path = os.path.split(os.path.realpath(__file__))[0]
|
|
|
|
def popen(command):
|
|
child = Popen(command, stdin = PIPE, stdout = PIPE, stderr = PIPE, shell = True)
|
|
out, err = child.communicate()
|
|
ret = child.wait()
|
|
return (ret, out.strip(), err.strip())
|
|
|
|
# 获取所有的storageClass
|
|
command = "kubectl get storageclass|grep -v NAME"
|
|
(ret, out, err) = popen(command)
|
|
storageClasses = []
|
|
for line in out.split("\n"):
|
|
storageClass = line.split()[0]
|
|
storageClasses.append(storageClass)
|
|
h = open(self_path + '/storage-class-check.yaml', 'r')
|
|
content = h.read()
|
|
h.close()
|
|
yaml = content.replace('${storageClass}', storageClass)
|
|
h = open('/tmp/' + storageClass + ".yaml", 'w')
|
|
h.write(yaml)
|
|
h.close()
|
|
(ret, out, err) = popen("kubectl apply -f " + '/tmp/' + storageClass + ".yaml")
|
|
print(out)
|
|
|
|
result = {}
|
|
|
|
for i in range(10):
|
|
time.sleep(1)
|
|
print("StorageClass Test Wait " + str(10 - i) + "s")
|
|
for storageClass in storageClasses:
|
|
if result.get(storageClass) is None:
|
|
result[storageClass] = "Failed"
|
|
if result[storageClass] == "OK":
|
|
continue
|
|
|
|
command ="kubectl get pod test-" + storageClass + "-0 | grep -v NAME"
|
|
(ret, out, err) = popen(command)
|
|
|
|
if ret == 0 and out.split()[2] == "Completed":
|
|
result[storageClass] = "OK"
|
|
|
|
for storageClass in storageClasses:
|
|
(ret, out, err) = popen("kubectl delete -f " + '/tmp/' + storageClass + ".yaml")
|
|
print(out)
|
|
(ret, out, err) = popen("kubectl delete pvc " + 'test-' + storageClass + "-0")
|
|
print(out)
|
|
|
|
|
|
print("")
|
|
print("-------------------")
|
|
for k,v in result.items():
|
|
print(k + " result: " + v)
|
|
|
|
|
|
|
|
|