-
Notifications
You must be signed in to change notification settings - Fork 2
/
setup.py
81 lines (69 loc) · 2.4 KB
/
setup.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
# -*- coding: utf-8 -*-
"""
OpenNebula Driver for Linstor
Copyright 2018 LINBIT USA LLC
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
"""
import os
import subprocess
from setuptools import setup
from glob import glob
REMOTES_DIR = "/var/lib/one/remotes"
DRIVER_NAME = "linstor"
VERSION_FILE = ".version"
ONE_LOCATION = os.getenv("ONE_LOCATION")
if ONE_LOCATION:
REMOTES_DIR = os.path.join(ONE_LOCATION, "var/remotes")
def version():
"""Returns project version based on git tags"""
output = None
if os.path.isdir(".git"):
process = subprocess.Popen(
["git", "describe", "--tags", "--abbrev=0"], stdout=subprocess.PIPE
)
output, _ = process.communicate()
if output:
output = output.decode()
with open(VERSION_FILE, "w") as f:
f.write(output)
elif os.path.isfile(VERSION_FILE):
with open(VERSION_FILE) as f:
output = f.readlines()[0]
if not output:
output = "v0.0.0"
output = output.strip()
if output.startswith("v"):
output = output[1:]
return output
setup(
name="linstor-opennebula",
version=version(),
data_files=[
(os.path.join(REMOTES_DIR, "tm", DRIVER_NAME), glob("tm/*")),
(os.path.join(REMOTES_DIR, "datastore", DRIVER_NAME), glob("datastore/*")),
],
license="Apache-2.0",
description="Linstor addon for OpenNebula",
packages=["one"],
install_requires=[
"python-linstor>=1.13.0"
],
author="Rene Peinthor <[email protected]>",
author_email="[email protected]",
url="https://github.com/LINBIT/addon-linstor",
long_description=(
"A driver for OpenNebula to consume storage from LINSTOR. It supports"
"volume creation, deletion, resizing, snapshotting."
"Live-migration of VMs using linstor volumes, with ssh system datastore"
"and shared system datastore."
),
test_suite="one.tests"
)