Register metadata server's entry point with Engine
Signed-off-by: Tomas Sedovic <tomas@sedovic.cz>
This commit is contained in:
parent
da366b43b9
commit
fa55a69842
|
@ -37,10 +37,21 @@ import logging
|
|||
from heat import rpc
|
||||
from heat.common import config
|
||||
from heat.common import wsgi
|
||||
from heat import context
|
||||
from paste import httpserver
|
||||
from socket import gethostbyname, gethostname
|
||||
|
||||
LOG = logging.getLogger('heat.metadata')
|
||||
|
||||
|
||||
def send_address_to_engine(port):
|
||||
host = gethostbyname(gethostname())
|
||||
con = context.get_admin_context()
|
||||
resp = rpc.call(con, 'engine',
|
||||
{'method': 'metadata_register_address',
|
||||
'args': {'url': 'http://%s:%s' % (host, port)}})
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
conf = config.HeatMetadataConfigOpts()
|
||||
|
@ -52,6 +63,7 @@ if __name__ == '__main__':
|
|||
app = config.load_paste_app(conf)
|
||||
|
||||
port = conf.bind_port
|
||||
send_address_to_engine(port)
|
||||
LOG.info(('Starting Heat Metadata on port %s') % port)
|
||||
httpserver.serve(app, port=port)
|
||||
except RuntimeError, e:
|
||||
|
|
|
@ -189,6 +189,9 @@ class HeatEngineConfigOpts(cfg.CommonConfigOpts):
|
|||
cfg.IntOpt('osapi_volume_listen_port',
|
||||
default=8776,
|
||||
help='port for os volume api to listen'),
|
||||
cfg.StrOpt('heat_metadata_server_url',
|
||||
default="",
|
||||
help='URL of the Heat metadata server'),
|
||||
]
|
||||
db_opts = [
|
||||
cfg.StrOpt('sql_connection',
|
||||
|
|
|
@ -26,6 +26,7 @@ import traceback
|
|||
import logging
|
||||
import webob
|
||||
from heat import manager
|
||||
from heat.common import config
|
||||
from heat.engine import parser
|
||||
from heat.engine import resources
|
||||
from heat.db import api as db_api
|
||||
|
@ -122,7 +123,9 @@ class EngineManager(manager.Manager):
|
|||
if db_api.stack_get(None, stack_name):
|
||||
return {'Error': 'Stack already exists with that name.'}
|
||||
|
||||
stack = parser.Stack(stack_name, template, 0, params)
|
||||
metadata_server = config.FLAGS.heat_metadata_server_url
|
||||
stack = parser.Stack(stack_name, template, 0, params,
|
||||
metadata_server=metadata_server)
|
||||
response = stack.validate()
|
||||
if 'Malformed Query Response' in response['ValidateTemplateResult']['Description']:
|
||||
return response['ValidateTemplateResult']['Description']
|
||||
|
@ -216,6 +219,9 @@ class EngineManager(manager.Manager):
|
|||
|
||||
return {'events': [parse_event(e) for e in events]}
|
||||
|
||||
def metadata_register_address(self, context, url):
|
||||
config.FLAGS.heat_metadata_server_url = url
|
||||
|
||||
def metadata_list_stacks(self, context):
|
||||
"""
|
||||
Return the names of the stacks registered with Heat.
|
||||
|
|
|
@ -38,7 +38,8 @@ class Stack(object):
|
|||
DELETE_FAILED = 'DELETE_FAILED'
|
||||
DELETE_COMPLETE = 'DELETE_COMPLETE'
|
||||
|
||||
def __init__(self, stack_name, template, stack_id=0, parms=None):
|
||||
def __init__(self, stack_name, template, stack_id=0, parms=None,
|
||||
metadata_server=None):
|
||||
self.id = stack_id
|
||||
self.t = template
|
||||
self.parms = self.t.get('Parameters', {})
|
||||
|
@ -48,8 +49,7 @@ class Stack(object):
|
|||
self.doc = None
|
||||
self.name = stack_name
|
||||
self.parsed_template_id = 0
|
||||
# TODO(shadower) load this from a config file
|
||||
self.metadata_server = 'http://10.0.0.1'
|
||||
self.metadata_server = metadata_server
|
||||
|
||||
self.parms['AWS::StackName'] = {"Description": "AWS StackName",
|
||||
"Type": "String",
|
||||
|
|
Loading…
Reference in New Issue