Merge "Add hooks to obtain conductor api"

This commit is contained in:
Jenkins 2014-12-30 16:28:55 +00:00 committed by Gerrit Code Review
commit 66047a39d6
9 changed files with 24 additions and 74 deletions

View File

@ -22,7 +22,8 @@ app = {
'modules': ['magnum.api'],
'debug': False,
'hooks': [
hooks.ContextHook()
hooks.ContextHook(),
hooks.RPCHook(),
],
'acl_public_routes': [
'/'

View File

@ -307,16 +307,6 @@ class BaysController(rest.RestController):
if rpc_bay[field] != patch_val:
rpc_bay[field] = patch_val
if hasattr(pecan.request, 'rpcapi'):
rpc_bay = objects.Bay.get_by_id(pecan.request.context,
rpc_bay.bay_id)
topic = pecan.request.rpcapi.get_topic_for(rpc_bay)
new_bay = pecan.request.rpcapi.update_bay(
pecan.request.context, rpc_bay, topic)
return Bay.convert_with_links(new_bay)
else:
rpc_bay.save()
return Bay.convert_with_links(rpc_bay)

View File

@ -309,16 +309,6 @@ class BayModelsController(rest.RestController):
if rpc_baymodel[field] != patch_val:
rpc_baymodel[field] = patch_val
if hasattr(pecan.request, 'rpcapi'):
rpc_baymodel = objects.BayModel.get_by_id(pecan.request.context,
rpc_baymodel.baymodel_id)
topic = pecan.request.rpcapi.get_topic_for(rpc_baymodel)
new_baymodel = pecan.request.rpcapi.update_baymodel(
pecan.request.context, rpc_baymodel, topic)
return BayModel.convert_with_links(new_baymodel)
else:
rpc_baymodel.save()
return BayModel.convert_with_links(rpc_baymodel)

View File

@ -379,16 +379,6 @@ class ContainersController(rest.RestController):
if rpc_container[field] != patch_val:
rpc_container[field] = patch_val
if hasattr(pecan.request, 'rpcapi'):
rpc_container = objects.Container.get_by_id(pecan.request.context,
rpc_container.container_id)
topic = pecan.request.rpcapi.get_topic_for(rpc_container)
new_container = pecan.request.rpcapi.update_container(
pecan.request.context, rpc_container, topic)
return Container.convert_with_links(new_container)
else:
rpc_container.save()
return Container.convert_with_links(rpc_container)

View File

@ -298,16 +298,6 @@ class NodesController(rest.RestController):
if rpc_node[field] != patch_val:
rpc_node[field] = patch_val
if hasattr(pecan.request, 'rpcapi'):
rpc_node = objects.Node.get_by_id(pecan.request.context,
rpc_node.node_id)
topic = pecan.request.rpcapi.get_topic_for(rpc_node)
new_node = pecan.request.rpcapi.update_node(
pecan.request.context, rpc_node, topic)
return Node.convert_with_links(new_node)
else:
rpc_node.save()
return Node.convert_with_links(rpc_node)

View File

@ -317,16 +317,6 @@ class PodsController(rest.RestController):
if rpc_pod[field] != patch_val:
rpc_pod[field] = patch_val
if hasattr(pecan.request, 'rpcapi'):
rpc_pod = objects.Pod.get_by_id(pecan.request.context,
rpc_pod.pod_id)
topic = pecan.request.rpcapi.get_topic_for(rpc_pod)
new_pod = pecan.request.rpcapi.update_pod(
pecan.request.context, rpc_pod, topic)
return Pod.convert_with_links(new_pod)
else:
rpc_pod.save()
return Pod.convert_with_links(rpc_pod)

View File

@ -304,16 +304,6 @@ class ServicesController(rest.RestController):
if rpc_service[field] != patch_val:
rpc_service[field] = patch_val
if hasattr(pecan.request, 'rpcapi'):
rpc_service = objects.Service.get_by_id(pecan.request.context,
rpc_service.service_id)
topic = pecan.request.rpcapi.get_topic_for(rpc_service)
new_service = pecan.request.rpcapi.update_service(
pecan.request.context, rpc_service, topic)
return Service.convert_with_links(new_service)
else:
rpc_service.save()
return Service.convert_with_links(rpc_service)

View File

@ -22,6 +22,7 @@ from oslo.utils import importutils
from pecan import hooks
from magnum.common import context
from magnum.conductor import api as conductor_api
class ContextHook(hooks.PecanHook):
@ -65,3 +66,10 @@ class ContextHook(hooks.PecanHook):
tenant=tenant,
domain_id=domain_id,
domain_name=domain_name)
class RPCHook(hooks.PecanHook):
"""Attach the rpcapi object to the request so controllers can get to it."""
def before(self, state):
state.request.rpcapi = conductor_api.API(context=state.request.context)

View File

@ -25,6 +25,7 @@ app = {
'debug': True,
'hooks': [
hooks.ContextHook(),
hooks.RPCHook()
],
'acl_public_routes': [
'/'