sysinv: inherit useradd to add user and group
[pti/rtp.git] / meta-stx / recipes-core / stx-config / sysinv.inc
1 #
2 ## Copyright (C) 2019 Wind River Systems, Inc.
3 #
4 #  Licensed under the Apache License, Version 2.0 (the "License");
5 #  you may not use this file except in compliance with the License.
6 #  You may obtain a copy of the License at
7 #
8 #      http://www.apache.org/licenses/LICENSE-2.0
9 #
10 #  Unless required by applicable law or agreed to in writing, software
11 #  distributed under the License is distributed on an "AS IS" BASIS,
12 #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 #  See the License for the specific language governing permissions and
14 #  limitations under the License.
15
16 PACKAGES += " sysinv"
17
18 RDEPENDS_sysinv += " python"
19 RDEPENDS_sysinv += " bash"
20
21 inherit setuptools distutils python-dir systemd useradd
22
23 USERADD_PACKAGES = "sysinv"
24 USERADD_PARAM_sysinv = "-r -g sysinv -u 168 -d /var/lib/sysinv -s /sbin/nologin -c 'sysinv Daemons' sysinv"
25 GROUPADD_PARAM_sysinv = "-r -g 168 sysinv"
26
27 DEPENDS += " \
28         python-pbr-native \
29         "
30 RDEPENDS_sysinv += " \
31         python-anyjson \
32         python-amqp \
33         python-amqplib \
34         python-passlib \
35         python-websockify \
36         python-pyparted \
37         python-boto3 \
38         python-botocore \
39         python-coverage \
40         python-docker \
41         python-eventlet \
42         python-ipaddr \
43         python-keyring \
44         python-kubernetes \
45         python-netaddr \
46         python-pyudev \
47         python-pbr \
48         python-webtest \
49         python-wsme \
50         python-six \
51         python-django \
52         python-mox3 \
53         python-oslo.i18n \
54         python-oslo.config \
55         python-oslo.concurrency \
56         python-oslo.db \
57         python-oslo.log \
58         python-oslo.utils \
59         python-pecan \
60         python2-rpm \
61         python-pyghmi \
62         python-paramiko \
63         tsconfig \
64         resource-agents \
65         gptfdisk \
66         "
67
68 do_configure_append() {
69         echo "Configure sysinv..."
70         cd ${S}/sysinv/sysinv/sysinv
71         distutils_do_configure
72
73
74 do_compile_append() {
75         
76         echo "Building sysinv..."
77         cd ${S}/sysinv/sysinv/sysinv
78         distutils_do_compile
79 }
80
81 do_install_append() {
82
83         echo "Installing sysinv..."
84         cd ${S}/sysinv/sysinv/sysinv
85         distutils_do_install
86
87         install -d -m 755 ${D}${sysconfdir}/goenabled.d
88         install -p -D -m 755 etc/sysinv/sysinv_goenabled_check.sh ${D}${sysconfdir}/goenabled.d/sysinv_goenabled_check.sh
89         
90         install -d -m 755 ${D}${sysconfdir}/sysinv
91         install -p -D -m 755 etc/sysinv/policy.json ${D}${sysconfdir}/sysinv/policy.json
92         install -p -D -m 640 etc/sysinv/profileSchema.xsd ${D}${sysconfdir}/sysinv/profileSchema.xsd
93         
94         install -p -D -m 644 etc/sysinv/crushmap-storage-model.txt ${D}${sysconfdir}/sysinv/crushmap-storage-model.txt
95         install -p -D -m 644 etc/sysinv/crushmap-controller-model.txt ${D}${sysconfdir}/sysinv/crushmap-controller-model.txt
96         install -p -D -m 644 etc/sysinv/crushmap-aio-sx.txt ${D}${sysconfdir}/sysinv/crushmap-aio-sx.txt
97         
98         install -d -m 755 ${D}${sysconfdir}/motd.d
99         install -p -D -m 755 etc/sysinv/motd-system ${D}${sysconfdir}/motd.d/10-system
100         
101         install -d -m 755 ${D}${sysconfdir}/sysinv/upgrades
102         install -p -D -m 755 etc/sysinv/delete_load.sh ${D}${sysconfdir}/sysinv/upgrades/delete_load.sh
103         
104         install -m 755 -p -D scripts/sysinv-api ${D}/usr/lib/ocf/resource.d/platform/sysinv-api
105         install -m 755 -p -D scripts/sysinv-conductor ${D}/usr/lib/ocf/resource.d/platform/sysinv-conductor
106         
107         install -m 644 -p -D scripts/sysinv-api.service ${D}${systemd_system_unitdir}/sysinv-api.service
108         install -m 644 -p -D scripts/sysinv-conductor.service ${D}${systemd_system_unitdir}/sysinv-conductor.service
109         
110         #install -p -D -m 755 ${D}/usr/bin/sysinv-api ${D}/usr/bin/sysinv-api
111         #install -p -D -m 755 ${D}/usr/bin/sysinv-agent ${D}/usr/bin/sysinv-agent
112         #install -p -D -m 755 ${D}/usr/bin/sysinv-conductor ${D}/usr/bin/sysinv-conductor
113         
114         install -d -m 755 ${D}${bindir}/
115         install -p -D -m 755 sysinv/cmd/partition_info.sh ${D}${bindir}/partition_info.sh
116         install -p -D -m 755 sysinv/cmd/manage-partitions ${D}${bindir}/manage-partitions
117         install -p -D -m 755 sysinv/cmd/query_pci_id ${D}${bindir}/query_pci_id
118
119         sed -i -e 's|/usr/local/bin|${bindir}|' \
120                 ${D}${libdir}/python2.7/site-packages/sysinv/common/constants.py \
121                 ${D}${libdir}/python2.7/site-packages/sysinv/puppet/common.py
122 }
123
124 FILES_sysinv = " \
125         ${bindir}/sysinv-agent \
126         ${bindir}/sysinv-utils \
127         ${bindir}/sysinv-conductor \
128         ${bindir}/sysinv-api \
129         ${bindir}/sysinv-helm \
130         ${bindir}/sysinv-dbsync \
131         ${bindir}/sysinv-dnsmasq-lease-update \
132         ${bindir}/sysinv-puppet \
133         ${bindir}/sysinv-rootwrap \
134         ${bindir}/sysinv-upgrade \
135         ${PYTHON_SITEPACKAGES_DIR}/sysinv/ \
136         ${bindir}/manage-partitions \
137         ${bindir}/query_pci_id \
138         ${bindir}/partition_info.sh \
139         ${libdir}/ocf \
140         ${libdir}/ocf/resource.d \
141         ${libdir}/ocf/resource.d/platform \
142         ${libdir}/ocf/resource.d/platform/sysinv-conductor \
143         ${libdir}/ocf/resource.d/platform/sysinv-api \
144         ${sysconfdir}/motd.d \
145         ${sysconfdir}/sysinv \
146         ${sysconfdir}/motd.d/10-system \
147         ${sysconfdir}/sysinv/profileSchema.xsd \
148         ${sysconfdir}/sysinv/crushmap-controller-model.txt \
149         ${sysconfdir}/sysinv/crushmap-storage-model.txt \
150         ${sysconfdir}/sysinv/crushmap-aio-sx.txt \
151         ${sysconfdir}/sysinv/policy.json \
152         ${sysconfdir}/sysinv/upgrades \
153         ${sysconfdir}/sysinv/upgrades/delete_load.sh \
154         ${sysconfdir}/goenabled.d/sysinv_goenabled_check.sh \
155         ${systemd_system_unitdir}/sysinv-api.service \
156         ${systemd_system_unitdir}/sysinv-conductor.service \
157         "
158
159 #pkg_postinst_ontarget_sysinv() {
160 #}