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
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
MONITOR_STAGING_DIR="${STAGING_DIR}/monitor"
MONITOR_STAGING_SERVICES_DIR="${MONITOR_STAGING_DIR}/services"
MONITOR_STAGING_CHECKS_DIR="${MONITOR_STAGING_DIR}/checks"
MONITOR_CONFIG_DIR="${IMAGE_ROOTFS}/etc/monitor"
MONITOR_CONFIG_SERVICES_DIR="${MONITOR_CONFIG_DIR}/services"
MONITOR_CONFIG_CHECKS_DIR="${MONITOR_CONFIG_DIR}/checks"
addtask monitor_install before do_package after do_install
addtask monitor_clean before do_clean
def copy_check_files(d, check_var_name, src, dest):
import shutil
mon_checks = d.getVar(check_var_name, 1)
if mon_checks != None:
if not os.path.exists(dest):
os.makedirs(dest)
for check in mon_checks.split():
if os.path.exists(src + "/" + check):
shutil.copy(src + "/" + check, dest)
os.chmod(dest + "/" + check, 0o755)
python do_monitor_install() {
import shutil
if bb.utils.contains('OPENSTACK_EXTRA_FEATURES', 'monitoring', "0", "1", d) == "1":
bb.debug(1, 'OpenStack monitoring feature is disabled, skipping do_monitor_install')
return
mon_dir = d.getVar('MONITOR_STAGING_DIR', 1)
mon_services_dir = d.getVar('MONITOR_STAGING_SERVICES_DIR', 1)
mon_checks_dir = d.getVar('MONITOR_STAGING_CHECKS_DIR', 1)
if not os.path.exists(mon_dir):
os.makedirs(mon_dir)
if not os.path.exists(mon_services_dir):
os.makedirs(mon_services_dir)
if not os.path.exists(mon_checks_dir):
os.makedirs(mon_checks_dir)
workdir = d.getVar('WORKDIR', True)
# Process monitor SERVICE catagory
mon_service_pkgs = d.getVar('MONITOR_SERVICE_PACKAGES', 1)
if mon_service_pkgs != None:
for pkg in mon_service_pkgs.split():
f_name = os.path.join(mon_services_dir, pkg + '.service')
if os.path.exists(f_name):
os.remove(f_name)
data = d.getVar('MONITOR_SERVICE_' + pkg, 1)
if data != None:
f = open(f_name, 'w')
f.write(d.getVar('MONITOR_SERVICE_' + pkg))
# Process monior CHECKS catagory
packages = (d.getVar('PACKAGES', True) or "").split()
if len(packages) >= 1 and os.path.exists(mon_checks_dir):
for pkg in packages:
copy_check_files(d, 'MONITOR_CHECKS_' + pkg, workdir, mon_checks_dir + '/' + pkg)
}
python do_monitor_clean() {
import shutil
mon_dir = d.getVar('MONITOR_STAGING_DIR', 1)
mon_services_dir = d.getVar('MONITOR_STAGING_SERVICES_DIR', 1)
mon_checks_dir = d.getVar('MONITOR_STAGING_CHECKS_DIR', 1)
if not os.path.exists(mon_dir):
return
# Clean up monitor SERVICE catagory
mon_service_pkgs = d.getVar('MONITOR_SERVICE_PACKAGES', 1)
if mon_service_pkgs != None and os.path.exists(mon_services_dir):
for pkg in mon_service_pkgs.split():
f_name = os.path.join(mon_services_dir, pkg + '.service')
if os.path.exists(f_name):
os.remove(f_name)
# Process monior CHECKS catagory
packages = (d.getVar('PACKAGES', True) or "").split()
if len(packages) >= 1 and os.path.exists(mon_checks_dir):
for pkg in packages:
if d.getVar('MONITOR_CHECKS_' + pkg, 1) != None:
shutil.rmtree(mon_checks_dir + "/" + pkg, True)
}
monitor_rootfs_postprocess() {
if ${@bb.utils.contains('OPENSTACK_EXTRA_FEATURES', 'monitoring', "false", "true", d)}; then
echo "OpenStack monitoring feature is disabled, skipping monitor_rootfs_postprocess"
exit
fi
mkdir -p ${MONITOR_CONFIG_DIR} > /dev/null 2>&1
mkdir -p ${MONITOR_CONFIG_SERVICES_DIR} > /dev/null 2>&1
mkdir -p ${MONITOR_CONFIG_CHECKS_DIR} > /dev/null 2>&1
# Process monitor SERVICE catagory
files_list=`find ${MONITOR_STAGING_SERVICES_DIR} -type f`
for f in ${files_list}; do
cat $f >> ${MONITOR_CONFIG_SERVICES_DIR}/service_list.cfg
echo >> ${MONITOR_CONFIG_SERVICES_DIR}/service_list.cfg
done
# Process monior CHECKS catagory
cp -rf ${MONITOR_STAGING_CHECKS_DIR}/* ${MONITOR_CONFIG_CHECKS_DIR}
}
ROOTFS_POSTPROCESS_COMMAND += "monitor_rootfs_postprocess ; "
|