~gandelman-a/charms/precise/nova-cloud-controller/avoid_restarts

« back to all changes in this revision

Viewing changes to hooks/nova-cloud-controller-relations

  • Committer: James Page
  • Date: 2012-12-03 11:17:36 UTC
  • mto: This revision was merged to the branch mainline in revision 48.
  • Revision ID: james.page@canonical.com-20121203111736-3g9gz2bvnubpkf7c
Various updates for quantum integration.

Show diffs side-by-side

added added

removed removed

Lines of Context:
18
18
  DEBIAN_FRONTEND=noninteractive apt-get -y \
19
19
    install --no-install-recommends $PACKAGES || exit 1
20
20
 
21
 
  configure_network_manager $(config-get network-manager)
 
21
  configure_network_manager $NET_MANAGER
22
22
 
23
23
  # Configure any flags specified in deployment config
24
24
  set_config_flags
35
35
    open-port 9696
36
36
  fi
37
37
 
 
38
  # Helpers for creating external and tenant networks
 
39
  cp files/create_ext_net.py /usr/bin/quantum-ext-net
 
40
  cp files/create_tenant_net.py /usr/bin/quantum-tenant-net
 
41
 
38
42
  service_ctl all stop
39
43
}
40
44
 
 
45
function upgrade_charm {
 
46
  install_hook
 
47
  service_ctl all start
 
48
}
 
49
 
41
50
function config_changed {
42
51
 
43
52
  # Determine whether or not we should do an upgrade, based on whether or not
54
63
  fi
55
64
 
56
65
  set_config_flags
 
66
 
 
67
  if [ "$NET_MANAGER" == "Quantum" ]; then
 
68
    configure_quantum_networking
 
69
  fi
 
70
 
57
71
  service_ctl all restart
58
72
}
59
73
 
136
150
  service_ctl all stop
137
151
  /usr/bin/nova-manage db sync
138
152
  service_ctl all start
 
153
  if [ "$NET_MANAGER" == "Quantum" ]; then
 
154
    configure_quantum_networking
 
155
  fi
139
156
  trigger_remote_service_restarts
140
157
}
141
158
 
232
249
  set_or_update "admin_user" "$service_username" "$API_CONF"
233
250
  set_or_update "admin_password" "$service_password" "$API_CONF"
234
251
 
235
 
  if [ "$(config-get network-manager)" == "Quantum" ]; then
 
252
  if [ "$NET_MANAGER" == "Quantum" ]; then
236
253
    # Configure Nova for quantum
 
254
    keystone_url="http://${keystone_host}:${auth_port}/v2.0"
 
255
    set_or_update "quantum_url" "http://$(unit-get private-address):9696"
237
256
    set_or_update "quantum_admin_tenant_name" "${service_tenant}"
238
257
    set_or_update "quantum_admin_username" "${service_username}"
239
258
    set_or_update "quantum_admin_password" "${service_password}"
240
 
    set_or_update "quantum_admin_auth_url" "http://${keystone_host}:${auth_port}/v2.0"
 
259
    set_or_update "quantum_admin_auth_url" "${keystone_url}"
241
260
    # Configure API server for quantum
242
261
    set_or_update "admin_tenant_name" "$service_tenant" "$QUANTUM_API_CONF" "filter:authtoken"
243
262
    set_or_update "admin_user" "$service_username" "$QUANTUM_API_CONF" "filter:authtoken"
244
263
    set_or_update "admin_password" "$service_password" "$QUANTUM_API_CONF" "filter:authtoken"
245
264
    set_or_update "auth_host" "$keystone_host" "$QUANTUM_API_CONF" "filter:authtoken"
246
265
    set_or_update "auth_port" "$auth_port" "$QUANTUM_API_CONF" "filter:authtoken"
 
266
    # Save a local copy of the credentials for later use
 
267
    cat > /etc/quantum/novarc << EOF
 
268
export OS_USERNAME=${service_username}
 
269
export OS_PASSWORD=${service_password}
 
270
export OS_TENANT_NAME=${service_tenant}
 
271
export OS_AUTH_URL=${keystone_url}
 
272
EOF
247
273
  fi
248
274
 
249
275
  service_ctl all restart
 
276
  
 
277
  if [ "$NET_MANAGER" == "Quantum" ]; then
 
278
    configure_quantum_networking
 
279
  fi
250
280
}
251
281
 
252
282
volume_joined() {
287
317
    rids=$(relation-ids identity-service)
288
318
    for rid in $rids; do
289
319
      for unit in $(relation-list -r $rid); do
290
 
        keystone_host=$(relation-get -r $rid keystone_host $unit)
 
320
        keystone_host=$(relation-get -r $rid auth_host $unit)
291
321
        if [ -n "$keystone_host" ]; then
292
322
          relation-set \
293
323
            keystone_host=$keystone_host \
300
330
    done
301
331
    relation-set quantum_host=$(unit-get private-address)
302
332
  fi
303
 
  relation-set ec2_host=$(unit-get private-address)
304
333
}
305
334
 
306
335
quantum_joined() {
308
337
  rids=$(relation-ids identity-service)
309
338
  for rid in $rids; do
310
339
    for unit in $(relation-list -r $rid); do
311
 
      keystone_host=$(relation-get -r $rid keystone_host $unit)
 
340
      keystone_host=$(relation-get -r $rid auth_host $unit)
312
341
      if [ -n "$keystone_host" ]; then
313
342
        relation-set \
314
343
          keystone_host=$keystone_host \
320
349
      fi
321
350
    done
322
351
  done
 
352
  relation-set quantum_host=$(unit-get private-address)
323
353
}
324
354
 
325
355
arg0=$(basename $0)
327
357
  "start"|"stop") service_ctl all $arg0 ;;
328
358
  "install") install_hook ;;
329
359
  "config-changed") config_changed ;;
 
360
  "upgrade-charm") upgrade_charm ;; 
330
361
  "amqp-relation-joined") amqp_joined ;;
331
362
  "amqp-relation-changed") amqp_changed ;;
332
363
  "shared-db-relation-joined") db_joined ;;