Skip to content
This repository was archived by the owner on Feb 8, 2021. It is now read-only.

Commit e36b7e9

Browse files
committed
add lib contrib
1 parent 8f86437 commit e36b7e9

File tree

2 files changed

+132
-1
lines changed

2 files changed

+132
-1
lines changed

.gitignore

-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ dist/
1414
downloads/
1515
eggs/
1616
.eggs/
17-
lib/
1817
lib64/
1918
parts/
2019
sdist/
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,132 @@
1+
# lib/nova_plugins/hypervisor-hyper
2+
# Configure the Hyper hypervisor
3+
4+
# Enable with:
5+
#
6+
# VIRT_DRIVER=hyper
7+
8+
# Dependencies:
9+
#
10+
# - ``functions`` file
11+
# - ``nova`` and ``glance`` configurations
12+
13+
# install_nova_hypervisor - install any external requirements
14+
# configure_nova_hypervisor - make configuration changes, including those to other services
15+
# start_nova_hypervisor - start any external services
16+
# stop_nova_hypervisor - stop any external services
17+
# cleanup_nova_hypervisor - remove transient data and cache
18+
19+
# Save trace setting
20+
MY_XTRACE=$(set +o | grep xtrace)
21+
set +o xtrace
22+
23+
24+
# Defaults
25+
# --------
26+
27+
# Set up default repos
28+
NOVA_HYPER_REPO=${NOVA_HYPER_REPO:-${GIT_BASE}/tbronchain/nova-hyper.git} #todo: change
29+
NOVA_HYPER_BRANCH=${NOVA_HYPER_BRANCH:-develop} #todo: change
30+
31+
# Set up default directories
32+
HYPER_DIR=$DEST/nova-hyper
33+
34+
35+
HYPER_UNIX_SOCKET=/var/run/hyper.sock
36+
HYPER_PID_FILE=/var/run/hyper.pid
37+
HYPER_REGISTRY_PORT=${HYPER_REGISTRY_PORT:-5042}
38+
39+
DOCKER_IMAGE_NAME=${DOCKER_IMAGE_NAME:-${DEFAULT_IMAGE_NAME}}
40+
HYPER_REGISTRY_IMAGE=${HYPER_REGISTRY_IMAGE:-registry}
41+
HYPER_REGISTRY_IMAGE_NAME=registry
42+
43+
#HYPER_APT_REPO=${HYPER_APT_REPO:-https://apt.dockerproject.org/repo}
44+
45+
46+
# Entry Points
47+
# ------------
48+
49+
# clean_nova_hypervisor - Clean up an installation
50+
function cleanup_nova_hypervisor {
51+
stop_service hyper
52+
53+
# Clean out work area
54+
sudo rm -rf /var/lib/hyper
55+
56+
# remove docker bits from nova
57+
rm $NOVA_DIR/nova/virt/hyper
58+
rm $NOVA_DIR/etc/nova/rootwrap.d/hyper.filters
59+
}
60+
61+
# configure_nova_hypervisor - Set config files, create data dirs, etc
62+
function configure_nova_hypervisor {
63+
iniset $NOVA_CONF DEFAULT compute_driver novahyper.virt.hyper.driver.HyperDriver
64+
iniset $GLANCE_API_CONF DEFAULT container_formats ami,ari,aki,bare,ovf,docker
65+
}
66+
67+
# is_docker_running - Return 0 (true) if Docker is running, otherwise 1
68+
function is_docker_running {
69+
local hyper_pid
70+
if [ -f "$HYPER_PID_FILE" ]; then
71+
hyper_pid=$(cat "$HYPER_PID_FILE")
72+
fi
73+
if [[ -z "$hyper_pid" ]] || ! ps -p "$hyper_pid" | grep [h]yper; then
74+
return 1
75+
fi
76+
return 0
77+
}
78+
79+
# install_nova_hypervisor() - Install external components
80+
function install_nova_hypervisor {
81+
hv_type=$(grep -Rni hyper $NOVA_DIR/nova/compute/hv_type.py | wc -l)
82+
if [ $hv_type -eq 0 ]; then
83+
patch $NOVA_DIR/nova/compute/hv_type.py -i $HYPER_DIR/nova/compute/hv_type.patch
84+
fi
85+
setup_develop $HYPER_DIR
86+
# TODO : move into configure_nova_hypervisor_rootwrap if
87+
# https://review.openstack.org/#/c/84839/ is merged
88+
}
89+
90+
# start_nova_hypervisor - Start any required external services
91+
function start_nova_hypervisor {
92+
#todo
93+
# Make sure Hyper is installed
94+
#if ! ( is_package_installed docker || is_package_installed docker-io || is_package_installed docker-engine ) ; then
95+
# die $LINENO "Docker is not installed. Please run tools/docker/install_docker.sh"
96+
#fi
97+
#if ! (is_docker_running); then
98+
# die $LINENO "Docker not running"
99+
#fi
100+
101+
# Gather some information
102+
hyper version
103+
hyper info
104+
105+
## push the rootwrap
106+
#sudo cp $HYPER_DIR/etc/nova/rootwrap.d/hyper.filters /etc/nova/rootwrap.d/hyper.filters
107+
108+
echo "Checking default image for docker..."
109+
if ! (glance image-show "$DEFAULT_IMAGE_NAME"); then
110+
echo "Pulling $DOCKER_IMAGE_NAME..."
111+
hyper pull $DOCKER_IMAGE_NAME
112+
echo "Saving $DOCKER_IMAGE_NAME to glance..."
113+
TOKEN=$(openstack token issue -c id -f value)
114+
docker save $DOCKER_IMAGE_NAME | openstack --os-token $TOKEN --os-url $GLANCE_SERVICE_PROTOCOL://$GLANCE_HOSTPORT image create $DEFAULT_IMAGE_NAME --public --container-format docker --disk-format raw
115+
fi
116+
}
117+
118+
# stop_nova_hypervisor - Stop any external services
119+
function stop_nova_hypervisor {
120+
echo "stop nova pods"
121+
# todo
122+
# Stop the docker registry container
123+
#docker stop $DOCKER_REGISTRY_IMAGE_NAME
124+
#docker rm $DOCKER_REGISTRY_IMAGE_NAME
125+
}
126+
127+
# Restore xtrace
128+
$MY_XTRACE
129+
130+
# Local variables:
131+
# mode: shell-script
132+
# End:

0 commit comments

Comments
 (0)