fedora.spec: Create openvswitch-ovn package.
authorRussell Bryant <rbryant@redhat.com>
Fri, 12 Jun 2015 16:51:24 +0000 (12:51 -0400)
committerBen Pfaff <blp@nicira.com>
Mon, 15 Jun 2015 21:21:58 +0000 (14:21 -0700)
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 <rbryant@redhat.com>
CC: Flavio Leitner <fbl@redhat.com>
CC: Ben Pfaff <blp@nicira.com>
Signed-off-by: Ben Pfaff <blp@nicira.com>
rhel/automake.mk
rhel/openvswitch-fedora.spec.in
rhel/usr_lib_systemd_system_ovn-controller.service [new file with mode: 0644]
rhel/usr_lib_systemd_system_ovn-northd.service [new file with mode: 0644]

index 9c3433b..f6272a3 100644 (file)
@@ -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_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') \
 
 update_rhel_spec = \
   $(AM_V_GEN)($(ro_shell) && sed -e 's,[@]VERSION[@],$(VERSION),g') \
index 2c6f6e9..08cd5ef 100644 (file)
@@ -83,6 +83,17 @@ Provides: openvswitch-static = %{version}-%{release}
 This provides static library, libopenswitch.a and the openvswitch header
 files needed to build an external application.
 
 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
 
 %prep
 %setup -q
@@ -100,13 +111,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_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
 
 install -m 0755 rhel/etc_init.d_openvswitch \
         $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init
 
@@ -156,6 +165,19 @@ rm -rf $RPM_BUILD_ROOT
     fi
 %endif
 
     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}
 
 %post
 %if 0%{?systemd_post:1}
@@ -167,6 +189,16 @@ rm -rf $RPM_BUILD_ROOT
     fi
 %endif
 
     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}
 
 %postun
 %if 0%{?systemd_postun_with_restart:1}
@@ -179,6 +211,18 @@ rm -rf $RPM_BUILD_ROOT
     fi
 %endif
 
     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
 
 %files -n python-openvswitch
 %{python_sitelib}/ovs
@@ -272,6 +316,25 @@ rm -rf $RPM_BUILD_ROOT
 %exclude %{_mandir}/man8/ovs-vlan-bug-workaround.8.gz
 %exclude %{_datadir}/openvswitch/scripts/ovs-save
 
 %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 <ralf@os-s.net>
 - First build on F14
 %changelog
 * Wed Jan 12 2011 Ralf Spenneberg <ralf@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 (file)
index 0000000..4fdcfd2
--- /dev/null
@@ -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 (file)
index 0000000..fcbf646
--- /dev/null
@@ -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