Add initial meta-stx to support StarlingX build
[pti/rtp.git] / meta-stx / recipes-core / distributedcloud / distributedcloud_git.bb
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 DESCRIPTION = "StarlingX distributedcloud packages collection"
17 HOMEPAGE = "https://opendev.org/starlingx"
18 SECTION = "network"
19 LICENSE = "Apache-2.0"
20 LIC_FILES_CHKSUM = "file://distributedcloud/LICENSE;md5=1dece7821bf3fd70fe1309eaa37d52a2"
21
22 PROTOCOL = "https"
23 BRANCH = "r/stx.3.0"
24 SRCNAME = "distcloud"
25 SRCREV = "8329259704a5becd036663fc7de9b7a61f4bc27e"
26 PV = "1.0.0+git${SRCPV}"
27 S = "${WORKDIR}/git"
28
29 SRC_URI = " \
30         git://opendev.org/starlingx/${SRCNAME}.git;protocol=${PROTOCOL};rev=${SRCREV};branch=${BRANCH} \
31         "
32
33 # TODO: 
34 # 1 - Patch service unit files to create the following directories:
35 #       - var/log/dcdbsync 
36 #       - var/log/dcmanager
37 #       - var/log/dcorch
38 # python-jsonschema >= 2.0.0
39 # python-keystoneauth1 >= 3.1.0
40 # python-pbr >= 1.8
41 # python-pecan >= 1.0.0
42 # python-routes >= 1.12.3
43
44 PACKAGES += "distributedcloud-dcmanager"
45 PACKAGES += "distributedcloud-dcorch"
46 PACKAGES += "distributedcloud-dcdbsync"
47 PACKAGES += "distributedcloud-ocf"
48 DESCRIPTION_distributedcloud-dcmanager = "Distributed Cloud Manager"
49 DESCRIPTION_distributedcloud-dcorch = "Distributed Cloud Orchestrator"
50 DESCRIPTION_distributedcloud-dcdbsync = "DC DCorch DBsync Agent"
51
52 DEPENDS += " \
53         python-pbr-native \
54         "
55
56 ALL_RDEPENDS = " \
57         python-pycrypto \
58         python-cryptography \
59         python-eventlet \
60         python-setuptools \
61         python-jsonschema \
62         python-keyring \
63         python-keystonemiddleware \
64         python-keystoneauth1 \
65         python-netaddr \
66         python-oslo.concurrency \
67         python-oslo.config \
68         python-oslo.context \
69         python-oslo.db \
70         python-oslo.i18n \
71         python-oslo.log \
72         python-oslo.messaging \
73         python-oslo.middleware \
74         python-oslo.policy \
75         python-oslo.rootwrap \
76         python-oslo.serialization \
77         python-oslo.service \
78         python-oslo.utils \
79         python-oslo.versionedobjects \
80         python-pbr \
81         python-pecan \
82         python-routes \
83         python-sphinx \
84         python-pyopenssl \
85         systemd \
86         python-babel \
87         distributedcloud-ocf \
88         "
89 # TODO: 
90 # Check dependencies
91 #       python-sphinxcontrib-httpdomain
92
93 RDEPENDS_distributedcloud-dcmanager  += "  ${ALL_RDEPENDS}"
94 RDEPENDS_distributedcloud-dcorch += "  ${ALL_RDEPENDS}"
95 RDEPENDS_distributedcloud-dcdbsync+= " ${ALL_RDEPENDS}"
96         
97
98 inherit distutils python-dir
99
100 do_configure() {
101         cd ${S}/distributedcloud
102         distutils_do_configure
103 }
104
105 do_compile() {
106         cd ${S}/distributedcloud
107         distutils_do_compile
108 }
109
110 do_install() {
111         cd ${S}/distributedcloud
112         distutils_do_install
113
114         SRCPATH=${datadir}/starlingx/distrbutedcloud-config-files/
115
116         # dcmanager
117         install -d -m 0755 ${D}/var/log/dcmanager
118         install -d -m 0755 ${D}/var/cache/dcmanager
119         install -d -m 0755 ${D}/${sysconfdir}/dcmanager
120         install -d -m 0755 ${D}/${sysconfdir}/tempfiles.d
121         install -d -m 0755 ${D}/${datadir}/starlingx/distrbutedcloud-config-files/
122         install -d -m 0755 ${D}/${systemd_system_unitdir}
123         install -d -m 0755 ${D}/opt/dc/ansible
124
125         # Install systemd unit files
126         install -p -D -m 0644 centos/files/dcmanager-api.service ${D}/${systemd_system_unitdir}/
127         install -p -D -m 0644 centos/files/dcmanager-manager.service ${D}/${systemd_system_unitdir}/
128         install -p -D -m 0755 centos/files/dcmanager.conf ${D}/${sysconfdir}/tempfiles.d
129
130         # Install default config files
131         # defer postinst_ontarget
132         install -p -m 0644 dcmanager//config-generator.conf ${D}/${SRCPATH}/dcmanager-config-generator.conf
133
134         # dcorch
135         install -d -m 0755 ${D}/var/log/dcorch
136         install -d -m 0755 ${D}/var/cache/dcorch
137         install -d -m 0755 ${D}/${sysconfdir}/dcorch
138
139         # Install systemd unit files
140         install -p -D -m0644 centos/files/dcorch-api.service ${D}/${systemd_system_unitdir}/
141         install -p -D -m0644 centos/files/dcorch-engine.service ${D}/${systemd_system_unitdir}/
142         install -p -D -m0644 centos/files/dcorch-sysinv-api-proxy.service ${D}/${systemd_system_unitdir}/
143         install -p -D -m0644 centos/files/dcorch-snmp.service ${D}/${systemd_system_unitdir}/
144         install -p -D -m0644 centos/files/dcorch-identity-api-proxy.service ${D}/${systemd_system_unitdir}/
145         install -p -D -m0644 centos/files/dcorch.conf ${D}/${sysconfdir}/tempfiles.d
146
147         # Install ocf scripts
148         install -d -m 0755 ${D}/${libdir}/ocf/resource.d/openstack/ocf
149         install -m 0644 \
150                 ocf/dcdbsync-api \
151                 ocf/dcmanager-api \
152                 ocf/dcmanager-manager \
153                 ocf/dcorch-cinder-api-proxy \
154                 ocf/dcorch-engine \
155                 ocf/dcorch-identity-api-proxy \
156                 ocf/dcorch-neutron-api-proxy \
157                 ocf/dcorch-nova-api-proxy \
158                 ocf/dcorch-patch-api-proxy \
159                 ocf/dcorch-snmp \
160                 ocf/dcorch-sysinv-api-proxy ${D}/${libdir}/ocf/resource.d/openstack/
161
162         # Install default config files
163         # defer postinst_ontarget
164         install -p -m 0644 dcorch/config-generator.conf ${D}/${SRCPATH}/dcorch-config-generator.conf
165
166         # dc dbsync agent
167         install -d -m 755 ${D}/var/log/dcdbsync
168         install -d -m 755 ${D}/var/cache/dcdbsync
169         install -d -m 755 ${D}/${sysconfdir}/dcdbsync/
170
171         # Install systemd unit files
172         install -p -D -m 644 centos/files/dcdbsync-api.service ${D}/${systemd_system_unitdir}/dcdbsync-api.service
173         # ???? CheckInstall systemd unit files for optional second instance
174         install -p -D -m 644 centos/files/dcdbsync-openstack-api.service ${D}/${systemd_system_unitdir}/dcdbsync-openstack-api.service
175         install -p -D -m 644 centos/files/dcdbsync.conf  ${D}/${sysconfdir}/tmpfiles.d
176
177         # Install default config files
178         # defer postinst_ontarget
179         install -p -m 0644 dcdbsync/config-generator.conf ${D}/${SRCPATH}/dcdbsync-config-generator.conf
180 }
181
182
183 pkg_postinst_ontarget_distributedcloud-dcmanager() {
184         SRCPATH=${datadir}/starlingx/distrbutedcloud-config-files/
185         oslo-config-generator --config-file ${SRCPATH}/dcmanager-config-generator.conf \
186                 --output-file ${sysconfdir}/dcmanager/dcmanager.conf.sample
187 }
188
189 pkg_postinst_ontarget_distributedcloud-dcorch() {
190         SRCPATH=${datadir}/starlingx/distrbutedcloud-config-files/
191         oslo-config-generator --config-file ${SRCPATH}/dcorch-config-generator.conf \
192                 --output-file ${sysconfdir}/dcorch/dcorch.conf.sample
193 }
194
195
196 pkg_postinst_ontarget_distributedcloud-dcdbsync() {
197         SRCPATH=${datadir}/starlingx/distrbutedcloud-config-files/
198         oslo-config-generator --config-file ${SRCPATH}/dcdbsync-config-generator.conf \
199                 --output-file ${sysconfdir}/dcdbsync/dcdbsync.conf.sample
200 }
201
202 FILES_${PN} = " \
203   /var/volatile \
204   /var/log \
205   /var/volatile/log \
206   /etc/tmpfiles.d \
207   "
208
209 FILES_distributedcloud-ocf = " \
210         ${libdir}/ocf/resource.d/openstack  \
211         "
212
213 FILES_distributedcloud-dcdbsync = " \
214         ${PYTHON_SITEPACKAGES_DIR}/dcdbsync \
215         ${PYTHON_SITEPACKAGES_DIR}/dcdbsync-*.egg.info \
216         /var/cache/dcdbsync \
217         /var/volatile/log/dcdbsync \
218         ${bindir}/dcdbsync-api \
219         ${systemd_system_unitdir}/dcdbsync-api.service \
220         ${systemd_system_unitdir}/dcdbsync-openstack-api.service \
221         ${sysconfdir}/dcdbsync/ \
222         ${datadir}/starlingx/distrbutedcloud-config-files/dcdbsync-config-generator.conf \
223         "
224
225 FILES_distributedcloud-dcorch = " \
226         ${PYTHON_SITEPACKAGES_DIR}/dcorch \
227         ${PYTHON_SITEPACKAGES_DIR}/distributedcloud-*.egg-info \
228         ${bindir}/dcorch-api \
229         ${systemd_system_unitdir}/dcorch-api.service \
230         ${bindir}/dcorch-engine \
231         ${systemd_system_unitdir}/dcorch-engine.service \
232         ${bindir}/dcorch-api-proxy \
233         ${systemd_system_unitdir}/dcorch-sysinv-api-proxy.service \
234         ${systemd_system_unitdir}/dcorch-identity-api-proxy.service \
235         ${bindir}/dcorch-manage \
236         ${bindir}/dcorch-snmp \
237         ${systemd_system_unitdir}/dcorch-snmp.service \
238         ${sysconfdir}/tempfiles.d/dcorch.conf \
239         /var/cache/dcorch \
240         ${sysconfdir}/dcorch \
241         ${datadir}/starlingx/distrbutedcloud-config-files/dcorch-config-generator.conf \
242         "
243
244 FILES_distributedcloud-dcmanager = " \
245         ${PYTHON_SITEPACKAGES_DIR}/dcmanager \
246         ${PYTHON_SITEPACKAGES_DIR}/distributedcloud-*.egg-info \
247         ${bindir}/dcmanager-api \
248         ${systemd_system_unitdir}/dcmanager-api.service \
249         ${bindir}/dcmanager-manager \
250         ${systemd_system_unitdir}/dcmanager-manager.service \
251         ${bindir}/dcmanager-manage \
252         ${sysconfdir}/tmpfiles.d/dcmanager.conf \
253         /var/cache/dcmanager \
254         ${sysconfdir}/dcmanager \
255         ${sysconfdir}/tempfiles.d/dcmanager.conf \
256         /opt/dc/ansible  \
257         ${datadir}/starlingx/distrbutedcloud-config-files/dcmanager-config-generator.conf \
258         "