Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
Cloud:OpenStack:Rocky
openstack-monasca-ceilometer
openstack-monasca-ceilometer.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File openstack-monasca-ceilometer.spec of Package openstack-monasca-ceilometer
# # spec file for package openstack-monasca-ceilometer # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # %define component monasca-ceilometer # ceilometer macros %define ceilometer_name ceilometer %define openstack_ceilometer_name openstack-%{ceilometer_name} %define ceilometer_version 11.0.2.dev2 # ceilometer source base dir name %define ceilometer_base %{ceilometer_name}-%{ceilometer_version} # monasca-ceilometer macros %define monasca_ceilometer_source_base_name monasca_ceilometer # monasca-ceilometer source base dir name %define monasca_ceilometer_base %{monasca_ceilometer_source_base_name}-1.8.2.dev3 # combined pkg macros %global sname monasca-ceilometer %define groupname %{ceilometer_name} %define username %{ceilometer_name} %if 0%{?rhel} || 0%{?fedora} %global rdo 1 %else %global rdo 0 %endif Name: openstack-monasca-ceilometer Version: 1.8.2~dev3 Release: 0 Summary: OpenStack Ceilometer integrated with Monasca License: Apache-2.0 Group: System/Management URL: https://launchpad.net/monasca Source0: monasca-ceilometer-stable-rocky.tar.gz # ceilometer source tar Source1: ceilometer-stable-rocky.tar.gz Source2: %{openstack_ceilometer_name}.logrotate Source4: %{openstack_ceilometer_name}.conf Source5: %{openstack_ceilometer_name}-polkit.rules # systemd service files Source12: %{openstack_ceilometer_name}-polling.service Source13: %{openstack_ceilometer_name}-agent-central.service Source14: %{openstack_ceilometer_name}-agent-compute.service Source15: %{openstack_ceilometer_name}-agent-ipmi.service Source16: %{openstack_ceilometer_name}-agent-notification.service Source50: monasca-ceilometer.README.config BuildRequires: crudini ## ceilometer dependencies BuildRequires: fdupes BuildRequires: openstack-macros # to make orphaned-file-tests happy BuildRequires: polkit BuildRequires: python-PasteDeploy BuildRequires: python-WSME BuildRequires: python-cachetools BuildRequires: python-cinderclient BuildRequires: python-cotyledon BuildRequires: python-glanceclient BuildRequires: python-gnocchiclient BuildRequires: python-jsonpath-rw BuildRequires: python-jsonpath-rw-ext BuildRequires: python-jsonschema BuildRequires: python-keystonemiddleware BuildRequires: python-lxml BuildRequires: python-msgpack BuildRequires: python-neutronclient BuildRequires: python-novaclient BuildRequires: python-openstackdocstheme BuildRequires: python-os-xenapi BuildRequires: python-oslo.config BuildRequires: python-oslo.db BuildRequires: python-oslo.messaging BuildRequires: python-oslo.policy BuildRequires: python-oslo.reports BuildRequires: python-oslo.serialization BuildRequires: python-oslo.utils BuildRequires: python-oslo.vmware BuildRequires: python-pbr BuildRequires: python-pecan BuildRequires: python-six BuildRequires: python-stevedore BuildRequires: python-swiftclient BuildRequires: python-tooz Requires: logrotate Requires: polkit Requires: python >= 2.7 Requires: python-monasca-ceilometer >= %{version} Requires: python-pbr BuildArch: noarch %if 0%{?suse_version} BuildRequires: systemd-rpm-macros Requires(pre): pwdutils %{?systemd_requires} %else BuildRequires: systemd Requires(post): systemd Requires(postun): systemd Requires(preun): systemd %endif %description Ceilometer aims to deliver a unique point of contact for billing systems to aquire all counters they need to establish customer billing, accross all current and future OpenStack components. The delivery of counters must be tracable and auditable, the counters must be easily extensible to support new projects, and agents doing data collections should be independent of the overall system. Monasca Ceilometer (Ceilosca) is an add-on to Ceilometer which enables the metering data to be stored in Monasca Datastore via publisher mechanism as monasca metrics. %package -n python-monasca-ceilometer Summary: OpenStack Metering (Ceilometer) integrated with Monasca - Python module Group: Development/Languages/Python Requires: python >= 2.7 Requires: python-PasteDeploy Requires: python-PyYAML Requires: python-SQLAlchemy Requires: python-WSME Requires: python-WebOb Requires: python-cinderclient Requires: python-cotyledon Requires: python-debtcollector Requires: python-futures Requires: python-futurist Requires: python-glanceclient Requires: python-jsonpath-rw Requires: python-jsonpath-rw-ext Requires: python-jsonschema Requires: python-kafka-python Requires: python-keystoneauth1 Requires: python-keystoneclient Requires: python-keystonemiddleware Requires: python-lxml Requires: python-monotonic Requires: python-msgpack Requires: python-neutronclient Requires: python-novaclient Requires: python-os-xenapi Requires: python-oslo.cache Requires: python-oslo.concurrency Requires: python-oslo.config Requires: python-oslo.db Requires: python-oslo.i18n Requires: python-oslo.log Requires: python-oslo.messaging Requires: python-oslo.middleware Requires: python-oslo.policy Requires: python-oslo.reports Requires: python-oslo.rootwrap Requires: python-oslo.serialization Requires: python-oslo.utils Requires: python-oslo.vmware Requires: python-pecan Requires: python-pymongo Requires: python-pysnmp Requires: python-python-dateutil Requires: python-requests Requires: python-six Requires: python-sqlalchemy-migrate Requires: python-stevedore Requires: python-swiftclient Requires: python-tenacity Requires: python-tooz # python-monasca-ceilometer cannot exist with openstack-ceilometer Conflicts: %{openstack_ceilometer_name} %if ! 0%{?rdo} Requires: python-requests-aws %endif %description -n python-monasca-ceilometer This package contains the core Python module of %{name}. %package polling Summary: OpenStack Metering (Ceilometer) - Polling Group: Development/Languages/Python Requires: %{name} = %{version}-%{release} # openstack-monasca-ceilometer-polling cannot exist with openstack-ceilometer Conflicts: %{openstack_ceilometer_name}-polling %description polling This package contains the %{name} polling. %package agent-central Summary: OpenStack Metering (Ceilometer) - Agent Central Group: Development/Languages/Python Requires: %{name} = %{version} Requires: %{name}-polling = %{version} # openstack-monasca-ceilometer-agent-central cannot exist with openstack-ceilometer Conflicts: %{openstack_ceilometer_name}-agent-central %description agent-central This package contains the %{name} central agent. %package agent-compute Summary: OpenStack Metering (Ceilometer) - Agent Compute Group: Development/Languages/Python Requires: %{name} = %{version} Requires: %{name}-polling = %{version}-%{release} # openstack-monasca-ceilometer-agent-compute cannot exist with openstack-ceilometer Conflicts: %{openstack_ceilometer_name}-agent-compute %description agent-compute This package contains the %{name} compute agent. %package agent-ipmi Summary: OpenStack Metering (Ceilometer) - Agent IPMI Group: Development/Languages/Python Requires: %{name} = %{version}-%{release} Requires: %{name}-polling = %{version}-%{release} # openstack-monasca-ceilometer-agent-ipmi cannot exist with openstack-ceilometer Conflicts: %{openstack_ceilometer_name}-agent-ipmi %description agent-ipmi This package contains the %{name} IPMI agent. %package agent-notification Summary: OpenStack Metering (Ceilometer) - Agent Notification Group: Development/Languages/Python Requires: %{name} = %{version}-%{release} Requires: ipmitool # openstack-monasca-ceilometer-agent-notification cannot exist with openstack-ceilometer Conflicts: %{openstack_ceilometer_name}-agent-notification %description agent-notification This package contains the %{name} notification agent. %package test Summary: OpenStack Metering (Ceilometer) - Testsuite Group: Development/Languages/Python Requires: %{name} = %{version}-%{release} Requires: %{name}-agent-central = %{version}-%{release} Requires: %{name}-agent-compute = %{version}-%{release} Requires: %{name}-agent-ipmi = %{version}-%{release} Requires: %{name}-polling = %{version}-%{release} Requires: python-WebTest Requires: python-fixtures Requires: python-gabbi Requires: python-mock Requires: python-os-testr Requires: python-os-win Requires: python-oslotest Requires: python-psycopg2 Requires: python-python-subunit Requires: python-sphinxcontrib-httpdomain Requires: python-sphinxcontrib-pecanwsme Requires: python-swiftclient Requires: python-testrepository Requires: python-testscenarios Requires: python-testtools Conflicts: %{openstack_ceilometer_name}-test # openstack-monasca-ceilometer-test cannot exist with openstack-ceilometer %if 0%{?suse_version} # FIXME: remove this conditional if and when SUSE's Nova spec is switched to # the rpm-packaging one, which does not have a -test subpackage. Requires: openstack-nova-test >= 12 %else Requires: openstack-nova >= 12 %endif %description test This package contains testsuite files for %{name}. %prep # unpack monasca-ceilometer source %autosetup -T -b 0 -n %{monasca_ceilometer_base} %py_req_cleanup # unpack ceilometer source %autosetup -T -b 1 -n %{ceilometer_base} %py_req_cleanup # copy monasca-ceilometer source files cp ../%{monasca_ceilometer_source_base_name}*/ceilosca/ceilometer/monasca_client.py ../%{ceilometer_name}*/%{ceilometer_name}/ cp ../%{monasca_ceilometer_source_base_name}*/ceilosca/ceilometer/monasca_opts.py ../%{ceilometer_name}*/%{ceilometer_name}/ cp ../%{monasca_ceilometer_source_base_name}*/ceilosca/ceilometer/opts.py ../%{ceilometer_name}*/%{ceilometer_name}/ cp ../%{monasca_ceilometer_source_base_name}*/ceilosca/ceilometer/service.py ../%{ceilometer_name}*/%{ceilometer_name}/ cp ../%{monasca_ceilometer_source_base_name}*/ceilosca/ceilometer/publisher/monasca_data_filter.py ../%{ceilometer_name}*/%{ceilometer_name}/publisher/ cp ../%{monasca_ceilometer_source_base_name}*/ceilosca/ceilometer/publisher/monasca.py ../%{ceilometer_name}*/%{ceilometer_name}/publisher/ # copy tests cp -r ../%{monasca_ceilometer_source_base_name}*/ceilosca/ceilometer/tests/ ../%{ceilometer_name}*/%{ceilometer_name}/ # modify setup.cfg, add monasca-ceilometer publisher %define setup_cfg ../%{ceilometer_name}*/setup.cfg # add monasca-ceilometer publisher to entry points pub_list=`crudini --get %{setup_cfg} entry_points ceilometer.sample.publisher` pub_list="$pub_list"$'\n'"monasca = ceilometer.publisher.monasca:MonascaPublisher" crudini --set %{setup_cfg} entry_points ceilometer.sample.publisher $"$pub_list" %build #change to ceilometer directory cd ../%{ceilometer_name}*/ python setup.py build # Currently there exists only a general man-page with the same content as the # HTML documenation. Thus we shouldn't build it: #python setup.py build_sphinx -b man -s doc/source PYTHONPATH=. oslo-config-generator --config-file etc/ceilometer/ceilometer-config-generator.conf > etc/ceilometer/ceilometer.conf %install #change to ceilometer directory cd ../%{ceilometer_base} python setup.py install --skip-build --prefix=%{_prefix} --root=%{buildroot} ### directories install -d -m 755 %{buildroot}%{_localstatedir}/{lib,log}/%{ceilometer_name} install -d -m 750 %{buildroot}%{_localstatedir}/{cache}/%{ceilometer_name} install -d -m 700 %{buildroot}/run/%{ceilometer_name} install -D -m 644 %{SOURCE4} %{buildroot}/%_tmpfilesdir/%{openstack_ceilometer_name}.conf ### configuration files install -d -m 0755 %{buildroot}%{_sysconfdir}/%{ceilometer_name} cp %{buildroot}%{python_sitelib}/%{ceilometer_name}/pipeline/data/*.yaml %{buildroot}%{_sysconfdir}/%{ceilometer_name} # default to using database publisher instead of gnocchi, which # needs to be installed separately sed -i 's/gnocchi:\/\//database:\/\//g' %{buildroot}%{_sysconfdir}/%{ceilometer_name}/pipeline.yaml install -p -D -m 640 %{SOURCE50} %{buildroot}%{_sysconfdir}/%{ceilometer_name}/README.config # delete the ceilometer.conf - we generated out own with oslo-config-generator rm %{buildroot}%{_prefix}%{_sysconfdir}/ceilometer/ceilometer.conf rm %{buildroot}%{_prefix}%{_sysconfdir}/ceilometer/ceilometer-config-generator.conf # for whatever reason, upstream installs config files into usr/etc/... (lint added _prefix) mv %{buildroot}%{_prefix}/%{_sysconfdir}/%{ceilometer_name}/* %{buildroot}%{_sysconfdir}/%{ceilometer_name}/. mv etc/ceilometer/ceilometer.conf %{buildroot}%{_sysconfdir}/%{ceilometer_name}/. # TODO: where to put the config examples? rm -rf %{buildroot}%{_sysconfdir}/%{ceilometer_name}/examples/ install -d -m 755 %{buildroot}%{_sysconfdir}/%{ceilometer_name}/%{ceilometer_name}.conf.d/ # bash-completion/logrotate/etc. install -p -D -m 644 %{SOURCE2} %{buildroot}%{_sysconfdir}/logrotate.d/%{openstack_ceilometer_name} # Install systemd unit services mkdir -p %{buildroot}%{_sbindir} %{buildroot}%{_unitdir} install -p -D -m 444 %{SOURCE12} %{buildroot}%{_unitdir}/%{openstack_ceilometer_name}-polling.service install -p -D -m 444 %{SOURCE13} %{buildroot}%{_unitdir}/%{openstack_ceilometer_name}-agent-central.service install -p -D -m 444 %{SOURCE14} %{buildroot}%{_unitdir}/%{openstack_ceilometer_name}-agent-compute.service install -p -D -m 444 %{SOURCE15} %{buildroot}%{_unitdir}/%{openstack_ceilometer_name}-agent-ipmi.service install -p -D -m 444 %{SOURCE16} %{buildroot}%{_unitdir}/%{openstack_ceilometer_name}-agent-notification.service ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{openstack_ceilometer_name}-polling ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{openstack_ceilometer_name}-agent-central ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{openstack_ceilometer_name}-agent-compute ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{openstack_ceilometer_name}-agent-ipmi ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rc%{openstack_ceilometer_name}-agent-notification ### policy kit install -D -m 644 %{SOURCE5} %{buildroot}%{_datadir}/polkit-1/rules.d/11-%{openstack_ceilometer_name}.rules ### documentation #install -d %%{buildroot}%%{_mandir}/man1 #install -m 644 doc/build/man/*.1 %%{buildroot}%%{_mandir}/man1 ### test subpackage #override openstack_test_package_buildroot_dir and component used by macro openstack_test_package_install %define openstack_test_package_buildroot_dir %{buildroot}%{name}-%{version}/{_localstatedir}/lib/%{name}-test %define component ceilometer %openstack_test_package_install ceilometer # reset component back to monasca-ceilometer %define component monasca-ceilometer ### set default configuration %define ceilometer_conf %{buildroot}%{_sysconfdir}/%{ceilometer_name}/%{ceilometer_name}.conf.d/010-%{ceilometer_name}.conf crudini --set %{ceilometer_conf} DEFAULT log_dir %{_localstatedir}/log/%{ceilometer_name} crudini --set %{ceilometer_conf} DEFAULT lock_path %{_rundir}/%{ceilometer_name} # monasca-ceilometer configuration # turn off workload partitioning crudini --set %{ceilometer_conf} DEFAULT notifications workload_partitioning False # Disable, otherwise Ceilosca won't process and store event data crudini --set %{ceilometer_conf} DEFAULT notification disable_non_metric_meters False ### authentication cache dir mkdir -p %{buildroot}%{_localstatedir}/cache/ceilometer %pre %openstack_pre_user_group_create %{username} %{groupname} %post %tmpfiles_create %{_tmpfilesdir}/%{openstack_ceilometer_name}.conf %post polling %systemd_post %{openstack_ceilometer_name}-polling.service %preun polling %systemd_preun %{openstack_ceilometer_name}-polling.service %postun polling %systemd_postun_with_restart %{openstack_ceilometer_name}-polling.service %post agent-central %systemd_post %{openstack_ceilometer_name}-agent-central.service %preun agent-central %systemd_preun %{openstack_ceilometer_name}-agent-central.service %postun agent-central %systemd_postun_with_restart %{openstack_ceilometer_name}-agent-central.service %post agent-compute %systemd_post %{openstack_ceilometer_name}-agent-compute.service %preun agent-compute %systemd_preun %{openstack_ceilometer_name}-agent-compute.service %postun agent-compute %systemd_postun_with_restart %{openstack_ceilometer_name}-agent-compute.service %post agent-ipmi %systemd_post %{openstack_ceilometer_name}-agent-ipmi.service %preun agent-ipmi %systemd_preun %{openstack_ceilometer_name}-agent-ipmi.service %postun agent-ipmi %systemd_postun_with_restart %{openstack_ceilometer_name}-agent-ipmi.service %post agent-notification %systemd_post %{openstack_ceilometer_name}-agent-notification.service %preun agent-notification %systemd_preun %{openstack_ceilometer_name}-agent-notification.service %postun agent-notification %systemd_postun_with_restart %{openstack_ceilometer_name}-agent-notification.service %files %defattr(-,root,root) %license LICENSE %doc README.rst %{_bindir}/ceilometer-upgrade %{_bindir}/ceilometer-send-sample %{_bindir}/ceilometer-rootwrap %dir %{_sysconfdir}/%{ceilometer_name} %dir %{_sysconfdir}/%{ceilometer_name}/%{ceilometer_name}.conf.d/ %{_sysconfdir}/%{ceilometer_name}/README.config %config(noreplace) %attr(0640, root, %{groupname}) %{_sysconfdir}/%{ceilometer_name}/%{ceilometer_name}.conf %config(noreplace) %attr(0640, root, %{groupname}) %{_sysconfdir}/%{ceilometer_name}/%{ceilometer_name}.conf.d/010-%{ceilometer_name}.conf %config(noreplace) %attr(0640, root, %{groupname}) %{_sysconfdir}/%{ceilometer_name}/polling.yaml %config(noreplace) %attr(0640, root, %{groupname}) %{_sysconfdir}/%{ceilometer_name}/polling_all.yaml %config(noreplace) %attr(0640, root, %{groupname}) %{_sysconfdir}/%{ceilometer_name}/pipeline.yaml %config(noreplace) %attr(0640, root, %{groupname}) %{_sysconfdir}/%{ceilometer_name}/event_pipeline.yaml %config(noreplace) %attr(0640, root, %{groupname}) %{_sysconfdir}/%{ceilometer_name}/event_definitions.yaml %config(noreplace) %{_sysconfdir}/logrotate.d/%{openstack_ceilometer_name} %config %{_sysconfdir}/%{ceilometer_name}/rootwrap.conf %dir %{_sysconfdir}/%{ceilometer_name}/rootwrap.d %config %{_sysconfdir}/%{ceilometer_name}/rootwrap.d/ipmi.filters %dir %attr(0755, %{username}, %{groupname}) %{_localstatedir}/lib/%{ceilometer_name} %dir %attr(0750, %{username}, %{groupname}) %{_localstatedir}/cache/%{ceilometer_name} %dir %attr(0750, %{username}, %{groupname}) %{_localstatedir}/log/%{ceilometer_name} %_tmpfilesdir/%{openstack_ceilometer_name}.conf %files -n python-monasca-ceilometer %defattr(-,root,root,-) %{python_sitelib}/%{ceilometer_name}/ %{python_sitelib}/%{ceilometer_name}-*.egg-info # Part of test subpackage (except the tempest tests) %exclude %{python_sitelib}/%{ceilometer_name}/tests/unit/ %files polling %defattr(-,root,root,-) %{_unitdir}/%{openstack_ceilometer_name}-polling.service %{_sbindir}/rc%{openstack_ceilometer_name}-polling %{_bindir}/%{ceilometer_name}-polling %files agent-central %defattr(-,root,root,-) %{_unitdir}/%{openstack_ceilometer_name}-agent-central.service %{_sbindir}/rc%{openstack_ceilometer_name}-agent-central %files agent-compute %defattr(-,root,root,-) %{_unitdir}/%{openstack_ceilometer_name}-agent-compute.service %{_sbindir}/rc%{openstack_ceilometer_name}-agent-compute %{_datadir}/polkit-1/rules.d/11-%{openstack_ceilometer_name}.rules %files agent-ipmi %defattr(-,root,root,-) %{_unitdir}/%{openstack_ceilometer_name}-agent-ipmi.service %{_sbindir}/rc%{openstack_ceilometer_name}-agent-ipmi %files agent-notification %defattr(-,root,root,-) %{_unitdir}/%{openstack_ceilometer_name}-agent-notification.service %{_sbindir}/rc%{openstack_ceilometer_name}-agent-notification %{_bindir}/%{ceilometer_name}-agent-notification %files test %defattr(-,root,root) %{python_sitelib}/%{ceilometer_name}/tests/unit/ %{_localstatedir}/lib/%{name}-test/ %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor