2 # Licensed under the Apache License, Version 2.0 (the "License"); you may
3 # not use this file except in compliance with the License. You may obtain
4 # a copy of the License at
6 # http://www.apache.org/licenses/LICENSE-2.0
8 # Unless required by applicable law or agreed to in writing, software
9 # distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
10 # WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
11 # License for the specific language governing permissions and limitations
14 from translator.hot.syntax.hot_resource import HotResource
16 # Name used to dynamically load appropriate map class.
17 TARGET_CLASS_NAME = 'ToscaFloatingIP'
18 TOSCA_LINKS_TO = 'tosca.relationships.network.LinksTo'
21 class ToscaFloatingIP(HotResource):
22 '''Translate TOSCA node type tosca.nodes.network.FloatingIP'''
24 toscatype = 'tosca.nodes.network.FloatingIP'
26 def __init__(self, nodetemplate, csar_dir=None):
27 super(ToscaFloatingIP, self).__init__(nodetemplate,
28 type='OS::Neutron::FloatingIP',
31 def handle_properties(self):
32 tosca_props = self.get_tosca_props()
34 for key, value in tosca_props.items():
35 fip_props[key] = value
38 for rel, node in self.nodetemplate.relationships.items():
39 if not links_to and rel.is_derived_from(TOSCA_LINKS_TO):
41 for hot_resource in self.depends_on_nodes:
42 if links_to.name == hot_resource.name:
43 self.depends_on.remove(hot_resource)
45 fip_props['port_id'] =\
46 '{ get_resource: %s }' % (links_to.name)
48 self.properties = fip_props