summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorying.yunlong <ying.yunlong@zte.com.cn>2017-08-24 09:00:17 +0800
committerying.yunlong <ying.yunlong@zte.com.cn>2017-08-24 09:00:17 +0800
commit3bcc36001a1faa4775a5bf99cf1c46a4c6213199 (patch)
treeff1dc4726cb76c54e3e23b4fa2db795db957d070
parent410c12fddf993c1704830a76a712d4833b88c7fa (diff)
Add parser convert vnffg and server-group
After parse the nsd package, add _get_all_vnffg and get_all_server_group function to convert the fp info. Change-Id: I821f8c83af339238e94cadb921b3e1d8567d78c1 Issue-ID: VFC-151 Signed-off-by: ying.yunlong <ying.yunlong@zte.com.cn>
-rw-r--r--lcm/pub/utils/toscaparser/__init__.py3
-rw-r--r--lcm/pub/utils/toscaparser/nsdmodel.py38
2 files changed, 38 insertions, 3 deletions
diff --git a/lcm/pub/utils/toscaparser/__init__.py b/lcm/pub/utils/toscaparser/__init__.py
index b224f4ef..919e95e2 100644
--- a/lcm/pub/utils/toscaparser/__init__.py
+++ b/lcm/pub/utils/toscaparser/__init__.py
@@ -13,10 +13,8 @@
# limitations under the License.
import json
-from lcm.pub.utils.toscaparser.convert import convert_nsd, convert_vnfd
from lcm.pub.utils.toscaparser.nsdmodel import EtsiNsdInfoModel
from lcm.pub.utils.toscaparser.vnfdmodel import EtsiVnfdInfoModel
-from lcm.pub.utils.toscaparser.parser import parse_nsd_model, parse_vnfd_model
def parse_nsd(path, input_parameters=[]):
@@ -31,4 +29,3 @@ def parse_vnfd(path, input_parameters=[]):
strResponse = json.dumps(tosca_obj, default=lambda obj: obj.__dict__)
strResponse = strResponse.replace(': null', ': ""')
return strResponse
-
diff --git a/lcm/pub/utils/toscaparser/nsdmodel.py b/lcm/pub/utils/toscaparser/nsdmodel.py
index 1838014d..9c60029f 100644
--- a/lcm/pub/utils/toscaparser/nsdmodel.py
+++ b/lcm/pub/utils/toscaparser/nsdmodel.py
@@ -23,6 +23,8 @@ class EtsiNsdInfoModel(BaseInfoModel):
self.cps = self.get_all_cp(nodeTemplates)
self.routers = self.get_all_router(nodeTemplates)
self.fps = self._get_all_fp(nodeTemplates)
+ self.vnffgs = self._get_all_vnffg(tosca.topology_template.groups)
+ self.server_groups = self.get_all_server_group(tosca.topology_template.groups)
def buildInputs(self, top_inputs):
@@ -235,3 +237,39 @@ class EtsiNsdInfoModel(BaseInfoModel):
def get_node_by_req(self, node_templates, req):
req_node_name = self.get_requirement_node_name(req)
return self.get_node_by_name(node_templates, req_node_name)
+
+ def _get_all_vnffg(self, groups):
+ vnffgs = []
+ for group in groups:
+ if self._isVnffg(group):
+ vnffg = {}
+ vnffg['vnffg_id'] = group.name
+ vnffg['description'] = group.description
+ if 'properties' in group.tpl:
+ vnffg['properties'] = group.tpl['properties']
+ vnffg['members'] = group.members
+
+ vnffgs.append(vnffg)
+ return vnffgs
+
+ def _isVnffg(self, group):
+ return group.type.upper().find('.VNFFG.') >= 0 or group.type.upper().find(
+ '.SFC.') >= 0 or group.type.upper().endswith('.VNFFG') or group.type.upper().endswith('.SFC')
+
+ def get_all_server_group(self, groups):
+ rets = []
+ for group in groups:
+ if self._isServerGroup(group):
+ ret = {}
+ ret['group_id'] = group.name
+ ret['description'] = group.description
+ if 'properties' in group.tpl:
+ ret['properties'] = group.tpl['properties']
+ ret['members'] = group.members
+
+ rets.append(ret)
+ return rets
+
+ def _isServerGroup(self, group):
+ return group.type.upper().find('.AFFINITYORANTIAFFINITYGROUP.') >= 0 or group.type.upper().endswith(
+ '.AFFINITYORANTIAFFINITYGROUP')