heat-translator/translator/hot/tosca/tosca_block_storage.py
Ton Ngo e814b85f37 Add new support for get_attribute
Fix in TOSCA function GetAttribute to return the parameters.
Add new handler in the translation to Heat to map from the
particular TOSCA attribute to the matching Heat attribute of
the Heat resource type

Change-Id: Ied1c0f08594aa4d9894cd5ceb71bbbd27ae7339e
2015-01-06 15:02:31 -08:00

41 lines
1.6 KiB
Python

#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
from translator.hot.syntax.hot_resource import HotResource
from translator.toscalib.functions import GetInput
class ToscaBlockStorage(HotResource):
'''Translate TOSCA node type tosca.nodes.BlockStorage.'''
def __init__(self, nodetemplate):
super(ToscaBlockStorage, self).__init__(nodetemplate,
type='OS::Cinder::Volume')
pass
def handle_properties(self):
tosca_props = {}
for prop in self.nodetemplate.properties:
if isinstance(prop.value, GetInput):
tosca_props[prop.name] = {'get_param': prop.value.input_name}
self.properties = tosca_props
def get_hot_attribute(self, attribute, args):
attr = {}
# Convert from a TOSCA attribute for a nodetemplate to a HOT
# attribute for the matching resource. Unless there is additional
# runtime support, this should be a one to one mapping.
if attribute == 'volume_id':
attr['get_resource'] = args[0]
return attr