Hello Juan Hernandez,
I'd like you to do a code review. Please visit
http://gerrit.ovirt.org/17955
to review the following change.
Change subject: Initial packaging
......................................................................
Initial packaging
This patch introduces the initial version of the packaging stuff.
Change-Id: I8aa86f5ee80f40eb25a719fd72e75f7b275f38a0
Signed-off-by: Juan Hernandez <[email protected]>
---
M .gitignore
M Makefile
A ovirt-scheduler-proxy.spec
A packaging/ovirt-scheduler-proxy.systemd
A packaging/ovirt-scheduler-proxy.sysv
A setup.py
R src/ovirtscheduler/API.py
R src/ovirtscheduler/__init__.py
R src/ovirtscheduler/loader.py
R src/ovirtscheduler/oschedproxyd.py
R src/ovirtscheduler/request_handler.py
R src/ovirtscheduler/request_handler_test.py
R src/ovirtscheduler/runner.py
R src/ovirtscheduler/runner_test.py
R src/ovirtscheduler/utils.py
15 files changed, 331 insertions(+), 4 deletions(-)
git pull ssh://gerrit.ovirt.org:29418/ovirt-scheduler-proxy
refs/changes/55/17955/1
diff --git a/.gitignore b/.gitignore
index 5da7ef5..c73edf0 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,6 @@
+# Ignore python generated files:
*.pyc
*.pyo
+# Ignore the tarballs:
+*.tar.gz
diff --git a/Makefile b/Makefile
index 96b1d1f..87e261b 100644
--- a/Makefile
+++ b/Makefile
@@ -1,3 +1,36 @@
+#
+# Copyright 2013 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# Refer to the README and COPYING files for full details of the license
+#
+
+NAME=ovirt-scheduler-proxy
+VERSION=0.1
+TARBALL=$(NAME)-$(VERSION).tar.gz
+
+tarball:
+ tar --xform='s,^,$(NAME)-$(VERSION)/,' -c -z -f $(TARBALL) `git
ls-files`
+
+srpm: tarball
+ rpmbuild -ts $(TARBALL)
+
+rpm: srpm
+ rpmbuild -tb $(TARBALL)
+
all: test pep8
PYTHONPATH=src
@@ -12,10 +45,10 @@
pep8 src
start:
- python src/oschedproxyd.py &
+ python src/ovirtscheduler/oschedproxyd.py &
stop:
- pkill -f "python src/oschedproxyd.py"
+ pkill -f "python src/ovirtscheduler/oschedproxyd.py"
clean:
find -name "*.pyc" -exec rm {} \;
diff --git a/ovirt-scheduler-proxy.spec b/ovirt-scheduler-proxy.spec
new file mode 100644
index 0000000..cef0f12
--- /dev/null
+++ b/ovirt-scheduler-proxy.spec
@@ -0,0 +1,187 @@
+#
+# Copyright 2013 Red Hat, Inc.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# Refer to the README and COPYING files for full details of the license
+#
+
+# Enable/disable features according to the type of distribution:
+%if 0%{?fedora}
+%global install_systemd 1
+%global install_systemv 0
+%endif
+
+%if 0%{?rhel}
+%global install_systemd 0
+%global install_systemv 1
+%endif
+
+Name: ovirt-scheduler-proxy
+Version: 0.1
+Release: 1%{?dist}
+Summary: Scheduling Proxy for Open Virtualization
+Group: Virtualization/Management
+License: ASL 2.0
+URL: http://www.ovirt.org
+Source: http://ovirt.org/releases/stable/src/%{name}-%{version}.tar.gz
+BuildArch: noarch
+
+%if %{install_systemd}
+BuildRequires: systemd
+%endif
+
+Requires: python
+
+
+%description
+The scheduler proxy runs user defined scripts to filter and fine-tune
+load-balancing of their oVirt system.
+
+
+%prep
+%setup -q
+
+
+%build
+%{__python} setup.py \
+ build
+
+
+%install
+
+# Install the python files:
+%{__python} setup.py \
+ install \
+ -O1 \
+ --skip-build \
+ --root %{buildroot}
+
+# Install the systemd service file:
+%if %{install_systemd}
+install \
+ -dm 755 \
+ %{buildroot}%{_unitdir}
+install \
+ -m 644 \
+ packaging/ovirt-scheduler-proxy.systemd \
+ %{buildroot}%{_unitdir}/ovirt-scheduler-proxy.service
+%endif
+
+# Install the System V init script:
+%if %{install_systemv}
+install \
+ -dm 755 \
+ %{buildroot}%{_initddir}
+install \
+ -m 755 \
+ packaging/ovirt-scheduler-proxy.sysv \
+ %{buildroot}%{_initddir}/ovirt-scheduler-proxy
+%endif
+
+# Install the data directory:
+install \
+ -dm 755 \
+ %{buildroot}%{_datadir}/ovirt-scheduler-proxy
+
+# Install the directory for plugins:
+install \
+ -dm 755 \
+ %{buildroot}%{_datadir}/ovirt-scheduler-proxy/plugins
+
+# Install the directory for logs:
+install \
+ -dm 755 \
+ %{buildroot}%{_localstatedir}/log/ovirt-scheduler-proxy
+
+
+%pre
+
+# Create the user if it doesn't exist:
+getent group ovirt &>/dev/null || \
+ groupadd \
+ -g 108 \
+ ovirt
+
+# Create the group if it doesn't exist:
+getent passwd ovirt &>/dev/null || \
+ useradd \
+ -u 108 \
+ -g ovirt \
+ -c "oVirt Manager" \
+ -s /sbin/nologin \
+ -d %{_datadir}/ovirt-scheduler-proxy \
+ ovirt
+
+
+%post
+
+# Make sure that systemd reloads its configuration once the package is
+# installed, otherwise it won't recognize the new service name:
+%if %{install_systemd}
+%systemd_post ovirt-scheduler-proxy.service
+%endif
+
+# Register the service:
+chkconfig --add ovirt-scheduler-proxy
+
+
+%postun
+
+# Make sure that the service is stoped and removed from the systemd
+# configuration:
+%if %{install_systemd}
+%systemd_postun ovirt-scheduler-proxy.service
+%endif
+
+# Stop the SysV service only if the package is being completely
+# uninstalled:
+%if %{install_systemv}
+if [ $1 -eq 0 ]
+then
+ service ovirt-scheduler-proxy stop &>/dev/null
+ chkconfig --del ovirt-scheduler-proxy
+fi
+%endif
+
+
+%files
+
+# Python files (included the generated egg):
+%{python_sitelib}/ovirtscheduler
+%{python_sitelib}/ovirt_scheduler_proxy-*.egg-info
+
+# Systemd and SysV files:
+%if %{install_systemd}
+%{_unitdir}/ovirt-scheduler-proxy.service
+%endif
+%if %{install_systemv}
+%{_initddir}/ovirt-scheduler-proxy
+%endif
+
+# Data directory:
+%{_datadir}/ovirt-scheduler-proxy/plugins
+
+# Logs directory needs to be owned by the user that runs the service because it
+# needs to create files inside:
+%attr(-, ovirt, ovirt) %{_localstatedir}/log/ovirt-scheduler-proxy
+
+# Documentation files:
+%doc README
+
+
+%changelog
+* Fri Aug 09 2013 Juan Hernandez <[email protected]> - 0.1-1
+- Initial packaging
diff --git a/packaging/ovirt-scheduler-proxy.systemd
b/packaging/ovirt-scheduler-proxy.systemd
new file mode 100644
index 0000000..a68856b
--- /dev/null
+++ b/packaging/ovirt-scheduler-proxy.systemd
@@ -0,0 +1,14 @@
+[Unit]
+Description=oVirt Scheduler Proxy
+After=network.service
+
+[Service]
+Type=simple
+User=ovirt
+Group=ovirt
+WorkingDirectory=/usr/share/ovirt-scheduler-proxy
+ExecStart=/usr/bin/python -m ovirtscheduler.oschedproxyd
+EnvironmentFile=-/etc/sysconfig/ovirt-scheduler-proxy
+
+[Install]
+WantedBy=multi-user.target
diff --git a/packaging/ovirt-scheduler-proxy.sysv
b/packaging/ovirt-scheduler-proxy.sysv
new file mode 100644
index 0000000..ee9ec6f
--- /dev/null
+++ b/packaging/ovirt-scheduler-proxy.sysv
@@ -0,0 +1,76 @@
+#!/bin/sh
+#
+# ovirt-scheduler-proxy Startup script for the oVirt Scheduler Proxy
+#
+# chkconfig: - 66 33
+# description: oVirt Scheduler Proxy
+# pidfile: /var/run/ovirt-scheduler-proxy.pid
+
+# Source function library:
+. /etc/rc.d/init.d/functions
+
+name="ovirt-scheduler-proxy"
+prog="oVirt Scheduler Proxy"
+pidfile="/var/run/${name}.pid"
+lockfile="/var/lock/subsys/${name}"
+retval=0
+
+if [ -f "/etc/sysconfig/${name}" ]
+then
+ . "/etc/sysconfig/${name}"
+fi
+
+case "$1" in
+
+start)
+ echo -n $"Starting $prog: "
+ touch "${pidfile}"
+ chown ovirt "${pidfile}"
+ pushd "/usr/share/${name}" &>/dev/null
+ daemon \
+ --user=ovirt \
+ "python -m ovirtscheduler.oschedproxyd
&>/var/log/${name}/console.log & echo \$! >${pidfile}"
+ popd &>/dev/null
+ retval=$?
+ echo
+ if [ "${retval}" -eq 0 ]
+ then
+ touch "${lockfile}"
+ else
+ if [ -f "${lockfile}" ]
+ then
+ retval=0
+ fi
+ fi
+;;
+
+stop)
+ echo -n $"Stopping $prog: "
+ killproc -p "${pidfile}" -d 10
+ retval=$?
+ echo
+ if [ "${retval}" -eq 0 ]
+ then
+ rm -f "${lockfile}"
+ fi
+;;
+
+status)
+ status -p "${pidfile}" "${name}"
+ retval=$?
+;;
+
+restart)
+ $0 stop
+ $0 start
+ retval=$?
+ ;;
+
+*)
+ echo $"Usage: $0 {start|stop|status|restart}"
+ exit 2
+ ;;
+
+esac
+
+exit ${retval}
diff --git a/setup.py b/setup.py
new file mode 100644
index 0000000..86cba98
--- /dev/null
+++ b/setup.py
@@ -0,0 +1,15 @@
+from distutils.core import setup
+
+setup(
+ name='ovirt-scheduler-proxy',
+ version='0.1',
+ license='ASL2',
+ description='oVirt Scheduler Proxy',
+ author='Laszlo Hornyak',
+ author_email='[email protected]',
+ url='http://www.ovirt.org/Features/oVirt_External_Scheduling_Proxy',
+ packages=['ovirtscheduler'],
+ package_dir={ '': 'src' },
+ long_description=open('README').read(),
+)
+
diff --git a/src/API.py b/src/ovirtscheduler/API.py
similarity index 100%
rename from src/API.py
rename to src/ovirtscheduler/API.py
diff --git a/src/__init__.py b/src/ovirtscheduler/__init__.py
similarity index 100%
rename from src/__init__.py
rename to src/ovirtscheduler/__init__.py
diff --git a/src/loader.py b/src/ovirtscheduler/loader.py
similarity index 100%
rename from src/loader.py
rename to src/ovirtscheduler/loader.py
diff --git a/src/oschedproxyd.py b/src/ovirtscheduler/oschedproxyd.py
similarity index 96%
rename from src/oschedproxyd.py
rename to src/ovirtscheduler/oschedproxyd.py
index b13b49f..aa78849 100644
--- a/src/oschedproxyd.py
+++ b/src/ovirtscheduler/oschedproxyd.py
@@ -32,8 +32,7 @@
pass
-log_filename = '/var/log/ovirt/ovirt-scheduler-proxy.'\
- + strftime("%Y%m%d_%H%M%S") + '.log'
+log_filename = '/var/log/ovirt-scheduler-proxy/ovirt-scheduler-proxy.log'
try:
logging.basicConfig(level=logging.DEBUG,
diff --git a/src/request_handler.py b/src/ovirtscheduler/request_handler.py
similarity index 100%
rename from src/request_handler.py
rename to src/ovirtscheduler/request_handler.py
diff --git a/src/request_handler_test.py
b/src/ovirtscheduler/request_handler_test.py
similarity index 100%
rename from src/request_handler_test.py
rename to src/ovirtscheduler/request_handler_test.py
diff --git a/src/runner.py b/src/ovirtscheduler/runner.py
similarity index 100%
rename from src/runner.py
rename to src/ovirtscheduler/runner.py
diff --git a/src/runner_test.py b/src/ovirtscheduler/runner_test.py
similarity index 100%
rename from src/runner_test.py
rename to src/ovirtscheduler/runner_test.py
diff --git a/src/utils.py b/src/ovirtscheduler/utils.py
similarity index 100%
rename from src/utils.py
rename to src/ovirtscheduler/utils.py
--
To view, visit http://gerrit.ovirt.org/17955
To unsubscribe, visit http://gerrit.ovirt.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I8aa86f5ee80f40eb25a719fd72e75f7b275f38a0
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-scheduler-proxy
Gerrit-Branch: master
Gerrit-Owner: Doron Fediuck <[email protected]>
Gerrit-Reviewer: Juan Hernandez <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches