Updates resource type filtering with name, version
Adds name and version parameters to the resource type filterings implements blueprint heat-resource-type-search APIImpact Change-Id: I7500d5c56ce252bf8c0a9ae7a188a8cb25e643ce
This commit is contained in:
parent
7153d99f6c
commit
fdd163b289
|
@ -524,9 +524,14 @@ class StackController(object):
|
|||
Returns a list of valid resource types that may be used in a template.
|
||||
"""
|
||||
support_status = req.params.get('support_status')
|
||||
type_name = req.params.get('name')
|
||||
version = req.params.get('version')
|
||||
return {
|
||||
'resource_types':
|
||||
self.rpc_client.list_resource_types(req.context, support_status)}
|
||||
self.rpc_client.list_resource_types(req.context,
|
||||
support_status=support_status,
|
||||
type_name=type_name,
|
||||
heat_version=version)}
|
||||
|
||||
@util.policy_enforce
|
||||
def list_template_versions(self, req):
|
||||
|
|
|
@ -567,8 +567,15 @@ class Environment(object):
|
|||
def get_class(self, resource_type, resource_name=None):
|
||||
return self.registry.get_class(resource_type, resource_name)
|
||||
|
||||
def get_types(self, cnxt=None, support_status=None):
|
||||
return self.registry.get_types(cnxt, support_status)
|
||||
def get_types(self,
|
||||
cnxt=None,
|
||||
support_status=None,
|
||||
type_name=None,
|
||||
version=None):
|
||||
return self.registry.get_types(cnxt,
|
||||
support_status=support_status,
|
||||
type_name=type_name,
|
||||
version=version)
|
||||
|
||||
def get_resource_info(self, resource_type, resource_name=None,
|
||||
registry_type=None):
|
||||
|
|
|
@ -273,7 +273,7 @@ class EngineService(service.Service):
|
|||
by the RPC caller.
|
||||
"""
|
||||
|
||||
RPC_API_VERSION = '1.15'
|
||||
RPC_API_VERSION = '1.16'
|
||||
|
||||
def __init__(self, host, topic):
|
||||
super(EngineService, self).__init__()
|
||||
|
@ -1106,12 +1106,22 @@ class EngineService(service.Service):
|
|||
abandon=True)
|
||||
return stack_info
|
||||
|
||||
def list_resource_types(self, cnxt, support_status=None):
|
||||
def list_resource_types(self,
|
||||
cnxt,
|
||||
support_status=None,
|
||||
type_name=None,
|
||||
heat_version=None):
|
||||
"""Get a list of supported resource types.
|
||||
|
||||
:param cnxt: RPC context.
|
||||
:param support_status: Support status of resource type
|
||||
:param type_name: Resource type's name (regular expression allowed)
|
||||
:param heat_version: Heat version
|
||||
"""
|
||||
return resources.global_env().get_types(cnxt, support_status)
|
||||
return resources.global_env().get_types(cnxt,
|
||||
support_status=support_status,
|
||||
type_name=type_name,
|
||||
version=heat_version)
|
||||
|
||||
def list_template_versions(self, cnxt):
|
||||
mgr = templatem._get_template_extension_manager()
|
||||
|
|
|
@ -36,6 +36,7 @@ class EngineClient(object):
|
|||
1.13 - Add support for template functions list
|
||||
1.14 - Add cancel_with_rollback option to stack_cancel_update
|
||||
1.15 - Add preview_update_stack() call
|
||||
1.16 - Adds version, type_name to list_resource_types()
|
||||
'''
|
||||
|
||||
BASE_RPC_API_VERSION = '1.0'
|
||||
|
@ -348,15 +349,24 @@ class EngineClient(object):
|
|||
self.make_msg('abandon_stack',
|
||||
stack_identity=stack_identity))
|
||||
|
||||
def list_resource_types(self, ctxt, support_status=None):
|
||||
def list_resource_types(self,
|
||||
ctxt,
|
||||
support_status=None,
|
||||
type_name=None,
|
||||
heat_version=None):
|
||||
"""
|
||||
Get a list of valid resource types.
|
||||
|
||||
:param ctxt: RPC context.
|
||||
:param support_status: Support status of resource type
|
||||
:param type_name: Resource type's name (regular expression allowed)
|
||||
:param version: Heat version
|
||||
"""
|
||||
return self.call(ctxt, self.make_msg('list_resource_types',
|
||||
support_status=support_status),
|
||||
version='1.1')
|
||||
support_status=support_status,
|
||||
type_name=type_name,
|
||||
heat_version=heat_version),
|
||||
version='1.16')
|
||||
|
||||
def list_template_versions(self, ctxt):
|
||||
"""
|
||||
|
|
|
@ -2024,8 +2024,14 @@ class StackControllerTest(tools.ControllerTest, common.HeatTestCase):
|
|||
|
||||
self.m.StubOutWithMock(rpc_client.EngineClient, 'call')
|
||||
rpc_client.EngineClient.call(
|
||||
req.context, ('list_resource_types', {'support_status': None}),
|
||||
version="1.1"
|
||||
req.context,
|
||||
('list_resource_types',
|
||||
{
|
||||
'support_status': None,
|
||||
'type_name': None,
|
||||
'heat_version': None
|
||||
}),
|
||||
version="1.16"
|
||||
).AndReturn(engine_response)
|
||||
self.m.ReplayAll()
|
||||
response = self.controller.list_resource_types(req,
|
||||
|
@ -2042,8 +2048,12 @@ class StackControllerTest(tools.ControllerTest, common.HeatTestCase):
|
|||
rpc_client.EngineClient.call(
|
||||
req.context,
|
||||
('list_resource_types',
|
||||
{'support_status': None},
|
||||
), version="1.1"
|
||||
{
|
||||
'support_status': None,
|
||||
'type_name': None,
|
||||
'heat_version': None
|
||||
}),
|
||||
version="1.16"
|
||||
).AndRaise(tools.to_remote_error(error))
|
||||
self.m.ReplayAll()
|
||||
|
||||
|
|
|
@ -39,7 +39,7 @@ class ServiceEngineTest(common.HeatTestCase):
|
|||
|
||||
def test_make_sure_rpc_version(self):
|
||||
self.assertEqual(
|
||||
'1.15',
|
||||
'1.16',
|
||||
service.EngineService.RPC_API_VERSION,
|
||||
('RPC version is changed, please update this test to new version '
|
||||
'and make sure additional test cases are added for RPC APIs '
|
||||
|
|
|
@ -201,8 +201,12 @@ class EngineRpcAPITestCase(common.HeatTestCase):
|
|||
params={u'Egg': u'spam'})
|
||||
|
||||
def test_list_resource_types(self):
|
||||
self._test_engine_api('list_resource_types', 'call',
|
||||
support_status=None, version='1.1')
|
||||
self._test_engine_api('list_resource_types',
|
||||
'call',
|
||||
support_status=None,
|
||||
type_name=None,
|
||||
heat_version=None,
|
||||
version='1.16')
|
||||
|
||||
def test_resource_schema(self):
|
||||
self._test_engine_api('resource_schema', 'call', type_name="TYPE")
|
||||
|
|
Loading…
Reference in New Issue