3
CHARM_DIR=$(dirname $0)
4
if [[ -e $CHARM_DIR/cinder-common ]] ; then
5
. $CHARM_DIR/cinder-common
7
juju-log "ERROR: Could not source cinder-common from $CHARM_DIR."
12
install_source=$(config-get cinder-release)
13
setup_install_source "$install_source"
14
apt-get update || true # ignore transient archive errors
15
pkgs=$(determine_packages)
16
juju-log "cinder: Installing following packages: $pkgs"
17
DEBIAN_FRONTEND=noninteractive apt-get -y install $pkgs
19
if service_enabled "volume" ; then
20
# prepare local storage if volume service is being installed.
21
block_dev=$(config-get block-device)
22
vol_group=$(config-get volume-group)
23
overwrite=$(config-get overwrite)
24
prepare_storage "$block_dev" "$vol_group" "$overwrite"
25
set_or_update "volume_group" "$vol_group"
26
cinder_ctl cinder-volume restart
31
juju-log "cinder: Requesting database access to cinder database."
32
relation-set database=$(config-get cinder-db) username=$(config-get db-user)
33
relation-set hostname=$(unit-get private-address)
37
db_host=$(relation-get private-address)
38
db_password=$(relation-get password)
40
[[ -z "$db_host" ]] || [[ -z "$db_password" ]] &&
41
juju-log "Missing DB_HOST|DB_PASSWORD, peer not ready? Will retry." &&
44
db_user=$(config-get db-user)
45
cinder_db=$(config-get cinder-db)
46
juju-log "cinder: Configuring cinder for database access to $cinder_db@$db_host"
47
set_or_update sql_connection "mysql://$db_user:$db_password@$db_host/$cinder_db"
49
/usr/bin/cinder-manage db sync
54
juju-log "cinder: Requesting amqp access to vhost $rabbit_vhost."
55
relation-set username=$(config-get rabbit-user)
56
relation-set vhost=$(config-get rabbit-vhost)
60
rabbit_host=$(relation-get private-address)
61
rabbit_password=$(relation-get password)
62
[[ -z "$rabbit_host" ]] || [[ -z "$rabbit_password" ]] &&
63
juju-log "Missing rabbit_host||rabbit_passwd, peer not ready? Will retry." && exit 0
64
juju-log "cinder: Configuring cinder for amqp access to $rabbit_host:$rabbit_vhost"
65
rabbit_user=$(config-get rabbit-user)
66
rabbit_vhost=$(config-get rabbit-vhost)
67
set_or_update rabbit_host $rabbit_host
68
set_or_update rabbit_userid $rabbit_user
69
set_or_update rabbit_password $rabbit_password
70
set_or_update rabbit_virtual_host $rabbit_vhost
71
cinder_ctl all restart
75
port=$(config-get api-listening-port)
76
url="http://$(unit-get private-address):$port/v1/\$(tenant_id)s"
77
relation-set service="cinder" \
78
region="RegionOne" public_url="$url" admin_url="$url" internal_url="$url"
82
service_port=$(relation-get service_port)
83
auth_port=$(relation-get auth_port)
84
service_username=$(relation-get service_username)
85
service_password=$(relation-get service_password)
86
service_tenant=$(relation-get service_tenant)
88
[[ -z "$service_port" ]] || [[ -z "$auth_port" ]] ||
89
[[ -z "$service_username" ]] || [[ -z "$service_password" ]] ||
90
[[ -z "$service_tenant" ]] && juju-log "keystone_changed: Peer not ready" &&
93
keystone_host=$(relation-get private-address)
95
# update keystone authtoken settings accordingly
96
set_or_update "service_host" "$keystone_host" "$API_CONF"
97
set_or_update "service_port" "$service_port" "$API_CONF"
98
set_or_update "auth_host" "$keystone_host" "$API_CONF"
99
set_or_update "auth_port" "$auth_port" "$API_CONF"
100
set_or_update "admin_tenant_name" "$service_tenant" "$API_CONF"
101
set_or_update "admin_user" "$service_username" "$API_CONF"
102
set_or_update "admin_password" "$service_password" "$API_CONF"
103
set_or_update "auth_protocol" "http" "$API_CONF"
104
set_or_update "auth_strategy" "keystone" "$CINDER_CONF"
106
cinder_ctl all restart
110
relation-set volume_service="cinder"
114
# nothing todo here yet.
119
juju-log "cinder: Attempting to fire hook for: $arg0"
121
"install") install_hook ;;
122
"shared-db-relation-joined") db_joined ;;
123
"shared-db-relation-changed") db_changed ;;
124
"amqp-relation-joined") amqp_joined ;;
125
"amqp-relation-changed") amqp_changed ;;
126
"identity-service-relation-joined") keystone_joined ;;
127
"identity-service-relation-changed") keystone_changed ;;
128
"cinder-volume-service-relation-joined") volume_joined ;;
129
"cinder-volume-service-relation-changed") volume_changed ;;