Debianize the packaging
This commit is contained in:
parent
db75ff35d8
commit
6ade378cc9
|
@ -0,0 +1,5 @@
|
|||
pvc (0.1-1) unstable; urgency=medium
|
||||
|
||||
* Initial packaging release
|
||||
|
||||
-- Joshua Boniface <joshua@boniface.me> Sun, 17 Jun 2018 02:40:39 -0400
|
|
@ -0,0 +1 @@
|
|||
9
|
|
@ -0,0 +1,28 @@
|
|||
Source: pvc
|
||||
Section: main
|
||||
Priority: optional
|
||||
Maintainer: Joshua Boniface <joshua@boniface.me>
|
||||
Standards-Version: 3.9.8
|
||||
Homepage: https://www.boniface.me
|
||||
X-Python3-Version: >= 3.2
|
||||
|
||||
Package: pvc-daemon
|
||||
Architecture: all
|
||||
Depends: python3-kazoo, python3-libvirt, python3-psutil, python3-apscheduler
|
||||
Suggests: pvc-client
|
||||
Description: Parallel Virtual Cluster daemon (Python 3)
|
||||
The Parallel Virtual Cluster provides a management solution for QEMU/KVM virtual clusters,
|
||||
including full control of running VMs, definitions, and hypervisors (including fencing via
|
||||
IPMI). This package provides the daemon component for a hypervisor node.
|
||||
.
|
||||
This package installs the PVC daemon utility
|
||||
|
||||
Package: pvc-client
|
||||
Architecture: all
|
||||
Depends: python3-kazoo, python3-libvirt, python3-psutil, python3-click, python3-lxml
|
||||
Description: Parallel Virtual Cluster client (Python 3)
|
||||
The Parallel Virtual Cluster provides a management solution for QEMU/KVM virtual clusters,
|
||||
including full control of running VMs, definitions, and hypervisors (including fencing via
|
||||
IPMI). This package provides the client command-line interface.
|
||||
.
|
||||
This package installs the PVC command-line client
|
|
@ -0,0 +1,38 @@
|
|||
Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Upstream-Name: pvc
|
||||
Source: <url://example.com>
|
||||
|
||||
Files: *
|
||||
Copyright: <years> <put author's name and email here>
|
||||
<years> <likewise for another author>
|
||||
License: <special license>
|
||||
<Put the license of the package here indented by 1 space>
|
||||
<This follows the format of Description: lines in control file>
|
||||
.
|
||||
<Including paragraphs>
|
||||
|
||||
# If you want to use GPL v2 or later for the /debian/* files use
|
||||
# the following clauses, or change it to suit. Delete these two lines
|
||||
Files: debian/*
|
||||
Copyright: 2018 unknown <joshua@stretch-build.i.bonilan.net>
|
||||
License: GPL-2+
|
||||
This package 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 package 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, see <https://www.gnu.org/licenses/>
|
||||
.
|
||||
On Debian systems, the complete text of the GNU General
|
||||
Public License version 2 can be found in "/usr/share/common-licenses/GPL-2".
|
||||
|
||||
# Please also look if there are files or directories which have a
|
||||
# different copyright/license attached and list them here.
|
||||
# Please avoid picking licenses with terms that are more restrictive than the
|
||||
# packaged work, as it may make Debian's contributions unacceptable upstream.
|
|
@ -0,0 +1,2 @@
|
|||
pvc.py usr/share/pvc
|
||||
pvc usr/share/pvc
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Install client binary to /usr/bin via symlink
|
||||
ln -s /usr/share/pvc/pvc.py /usr/bin/pvc
|
|
@ -0,0 +1,4 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Remove client binary symlink
|
||||
rm -f /usr/bin/pvc
|
|
@ -0,0 +1,4 @@
|
|||
pvcd.py usr/share/pvc
|
||||
pvcd.service lib/systemd/system
|
||||
pvcd.conf.sample etc/pvc
|
||||
pvcd usr/share/pvc
|
|
@ -0,0 +1,6 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Enable the servive
|
||||
systemctl enable /lib/systemd/system/pvcd.service
|
||||
|
||||
echo "The PVC daemon has not been started. Create a config file at /etc/pvc/pvcd.conf then start it."
|
|
@ -0,0 +1,5 @@
|
|||
#!/bin/sh
|
||||
|
||||
# Disable the servive
|
||||
systemctl disable pvcd.service
|
||||
|
|
@ -0,0 +1,16 @@
|
|||
#!/usr/bin/make -f
|
||||
# See debhelper(7) (uncomment to enable)
|
||||
# output every command that modifies files on the build system.
|
||||
#export DH_VERBOSE = 1
|
||||
|
||||
%:
|
||||
dh $@
|
||||
|
||||
|
||||
# If you need to rebuild the Sphinx documentation
|
||||
# Add spinxdoc to the dh --with line
|
||||
#override_dh_auto_build:
|
||||
# dh_auto_build
|
||||
# PYTHONPATH=. http_proxy='127.0.0.1:9' sphinx-build -N -bhtml docs/ build/html # HTML generator
|
||||
# PYTHONPATH=. http_proxy='127.0.0.1:9' sphinx-build -N -bman docs/ build/man # Manpage generator
|
||||
|
|
@ -0,0 +1 @@
|
|||
3.0 (quilt)
|
|
@ -0,0 +1 @@
|
|||
extend-diff-ignore = "^[^/]*[.]egg-info/"
|
|
@ -1,6 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
DEPS=( python3-kazoo python3-libvirt python3-psutil python3-apscheduler )
|
||||
|
||||
# Install required packages
|
||||
sudo apt install ${DEPS[@]}
|
|
@ -1,4 +1,4 @@
|
|||
# pvcd cluster configuration file
|
||||
# pvcd cluster configuration file example
|
||||
#
|
||||
# This configuration file lists all nodes that should be running in the cluster and provides
|
||||
# basic configuration information for them.
|
||||
|
@ -17,15 +17,16 @@
|
|||
# ipmi_hostname: the IPMI hostname for fencing (defaults to <shortname>-lom.<domain>)
|
||||
# ipmi_username: username to connect to IPMI
|
||||
# ipmi_password: password to connect to IPMI
|
||||
#
|
||||
# Copy this example to /etc/pvc/pvcd.conf and edit to your needs
|
||||
|
||||
[default]
|
||||
zookeeper = 127.0.0.1:2181
|
||||
keepalive_interval = 5
|
||||
#ipmi_username = admin
|
||||
#ipmi_password = admin
|
||||
|
||||
[myhost]
|
||||
ipmi_username = admin
|
||||
ipmi_password = admin
|
||||
|
||||
[test1.i.bonilan.net]
|
||||
ipmi_hostname = test1-lom.m.bonilan.net
|
||||
|
||||
[test2.i.bonilan.net]
|
||||
ipmi_hostname = test2-lom.m.bonilan.net
|
||||
ipmi_hostname = myhost-lom
|
6
pvcd.py
6
pvcd.py
|
@ -33,9 +33,9 @@ import time
|
|||
import configparser
|
||||
import apscheduler.schedulers.background
|
||||
|
||||
import pvc.ansiiprint as ansiiprint
|
||||
import pvc.VMInstance as VMInstance
|
||||
import pvc.NodeInstance as NodeInstance
|
||||
import pvcd.ansiiprint as ansiiprint
|
||||
import pvcd.VMInstance as VMInstance
|
||||
import pvcd.NodeInstance as NodeInstance
|
||||
|
||||
print(ansiiprint.bold() + "pvcd - Parallel Virtual Cluster management daemon" + ansiiprint.end())
|
||||
|
||||
|
|
|
@ -5,11 +5,10 @@ After = network-online.target libvirtd.service zookeeper.service
|
|||
|
||||
[Service]
|
||||
Type = simple
|
||||
WorkingDirectory = /var/home/joshua/pvc
|
||||
WorkingDirectory = /usr/share/pvc
|
||||
Environment = PYTHONUNBUFFERED=true
|
||||
Environment = PVCD_CONFIG_FILE=/etc/pvcd.conf
|
||||
#ExecStartPre = /bin/bash -c "GIT_SSH_COMMAND='/usr/bin/ssh -i /srv/git-deploy.key' /usr/bin/git pull"
|
||||
ExecStart = /var/home/joshua/pvc/pvcd.py
|
||||
Environment = PVCD_CONFIG_FILE=/etc/pvc/pvcd.conf
|
||||
ExecStart = /usr/share/pvc/pvcd.py
|
||||
Restart = on-failure
|
||||
|
||||
[Install]
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
###############################################################################
|
||||
|
||||
import os, sys, psutil, socket, time, libvirt, kazoo.client, threading, subprocess
|
||||
import pvc.ansiiprint as ansiiprint
|
||||
import pvcd.ansiiprint as ansiiprint
|
||||
|
||||
class NodeInstance():
|
||||
# Initialization function
|
|
@ -21,7 +21,7 @@
|
|||
###############################################################################
|
||||
|
||||
import os, sys, uuid, socket, time, threading, libvirt, kazoo.client
|
||||
import pvc.ansiiprint as ansiiprint
|
||||
import pvcd.ansiiprint as ansiiprint
|
||||
|
||||
class VMInstance:
|
||||
# Initialization function
|
|
@ -0,0 +1,80 @@
|
|||
#!/usr/bin/env python3
|
||||
|
||||
# ansiprint.py - Printing function for formatted messages
|
||||
# Part of the Parallel Virtual Cluster (PVC) system
|
||||
#
|
||||
# Copyright (C) 2018 Joshua M. Boniface <joshua@boniface.me>
|
||||
#
|
||||
# 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 3 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, see <https://www.gnu.org/licenses/>.
|
||||
#
|
||||
###############################################################################
|
||||
|
||||
import datetime
|
||||
|
||||
# ANSII colours for output
|
||||
def red():
|
||||
return '\033[91m'
|
||||
def blue():
|
||||
return '\033[94m'
|
||||
def green():
|
||||
return '\033[92m'
|
||||
def yellow():
|
||||
return '\033[93m'
|
||||
def purple():
|
||||
return '\033[95m'
|
||||
def bold():
|
||||
return '\033[1m'
|
||||
def end():
|
||||
return '\033[0m'
|
||||
|
||||
# Print function
|
||||
def echo(message, prefix, state):
|
||||
# Get the date
|
||||
date = '{} - '.format(datetime.datetime.now().strftime('%Y/%m/%d %H:%M:%S.%f'))
|
||||
endc = end()
|
||||
|
||||
# Continuation
|
||||
if state == 'c':
|
||||
date = ''
|
||||
colour = ''
|
||||
prompt = ' '
|
||||
# OK
|
||||
elif state == 'o':
|
||||
colour = green()
|
||||
prompt = '>>> '
|
||||
# Error
|
||||
elif state == 'e':
|
||||
colour = red()
|
||||
prompt = '>>> '
|
||||
# Warning
|
||||
elif state == 'w':
|
||||
colour = yellow()
|
||||
prompt = '>>> '
|
||||
# Tick
|
||||
elif state == 't':
|
||||
colour = purple()
|
||||
prompt = '>>> '
|
||||
# Information
|
||||
elif state == 'i':
|
||||
colour = blue()
|
||||
prompt = '>>> '
|
||||
else:
|
||||
colour = bold()
|
||||
prompt = '>>> '
|
||||
|
||||
# Append space to prefix
|
||||
if prefix != '':
|
||||
prefix = prefix + ' '
|
||||
|
||||
print(colour + prompt + endc + date + prefix + message)
|
Loading…
Reference in New Issue