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 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204
|
#!/usr/bin/make -f
include /usr/share/openstack-pkg-tools/pkgos.make
NOVA_CONF=$(CURDIR)/debian/nova-common/usr/share/nova-common/nova.conf
%:
dh $@ --buildsystem=python_distutils --with python3,sphinxdoc
override_dh_auto_clean:
python3 setup.py clean
rm -rf doc/build/ doc/source/api doc/.autogenerated
rm -rf tests.sqlite clean.sqlite run_tests.log
rm -rf CA
rm -rf nova.egg-info
rm -f po/nova.pot
rm -rf .autogenerated
rm -f debian/nova-common.config debian/nova-common.postinst \
debian/nova-api.config debian/nova-api.postinst debian/nova-common.postrm
rm -f debian/*.init debian/*.service debian/*.upstart
rm -rf build etc/nova/nova.conf.sample
rm -rf .testrepository subunit.log instances keys
rm -rf debian/bla
rm -f debian/nova-api.templates debian/nova-common.templates
find . -type d -name __pycache__ -exec rm -r {} \+
override_dh_auto_build:
/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func nova-common.config
/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func nova-common.postinst
/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func nova-api.config
/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_func nova-api.postinst
/usr/share/openstack-pkg-tools/pkgos_insert_include pkgos_postrm nova-common.postrm
pkgos-merge-templates nova-api nova endpoint
pkgos-merge-templates nova-common nova db rabbit ksat
override_dh_sphinxdoc:
ifeq (,$(findstring nodoc, $(DEB_BUILD_OPTIONS)))
PYTHONPATH=. python3 -m sphinx -b html doc/source $(CURDIR)/debian/nova-doc/usr/share/doc/nova-doc/html
dh_sphinxdoc -O--buildsystem=python_distutils
endif
override_dh_installman:
ifeq (,$(findstring nodoc, $(DEB_BUILD_OPTIONS)))
PYTHONPATH=. python3 -m sphinx -b man doc/source doc/build/man
dh_installman -O--buildsystem=python_distutils
endif
override_dh_auto_install:
echo "Please do nothing"
override_dh_install:
# Fix until https://review.opendev.org/c/openstack/nova/+/809980 is merged
touch nova/db/api/__init__.py
for i in $(PYTHON3S) ; do \
python3 setup.py install -f --install-layout=deb --root=$(CURDIR)/debian/tmp ; \
done
ifeq (,$(findstring nocheck, $(DEB_BUILD_OPTIONS)))
pkgos-dh_auto_test --no-py2 'nova\.tests\.unit\.(?!(.*virt.libvirt\.test_driver\.LibvirtConnTestCase\.test_spawn_with_config_drive.*|.*test_wsgi\.TestWSGIServerWithSSL.*|.*test_hacking\.HackingTestCase.*|.*CreateInstanceTypeTest\.test_name_with_non_printable_characters.*|.*PatternPropertiesTestCase\.test_validate_patternProperties_fails.*|.*virt\.libvirt\.test_driver\.LibvirtDriverTestCase\.test_get_disk_xml.*|.*virt\.libvirt\.test_driver\.LibvirtConnTestCase\.test_detach_volume_with_vir_domain_affect_live_flag.*|.*virt\.libvirt\.test_driver\.LibvirtConnTestCase\.test_update_volume_xml.*|.*console\.test_websocketproxy\.NovaProxyRequestHandlerTestCase\.test_tcp_rst_no_compute_rpcapi.*|.*virt\.libvirt\.test_blockinfo\.LibvirtBlockInfoTest\.test_get_disk_mapping_rescue_with_config.*|.*virt\.libvirt\.test_blockinfo\.LibvirtBlockInfoTest\.test_get_disk_mapping_stable_rescue_ide_cdrom.*|.*virt\.libvirt\.volume\.test_nvme\.LibvirtNVMEVolumeDriverTestCase\.test_libvirt_nvme_driver_connect.*|.*virt\.libvirt\.volume\.test_nvme\.LibvirtNVMEVolumeDriverTestCase\.test_libvirt_nvme_driver_disconnect.*|.*virt\.libvirt\.volume\.test_nvme\.LibvirtNVMEVolumeDriverTestCase\.test_libvirt_nvme_driver_get_config.*|.*virt\.libvirt\.volume\.test_scaleio\.LibvirtScaleIOVolumeDriverTestCase.*|.*virt\.libvirt\.test_driver\.LibvirtDriverTestCase\.test_cross_cell_move_rbd_flatten_fetch_image_cache.*|.*virt\.libvirt\.test_driver\.LibvirtConnTestCase\.test_check_discard_for_attach_volume_blk_controller_no_unmap.*|.*virt\.libvirt\.test_driver\.LibvirtConnTestCase\.test_check_discard_for_attach_volume_no_unmap.*|.*virt\.libvirt\.test_driver\.LibvirtConnTestCase\.test_check_discard_for_attach_volume_valid_controller.*|.*virt\.libvirt\.test_driver\.LibvirtDriverTestCase\.test_rbd_image_flatten_during_fetch_image_cache.*|.*test_utils\.GenericUtilsTestCase\.test_temporary_chown.*|console\.test_websocketproxy\.NovaProxyRequestHandlerTestCase\.test_reject_open_redirect|console\.test_websocketproxy\.NovaProxyRequestHandlerTestCase\.test_reject_open_redirect_3_slashes|privsep\.test_utils\.SupportDirectIOTestCase\.test_supports_direct_io_with_exception_in_open|privsep\.test_utils\.SupportDirectIOTestCase\.test_supports_direct_io_with_exception_in_write))'
endif
rm -rf $(CURDIR)/debian/tmp/usr/etc
mkdir -p $(CURDIR)/debian/nova-common/usr/share/nova-common
PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages oslopolicy-sample-generator \
--output-file=$(CURDIR)/debian/nova-common/usr/share/nova-common/policy.json.example \
--format json \
--namespace nova
PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages oslopolicy-sample-generator \
--output-file=$(CURDIR)/debian/nova-common/usr/share/nova-common/policy.yaml.example \
--format yaml \
--namespace nova
mkdir -p $(CURDIR)/debian/nova-common/usr/share/nova-common
PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages oslo-config-generator \
--output-file=$(CURDIR)/debian/nova-common/usr/share/nova-common/nova.conf \
--wrap-width 140 \
--namespace nova.conf \
--namespace oslo.limit \
--namespace oslo.log \
--namespace oslo.messaging \
--namespace oslo.policy \
--namespace oslo.privsep \
--namespace oslo.service.periodic_task \
--namespace oslo.service.service \
--namespace oslo.middleware \
--namespace oslo.concurrency \
--namespace oslo.reports \
--namespace keystonemiddleware.auth_token \
--namespace osprofiler
pkgos-readd-keystone-authtoken-missing-options $(NOVA_CONF) keystone_authtoken nova
mkdir -p $(CURDIR)/debian/nova-common/etc/nova/policy.d
PYTHONPATH=$(CURDIR)/debian/tmp/usr/lib/python3/dist-packages oslopolicy-sample-generator \
--output-file=$(CURDIR)/debian/nova-common/etc/nova/policy.d/00_default_policy.yaml \
--format yaml \
--namespace nova
# Comment out deprecated policies, otherwise, Nova doesn't work
sed -i 's/^"/#"/' $(CURDIR)/debian/nova-common/etc/nova/policy.d/00_default_policy.yaml
# Use the policy.d folder
pkgos-fix-config-default $(CURDIR)/debian/nova-common/usr/share/nova-common/nova.conf oslo_policy policy_dirs /etc/nova/policy.d
# Otherwise, this is set to the build dir
pkgos-fix-config-default $(NOVA_CONF) DEFAULT pybasedir /usr/lib/python3/dist-packages
pkgos-fix-config-default $(NOVA_CONF) DEFAULT bindir /usr/bin
# General needed fixes
pkgos-fix-config-default $(NOVA_CONF) oslo_concurrency lock_path /var/lock/nova
pkgos-fix-config-default $(NOVA_CONF) DEFAULT state_path /var/lib/nova
# Let's use Neutron by default, and not stupid nova-network
pkgos-fix-config-default $(NOVA_CONF) DEFAULT security_group_api neutron
pkgos-fix-config-default $(NOVA_CONF) DEFAULT network_api_class nova.network.neutronv2.api.API
pkgos-fix-config-default $(NOVA_CONF) DEFAULT use_neutron True
pkgos-fix-config-default $(NOVA_CONF) DEFAULT linuxnet_interface_driver nova.network.linux_net.LinuxOVSInterfaceDriver
pkgos-fix-config-default $(NOVA_CONF) DEFAULT firewall_driver nova.virt.firewall.NoopFirewallDriver
pkgos-fix-config-default $(NOVA_CONF) neutron default_floating_pool ext-net
# Fixup a few defaults for the [neutron] auth
pkgos-fix-config-default $(NOVA_CONF) neutron auth_type password
pkgos-fix-config-default $(NOVA_CONF) neutron username admin
pkgos-fix-config-default $(NOVA_CONF) neutron user_domain_name default
pkgos-fix-config-default $(NOVA_CONF) neutron project_name admin
pkgos-fix-config-default $(NOVA_CONF) neutron project_domain_name default
pkgos-fix-config-default $(NOVA_CONF) neutron service_name neutron
pkgos-fix-config-default $(NOVA_CONF) neutron auth_url http://127.0.0.1:5000
pkgos-fix-config-default $(NOVA_CONF) neutron service_metadata_proxy true
# Convenient default for the SQLite default db
pkgos-fix-config-default $(NOVA_CONF) database connection sqlite:////var/lib/nova/novadb
# Let's use SPICE byd default
pkgos-fix-config-default $(NOVA_CONF) VNC enabled false
pkgos-fix-config-default $(NOVA_CONF) VNC vncserver_listen 0.0.0.0
pkgos-fix-config-default $(NOVA_CONF) spice vncserver_listen 0.0.0.0
pkgos-fix-config-default $(NOVA_CONF) spice server_listen 0.0.0.0
pkgos-fix-config-default $(NOVA_CONF) spice server_proxyclient_address \$$my_ip
pkgos-fix-config-default $(NOVA_CONF) spice enabled true
# Works by default
pkgos-fix-config-default $(NOVA_CONF) keystone_authtoken auth_protocol http
# Cinder os_region_name set to regionOne as default value
pkgos-fix-config-default $(NOVA_CONF) cinder os_region_name regionOne
# Fixup a few default for the [placement] auth
pkgos-fix-config-default $(NOVA_CONF) placement region_name regionOne
pkgos-fix-config-default $(NOVA_CONF) placement project_domain_name default
pkgos-fix-config-default $(NOVA_CONF) placement project_name service
pkgos-fix-config-default $(NOVA_CONF) placement auth_type password
pkgos-fix-config-default $(NOVA_CONF) placement user_domain_name default
pkgos-fix-config-default $(NOVA_CONF) placement auth_url http://localhost:5000/v3
pkgos-fix-config-default $(NOVA_CONF) placement username = placement
rm debian/tmp/usr/bin/nova-api-os-compute
rm debian/tmp/usr/bin/nova-api-metadata
dh_install
dh_missing --fail-missing -Xbin/nova-all -Xbin/nova-network
install -D -m 0440 $(CURDIR)/debian/nova-common.sudoers $(CURDIR)/debian/nova-common/etc/sudoers.d/nova-common
install -D -m 0644 $(CURDIR)/etc/nova/logging_sample.conf $(CURDIR)/debian/nova-common/usr/share/nova-common/logging.conf
set -e ; for hypervisor in qemu kvm uml lxc ironic; do \
install -D -m 0600 $(CURDIR)/debian/nova-compute-$${hypervisor}.conf $(CURDIR)/debian/nova-compute-$${hypervisor}/etc/nova/nova-compute.conf; \
done
find $(CURDIR)/debian -name .gitignore -delete
override_dh_fixperms:
dh_fixperms -Xnova_sudoers
dh_fixperms -Xnova_tgt
override_dh_auto_test:
echo "Do nothing..."
# We use override_dh_installmenu because it's done in the sequence with dh,
# and we already override dh_installinit in pkgos.make.
# Obviously, we will never use a Desktop menu in such a package, so that's
# not a problem.
override_dh_installmenu:
dh_installinit --name=nova-novncproxy
dh_installinit --name=nova-spicehtml5proxy
dh_installinit --name=nova-serialproxy
dh_installinit --name=nova-api
dh_installinit --name=nova-api-metadata
install -D -m 0644 $(CURDIR)/debian/nova-consoleproxy.mydefault $(CURDIR)/debian/nova-consoleproxy/usr/share/nova-consoleproxy/default
override_dh_installsystemd:
dh_installsystemd -pnova-compute
dh_installsystemd -pnova-conductor
dh_installsystemd -pnova-scheduler
dh_installsystemd -pnova-api --name=nova-api
dh_installsystemd -pnova-api --name=nova-api-metadata
dh_installsystemd -pnova-consoleproxy --name=nova-novncproxy
dh_installsystemd -pnova-consoleproxy --name=nova-serialproxy
dh_installsystemd -pnova-consoleproxy --name=nova-spicehtml5proxy
override_dh_python3:
dh_python3 --shebang=/usr/bin/python3
|