updated keystone templates

This commit is contained in:
yolanda.robla@canonical.com 2013-02-11 14:54:11 +01:00
parent dc6220bdab
commit d2a01ed024
5 changed files with 38 additions and 23 deletions

View File

@ -30,3 +30,7 @@ options:
default: 8777
type: int
description: "Port the bind the API server to"
region:
default: RegionOne
type: string
description: OpenStack Region

View File

@ -46,17 +46,16 @@ def get_keystone_conf():
for unit in utils.relation_list(relid):
keystone_username = utils.relation_get('service_username', unit, relid)
keystone_port = utils.relation_get('service_port', unit, relid)
keystone_host = utils.relation_get('private-address', unit, relid)
keystone_host = utils.relation_get('service_host', unit, relid)
keystone_password = utils.relation_get('service_password', unit, relid)
keystone_tenant = utils.relation_get('service_tenant', unit, relid)
final_url = "http://"+keystone_host+":"+keystone_port+"/v2.0"
conf = {
"os-username": keystone_username,
"os-password": keystone_password,
"os-tenant-name": keystone_tenant,
"os-auth-url": final_url
"keystone_os_username": keystone_username,
"keystone_os_password": keystone_password,
"keystone_os_tenant": keystone_tenant,
"keystone_host": keystone_host,
"keystone_port": keystone_port
}
if None not in conf.itervalues():
return conf
@ -68,6 +67,8 @@ def render_ceilometer_conf():
contextkeystone = get_keystone_conf()
if (context and contextdb and contextkeystone and os.path.exists(ceilometer_utils.CEILOMETER_CONF)):
# merge contexts
context.update(contextkeystone)
context['metering_secret'] = ceilometer_utils.get_shared_secret()
context['service_port'] = utils.config_get('service-port')
context['db_connection'] = "mongodb://"+contextdb["db_host"]+":"+contextdb["db_port"]+"/"+contextdb["db_name"]
@ -75,16 +76,19 @@ def render_ceilometer_conf():
with open(ceilometer_utils.CEILOMETER_CONF, "w") as conf:
conf.write(utils.render_template(os.path.basename(ceilometer_utils.CEILOMETER_CONF), context))
return True
return False
def amqp_changed():
render_ceilometer_conf()
utils.restart(*ceilometer_utils.CEILOMETER_SERVICES)
if render_ceilometer_conf():
utils.restart(*ceilometer_utils.CEILOMETER_SERVICES)
def db_joined():
utils.relation_set(ceilometer_database=ceilometer_utils.CEILOMETER_DB)
def db_changed():
render_ceilometer_conf()
utils.restart(*ceilometer_utils.CEILOMETER_SERVICES)
if render_ceilometer_conf():
utils.restart(*ceilometer_utils.CEILOMETER_SERVICES)
def config_changed():
utils.update_ports()
@ -92,12 +96,13 @@ def config_changed():
def keystone_joined():
port = utils.config_get("service-port")
url = "http://"+utils.get_host_ip()+":"+port+"/v1"
utils.relation_set(service=ceilometer_utils.CEILOMETER_SERVICE, public_url=url, admin_url=url, internal_url=url)
url = "http://"+utils.get_host_ip()+":"+port
region = utils.config_get("region")
utils.relation_set(service=ceilometer_utils.CEILOMETER_SERVICE, public_url=url, admin_url=url, internal_url=url, region=region)
def keystone_changed():
render_ceilometer_conf()
utils.restart(*ceilometer_utils.CEILOMETER_SERVICES)
if render_ceilometer_conf():
utils.restart(*ceilometer_utils.CEILOMETER_SERVICES)
utils.do_hooks({
"install": install,

View File

@ -108,9 +108,11 @@ UDP = 'UDP'
def update_ports():
# extract old port from config and close it
ceilometer_config = open(ceilometer_utils.CEILOMETER_CONF).read()
current_api_port = re.search("^#*metering_api_port\s*=\s*(\w+)", ceilometer_config, re.MULTILINE).group(1)
if current_api_port:
unexpose(current_api_port)
exps = re.search("^#*metering_api_port\s*=\s*(\w+)", ceilometer_config, re.MULTILINE)
if exps:
current_api_port = exps.group(1)
if current_api_port:
unexpose(current_api_port)
port = config_get("service-port")
if port:

View File

@ -1 +1 @@
27
32

View File

@ -10,7 +10,11 @@ rabbit_userid={{ rabbit_userid }}
rabbit_pasword={{ rabbit_password }}
rabbit_virtual_host={{ rabbit_virtual_host }}
database_connection={{ db_connection }}
os-username={{ keystone_os_username }}
os-password={{ keystone_os_password }}
os-tenant-name={{ keystone_os_tenant }}
os-auth-url={{ keystone_auth_url }}
[keystone_authtoken]
auth_host = {{ keystone_host }}
auth_port = {{ keystone_port }}
auth_protocol = http
admin_tenant_name = {{ keystone_os_tenant }}
admin_user = {{ keystone_os_username }}
admin_password = {{ keystone_os_password }}