-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathcloudlet_check.py
executable file
·74 lines (57 loc) · 1.95 KB
/
cloudlet_check.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
#!/usr/bin/env /usr/local/bin/python
# encoding: utf-8
import json
import logging
from docker import Client
from cloudlet_utl import *
import subprocess as sp
# check_status = False #after check , this should be true.
docker_api_version = ''
def cloudlet_check():
logging.info("validate checking ...")
if (docker_check() and criu_check() and docker_py_check()) is False:
logging.error('cloudlet environment check failed')
return False
print('\nok, your system seems good')
return True
def docker_check():
docker_version = sp.check_output('docker version', shell=True)
lines = docker_version.split('\n')
for line in lines:
if 'API version' in line:
global docker_api_version
docker_api_version = line.split(':')[1]
docker_api_version = ''.join(docker_api_version.split())
if not docker_api_version:
logging.error('Docker version failed')
return False
print('docker api version:' + docker_api_version)
return True
def criu_check():
out = sp.check_output('criu check', shell=True)
if 'Error' in out:
logging.error('criu check failed')
return Fase
else:
logging.info('criu check ok')
criu_info = sp.check_output('criu -V', shell=True)
lines = criu_info.split('\n')
for line in lines:
if 'Version' in line:
print('criu ' + line)
return True
return False
def docker_py_check():
global docker_api_version
if isBlank(docker_api_version):
logging.error('criu check failed [inner issue happen]')
cli = Client(version=docker_api_version)
to_json = json.dumps(cli.info())
json_info = json.loads(to_json)
if json_info['Driver'] != 'aufs':
logging.error('sorry,just support aufs now.')
return False
logging.debug(json_info['OperatingSystem'] + ','),
print(json_info['KernelVersion'])
logging.debug('docker py works')
return True