1 from rift
.mano
.tosca_translator
.rwmano
.syntax
.mano_resource
import ManoResource
2 from toscaparser
.functions
import GetInput
4 TARGET_CLASS_NAME
= 'ToscaForwardingGraph'
5 class ToscaForwardingGraph(ManoResource
):
6 '''Translate TOSCA node type tosca.nodes.nfv.FP'''
7 toscatype
= 'tosca.groups.nfv.VNFFG'
9 def __init__(self
, log
, group
, metadata
=None):
10 #super(ToscaForwardingGraph, self).__init__(log, nodetemplate, type_='forwardgraph', metadata=metadata)
11 super(ToscaForwardingGraph
, self
).__init
__(log
,
15 self
.name
= group
.name
17 self
.metadata
= metadata
24 def get_tosca_group_props(self
):
26 for prop
in self
.group
.get_properties_objects():
27 if isinstance(prop
.value
, GetInput
):
28 tosca_props
[prop
.name
] = {'get_param': prop
.value
.input_name
}
30 tosca_props
[prop
.name
] = prop
.value
33 def handle_properties(self
, nodes
, groups
):
34 self
.properties
['name'] = self
.name
35 self
.properties
['vendor'] = self
.metadata
['vendor']
36 self
.properties
['id'] = self
.id
37 self
.properties
['classifier'] = []
38 self
.properties
['rsp'] = []
40 tosca_props
= self
.get_tosca_group_props()
42 for member
in self
.group
.members
:
43 forwarding_paths
.append(member
)
45 for forwarding_path
in forwarding_paths
:
46 node
= self
.get_node_with_name(forwarding_path
, nodes
)
47 if node
.classifier
is not None:
48 self
.properties
['classifier'].append(node
.classifier
)
49 if node
.rsp
is not None:
50 self
.properties
['rsp'].append(node
.rsp
)
52 def generate_yang_model_gi(self
, nsd
, vnfds
):
54 nsd
.vnffgd
.add().from_dict(self
.properties
)
55 except Exception as e
:
56 err_msg
= "Error updating VNNFG to nsd"
57 self
.log
.error(err_msg
)
60 def generate_yang_model(self
, nsd
, vnfds
, use_gi
=False):
62 return self
.generate_yang_model_gi(nsd
, vnfds
)