This patch creates a new subpackage for OVN, openvswitch-ovn. It also installs systemd unit files for ovn-controller and ovn-northd.
If you want to run ovn-controller: # systemctl start ovn-controller If you want to run ovn-northd: # systemctl start ovn-northd Both systemd units are currently set to depend on openvswitch. If further ovsdb initialization is required for the OVN databases before ovn-northd can start, that will be handled automatically by ovn-ctl when you start the ovn-northd service. This currently assumes that ovn-northd runs on the same host as ovsdb-server that is hosting the OVN databases. That seems like a reasonable assumption in the current architecture and can be evolved later when needed. Signed-off-by: Russell Bryant <rbry...@redhat.com> CC: Flavio Leitner <f...@redhat.com> CC: Ben Pfaff <b...@nicira.com> --- rhel/automake.mk | 4 +- rhel/openvswitch-fedora.spec.in | 77 ++++++++++++++++++++-- rhel/usr_lib_systemd_system_ovn-controller.service | 16 +++++ rhel/usr_lib_systemd_system_ovn-northd.service | 15 +++++ 4 files changed, 104 insertions(+), 8 deletions(-) create mode 100644 rhel/usr_lib_systemd_system_ovn-controller.service create mode 100644 rhel/usr_lib_systemd_system_ovn-northd.service diff --git a/rhel/automake.mk b/rhel/automake.mk index 9c3433b..f6272a3 100644 --- a/rhel/automake.mk +++ b/rhel/automake.mk @@ -24,7 +24,9 @@ EXTRA_DIST += \ rhel/usr_share_openvswitch_scripts_sysconfig.template \ rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \ rhel/usr_lib_systemd_system_openvswitch.service \ - rhel/usr_lib_systemd_system_openvswitch-nonetwork.service + rhel/usr_lib_systemd_system_openvswitch-nonetwork.service \ + rhel/usr_lib_systemd_system_ovn-controller.service \ + rhel/usr_lib_systemd_system_ovn-northd.service update_rhel_spec = \ $(AM_V_GEN)($(ro_shell) && sed -e 's,[@]VERSION[@],$(VERSION),g') \ diff --git a/rhel/openvswitch-fedora.spec.in b/rhel/openvswitch-fedora.spec.in index f3dbebf..4972ac2 100644 --- a/rhel/openvswitch-fedora.spec.in +++ b/rhel/openvswitch-fedora.spec.in @@ -81,6 +81,17 @@ Provides: openvswitch-static = %{version}-%{release} This provides static library, libopenswitch.a and the openvswitch header files needed to build an external application. +%package ovn +Summary: Open vSwitch - Open Virtual Network support +License: ASL 2.0 +Requires: openvswitch + +%description ovn +OVN, the Open Virtual Network, is a system to support virtual network +abstraction. OVN complements the existing capabilities of OVS to add +native support for virtual network abstractions, such as virtual L2 and L3 +overlays and security groups. + %prep %setup -q @@ -98,13 +109,11 @@ install -d -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch install -p -D -m 0644 \ rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \ $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/openvswitch -install -p -D -m 0644 \ - rhel/usr_lib_systemd_system_openvswitch.service \ - $RPM_BUILD_ROOT%{_unitdir}/openvswitch.service -install -p -D -m 0644 \ - rhel/usr_lib_systemd_system_openvswitch-nonetwork.service \ - $RPM_BUILD_ROOT%{_unitdir}/openvswitch-nonetwork.service - +for service in openvswitch openvswitch-nonetwork ovn-controller ovn-northd; do + install -p -D -m 0644 \ + rhel/usr_lib_systemd_system_${service}.service \ + $RPM_BUILD_ROOT%{_unitdir}/${service}.service +done install -m 0755 rhel/etc_init.d_openvswitch \ $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init @@ -154,6 +163,19 @@ rm -rf $RPM_BUILD_ROOT fi %endif +%preun ovn +%if 0%{?systemd_preun:1} + %systemd_preun ovn-controller.service + %systemd_preun ovn-northd.service +%else + if [ $1 -eq 0 ] ; then + # Package removal, not upgrade + /bin/systemctl --no-reload disable ovn-controller.service >/dev/null 2>&1 || : + /bin/systemctl stop ovn-controller.service >/dev/null 2>&1 || : + /bin/systemctl --no-reload disable ovn-northd.service >/dev/null 2>&1 || : + /bin/systemctl stop ovn-northd.service >/dev/null 2>&1 || : + fi +%endif %post %if 0%{?systemd_post:1} @@ -165,6 +187,16 @@ rm -rf $RPM_BUILD_ROOT fi %endif +%post ovn +%if 0%{?systemd_post:1} + %systemd_post ovn-controller.service + %systemd_post ovn-northd.service +%else + # Package install, not upgrade + if [ $1 -eq 1 ]; then + /bin/systemctl daemon-reload >dev/null || : + fi +%endif %postun %if 0%{?systemd_postun_with_restart:1} @@ -177,6 +209,18 @@ rm -rf $RPM_BUILD_ROOT fi %endif +%postun ovn +%if 0%{?systemd_postun_with_restart:1} + %systemd_postun_with_restart ovn-controller.service + %systemd_postun_with_restart ovn-northd.service +%else + /bin/systemctl daemon-reload >/dev/null 2>&1 || : + if [ "$1" -ge "1" ] ; then + # Package upgrade, not uninstall + /bin/systemctl try-restart ovn-controller.service >/dev/null 2>&1 || : + /bin/systemctl try-restart ovn-northd.service >/dev/null 2>&1 || : + fi +%endif %files -n python-openvswitch %{python_sitelib}/ovs @@ -269,6 +313,25 @@ rm -rf $RPM_BUILD_ROOT %exclude %{_mandir}/man8/ovs-vlan-bug-workaround.8.gz %exclude %{_datadir}/openvswitch/scripts/ovs-save +%files ovn +%{_bindir}/ovn-controller +%{_bindir}/ovn-nbctl +%{_bindir}/ovn-northd +%{_datadir}/openvswitch/scripts/ovn-ctl +%{_mandir}/man8/ovs-testcontroller.8* +%{_mandir}/man5/ovn-nb.5* +%{_mandir}/man5/ovn-sb.5* +%{_mandir}/man7/ovn-architecture.7* +%{_mandir}/man8/ovn-controller.8* +%{_mandir}/man8/ovn-ctl.8* +%{_mandir}/man8/ovn-nbctl.8* +%config %{_datadir}/openvswitch/ovn-nb.ovsschema +%config %{_datadir}/openvswitch/ovn-sb.ovsschema +%{_unitdir}/ovn-controller.service +%{_unitdir}/ovn-northd.service +%ghost %attr(755,root,root) %{_rundir}/ovn-controller +%ghost %attr(755,root,root) %{_rundir}/ovn-northd + %changelog * Wed Jan 12 2011 Ralf Spenneberg <r...@os-s.net> - First build on F14 diff --git a/rhel/usr_lib_systemd_system_ovn-controller.service b/rhel/usr_lib_systemd_system_ovn-controller.service new file mode 100644 index 0000000..4fdcfd2 --- /dev/null +++ b/rhel/usr_lib_systemd_system_ovn-controller.service @@ -0,0 +1,16 @@ +[Unit] +Description=OVN controller daemon +After=syslog.target +Requires=openvswitch.service +After=openvswitch.service + +[Service] +Type=simple +RuntimeDirectory=ovn-controller +RuntimeDirectoryMode=0755 +PIDFile=%t/ovn-controller/ovn-controller.pid +Environment=OVS_RUNDIR=%t/ovn-controller +ExecStart=/usr/bin/ovn-controller -vconsole:emer -vsyslog:err -vfile:info \ + --log-file=/var/log/openvswitch/ovn-controller.log \ + --no-chdir --pidfile=%t/ovn-controller/ovn-controller.pid \ + unix:/var/run/openvswitch/db.sock diff --git a/rhel/usr_lib_systemd_system_ovn-northd.service b/rhel/usr_lib_systemd_system_ovn-northd.service new file mode 100644 index 0000000..fcbf646 --- /dev/null +++ b/rhel/usr_lib_systemd_system_ovn-northd.service @@ -0,0 +1,15 @@ +[Unit] +Description=OVN northd management daemon +After=syslog.target +Requires=openvswitch.service +After=openvswitch.service + +[Service] +Type=oneshot +RemainAfterExit=yes +RuntimeDirectory=ovn-northd +RuntimeDirectoryMode=0755 +PIDFile=%t/ovn-northd/ovn-northd.pid +Environment=OVN_RUNDIR=%t/ovn-northd OVS_RUNDIR=%t/openvswitch OVS_DBDIR=/var/lib/openvswitch +ExecStart=/usr/share/openvswitch/scripts/ovn-ctl start_northd +ExecStop=/usr/share/openvswitch/scripts/ovn-ctl stop_northd -- 2.4.2 _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev