aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorphani.y <yellela.nagaphanindra@huawei.com>2021-02-05 18:46:37 +0530
committerphani.y <yellela.nagaphanindra@huawei.com>2021-02-05 18:46:37 +0530
commit5af510f5e0a3ac0d981292ecaf0bb6b3cef1d7e7 (patch)
tree4fc9e71cd11e6d6598240f99f6c6698611d09883
parentebb664b7ebf27a14c92d199ca75d762dc00f077b (diff)
Added vfc adaptor
Issue-ID: SO-3520 Signed-off-by: phani.y <yellela.nagaphanindra@huawei.com> Change-Id: I8e219a416072fc3e6de09c6cb5aab6f70470bd16
-rwxr-xr-xREADME1
-rwxr-xr-xonap-eclipse-format.xml313
-rwxr-xr-xpom-format.properties5
-rwxr-xr-xpom.xml176
-rwxr-xr-xso-vfc-adapter.iml291
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java84
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/MSOVfcApplication.java37
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/RequestDBConfig.java69
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/constant/CommonConstant.java157
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/constant/DriverExceptionID.java62
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/constant/HttpCode.java92
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/exceptions/ApplicationException.java75
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/AddPnfData.java68
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/AddressRange.java33
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/AffectedNs.java40
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/AffectedPnf.java67
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/AffectedSap.java49
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/AffectedVirtualLink.java49
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/AffectedVnf.java78
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/AffectedVnffg.java40
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRule.java51
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ChangedInfo.java33
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/CivicAddressElement.java33
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/CpProtocolData.java33
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/CpProtocolInfo.java31
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/CreateNsRequest.java53
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/CustomerModel.java69
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ExtCpInfo.java27
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfo.java33
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ExtManagedVirtualLinkInfo.java57
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfo.java42
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/InstantiateNsRequest.java207
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/InstantiatedVnfInfo.java116
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/IpAddresses.java63
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressData.java35
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/Link.java24
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/Links.java78
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/LocationConstraint.java73
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/LocationConstraints.java33
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/Mask.java47
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoData.java80
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NSResourceInputParameter.java154
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NfpInfo.java89
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NfpRule.java108
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsCpHandle.java69
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsCreateReq.java102
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsInstance.java166
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsInstanceLinks.java82
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsInstantiateReq.java50
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsLcmOpOcc.java125
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsLinkPortInfo.java46
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsOperationKey.java140
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsParameters.java70
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsProgressStatus.java84
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsScaleInfo.java37
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsScaleParameters.java66
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsScaleReq.java49
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/NsVirtualLinkInfo.java57
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ParamsForVnf.java35
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpData.java44
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpInfo.java48
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/PnfInfo.java74
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/PortRange.java37
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ProblemDetails.java62
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ResourceChanges.java71
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ResourceHandle.java51
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ResponseDescriptor.java114
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/RestfulResponse.java100
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/SapData.java56
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/SapInfo.java68
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ScaleNsByStepsData.java88
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/ScaleNsData.java48
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VFCScaleData.java84
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VimLocation.java51
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VnfInstance.java156
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VnfInstanceData.java33
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VnfLinkPortInfo.java46
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VnfLocationConstraint.java33
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VnfScaleInfo.java38
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VnfVirtualLinkResourceInfo.java76
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VnfcCpInfo.java65
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VnfcResourceInfo.java85
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/model/VnffgInfo.java87
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/rest/AaiUtil.java47
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/rest/HealthCheckHandler.java58
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/rest/VfcAdapterRest.java265
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/rest/VfcManager.java492
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005.java620
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/util/JsonUtil.java137
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/util/RestfulUtil.java393
-rw-r--r--src/main/java/org/onap/so/adapters/vfc/util/ValidateUtil.java86
-rw-r--r--src/main/resources/application-aaf.yaml0
-rw-r--r--src/main/resources/application-basic.yaml0
-rw-r--r--src/main/resources/application.yaml37
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/exceptions/ApplicationExceptionTest.java36
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/AddPnfDataTest.java189
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/AddressRangeTest.java39
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/AffectedNsTest.java40
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/AffectedPnfTest.java69
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/AffectedSapTest.java49
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/AffectedVirtualLinkTest.java49
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/AffectedVnfTest.java69
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/AffectedVnffgTest.java39
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRuleTest.java283
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/ChangedInfoTest.java39
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/CivicAddressElementTest.java39
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/CpProtocolDataTest.java39
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/CreateNsRequestTest.java49
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/CustomerModelTest.java49
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfoTest.java40
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfoTest.java49
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/InstantiateNsRequestTest.java413
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/IpAddressesTest.java188
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressDataTest.java158
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/LinkTest.java29
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/LinksTest.java89
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/LocationConstraintTest.java49
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/LocationConstraintsTest.java40
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoDataTest.java90
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/NSResourceInputParameterTest.java69
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/NsCreateReqTest.java69
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/NsInstantiateReqTest.java39
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/NsLcmOpOccTest.java142
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/NsOperationKeyTest.java79
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/NsParametersTest.java51
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/NsProgressStatusTest.java60
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/ParamsForVnfTest.java41
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/PnfExtCpDataTest.java168
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/ProblemDetailsTest.java69
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/ResourceChangesTest.java773
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/ResourceHandleTest.java59
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/ResponseDescriptorTest.java79
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/RestfulResponseTest.java75
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/SapDataTest.java179
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/VimLocationTest.java39
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/VnfInstanceDataTest.java39
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/model/VnfLocationConstraintTest.java39
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/rest/EmbeddedMariaDbConfig.java86
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/rest/HealthCheckHandlerTest.java67
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005Test.java221
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/rest/VfcManagerTest.java156
-rw-r--r--src/test/java/org/onap/so/adapters/vfc/util/RestfulUtilTest.java164
-rw-r--r--src/test/resources/application-test.yaml64
-rw-r--r--src/test/resources/json/LICENSE.txt19
-rw-r--r--src/test/resources/json/aainfvoResponse.json10
-rw-r--r--src/test/resources/json/createNsReq.json56
-rw-r--r--src/test/resources/json/createNsRsp.json3
-rw-r--r--src/test/resources/json/createNsSol005Response.json210
-rw-r--r--src/test/resources/json/deleteNsReq.json7
-rw-r--r--src/test/resources/json/instantiateNsReq.json32
-rw-r--r--src/test/resources/json/instantiateNsRsp.json3
-rw-r--r--src/test/resources/json/lcmOperRsp.json7
-rw-r--r--src/test/resources/json/queryJobReq.json7
-rw-r--r--src/test/resources/json/queryJobRsp.json10
-rw-r--r--src/test/resources/json/terminateNsReq.json7
-rw-r--r--src/test/resources/json/terminateNsRsp.json3
-rw-r--r--src/test/resources/logback-test.xml42
157 files changed, 13748 insertions, 0 deletions
diff --git a/README b/README
new file mode 100755
index 0000000..233430c
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+This is the adapter for VFC \ No newline at end of file
diff --git a/onap-eclipse-format.xml b/onap-eclipse-format.xml
new file mode 100755
index 0000000..093866a
--- /dev/null
+++ b/onap-eclipse-format.xml
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<profiles version="12">
+<profile kind="CodeFormatterProfile" name="ONAP Java Rule" version="12">
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_for_statment" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_invocation" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_imports" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_switch_statement" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_javadoc_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.indentation.size" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_enum_constant_declaration" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.disabling_tag" value="@formatter:off"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_enum_constants" value="48"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_imports" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_after_package" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_if_while_statement" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_root_tags" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.enabling_tag" value="@formatter:on"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameterized_type_references" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_block" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.line_length" value="120"/>
+<setting id="org.eclipse.jdt.core.formatter.use_on_off_tags" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_method_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_binary_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_catch_clause" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_lambda_body" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.compact_else_if" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_parameters" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve" value="3"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_annotation" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_ellipsis" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_line_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.align_type_members_on_columns" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_assignment" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_conditional_expression" value="80"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_block_in_case" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
+<setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_method_declaration" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.join_wrapped_lines" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_conditional_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.align_fields_grouping_blank_lines" value="2147483647"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_resources_in_try" value="80"/>
+<setting id="org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_try_clause" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column" value="false"/>
+<setting id="org.eclipse.jdt.core.compiler.source" value="1.8"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.size" value="4"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_source_code" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_field" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_method" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration" value="48"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_assignment_operator" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.8"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_switch" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_html" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_method_delcaration" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_compact_if" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_empty_lines" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_type_arguments" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk" value="1"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_label" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_member_type" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.format_block_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_statements_compare_to_body" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_multiple_fields" value="16"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_before_binary_operator" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.compiler.compliance" value="1.8"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.parentheses_positions_in_lambda_declaration" value="common_lines"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_enum_constant" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.brace_position_for_type_declaration" value="end_of_line"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_before_package" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.alignment_for_expressions_in_for_loop_header" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.join_lines_in_comments" value="true"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
+<setting id="org.eclipse.jdt.core.formatter.comment.indent_parameter_description" value="false"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.tabulation.char" value="space"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.blank_lines_between_import_groups" value="0"/>
+<setting id="org.eclipse.jdt.core.formatter.lineSplit" value="120"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation" value="do not insert"/>
+<setting id="org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
+</profile>
+</profiles> \ No newline at end of file
diff --git a/pom-format.properties b/pom-format.properties
new file mode 100755
index 0000000..4452c2a
--- /dev/null
+++ b/pom-format.properties
@@ -0,0 +1,5 @@
+maxLineLength=120
+wrapLongLines=true
+tabInsteadOfSpaces=false
+tabWidth=2
+splitMultiAttrs=false \ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100755
index 0000000..f225a16
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,176 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.onap.so</groupId>
+ <artifactId>adapters</artifactId>
+ <version>1.7.1-SNAPSHOT</version>
+ </parent>
+ <groupId>org.onap.so.adapters</groupId>
+ <artifactId>so-vfc-adapter</artifactId>
+ <name>so-vfc-adapter</name>
+ <description>Web service endpoint for vfc operations</description>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-dependencies</artifactId>
+ <version>${springboot.version}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <build>
+ <finalName>${project.artifactId}-${project.version}</finalName>
+ <plugins>
+ <plugin>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-maven-plugin</artifactId>
+ <configuration>
+ <mainClass>org.onap.so.adapters.vfc.MSOVfcApplication</mainClass>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>repackage</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.jacoco</groupId>
+ <artifactId>jacoco-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>net.revelc.code.formatter</groupId>
+ <artifactId>formatter-maven-plugin</artifactId>
+ <version>2.9.0</version>
+ <executions>
+ <execution>
+ <id>format-java</id>
+ <goals>
+ <goal>format</goal>
+ </goals>
+ <phase>process-sources</phase>
+ <configuration>
+ <skip>${format.skipExecute}</skip>
+ <configFile>${project.basedir}/onap-eclipse-format.xml</configFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>format-xml</id>
+ <goals>
+ <goal>format</goal>
+ </goals>
+ <phase>process-sources</phase>
+ <configuration>
+ <skip>${format.skipExecute}</skip>
+ <sourceDirectory>${project.basedir}</sourceDirectory>
+ <configXmlFile>${project.basedir}/pom-format.properties</configXmlFile>
+ <includes>
+ <include>pom.xml</include>
+ </includes>
+ </configuration>
+ </execution>
+ <execution>
+ <id>validate-java</id>
+ <goals>
+ <goal>validate</goal>
+ </goals>
+ <configuration>
+ <skip>${format.skipValidate}</skip>
+ <configFile>${project.basedir}/onap-eclipse-format.xml</configFile>
+ </configuration>
+ </execution>
+ <execution>
+ <id>validate-poms</id>
+ <goals>
+ <goal>validate</goal>
+ </goals>
+ <configuration>
+ <skip>${format.skipValidate}</skip>
+ <configFile>${project.basedir}/pom-format.properties</configFile>
+ <includes>
+ <include>pom.xml</include>
+ </includes>
+ </configuration>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>com.fasterxml.jackson.core</groupId>
+ <artifactId>jackson-annotations</artifactId>
+ <version>2.9.8</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+ <dependencies>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-actuator</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-web</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-jdbc</artifactId>
+ <exclusions>
+ <exclusion>
+ <groupId>org.apache.tomcat</groupId>
+ <artifactId>tomcat-jdbc</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-spring-boot-starter-jaxws</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-spring-boot-starter-jaxrs</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.cxf</groupId>
+ <artifactId>cxf-rt-rs-service-description-swagger</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-data-jpa</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-starter-test</artifactId>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.so</groupId>
+ <artifactId>mso-requests-db</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.onap.so</groupId>
+ <artifactId>mso-requests-db-repositories</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.mariadb.jdbc</groupId>
+ <artifactId>mariadb-java-client</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>ch.vorburger.mariaDB4j</groupId>
+ <artifactId>mariaDB4j</artifactId>
+ <version>2.2.3</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.springframework.boot</groupId>
+ <artifactId>spring-boot-configuration-processor</artifactId>
+ <optional>true</optional>
+ </dependency>
+ </dependencies>
+</project>
diff --git a/so-vfc-adapter.iml b/so-vfc-adapter.iml
new file mode 100755
index 0000000..b55c359
--- /dev/null
+++ b/so-vfc-adapter.iml
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
+ <output url="file://$MODULE_DIR$/target/classes" />
+ <output-test url="file://$MODULE_DIR$/target/test-classes" />
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
+ <sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
+ <sourceFolder url="file://$MODULE_DIR$/src/test/resources" type="java-test-resource" />
+ <excludeFolder url="file://$MODULE_DIR$/target" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-actuator:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-autoconfigure:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-logging:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.11.2" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.11.2" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.26" level="project" />
+ <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator-autoconfigure:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-actuator:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-context:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8" level="project" />
+ <orderEntry type="library" name="Maven: io.micrometer:micrometer-core:1.1.4" level="project" />
+ <orderEntry type="library" name="Maven: org.hdrhistogram:HdrHistogram:2.1.9" level="project" />
+ <orderEntry type="library" name="Maven: org.latencyutils:LatencyUtils:2.0.3" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-web:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-json:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.datatype:jackson-datatype-jdk8:2.9.8" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-parameter-names:2.9.8" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-tomcat:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-core:9.0.19" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-el:9.0.19" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat.embed:tomcat-embed-websocket:9.0.19" level="project" />
+ <orderEntry type="library" name="Maven: org.hibernate.validator:hibernate-validator:6.0.16.Final" level="project" />
+ <orderEntry type="library" name="Maven: org.jboss.logging:jboss-logging:3.3.2.Final" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml:classmate:1.4.0" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-web:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-beans:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-webmvc:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-aop:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-expression:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-jdbc:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: com.zaxxer:HikariCP:3.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-jdbc:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-tx:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-spring-boot-starter-jaxws:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-spring-boot-autoconfigure:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-transports-http:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-core:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.glassfish.jaxb:jaxb-runtime:2.3.1" level="project" />
+ <orderEntry type="library" name="Maven: org.glassfish.jaxb:txw2:2.3.1" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.istack:istack-commons-runtime:3.0.7" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.woodstox:woodstox-core:5.0.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.ws.xmlschema:xmlschema-core:2.2.4" level="project" />
+ <orderEntry type="library" name="Maven: jakarta.xml.bind:jakarta.xml.bind-api:2.3.2" level="project" />
+ <orderEntry type="library" name="Maven: jakarta.activation:jakarta.activation-api:1.2.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxws:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: xml-resolver:xml-resolver:1.2" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-soap:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-wsdl:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: wsdl4j:wsdl4j:1.6.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-databinding-jaxb:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-bindings-xml:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-simple:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-addr:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-ws-policy:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.neethi:neethi:3.1.1" level="project" />
+ <orderEntry type="library" name="Maven: javax.validation:validation-api:2.0.1.Final" level="project" />
+ <orderEntry type="library" name="Maven: javax.xml.ws:jaxws-api:2.3.1" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.activation:javax.activation:1.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-ws-metadata_2.0_spec:1.1.3" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.messaging.saaj:saaj-impl:1.5.0" level="project" />
+ <orderEntry type="library" name="Maven: org.jvnet.mimepull:mimepull:1.9.11" level="project" />
+ <orderEntry type="library" name="Maven: org.jvnet.staxex:stax-ex:1.8" level="project" />
+ <orderEntry type="library" name="Maven: javax.activation:activation:1.1" level="project" />
+ <orderEntry type="library" name="Maven: org.jacorb:jacorb-omgapi:3.7" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.geronimo.specs:geronimo-jta_1.1_spec:1.1.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-spring-boot-starter-jaxrs:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-frontend-jaxrs:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: jakarta.ws.rs:jakarta.ws.rs-api:2.1.5" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-security:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-rs-client:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-rs-service-description-swagger:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-rs-service-description-common-openapi:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.cxf:cxf-rt-rs-service-description-swagger-ui:3.3.3" level="project" />
+ <orderEntry type="library" name="Maven: io.swagger:swagger-jaxrs:1.5.21" level="project" />
+ <orderEntry type="library" name="Maven: io.swagger:swagger-core:1.5.21" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.9.8" level="project" />
+ <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.5.21" level="project" />
+ <orderEntry type="library" name="Maven: io.swagger:swagger-annotations:1.5.21" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-jpa:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-aop:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.aspectj:aspectjweaver:1.9.4" level="project" />
+ <orderEntry type="library" name="Maven: javax.transaction:javax.transaction-api:1.3" level="project" />
+ <orderEntry type="library" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
+ <orderEntry type="library" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
+ <orderEntry type="library" name="Maven: org.hibernate:hibernate-core:5.3.10.Final" level="project" />
+ <orderEntry type="library" name="Maven: javax.persistence:javax.persistence-api:2.2" level="project" />
+ <orderEntry type="library" name="Maven: org.javassist:javassist:3.23.2-GA" level="project" />
+ <orderEntry type="library" name="Maven: antlr:antlr:2.7.7" level="project" />
+ <orderEntry type="library" name="Maven: org.jboss:jandex:2.0.5.Final" level="project" />
+ <orderEntry type="library" name="Maven: org.dom4j:dom4j:2.1.1" level="project" />
+ <orderEntry type="library" name="Maven: org.hibernate.common:hibernate-commons-annotations:5.0.4.Final" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.data:spring-data-jpa:2.1.8.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.data:spring-data-commons:2.1.8.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-orm:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-aspects:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-starter-test:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework.boot:spring-boot-test-autoconfigure:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: com.jayway.jsonpath:json-path:2.4.0" level="project" />
+ <orderEntry type="library" name="Maven: net.minidev:json-smart:2.3" level="project" />
+ <orderEntry type="library" name="Maven: net.minidev:accessors-smart:1.2" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.skyscreamer:jsonassert:1.5.0" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-core:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework:spring-jcl:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.springframework:spring-test:5.1.7.RELEASE" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.xmlunit:xmlunit-core:2.6.2" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.so:mso-requests-db:1.7.1-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.so:common:1.7.1-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-security:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.security:spring-security-config:5.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.modelmapper:modelmapper:2.3.2" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-catalina:9.0.30" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-servlet-api:9.0.30" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jsp-api:9.0.19" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-el-api:9.0.19" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-juli:9.0.30" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-annotations-api:9.0.19" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-api:9.0.30" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jni:9.0.30" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-coyote:9.0.30" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-util:9.0.30" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-util-scan:9.0.30" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.tomcat:tomcat-jaspic-api:9.0.30" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:slf4j-ext:1.7.26" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.retry:spring-retry:1.2.4.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.security:spring-security-web:5.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.security:spring-security-core:5.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.json:json:20140107" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.aaf.authz:aaf-cadi-client:2.1.21" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.aaf.authz:aaf-cadi-core:2.1.21" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.aaf.authz:aaf-cadi-aaf:2.1.21" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.onap.aaf.authz:aaf-auth-client:2.1.21" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.onap.aaf.authz:aaf-misc-env:2.1.21" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: log4j:log4j:1.2.17" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.onap.aaf.authz:aaf-misc-rosetta:2.1.21" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.ccsdk.cds.components:proto-definition:0.4.2" level="project" />
+ <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java-util:3.6.1" level="project" />
+ <orderEntry type="library" name="Maven: com.google.protobuf:protobuf-java:3.6.1" level="project" />
+ <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf:1.17.1" level="project" />
+ <orderEntry type="library" name="Maven: io.grpc:grpc-core:1.17.1" level="project" />
+ <orderEntry type="library" name="Maven: io.grpc:grpc-context:1.17.1" level="project" />
+ <orderEntry type="library" name="Maven: io.opencensus:opencensus-api:0.17.0" level="project" />
+ <orderEntry type="library" name="Maven: io.opencensus:opencensus-contrib-grpc-metrics:0.17.0" level="project" />
+ <orderEntry type="library" name="Maven: com.google.api.grpc:proto-google-common-protos:1.0.0" level="project" />
+ <orderEntry type="library" name="Maven: io.grpc:grpc-protobuf-lite:1.17.1" level="project" />
+ <orderEntry type="library" name="Maven: io.grpc:grpc-stub:1.17.1" level="project" />
+ <orderEntry type="library" name="Maven: io.grpc:grpc-netty:1.17.1" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-http2:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-common:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-buffer:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-transport:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-resolver:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-handler:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-http:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-handler-proxy:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: io.netty:netty-codec-socks:4.1.36.Final" level="project" />
+ <orderEntry type="library" name="Maven: org.javatuples:javatuples:1.2" level="project" />
+ <orderEntry type="library" name="Maven: org.camunda.bpm:camunda-external-task-client:1.1.1" level="project" />
+ <orderEntry type="library" name="Maven: org.camunda.commons:camunda-commons-logging:1.6.1" level="project" />
+ <orderEntry type="library" name="Maven: org.camunda.commons:camunda-commons-typed-values:1.6.1" level="project" />
+ <orderEntry type="library" name="Maven: org.camunda.commons:camunda-commons-utils:1.6.1" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.appc.client:client-lib:1.7.2" level="project" />
+ <orderEntry type="library" name="Maven: com.att.nsa:cambriaClient:0.0.1" level="project" />
+ <orderEntry type="library" name="Maven: com.att.nsa:saClientLibrary:0.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient-cache:4.5.8" level="project" />
+ <orderEntry type="library" name="Maven: commons-logging:commons-logging:1.2" level="project" />
+ <orderEntry type="library" name="Maven: com.att.nsa:saToolkit:0.0.1" level="project" />
+ <orderEntry type="library" name="Maven: jline:jline:2.12.1" level="project" />
+ <orderEntry type="library" name="Maven: com.att.eelf:eelf-core:1.0.0" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.appc.client:client-kit:1.7.2" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-core:2.3.0" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-impl:2.3.0" level="project" />
+ <orderEntry type="library" name="Maven: javax.cache:cache-api:1.1.0" level="project" />
+ <orderEntry type="library" name="Maven: org.ehcache:ehcache:3.6.3" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.so:mso-requests-db-repositories:1.7.1-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-data-rest:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.data:spring-data-rest-webmvc:3.1.8.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.data:spring-data-rest-core:3.1.8.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.hateoas:spring-hateoas:0.25.1.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.plugin:spring-plugin-core:1.2.0.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.atteo:evo-inflector:1.2.2" level="project" />
+ <orderEntry type="library" name="Maven: org.mariadb.jdbc:mariadb-java-client:2.3.0" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: ch.vorburger.mariaDB4j:mariaDB4j:2.2.3" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: ch.vorburger.mariaDB4j:mariaDB4j-core:2.2.3" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.apache.commons:commons-collections4:4.1" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.apache.commons:commons-exec:1.3" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: ch.vorburger.mariaDB4j:mariaDB4j-db-linux64:10.1.13" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: ch.vorburger.mariaDB4j:mariaDB4j-db-win32:10.1.20" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: ch.vorburger.mariaDB4j:mariaDB4j-db-mac64:10.1.9" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-configuration-processor:2.1.5.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpclient:4.5.8" level="project" />
+ <orderEntry type="library" name="Maven: commons-codec:commons-codec:1.12" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.httpcomponents:httpcore:4.4.4" level="project" />
+ <orderEntry type="library" name="Maven: org.springframework.cloud:spring-cloud-contract-wiremock:1.2.4.RELEASE" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.so:aai-client:1.7.1-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: com.google.guava:guava:27.0-jre" level="project" />
+ <orderEntry type="library" name="Maven: com.google.guava:failureaccess:1.0" level="project" />
+ <orderEntry type="library" name="Maven: com.google.guava:listenablefuture:9999.0-empty-to-avoid-conflict-with-guava" level="project" />
+ <orderEntry type="library" name="Maven: com.google.code.findbugs:jsr305:3.0.2" level="project" />
+ <orderEntry type="library" name="Maven: org.checkerframework:checker-qual:2.5.2" level="project" />
+ <orderEntry type="library" name="Maven: com.google.errorprone:error_prone_annotations:2.2.0" level="project" />
+ <orderEntry type="library" name="Maven: com.google.j2objc:j2objc-annotations:1.1" level="project" />
+ <orderEntry type="library" name="Maven: org.codehaus.mojo:animal-sniffer-annotations:1.17" level="project" />
+ <orderEntry type="library" name="Maven: commons-io:commons-io:2.5" level="project" />
+ <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.3" level="project" />
+ <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.3" level="project" />
+ <orderEntry type="library" name="Maven: javax.servlet:javax.servlet-api:4.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.aai.schema-service:aai-schema:1.8.1" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.aai.schema-service:aai-annotations:1.8.1" level="project" />
+ <orderEntry type="library" name="Maven: org.jvnet.jaxb2_commons:jaxb2-basics:0.11.1" level="project" />
+ <orderEntry type="library" name="Maven: org.jvnet.jaxb2_commons:jaxb2-basics-runtime:0.11.1" level="project" />
+ <orderEntry type="library" name="Maven: org.jvnet.jaxb2_commons:jaxb2-basics-tools:0.11.1" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:jcl-over-slf4j:1.7.26" level="project" />
+ <orderEntry type="library" name="Maven: com.google.code.javaparser:javaparser:1.0.11" level="project" />
+ <orderEntry type="library" name="Maven: com.googlecode.json-simple:json-simple:1.1.1" level="project" />
+ <orderEntry type="library" name="Maven: org.apache.commons:commons-lang3:3.8.1" level="project" />
+ <orderEntry type="library" name="Maven: org.antlr:antlr4-runtime:4.7" level="project" />
+ <orderEntry type="library" name="Maven: net.jodah:failsafe:2.0.1" level="project" />
+ <orderEntry type="library" name="Maven: org.reflections:reflections:0.9.11" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.org.apache.xml.internal:resolver:20050927" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.ws:jaxws-rt:2.3.0" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.ws:policy:2.7.2" level="project" />
+ <orderEntry type="library" name="Maven: org.glassfish.gmbal:gmbal-api-only:3.1.0-b001" level="project" />
+ <orderEntry type="library" name="Maven: org.glassfish.external:management-api:3.0.0-b012" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.stream.buffer:streambuffer:1.5.4" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.fastinfoset:FastInfoset:1.2.13" level="project" />
+ <orderEntry type="library" name="Maven: org.glassfish.ha:ha-api:3.1.9" level="project" />
+ <orderEntry type="library" scope="RUNTIME" name="Maven: org.codehaus.woodstox:woodstox-core-asl:4.4.1" level="project" />
+ <orderEntry type="library" name="Maven: org.codehaus.woodstox:stax2-api:3.1.4" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.ws:jaxws-tools:2.3.0" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-xjc:2.3.0" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.bind:jaxb-jxc:2.3.0" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.ws:jaxws-eclipselink-plugin:2.3.0" level="project" />
+ <orderEntry type="library" name="Maven: javax.mail:mail:1.4.7" level="project" />
+ <orderEntry type="library" name="Maven: org.eclipse.persistence:eclipselink:2.6.4" level="project" />
+ <orderEntry type="library" name="Maven: org.eclipse.persistence:javax.persistence:2.1.1" level="project" />
+ <orderEntry type="library" name="Maven: org.eclipse.persistence:commonj.sdo:2.1.1" level="project" />
+ <orderEntry type="library" name="Maven: org.glassfish:javax.json:1.0.4" level="project" />
+ <orderEntry type="library" name="Maven: com.sun.xml.ws:sdo-eclipselink-plugin:2.3.0" level="project" />
+ <orderEntry type="library" name="Maven: commonj.sdo:commonj.sdo:2.1.1.v201112051852" level="project" />
+ <orderEntry type="library" name="Maven: javax.xml.soap:javax.xml.soap-api:1.4.0" level="project" />
+ <orderEntry type="library" name="Maven: javax.jws:jsr181-api:1.0-MR1" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.logging-analytics:logging-slf4j:1.6.9-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: org.slf4j:slf4j-api:1.7.26" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.logging-analytics:logging-filter-base:1.6.9-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: org.aspectj:aspectjrt:1.9.4" level="project" />
+ <orderEntry type="library" name="Maven: org.onap.logging-analytics:logging-filter-spring:1.6.9-SNAPSHOT" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-core:2.9.8" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.module:jackson-module-jaxb-annotations:2.9.8" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-databind:2.9.8" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.9.0" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:2.9.8" level="project" />
+ <orderEntry type="library" name="Maven: com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:2.9.8" level="project" />
+ <orderEntry type="library" name="Maven: javax.ws.rs:javax.ws.rs-api:2.1" level="project" />
+ <orderEntry type="library" name="Maven: javax.annotation:javax.annotation-api:1.3.1" level="project" />
+ <orderEntry type="library" name="Maven: javax.inject:javax.inject:1" level="project" />
+ <orderEntry type="library" name="Maven: org.mockito:mockito-core:2.23.4" level="project" />
+ <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy:1.9.12" level="project" />
+ <orderEntry type="library" name="Maven: net.bytebuddy:byte-buddy-agent:1.9.12" level="project" />
+ <orderEntry type="library" name="Maven: org.objenesis:objenesis:2.6" level="project" />
+ <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-core:1.3" level="project" />
+ <orderEntry type="library" name="Maven: org.hamcrest:hamcrest-library:1.3" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.12" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: xmlunit:xmlunit:1.6" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: com.github.tomakehurst:wiremock-standalone:2.13.0" level="project" />
+ <orderEntry type="library" name="Maven: com.openpojo:openpojo:0.8.13" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: com.shazam:shazamcrest:0.11" level="project" />
+ <orderEntry type="library" name="Maven: com.google.code.gson:gson:2.8.5" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.assertj:assertj-core:3.11.1" level="project" />
+ <orderEntry type="library" scope="TEST" name="Maven: org.ow2.asm:asm:7.0" level="project" />
+ <orderEntry type="library" name="Maven: com.googlecode.junit-toolbox:junit-toolbox:2.4" level="project" />
+ </component>
+</module> \ No newline at end of file
diff --git a/src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java b/src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java
new file mode 100644
index 0000000..dd875c5
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/CXFConfiguration.java
@@ -0,0 +1,84 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc;
+
+import java.util.Arrays;
+import org.apache.cxf.Bus;
+import org.apache.cxf.endpoint.Server;
+import org.apache.cxf.feature.LoggingFeature;
+import org.apache.cxf.jaxrs.JAXRSServerFactoryBean;
+import org.apache.cxf.jaxrs.swagger.Swagger2Feature;
+import org.apache.cxf.transport.servlet.CXFServlet;
+import org.onap.so.adapters.vfc.rest.VfcAdapterRest;
+import org.onap.so.logging.jaxrs.filter.SOAuditLogContainerFilter;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.web.servlet.ServletRegistrationBean;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider;
+
+
+@Configuration
+public class CXFConfiguration {
+
+ @Autowired
+ private Bus bus;
+
+ @Autowired
+ private VfcAdapterRest vfcAdapterRest;
+
+ @Autowired
+ private SOAuditLogContainerFilter soAuditLogContainerFilter;
+
+ @Autowired
+ private ObjectMapper mapper;
+
+ @Bean
+ public ServletRegistrationBean cxfServlet() {
+ return new ServletRegistrationBean(new CXFServlet(), "/services/*");
+ }
+
+ @Bean
+ public Server rsServer() {
+ JAXRSServerFactoryBean endpoint = new JAXRSServerFactoryBean();
+ endpoint.setBus(bus);
+ endpoint.setServiceBeans(Arrays.<Object>asList(vfcAdapterRest));
+ endpoint.setAddress("/");
+ endpoint.setFeatures(Arrays.asList(createSwaggerFeature(), new LoggingFeature()));
+ endpoint.setProviders(Arrays.asList(new JacksonJsonProvider(mapper), soAuditLogContainerFilter));
+ return endpoint.create();
+ }
+
+ @Bean
+ public Swagger2Feature createSwaggerFeature() {
+ Swagger2Feature swagger2Feature = new Swagger2Feature();
+ swagger2Feature.setPrettyPrint(true);
+ swagger2Feature.setTitle("SO VFC Adapter");
+ swagger2Feature.setContact("The ONAP SO team");
+ swagger2Feature.setDescription("This project is the SO Orchestration Engine");
+ swagger2Feature.setVersion("1.0.0");
+ swagger2Feature.setResourcePackage("org.onap.so.adapters.vfc.rest");
+ swagger2Feature.setScan(true);
+ return swagger2Feature;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/MSOVfcApplication.java b/src/main/java/org/onap/so/adapters/vfc/MSOVfcApplication.java
new file mode 100644
index 0000000..62234f9
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/MSOVfcApplication.java
@@ -0,0 +1,37 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright (C) 2018 IBM.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc;
+
+
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+
+
+
+@SpringBootApplication(scanBasePackages = {"org.onap.so"})
+public class MSOVfcApplication {
+
+ public static void main(String... args) {
+ SpringApplication.run(MSOVfcApplication.class, args);
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/RequestDBConfig.java b/src/main/java/org/onap/so/adapters/vfc/RequestDBConfig.java
new file mode 100644
index 0000000..d7397c8
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/RequestDBConfig.java
@@ -0,0 +1,69 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc;
+
+
+import javax.persistence.EntityManagerFactory;
+import javax.sql.DataSource;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.context.annotation.Profile;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+
+@Profile({"!test"})
+@Configuration
+@EnableTransactionManagement
+@EnableJpaRepositories(entityManagerFactoryRef = "requestEntityManagerFactory",
+ transactionManagerRef = "requestTransactionManager", basePackages = {"org.onap.so.db.request.data.repository"})
+public class RequestDBConfig {
+
+ @Primary
+ @Bean(name = "requestDataSource")
+ @ConfigurationProperties(prefix = "spring.datasource")
+ public DataSource dataSource() {
+ return DataSourceBuilder.create().build();
+ }
+
+ @Primary
+ @Bean(name = "requestEntityManagerFactory")
+ public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder,
+ @Qualifier("requestDataSource") DataSource dataSource) {
+ return builder.dataSource(dataSource).packages("org.onap.so.db.request.beans").persistenceUnit("requestDB")
+ .build();
+ }
+
+ @Primary
+ @Bean(name = "requestTransactionManager")
+ public PlatformTransactionManager transactionManager(
+ @Qualifier("requestEntityManagerFactory") EntityManagerFactory entityManagerFactory) {
+ return new JpaTransactionManager(entityManagerFactory);
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/constant/CommonConstant.java b/src/main/java/org/onap/so/adapters/vfc/constant/CommonConstant.java
new file mode 100644
index 0000000..51a0fc0
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/constant/CommonConstant.java
@@ -0,0 +1,157 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.constant;
+
+/**
+ * CommonConstant <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-08-28
+ */
+public class CommonConstant {
+
+ public static final String STR_EMPTY = "";
+
+ public static final String NFVO_CREATE_URL = "/api/nslcm/v1/ns";
+ public static final String SOL005_NFVO_CREATE_URL = "/api/nslcm/v1/ns_instances";
+
+ public static final String NFVO_INSTANTIATE_URL = "/api/nslcm/v1/ns/%s/instantiate";
+ public static final String SOL005_NFVO_INSTANTIATE_URL = "/api/nslcm/v1/ns_instances/%s/instantiate";
+
+ public static final String NFVO_TERMINATE_URL = "/api/nslcm/v1/ns/%s/terminate";
+ public static final String SOL005_NFVO_TERMINATE_URL = "/api/nslcm/v1/ns_instances/%s/terminate";
+
+ public static final String NFVO_DELETE_URL = "/api/nslcm/v1/ns/%s";
+ public static final String SOL005_NFVO_DELETE_URL = "/api/nslcm/v1/ns_instances/%s";
+
+ public static final String NFVO_QUERY_URL = "/api/nslcm/v1/jobs/%s";
+ public static final String SOL005_NFVO_QUERY_URL = "/api/nslcm/v1/ns_lcm_op_occs/%s";
+
+ public static final String NFVO_SCALE_URL = "/api/nslcm/v1/ns/%s/scale";
+
+ public enum operationState {
+ PROCESSING, COMPLETED, PARTIALLY_COMPLETED, FAILED_TEMP, FAILED, ROLLING_BACK, ROLLED_BACK
+ }
+ public enum lcmOperationType {
+ INSTANTIATE, SCALE, UPDATE, TERMINATE, HEAL
+ };
+ public enum cancelMode {
+ GRACEFUL, FORCEFUL
+ };
+
+ /**
+ *
+ * <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-08-28
+ */
+ public static class MethodType {
+
+ public static final String POST = "post";
+
+ public static final String DELETE = "delete";
+
+ public static final String PUT = "put";
+
+ public static final String GET = "get";
+
+ private MethodType() {
+
+ }
+ }
+
+ /**
+ *
+ * <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-08-28
+ */
+ public static class Step {
+
+ public static final String CREATE = "create";
+
+ public static final String INSTANTIATE = "instantiate";
+
+ public static final String STATUS = "status";
+
+ public static final String TERMINATE = "terminate";
+
+ public static final String QUERY = "query";
+
+ public static final String DELETE = "delete";
+
+ public static final String SCALE = "scale";
+
+ private Step() {
+
+ }
+
+ }
+
+
+ public static final String NSD_ID = "nsdId";
+
+ public static final String NS_NAME = "nsName";
+
+ public static final String DESC = "description";
+
+ public static final String NS_INSTANCE_ID = "nsInstanceId";
+ public static final String SOL005_NS_INSTANCE_ID = "id";
+
+
+ public static final String JOB_ID = "jobId";
+ public static final String JOB_URI = "Location";
+
+ public static final String ADDITIONAL_PARAM_FOR_NS = "additionalParamForNs";
+
+ public static final String LOCAL_HOST = "localhost";
+
+ public static class StatusDesc {
+
+ public static final String INSTANTIATE_NS_FAILED = "instantiate ns failed";
+
+ public static final String QUERY_JOB_STATUS_FAILED = "query job status failed";
+
+ public static final String TERMINATE_NS_FAILED = "terminate ns failed";
+
+ public static final String DELETE_NS_FAILED = "delete ns failed";
+
+ public static final String CREATE_NS_FAILED = "create ns failed";
+
+ public static final String SCALE_NS_FAILED = "scale ns failed";
+
+ private StatusDesc() {
+
+ }
+ }
+
+ private CommonConstant() {
+
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/constant/DriverExceptionID.java b/src/main/java/org/onap/so/adapters/vfc/constant/DriverExceptionID.java
new file mode 100644
index 0000000..6133002
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/constant/DriverExceptionID.java
@@ -0,0 +1,62 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.constant;
+
+/**
+ * <br>
+ * <p>
+ * </p>
+ * identification of adapter exception
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-9-6
+ */
+public class DriverExceptionID {
+
+ public static final String INVALID_RESPONSE_FROM_INSTANTIATE_OPERATION =
+ "Invalid response from instantiate operation";
+
+ public static final String INVALID_RESPONSEE_FROM_CREATE_OPERATION = "Invalid response from create operation";
+
+ public static final String FAIL_TO_INSTANTIATE_NS = "Fail to instantiate ns";
+
+ public static final String FAIL_TO_CREATE_NS = "Fail to create ns";
+
+ public static final String INVALID_RESPONSE_FROM_TERMINATE_OPERATION = "Invalid response from terminate operation";
+
+ public static final String FAIL_TO_DELETE_NS = "Fail to delete ns";
+
+ public static final String FAIL_TO_TERMINATE_NS = "Fail to terminate ns";
+
+ public static final String JOB_STATUS_ERROR = "Job status error";
+
+ public static final String FAIL_TO_QUERY_JOB_STATUS = "Fail to query job status";
+
+ public static final String FAIL_TO_SCALE_NS = "Fail to scale network service";
+
+ public static final String INVALID_RESPONSE_FROM_SCALE_OPERATION = "Invalid response from scale operation";
+
+
+ private DriverExceptionID() {
+
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/constant/HttpCode.java b/src/main/java/org/onap/so/adapters/vfc/constant/HttpCode.java
new file mode 100644
index 0000000..e08c157
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/constant/HttpCode.java
@@ -0,0 +1,92 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.constant;
+
+/**
+ * Constant Class.<br/>
+ * <p>
+ * Define constant for http operation.
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam 2016/8/4
+ */
+public class HttpCode {
+
+ /**
+ * Fail to request.
+ */
+ public static final int BAD_REQUEST = 400;
+
+ /**
+ * Inner error
+ */
+ public static final int INTERNAL_SERVER_ERROR = 500;
+
+ /**
+ * Not accept request.
+ */
+ public static final int NOT_ACCEPTABLE = 406;
+
+ /**
+ * Not found service.
+ */
+ public static final int NOT_FOUND = 404;
+
+ /**
+ * Accept request.
+ */
+ public static final int RESPOND_ACCEPTED = 202;
+
+ /**
+ * Http response is ok.
+ */
+ public static final int RESPOND_OK = 200;
+
+ public static final int CREATED_OK = 201;
+
+ /**
+ * Conflict
+ */
+ public static final int RESPOND_CONFLICT = 409;
+
+ /**
+ * Constructor<br/>
+ * <p>
+ * </p>
+ *
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ private HttpCode() {
+
+ }
+
+ /**
+ * Whether request is successful.<br/>
+ *
+ * @param httpCode response code
+ * @return true or false
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ public static boolean isSucess(int httpCode) {
+ return httpCode / 100 == 2;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/exceptions/ApplicationException.java b/src/main/java/org/onap/so/adapters/vfc/exceptions/ApplicationException.java
new file mode 100644
index 0000000..88260a7
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/exceptions/ApplicationException.java
@@ -0,0 +1,75 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.exceptions;
+
+import javax.ws.rs.core.Response;
+
+public class ApplicationException extends Exception {
+
+ /**
+ * Serial number.
+ */
+ private static final long serialVersionUID = 1L;
+
+ private int errorCode;
+
+ private String errorMsg;
+
+ /**
+ * Constructor<br/>
+ * <p>
+ * </p>
+ *
+ * @param errorCode error status
+ * @param errorMsg error detail
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ public ApplicationException(int errorCode, String errorMsg) {
+ this.errorCode = errorCode;
+ this.errorMsg = errorMsg;
+ }
+
+ public int getErrorCode() {
+ return errorCode;
+ }
+
+ public void setErrorCode(int errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ public String getErrorMsg() {
+ return errorMsg;
+ }
+
+ public void setErrorMsg(String errorMsg) {
+ this.errorMsg = errorMsg;
+ }
+
+ /**
+ * build error Response <br>
+ *
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ public Response buildErrorResponse() {
+ return Response.status(errorCode).entity(errorMsg).build();
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/AddPnfData.java b/src/main/java/org/onap/so/adapters/vfc/model/AddPnfData.java
new file mode 100644
index 0000000..d312501
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/AddPnfData.java
@@ -0,0 +1,68 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class AddPnfData {
+ private String pnfId;
+ private String pnfName;
+ private String pnfdId;
+ private String pnfProfileId;
+ private List<PnfExtCpData> cpData;
+
+ /***
+ *
+ * @return id of pnf
+ */
+ public String getPnfId() {
+ return pnfId;
+ }
+
+ public void setPnfId(String pnfId) {
+ this.pnfId = pnfId;
+ }
+
+ public String getPnfName() {
+ return pnfName;
+ }
+
+ public void setPnfName(String pnfName) {
+ this.pnfName = pnfName;
+ }
+
+ public String getPnfdId() {
+ return pnfdId;
+ }
+
+ public void setPnfdId(String pnfdId) {
+ this.pnfdId = pnfdId;
+ }
+
+ public String getPnfProfileId() {
+ return pnfProfileId;
+ }
+
+ public void setPnfProfileId(String pnfProfileId) {
+ this.pnfProfileId = pnfProfileId;
+ }
+
+ public List<PnfExtCpData> getCpData() {
+ return cpData;
+ }
+
+ public void setCpData(List<PnfExtCpData> cpData) {
+ this.cpData = cpData;
+ }
+}
+
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/AddressRange.java b/src/main/java/org/onap/so/adapters/vfc/model/AddressRange.java
new file mode 100644
index 0000000..9f357a5
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/AddressRange.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AddressRange {
+ private String minAddress;
+ private String maxAddress;
+
+ public String getMinAddress() {
+ return minAddress;
+ }
+
+ public void setMinAddress(String minAddress) {
+ this.minAddress = minAddress;
+ }
+
+ public String getMaxAddress() {
+ return maxAddress;
+ }
+
+ public void setMaxAddress(String maxAddress) {
+ this.maxAddress = maxAddress;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/AffectedNs.java b/src/main/java/org/onap/so/adapters/vfc/model/AffectedNs.java
new file mode 100644
index 0000000..fa502f3
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/AffectedNs.java
@@ -0,0 +1,40 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedNs {
+ private String nsInstanceId;
+ private String nsdId;
+
+ private enum changeType {
+ ADD, REMOVE, INSTANTIATE, TERMINATE, SCALE, UPDATE, HEAL
+ }
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED, PARTIALLY_COMPLETED
+ }
+
+ public String getNsInstanceId() {
+ return nsInstanceId;
+ }
+
+ public void setNsInstanceId(String nsInstanceId) {
+ this.nsInstanceId = nsInstanceId;
+ }
+
+ public String getNsdId() {
+ return nsdId;
+ }
+
+ public void setNsdId(String nsdId) {
+ this.nsdId = nsdId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/AffectedPnf.java b/src/main/java/org/onap/so/adapters/vfc/model/AffectedPnf.java
new file mode 100644
index 0000000..9d98e1c
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/AffectedPnf.java
@@ -0,0 +1,67 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedPnf {
+ private String pnfid;
+ private String pnfdid;
+ private String pnfProfileId;
+ private String pnfName;
+ private String cpInstanceId;
+
+ private enum changeType {
+ ADD, REMOVE, MODIFY
+ }
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED
+ }
+
+ public String getPnfid() {
+ return pnfid;
+ }
+
+ public void setPnfid(String pnfid) {
+ this.pnfid = pnfid;
+ }
+
+ public String getPnfdid() {
+ return pnfdid;
+ }
+
+ public void setPnfdid(String pnfdid) {
+ this.pnfdid = pnfdid;
+ }
+
+ public String getPnfProfileId() {
+ return pnfProfileId;
+ }
+
+ public void setPnfProfileId(String pnfProfileId) {
+ this.pnfProfileId = pnfProfileId;
+ }
+
+ public String getPnfName() {
+ return pnfName;
+ }
+
+ public void setPnfName(String pnfName) {
+ this.pnfName = pnfName;
+ }
+
+ public String getCpInstanceId() {
+ return cpInstanceId;
+ }
+
+ public void setCpInstanceId(String cpInstanceId) {
+ this.cpInstanceId = cpInstanceId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/AffectedSap.java b/src/main/java/org/onap/so/adapters/vfc/model/AffectedSap.java
new file mode 100644
index 0000000..62f4f92
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/AffectedSap.java
@@ -0,0 +1,49 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedSap {
+ private String sapInstanceId;
+ private String sapdId;
+ private String sapName;
+
+ private enum changeType {
+ ADD, REMOVE, MODIFY
+ }
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED
+ }
+
+ public String getSapInstanceId() {
+ return sapInstanceId;
+ }
+
+ public void setSapInstanceId(String sapInstanceId) {
+ this.sapInstanceId = sapInstanceId;
+ }
+
+ public String getSapdId() {
+ return sapdId;
+ }
+
+ public void setSapdId(String sapdId) {
+ this.sapdId = sapdId;
+ }
+
+ public String getSapName() {
+ return sapName;
+ }
+
+ public void setSapName(String sapName) {
+ this.sapName = sapName;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/AffectedVirtualLink.java b/src/main/java/org/onap/so/adapters/vfc/model/AffectedVirtualLink.java
new file mode 100644
index 0000000..ecaa1c5
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/AffectedVirtualLink.java
@@ -0,0 +1,49 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedVirtualLink {
+ private String nsVirtualLinkInstanceId;
+ private String nsVirtualLinkDescId;
+ private String vlProfileId;
+
+ private enum changeType {
+ ADD, DELETE, MODIFY, ADD_LINK_PORT, REMOVE_LINK_PORT
+ };
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED
+ }
+
+ public String getNsVirtualLinkInstanceId() {
+ return nsVirtualLinkInstanceId;
+ }
+
+ public void setNsVirtualLinkInstanceId(String nsVirtualLinkInstanceId) {
+ this.nsVirtualLinkInstanceId = nsVirtualLinkInstanceId;
+ }
+
+ public String getNsVirtualLinkDescId() {
+ return nsVirtualLinkDescId;
+ }
+
+ public void setNsVirtualLinkDescId(String nsVirtualLinkDescId) {
+ this.nsVirtualLinkDescId = nsVirtualLinkDescId;
+ }
+
+ public String getVlProfileId() {
+ return vlProfileId;
+ }
+
+ public void setVlProfileId(String vlProfileId) {
+ this.vlProfileId = vlProfileId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnf.java b/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnf.java
new file mode 100644
index 0000000..6463c7a
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnf.java
@@ -0,0 +1,78 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedVnf {
+ private String vnfInstanceId;
+ private String vnfdId;
+ private String vnfProfileId;
+ private String vnfName;
+
+ private enum changeType {
+ ADD,
+ REMOVE,
+ INSTANTIATE,
+ TERMINATE,
+ SCALE,
+ CHANGE_FLAVOUR,
+ HEAL,
+ OPERATE,
+ MODIFY_INFORMATION,
+ CHANGE_EXTERNAL_VNF_CONNECTIVITY
+ };
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED
+ }
+
+ private ChangedInfo changedInfo;
+
+
+ public String getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(String vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getVnfdId() {
+ return vnfdId;
+ }
+
+ public void setVnfdId(String vnfdId) {
+ this.vnfdId = vnfdId;
+ }
+
+ public String getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ public void setVnfProfileId(String vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+
+ public String getVnfName() {
+ return vnfName;
+ }
+
+ public void setVnfName(String vnfName) {
+ this.vnfName = vnfName;
+ }
+
+ public ChangedInfo getChangedInfo() {
+ return changedInfo;
+ }
+
+ public void setChangedInfo(ChangedInfo changedInfo) {
+ this.changedInfo = changedInfo;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnffg.java b/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnffg.java
new file mode 100644
index 0000000..04e9481
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/AffectedVnffg.java
@@ -0,0 +1,40 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class AffectedVnffg {
+ private String vnffgInstanceId;
+ private String vnffgdId;
+
+ private enum changeType {
+ ADD, REMOVE, MODIFY
+ }
+ private enum changeResult {
+ COMPLETED, ROLLED_BACK, FAILED
+ }
+
+ public String getVnffgInstanceId() {
+ return vnffgInstanceId;
+ }
+
+ public void setVnffgInstanceId(String vnffgInstanceId) {
+ this.vnffgInstanceId = vnffgInstanceId;
+ }
+
+ public String getVnffgdId() {
+ return vnffgdId;
+ }
+
+ public void setVnffgdId(String vnffgdId) {
+ this.vnffgdId = vnffgdId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRule.java b/src/main/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRule.java
new file mode 100644
index 0000000..7f019bc
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRule.java
@@ -0,0 +1,51 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class AffinityOrAntiAffinityRule {
+ private String vnfdId;
+ private List<String> vnfProfileId;
+ private List<String> vnfInstanceId;
+
+ private enum affinityOrAntiAffiinty {
+ AFFINITY, ANTI_AFFIINTY
+ };
+ private enum scope {
+ NFVI_POP, ZONE, ZONE_GROUP, NFVI_NODE
+ };
+
+ public String getVnfdId() {
+ return vnfdId;
+ }
+
+ public void setVnfdId(String vnfdId) {
+ this.vnfdId = vnfdId;
+ }
+
+ public List<String> getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ public void setVnfProfileId(List<String> vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+
+ public List<String> getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(List<String> vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ChangedInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/ChangedInfo.java
new file mode 100644
index 0000000..5de6cbf
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ChangedInfo.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class ChangedInfo {
+ private ModifyVnfInfoData changedVnfInfo;
+ private ExtVirtualLinkInfo changedExtConnectivity;
+
+ public ModifyVnfInfoData getChangedVnfInfo() {
+ return changedVnfInfo;
+ }
+
+ public void setChangedVnfInfo(ModifyVnfInfoData changedVnfInfo) {
+ this.changedVnfInfo = changedVnfInfo;
+ }
+
+ public ExtVirtualLinkInfo getChangedExtConnectivity() {
+ return changedExtConnectivity;
+ }
+
+ public void setChangedExtConnectivity(ExtVirtualLinkInfo changedExtConnectivity) {
+ this.changedExtConnectivity = changedExtConnectivity;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/CivicAddressElement.java b/src/main/java/org/onap/so/adapters/vfc/model/CivicAddressElement.java
new file mode 100644
index 0000000..2a63d39
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/CivicAddressElement.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class CivicAddressElement {
+ private int caType;
+ private String caValue;
+
+ public int getCaType() {
+ return caType;
+ }
+
+ public void setCaType(int caType) {
+ this.caType = caType;
+ }
+
+ public String getCaValue() {
+ return caValue;
+ }
+
+ public void setCaValue(String caValue) {
+ this.caValue = caValue;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolData.java b/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolData.java
new file mode 100644
index 0000000..27272ea
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolData.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class CpProtocolData {
+ private String layerProtocol;
+ private IpOverEthernetAddressData ipOverEthernet;
+
+ public String getLayerProtocol() {
+ return layerProtocol;
+ }
+
+ public void setLayerProtocol(String layerProtocol) {
+ this.layerProtocol = layerProtocol;
+ }
+
+ public IpOverEthernetAddressData getIpOverEthernet() {
+ return ipOverEthernet;
+ }
+
+ public void setIpOverEthernet(IpOverEthernetAddressData ipOverEthernet) {
+ this.ipOverEthernet = ipOverEthernet;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolInfo.java
new file mode 100644
index 0000000..5f1191e
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/CpProtocolInfo.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class CpProtocolInfo {
+ @NotNull
+ private enum layerProtocol {
+ IP_OVER_ETHERNET
+ };
+
+ private IpOverEthernetAddressData ipOverEthernet;
+
+ public IpOverEthernetAddressData getIpOverEthernet() {
+ return ipOverEthernet;
+ }
+
+ public void setIpOverEthernet(IpOverEthernetAddressData ipOverEthernet) {
+ this.ipOverEthernet = ipOverEthernet;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/CreateNsRequest.java b/src/main/java/org/onap/so/adapters/vfc/model/CreateNsRequest.java
new file mode 100644
index 0000000..878ce60
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/CreateNsRequest.java
@@ -0,0 +1,53 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class CreateNsRequest {
+
+ String nsdId;
+
+ String nsName;
+
+ String nsDescription;
+
+
+ public String getNsdId() {
+ return nsdId;
+ }
+
+ public void setNsdId(String nsdId) {
+ this.nsdId = nsdId;
+ }
+
+ public String getNsDescription() {
+ return nsDescription;
+ }
+
+ public void setNsDescription(String nsDescription) {
+ this.nsDescription = nsDescription;
+ }
+
+ /**
+ * @return Returns the nsName.
+ */
+ public String getNsName() {
+ return nsName;
+ }
+
+ /**
+ * @param nsName The nsName to set.
+ */
+ public void setNsName(String nsName) {
+ this.nsName = nsName;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/CustomerModel.java b/src/main/java/org/onap/so/adapters/vfc/model/CustomerModel.java
new file mode 100644
index 0000000..e54f0df
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/CustomerModel.java
@@ -0,0 +1,69 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+/**
+ * The Customer Model <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-10-12
+ */
+public class CustomerModel {
+
+ String globalCustomerId;
+
+ String serviceType;
+
+
+ /**
+ * @return Returns the globalCustomerId.
+ */
+ public String getGlobalCustomerId() {
+ return globalCustomerId;
+ }
+
+
+ /**
+ * @param globalCustomerId The globalCustomerId to set.
+ */
+ public void setGlobalCustomerId(String globalCustomerId) {
+ this.globalCustomerId = globalCustomerId;
+ }
+
+
+ /**
+ * @return Returns the serviceType.
+ */
+ public String getServiceType() {
+ return serviceType;
+ }
+
+
+ /**
+ * @param serviceType The serviceType to set.
+ */
+ public void setServiceType(String serviceType) {
+ this.serviceType = serviceType;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ExtCpInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/ExtCpInfo.java
new file mode 100644
index 0000000..63ca66b
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ExtCpInfo.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class ExtCpInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String cpdId;
+ private List<CpProtocolData> cpProtocolInfo;
+ private List<String> extLinkPortId;
+
+
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfo.java
new file mode 100644
index 0000000..a1ab3fd
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfo.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class ExtLinkPortInfo {
+ private String id;
+ private ResourceHandle resourceHandle;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ResourceHandle getResourceHandle() {
+ return resourceHandle;
+ }
+
+ public void setResourceHandle(ResourceHandle resourceHandle) {
+ this.resourceHandle = resourceHandle;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ExtManagedVirtualLinkInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/ExtManagedVirtualLinkInfo.java
new file mode 100644
index 0000000..3f643a8
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ExtManagedVirtualLinkInfo.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class ExtManagedVirtualLinkInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String vnfVirtualLinkDescId;
+ @NotNull
+ private ResourceHandle networkResource;
+ private List<VnfLinkPortInfo> vnfLinkPorts;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVnfVirtualLinkDescId() {
+ return vnfVirtualLinkDescId;
+ }
+
+ public void setVnfVirtualLinkDescId(String vnfVirtualLinkDescId) {
+ this.vnfVirtualLinkDescId = vnfVirtualLinkDescId;
+ }
+
+ public ResourceHandle getNetworkResource() {
+ return networkResource;
+ }
+
+ public void setNetworkResource(ResourceHandle networkResource) {
+ this.networkResource = networkResource;
+ }
+
+ public List<VnfLinkPortInfo> getVnfLinkPorts() {
+ return vnfLinkPorts;
+ }
+
+ public void setVnfLinkPorts(List<VnfLinkPortInfo> vnfLinkPorts) {
+ this.vnfLinkPorts = vnfLinkPorts;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfo.java
new file mode 100644
index 0000000..ce7d1cf
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfo.java
@@ -0,0 +1,42 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class ExtVirtualLinkInfo {
+ private String id;
+ private ResourceHandle resourceHandle;
+ private ExtLinkPortInfo extLinkPorts;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ResourceHandle getResourceHandle() {
+ return resourceHandle;
+ }
+
+ public void setResourceHandle(ResourceHandle resourceHandle) {
+ this.resourceHandle = resourceHandle;
+ }
+
+ public ExtLinkPortInfo getExtLinkPorts() {
+ return extLinkPorts;
+ }
+
+ public void setExtLinkPorts(ExtLinkPortInfo extLinkPorts) {
+ this.extLinkPorts = extLinkPorts;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/InstantiateNsRequest.java b/src/main/java/org/onap/so/adapters/vfc/model/InstantiateNsRequest.java
new file mode 100644
index 0000000..ff0730a
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/InstantiateNsRequest.java
@@ -0,0 +1,207 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+import java.util.Map;
+
+public class InstantiateNsRequest {
+
+ private String nsFlavourId;
+ private List<SapData> sapData;
+ private List<AddPnfData> addpnfData;
+ private List<VnfInstanceData> vnfInstanceData;
+ private List<String> nestedNsInstanceId;
+ private List<VnfLocationConstraint> localizationLanguage;
+ private Map<String, Object> aditionalParamsForNs;
+ private List<ParamsForVnf> additionalParamsForVnf;
+ private String startTime;
+ private String nsInstantiationLevelId;
+ private List<AffinityOrAntiAffinityRule> additionalAffinityOrAntiAffiniityRule;
+
+ /***
+ *
+ * @return nsFlavourId
+ */
+ public String getNsFlavourId() {
+ return nsFlavourId;
+ }
+
+ /***
+ *
+ * @param nsFlavourId
+ */
+ public void setNsFlavourId(String nsFlavourId) {
+ this.nsFlavourId = nsFlavourId;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<SapData> getSapData() {
+ return sapData;
+ }
+
+ /***
+ *
+ * @param sapData
+ */
+ public void setSapData(List<SapData> sapData) {
+ this.sapData = sapData;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<AddPnfData> getAddpnfData() {
+ return addpnfData;
+ }
+
+ /***
+ *
+ * @param addpnfData
+ */
+ public void setAddpnfData(List<AddPnfData> addpnfData) {
+ this.addpnfData = addpnfData;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<VnfInstanceData> getVnfInstanceData() {
+ return vnfInstanceData;
+ }
+
+ /***
+ *
+ * @param vnfInstanceData
+ */
+ public void setVnfInstanceData(List<VnfInstanceData> vnfInstanceData) {
+ this.vnfInstanceData = vnfInstanceData;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<String> getNestedNsInstanceId() {
+ return nestedNsInstanceId;
+ }
+
+ /***
+ *
+ * @param nestedNsInstanceId
+ */
+ public void setNestedNsInstanceId(List<String> nestedNsInstanceId) {
+ this.nestedNsInstanceId = nestedNsInstanceId;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<VnfLocationConstraint> getLocalizationLanguage() {
+ return localizationLanguage;
+ }
+
+ /***
+ *
+ * @param localizationLanguage
+ */
+ public void setLocalizationLanguage(List<VnfLocationConstraint> localizationLanguage) {
+ this.localizationLanguage = localizationLanguage;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public Map<String, Object> getAditionalParamsForNs() {
+ return aditionalParamsForNs;
+ }
+
+ /***
+ *
+ * @param aditionalParamsForNs
+ */
+ public void setAditionalParamsForNs(Map<String, Object> aditionalParamsForNs) {
+ this.aditionalParamsForNs = aditionalParamsForNs;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<ParamsForVnf> getAdditionalParamsForVnf() {
+ return additionalParamsForVnf;
+ }
+
+ /***
+ *
+ * @param additionalParamsForVnf
+ */
+ public void setAdditionalParamsForVnf(List<ParamsForVnf> additionalParamsForVnf) {
+ this.additionalParamsForVnf = additionalParamsForVnf;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public String getStartTime() {
+ return startTime;
+ }
+
+ /***
+ *
+ * @param startTime
+ */
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public String getNsInstantiationLevelId() {
+ return nsInstantiationLevelId;
+ }
+
+ /***
+ *
+ * @param nsInstantiationLevelId
+ */
+ public void setNsInstantiationLevelId(String nsInstantiationLevelId) {
+ this.nsInstantiationLevelId = nsInstantiationLevelId;
+ }
+
+ /***
+ *
+ * @return
+ */
+ public List<AffinityOrAntiAffinityRule> getAdditionalAffinityOrAntiAffiniityRule() {
+ return additionalAffinityOrAntiAffiniityRule;
+ }
+
+ /***
+ *
+ * @param additionalAffinityOrAntiAffiniityRule
+ */
+ public void setAdditionalAffinityOrAntiAffiniityRule(
+ List<AffinityOrAntiAffinityRule> additionalAffinityOrAntiAffiniityRule) {
+ this.additionalAffinityOrAntiAffiniityRule = additionalAffinityOrAntiAffiniityRule;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/InstantiatedVnfInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/InstantiatedVnfInfo.java
new file mode 100644
index 0000000..e66bb90
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/InstantiatedVnfInfo.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class InstantiatedVnfInfo {
+ @NotNull
+ private String flavourId;
+ @NotNull
+ private String vnfState;
+ private List<VnfScaleInfo> vnfScaleInfos;
+ @NotNull
+ private List<ExtCpInfo> extCpInfo;
+ private List<ExtVirtualLinkInfo> extVirtualLinkInfo;
+ private List<ExtManagedVirtualLinkInfo> extManagedVirtualLinkInfo;
+ // Defination of MonitoringParameter is not there in ETSI document
+ // considering as String
+ private List<String> monitoringParameters;
+ private String localizationLanguage;
+
+ private List<VnfcResourceInfo> vnfcResourceInfo;
+ // Defination of VirtualStorageResourceInfo is not there in ETSI document
+ // considering as String
+ private List<String> virtualStorageResourceInfo;
+
+ public String getFlavourId() {
+ return flavourId;
+ }
+
+ public void setFlavourId(String flavourId) {
+ this.flavourId = flavourId;
+ }
+
+ public String getVnfState() {
+ return vnfState;
+ }
+
+ public void setVnfState(String vnfState) {
+ this.vnfState = vnfState;
+ }
+
+ public List<VnfScaleInfo> getVnfScaleInfos() {
+ return vnfScaleInfos;
+ }
+
+ public void setVnfScaleInfos(List<VnfScaleInfo> vnfScaleInfos) {
+ this.vnfScaleInfos = vnfScaleInfos;
+ }
+
+ public List<ExtCpInfo> getExtCpInfo() {
+ return extCpInfo;
+ }
+
+ public void setExtCpInfo(List<ExtCpInfo> extCpInfo) {
+ this.extCpInfo = extCpInfo;
+ }
+
+ public List<ExtVirtualLinkInfo> getExtVirtualLinkInfo() {
+ return extVirtualLinkInfo;
+ }
+
+ public void setExtVirtualLinkInfo(List<ExtVirtualLinkInfo> extVirtualLinkInfo) {
+ this.extVirtualLinkInfo = extVirtualLinkInfo;
+ }
+
+ public List<ExtManagedVirtualLinkInfo> getExtManagedVirtualLinkInfo() {
+ return extManagedVirtualLinkInfo;
+ }
+
+ public void setExtManagedVirtualLinkInfo(List<ExtManagedVirtualLinkInfo> extManagedVirtualLinkInfo) {
+ this.extManagedVirtualLinkInfo = extManagedVirtualLinkInfo;
+ }
+
+ public List<String> getMonitoringParameters() {
+ return monitoringParameters;
+ }
+
+ public void setMonitoringParameters(List<String> monitoringParameters) {
+ this.monitoringParameters = monitoringParameters;
+ }
+
+ public String getLocalizationLanguage() {
+ return localizationLanguage;
+ }
+
+ public void setLocalizationLanguage(String localizationLanguage) {
+ this.localizationLanguage = localizationLanguage;
+ }
+
+ public List<VnfcResourceInfo> getVnfcResourceInfo() {
+ return vnfcResourceInfo;
+ }
+
+ public void setVnfcResourceInfo(List<VnfcResourceInfo> vnfcResourceInfo) {
+ this.vnfcResourceInfo = vnfcResourceInfo;
+ }
+
+ public List<String> getVirtualStorageResourceInfo() {
+ return virtualStorageResourceInfo;
+ }
+
+ public void setVirtualStorageResourceInfo(List<String> virtualStorageResourceInfo) {
+ this.virtualStorageResourceInfo = virtualStorageResourceInfo;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/IpAddresses.java b/src/main/java/org/onap/so/adapters/vfc/model/IpAddresses.java
new file mode 100644
index 0000000..32c5571
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/IpAddresses.java
@@ -0,0 +1,63 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class IpAddresses {
+ private String type;
+ private List<String> fixedAddresses;
+ private int numDynamicAddresses;
+ private AddressRange addressRange;
+ private String subnetId;
+
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public List<String> getFixedAddresses() {
+ return fixedAddresses;
+ }
+
+ public void setFixedAddresses(List<String> fixedAddresses) {
+ this.fixedAddresses = fixedAddresses;
+ }
+
+ public int getNumDynamicAddresses() {
+ return numDynamicAddresses;
+ }
+
+ public void setNumDynamicAddresses(int numDynamicAddresses) {
+ this.numDynamicAddresses = numDynamicAddresses;
+ }
+
+ public AddressRange getAddressRange() {
+ return addressRange;
+ }
+
+ public void setAddressRange(AddressRange addressRange) {
+ this.addressRange = addressRange;
+ }
+
+ public String getSubnetId() {
+ return subnetId;
+ }
+
+ public void setSubnetId(String subnetId) {
+ this.subnetId = subnetId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressData.java b/src/main/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressData.java
new file mode 100644
index 0000000..48529e5
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressData.java
@@ -0,0 +1,35 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class IpOverEthernetAddressData {
+ private String macAddress;
+ private List<IpAddresses> ipAddresses;
+
+ public String getMacAddress() {
+ return macAddress;
+ }
+
+ public void setMacAddress(String macAddress) {
+ this.macAddress = macAddress;
+ }
+
+ public List<IpAddresses> getIpAddresses() {
+ return ipAddresses;
+ }
+
+ public void setIpAddresses(List<IpAddresses> ipAddresses) {
+ this.ipAddresses = ipAddresses;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/Link.java b/src/main/java/org/onap/so/adapters/vfc/model/Link.java
new file mode 100644
index 0000000..2459346
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/Link.java
@@ -0,0 +1,24 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class Link {
+ private String href;
+
+ public String getHref() {
+ return href;
+ }
+
+ public void setHref(String href) {
+ this.href = href;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/Links.java b/src/main/java/org/onap/so/adapters/vfc/model/Links.java
new file mode 100644
index 0000000..8ad8f00
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/Links.java
@@ -0,0 +1,78 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class Links {
+ private Link self;
+ private Link nsInstance;
+ private Link cancel;
+ private Link retry;
+ private Link rollback;
+ private Link continues;
+ private Link fail;
+
+ public Link getSelf() {
+ return self;
+ }
+
+ public void setSelf(Link self) {
+ this.self = self;
+ }
+
+ public Link getNsInstance() {
+ return nsInstance;
+ }
+
+ public void setNsInstance(Link nsInstance) {
+ this.nsInstance = nsInstance;
+ }
+
+ public Link getCancel() {
+ return cancel;
+ }
+
+ public void setCancel(Link cancel) {
+ this.cancel = cancel;
+ }
+
+ public Link getRetry() {
+ return retry;
+ }
+
+ public void setRetry(Link retry) {
+ this.retry = retry;
+ }
+
+ public Link getRollback() {
+ return rollback;
+ }
+
+ public void setRollback(Link rollback) {
+ this.rollback = rollback;
+ }
+
+ public Link getContinues() {
+ return continues;
+ }
+
+ public void setContinues(Link continues) {
+ this.continues = continues;
+ }
+
+ public Link getFail() {
+ return fail;
+ }
+
+ public void setFail(Link fail) {
+ this.fail = fail;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/LocationConstraint.java b/src/main/java/org/onap/so/adapters/vfc/model/LocationConstraint.java
new file mode 100644
index 0000000..b79565d
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/LocationConstraint.java
@@ -0,0 +1,73 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+/**
+ * <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-9-6
+ */
+public class LocationConstraint {
+
+ /**
+ * vnf profile id
+ */
+ private String vnfProfileId;
+
+ /**
+ * location constraints: vimId
+ */
+ private VimLocation locationConstraints;
+
+ /**
+ * @return Returns the vnfProfileId.
+ */
+ public String getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ /**
+ * @param vnfProfileId The vnfProfileId to set.
+ */
+ public void setVnfProfileId(String vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+
+
+ /**
+ * @return Returns the locationConstraints.
+ */
+ public VimLocation getLocationConstraints() {
+ return locationConstraints;
+ }
+
+
+ /**
+ * @param locationConstraints The locationConstraints to set.
+ */
+ public void setLocationConstraints(VimLocation locationConstraints) {
+ this.locationConstraints = locationConstraints;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/LocationConstraints.java b/src/main/java/org/onap/so/adapters/vfc/model/LocationConstraints.java
new file mode 100644
index 0000000..b636d49
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/LocationConstraints.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class LocationConstraints {
+ private String countryCode;
+ private CivicAddressElement civicAddressElement;
+
+ public String getCountryCode() {
+ return countryCode;
+ }
+
+ public void setCountryCode(String countryCode) {
+ this.countryCode = countryCode;
+ }
+
+ public CivicAddressElement getCivicAddressElement() {
+ return civicAddressElement;
+ }
+
+ public void setCivicAddressElement(CivicAddressElement civicAddressElement) {
+ this.civicAddressElement = civicAddressElement;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/Mask.java b/src/main/java/org/onap/so/adapters/vfc/model/Mask.java
new file mode 100644
index 0000000..352f47e
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/Mask.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class Mask {
+ @NotNull
+ private int startingPoint;
+ @NotNull
+ private int length;
+ @NotNull
+ private String value;
+
+ public int getStartingPoint() {
+ return startingPoint;
+ }
+
+ public void setStartingPoint(int startingPoint) {
+ this.startingPoint = startingPoint;
+ }
+
+ public int getLength() {
+ return length;
+ }
+
+ public void setLength(int length) {
+ this.length = length;
+ }
+
+ public String getValue() {
+ return value;
+ }
+
+ public void setValue(String value) {
+ this.value = value;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoData.java b/src/main/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoData.java
new file mode 100644
index 0000000..55ab21e
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoData.java
@@ -0,0 +1,80 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.Map;
+
+public class ModifyVnfInfoData {
+ private String vnfInstanceId;
+ private String vnfInstanceName;
+ private String vnfInstanceDescription;
+ private String vnfPkgId;
+ private Map<String, Object> vnfConfigurableProperties;
+ private Map<String, Object> Metadata;
+ private Map<String, Object> Extensions;
+
+ public String getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(String vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getVnfInstanceName() {
+ return vnfInstanceName;
+ }
+
+ public void setVnfInstanceName(String vnfInstanceName) {
+ this.vnfInstanceName = vnfInstanceName;
+ }
+
+ public String getVnfInstanceDescription() {
+ return vnfInstanceDescription;
+ }
+
+ public void setVnfInstanceDescription(String vnfInstanceDescription) {
+ this.vnfInstanceDescription = vnfInstanceDescription;
+ }
+
+ public String getVnfPkgId() {
+ return vnfPkgId;
+ }
+
+ public void setVnfPkgId(String vnfPkgId) {
+ this.vnfPkgId = vnfPkgId;
+ }
+
+ public Map<String, Object> getVnfConfigurableProperties() {
+ return vnfConfigurableProperties;
+ }
+
+ public void setVnfConfigurableProperties(Map<String, Object> vnfConfigurableProperties) {
+ this.vnfConfigurableProperties = vnfConfigurableProperties;
+ }
+
+ public Map<String, Object> getMetadata() {
+ return Metadata;
+ }
+
+ public void setMetadata(Map<String, Object> metadata) {
+ Metadata = metadata;
+ }
+
+ public Map<String, Object> getExtensions() {
+ return Extensions;
+ }
+
+ public void setExtensions(Map<String, Object> extensions) {
+ Extensions = extensions;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NSResourceInputParameter.java b/src/main/java/org/onap/so/adapters/vfc/model/NSResourceInputParameter.java
new file mode 100644
index 0000000..266e5ee
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NSResourceInputParameter.java
@@ -0,0 +1,154 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * Copyright (C) 2018 CMCC All rights reserved.
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.io.ByteArrayOutputStream;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.Marshaller;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.fasterxml.jackson.databind.SerializationFeature;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * NS Create Input Parameter For VFC Adapter<br>
+ * <p>
+ * </p>
+ *
+ * @version ONAP Amsterdam Release 2017/1/7
+ */
+public class NSResourceInputParameter {
+
+ private static final Logger logger = LoggerFactory.getLogger(NSResourceInputParameter.class);
+
+ private NsOperationKey nsOperationKey;
+
+ private String nsServiceName;
+
+ private String nsServiceDescription;
+
+ private String nsServiceModelUUID;
+
+ private NsParameters nsParameters;
+
+ private NsScaleParameters nsScaleParameters;
+
+
+ /**
+ * @return Returns the nsServiceName.
+ */
+ public String getNsServiceName() {
+ return nsServiceName;
+ }
+
+
+ /**
+ * @param nsServiceName The nsServiceName to set.
+ */
+ public void setNsServiceName(String nsServiceName) {
+ this.nsServiceName = nsServiceName;
+ }
+
+
+ /**
+ * @return Returns the nsServiceDescription.
+ */
+ public String getNsServiceDescription() {
+ return nsServiceDescription;
+ }
+
+
+ /**
+ * @param nsServiceDescription The nsServiceDescription to set.
+ */
+ public void setNsServiceDescription(String nsServiceDescription) {
+ this.nsServiceDescription = nsServiceDescription;
+ }
+
+ /**
+ * @return Returns the nsParameters.
+ */
+ public NsParameters getNsParameters() {
+ return nsParameters;
+ }
+
+ /**
+ * @param nsParameters The nsParameters to set.
+ */
+ public void setNsParameters(NsParameters nsParameters) {
+ this.nsParameters = nsParameters;
+ }
+
+ public NsOperationKey getNsOperationKey() {
+ return nsOperationKey;
+ }
+
+ public void setNsOperationKey(NsOperationKey nsOperationKey) {
+ this.nsOperationKey = nsOperationKey;
+ }
+
+ public String toJsonString() {
+ String jsonString = null;
+ try {
+ ObjectMapper mapper = new ObjectMapper();
+ mapper.enable(SerializationFeature.WRAP_ROOT_VALUE);
+ jsonString = mapper.writeValueAsString(this);
+ } catch (Exception e) {
+ logger.debug("Exception:", e);
+ }
+ return jsonString;
+ }
+
+ public String toXmlString() {
+ try {
+ ByteArrayOutputStream bs = new ByteArrayOutputStream();
+ JAXBContext context = JAXBContext.newInstance(this.getClass());
+ Marshaller marshaller = context.createMarshaller();
+ marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true); // pretty print XML
+ marshaller.marshal(this, bs);
+ return bs.toString();
+ } catch (Exception e) {
+ logger.debug("Exception:", e);
+ return "";
+ }
+ }
+
+ public NsScaleParameters getNsScaleParameters() {
+ return nsScaleParameters;
+ }
+
+ public void setNsScaleParameters(NsScaleParameters nsScaleParameters) {
+ this.nsScaleParameters = nsScaleParameters;
+ }
+
+
+ public String getNsServiceModelUUID() {
+ return nsServiceModelUUID;
+ }
+
+
+ public void setNsServiceModelUUID(String nsServiceModelUUID) {
+ this.nsServiceModelUUID = nsServiceModelUUID;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NfpInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/NfpInfo.java
new file mode 100644
index 0000000..a6e3963
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NfpInfo.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class NfpInfo {
+ @NotNull
+ private String id;
+ private String nfpdId;
+ private String nfpName;
+ private String description;
+ @NotNull
+ private List<NsCpHandle> nscpHandle;
+ private int totalCp;
+ @NotNull
+ private NfpRule nfpRule;
+
+ @NotNull
+ private enum nfpState {
+ ENABLED, DISABLED
+ };
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getNfpdId() {
+ return nfpdId;
+ }
+
+ public void setNfpdId(String nfpdId) {
+ this.nfpdId = nfpdId;
+ }
+
+ public String getNfpName() {
+ return nfpName;
+ }
+
+ public void setNfpName(String nfpName) {
+ this.nfpName = nfpName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<NsCpHandle> getNscpHandle() {
+ return nscpHandle;
+ }
+
+ public void setNscpHandle(List<NsCpHandle> nscpHandle) {
+ this.nscpHandle = nscpHandle;
+ }
+
+ public int getTotalCp() {
+ return totalCp;
+ }
+
+ public void setTotalCp(int totalCp) {
+ this.totalCp = totalCp;
+ }
+
+ public NfpRule getNfpRule() {
+ return nfpRule;
+ }
+
+ public void setNfpRule(NfpRule nfpRule) {
+ this.nfpRule = nfpRule;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NfpRule.java b/src/main/java/org/onap/so/adapters/vfc/model/NfpRule.java
new file mode 100644
index 0000000..b4f684a
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NfpRule.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class NfpRule {
+ private String etherDestinationAddress;
+ private String etherSourceAddress;
+
+ private enum etherType {
+ IPV4, IPV6
+ };
+
+ private List<String> vlanTag;
+
+ private enum protocol {
+ TCP, UDP, ICMP
+ }
+
+ private String dscp;
+ private PortRange sourcePortRange;
+ private PortRange destinationPortRange;
+ private String sourceIpAddressPrefix;
+ private String destinationIpAddressPrefix;
+ private List<Mask> extendedCriteria;
+
+ public String getEtherDestinationAddress() {
+ return etherDestinationAddress;
+ }
+
+ public void setEtherDestinationAddress(String etherDestinationAddress) {
+ this.etherDestinationAddress = etherDestinationAddress;
+ }
+
+ public String getEtherSourceAddress() {
+ return etherSourceAddress;
+ }
+
+ public void setEtherSourceAddress(String etherSourceAddress) {
+ this.etherSourceAddress = etherSourceAddress;
+ }
+
+ public List<String> getVlanTag() {
+ return vlanTag;
+ }
+
+ public void setVlanTag(List<String> vlanTag) {
+ this.vlanTag = vlanTag;
+ }
+
+ public String getDscp() {
+ return dscp;
+ }
+
+ public void setDscp(String dscp) {
+ this.dscp = dscp;
+ }
+
+ public PortRange getSourcePortRange() {
+ return sourcePortRange;
+ }
+
+ public void setSourcePortRange(PortRange sourcePortRange) {
+ this.sourcePortRange = sourcePortRange;
+ }
+
+ public PortRange getDestinationPortRange() {
+ return destinationPortRange;
+ }
+
+ public void setDestinationPortRange(PortRange destinationPortRange) {
+ this.destinationPortRange = destinationPortRange;
+ }
+
+ public String getSourceIpAddressPrefix() {
+ return sourceIpAddressPrefix;
+ }
+
+ public void setSourceIpAddressPrefix(String sourceIpAddressPrefix) {
+ this.sourceIpAddressPrefix = sourceIpAddressPrefix;
+ }
+
+ public String getDestinationIpAddressPrefix() {
+ return destinationIpAddressPrefix;
+ }
+
+ public void setDestinationIpAddressPrefix(String destinationIpAddressPrefix) {
+ this.destinationIpAddressPrefix = destinationIpAddressPrefix;
+ }
+
+ public List<Mask> getExtendedCriteria() {
+ return extendedCriteria;
+ }
+
+ public void setExtendedCriteria(List<Mask> extendedCriteria) {
+ this.extendedCriteria = extendedCriteria;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsCpHandle.java b/src/main/java/org/onap/so/adapters/vfc/model/NsCpHandle.java
new file mode 100644
index 0000000..326488f
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsCpHandle.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class NsCpHandle {
+ private String vnfInstanceId;
+ private String vnfExtCpInstanceId;
+ private String pnfInfoId;
+ private String pnfExtCpInstanceId;
+ private String nsInstanceId;
+ private String nsSapInstanceId;
+
+ public String getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(String vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getVnfExtCpInstanceId() {
+ return vnfExtCpInstanceId;
+ }
+
+ public void setVnfExtCpInstanceId(String vnfExtCpInstanceId) {
+ this.vnfExtCpInstanceId = vnfExtCpInstanceId;
+ }
+
+ public String getPnfInfoId() {
+ return pnfInfoId;
+ }
+
+ public void setPnfInfoId(String pnfInfoId) {
+ this.pnfInfoId = pnfInfoId;
+ }
+
+ public String getPnfExtCpInstanceId() {
+ return pnfExtCpInstanceId;
+ }
+
+ public void setPnfExtCpInstanceId(String pnfExtCpInstanceId) {
+ this.pnfExtCpInstanceId = pnfExtCpInstanceId;
+ }
+
+ public String getNsInstanceId() {
+ return nsInstanceId;
+ }
+
+ public void setNsInstanceId(String nsInstanceId) {
+ this.nsInstanceId = nsInstanceId;
+ }
+
+ public String getNsSapInstanceId() {
+ return nsSapInstanceId;
+ }
+
+ public void setNsSapInstanceId(String nsSapInstanceId) {
+ this.nsSapInstanceId = nsSapInstanceId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsCreateReq.java b/src/main/java/org/onap/so/adapters/vfc/model/NsCreateReq.java
new file mode 100644
index 0000000..63358cb
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsCreateReq.java
@@ -0,0 +1,102 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+/**
+ * Network Service Request<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Sep 2, 2016
+ */
+public class NsCreateReq {
+
+ CustomerModel context;
+
+ String csarId;
+
+ String nsName;
+
+ String description;
+
+
+ /**
+ * @return Returns the context.
+ */
+ public CustomerModel getContext() {
+ return context;
+ }
+
+
+
+ /**
+ * @param context The context to set.
+ */
+ public void setContext(CustomerModel context) {
+ this.context = context;
+ }
+
+
+ /**
+ * @return Returns the csarId.
+ */
+ public String getCsarId() {
+ return csarId;
+ }
+
+
+ /**
+ * @param csarId The csarId to set.
+ */
+ public void setCsarId(String csarId) {
+ this.csarId = csarId;
+ }
+
+ /**
+ * @return Returns the nsName.
+ */
+ public String getNsName() {
+ return nsName;
+ }
+
+ /**
+ * @param nsName The nsName to set.
+ */
+ public void setNsName(String nsName) {
+ this.nsName = nsName;
+ }
+
+ /**
+ * @return Returns the description.
+ */
+ public String getDescription() {
+ return description;
+ }
+
+ /**
+ * @param description The description to set.
+ */
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsInstance.java b/src/main/java/org/onap/so/adapters/vfc/model/NsInstance.java
new file mode 100644
index 0000000..d2d4b4e
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsInstance.java
@@ -0,0 +1,166 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class NsInstance {
+ @NotNull
+ private String id;
+ @NotNull
+ private String nsInstanceName;
+ @NotNull
+ private String nsInstanceDescription;
+ @NotNull
+ private String nsdId;
+ @NotNull
+ private String nsdInfoId;
+ private String flavourId;
+ private List<VnfInstance> vnfInstance;
+ private List<PnfInfo> pnfInfo;
+ private List<NsVirtualLinkInfo> virtualLinkInfo;
+ private List<VnffgInfo> vnffgInfo;
+ private List<SapInfo> sapInfo;
+ private List<String> nestedNsInstanceId;
+
+ @NotNull
+ private enum nsState {
+ NOT_INSTANTIATED, INSTANTIATED
+ };
+
+ private List<NsScaleInfo> nsScaleStatus;
+ private List<AffinityOrAntiAffinityRule> additionalAffinityOrAntiAffinityRule;
+ @NotNull
+ private NsInstanceLinks _links;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getNsInstanceName() {
+ return nsInstanceName;
+ }
+
+ public void setNsInstanceName(String nsInstanceName) {
+ this.nsInstanceName = nsInstanceName;
+ }
+
+ public String getNsInstanceDescription() {
+ return nsInstanceDescription;
+ }
+
+ public void setNsInstanceDescription(String nsInstanceDescription) {
+ this.nsInstanceDescription = nsInstanceDescription;
+ }
+
+ public String getNsdId() {
+ return nsdId;
+ }
+
+ public void setNsdId(String nsdId) {
+ this.nsdId = nsdId;
+ }
+
+ public String getNsdInfoId() {
+ return nsdInfoId;
+ }
+
+ public void setNsdInfoId(String nsdInfoId) {
+ this.nsdInfoId = nsdInfoId;
+ }
+
+ public String getFlavourId() {
+ return flavourId;
+ }
+
+ public void setFlavourId(String flavourId) {
+ this.flavourId = flavourId;
+ }
+
+ public List<VnfInstance> getVnfInstance() {
+ return vnfInstance;
+ }
+
+ public void setVnfInstance(List<VnfInstance> vnfInstance) {
+ this.vnfInstance = vnfInstance;
+ }
+
+ public List<PnfInfo> getPnfInfo() {
+ return pnfInfo;
+ }
+
+ public void setPnfInfo(List<PnfInfo> pnfInfo) {
+ this.pnfInfo = pnfInfo;
+ }
+
+ public List<NsVirtualLinkInfo> getVirtualLinkInfo() {
+ return virtualLinkInfo;
+ }
+
+ public void setVirtualLinkInfo(List<NsVirtualLinkInfo> virtualLinkInfo) {
+ this.virtualLinkInfo = virtualLinkInfo;
+ }
+
+ public List<VnffgInfo> getVnffgInfo() {
+ return vnffgInfo;
+ }
+
+ public void setVnffgInfo(List<VnffgInfo> vnffgInfo) {
+ this.vnffgInfo = vnffgInfo;
+ }
+
+ public List<SapInfo> getSapInfo() {
+ return sapInfo;
+ }
+
+ public void setSapInfo(List<SapInfo> sapInfo) {
+ this.sapInfo = sapInfo;
+ }
+
+ public List<String> getNestedNsInstanceId() {
+ return nestedNsInstanceId;
+ }
+
+ public void setNestedNsInstanceId(List<String> nestedNsInstanceId) {
+ this.nestedNsInstanceId = nestedNsInstanceId;
+ }
+
+ public List<NsScaleInfo> getNsScaleStatus() {
+ return nsScaleStatus;
+ }
+
+ public void setNsScaleStatus(List<NsScaleInfo> nsScaleStatus) {
+ this.nsScaleStatus = nsScaleStatus;
+ }
+
+ public List<AffinityOrAntiAffinityRule> getAdditionalAffinityOrAntiAffinityRule() {
+ return additionalAffinityOrAntiAffinityRule;
+ }
+
+ public void setAdditionalAffinityOrAntiAffinityRule(
+ List<AffinityOrAntiAffinityRule> additionalAffinityOrAntiAffinityRule) {
+ this.additionalAffinityOrAntiAffinityRule = additionalAffinityOrAntiAffinityRule;
+ }
+
+ public NsInstanceLinks get_links() {
+ return _links;
+ }
+
+ public void set_links(NsInstanceLinks _links) {
+ this._links = _links;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsInstanceLinks.java b/src/main/java/org/onap/so/adapters/vfc/model/NsInstanceLinks.java
new file mode 100644
index 0000000..08b3c63
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsInstanceLinks.java
@@ -0,0 +1,82 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class NsInstanceLinks {
+ @NotNull
+ private Link self;
+ private List<Link> nestedNsInstances;
+ private Link instantiate;
+ private Link terminate;
+ private Link update;
+ private Link scale;
+ private Link heal;
+
+ public Link getSelf() {
+ return self;
+ }
+
+ public void setSelf(Link self) {
+ this.self = self;
+ }
+
+ public List<Link> getNestedNsInstances() {
+ return nestedNsInstances;
+ }
+
+ public void setNestedNsInstances(List<Link> nestedNsInstances) {
+ this.nestedNsInstances = nestedNsInstances;
+ }
+
+ public Link getInstantiate() {
+ return instantiate;
+ }
+
+ public void setInstantiate(Link instantiate) {
+ this.instantiate = instantiate;
+ }
+
+ public Link getTerminate() {
+ return terminate;
+ }
+
+ public void setTerminate(Link terminate) {
+ this.terminate = terminate;
+ }
+
+ public Link getUpdate() {
+ return update;
+ }
+
+ public void setUpdate(Link update) {
+ this.update = update;
+ }
+
+ public Link getScale() {
+ return scale;
+ }
+
+ public void setScale(Link scale) {
+ this.scale = scale;
+ }
+
+ public Link getHeal() {
+ return heal;
+ }
+
+ public void setHeal(Link heal) {
+ this.heal = heal;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsInstantiateReq.java b/src/main/java/org/onap/so/adapters/vfc/model/NsInstantiateReq.java
new file mode 100644
index 0000000..4281026
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsInstantiateReq.java
@@ -0,0 +1,50 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+/**
+ * <br>
+ * <p>
+ * </p>
+ * request model for instatiate
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-9-6
+ */
+public class NsInstantiateReq extends NsParameters {
+
+ String nsInstanceId;
+
+ /**
+ * @return Returns the nsInstanceId.
+ */
+ public String getNsInstanceId() {
+ return nsInstanceId;
+ }
+
+ /**
+ * @param nsInstanceId The nsInstanceId to set.
+ */
+ public void setNsInstanceId(String nsInstanceId) {
+ this.nsInstanceId = nsInstanceId;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsLcmOpOcc.java b/src/main/java/org/onap/so/adapters/vfc/model/NsLcmOpOcc.java
new file mode 100644
index 0000000..559b1f7
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsLcmOpOcc.java
@@ -0,0 +1,125 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.onap.so.adapters.vfc.constant.CommonConstant;
+
+public class NsLcmOpOcc {
+ private String id;
+ private CommonConstant.operationState operationState;
+ private String statusEnteredTime;
+ private String nsInstanceId;
+ private CommonConstant.lcmOperationType lcmOperationType;
+ private String startTime;
+ private Boolean isAutomaticInvocation;
+ private String operationParams;
+ private Boolean isCancelPending;
+ private CommonConstant.cancelMode cancelMode;
+ private ProblemDetails error;
+ private Links links;
+
+ public CommonConstant.lcmOperationType getLcmOperationType() {
+ return lcmOperationType;
+ }
+
+ public void setLcmOperationType(CommonConstant.lcmOperationType lcmOperationType) {
+ this.lcmOperationType = lcmOperationType;
+ }
+
+ public CommonConstant.cancelMode getCancelMode() {
+ return cancelMode;
+ }
+
+ public void setCancelMode(CommonConstant.cancelMode cancelMode) {
+ this.cancelMode = cancelMode;
+ }
+
+ public CommonConstant.operationState getOperationState() {
+ return operationState;
+ }
+
+ public void setOperationState(CommonConstant.operationState operationState) {
+ this.operationState = operationState;
+ }
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getStatusEnteredTime() {
+ return statusEnteredTime;
+ }
+
+ public void setStatusEnteredTime(String statusEnteredTime) {
+ this.statusEnteredTime = statusEnteredTime;
+ }
+
+ public String getNsInstanceId() {
+ return nsInstanceId;
+ }
+
+ public void setNsInstanceId(String nsInstanceId) {
+ this.nsInstanceId = nsInstanceId;
+ }
+
+ public String getStartTime() {
+ return startTime;
+ }
+
+ public void setStartTime(String startTime) {
+ this.startTime = startTime;
+ }
+
+ public Boolean getAutomaticInvocation() {
+ return isAutomaticInvocation;
+ }
+
+ public void setAutomaticInvocation(Boolean automaticInvocation) {
+ isAutomaticInvocation = automaticInvocation;
+ }
+
+ public String getOperationParams() {
+ return operationParams;
+ }
+
+ public void setOperationParams(String operationParams) {
+ this.operationParams = operationParams;
+ }
+
+ public Boolean getCancelPending() {
+ return isCancelPending;
+ }
+
+ public void setCancelPending(Boolean cancelPending) {
+ isCancelPending = cancelPending;
+ }
+
+ public ProblemDetails getError() {
+ return error;
+ }
+
+ public void setError(ProblemDetails error) {
+ this.error = error;
+ }
+
+ public Links getLinks() {
+ return links;
+ }
+
+ public void setLinks(Links links) {
+ this.links = links;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsLinkPortInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/NsLinkPortInfo.java
new file mode 100644
index 0000000..2dff432
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsLinkPortInfo.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class NsLinkPortInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private ResourceHandle resourceHandle;
+ private NsCpHandle nsCpHandle;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ResourceHandle getResourceHandle() {
+ return resourceHandle;
+ }
+
+ public void setResourceHandle(ResourceHandle resourceHandle) {
+ this.resourceHandle = resourceHandle;
+ }
+
+ public NsCpHandle getNsCpHandle() {
+ return nsCpHandle;
+ }
+
+ public void setNsCpHandle(NsCpHandle nsCpHandle) {
+ this.nsCpHandle = nsCpHandle;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsOperationKey.java b/src/main/java/org/onap/so/adapters/vfc/model/NsOperationKey.java
new file mode 100644
index 0000000..2088d68
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsOperationKey.java
@@ -0,0 +1,140 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+/**
+ * The operation key object for NS <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-09-15
+ */
+public class NsOperationKey {
+
+ /**
+ * The subscriber id
+ */
+ private String globalSubscriberId;
+
+ /**
+ * The serviceType
+ */
+ private String serviceType;
+
+ /**
+ * The service ID
+ */
+ private String serviceId;
+
+ /**
+ * The Operation ID
+ */
+ private String operationId;
+
+ /**
+ * the NS template uuid
+ */
+ private String nodeTemplateUUID;
+
+ /**
+ * @return Returns the globalSubscriberId.
+ */
+ public String getGlobalSubscriberId() {
+ return globalSubscriberId;
+ }
+
+ /**
+ * @param globalSubscriberId The globalSubscriberId to set.
+ */
+ public void setGlobalSubscriberId(String globalSubscriberId) {
+ this.globalSubscriberId = globalSubscriberId;
+ }
+
+ /**
+ * @return Returns the serviceType.
+ */
+ public String getServiceType() {
+ return serviceType;
+ }
+
+ /**
+ * @param serviceType The serviceType to set.
+ */
+ public void setServiceType(String serviceType) {
+ this.serviceType = serviceType;
+ }
+
+ /**
+ * <br>
+ *
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ public String getServiceId() {
+ return serviceId;
+ }
+
+ /**
+ * <br>
+ *
+ * @param serviceId
+ * @since ONAP Amsterdam Release
+ */
+ public void setServiceId(String serviceId) {
+ this.serviceId = serviceId;
+ }
+
+ /**
+ * <br>
+ *
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ public String getOperationId() {
+ return operationId;
+ }
+
+ /**
+ * <br>
+ *
+ * @param operationId
+ * @since ONAP Amsterdam Release
+ */
+ public void setOperationId(String operationId) {
+ this.operationId = operationId;
+ }
+
+ /**
+ * @return Returns the nodeTemplateUUID.
+ */
+ public String getNodeTemplateUUID() {
+ return nodeTemplateUUID;
+ }
+
+ /**
+ * @param nodeTemplateUUID The nodeTemplateUUID to set.
+ */
+ public void setNodeTemplateUUID(String nodeTemplateUUID) {
+ this.nodeTemplateUUID = nodeTemplateUUID;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsParameters.java b/src/main/java/org/onap/so/adapters/vfc/model/NsParameters.java
new file mode 100644
index 0000000..e82ee2a
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsParameters.java
@@ -0,0 +1,70 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-9-6
+ */
+public class NsParameters {
+
+ private List<LocationConstraint> locationConstraints;
+
+ private Map<String, Object> additionalParamForNs = new HashMap<>();
+
+ /**
+ * @return Returns the locationConstraints.
+ */
+ public List<LocationConstraint> getLocationConstraints() {
+ return locationConstraints;
+ }
+
+ /**
+ * @param locationConstraints The locationConstraints to set.
+ */
+ public void setLocationConstraints(List<LocationConstraint> locationConstraints) {
+ this.locationConstraints = locationConstraints;
+ }
+
+
+ /**
+ * @return Returns the additionalParamForNs.
+ */
+ public Map<String, Object> getAdditionalParamForNs() {
+ return additionalParamForNs;
+ }
+
+
+ /**
+ * @param additionalParamForNs The additionalParamForNs to set.
+ */
+ public void setAdditionalParamForNs(Map<String, Object> additionalParamForNs) {
+ this.additionalParamForNs = additionalParamForNs;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsProgressStatus.java b/src/main/java/org/onap/so/adapters/vfc/model/NsProgressStatus.java
new file mode 100644
index 0000000..a7e72ef
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsProgressStatus.java
@@ -0,0 +1,84 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+/**
+ * <br>
+ * <p>
+ * </p>
+ * response model of query operation status
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-9-6
+ */
+public class NsProgressStatus {
+
+ String jobId;
+
+ ResponseDescriptor responseDescriptor;
+
+ List<ResponseDescriptor> responseHistoryList;
+
+ /**
+ * @return Returns the jobId.
+ */
+ public String getJobId() {
+ return jobId;
+ }
+
+ /**
+ * @param jobId The jobId to set.
+ */
+ public void setJobId(String jobId) {
+ this.jobId = jobId;
+ }
+
+ /**
+ * @return Returns the responseDescriptor.
+ */
+ public ResponseDescriptor getResponseDescriptor() {
+ return responseDescriptor;
+ }
+
+ /**
+ * @param responseDescriptor The responseDescriptor to set.
+ */
+ public void setResponseDescriptor(ResponseDescriptor responseDescriptor) {
+ this.responseDescriptor = responseDescriptor;
+ }
+
+ /**
+ * @return Returns the responseHistoryList.
+ */
+ public List<ResponseDescriptor> getResponseHistoryList() {
+ return responseHistoryList;
+ }
+
+ /**
+ * @param responseHistoryList The responseHistoryList to set.
+ */
+ public void setResponseHistoryList(List<ResponseDescriptor> responseHistoryList) {
+ this.responseHistoryList = responseHistoryList;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsScaleInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/NsScaleInfo.java
new file mode 100644
index 0000000..59acf56
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsScaleInfo.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class NsScaleInfo {
+ @NotNull
+ private String nsScalingAspectId;
+ @NotNull
+ private String nsScaleLevelId;
+
+ public String getNsScalingAspectId() {
+ return nsScalingAspectId;
+ }
+
+ public void setNsScalingAspectId(String nsScalingAspectId) {
+ this.nsScalingAspectId = nsScalingAspectId;
+ }
+
+ public String getNsScaleLevelId() {
+ return nsScaleLevelId;
+ }
+
+ public void setNsScaleLevelId(String nsScaleLevelId) {
+ this.nsScaleLevelId = nsScaleLevelId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsScaleParameters.java b/src/main/java/org/onap/so/adapters/vfc/model/NsScaleParameters.java
new file mode 100644
index 0000000..6d089c0
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsScaleParameters.java
@@ -0,0 +1,66 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 CMCC Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+/**
+ * <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-9-26
+ */
+public class NsScaleParameters {
+
+ private List<ScaleNsByStepsData> scaleNsByStepsData;
+
+ private String scaleType;
+
+ /**
+ * @return Returns the scaleNsByStepsData.
+ */
+ public List<ScaleNsByStepsData> getScaleNsByStepsData() {
+ return scaleNsByStepsData;
+ }
+
+ /**
+ * @param scaleNsByStepsData The scaleNsByStepsData to set.
+ */
+ public void setScaleNsByStepsData(List<ScaleNsByStepsData> scaleNsByStepsData) {
+ this.scaleNsByStepsData = scaleNsByStepsData;
+ }
+
+ /**
+ * @return Returns the scale Type.
+ */
+ public String getScaleType() {
+ return scaleType;
+ }
+
+ /**
+ * @param scaleType The scaleType to set.
+ */
+ public void setScaleType(String scaleType) {
+ this.scaleType = scaleType;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsScaleReq.java b/src/main/java/org/onap/so/adapters/vfc/model/NsScaleReq.java
new file mode 100644
index 0000000..79ed02c
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsScaleReq.java
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 CMCC Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+/**
+ * <br>
+ * <p>
+ * </p>
+ * request model for scale
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-9-26
+ */
+public class NsScaleReq extends NsScaleParameters {
+
+ String nsInstanceId;
+
+ /**
+ * @return Returns the nsInstanceId.
+ */
+ public String getNsInstanceId() {
+ return nsInstanceId;
+ }
+
+ /**
+ * @param nsInstanceId The nsInstanceId to set.
+ */
+ public void setNsInstanceId(String nsInstanceId) {
+ this.nsInstanceId = nsInstanceId;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/NsVirtualLinkInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/NsVirtualLinkInfo.java
new file mode 100644
index 0000000..ed2debd
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/NsVirtualLinkInfo.java
@@ -0,0 +1,57 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class NsVirtualLinkInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String nsVirtualLinkDescId;
+ @NotNull
+ private List<ResourceHandle> resourceHandle;
+ private List<NsLinkPortInfo> linkPort;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getNsVirtualLinkDescId() {
+ return nsVirtualLinkDescId;
+ }
+
+ public void setNsVirtualLinkDescId(String nsVirtualLinkDescId) {
+ this.nsVirtualLinkDescId = nsVirtualLinkDescId;
+ }
+
+ public List<ResourceHandle> getResourceHandle() {
+ return resourceHandle;
+ }
+
+ public void setResourceHandle(List<ResourceHandle> resourceHandle) {
+ this.resourceHandle = resourceHandle;
+ }
+
+ public List<NsLinkPortInfo> getLinkPort() {
+ return linkPort;
+ }
+
+ public void setLinkPort(List<NsLinkPortInfo> linkPort) {
+ this.linkPort = linkPort;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ParamsForVnf.java b/src/main/java/org/onap/so/adapters/vfc/model/ParamsForVnf.java
new file mode 100644
index 0000000..b7324e5
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ParamsForVnf.java
@@ -0,0 +1,35 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.Map;
+
+public class ParamsForVnf {
+ private String vnfProfileId;
+ private Map<String, Object> additionalParams;
+
+ public String getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ public void setVnfProfileId(String vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+
+ public Map<String, Object> getAdditionalParams() {
+ return additionalParams;
+ }
+
+ public void setAdditionalParams(Map<String, Object> additionalParams) {
+ this.additionalParams = additionalParams;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpData.java b/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpData.java
new file mode 100644
index 0000000..d5d091f
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpData.java
@@ -0,0 +1,44 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class PnfExtCpData {
+ private String cpInstanceI16;
+ private String cpdId;
+ private List<CpProtocolData> cpProtocolData;
+
+ public String getCpInstanceI16() {
+ return cpInstanceI16;
+ }
+
+ public void setCpInstanceI16(String cpInstanceI16) {
+ this.cpInstanceI16 = cpInstanceI16;
+ }
+
+ public String getCpdId() {
+ return cpdId;
+ }
+
+ public void setCpdId(String cpdId) {
+ this.cpdId = cpdId;
+ }
+
+ public List<CpProtocolData> getCpProtocolData() {
+ return cpProtocolData;
+ }
+
+ public void setCpProtocolData(List<CpProtocolData> cpProtocolData) {
+ this.cpProtocolData = cpProtocolData;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpInfo.java
new file mode 100644
index 0000000..402cb83
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/PnfExtCpInfo.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class PnfExtCpInfo {
+ @NotNull
+ private String cpInstanceId;
+ @NotNull
+ private String cpdId;
+ @NotNull
+ private List<CpProtocolData> cpProtocolData;
+
+ public String getCpInstanceI16() {
+ return cpInstanceId;
+ }
+
+ public void setCpInstanceI16(String cpInstanceI16) {
+ this.cpInstanceId = cpInstanceI16;
+ }
+
+ public String getCpdId() {
+ return cpdId;
+ }
+
+ public void setCpdId(String cpdId) {
+ this.cpdId = cpdId;
+ }
+
+ public List<CpProtocolData> getCpProtocolData() {
+ return cpProtocolData;
+ }
+
+ public void setCpProtocolData(List<CpProtocolData> cpProtocolData) {
+ this.cpProtocolData = cpProtocolData;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/PnfInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/PnfInfo.java
new file mode 100644
index 0000000..a1cc11b
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/PnfInfo.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class PnfInfo {
+
+ @NotNull
+ private String pnfId;
+ @NotNull
+ private String pnfName;
+ @NotNull
+ private String pnfdId;
+ @NotNull
+ private String pnfdInfoId;
+ @NotNull
+ private String pnfProfileId;
+ private List<PnfExtCpData> cpData;
+
+ /***
+ *
+ * @return id of pnf
+ */
+ public String getPnfId() {
+ return pnfId;
+ }
+
+ public void setPnfId(String pnfId) {
+ this.pnfId = pnfId;
+ }
+
+ public String getPnfName() {
+ return pnfName;
+ }
+
+ public void setPnfName(String pnfName) {
+ this.pnfName = pnfName;
+ }
+
+ public String getPnfdId() {
+ return pnfdId;
+ }
+
+ public void setPnfdId(String pnfdId) {
+ this.pnfdId = pnfdId;
+ }
+
+ public String getPnfProfileId() {
+ return pnfProfileId;
+ }
+
+ public void setPnfProfileId(String pnfProfileId) {
+ this.pnfProfileId = pnfProfileId;
+ }
+
+ public List<PnfExtCpData> getCpData() {
+ return cpData;
+ }
+
+ public void setCpData(List<PnfExtCpData> cpData) {
+ this.cpData = cpData;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/PortRange.java b/src/main/java/org/onap/so/adapters/vfc/model/PortRange.java
new file mode 100644
index 0000000..8318a8c
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/PortRange.java
@@ -0,0 +1,37 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class PortRange {
+ @NotNull
+ private int lowerPort;
+ @NotNull
+ private int upperPort;
+
+ public int getLowerPort() {
+ return lowerPort;
+ }
+
+ public void setLowerPort(int lowerPort) {
+ this.lowerPort = lowerPort;
+ }
+
+ public int getUpperPort() {
+ return upperPort;
+ }
+
+ public void setUpperPort(int upperPort) {
+ this.upperPort = upperPort;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ProblemDetails.java b/src/main/java/org/onap/so/adapters/vfc/model/ProblemDetails.java
new file mode 100644
index 0000000..efaa5de
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ProblemDetails.java
@@ -0,0 +1,62 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class ProblemDetails {
+ private String type;
+ private String title;
+ private int status;
+ private String detail;
+ private String instance;
+
+ public String getType() {
+ return type;
+ }
+
+ public void setType(String type) {
+ this.type = type;
+ }
+
+ public String getTitle() {
+ return title;
+ }
+
+ public void setTitle(String title) {
+ this.title = title;
+ }
+
+ public int getStatus() {
+ return status;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+ public String getDetail() {
+ return detail;
+ }
+
+ public void setDetail(String detail) {
+ this.detail = detail;
+ }
+
+ public String getInstance() {
+ return instance;
+ }
+
+ public void setInstance(String instance) {
+ this.instance = instance;
+ }
+
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ResourceChanges.java b/src/main/java/org/onap/so/adapters/vfc/model/ResourceChanges.java
new file mode 100644
index 0000000..062a6aa
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ResourceChanges.java
@@ -0,0 +1,71 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class ResourceChanges {
+ private List<AffectedVnf> affectedVnfs;
+ private List<AffectedPnf> affectedPnfs;
+ private List<AffectedVirtualLink> affectedVls;
+ private List<AffectedVnffg> affectedVnffgs;
+ private List<AffectedNs> affectedNss;
+ private List<AffectedSap> affectedSaps;
+
+ public List<AffectedVnf> getAffectedVnfs() {
+ return affectedVnfs;
+ }
+
+ public void setAffectedVnfs(List<AffectedVnf> affectedVnfs) {
+ this.affectedVnfs = affectedVnfs;
+ }
+
+ public List<AffectedPnf> getAffectedPnfs() {
+ return affectedPnfs;
+ }
+
+ public void setAffectedPnfs(List<AffectedPnf> affectedPnfs) {
+ this.affectedPnfs = affectedPnfs;
+ }
+
+ public List<AffectedVirtualLink> getAffectedVls() {
+ return affectedVls;
+ }
+
+ public void setAffectedVls(List<AffectedVirtualLink> affectedVls) {
+ this.affectedVls = affectedVls;
+ }
+
+ public List<AffectedVnffg> getAffectedVnffgs() {
+ return affectedVnffgs;
+ }
+
+ public void setAffectedVnffgs(List<AffectedVnffg> affectedVnffgs) {
+ this.affectedVnffgs = affectedVnffgs;
+ }
+
+ public List<AffectedNs> getAffectedNss() {
+ return affectedNss;
+ }
+
+ public void setAffectedNss(List<AffectedNs> affectedNss) {
+ this.affectedNss = affectedNss;
+ }
+
+ public List<AffectedSap> getAffectedSaps() {
+ return affectedSaps;
+ }
+
+ public void setAffectedSaps(List<AffectedSap> affectedSaps) {
+ this.affectedSaps = affectedSaps;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ResourceHandle.java b/src/main/java/org/onap/so/adapters/vfc/model/ResourceHandle.java
new file mode 100644
index 0000000..fbfecaa
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ResourceHandle.java
@@ -0,0 +1,51 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class ResourceHandle {
+ private String vimId;
+ private String resourceProviderId;
+ private String resourceId;
+ private String vimLevelResourceType;
+
+ public String getVimId() {
+ return vimId;
+ }
+
+ public void setVimId(String vimId) {
+ this.vimId = vimId;
+ }
+
+ public String getResourceProviderId() {
+ return resourceProviderId;
+ }
+
+ public void setResourceProviderId(String resourceProviderId) {
+ this.resourceProviderId = resourceProviderId;
+ }
+
+ public String getResourceId() {
+ return resourceId;
+ }
+
+ public void setResourceId(String resourceId) {
+ this.resourceId = resourceId;
+ }
+
+ public String getVimLevelResourceType() {
+ return vimLevelResourceType;
+ }
+
+ public void setVimLevelResourceType(String vimLevelResourceType) {
+ this.vimLevelResourceType = vimLevelResourceType;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ResponseDescriptor.java b/src/main/java/org/onap/so/adapters/vfc/model/ResponseDescriptor.java
new file mode 100644
index 0000000..3ea51c1
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ResponseDescriptor.java
@@ -0,0 +1,114 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+/**
+ * <br>
+ * <p>
+ * </p>
+ * response model of query operation status
+ *
+ * @author
+ * @version SDNO 0.5 September 3, 2016
+ */
+public class ResponseDescriptor {
+
+ String status;
+
+ String progress;
+
+ String statusDescription;
+
+ Integer errorCode;
+
+ Integer responseId;
+
+ /**
+ * @return Returns the status.
+ */
+ public String getStatus() {
+ return status;
+ }
+
+ /**
+ * @param status The status to set.
+ */
+ public void setStatus(String status) {
+ this.status = status;
+ }
+
+ /**
+ * @return Returns the progress.
+ */
+ public String getProgress() {
+ return progress;
+ }
+
+ /**
+ * @param progress The progress to set.
+ */
+ public void setProgress(String progress) {
+ this.progress = progress;
+ }
+
+ /**
+ * @return Returns the statusDescription.
+ */
+ public String getStatusDescription() {
+ return statusDescription;
+ }
+
+ /**
+ * @param statusDescription The statusDescription to set.
+ */
+ public void setStatusDescription(String statusDescription) {
+ this.statusDescription = statusDescription;
+ }
+
+ /**
+ * @return Returns the errorCode.
+ */
+ public Integer getErrorCode() {
+ return errorCode;
+ }
+
+ /**
+ * @param errorCode The errorCode to set.
+ */
+ public void setErrorCode(Integer errorCode) {
+ this.errorCode = errorCode;
+ }
+
+ /**
+ * @return Returns the responseId.
+ */
+ public Integer getResponseId() {
+ return responseId;
+ }
+
+ /**
+ * @param responseId The responseId to set.
+ */
+ public void setResponseId(Integer responseId) {
+ this.responseId = responseId;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/RestfulResponse.java b/src/main/java/org/onap/so/adapters/vfc/model/RestfulResponse.java
new file mode 100644
index 0000000..27c9a89
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/RestfulResponse.java
@@ -0,0 +1,100 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.Map;
+
+/**
+ * The Unified Restful Reponse Class <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-09-06
+ */
+public class RestfulResponse {
+
+ // the response content
+ private String responseContent;
+
+ // the response status
+ private int status;
+
+ // the response header
+ private Map<String, String> respHeaderMap;
+
+ public RestfulResponse() {
+ this.status = -1;
+
+ this.respHeaderMap = null;
+ }
+
+ public int getStatus() {
+ return this.status;
+ }
+
+ public void setStatus(int status) {
+ this.status = status;
+ }
+
+ public Map<String, String> getRespHeaderMap() {
+ return this.respHeaderMap;
+ }
+
+ public void setRespHeaderMap(Map<String, String> header) {
+ this.respHeaderMap = header;
+ }
+
+ public int getRespHeaderInt(String key) {
+ if (this.respHeaderMap != null) {
+ String result = this.respHeaderMap.get(key);
+ if (result != null) {
+ return Integer.parseInt(result);
+ }
+ }
+ return -1;
+ }
+
+ public long getRespHeaderLong(String key) {
+ if (this.respHeaderMap != null) {
+ String result = this.respHeaderMap.get(key);
+ if (result != null) {
+ return Long.parseLong(result);
+ }
+ }
+ return -1L;
+ }
+
+ public String getRespHeaderStr(String key) {
+ if (this.respHeaderMap != null) {
+ return this.respHeaderMap.get(key);
+ }
+ return null;
+ }
+
+ public String getResponseContent() {
+ return this.responseContent;
+ }
+
+ public void setResponseContent(String responseString) {
+ this.responseContent = responseString;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/SapData.java b/src/main/java/org/onap/so/adapters/vfc/model/SapData.java
new file mode 100644
index 0000000..d8e96e2
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/SapData.java
@@ -0,0 +1,56 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+public class SapData {
+ private String sapdId;
+ private String sapName;
+ private String description;
+ private List<CpProtocolData> sapProtocolData;
+
+ public String getSapdId() {
+ return sapdId;
+ }
+
+ public void setSapdId(String sapdId) {
+ this.sapdId = sapdId;
+ }
+
+ public String getSapName() {
+ return sapName;
+ }
+
+ public void setSapName(String sapName) {
+ this.sapName = sapName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<CpProtocolData> getSapProtocolData() {
+ return sapProtocolData;
+ }
+
+ public void setSapProtocolData(List<CpProtocolData> sapProtocolData) {
+ this.sapProtocolData = sapProtocolData;
+ }
+
+
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/SapInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/SapInfo.java
new file mode 100644
index 0000000..182aceb
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/SapInfo.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class SapInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String sapdId;
+ @NotNull
+ private String sapName;
+ @NotNull
+ private String description;
+ @NotNull
+ private List<CpProtocolInfo> sapProtocolInfo;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getSapdId() {
+ return sapdId;
+ }
+
+ public void setSapdId(String sapdId) {
+ this.sapdId = sapdId;
+ }
+
+ public String getSapName() {
+ return sapName;
+ }
+
+ public void setSapName(String sapName) {
+ this.sapName = sapName;
+ }
+
+ public String getDescription() {
+ return description;
+ }
+
+ public void setDescription(String description) {
+ this.description = description;
+ }
+
+ public List<CpProtocolInfo> getSapProtocolInfo() {
+ return sapProtocolInfo;
+ }
+
+ public void setSapProtocolInfo(List<CpProtocolInfo> sapProtocolInfo) {
+ this.sapProtocolInfo = sapProtocolInfo;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ScaleNsByStepsData.java b/src/main/java/org/onap/so/adapters/vfc/model/ScaleNsByStepsData.java
new file mode 100644
index 0000000..f9d6274
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ScaleNsByStepsData.java
@@ -0,0 +1,88 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 CMCC Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+/**
+ * <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-9-26
+ */
+public class ScaleNsByStepsData {
+
+ /**
+ * scaling Direction
+ */
+ private String scalingDirection;
+
+ /**
+ * aspect ID
+ */
+ private String aspectId;
+
+ /**
+ * number of Steps
+ */
+ private Integer numberOfSteps;
+
+ /**
+ * @return Returns the scalingDirection.
+ */
+ public String getScalingDirection() {
+ return scalingDirection;
+ }
+
+ /**
+ * @param scalingDirection The scalingDirection to set.
+ */
+ public void setScalingDirection(String scalingDirection) {
+ this.scalingDirection = scalingDirection;
+ }
+
+ /**
+ * @return Returns the aspectId.
+ */
+ public String getAspectId() {
+ return aspectId;
+ }
+
+ /**
+ * @param aspectId The aspectId to set.
+ */
+ public void setAspectId(String aspectId) {
+ this.aspectId = aspectId;
+ }
+
+ /**
+ * @return Returns the numberOfSteps.
+ */
+ public Integer getNumberOfSteps() {
+ return numberOfSteps;
+ }
+
+ /**
+ * @param numberOfSteps The numberOfSteps to set.
+ */
+ public void setNumberOfSteps(int numberOfSteps) {
+ this.numberOfSteps = numberOfSteps;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/ScaleNsData.java b/src/main/java/org/onap/so/adapters/vfc/model/ScaleNsData.java
new file mode 100644
index 0000000..bd50827
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/ScaleNsData.java
@@ -0,0 +1,48 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 CMCC Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.List;
+
+/**
+ * aim to wrap List<ScaleNsByStepsData> as a new list then be provided for the usage of vfc json
+ *
+ * added on 2018/01/30 by Qihui Zhao from CMCC
+ */
+
+public class ScaleNsData {
+
+ private List<ScaleNsByStepsData> scaleNsByStepsData;
+
+ /**
+ * @return Returns the scaleNsByStepsData.
+ */
+ public List<ScaleNsByStepsData> getScaleNsByStepsData() {
+ return scaleNsByStepsData;
+ }
+
+ /**
+ * @param scaleNsByStepsData The scaleNsByStepsData to set.
+ */
+ public void setScaleNsByStepsData(List<ScaleNsByStepsData> scaleNsByStepsData) {
+ this.scaleNsByStepsData = scaleNsByStepsData;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VFCScaleData.java b/src/main/java/org/onap/so/adapters/vfc/model/VFCScaleData.java
new file mode 100644
index 0000000..1939fa4
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VFCScaleData.java
@@ -0,0 +1,84 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 CMCC Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * Object totally matches required VFC input json format JsonUtil.marshal will convert this Object to string
+ *
+ * added on 2018/01/30 by Qihui Zhao from CMCC
+ */
+
+public class VFCScaleData {
+
+ private String nsInstanceId;
+
+ private String scaleType;
+
+ private List<ScaleNsData> scaleNsData = new ArrayList<>();
+
+ /**
+ * @return Returns the nsInstanceId.
+ */
+ public String getNsInstanceId() {
+ return nsInstanceId;
+ }
+
+ /**
+ * @param nsInstanceId The nsInstanceId to set.
+ */
+ public void setNsInstanceId(String nsInstanceId) {
+ this.nsInstanceId = nsInstanceId;
+ }
+
+ /**
+ * @return Returns the scale Type.
+ */
+ public String getScaleType() {
+ return scaleType;
+ }
+
+ /**
+ * @param scaleType The scaleType to set.
+ */
+ public void setScaleType(String scaleType) {
+ this.scaleType = scaleType;
+ }
+
+ /**
+ * @return Returns the scaleNsDate.
+ */
+ public List<ScaleNsData> getScaleNsData() {
+ return scaleNsData;
+ }
+
+ /**
+ * The scaleNsData to set.
+ */
+ public void setScaleNsData(List<ScaleNsByStepsData> scaleNsByStepsData) {
+ ScaleNsData scaleNsDataObj = new ScaleNsData();
+ scaleNsDataObj.setScaleNsByStepsData(scaleNsByStepsData);
+
+ this.scaleNsData.add(scaleNsDataObj);
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VimLocation.java b/src/main/java/org/onap/so/adapters/vfc/model/VimLocation.java
new file mode 100644
index 0000000..456835b
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VimLocation.java
@@ -0,0 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+/**
+ *
+ * <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-10-18
+ */
+public class VimLocation {
+ private String vimId;
+
+
+ /**
+ * @return Returns the vimId.
+ */
+ public String getVimId() {
+ return vimId;
+ }
+
+
+ /**
+ * @param vimId The vimId to set.
+ */
+ public void setVimId(String vimId) {
+ this.vimId = vimId;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VnfInstance.java b/src/main/java/org/onap/so/adapters/vfc/model/VnfInstance.java
new file mode 100644
index 0000000..ccd6532
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VnfInstance.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.Map;
+
+public class VnfInstance {
+ @NotNull
+ private String id;
+ private String vnfInstanceName;
+ private String vnfInstanceDescription;
+ @NotNull
+ private String vnfdId;
+ @NotNull
+ private String vnfProvider;
+ @NotNull
+ private String vnfProductName;
+ @NotNull
+ private String vnfSoftwareVersion;
+ @NotNull
+ private String vnfdVersion;
+ @NotNull
+ private String vnfPkgId;
+ private Map<String, Object> vnfConfigurableProperties;
+ private String vimId;
+
+ private enum instantiationState {
+ NOT_INSTANTIATED, INSTANTIATED
+ };
+
+ private InstantiatedVnfInfo instantiatedVnfInfo;
+ private Map<String, Object> metadata;
+ private Map<String, Object> extensions;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVnfInstanceName() {
+ return vnfInstanceName;
+ }
+
+ public void setVnfInstanceName(String vnfInstanceName) {
+ this.vnfInstanceName = vnfInstanceName;
+ }
+
+ public String getVnfInstanceDescription() {
+ return vnfInstanceDescription;
+ }
+
+ public void setVnfInstanceDescription(String vnfInstanceDescription) {
+ this.vnfInstanceDescription = vnfInstanceDescription;
+ }
+
+ public String getVnfdId() {
+ return vnfdId;
+ }
+
+ public void setVnfdId(String vnfdId) {
+ this.vnfdId = vnfdId;
+ }
+
+ public String getVnfProvider() {
+ return vnfProvider;
+ }
+
+ public void setVnfProvider(String vnfProvider) {
+ this.vnfProvider = vnfProvider;
+ }
+
+ public String getVnfProductName() {
+ return vnfProductName;
+ }
+
+ public void setVnfProductName(String vnfProductName) {
+ this.vnfProductName = vnfProductName;
+ }
+
+ public String getVnfSoftwareVersion() {
+ return vnfSoftwareVersion;
+ }
+
+ public void setVnfSoftwareVersion(String vnfSoftwareVersion) {
+ this.vnfSoftwareVersion = vnfSoftwareVersion;
+ }
+
+ public String getVnfdVersion() {
+ return vnfdVersion;
+ }
+
+ public void setVnfdVersion(String vnfdVersion) {
+ this.vnfdVersion = vnfdVersion;
+ }
+
+ public String getVnfPkgId() {
+ return vnfPkgId;
+ }
+
+ public void setVnfPkgId(String vnfPkgId) {
+ this.vnfPkgId = vnfPkgId;
+ }
+
+ public Map<String, Object> getVnfConfigurableProperties() {
+ return vnfConfigurableProperties;
+ }
+
+ public void setVnfConfigurableProperties(Map<String, Object> vnfConfigurableProperties) {
+ this.vnfConfigurableProperties = vnfConfigurableProperties;
+ }
+
+ public String getVimId() {
+ return vimId;
+ }
+
+ public void setVimId(String vimId) {
+ this.vimId = vimId;
+ }
+
+ public InstantiatedVnfInfo getInstantiatedVnfInfo() {
+ return instantiatedVnfInfo;
+ }
+
+ public void setInstantiatedVnfInfo(InstantiatedVnfInfo instantiatedVnfInfo) {
+ this.instantiatedVnfInfo = instantiatedVnfInfo;
+ }
+
+ public Map<String, Object> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, Object> metadata) {
+ this.metadata = metadata;
+ }
+
+ public Map<String, Object> getExtensions() {
+ return extensions;
+ }
+
+ public void setExtensions(Map<String, Object> extensions) {
+ this.extensions = extensions;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VnfInstanceData.java b/src/main/java/org/onap/so/adapters/vfc/model/VnfInstanceData.java
new file mode 100644
index 0000000..83345fc
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VnfInstanceData.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class VnfInstanceData {
+ private String vnfInstanceId;
+ private String vnfProfileId;
+
+ public String getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(String vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ public void setVnfProfileId(String vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VnfLinkPortInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/VnfLinkPortInfo.java
new file mode 100644
index 0000000..0b09d06
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VnfLinkPortInfo.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class VnfLinkPortInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private ResourceHandle resourceHandle;
+ private String cpInstanceId;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public ResourceHandle getResourceHandle() {
+ return resourceHandle;
+ }
+
+ public void setResourceHandle(ResourceHandle resourceHandle) {
+ this.resourceHandle = resourceHandle;
+ }
+
+ public String getCpInstanceId() {
+ return cpInstanceId;
+ }
+
+ public void setCpInstanceId(String cpInstanceId) {
+ this.cpInstanceId = cpInstanceId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VnfLocationConstraint.java b/src/main/java/org/onap/so/adapters/vfc/model/VnfLocationConstraint.java
new file mode 100644
index 0000000..5db3060
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VnfLocationConstraint.java
@@ -0,0 +1,33 @@
+/***
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+public class VnfLocationConstraint {
+ private String vnfProfileId;
+ private LocationConstraint locationConstraints;
+
+ public String getVnfProfileId() {
+ return vnfProfileId;
+ }
+
+ public void setVnfProfileId(String vnfProfileId) {
+ this.vnfProfileId = vnfProfileId;
+ }
+
+ public LocationConstraint getLocationConstraints() {
+ return locationConstraints;
+ }
+
+ public void setLocationConstraints(LocationConstraint locationConstraints) {
+ this.locationConstraints = locationConstraints;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VnfScaleInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/VnfScaleInfo.java
new file mode 100644
index 0000000..e702edc
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VnfScaleInfo.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+
+public class VnfScaleInfo {
+ @NotNull
+ private String aspectlId;
+ @NotNull
+ private int scaleLevel;
+
+ public String getAspectlId() {
+ return aspectlId;
+ }
+
+ public void setAspectlId(String aspectlId) {
+ this.aspectlId = aspectlId;
+ }
+
+ public int getScaleLevel() {
+ return scaleLevel;
+ }
+
+ public void setScaleLevel(int scaleLevel) {
+ this.scaleLevel = scaleLevel;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VnfVirtualLinkResourceInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/VnfVirtualLinkResourceInfo.java
new file mode 100644
index 0000000..9f41a38
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VnfVirtualLinkResourceInfo.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.Map;
+
+public class VnfVirtualLinkResourceInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String virtualLinkDescId;
+ @NotNull
+ private ResourceHandle networkResource;
+ private String reservationId;
+ private List<VnfLinkPortInfo> vnfLinkPorts;
+ Map<String, Object> metadata;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVirtualLinkDescId() {
+ return virtualLinkDescId;
+ }
+
+ public void setVirtualLinkDescId(String virtualLinkDescId) {
+ this.virtualLinkDescId = virtualLinkDescId;
+ }
+
+ public ResourceHandle getNetworkResource() {
+ return networkResource;
+ }
+
+ public void setNetworkResource(ResourceHandle networkResource) {
+ this.networkResource = networkResource;
+ }
+
+ public String getReservationId() {
+ return reservationId;
+ }
+
+ public void setReservationId(String reservationId) {
+ this.reservationId = reservationId;
+ }
+
+ public List<VnfLinkPortInfo> getVnfLinkPorts() {
+ return vnfLinkPorts;
+ }
+
+ public void setVnfLinkPorts(List<VnfLinkPortInfo> vnfLinkPorts) {
+ this.vnfLinkPorts = vnfLinkPorts;
+ }
+
+ public Map<String, Object> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, Object> metadata) {
+ this.metadata = metadata;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VnfcCpInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/VnfcCpInfo.java
new file mode 100644
index 0000000..ec629ef
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VnfcCpInfo.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class VnfcCpInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String cpdId;
+ private String vnfExtCpId;
+ private List<CpProtocolInfo> cpProtocolInfo;
+ private String vnfLinkPortId;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getCpdId() {
+ return cpdId;
+ }
+
+ public void setCpdId(String cpdId) {
+ this.cpdId = cpdId;
+ }
+
+ public String getVnfExtCpId() {
+ return vnfExtCpId;
+ }
+
+ public void setVnfExtCpId(String vnfExtCpId) {
+ this.vnfExtCpId = vnfExtCpId;
+ }
+
+ public List<CpProtocolInfo> getCpProtocolInfo() {
+ return cpProtocolInfo;
+ }
+
+ public void setCpProtocolInfo(List<CpProtocolInfo> cpProtocolInfo) {
+ this.cpProtocolInfo = cpProtocolInfo;
+ }
+
+ public String getVnfLinkPortId() {
+ return vnfLinkPortId;
+ }
+
+ public void setVnfLinkPortId(String vnfLinkPortId) {
+ this.vnfLinkPortId = vnfLinkPortId;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VnfcResourceInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/VnfcResourceInfo.java
new file mode 100644
index 0000000..1f7aa67
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VnfcResourceInfo.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+import java.util.Map;
+
+public class VnfcResourceInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String vduId;
+ @NotNull
+ private ResourceHandle computeResource;
+ private List<String> storageResourceIds;
+ private String reservationId;
+ private List<VnfcCpInfo> vnfcCpInfo;
+ private Map<String, Object> metadata;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVduId() {
+ return vduId;
+ }
+
+ public void setVduId(String vduId) {
+ this.vduId = vduId;
+ }
+
+ public ResourceHandle getComputeResource() {
+ return computeResource;
+ }
+
+ public void setComputeResource(ResourceHandle computeResource) {
+ this.computeResource = computeResource;
+ }
+
+ public List<String> getStorageResourceIds() {
+ return storageResourceIds;
+ }
+
+ public void setStorageResourceIds(List<String> storageResourceIds) {
+ this.storageResourceIds = storageResourceIds;
+ }
+
+ public String getReservationId() {
+ return reservationId;
+ }
+
+ public void setReservationId(String reservationId) {
+ this.reservationId = reservationId;
+ }
+
+ public List<VnfcCpInfo> getVnfcCpInfo() {
+ return vnfcCpInfo;
+ }
+
+ public void setVnfcCpInfo(List<VnfcCpInfo> vnfcCpInfo) {
+ this.vnfcCpInfo = vnfcCpInfo;
+ }
+
+ public Map<String, Object> getMetadata() {
+ return metadata;
+ }
+
+ public void setMetadata(Map<String, Object> metadata) {
+ this.metadata = metadata;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/model/VnffgInfo.java b/src/main/java/org/onap/so/adapters/vfc/model/VnffgInfo.java
new file mode 100644
index 0000000..c02d517
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/model/VnffgInfo.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import javax.validation.constraints.NotNull;
+import java.util.List;
+
+public class VnffgInfo {
+ @NotNull
+ private String id;
+ @NotNull
+ private String vnffgdId;
+ @NotNull
+ private List<String> vnfInstanceId;
+ private String pnfInfoId;
+ @NotNull
+ private List<String> nsVirtualLinkInfoId;
+ @NotNull
+ private List<NsCpHandle> nsCpHandle;
+ @NotNull
+ private List<NfpInfo> nfpInfo;
+
+ public String getId() {
+ return id;
+ }
+
+ public void setId(String id) {
+ this.id = id;
+ }
+
+ public String getVnffgdId() {
+ return vnffgdId;
+ }
+
+ public void setVnffgdId(String vnffgdId) {
+ this.vnffgdId = vnffgdId;
+ }
+
+ public List<String> getVnfInstanceId() {
+ return vnfInstanceId;
+ }
+
+ public void setVnfInstanceId(List<String> vnfInstanceId) {
+ this.vnfInstanceId = vnfInstanceId;
+ }
+
+ public String getPnfInfoId() {
+ return pnfInfoId;
+ }
+
+ public void setPnfInfoId(String pnfInfoId) {
+ this.pnfInfoId = pnfInfoId;
+ }
+
+ public List<String> getNsVirtualLinkInfoId() {
+ return nsVirtualLinkInfoId;
+ }
+
+ public void setNsVirtualLinkInfoId(List<String> nsVirtualLinkInfoId) {
+ this.nsVirtualLinkInfoId = nsVirtualLinkInfoId;
+ }
+
+ public List<NsCpHandle> getNsCpHandle() {
+ return nsCpHandle;
+ }
+
+ public void setNsCpHandle(List<NsCpHandle> nsCpHandle) {
+ this.nsCpHandle = nsCpHandle;
+ }
+
+ public List<NfpInfo> getNfpInfo() {
+ return nfpInfo;
+ }
+
+ public void setNfpInfo(List<NfpInfo> nfpInfo) {
+ this.nfpInfo = nfpInfo;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/rest/AaiUtil.java b/src/main/java/org/onap/so/adapters/vfc/rest/AaiUtil.java
new file mode 100644
index 0000000..7f81dfb
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/rest/AaiUtil.java
@@ -0,0 +1,47 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import org.onap.so.adapters.vfc.model.RestfulResponse;
+
+/**
+ * Implement class of operating aai database table <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-08-28
+ */
+public class AaiUtil {
+
+ public static RestfulResponse addRelation(String globalSubsriberId, String serviceType, String serviceInstanceId,
+ String resourceInstanceId) {
+ // sent rest to aai to add relation for service and ns.
+
+ return null;
+ }
+
+ public static RestfulResponse removeRelation(String globalSubsriberId, String serviceType, String serviceInstanceId,
+ String resourceInstanceId) {
+ // sent rest to aai to remove relation between service an ns.
+ return null;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/rest/HealthCheckHandler.java b/src/main/java/org/onap/so/adapters/vfc/rest/HealthCheckHandler.java
new file mode 100644
index 0000000..2dcdf11
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/rest/HealthCheckHandler.java
@@ -0,0 +1,58 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import javax.ws.rs.HEAD;
+import javax.ws.rs.Path;
+import javax.ws.rs.Produces;
+import javax.ws.rs.QueryParam;
+import javax.ws.rs.core.Response;
+import org.apache.http.HttpStatus;
+import org.springframework.stereotype.Component;
+
+/**
+ * Health Check <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-08-28
+ */
+@Path("/")
+@Component
+public class HealthCheckHandler {
+
+
+ private static final String CHECK_HTML =
+ "<!DOCTYPE html><html><head><meta charset=\"ISO-8859-1\"><title>Health Check</title></head><body>Application ready</body></html>";
+
+ public static final Response HEALTH_CHECK_RESPONSE = Response.status(HttpStatus.SC_OK).entity(CHECK_HTML).build();
+
+ @HEAD
+ @Path("/healthcheck")
+ @Produces("text/html")
+ public Response healthcheck(@QueryParam("requestId") String requestId) {
+ return HEALTH_CHECK_RESPONSE;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/rest/VfcAdapterRest.java b/src/main/java/org/onap/so/adapters/vfc/rest/VfcAdapterRest.java
new file mode 100644
index 0000000..5a89c04
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/rest/VfcAdapterRest.java
@@ -0,0 +1,265 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright (C) 2018 IBM.
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import javax.ws.rs.Consumes;
+import javax.ws.rs.DELETE;
+import javax.ws.rs.POST;
+import javax.ws.rs.Path;
+import javax.ws.rs.PathParam;
+import javax.ws.rs.Produces;
+import javax.ws.rs.core.MediaType;
+import javax.ws.rs.core.Response;
+import org.onap.so.adapters.vfc.exceptions.ApplicationException;
+import org.onap.so.adapters.vfc.model.NSResourceInputParameter;
+import org.onap.so.adapters.vfc.model.NsOperationKey;
+import org.onap.so.adapters.vfc.model.RestfulResponse;
+import org.onap.so.adapters.vfc.util.JsonUtil;
+import org.onap.so.adapters.vfc.util.ValidateUtil;
+import org.onap.so.db.request.beans.InstanceNfvoMapping;
+import org.onap.so.db.request.data.repository.InstanceNfvoMappingRepository;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+/**
+ * The rest class for VF-c Adapter <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-08-28
+ */
+@Component
+@Path("/v1/vfcadapter")
+public class VfcAdapterRest {
+
+ private static final Logger logger = LoggerFactory.getLogger(VfcAdapterRest.class);
+ private static final String REQUEST_DEBUG_MSG = "body from request is {}";
+ private static final String APPLICATION_EXCEPTION = "ApplicationException: ";
+ @Autowired
+ private VfcManagerSol005 vfcManagerSol005;
+
+ @Autowired
+ private VfcManager driverMgr;
+ @Autowired
+ private InstanceNfvoMappingRepository instanceNfvoMappingRepository;
+
+ public VfcAdapterRest() {
+
+ }
+
+ /**
+ * Create a NS <br>
+ *
+ * @param data http request
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ @POST
+ @Path("/ns")
+ @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response createNfvoNs(String data) {
+ try {
+ ValidateUtil.assertObjectNotNull(data);
+ logger.debug(REQUEST_DEBUG_MSG + data);
+ NSResourceInputParameter nsInput = JsonUtil.unMarshal(data, NSResourceInputParameter.class);
+ RestfulResponse rsp;
+ if (nsInput.getNsParameters().getAdditionalParamForNs().containsKey("isSol005Interface")) {
+ rsp = vfcManagerSol005.createNs(nsInput);
+ } else {
+ rsp = driverMgr.createNs(nsInput);
+ }
+
+ return buildResponse(rsp);
+ } catch (ApplicationException e) {
+ logger.debug(APPLICATION_EXCEPTION, e);
+ return e.buildErrorResponse();
+ }
+ }
+
+ /**
+ * Delete NS instance<br>
+ *
+ * @param data The http request
+ * @param nsInstanceId The NS instance id
+ * @return response
+ * @since ONAP Amsterdam Release
+ */
+ @DELETE
+ @Path("/ns/{nsInstanceId}")
+ @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response deleteNfvoNs(String data, @PathParam("nsInstanceId") String nsInstanceId) {
+ try {
+
+ ValidateUtil.assertObjectNotNull(data);
+ logger.debug(REQUEST_DEBUG_MSG + data);
+ NsOperationKey nsOperationKey = JsonUtil.unMarshal(data, NsOperationKey.class);
+ RestfulResponse rsp;
+ InstanceNfvoMapping instanceNfvoMapping = instanceNfvoMappingRepository.findOneByInstanceId(nsInstanceId);
+ if (instanceNfvoMapping != null) {
+ rsp = vfcManagerSol005.deleteNs(nsOperationKey, nsInstanceId);
+ } else {
+ rsp = driverMgr.deleteNs(nsOperationKey, nsInstanceId);
+ }
+ return buildResponse(rsp);
+ } catch (ApplicationException e) {
+ logger.debug(APPLICATION_EXCEPTION, e);
+ return e.buildErrorResponse();
+ }
+ }
+
+ /**
+ * Query Operation job status <br>
+ *
+ * @param data The Http Request
+ * @param jobId The job id
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ @POST
+ @Path("/jobs/{jobId}")
+ @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response queryNfvoJobStatus(String data, @PathParam("jobId") String jobId) {
+ try {
+ ValidateUtil.assertObjectNotNull(data);
+ logger.debug(REQUEST_DEBUG_MSG + data);
+ NsOperationKey nsOperationKey = JsonUtil.unMarshal(data, NsOperationKey.class);
+ RestfulResponse rsp;
+ InstanceNfvoMapping instanceNfvoMapping = instanceNfvoMappingRepository.findOneByJobId(jobId);
+ if (instanceNfvoMapping != null) {
+ rsp = vfcManagerSol005.getNsProgress(nsOperationKey, jobId);
+ } else {
+ rsp = driverMgr.getNsProgress(nsOperationKey, jobId);
+ }
+ return buildResponse(rsp);
+ } catch (ApplicationException e) {
+ logger.debug(APPLICATION_EXCEPTION, e);
+ return e.buildErrorResponse();
+ }
+ }
+
+ /**
+ * Instantiate NS instance <br>
+ *
+ * @param data The http request
+ * @param nsInstanceId The NS instance id
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ @POST
+ @Path("/ns/{nsInstanceId}/instantiate")
+ @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response instantiateNfvoNs(String data, @PathParam("nsInstanceId") String nsInstanceId) {
+ try {
+ ValidateUtil.assertObjectNotNull(data);
+ logger.debug(REQUEST_DEBUG_MSG + data);
+ NSResourceInputParameter nsInput = JsonUtil.unMarshal(data, NSResourceInputParameter.class);
+ RestfulResponse rsp;
+ if (nsInput.getNsParameters().getAdditionalParamForNs().containsKey("isSol005Interface")) {
+ rsp = vfcManagerSol005.instantiateNs(nsInstanceId, nsInput);
+ } else {
+ rsp = driverMgr.instantiateNs(nsInstanceId, nsInput);
+ }
+ return buildResponse(rsp);
+ } catch (ApplicationException e) {
+ logger.debug(APPLICATION_EXCEPTION, e);
+ return e.buildErrorResponse();
+ }
+ }
+
+ /**
+ * Terminate NS instance <br>
+ *
+ * @param data The http request
+ * @param nsInstanceId The NS instance id
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ @POST
+ @Path("/ns/{nsInstanceId}/terminate")
+ @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response terminateNfvoNs(String data, @PathParam("nsInstanceId") String nsInstanceId) {
+ try {
+ ValidateUtil.assertObjectNotNull(data);
+ logger.debug(REQUEST_DEBUG_MSG + data);
+ NsOperationKey nsOperationKey = JsonUtil.unMarshal(data, NsOperationKey.class);
+ RestfulResponse rsp;
+ InstanceNfvoMapping instanceNfvoMapping = instanceNfvoMappingRepository.findOneByInstanceId(nsInstanceId);
+ if (instanceNfvoMapping != null) {
+ rsp = vfcManagerSol005.terminateNs(nsOperationKey, nsInstanceId);
+ } else {
+ rsp = driverMgr.terminateNs(nsOperationKey, nsInstanceId);
+ }
+
+ return buildResponse(rsp);
+ } catch (ApplicationException e) {
+ logger.debug(APPLICATION_EXCEPTION, e);
+ return e.buildErrorResponse();
+ }
+ }
+
+ /**
+ * Scale NS instance <br>
+ *
+ * @param servletReq The http request
+ * @param nsInstanceId The NS instance id
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ @POST
+ @Path("/ns/{nsInstanceId}/scale")
+ @Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ @Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
+ public Response scaleNfvoNs(String data, @PathParam("nsInstanceId") String nsInstanceId) {
+ try {
+ ValidateUtil.assertObjectNotNull(data);
+ logger.debug("Scale Ns Request Received.Body from request is {}" + data);
+ NSResourceInputParameter nsInput = JsonUtil.unMarshal(data, NSResourceInputParameter.class);
+ RestfulResponse rsp = driverMgr.scaleNs(nsInstanceId, nsInput);
+ return buildResponse(rsp);
+ } catch (ApplicationException e) {
+ logger.debug(APPLICATION_EXCEPTION, e);
+ return e.buildErrorResponse();
+ }
+ }
+
+
+ /**
+ * build response from restful response <br>
+ *
+ * @param rsp general response object
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ private Response buildResponse(RestfulResponse rsp) {
+ return Response.status(rsp.getStatus()).entity(rsp.getResponseContent()).build();
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/rest/VfcManager.java b/src/main/java/org/onap/so/adapters/vfc/rest/VfcManager.java
new file mode 100644
index 0000000..b817b5b
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/rest/VfcManager.java
@@ -0,0 +1,492 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import java.util.HashMap;
+import java.util.Map;
+import org.onap.so.adapters.vfc.constant.CommonConstant;
+import org.onap.so.adapters.vfc.constant.CommonConstant.Step;
+import org.onap.so.adapters.vfc.constant.DriverExceptionID;
+import org.onap.so.adapters.vfc.constant.HttpCode;
+import org.onap.so.adapters.vfc.exceptions.ApplicationException;
+import org.onap.so.adapters.vfc.model.CustomerModel;
+import org.onap.so.adapters.vfc.model.NSResourceInputParameter;
+import org.onap.so.adapters.vfc.model.NsCreateReq;
+import org.onap.so.adapters.vfc.model.NsInstantiateReq;
+import org.onap.so.adapters.vfc.model.NsOperationKey;
+import org.onap.so.adapters.vfc.model.NsParameters;
+import org.onap.so.adapters.vfc.model.NsProgressStatus;
+import org.onap.so.adapters.vfc.model.NsScaleParameters;
+import org.onap.so.adapters.vfc.model.ResponseDescriptor;
+import org.onap.so.adapters.vfc.model.RestfulResponse;
+import org.onap.so.adapters.vfc.model.VFCScaleData;
+import org.onap.so.adapters.vfc.util.JsonUtil;
+import org.onap.so.adapters.vfc.util.RestfulUtil;
+import org.onap.so.adapters.vfc.util.ValidateUtil;
+import org.onap.so.db.request.beans.ResourceOperationStatus;
+import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository;
+import org.onap.so.requestsdb.RequestsDbConstant;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
+import org.springframework.data.domain.Example;
+import org.springframework.stereotype.Component;
+
+/**
+ * VF-C Manager <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-08-28
+ */
+@Component
+@Primary
+public class VfcManager {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(VfcManager.class);
+
+ /**
+ * nfvo url map
+ */
+ private Map<String, String> nfvoUrlMap;
+
+ @Autowired
+ private ResourceOperationStatusRepository resourceOperationStatusRepository;
+
+ @Autowired
+ private RestfulUtil restfulUtil;
+
+
+ public VfcManager() {
+ nfvoUrlMap = new HashMap<>();
+ nfvoUrlMap.put(Step.CREATE, CommonConstant.NFVO_CREATE_URL);
+ nfvoUrlMap.put(Step.INSTANTIATE, CommonConstant.NFVO_INSTANTIATE_URL);
+ nfvoUrlMap.put(Step.TERMINATE, CommonConstant.NFVO_TERMINATE_URL);
+ nfvoUrlMap.put(Step.DELETE, CommonConstant.NFVO_DELETE_URL);
+ nfvoUrlMap.put(Step.QUERY, CommonConstant.NFVO_QUERY_URL);
+ nfvoUrlMap.put(Step.SCALE, CommonConstant.NFVO_SCALE_URL);
+ }
+
+ /**
+ * create network service <br>
+ *
+ * @param segInput input parameters for current node from http request
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ public RestfulResponse createNs(NSResourceInputParameter segInput) throws ApplicationException {
+
+ // Step1: get service template by node type
+ String csarId = segInput.getNsServiceModelUUID();
+ // nsdId for NFVO is "id" in the response, while for SDNO is "servcice template id"
+ LOGGER.info("serviceTemplateId is {}, id is {}", csarId, csarId);
+
+ LOGGER.info("create ns -> begin");
+ // Step2: Prepare url and method type
+ String url = getUrl(null, CommonConstant.Step.CREATE);
+ String methodType = CommonConstant.MethodType.POST;
+
+ // Step3: Prepare restful parameters and options
+ NsCreateReq oRequest = new NsCreateReq();
+ oRequest.setCsarId(csarId);
+ oRequest.setNsName(segInput.getNsServiceName());
+ oRequest.setDescription(segInput.getNsServiceDescription());
+ CustomerModel context = new CustomerModel();
+ context.setGlobalCustomerId(segInput.getNsOperationKey().getGlobalSubscriberId());
+ context.setServiceType(segInput.getNsOperationKey().getServiceType());
+ oRequest.setContext(context);
+ String createReq = JsonUtil.marshal(oRequest);
+
+ // Step4: Call NFVO or SDNO lcm to create ns
+ RestfulResponse createRsp = restfulUtil.send(url, methodType, createReq);
+ ValidateUtil.assertObjectNotNull(createRsp);
+ LOGGER.info("create ns response status is : {}", createRsp.getStatus());
+ LOGGER.info("create ns response content is : {}", createRsp.getResponseContent());
+
+ // Step 5: save resource operation information
+ ResourceOperationStatus status = new ResourceOperationStatus(segInput.getNsOperationKey().getServiceId(),
+ segInput.getNsOperationKey().getOperationId(), segInput.getNsOperationKey().getNodeTemplateUUID());
+ status.setStatus(RequestsDbConstant.Status.PROCESSING);
+ status = resourceOperationStatusRepository.save(status);
+ if (!HttpCode.isSucess(createRsp.getStatus())) {
+ LOGGER.error("update segment operation status : fail to create ns");
+ status.setProgress("40");
+ status.setStatusDescription("NS is created");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(createRsp.getStatus()));
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_CREATE_NS);
+ }
+ @SuppressWarnings("unchecked")
+ Map<String, String> rsp = JsonUtil.unMarshal(createRsp.getResponseContent(), Map.class);
+ String nsInstanceId = rsp.get(CommonConstant.NS_INSTANCE_ID);
+ if (ValidateUtil.isStrEmpty(nsInstanceId)) {
+ LOGGER.error("Invalid instanceId from create operation");
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.INVALID_RESPONSEE_FROM_CREATE_OPERATION);
+ }
+ LOGGER.info("create ns -> end");
+ LOGGER.info("save segment and operaton info -> begin");
+ // Step 6: add relation between service and NS
+ AaiUtil.addRelation(segInput.getNsOperationKey().getGlobalSubscriberId(),
+ segInput.getNsOperationKey().getServiceType(), segInput.getNsOperationKey().getServiceId(),
+ nsInstanceId);
+ LOGGER.info("save segment and operation info -> end");
+ return createRsp;
+ }
+
+ /**
+ * delete network service <br>
+ *
+ * @param nsOperationKey The operation key of the NS resource
+ * @param nsInstanceId The NS instance id
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ public RestfulResponse deleteNs(NsOperationKey nsOperationKey, String nsInstanceId) throws ApplicationException {
+ LOGGER.info("delete ns -> begin");
+ // Step1: prepare url and methodType
+ String url = getUrl(nsInstanceId, CommonConstant.Step.DELETE);
+ String methodType = CommonConstant.MethodType.DELETE;
+
+ // Step2: prepare restful parameters and options
+ RestfulResponse deleteRsp = restfulUtil.send(url, methodType, "");
+ ValidateUtil.assertObjectNotNull(deleteRsp);
+ LOGGER.info("delete ns response status is : {}", deleteRsp.getStatus());
+ LOGGER.info("delete ns response content is : {}", deleteRsp.getResponseContent());
+ LOGGER.info("delete ns -> end");
+
+ ResourceOperationStatus status = new ResourceOperationStatus(nsOperationKey.getServiceId(),
+ nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID());
+ if (!HttpCode.isSucess(deleteRsp.getStatus())) {
+ LOGGER.error("fail to delete ns");
+
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(deleteRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_DELETE_NS);
+ }
+
+ // Step3: remove relation info between service and ns
+ AaiUtil.removeRelation(nsOperationKey.getGlobalSubscriberId(), nsOperationKey.getServiceType(),
+ nsOperationKey.getServiceId(), nsInstanceId);
+ LOGGER.info("delete segment information -> end");
+
+ // Step4: update service segment operation status
+ status.setStatus(RequestsDbConstant.Status.FINISHED);
+ status.setErrorCode(String.valueOf(deleteRsp.getStatus()));
+ status.setProgress("100");
+ status.setStatusDescription("VFC resource deletion finished");
+ resourceOperationStatusRepository.save(status);
+ LOGGER.info("update segment operaton status for delete -> end");
+
+ return deleteRsp;
+
+ }
+
+ /**
+ * instantiate network service <br>
+ *
+ * @param nsInstanceId The NS instance id
+ * @param segInput input parameters for current node from http request
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ public RestfulResponse instantiateNs(String nsInstanceId, NSResourceInputParameter segInput)
+ throws ApplicationException {
+ // Call the NFVO or SDNO service to instantiate service
+ LOGGER.info("instantiate ns -> begin");
+
+ // Step1: Prepare restful parameters and options
+ NsInstantiateReq oRequest = new NsInstantiateReq();
+ oRequest.setNsInstanceId(nsInstanceId);
+ NsParameters nsParameters = segInput.getNsParameters();
+ oRequest.setLocationConstraints(nsParameters.getLocationConstraints());
+ oRequest.setAdditionalParamForNs(nsParameters.getAdditionalParamForNs());
+ String instReq = JsonUtil.marshal(oRequest);
+ // Step2: prepare url and
+ String url = getUrl(nsInstanceId, CommonConstant.Step.INSTANTIATE);
+ String methodType = CommonConstant.MethodType.POST;
+
+ RestfulResponse instRsp = restfulUtil.send(url, methodType, instReq);
+ ResourceOperationStatus status = new ResourceOperationStatus(segInput.getNsOperationKey().getServiceId(),
+ segInput.getNsOperationKey().getOperationId(), segInput.getNsOperationKey().getNodeTemplateUUID());
+ ValidateUtil.assertObjectNotNull(instRsp);
+ if (!HttpCode.isSucess(instRsp.getStatus())) {
+ LOGGER.error("update segment operation status : fail to instantiate ns");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(instRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ }
+ LOGGER.info("instantiate ns response status is : {}", instRsp.getStatus());
+ LOGGER.info("instantiate ns response content is : {}", instRsp.getResponseContent());
+ ValidateUtil.assertObjectNotNull(instRsp.getResponseContent());
+ @SuppressWarnings("unchecked")
+ Map<String, String> rsp = JsonUtil.unMarshal(instRsp.getResponseContent(), Map.class);
+ String jobId = rsp.get(CommonConstant.JOB_ID);
+ if (ValidateUtil.isStrEmpty(jobId)) {
+ LOGGER.error("Invalid jobId from instantiate operation");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(instRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.INVALID_RESPONSE_FROM_INSTANTIATE_OPERATION);
+ }
+ LOGGER.info("instantiate ns -> end");
+ // Step 3: update segment operation job id
+ LOGGER.info("update resource operation status job id -> begin");
+ status.setJobId(jobId);
+ status.setProgress("100");
+ status.setStatusDescription("NS initiation completed.");
+ resourceOperationStatusRepository.save(status);
+ LOGGER.info("update segment operation job id -> end");
+
+ return instRsp;
+ }
+
+ /**
+ * terminate network service <br>
+ *
+ * @param nsOperationKey The operation key for NS resource
+ * @param nsInstanceId The NS instance id
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ public RestfulResponse terminateNs(NsOperationKey nsOperationKey, String nsInstanceId) throws ApplicationException {
+ // Step1: save segment operation info for delete process
+ LOGGER.info("save segment operation for delete process");
+ ResourceOperationStatus status = new ResourceOperationStatus(nsOperationKey.getServiceId(),
+ nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID());
+ status.setStatus(RequestsDbConstant.Status.PROCESSING);
+ resourceOperationStatusRepository.save(status);
+
+ LOGGER.info("terminate ns -> begin");
+ // Step2: prepare url and method type
+ String url = getUrl(nsInstanceId, CommonConstant.Step.TERMINATE);
+ String methodType = CommonConstant.MethodType.POST;
+
+ // Step3: prepare restful parameters and options
+ Map<String, String> reqBody = new HashMap<>();
+ reqBody.put("nsInstanceId", nsInstanceId);
+ reqBody.put("terminationType", "graceful");
+ reqBody.put("gracefulTerminationTimeout", "60");
+
+ // Step4: Call the NFVO or SDNO service to terminate service
+ RestfulResponse terminateRsp = restfulUtil.send(url, methodType, JsonUtil.marshal(reqBody));
+ ValidateUtil.assertObjectNotNull(terminateRsp);
+ LOGGER.info("terminate ns response status is : {}", terminateRsp.getStatus());
+ LOGGER.info("terminate ns response content is : {}", terminateRsp.getResponseContent());
+ // Step 3: update segment operation
+ if (!HttpCode.isSucess(terminateRsp.getStatus())) {
+ LOGGER.error("fail to instantiate ns");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(terminateRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ }
+ @SuppressWarnings("unchecked")
+ Map<String, String> rsp = JsonUtil.unMarshal(terminateRsp.getResponseContent(), Map.class);
+ String jobId = rsp.get(CommonConstant.JOB_ID);
+ if (ValidateUtil.isStrEmpty(jobId)) {
+ LOGGER.error("Invalid jobId from terminate operation");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(terminateRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.INVALID_RESPONSE_FROM_TERMINATE_OPERATION);
+ }
+ LOGGER.info("terminate ns -> end");
+
+ LOGGER.info("update segment job id -> begin");
+ status.setProgress("60");
+ status.setStatusDescription("NS is termination completed");
+ status.setJobId(jobId);
+ resourceOperationStatusRepository.save(status);
+ LOGGER.info("update segment job id -> end");
+
+ return terminateRsp;
+ }
+
+ /**
+ * get ns progress by job Id <br>
+ *
+ * @param nsOperationKey The OperationKey for NS resource
+ * @param jobId the job id
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ public RestfulResponse getNsProgress(NsOperationKey nsOperationKey, String jobId) throws ApplicationException {
+
+ ValidateUtil.assertObjectNotNull(jobId);
+ // Step 1: query the current resource operation status
+ ResourceOperationStatus status = new ResourceOperationStatus(nsOperationKey.getServiceId(),
+ nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID());
+ status = resourceOperationStatusRepository.findOne(Example.of(status))
+ .orElseThrow(() -> new ApplicationException(404, "Cannot Find Operation Status"));
+ // Step 2: start query
+ LOGGER.info("query ns status -> begin");
+ String url = getUrl(jobId, CommonConstant.Step.QUERY);
+ String methodType = CommonConstant.MethodType.GET;
+ // prepare restful parameters and options
+ RestfulResponse rsp = restfulUtil.send(url, methodType, "");
+ ValidateUtil.assertObjectNotNull(rsp);
+ LOGGER.info("query ns progress response status is : {}", rsp.getStatus());
+ LOGGER.info("query ns progress response content is : {}", rsp.getResponseContent());
+ // Step 3:check the response staus
+ if (!HttpCode.isSucess(rsp.getStatus())) {
+ LOGGER.info("fail to query job status");
+ status.setErrorCode(String.valueOf(rsp.getStatus()));
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_QUERY_JOB_STATUS);
+ }
+ // Step 4: Process Network Service Instantiate Response
+ NsProgressStatus nsProgress = JsonUtil.unMarshal(rsp.getResponseContent(), NsProgressStatus.class);
+ ResponseDescriptor rspDesc = nsProgress.getResponseDescriptor();
+ // Step 5: update segment operation progress
+
+ status.setProgress(rspDesc.getProgress());
+ status.setStatusDescription(rspDesc.getStatusDescription());
+ resourceOperationStatusRepository.save(status);
+
+ // Step 6: update segment operation status
+ if (RequestsDbConstant.Progress.ONE_HUNDRED.equals(rspDesc.getProgress())
+ && RequestsDbConstant.Status.FINISHED.equals(rspDesc.getStatus())) {
+ LOGGER.info("job result is succeeded, operType is {}", status.getOperType());
+ status.setErrorCode(String.valueOf(rsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED);
+
+ if (RequestsDbConstant.OperationType.CREATE.equalsIgnoreCase(status.getOperType())
+ || "createInstance".equalsIgnoreCase(status.getOperType())) {
+ status.setStatus(RequestsDbConstant.Status.FINISHED);
+ }
+ resourceOperationStatusRepository.save(status);
+ } else if (RequestsDbConstant.Status.ERROR.equals(rspDesc.getStatus())) {
+ LOGGER.error("job result is failed, operType is {}", status.getOperType());
+ status.setErrorCode(String.valueOf(rsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED);
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.JOB_STATUS_ERROR);
+ } else {
+ LOGGER.error("unexcepted response status");
+ }
+ LOGGER.info("query ns status -> end");
+
+ return rsp;
+ }
+
+ /**
+ * Scale NS instance <br>
+ *
+ * @param nsInstanceId The NS instance id
+ * @param segInput input parameters for current node from http request
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ public RestfulResponse scaleNs(String nsInstanceId, NSResourceInputParameter segInput) throws ApplicationException {
+ // Call the NFVO to scale service
+ LOGGER.info("scale ns -> begin");
+
+ // Step1: Prepare restful parameters and options
+ VFCScaleData oRequest = new VFCScaleData();
+ oRequest.setNsInstanceId(nsInstanceId);
+ NsScaleParameters nsScaleParameters = segInput.getNsScaleParameters();
+ oRequest.setScaleType(nsScaleParameters.getScaleType());
+ oRequest.setScaleNsData(nsScaleParameters.getScaleNsByStepsData());
+ String scaleReq = JsonUtil.marshal(oRequest);
+
+ // Step2: prepare url and method type
+ String url = getUrl(nsInstanceId, CommonConstant.Step.SCALE);
+ String methodType = CommonConstant.MethodType.POST;
+ LOGGER.info("scale ns request is {}", scaleReq);
+ // Step3: Call NFVO lcm to scale ns
+ RestfulResponse scaleRsp = restfulUtil.send(url, methodType, scaleReq);
+
+ ResourceOperationStatus status = new ResourceOperationStatus(segInput.getNsOperationKey().getServiceId(),
+ segInput.getNsOperationKey().getOperationId(), segInput.getNsOperationKey().getNodeTemplateUUID());
+ ResourceOperationStatus nsOperInfo = resourceOperationStatusRepository.findOne(Example.of(status))
+ .orElseThrow(() -> new ApplicationException(404, "Cannot Find Operation Status"));
+ ValidateUtil.assertObjectNotNull(scaleRsp);
+ if (!HttpCode.isSucess(scaleRsp.getStatus())) {
+ LOGGER.error("update segment operation status : fail to scale ns");
+ nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR);
+ nsOperInfo.setErrorCode(String.valueOf(scaleRsp.getStatus()));
+ nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.SCALE_NS_FAILED);
+ resourceOperationStatusRepository.save(nsOperInfo);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_SCALE_NS);
+ }
+ LOGGER.info("scale ns response status is {}", scaleRsp.getStatus());
+ LOGGER.info("scale ns response content is {}", scaleRsp.getResponseContent());
+
+ ValidateUtil.assertObjectNotNull(scaleRsp.getResponseContent());
+ @SuppressWarnings("unchecked")
+ Map<String, String> rsp = JsonUtil.unMarshal(scaleRsp.getResponseContent(), Map.class);
+ String jobId = rsp.get(CommonConstant.JOB_ID);
+ if (ValidateUtil.isStrEmpty(jobId)) {
+ LOGGER.error("Invalid jobId from scale operation");
+ nsOperInfo.setStatus(RequestsDbConstant.Status.ERROR);
+ nsOperInfo.setErrorCode(String.valueOf(scaleRsp.getStatus()));
+ nsOperInfo.setStatusDescription(CommonConstant.StatusDesc.SCALE_NS_FAILED);
+ resourceOperationStatusRepository.save(nsOperInfo);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.INVALID_RESPONSE_FROM_SCALE_OPERATION);
+ }
+
+ LOGGER.info("update resource operation status job id -> begin");
+ // Step 4: update segment operation job id
+ nsOperInfo.setJobId(jobId);
+ resourceOperationStatusRepository.save(nsOperInfo);
+ LOGGER.info("update segment operation job id -> end");
+ LOGGER.info("scale ns -> end");
+
+ return scaleRsp;
+ }
+
+ /**
+ * get url for the operation <br>
+ *
+ * @param variable variable should be put in the url
+ * @param step step of the operation (terminate,query,delete)
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ private String getUrl(String variable, String step) {
+
+ String url;
+ String originalUrl;
+ originalUrl = nfvoUrlMap.get(step);
+ url = String.format(originalUrl, variable);
+ return url;
+
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005.java b/src/main/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005.java
new file mode 100644
index 0000000..9033bec
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005.java
@@ -0,0 +1,620 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import java.time.LocalDateTime;
+import java.util.*;
+import org.onap.so.adapters.vfc.constant.CommonConstant;
+import org.onap.so.adapters.vfc.constant.CommonConstant.Step;
+import org.onap.so.adapters.vfc.constant.DriverExceptionID;
+import org.onap.so.adapters.vfc.constant.HttpCode;
+import org.onap.so.adapters.vfc.exceptions.ApplicationException;
+import org.onap.so.adapters.vfc.model.*;
+import org.onap.so.adapters.vfc.util.JsonUtil;
+import org.onap.so.adapters.vfc.util.RestfulUtil;
+import org.onap.so.adapters.vfc.util.ValidateUtil;
+import org.onap.so.db.request.beans.InstanceNfvoMapping;
+import org.onap.so.db.request.beans.OperationStatus;
+import org.onap.so.db.request.beans.ResourceOperationStatus;
+import org.onap.so.db.request.data.repository.InstanceNfvoMappingRepository;
+import org.onap.so.db.request.data.repository.OperationStatusRepository;
+import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository;
+import org.onap.so.requestsdb.RequestsDbConstant;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.context.annotation.Primary;
+import org.springframework.data.domain.Example;
+import org.springframework.stereotype.Component;
+
+/**
+ * VF-C Manager <br>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-08-28
+ */
+@Component
+@Primary
+public class VfcManagerSol005 {
+
+ private static final Logger LOGGER = LoggerFactory.getLogger(VfcManagerSol005.class);
+
+ /**
+ * nfvo url map
+ */
+ private Map<String, String> nfvoUrlMap;
+
+ @Autowired
+ private ResourceOperationStatusRepository resourceOperationStatusRepository;
+
+ @Autowired
+ private RestfulUtil restfulUtil;
+
+ @Autowired
+ private OperationStatusRepository operationStatusRepository;
+
+ @Autowired
+ private InstanceNfvoMappingRepository instanceNfvoMappingRepository;
+
+ private InstanceNfvoMapping instanceNfvoMapping = new InstanceNfvoMapping();
+
+ public VfcManagerSol005() {
+ nfvoUrlMap = new HashMap<>();
+ nfvoUrlMap.put(Step.CREATE, CommonConstant.SOL005_NFVO_CREATE_URL);
+ nfvoUrlMap.put(Step.INSTANTIATE, CommonConstant.SOL005_NFVO_INSTANTIATE_URL);
+ nfvoUrlMap.put(Step.TERMINATE, CommonConstant.SOL005_NFVO_TERMINATE_URL);
+ nfvoUrlMap.put(Step.DELETE, CommonConstant.SOL005_NFVO_DELETE_URL);
+ nfvoUrlMap.put(Step.QUERY, CommonConstant.SOL005_NFVO_QUERY_URL);
+ nfvoUrlMap.put(Step.SCALE, CommonConstant.NFVO_SCALE_URL);
+ }
+
+ /**
+ * create network service <br>
+ *
+ * @param segInput input parameters for current node from http request
+ * @return
+ * @since ONAP Dubilin Release
+ */
+ public RestfulResponse createNs(NSResourceInputParameter segInput) throws ApplicationException {
+
+ Map<String, String> nfvoDetails;
+ // Step1: get service template by node type
+ String nsdId = segInput.getNsServiceModelUUID();
+ // nsdId for NFVO is "id" in the response, while for SDNO is "servcice template id"
+ LOGGER.info("serviceTemplateId is {}, id is {}", nsdId, nsdId);
+
+
+ LOGGER.info("SOL005 create ns -> begin");
+ // Step2: Prepare url and method type
+ String url = getUrl(null, CommonConstant.Step.CREATE);
+ String methodType = CommonConstant.MethodType.POST;
+
+ // Step3: Prepare restful parameters and options
+ CreateNsRequest createNsRequest = new CreateNsRequest();
+ createNsRequest.setNsDescription(segInput.getNsServiceDescription());
+ createNsRequest.setNsdId(segInput.getNsServiceModelUUID());
+ createNsRequest.setNsName(segInput.getNsServiceName());
+
+ String createReq = JsonUtil.marshal(createNsRequest);
+ RestfulResponse aaiRestfulResponse = null;
+ NsParameters nsParameters = segInput.getNsParameters();
+ if (nsParameters.getAdditionalParamForNs().containsKey("orchestrator")) {
+ if (nsParameters.getAdditionalParamForNs().get("orchestrator") != null) {
+ String nfvo = nsParameters.getAdditionalParamForNs().get("nfvo").toString();
+ aaiRestfulResponse = restfulUtil.getNfvoFromAAI(nfvo);
+ nfvoDetails = JsonUtil.unMarshal(aaiRestfulResponse.getResponseContent(), Map.class);
+ url = nfvoDetails.get("url") + nfvoDetails.get("api-root") + url;
+
+ }
+ } else {
+ LOGGER.error("Nfvo not present in AAI");
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_CREATE_NS);
+ }
+
+
+ // Prepare request header for createNs request.
+ Map<String, String> requestHeader = new HashMap<>();
+ requestHeader.put("GLOBALCUSTOMERID", segInput.getNsOperationKey().getGlobalSubscriberId());
+ requestHeader.put("SERVICETYPE", segInput.getNsOperationKey().getServiceType());
+
+ // Step4: Call NFVO or SDNO lcm to create ns
+ LOGGER.info("Request Payload for CreateNs: " + createReq);
+
+ RestfulResponse createRsp = restfulUtil.send(url, methodType, createReq, requestHeader);
+ ValidateUtil.assertObjectNotNull(createRsp);
+ LOGGER.info("create ns response status is : {}", createRsp.getStatus());
+ LOGGER.info("create ns response content is : {}", createRsp.getResponseContent());
+
+ // Step 5: save resource operation information
+ ResourceOperationStatus status = new ResourceOperationStatus(segInput.getNsOperationKey().getServiceId(),
+ segInput.getNsOperationKey().getOperationId(), segInput.getNsOperationKey().getNodeTemplateUUID());
+ status.setStatus(RequestsDbConstant.Status.PROCESSING);
+ status = resourceOperationStatusRepository.save(status);
+ if (!HttpCode.isSucess(createRsp.getStatus())) {
+ LOGGER.error("update segment operation status : fail to create ns");
+ status.setProgress("40");
+ status.setStatusDescription("NS not created");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(createRsp.getStatus()));
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_CREATE_NS);
+ }
+ // TODO: Capture all the content of the response. Currently fetching ID value alone.
+ // Should be converted into the NsInstance.class
+ @SuppressWarnings("unchecked")
+ Map<String, String> rsp = JsonUtil.unMarshal(createRsp.getResponseContent(), Map.class);
+ String nsInstanceId = rsp.get(CommonConstant.SOL005_NS_INSTANCE_ID);
+ if (ValidateUtil.isStrEmpty(nsInstanceId)) {
+ LOGGER.error("Invalid instanceId from create operation");
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.INVALID_RESPONSEE_FROM_CREATE_OPERATION);
+ }
+
+ nfvoDetails = JsonUtil.unMarshal(aaiRestfulResponse.getResponseContent(), Map.class);
+ instanceNfvoMapping.setInstanceId(nsInstanceId);
+ instanceNfvoMapping.setPassword(nfvoDetails.get("password"));
+ instanceNfvoMapping.setUsername(nfvoDetails.get("userName"));
+ instanceNfvoMapping.setNfvoName(nfvoDetails.get("nfvoId"));
+ instanceNfvoMapping.setEndpoint(nfvoDetails.get("url"));
+ instanceNfvoMapping.setApiRoot(nfvoDetails.get("api-root"));
+ instanceNfvoMappingRepository.save(instanceNfvoMapping);
+ LOGGER.info("create ns -> end");
+ LOGGER.info("save segment and operaton info -> begin");
+ // Step 6: add relation between service and NS
+ AaiUtil.addRelation(segInput.getNsOperationKey().getGlobalSubscriberId(),
+ segInput.getNsOperationKey().getServiceType(), segInput.getNsOperationKey().getServiceId(),
+ nsInstanceId);
+ LOGGER.info("save segment and operation info -> end");
+ return createRsp;
+ }
+
+ /**
+ * delete network service <br>
+ *
+ * @param nsOperationKey The operation key of the NS resource
+ * @param nsInstanceId The NS instance id
+ * @return
+ * @since ONAP Dublin Release
+ */
+ public RestfulResponse deleteNs(NsOperationKey nsOperationKey, String nsInstanceId) throws ApplicationException {
+ LOGGER.info("SOL005 delete ns -> begin");
+ // Step1: prepare url and methodType
+ String url = getUrl(nsInstanceId, CommonConstant.Step.DELETE);
+ String methodType = CommonConstant.MethodType.DELETE;
+
+ // Step2: prepare restful parameters and options
+ RestfulResponse deleteRsp = restfulUtil.send(url, methodType, "");
+ ValidateUtil.assertObjectNotNull(deleteRsp);
+ LOGGER.info("delete ns response status is : {}", deleteRsp.getStatus());
+ LOGGER.info("delete ns response content is : {}", deleteRsp.getResponseContent());
+ LOGGER.info("delete ns -> end");
+
+ ResourceOperationStatus status = new ResourceOperationStatus(nsOperationKey.getServiceId(),
+ nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID());
+ if (!HttpCode.isSucess(deleteRsp.getStatus())) {
+ LOGGER.error("fail to delete ns");
+
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(deleteRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_DELETE_NS);
+ }
+
+ // Step3: remove relation info between service and ns
+ AaiUtil.removeRelation(nsOperationKey.getGlobalSubscriberId(), nsOperationKey.getServiceType(),
+ nsOperationKey.getServiceId(), nsInstanceId);
+ LOGGER.info("delete segment information -> end");
+
+ // Step4: update service segment operation status
+ status.setStatus(RequestsDbConstant.Status.FINISHED);
+ status.setErrorCode(String.valueOf(deleteRsp.getStatus()));
+ status.setProgress("100");
+ status.setStatusDescription("VFC resource deletion finished");
+ resourceOperationStatusRepository.save(status);
+ LOGGER.info("update segment operaton status for delete -> end");
+
+ return deleteRsp;
+
+ }
+
+ /**
+ * instantiate network service <br>
+ *
+ * @param nsInstanceId The NS instance id
+ * @param segInput input parameters for current node from http request
+ * @return
+ * @since ONAP Dublin Release
+ */
+ public RestfulResponse instantiateNs(String nsInstanceId, NSResourceInputParameter segInput)
+ throws ApplicationException {
+ // Call the NFVO or SDNO service to instantiate service
+ LOGGER.info("SOL005 instantiate ns -> begin");
+
+ // Step1: Prepare restful parameters and options
+ InstantiateNsRequest instantiateNsRequest = new InstantiateNsRequest();
+
+ NsInstantiateReq oRequest = new NsInstantiateReq();
+ oRequest.setNsInstanceId(nsInstanceId);
+ NsParameters nsParameters = segInput.getNsParameters();
+
+ ArrayList<VnfLocationConstraint> vnfLocationConstraints = new ArrayList<VnfLocationConstraint>();
+ for (LocationConstraint locationConstraint : nsParameters.getLocationConstraints()) {
+ VnfLocationConstraint vnfLocationConstraint = new VnfLocationConstraint();
+ vnfLocationConstraint.setVnfProfileId(locationConstraint.getVnfProfileId());
+ vnfLocationConstraint.setLocationConstraints(null);
+ vnfLocationConstraints.add(vnfLocationConstraint);
+
+ }
+ instantiateNsRequest.setAditionalParamsForNs(nsParameters.getAdditionalParamForNs());
+ // Setting FlavourID which is a mandatory paramater to default
+ // as UUI is not sending this parameter to so
+ instantiateNsRequest.setNsFlavourId("default");
+ String instReq = JsonUtil.marshal(instantiateNsRequest);
+ LOGGER.info("Request Payload for InstantiateNs: " + instReq);
+ // Step2: prepare url and
+ String url = getUrl(nsInstanceId, CommonConstant.Step.INSTANTIATE);
+ String methodType = CommonConstant.MethodType.POST;
+ instanceNfvoMapping = instanceNfvoMappingRepository.findOneByInstanceId(nsInstanceId);
+
+ if (instanceNfvoMapping != null) {
+
+ url = instanceNfvoMapping.getEndpoint() + instanceNfvoMapping.getApiRoot() + url;
+
+ } else {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+
+ }
+ // Step3: prepare restful parameters and options
+ Map<String, String> reqBody = new HashMap<>();
+ reqBody.put("terminationTime", LocalDateTime.now().toString());
+ RestfulResponse instRsp = restfulUtil.send(url, methodType, instReq);
+ ResourceOperationStatus status = new ResourceOperationStatus(segInput.getNsOperationKey().getServiceId(),
+ segInput.getNsOperationKey().getOperationId(), segInput.getNsOperationKey().getNodeTemplateUUID());
+ ValidateUtil.assertObjectNotNull(instRsp);
+ if (!HttpCode.isSucess(instRsp.getStatus())) {
+ LOGGER.error("update segment operation status : fail to instantiate ns");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(instRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ }
+ LOGGER.info("instantiate ns response status is : {}", instRsp.getStatus());
+ LOGGER.info("response payload is {}", instRsp.getResponseContent());
+ String jobId = null;
+ if (instRsp.getStatus() == 202) {
+ String jobUri = instRsp.getRespHeaderStr(CommonConstant.JOB_URI);
+ LOGGER.info("JOB URI" + jobUri);
+ jobId = jobUri.split("/")[4];
+ if (ValidateUtil.isStrEmpty(jobId)) {
+ LOGGER.error("Invalid jobId from instantiate operation");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(instRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.INVALID_RESPONSE_FROM_INSTANTIATE_OPERATION);
+ }
+
+ } else if (instRsp.getStatus() > 400 && instRsp.getStatus() < 600) {
+ LOGGER.error("ERROR while executing instantiateNs request");
+ ProblemDetails problemDetails = JsonUtil.unMarshal(instRsp.getResponseContent(), ProblemDetails.class);
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(instRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED + problemDetails.getDetail());
+ resourceOperationStatusRepository.save(status);
+ if (instRsp.getStatus() == 406) {
+ throw new ApplicationException(HttpCode.NOT_ACCEPTABLE, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ } else if (instRsp.getStatus() == 400) {
+ throw new ApplicationException(HttpCode.BAD_REQUEST, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ } else if (instRsp.getStatus() == 404) {
+ throw new ApplicationException(HttpCode.NOT_FOUND, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ } else if (instRsp.getStatus() == 409) {
+ LOGGER.error("The operation cannot be executed currently,\n"
+ + "due to a conflict with the state of the resource");
+ throw new ApplicationException(HttpCode.RESPOND_CONFLICT, DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ } else if (instRsp.getStatus() == 500) {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ } else {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.FAIL_TO_INSTANTIATE_NS);
+ }
+
+ }
+ LOGGER.info("Job id is " + jobId);
+ LOGGER.info("Nfvo Details" + instanceNfvoMapping.toString());
+ LOGGER.info("instantiate ns -> end");
+ // Step 3: update segment operation job id
+ LOGGER.info("update resource operation status job id -> begin");
+ status.setJobId(jobId);
+ status.setProgress("100");
+ status.setStatusDescription("NS initiation completed.");
+ resourceOperationStatusRepository.save(status);
+ instanceNfvoMapping.setJobId(jobId);
+ instanceNfvoMappingRepository.save(instanceNfvoMapping);
+ LOGGER.info("update segment operation job id -> end" + instanceNfvoMapping.toString());
+ return instRsp;
+ }
+
+ /**
+ * terminate network service <br>
+ *
+ * @param nsOperationKey The operation key for NS resource
+ * @param nsInstanceId The NS instance id
+ * @return
+ * @since ONAP Dublin Release
+ */
+ public RestfulResponse terminateNs(NsOperationKey nsOperationKey, String nsInstanceId) throws ApplicationException {
+ // Step1: save segment operation info for delete process
+ LOGGER.info("save segment operation for delete process");
+ ResourceOperationStatus status = new ResourceOperationStatus(nsOperationKey.getServiceId(),
+ nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID());
+ status.setStatus(RequestsDbConstant.Status.PROCESSING);
+ resourceOperationStatusRepository.save(status);
+
+ LOGGER.info("SOL005 terminate ns -> begin");
+ // Step2: prepare url and method type
+ String url = getUrl(nsInstanceId, CommonConstant.Step.TERMINATE);
+ String methodType = CommonConstant.MethodType.POST;
+
+ instanceNfvoMapping = instanceNfvoMappingRepository.findOneByInstanceId(nsInstanceId);
+
+ if (instanceNfvoMapping != null) {
+
+ url = instanceNfvoMapping.getEndpoint() + instanceNfvoMapping.getApiRoot() + url;
+
+ } else {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ }
+ // Step3: prepare restful parameters and options
+ Map<String, String> reqBody = new HashMap<>();
+ reqBody.put("terminationTime", LocalDateTime.now().toString());
+
+ // Step4: Call the NFVO or SDNO service to terminate service
+ LOGGER.info("request body for terminate NS" + JsonUtil.marshal(reqBody));
+ RestfulResponse terminateRsp = restfulUtil.send(url, methodType, JsonUtil.marshal(reqBody));
+ ValidateUtil.assertObjectNotNull(terminateRsp);
+ LOGGER.info("terminate ns response status is : {}", terminateRsp.getStatus());
+ LOGGER.info("terminate ns response content is : {}", terminateRsp.getResponseContent());
+ // Step 3: update segment operation
+ if (!HttpCode.isSucess(terminateRsp.getStatus())) {
+ LOGGER.error("fail to terminate ns");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(terminateRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ }
+ // @SuppressWarnings("unchecked")
+ String jobId = null;
+ Map<String, String> rsp = new HashMap<>();
+ if (terminateRsp.getStatus() == 202) {
+ String jobUri = terminateRsp.getRespHeaderStr(CommonConstant.JOB_URI);
+ jobId = jobUri.split("/")[4];
+ jobId.split("/");
+ if (ValidateUtil.isStrEmpty(jobId)) {
+ LOGGER.error("Invalid jobId from instantiate operation");
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(terminateRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED);
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR,
+ DriverExceptionID.INVALID_RESPONSE_FROM_INSTANTIATE_OPERATION);
+ }
+ rsp.put(CommonConstant.JOB_ID, jobId);
+ LOGGER.info("terminate ns -> end");
+ LOGGER.info("update segment job id -> begin");
+ status.setProgress("60");
+ status.setStatusDescription("NS is termination completed");
+ status.setJobId(jobId);
+ resourceOperationStatusRepository.save(status);
+ LOGGER.info("update segment job id -> end");
+ } else if (terminateRsp.getStatus() > 400 && terminateRsp.getStatus() < 600) {
+ LOGGER.error("ERROR while executing instantiateNs request");
+ ProblemDetails problemDetails = JsonUtil.unMarshal(terminateRsp.getResponseContent(), ProblemDetails.class);
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setErrorCode(String.valueOf(terminateRsp.getStatus()));
+ status.setStatusDescription(CommonConstant.StatusDesc.TERMINATE_NS_FAILED + problemDetails.getDetail());
+ resourceOperationStatusRepository.save(status);
+ if (terminateRsp.getStatus() == 406) {
+ throw new ApplicationException(HttpCode.NOT_ACCEPTABLE, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ } else if (terminateRsp.getStatus() == 400) {
+ throw new ApplicationException(HttpCode.BAD_REQUEST, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ } else if (terminateRsp.getStatus() == 404) {
+ throw new ApplicationException(HttpCode.NOT_FOUND, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ } else if (terminateRsp.getStatus() == 409) {
+ LOGGER.error("The operation cannot be executed currently,\n"
+ + "due to a conflict with the state of the resource");
+ throw new ApplicationException(HttpCode.RESPOND_CONFLICT, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ } else if (terminateRsp.getStatus() == 500) {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ } else {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_TERMINATE_NS);
+ }
+
+ }
+ instanceNfvoMapping.setJobId(jobId);
+ instanceNfvoMappingRepository.save(instanceNfvoMapping);
+ terminateRsp.setResponseContent(rsp.toString());
+ return terminateRsp;
+ }
+
+ /**
+ * get ns progress by job Id <br>
+ *
+ * @param nsOperationKey The OperationKey for NS resource
+ * @param jobId the job id
+ * @return
+ * @since ONAP Dublin Release
+ */
+ public RestfulResponse getNsProgress(NsOperationKey nsOperationKey, String jobId) throws ApplicationException {
+
+ ValidateUtil.assertObjectNotNull(jobId);
+ // Step 1: query the current resource operation status
+ ResourceOperationStatus status = new ResourceOperationStatus(nsOperationKey.getServiceId(),
+ nsOperationKey.getOperationId(), nsOperationKey.getNodeTemplateUUID());
+ // status = resourceOperationStatusRepository.findOne(Example.of(status))
+ // .orElseThrow(() -> new ApplicationException(404, "Cannot Find Operation Status"));
+
+ // Get NFVO details
+ instanceNfvoMapping = instanceNfvoMappingRepository.findOneByJobId(jobId);
+
+ // Step 2: start query
+ LOGGER.info("SOL005 query ns status -> begin");
+ String url = getUrl(jobId, CommonConstant.Step.QUERY);
+ String methodType = CommonConstant.MethodType.GET;
+ if (instanceNfvoMapping != null) {
+
+ url = instanceNfvoMapping.getEndpoint() + instanceNfvoMapping.getApiRoot() + url;
+
+ } else {
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_QUERY_JOB_STATUS);
+ }
+
+ // prepare restful parameters and options
+ RestfulResponse rsp = restfulUtil.send(url, methodType, "");
+ ValidateUtil.assertObjectNotNull(rsp);
+ LOGGER.info("query ns progress response status is : {}", rsp.getStatus());
+ LOGGER.info("query ns progress response content is : {}", rsp.getResponseContent());
+ // Step 3:check the response staus
+ if (!HttpCode.isSucess(rsp.getStatus())) {
+ LOGGER.info("fail to query job status");
+ ProblemDetails problemDetails = JsonUtil.unMarshal(rsp.getResponseContent(), ProblemDetails.class);
+ status.setErrorCode(String.valueOf(rsp.getStatus()));
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setStatusDescription(CommonConstant.StatusDesc.QUERY_JOB_STATUS_FAILED + problemDetails.getDetail());
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_QUERY_JOB_STATUS);
+ }
+ // Step 4: Process Network Service Instantiate Response
+ NsLcmOpOcc nsProgress = JsonUtil.unMarshal(rsp.getResponseContent(), NsLcmOpOcc.class);
+ if (CommonConstant.operationState.FAILED.equals(nsProgress.getOperationState())) {
+ LOGGER.info("NS instantiate fails");
+ status.setErrorCode(String.valueOf(rsp.getStatus()));
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setStatusDescription(
+ CommonConstant.StatusDesc.INSTANTIATE_NS_FAILED + nsProgress.getError().getDetail());
+ resourceOperationStatusRepository.save(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.FAIL_TO_QUERY_JOB_STATUS);
+ }
+ // Step 5: update segment operation progress
+
+ if (nsProgress.getOperationState().equals(CommonConstant.operationState.PROCESSING)) {
+ status.setProgress("40");
+ status.setStatus(RequestsDbConstant.Status.PROCESSING);
+ status.setStatusDescription("NS operation is in progress");
+ resourceOperationStatusRepository.save(status);
+ updateOperationStatusBasedOnResourceStatus(status);
+ } else if (nsProgress.getOperationState().equals(CommonConstant.operationState.PARTIALLY_COMPLETED)) {
+ status.setProgress("60");
+ status.setStatus(RequestsDbConstant.Status.PROCESSING);
+ status.setStatusDescription("NS operation is partially completed");
+ resourceOperationStatusRepository.save(status);
+ } else if (nsProgress.getOperationState().equals(CommonConstant.operationState.COMPLETED)) {
+ status.setStatus(RequestsDbConstant.Status.FINISHED);
+ status.setProgress("100");
+ status.setStatusDescription("NS operation is Completed");
+ resourceOperationStatusRepository.save(status);
+ updateOperationStatusBasedOnResourceStatus(status);
+
+ } else if (nsProgress.getOperationState().equals(CommonConstant.operationState.FAILED)
+ || nsProgress.getOperationState().equals(CommonConstant.operationState.FAILED_TEMP)) {
+ status.setStatus(RequestsDbConstant.Status.ERROR);
+ status.setProgress("0");
+ status.setStatusDescription("NS operation Failed");
+ resourceOperationStatusRepository.save(status);
+ updateOperationStatusBasedOnResourceStatus(status);
+ throw new ApplicationException(HttpCode.INTERNAL_SERVER_ERROR, DriverExceptionID.JOB_STATUS_ERROR);
+ } else {
+ LOGGER.error("unexcepted response status");
+
+ }
+ return rsp;
+ }
+
+ /**
+ * get url for the operation <br>
+ *
+ * @param variable variable should be put in the url
+ * @param step step of the operation (terminate,query,delete)
+ * @return
+ * @since ONAP Dublin Release
+ */
+ private String getUrl(String variable, String step) {
+
+ String url;
+ String originalUrl;
+ originalUrl = nfvoUrlMap.get(step);
+ url = String.format(originalUrl, variable);
+ return url;
+
+ }
+
+ private void updateOperationStatusBasedOnResourceStatus(ResourceOperationStatus operStatus) {
+ String serviceId = operStatus.getServiceId();
+ String operationId = operStatus.getOperationId();
+
+ LOGGER.debug("Request database - update Operation Status Based On Resource Operation Status with service Id: "
+ + "{}, operationId: {}", serviceId, operationId);
+
+ List<ResourceOperationStatus> lstResourceStatus =
+ resourceOperationStatusRepository.findByServiceIdAndOperationId(serviceId, operationId);
+ if (lstResourceStatus == null) {
+ LOGGER.error("Unable to retrieve resourceOperStatus Object by ServiceId: {} operationId: {}", serviceId,
+ operationId);
+ return;
+ }
+
+ // count the total progress
+ int resourceCount = lstResourceStatus.size();
+ int progress = 0;
+ boolean isFinished = true;
+ for (ResourceOperationStatus lstResourceStatu : lstResourceStatus) {
+ progress = progress + Integer.valueOf(lstResourceStatu.getProgress()) / resourceCount;
+ if (RequestsDbConstant.Status.PROCESSING.equals(lstResourceStatu.getStatus())) {
+ isFinished = false;
+ }
+ }
+
+ OperationStatus serviceOperStatus =
+ operationStatusRepository.findOneByServiceIdAndOperationId(serviceId, operationId);
+ if (serviceOperStatus == null) {
+ String error = "Entity not found. Unable to retrieve OperationStatus Object ServiceId: " + serviceId
+ + " operationId: " + operationId;
+ LOGGER.error(error);
+
+ serviceOperStatus = new OperationStatus();
+ serviceOperStatus.setOperationId(operationId);
+ serviceOperStatus.setServiceId(serviceId);
+ }
+
+ progress = progress > 100 ? 100 : progress;
+ serviceOperStatus.setProgress(String.valueOf(progress));
+ serviceOperStatus.setOperationContent(operStatus.getStatusDescription());
+ // if current resource failed. service failed.
+ if (RequestsDbConstant.Status.ERROR.equals(operStatus.getStatus())) {
+ serviceOperStatus.setResult(RequestsDbConstant.Status.ERROR);
+ serviceOperStatus.setReason(operStatus.getStatusDescription());
+ } else if (isFinished) {
+ // if finished
+ serviceOperStatus.setResult(RequestsDbConstant.Status.FINISHED);
+ serviceOperStatus.setProgress(RequestsDbConstant.Progress.ONE_HUNDRED);
+ }
+
+ operationStatusRepository.save(serviceOperStatus);
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/util/JsonUtil.java b/src/main/java/org/onap/so/adapters/vfc/util/JsonUtil.java
new file mode 100644
index 0000000..04109bd
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/util/JsonUtil.java
@@ -0,0 +1,137 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright (C) 2018 IBM.
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.util;
+
+import java.io.IOException;
+import org.onap.so.logger.LoggingAnchor;
+import org.onap.so.adapters.vfc.constant.HttpCode;
+import org.onap.so.adapters.vfc.exceptions.ApplicationException;
+import org.onap.logging.filter.base.ErrorCode;
+import org.onap.so.logger.MessageEnum;
+import com.fasterxml.jackson.annotation.JsonInclude.Include;
+import com.fasterxml.jackson.core.type.TypeReference;
+import com.fasterxml.jackson.databind.DeserializationFeature;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ * Interface for json analyzing.<br/>
+ * <p>
+ * </p>
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-9-6
+ */
+public class JsonUtil {
+
+ /**
+ * Log service
+ */
+ private static final Logger logger = LoggerFactory.getLogger(JsonUtil.class);
+
+ /**
+ * Mapper.
+ */
+ private static final ObjectMapper MAPPER = new ObjectMapper();
+ private static final String UNMARSHAL_FAIL_MSG = "fail to unMarshal json";
+ static {
+ MAPPER.setConfig(MAPPER.getDeserializationConfig().without(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES));
+ MAPPER.setSerializationInclusion(Include.NON_NULL);
+ }
+
+ /**
+ * Constructor<br/>
+ * <p>
+ * </p>
+ *
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ private JsonUtil() {
+
+ }
+
+ /**
+ * Parse the string in form of json.<br/>
+ *
+ * @param jsonstr json string.
+ * @param type that convert json string to
+ * @return model object
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ public static <T> T unMarshal(String jsonstr, Class<T> type) throws ApplicationException {
+ try {
+ return MAPPER.readValue(jsonstr, type);
+ } catch (IOException e) {
+ logger.error(LoggingAnchor.THREE, MessageEnum.RA_NS_EXC.toString(),
+ ErrorCode.BusinessProcessError.getValue(), UNMARSHAL_FAIL_MSG, e);
+ throw new ApplicationException(HttpCode.BAD_REQUEST, UNMARSHAL_FAIL_MSG);
+ }
+ }
+
+ /**
+ * Parse the string in form of json.<br/>
+ *
+ * @param jsonstr json string.
+ * @param type that convert json string to
+ * @return model object
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ public static <T> T unMarshal(String jsonstr, TypeReference<T> type) throws ApplicationException {
+ try {
+ return MAPPER.readValue(jsonstr, type);
+ } catch (IOException e) {
+ logger.error(LoggingAnchor.THREE, MessageEnum.RA_NS_EXC.toString(),
+ ErrorCode.BusinessProcessError.getValue(), UNMARSHAL_FAIL_MSG, e);
+ throw new ApplicationException(HttpCode.BAD_REQUEST, UNMARSHAL_FAIL_MSG);
+ }
+ }
+
+ /**
+ * Convert object to json string.<br/>
+ *
+ * @param srcObj data object
+ * @return json string
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ public static String marshal(Object srcObj) throws ApplicationException {
+ try {
+ return MAPPER.writeValueAsString(srcObj);
+ } catch (IOException e) {
+ logger.error(LoggingAnchor.THREE, MessageEnum.RA_NS_EXC.toString(),
+ ErrorCode.BusinessProcessError.getValue(), "fail to marshal json", e);
+ throw new ApplicationException(HttpCode.BAD_REQUEST, "srcObj marshal failed!");
+ }
+ }
+
+ /**
+ * Get mapper.<br/>
+ *
+ * @return mapper
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ public static ObjectMapper getMapper() {
+ return MAPPER;
+ }
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/util/RestfulUtil.java b/src/main/java/org/onap/so/adapters/vfc/util/RestfulUtil.java
new file mode 100644
index 0000000..54a2a98
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/util/RestfulUtil.java
@@ -0,0 +1,393 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * Modifications Copyright (C) 2018.
+ * Modifications Copyright (c) 2019 Samsung
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.util;
+
+import java.net.HttpURLConnection;
+import java.net.SocketTimeoutException;
+import java.util.Base64;
+import java.util.HashMap;
+import java.util.Map;
+import javax.ws.rs.core.UriBuilder;
+import org.onap.so.logger.LoggingAnchor;
+import org.apache.http.Header;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.config.RequestConfig;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.apache.http.client.methods.HttpRequestBase;
+import org.apache.http.conn.ConnectTimeoutException;
+import org.apache.http.entity.ContentType;
+import org.apache.http.entity.StringEntity;
+import org.apache.http.impl.client.HttpClientBuilder;
+import org.apache.http.util.EntityUtils;
+import org.onap.so.adapters.vfc.model.RestfulResponse;
+import org.onap.logging.filter.base.ErrorCode;
+import org.onap.so.logger.MessageEnum;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.core.env.Environment;
+import org.springframework.stereotype.Component;
+
+/**
+ * <br>
+ * <p>
+ * </p>
+ * utility to invoke restclient
+ *
+ * @author
+ * @version ONAP Amsterdam Release 2017-9-6
+ */
+@Component
+public class RestfulUtil {
+
+ /**
+ * Log service
+ */
+ private static final Logger logger = LoggerFactory.getLogger(RestfulUtil.class);
+
+ private static final int DEFAULT_TIME_OUT = 60000;
+
+ private static final String ONAP_IP = "ONAP_IP";
+
+ private static final String DEFAULT_MSB_IP = "127.0.0.1";
+
+ private static final Integer DEFAULT_MSB_PORT = 80;
+
+ private static final String VFC_ADAPTER = "VFC Adapter";
+
+ @Autowired
+ private Environment env;
+
+ @Autowired
+ private HttpClient client;
+
+ public String getMsbHost() {
+ // MSB_IP will be set as ONAP_IP environment parameter in install flow.
+ String msbIp = System.getenv().get(ONAP_IP);
+ // if ONAP IP is not set. get it from config file.
+ if (null == msbIp || msbIp.isEmpty()) {
+ msbIp = env.getProperty("mso.msb-ip", DEFAULT_MSB_IP);
+ }
+ Integer msbPort = env.getProperty("mso.msb-port", Integer.class, DEFAULT_MSB_PORT);
+
+ String msbEndpoint = UriBuilder.fromPath("").host(msbIp).port(msbPort).scheme("http").build().toString();
+ logger.debug("msbEndpoint in vfc adapter: {}", msbEndpoint);
+
+ return msbEndpoint;
+ }
+
+ private RestfulUtil() {
+
+ }
+
+
+ public RestfulResponse send(String msbUrl, String methodType, String content, Map<String, String> requestHeader) {
+ // String msbUrl = getMsbHost() + url;
+ logger.debug("Begin to sent message " + methodType + ": " + msbUrl);
+
+ HttpRequestBase method = null;
+ HttpResponse httpResponse = null;
+
+ try {
+ int timeout = DEFAULT_TIME_OUT;
+
+ RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(timeout).setConnectTimeout(timeout)
+ .setConnectionRequestTimeout(timeout).build();
+
+ HttpClient client = HttpClientBuilder.create().build();
+
+ if ("POST".equalsIgnoreCase(methodType)) {
+ HttpPost httpPost = new HttpPost(msbUrl);
+ httpPost.setConfig(requestConfig);
+ for (String key : requestHeader.keySet()) {
+ httpPost.setHeader(key, requestHeader.get(key));
+ }
+ httpPost.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON));
+ method = httpPost;
+ } else if ("PUT".equalsIgnoreCase(methodType)) {
+ HttpPut httpPut = new HttpPut(msbUrl);
+ httpPut.setConfig(requestConfig);
+ httpPut.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON));
+ method = httpPut;
+ } else if ("GET".equalsIgnoreCase(methodType)) {
+ HttpGet httpGet = new HttpGet(msbUrl);
+ httpGet.setConfig(requestConfig);
+ method = httpGet;
+ } else if ("DELETE".equalsIgnoreCase(methodType)) {
+ HttpDelete httpDelete = new HttpDelete(msbUrl);
+ httpDelete.setConfig(requestConfig);
+ method = httpDelete;
+ }
+
+ // now VFC have no auth
+ // String userCredentials =
+ // SDNCAdapterProperties.getEncryptedProperty(Constants.SDNC_AUTH_PROP,
+ // Constants.DEFAULT_SDNC_AUTH, Constants.ENCRYPTION_KEY);
+ // String authorization = "Basic " +
+ // DatatypeConverter.printBase64Binary(userCredentials.getBytes());
+ // method.setHeader("Authorization", authorization);
+
+ httpResponse = client.execute(method);
+ Map<String, String> responseHeader = new HashMap<>();
+ String responseContent = null;
+ if (httpResponse.getEntity() != null) {
+ responseContent = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+ Header[] httpResponseAllHeaders = httpResponse.getAllHeaders();
+ for (Header header : httpResponseAllHeaders) {
+ responseHeader.put(header.getName(), header.getValue());
+
+ }
+ }
+
+ int statusCode = httpResponse.getStatusLine().getStatusCode();
+ String statusMessage = httpResponse.getStatusLine().getReasonPhrase();
+
+ logger.debug("VFC Response: {} {}", statusCode,
+ statusMessage + (responseContent == null ? "" : System.lineSeparator() + responseContent));
+
+ if (httpResponse.getStatusLine().getStatusCode() >= 300) {
+ String errMsg = "VFC returned " + statusCode + " " + statusMessage;
+ logError(errMsg);
+ return createResponse(statusCode, errMsg);
+ }
+
+ httpResponse = null;
+
+ if (null != method) {
+ method.reset();
+ } else {
+ logger.debug("method is NULL:");
+ }
+
+ method = null;
+ return createResponse(statusCode, responseContent, responseHeader);
+
+ } catch (SocketTimeoutException | ConnectTimeoutException e) {
+ String errMsg = "Request to VFC timed out";
+ logError(errMsg, e);
+ return createResponse(HttpURLConnection.HTTP_CLIENT_TIMEOUT, errMsg);
+
+ } catch (Exception e) {
+ String errMsg = "Error processing request to VFC";
+ logError(errMsg, e);
+ return createResponse(HttpURLConnection.HTTP_INTERNAL_ERROR, errMsg);
+
+ } finally {
+ if (httpResponse != null) {
+ try {
+ EntityUtils.consume(httpResponse.getEntity());
+ } catch (Exception e) {
+ logger.debug("Exception :", e);
+ }
+ }
+
+ if (method != null) {
+ try {
+ method.reset();
+ } catch (Exception e) {
+ logger.debug("Exception :", e);
+ }
+ }
+ }
+ }
+
+ public RestfulResponse send(String msbUrl, String methodType, String content) {
+ if (!msbUrl.contains("http")) {
+ msbUrl = getMsbHost() + msbUrl;
+ }
+ // String msbUrl = getMsbHost() + url;
+ logger.debug("Begin to sent message " + methodType + ": " + msbUrl);
+
+ HttpRequestBase method = null;
+ HttpResponse httpResponse = null;
+
+ try {
+ int timeout = DEFAULT_TIME_OUT;
+
+ RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(timeout).setConnectTimeout(timeout)
+ .setConnectionRequestTimeout(timeout).build();
+
+ if ("POST".equalsIgnoreCase(methodType)) {
+ HttpPost httpPost = new HttpPost(msbUrl);
+ httpPost.setConfig(requestConfig);
+ httpPost.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON));
+ method = httpPost;
+ } else if ("PUT".equalsIgnoreCase(methodType)) {
+ HttpPut httpPut = new HttpPut(msbUrl);
+ httpPut.setConfig(requestConfig);
+ httpPut.setEntity(new StringEntity(content, ContentType.APPLICATION_JSON));
+ method = httpPut;
+ } else if ("GET".equalsIgnoreCase(methodType)) {
+ HttpGet httpGet = new HttpGet(msbUrl);
+ httpGet.setConfig(requestConfig);
+ method = httpGet;
+ } else if ("DELETE".equalsIgnoreCase(methodType)) {
+ HttpDelete httpDelete = new HttpDelete(msbUrl);
+ httpDelete.setConfig(requestConfig);
+ method = httpDelete;
+ }
+
+ // now VFC have no auth
+ // String userCredentials =
+ // SDNCAdapterProperties.getEncryptedProperty(Constants.SDNC_AUTH_PROP,
+ // Constants.DEFAULT_SDNC_AUTH, Constants.ENCRYPTION_KEY);
+ // String authorization = "Basic " +
+ // DatatypeConverter.printBase64Binary(userCredentials.getBytes());
+ // method.setHeader("Authorization", authorization);
+
+ httpResponse = client.execute(method);
+ Map<String, String> responseHeader = new HashMap<>();
+ String responseContent = null;
+ if (httpResponse.getEntity() != null) {
+ responseContent = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+ Header[] httpResponseAllHeaders = httpResponse.getAllHeaders();
+ for (Header header : httpResponseAllHeaders) {
+ responseHeader.put(header.getName(), header.getValue());
+
+ }
+ }
+
+ int statusCode = httpResponse.getStatusLine().getStatusCode();
+ String statusMessage = httpResponse.getStatusLine().getReasonPhrase();
+
+ logger.debug("VFC Response: " + statusCode + " " + statusMessage
+ + (responseContent == null ? "" : System.lineSeparator() + responseContent));
+
+ if (httpResponse.getStatusLine().getStatusCode() >= 300) {
+ String errMsg = "VFC returned " + statusCode + " " + statusMessage;
+ logError(errMsg);
+ return createResponse(statusCode, errMsg);
+ }
+
+ httpResponse = null;
+
+ if (null != method) {
+ method.reset();
+ } else {
+ logger.debug("method is NULL:");
+ }
+
+ method = null;
+ return createResponse(statusCode, responseContent, responseHeader);
+
+ } catch (SocketTimeoutException | ConnectTimeoutException e) {
+ String errMsg = "Request to VFC timed out";
+ logError(errMsg, e);
+ return createResponse(HttpURLConnection.HTTP_CLIENT_TIMEOUT, errMsg);
+
+ } catch (Exception e) {
+ String errMsg = "Error processing request to VFC";
+ logError(errMsg, e);
+ return createResponse(HttpURLConnection.HTTP_INTERNAL_ERROR, errMsg);
+
+ } finally {
+ if (httpResponse != null) {
+ try {
+ EntityUtils.consume(httpResponse.getEntity());
+ } catch (Exception e) {
+ logger.debug("Exception :", e);
+ }
+ }
+
+ if (method != null) {
+ try {
+ method.reset();
+ } catch (Exception e) {
+ logger.debug("Exception :", e);
+ }
+ }
+ }
+ }
+
+ public RestfulResponse getNfvoFromAAI(String nfvo) {
+ HttpRequestBase method = null;
+ HttpResponse httpResponse = null;
+ String endPoint = getMsbHost() + "/api/aai-esr-server/v1/nfvos/" + nfvo;
+ logger.info("Endpoint URL" + endPoint);
+ RequestConfig requestConfig = RequestConfig.custom().setSocketTimeout(DEFAULT_TIME_OUT)
+ .setConnectTimeout(DEFAULT_TIME_OUT).setConnectionRequestTimeout(DEFAULT_TIME_OUT).build();
+ HttpClient client = HttpClientBuilder.create().build();
+ HttpGet httpGet = new HttpGet(endPoint);
+ httpGet.setConfig(requestConfig);
+ String encoding = Base64.getEncoder().encodeToString(("AAI:AAI").getBytes());
+ httpGet.setHeader("Authorization", "Basic " + encoding);
+ method = httpGet;
+ String responseContent = null;
+ Map<String, String> responseHeader = null;
+ try {
+ httpResponse = client.execute(method);
+ if (httpResponse.getEntity() != null) {
+ responseContent = EntityUtils.toString(httpResponse.getEntity(), "UTF-8");
+ }
+
+ int statusCode = httpResponse.getStatusLine().getStatusCode();
+ String statusMessage = httpResponse.getStatusLine().getReasonPhrase();
+
+ logger.debug("AAI Response: " + statusCode + " " + statusMessage
+ + (responseContent == null ? "" : System.lineSeparator() + responseContent));
+
+ if (httpResponse.getStatusLine().getStatusCode() >= 300) {
+ String errMsg = "AAI returned " + statusCode + " " + statusMessage;
+ logError(errMsg);
+ return createResponse(statusCode, errMsg);
+ }
+ } catch (Exception e) {
+ String errMsg = "Error processing request to AAI";
+ logError(errMsg, e);
+ return createResponse(HttpURLConnection.HTTP_INTERNAL_ERROR, errMsg);
+ }
+ return createResponse(200, responseContent);
+ }
+
+ private static void logError(String errMsg, Throwable t) {
+ logger.error(LoggingAnchor.FOUR, MessageEnum.RA_NS_EXC.toString(), VFC_ADAPTER,
+ ErrorCode.AvailabilityError.getValue(), errMsg, t);
+ }
+
+ private static void logError(String errMsg) {
+ logger.error(LoggingAnchor.FOUR, MessageEnum.RA_NS_EXC.toString(), VFC_ADAPTER,
+ ErrorCode.AvailabilityError.toString(), errMsg);
+ }
+
+ private static RestfulResponse createResponse(int statusCode, String content) {
+ RestfulResponse rsp = new RestfulResponse();
+ rsp.setStatus(statusCode);
+ rsp.setResponseContent(content);
+ return rsp;
+ }
+
+ private static RestfulResponse createResponse(int statusCode, String content, Map<String, String> responseHeader) {
+ RestfulResponse rsp = new RestfulResponse();
+ rsp.setStatus(statusCode);
+ rsp.setRespHeaderMap(responseHeader);
+ rsp.setResponseContent(content);
+ return rsp;
+ }
+
+}
diff --git a/src/main/java/org/onap/so/adapters/vfc/util/ValidateUtil.java b/src/main/java/org/onap/so/adapters/vfc/util/ValidateUtil.java
new file mode 100644
index 0000000..f56f5af
--- /dev/null
+++ b/src/main/java/org/onap/so/adapters/vfc/util/ValidateUtil.java
@@ -0,0 +1,86 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.util;
+
+import org.onap.so.adapters.vfc.constant.HttpCode;
+import org.onap.so.adapters.vfc.exceptions.ApplicationException;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class ValidateUtil {
+
+ /**
+ * Log server.
+ */
+ private static final Logger LOGGER = LoggerFactory.getLogger(ValidateUtil.class);
+
+ /**
+ * Constructor<br/>
+ * <p>
+ * </p>
+ *
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ private ValidateUtil() {
+
+ }
+
+ /**
+ * Assert String parameter.<br/>
+ *
+ * @param paramValue parameter data
+ * @param paramName parameter name
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ public static void assertStringNotNull(String paramValue, String paramName) throws ApplicationException {
+ if (null != paramValue && !paramValue.isEmpty()) {
+ return;
+ }
+
+ LOGGER.error(paramName + ": Parameter is null or empty.");
+ throw new ApplicationException(HttpCode.BAD_REQUEST, paramName + ": Invalid parameter.");
+ }
+
+ /**
+ * Assert object is null.<br/>
+ *
+ * @param object data object
+ * @since ONAP Amsterdam Release 2017-9-6
+ */
+ public static void assertObjectNotNull(Object object) throws ApplicationException {
+ if (null == object) {
+ LOGGER.error("Object is null.");
+ throw new ApplicationException(HttpCode.BAD_REQUEST, "Object is null.");
+ }
+
+ }
+
+ /**
+ * <br>
+ *
+ * @param str
+ * @return
+ * @since ONAP Amsterdam Release
+ */
+ public static boolean isStrEmpty(String str) {
+ return null == str || str.isEmpty();
+ }
+}
diff --git a/src/main/resources/application-aaf.yaml b/src/main/resources/application-aaf.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/main/resources/application-aaf.yaml
diff --git a/src/main/resources/application-basic.yaml b/src/main/resources/application-basic.yaml
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/src/main/resources/application-basic.yaml
diff --git a/src/main/resources/application.yaml b/src/main/resources/application.yaml
new file mode 100644
index 0000000..4a500b3
--- /dev/null
+++ b/src/main/resources/application.yaml
@@ -0,0 +1,37 @@
+
+server:
+ port: 8080
+ tomcat:
+ max-threads: 50
+
+mso:
+ site-name: unknown
+ logPath: ./logs/vfc/
+
+spring:
+ datasource:
+ jdbc-url: jdbc:mariadb://${DB_HOST}:${DB_PORT}/requestdb
+ username: ${DB_USERNAME}
+ password: ${DB_PASSWORD}
+ driver-class-name: org.mariadb.jdbc.Driver
+ jpa:
+ show-sql: false
+ hibernate:
+ dialect: org.hibernate.dialect.MySQL5Dialect
+ ddl-auto: validate
+ naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+ enable-lazy-load-no-trans: true
+
+#Actuator
+management:
+ endpoints:
+ web:
+ base-path: /manage
+ exposure:
+ include: "*"
+ metrics:
+ se-global-registry: false
+ export:
+ prometheus:
+ enabled: true # Whether exporting of metrics to Prometheus is enabled.
+ step: 1m # Step size (i.e. reporting frequency) to use. \ No newline at end of file
diff --git a/src/test/java/org/onap/so/adapters/vfc/exceptions/ApplicationExceptionTest.java b/src/test/java/org/onap/so/adapters/vfc/exceptions/ApplicationExceptionTest.java
new file mode 100644
index 0000000..c0305f1
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/exceptions/ApplicationExceptionTest.java
@@ -0,0 +1,36 @@
+/*
+ * ============LICENSE_START======================================================= ONAP : SO
+ * ================================================================================ Copyright (C) 2018 TechMahindra
+ * ================================================================================ 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.exceptions;
+
+import static org.junit.Assert.*;
+import org.junit.Test;
+
+public class ApplicationExceptionTest {
+ private ApplicationException application = new ApplicationException(500, null);
+
+ @Test
+ public void testApplicationException() {
+ application.setErrorCode(500);
+ application.setErrorMsg("ErrorMsg");
+ assertEquals(application.getErrorCode(), 500);
+ assertEquals(application.getErrorMsg(), "ErrorMsg");
+ }
+
+ @Test
+ public void testbuildErrorResponse() {
+ assert (application.buildErrorResponse() != null);
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/AddPnfDataTest.java b/src/test/java/org/onap/so/adapters/vfc/model/AddPnfDataTest.java
new file mode 100644
index 0000000..1fedac9
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/AddPnfDataTest.java
@@ -0,0 +1,189 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import static org.junit.Assert.*;
+
+public class AddPnfDataTest {
+ AddPnfData pnfData = new AddPnfData();
+
+ @Test
+ public void getPnfId() {
+ pnfData.getPnfId();
+ }
+
+
+ @Test
+ public void setPnfId() {
+ pnfData.setPnfId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getPnfName() {
+ pnfData.getPnfName();
+ }
+
+ @Test
+ public void setPnfName() {
+ pnfData.setPnfName("Router");
+ }
+
+ @Test
+ public void getPnfdId() {
+ pnfData.getPnfdId();
+ }
+
+ @Test
+ public void setPnfdId() {
+ pnfData.setPnfdId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getPnfProfileId() {
+ pnfData.getPnfProfileId();
+ }
+
+ @Test
+ public void setPnfProfileId() {
+ pnfData.setPnfProfileId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getCpData() {
+ pnfData.getCpData();
+ }
+
+ @Test
+ public void setCpData() {
+ pnfData.setCpData(new List<PnfExtCpData>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<PnfExtCpData> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(PnfExtCpData pnfExtCpData) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends PnfExtCpData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends PnfExtCpData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public PnfExtCpData get(int index) {
+ return null;
+ }
+
+ @Override
+ public PnfExtCpData set(int index, PnfExtCpData element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, PnfExtCpData element) {
+
+ }
+
+ @Override
+ public PnfExtCpData remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<PnfExtCpData> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<PnfExtCpData> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<PnfExtCpData> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/AddressRangeTest.java b/src/test/java/org/onap/so/adapters/vfc/model/AddressRangeTest.java
new file mode 100644
index 0000000..9444efd
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/AddressRangeTest.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class AddressRangeTest {
+ AddressRange addressRange = new AddressRange();
+
+ @Test
+ public void getMinAddress() {
+ addressRange.getMinAddress();
+ }
+
+ @Test
+ public void setMinAddress() {
+ addressRange.setMinAddress("192.168.10.10");
+ }
+
+ @Test
+ public void getMaxAddress() {
+ addressRange.getMaxAddress();
+ }
+
+ @Test
+ public void setMaxAddress() {
+ addressRange.setMaxAddress("192.168.10.10");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/AffectedNsTest.java b/src/test/java/org/onap/so/adapters/vfc/model/AffectedNsTest.java
new file mode 100644
index 0000000..06c52e2
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/AffectedNsTest.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class AffectedNsTest {
+
+ AffectedNs affectedNs = new AffectedNs();
+
+ @Test
+ public void getNsInstanceId() {
+ affectedNs.getNsInstanceId();
+ }
+
+ @Test
+ public void setNsInstanceId() {
+ affectedNs.setNsInstanceId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getNsdId() {
+ affectedNs.getNsdId();
+ }
+
+ @Test
+ public void setNsdId() {
+ affectedNs.setNsdId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/AffectedPnfTest.java b/src/test/java/org/onap/so/adapters/vfc/model/AffectedPnfTest.java
new file mode 100644
index 0000000..beecbe0
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/AffectedPnfTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class AffectedPnfTest {
+ AffectedPnf affectedPnf = new AffectedPnf();
+
+ @Test
+ public void getPnfid() {
+ affectedPnf.getPnfid();
+ }
+
+ @Test
+ public void setPnfid() {
+ affectedPnf.setPnfid("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getPnfdid() {
+ affectedPnf.getPnfdid();
+ }
+
+ @Test
+ public void setPnfdid() {
+ affectedPnf.setPnfdid("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getPnfProfileId() {
+ affectedPnf.getPnfProfileId();
+ }
+
+ @Test
+ public void setPnfProfileId() {
+ affectedPnf.setPnfProfileId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getPnfName() {
+ affectedPnf.getPnfName();
+ }
+
+ @Test
+ public void setPnfName() {
+ affectedPnf.setPnfName("Router");
+ }
+
+ @Test
+ public void getCpInstanceId() {
+ affectedPnf.getCpInstanceId();
+ }
+
+ @Test
+ public void setCpInstanceId() {
+ affectedPnf.setCpInstanceId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/AffectedSapTest.java b/src/test/java/org/onap/so/adapters/vfc/model/AffectedSapTest.java
new file mode 100644
index 0000000..b96fe32
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/AffectedSapTest.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class AffectedSapTest {
+ AffectedSap affectedSap = new AffectedSap();
+
+ @Test
+ public void getSapInstanceId() {
+ affectedSap.getSapInstanceId();
+ }
+
+ @Test
+ public void setSapInstanceId() {
+ affectedSap.setSapInstanceId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getSapdId() {
+ affectedSap.getSapdId();
+ }
+
+ @Test
+ public void setSapdId() {
+ affectedSap.setSapdId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getSapName() {
+ affectedSap.getSapName();
+ }
+
+ @Test
+ public void setSapName() {
+ affectedSap.setSapName("Dummy SAP");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/AffectedVirtualLinkTest.java b/src/test/java/org/onap/so/adapters/vfc/model/AffectedVirtualLinkTest.java
new file mode 100644
index 0000000..dbc6d08
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/AffectedVirtualLinkTest.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class AffectedVirtualLinkTest {
+ AffectedVirtualLink affectedVirtualLink = new AffectedVirtualLink();
+
+ @Test
+ public void getNsVirtualLinkInstanceId() {
+ affectedVirtualLink.getNsVirtualLinkInstanceId();
+ }
+
+ @Test
+ public void setNsVirtualLinkInstanceId() {
+ affectedVirtualLink.setNsVirtualLinkInstanceId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getNsVirtualLinkDescId() {
+ affectedVirtualLink.getNsVirtualLinkDescId();
+ }
+
+ @Test
+ public void setNsVirtualLinkDescId() {
+ affectedVirtualLink.setNsVirtualLinkDescId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getVlProfileId() {
+ affectedVirtualLink.getVlProfileId();
+ }
+
+ @Test
+ public void setVlProfileId() {
+ affectedVirtualLink.setVlProfileId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/AffectedVnfTest.java b/src/test/java/org/onap/so/adapters/vfc/model/AffectedVnfTest.java
new file mode 100644
index 0000000..810f32d
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/AffectedVnfTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class AffectedVnfTest {
+ AffectedVnf affectedVnf = new AffectedVnf();
+
+ @Test
+ public void getVnfInstanceId() {
+ affectedVnf.getVnfInstanceId();
+ }
+
+ @Test
+ public void setVnfInstanceId() {
+ affectedVnf.setVnfInstanceId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getVnfdId() {
+ affectedVnf.getVnfdId();
+ }
+
+ @Test
+ public void setVnfdId() {
+ affectedVnf.setVnfdId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getVnfProfileId() {
+ affectedVnf.getVnfProfileId();
+ }
+
+ @Test
+ public void setVnfProfileId() {
+ affectedVnf.setVnfProfileId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getVnfName() {
+ affectedVnf.getVnfName();
+ }
+
+ @Test
+ public void setVnfName() {
+ affectedVnf.setVnfName("Dummy Vnf Name");
+ }
+
+ @Test
+ public void getChangedInfo() {
+ affectedVnf.getChangedInfo();
+ }
+
+ @Test
+ public void setChangedInfo() {
+ affectedVnf.setChangedInfo(new ChangedInfo());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/AffectedVnffgTest.java b/src/test/java/org/onap/so/adapters/vfc/model/AffectedVnffgTest.java
new file mode 100644
index 0000000..0d56701
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/AffectedVnffgTest.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class AffectedVnffgTest {
+ AffectedVnffg affectedVnffg = new AffectedVnffg();
+
+ @Test
+ public void getVnffgInstanceId() {
+ affectedVnffg.getVnffgInstanceId();
+ }
+
+ @Test
+ public void setVnffgInstanceId() {
+ affectedVnffg.setVnffgInstanceId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getVnffgdId() {
+ affectedVnffg.getVnffgdId();
+ }
+
+ @Test
+ public void setVnffgdId() {
+ affectedVnffg.setVnffgdId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRuleTest.java b/src/test/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRuleTest.java
new file mode 100644
index 0000000..99a40e4
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/AffinityOrAntiAffinityRuleTest.java
@@ -0,0 +1,283 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import static org.junit.Assert.*;
+
+public class AffinityOrAntiAffinityRuleTest {
+ AffinityOrAntiAffinityRule affinityOrAntiAffinityRule = new AffinityOrAntiAffinityRule();
+
+ @Test
+ public void getVnfdId() {
+ affinityOrAntiAffinityRule.getVnfdId();
+ }
+
+ @Test
+ public void setVnfdId() {
+ affinityOrAntiAffinityRule.setVnfdId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getVnfProfileId() {
+ affinityOrAntiAffinityRule.getVnfProfileId();
+ }
+
+ @Test
+ public void setVnfProfileId() {
+ affinityOrAntiAffinityRule.setVnfProfileId(new List<String>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<String> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(String s) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends String> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends String> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public String get(int index) {
+ return null;
+ }
+
+ @Override
+ public String set(int index, String element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, String element) {
+
+ }
+
+ @Override
+ public String remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<String> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<String> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<String> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+
+ @Test
+ public void getVnfInstanceId() {
+ affinityOrAntiAffinityRule.getVnfInstanceId();
+ }
+
+ @Test
+ public void setVnfInstanceId() {
+ affinityOrAntiAffinityRule.setVnfInstanceId(new List<String>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<String> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(String s) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends String> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends String> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public String get(int index) {
+ return null;
+ }
+
+ @Override
+ public String set(int index, String element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, String element) {
+
+ }
+
+ @Override
+ public String remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<String> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<String> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<String> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/ChangedInfoTest.java b/src/test/java/org/onap/so/adapters/vfc/model/ChangedInfoTest.java
new file mode 100644
index 0000000..41077fb
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/ChangedInfoTest.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class ChangedInfoTest {
+ ChangedInfo changedInfo = new ChangedInfo();
+
+ @Test
+ public void getChangedVnfInfo() {
+ changedInfo.getChangedVnfInfo();
+ }
+
+ @Test
+ public void setChangedVnfInfo() {
+ changedInfo.setChangedVnfInfo(new ModifyVnfInfoData());
+ }
+
+ @Test
+ public void getChangedExtConnectivity() {
+ changedInfo.getChangedExtConnectivity();
+ }
+
+ @Test
+ public void setChangedExtConnectivity() {
+ changedInfo.setChangedExtConnectivity(new ExtVirtualLinkInfo());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/CivicAddressElementTest.java b/src/test/java/org/onap/so/adapters/vfc/model/CivicAddressElementTest.java
new file mode 100644
index 0000000..e9c011b
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/CivicAddressElementTest.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class CivicAddressElementTest {
+ CivicAddressElement civicAddressElement = new CivicAddressElement();
+
+ @Test
+ public void getCaType() {
+ civicAddressElement.getCaType();
+ }
+
+ @Test
+ public void setCaType() {
+ civicAddressElement.setCaType(12);
+ }
+
+ @Test
+ public void getCaValue() {
+ civicAddressElement.getCaValue();
+ }
+
+ @Test
+ public void setCaValue() {
+ civicAddressElement.setCaValue("Dummy Ca value");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/CpProtocolDataTest.java b/src/test/java/org/onap/so/adapters/vfc/model/CpProtocolDataTest.java
new file mode 100644
index 0000000..e47d02c
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/CpProtocolDataTest.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class CpProtocolDataTest {
+ CpProtocolData cpProtocolData = new CpProtocolData();
+
+ @Test
+ public void getLayerProtocol() {
+ cpProtocolData.getLayerProtocol();
+ }
+
+ @Test
+ public void setLayerProtocol() {
+ cpProtocolData.setLayerProtocol("BGP");
+ }
+
+ @Test
+ public void getIpOverEthernet() {
+ cpProtocolData.getIpOverEthernet();
+ }
+
+ @Test
+ public void setIpOverEthernet() {
+ cpProtocolData.setIpOverEthernet(new IpOverEthernetAddressData());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/CreateNsRequestTest.java b/src/test/java/org/onap/so/adapters/vfc/model/CreateNsRequestTest.java
new file mode 100644
index 0000000..a2a6ae4
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/CreateNsRequestTest.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class CreateNsRequestTest {
+ CreateNsRequest createNsRequest = new CreateNsRequest();
+
+ @Test
+ public void getNsdId() {
+ createNsRequest.getNsdId();
+ }
+
+ @Test
+ public void setNsdId() {
+ createNsRequest.setNsdId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getNsDescription() {
+ createNsRequest.getNsDescription();
+ }
+
+ @Test
+ public void setNsDescription() {
+ createNsRequest.setNsDescription("Dummy description");
+ }
+
+ @Test
+ public void getNsName() {
+ createNsRequest.getNsName();
+ }
+
+ @Test
+ public void setNsName() {
+ createNsRequest.setNsName("Dummy Name");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/CustomerModelTest.java b/src/test/java/org/onap/so/adapters/vfc/model/CustomerModelTest.java
new file mode 100644
index 0000000..548d8b3
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/CustomerModelTest.java
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+
+public class CustomerModelTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ CustomerModel customerModel = new CustomerModel();
+
+ @Test
+ public void getGlobalCustomerId() throws Exception {
+ customerModel.getGlobalCustomerId();
+ }
+
+ @Test
+ public void setGlobalCustomerId() throws Exception {
+ customerModel.setGlobalCustomerId("test");
+ }
+
+ @Test
+ public void getServiceType() throws Exception {
+ customerModel.getServiceType();
+ }
+
+ @Test
+ public void setServiceType() throws Exception {
+ customerModel.setServiceType("service");
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfoTest.java b/src/test/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfoTest.java
new file mode 100644
index 0000000..92cec88
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/ExtLinkPortInfoTest.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class ExtLinkPortInfoTest {
+
+ ExtLinkPortInfo extLinkPortInfo = new ExtLinkPortInfo();
+
+ @Test
+ public void getId() {
+ extLinkPortInfo.getId();
+ }
+
+ @Test
+ public void setId() {
+ extLinkPortInfo.setId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getResourceHandle() {
+ extLinkPortInfo.getResourceHandle();
+ }
+
+ @Test
+ public void setResourceHandle() {
+ extLinkPortInfo.setResourceHandle(new ResourceHandle());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfoTest.java b/src/test/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfoTest.java
new file mode 100644
index 0000000..c455b36
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/ExtVirtualLinkInfoTest.java
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class ExtVirtualLinkInfoTest {
+ ExtVirtualLinkInfo extVirtualLinkInfo = new ExtVirtualLinkInfo();
+
+ @Test
+ public void getId() {
+ extVirtualLinkInfo.getId();
+ }
+
+ @Test
+ public void setId() {
+ extVirtualLinkInfo.setId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getResourceHandle() {
+ extVirtualLinkInfo.getResourceHandle();
+ }
+
+ @Test
+ public void setResourceHandle() {
+ extVirtualLinkInfo.setResourceHandle(new ResourceHandle());
+ }
+
+ @Test
+ public void getExtLinkPorts() {
+ extVirtualLinkInfo.getExtLinkPorts();
+ }
+
+ @Test
+ public void setExtLinkPorts() {
+ extVirtualLinkInfo.setExtLinkPorts(new ExtLinkPortInfo());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/InstantiateNsRequestTest.java b/src/test/java/org/onap/so/adapters/vfc/model/InstantiateNsRequestTest.java
new file mode 100644
index 0000000..f27b041
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/InstantiateNsRequestTest.java
@@ -0,0 +1,413 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import static org.junit.Assert.*;
+
+public class InstantiateNsRequestTest {
+ InstantiateNsRequest instantiateNsRequest = new InstantiateNsRequest();
+
+ @Test
+ public void getNsFlavourId() {
+ instantiateNsRequest.getNsFlavourId();
+ }
+
+ @Test
+ public void setNsFlavourId() {
+ instantiateNsRequest.setNsFlavourId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getSapData() {
+ instantiateNsRequest.getSapData();
+ }
+
+ @Test
+ public void setSapData() {
+ instantiateNsRequest.setSapData(new List<SapData>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<SapData> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(SapData sapData) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends SapData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends SapData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public SapData get(int index) {
+ return null;
+ }
+
+ @Override
+ public SapData set(int index, SapData element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, SapData element) {
+
+ }
+
+ @Override
+ public SapData remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<SapData> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<SapData> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<SapData> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+
+ @Test
+ public void getAddpnfData() {
+ instantiateNsRequest.getAddpnfData();
+ }
+
+ @Test
+ public void setAddpnfData() {
+ instantiateNsRequest.setAddpnfData(new List<AddPnfData>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<AddPnfData> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(AddPnfData addPnfData) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends AddPnfData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends AddPnfData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public AddPnfData get(int index) {
+ return null;
+ }
+
+ @Override
+ public AddPnfData set(int index, AddPnfData element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, AddPnfData element) {
+
+ }
+
+ @Override
+ public AddPnfData remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<AddPnfData> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<AddPnfData> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<AddPnfData> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+
+ @Test
+ public void getVnfInstanceData() {
+ instantiateNsRequest.getVnfInstanceData();
+ }
+
+ @Test
+ public void setVnfInstanceData() {
+ instantiateNsRequest.setVnfInstanceData(new List<VnfInstanceData>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<VnfInstanceData> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(VnfInstanceData vnfInstanceData) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends VnfInstanceData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends VnfInstanceData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public VnfInstanceData get(int index) {
+ return null;
+ }
+
+ @Override
+ public VnfInstanceData set(int index, VnfInstanceData element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, VnfInstanceData element) {
+
+ }
+
+ @Override
+ public VnfInstanceData remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<VnfInstanceData> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<VnfInstanceData> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<VnfInstanceData> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+
+ @Test
+ public void getNestedNsInstanceId() {
+ instantiateNsRequest.getNestedNsInstanceId();
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/IpAddressesTest.java b/src/test/java/org/onap/so/adapters/vfc/model/IpAddressesTest.java
new file mode 100644
index 0000000..edf6346
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/IpAddressesTest.java
@@ -0,0 +1,188 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import static org.junit.Assert.*;
+
+public class IpAddressesTest {
+ IpAddresses ipAddresses = new IpAddresses();
+
+ @Test
+ public void getType() {
+ ipAddresses.getType();
+ }
+
+ @Test
+ public void setType() {
+ ipAddresses.setType("Dummy Type");
+ }
+
+ @Test
+ public void getFixedAddresses() {
+ ipAddresses.getFixedAddresses();
+ }
+
+ @Test
+ public void setFixedAddresses() {
+ ipAddresses.setFixedAddresses(new List<String>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<String> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(String s) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends String> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends String> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public String get(int index) {
+ return null;
+ }
+
+ @Override
+ public String set(int index, String element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, String element) {
+
+ }
+
+ @Override
+ public String remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<String> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<String> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<String> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+
+ @Test
+ public void getNumDynamicAddresses() {
+ ipAddresses.getNumDynamicAddresses();
+ }
+
+ @Test
+ public void setNumDynamicAddresses() {
+ ipAddresses.setNumDynamicAddresses(5);
+ }
+
+ @Test
+ public void getAddressRange() {
+ ipAddresses.getAddressRange();
+ }
+
+ @Test
+ public void setAddressRange() {
+ ipAddresses.setAddressRange(new AddressRange());
+ }
+
+ @Test
+ public void getSubnetId() {
+ ipAddresses.getSubnetId();
+ }
+
+ @Test
+ public void setSubnetId() {
+ ipAddresses.setSubnetId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressDataTest.java b/src/test/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressDataTest.java
new file mode 100644
index 0000000..0088cdc
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/IpOverEthernetAddressDataTest.java
@@ -0,0 +1,158 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import static org.junit.Assert.*;
+
+public class IpOverEthernetAddressDataTest {
+ IpOverEthernetAddressData ipOverEthernetAddressData = new IpOverEthernetAddressData();
+
+ @Test
+ public void getMacAddress() {
+ ipOverEthernetAddressData.getMacAddress();
+ }
+
+ @Test
+ public void setMacAddress() {
+ ipOverEthernetAddressData.setMacAddress("4e:86:9f:62:c1:bf");
+ }
+
+ @Test
+ public void getIpAddresses() {
+ ipOverEthernetAddressData.getIpAddresses();
+ }
+
+ @Test
+ public void setIpAddresses() {
+ ipOverEthernetAddressData.setIpAddresses(new List<IpAddresses>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<IpAddresses> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(IpAddresses ipAddresses) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends IpAddresses> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends IpAddresses> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public IpAddresses get(int index) {
+ return null;
+ }
+
+ @Override
+ public IpAddresses set(int index, IpAddresses element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, IpAddresses element) {
+
+ }
+
+ @Override
+ public IpAddresses remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<IpAddresses> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<IpAddresses> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<IpAddresses> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/LinkTest.java b/src/test/java/org/onap/so/adapters/vfc/model/LinkTest.java
new file mode 100644
index 0000000..e447c85
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/LinkTest.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class LinkTest {
+ Link link = new Link();
+
+ @Test
+ public void getHref() {
+ link.getHref();
+ }
+
+ @Test
+ public void setHref() {
+ link.setHref("dummy href");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/LinksTest.java b/src/test/java/org/onap/so/adapters/vfc/model/LinksTest.java
new file mode 100644
index 0000000..aef87c4
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/LinksTest.java
@@ -0,0 +1,89 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class LinksTest {
+ Links links = new Links();
+
+ @Test
+ public void getSelf() {
+ links.getSelf();
+ }
+
+ @Test
+ public void setSelf() {
+ links.setSelf(new Link());
+ }
+
+ @Test
+ public void getNsInstance() {
+ links.getNsInstance();
+ }
+
+ @Test
+ public void setNsInstance() {
+ links.setNsInstance(new Link());
+ }
+
+ @Test
+ public void getCancel() {
+ links.getCancel();
+ }
+
+ @Test
+ public void setCancel() {
+ links.setCancel(new Link());
+ }
+
+ @Test
+ public void getRetry() {
+ links.getRetry();
+ }
+
+ @Test
+ public void setRetry() {
+ links.setRetry(new Link());
+ }
+
+ @Test
+ public void getRollback() {
+ links.getRollback();
+ }
+
+ @Test
+ public void setRollback() {
+ links.setRollback(new Link());
+ }
+
+ @Test
+ public void getContinues() {
+ links.getContinues();
+ }
+
+ @Test
+ public void setContinues() {
+ links.setContinues(new Link());
+ }
+
+ @Test
+ public void getFail() {
+ links.getFail();
+ }
+
+ @Test
+ public void setFail() {
+ links.setFail(new Link());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/LocationConstraintTest.java b/src/test/java/org/onap/so/adapters/vfc/model/LocationConstraintTest.java
new file mode 100644
index 0000000..2b21746
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/LocationConstraintTest.java
@@ -0,0 +1,49 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+
+public class LocationConstraintTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ LocationConstraint locationConstraint = new LocationConstraint();
+
+ @Test
+ public void getVnfProfileId() throws Exception {
+ locationConstraint.getVnfProfileId();
+ }
+
+ @Test
+ public void setVnfProfileId() throws Exception {
+ locationConstraint.setVnfProfileId("profileID");
+ }
+
+ @Test
+ public void getLocationConstraints() throws Exception {
+ locationConstraint.getLocationConstraints();
+ }
+
+ @Test
+ public void setLocationConstraints() throws Exception {
+ locationConstraint.setLocationConstraints(new VimLocation());
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/LocationConstraintsTest.java b/src/test/java/org/onap/so/adapters/vfc/model/LocationConstraintsTest.java
new file mode 100644
index 0000000..e68b12a
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/LocationConstraintsTest.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class LocationConstraintsTest {
+ LocationConstraints locationConstraints = new LocationConstraints();
+
+ @Test
+ public void getCountryCode() {
+ locationConstraints.getCountryCode();
+ }
+
+ @Test
+ public void setCountryCode() {
+ locationConstraints.setCountryCode("IND");
+
+ }
+
+ @Test
+ public void getCivicAddressElement() {
+ locationConstraints.getCivicAddressElement();
+ }
+
+ @Test
+ public void setCivicAddressElement() {
+ locationConstraints.setCivicAddressElement(new CivicAddressElement());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoDataTest.java b/src/test/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoDataTest.java
new file mode 100644
index 0000000..c300923
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/ModifyVnfInfoDataTest.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.HashMap;
+import static org.junit.Assert.*;
+
+public class ModifyVnfInfoDataTest {
+ ModifyVnfInfoData modifyVnfInfoData = new ModifyVnfInfoData();
+
+ @Test
+ public void getVnfInstanceId() {
+ modifyVnfInfoData.getVnfInstanceId();
+ }
+
+ @Test
+ public void setVnfInstanceId() {
+ modifyVnfInfoData.setVnfInstanceId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getVnfInstanceName() {
+ modifyVnfInfoData.getVnfInstanceName();
+ }
+
+ @Test
+ public void setVnfInstanceName() {
+ modifyVnfInfoData.setVnfInstanceName("Dummy vnfInstanceName");
+ }
+
+ @Test
+ public void getVnfInstanceDescription() {
+ modifyVnfInfoData.getVnfInstanceDescription();
+ }
+
+ @Test
+ public void setVnfInstanceDescription() {
+ modifyVnfInfoData.setVnfInstanceDescription("Dummy vnfInstanceDescription");
+ }
+
+ @Test
+ public void getVnfPkgId() {
+ modifyVnfInfoData.getVnfPkgId();
+ }
+
+ @Test
+ public void setVnfPkgId() {
+ modifyVnfInfoData.setVnfPkgId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getVnfConfigurableProperties() {
+ modifyVnfInfoData.getVnfConfigurableProperties();
+ }
+
+ @Test
+ public void setVnfConfigurableProperties() {
+ modifyVnfInfoData.setVnfConfigurableProperties(new HashMap<>());
+ }
+
+ @Test
+ public void getMetadata() {
+ modifyVnfInfoData.getMetadata();
+ }
+
+ @Test
+ public void setMetadata() {
+ modifyVnfInfoData.setMetadata(new HashMap<>());
+ }
+
+ @Test
+ public void getExtensions() {
+ modifyVnfInfoData.getExtensions();
+ }
+
+ @Test
+ public void setExtensions() {
+ modifyVnfInfoData.setExtensions(new HashMap<>());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/NSResourceInputParameterTest.java b/src/test/java/org/onap/so/adapters/vfc/model/NSResourceInputParameterTest.java
new file mode 100644
index 0000000..082d4e6
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/NSResourceInputParameterTest.java
@@ -0,0 +1,69 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+
+public class NSResourceInputParameterTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ NSResourceInputParameter nsResourceInputParameter = new NSResourceInputParameter();
+
+ @Test
+ public void getNsServiceName() throws Exception {
+ nsResourceInputParameter.getNsServiceName();
+ }
+
+ @Test
+ public void setNsServiceName() throws Exception {
+ nsResourceInputParameter.setNsServiceName("service");
+ }
+
+ @Test
+ public void getNsServiceDescription() throws Exception {
+ nsResourceInputParameter.getNsServiceDescription();
+ }
+
+ @Test
+ public void setNsServiceDescription() throws Exception {
+ nsResourceInputParameter.setNsServiceDescription("desc");
+ }
+
+ @Test
+ public void getNsParameters() throws Exception {
+ nsResourceInputParameter.getNsParameters();
+ }
+
+ @Test
+ public void setNsParameters() throws Exception {
+ nsResourceInputParameter.setNsParameters(new NsParameters());
+ }
+
+ @Test
+ public void getNsOperationKey() throws Exception {
+ nsResourceInputParameter.getNsOperationKey();
+ }
+
+ @Test
+ public void setNsOperationKey() throws Exception {
+ nsResourceInputParameter.setNsOperationKey(new NsOperationKey());
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/NsCreateReqTest.java b/src/test/java/org/onap/so/adapters/vfc/model/NsCreateReqTest.java
new file mode 100644
index 0000000..c2e6b58
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/NsCreateReqTest.java
@@ -0,0 +1,69 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+
+public class NsCreateReqTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ NsCreateReq nsCreateReq = new NsCreateReq();
+
+ @Test
+ public void getContext() throws Exception {
+ nsCreateReq.getContext();
+ }
+
+ @Test
+ public void setContext() throws Exception {
+ nsCreateReq.setContext(new CustomerModel());
+ }
+
+ @Test
+ public void getCsarId() throws Exception {
+ nsCreateReq.getCsarId();
+ }
+
+ @Test
+ public void setCsarId() throws Exception {
+ nsCreateReq.setCsarId("csarid");
+ }
+
+ @Test
+ public void getNsName() throws Exception {
+ nsCreateReq.getNsName();
+ }
+
+ @Test
+ public void setNsName() throws Exception {
+ nsCreateReq.setNsName("nsname");
+ }
+
+ @Test
+ public void getDescription() throws Exception {
+ nsCreateReq.getDescription();
+ }
+
+ @Test
+ public void setDescription() throws Exception {
+ nsCreateReq.setDescription("desc");
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/NsInstantiateReqTest.java b/src/test/java/org/onap/so/adapters/vfc/model/NsInstantiateReqTest.java
new file mode 100644
index 0000000..70e54a1
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/NsInstantiateReqTest.java
@@ -0,0 +1,39 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+
+public class NsInstantiateReqTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ NsInstantiateReq nsInstantiateReq = new NsInstantiateReq();
+
+ @Test
+ public void getNsInstanceId() throws Exception {
+ nsInstantiateReq.getNsInstanceId();
+ }
+
+ @Test
+ public void setNsInstanceId() throws Exception {
+ nsInstantiateReq.setNsInstanceId("test");
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/NsLcmOpOccTest.java b/src/test/java/org/onap/so/adapters/vfc/model/NsLcmOpOccTest.java
new file mode 100644
index 0000000..f5d485a
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/NsLcmOpOccTest.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import org.onap.so.adapters.vfc.constant.CommonConstant;
+import java.time.LocalDateTime;
+import java.util.Date;
+import static org.junit.Assert.*;
+
+public class NsLcmOpOccTest {
+ NsLcmOpOcc nsLcmOpOcc = new NsLcmOpOcc();
+
+ @Test
+ public void getLcmOperationType() {
+ nsLcmOpOcc.getLcmOperationType();
+ }
+
+ @Test
+ public void setLcmOperationType() {
+ nsLcmOpOcc.setLcmOperationType(CommonConstant.lcmOperationType.INSTANTIATE);
+ }
+
+ @Test
+ public void getCancelMode() {
+ nsLcmOpOcc.getCancelMode();
+ }
+
+ @Test
+ public void setCancelMode() {
+ nsLcmOpOcc.setCancelMode(CommonConstant.cancelMode.GRACEFUL);
+ }
+
+ @Test
+ public void getOperationState() {
+ nsLcmOpOcc.getOperationState();
+ }
+
+ @Test
+ public void setOperationState() {
+ nsLcmOpOcc.setOperationState(CommonConstant.operationState.COMPLETED);
+ }
+
+ @Test
+ public void getId() {
+ nsLcmOpOcc.getId();
+ }
+
+ @Test
+ public void setId() {
+ nsLcmOpOcc.setId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getStatusEnteredTime() {
+ nsLcmOpOcc.getStatusEnteredTime();
+ }
+
+ @Test
+ public void setStatusEnteredTime() {
+ nsLcmOpOcc.setStatusEnteredTime(LocalDateTime.now().toString());
+ }
+
+ @Test
+ public void getNsInstanceId() {
+ nsLcmOpOcc.getNsInstanceId();
+ }
+
+ @Test
+ public void setNsInstanceId() {
+ nsLcmOpOcc.setNsInstanceId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getStartTime() {
+ nsLcmOpOcc.getStartTime();
+ }
+
+ @Test
+ public void setStartTime() {
+ nsLcmOpOcc.setStartTime(LocalDateTime.now().toString());
+ }
+
+ @Test
+ public void getAutomaticInvocation() {
+ nsLcmOpOcc.getAutomaticInvocation();
+ }
+
+ @Test
+ public void setAutomaticInvocation() {
+ nsLcmOpOcc.setAutomaticInvocation(true);
+ }
+
+ @Test
+ public void getOperationParams() {
+ nsLcmOpOcc.getOperationParams();
+ }
+
+ @Test
+ public void setOperationParams() {
+ nsLcmOpOcc.setOperationParams("Dummy operationParams");
+ }
+
+ @Test
+ public void getCancelPending() {
+ nsLcmOpOcc.getCancelPending();
+ }
+
+ @Test
+ public void setCancelPending() {
+ nsLcmOpOcc.setCancelPending(true);
+ }
+
+ @Test
+ public void getError() {
+ nsLcmOpOcc.getError();
+ }
+
+ @Test
+ public void setError() {
+ nsLcmOpOcc.setError(new ProblemDetails());
+ }
+
+ @Test
+ public void getLinks() {
+ nsLcmOpOcc.getLinks();
+ }
+
+ @Test
+ public void setLinks() {
+ nsLcmOpOcc.setLinks(new Links());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/NsOperationKeyTest.java b/src/test/java/org/onap/so/adapters/vfc/model/NsOperationKeyTest.java
new file mode 100644
index 0000000..a8939f8
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/NsOperationKeyTest.java
@@ -0,0 +1,79 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+
+public class NsOperationKeyTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ NsOperationKey nsOperationKey = new NsOperationKey();
+
+ @Test
+ public void getGlobalSubscriberId() throws Exception {
+ nsOperationKey.getGlobalSubscriberId();
+ }
+
+ @Test
+ public void setGlobalSubscriberId() throws Exception {
+ nsOperationKey.setGlobalSubscriberId("subscriberid");
+ }
+
+ @Test
+ public void getServiceType() throws Exception {
+ nsOperationKey.getServiceType();
+ }
+
+ @Test
+ public void setServiceType() throws Exception {
+ nsOperationKey.setServiceType("servicetype");
+ }
+
+ @Test
+ public void getServiceId() throws Exception {
+ nsOperationKey.getServiceId();
+ }
+
+ @Test
+ public void setServiceId() throws Exception {
+ nsOperationKey.setServiceId("serviceid");
+ }
+
+ @Test
+ public void getOperationId() throws Exception {
+ nsOperationKey.getOperationId();
+ }
+
+ @Test
+ public void setOperationId() throws Exception {
+ nsOperationKey.setOperationId("test");
+ }
+
+ @Test
+ public void getNodeTemplateUUID() throws Exception {
+ nsOperationKey.getNodeTemplateUUID();
+ }
+
+ @Test
+ public void setNodeTemplateUUID() throws Exception {
+ nsOperationKey.setNodeTemplateUUID("nodeTemplateid");
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/NsParametersTest.java b/src/test/java/org/onap/so/adapters/vfc/model/NsParametersTest.java
new file mode 100644
index 0000000..45c46ed
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/NsParametersTest.java
@@ -0,0 +1,51 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.Collections;
+import java.util.HashMap;
+
+public class NsParametersTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ NsParameters nsParameters = new NsParameters();
+
+ @Test
+ public void getLocationConstraints() throws Exception {
+ nsParameters.getLocationConstraints();
+ }
+
+ @Test
+ public void setLocationConstraints() throws Exception {
+ nsParameters.setLocationConstraints(Collections.emptyList());
+ }
+
+ @Test
+ public void getAdditionalParamForNs() throws Exception {
+ nsParameters.getAdditionalParamForNs();
+ }
+
+ @Test
+ public void setAdditionalParamForNs() throws Exception {
+ nsParameters.setAdditionalParamForNs(new HashMap<>());
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/NsProgressStatusTest.java b/src/test/java/org/onap/so/adapters/vfc/model/NsProgressStatusTest.java
new file mode 100644
index 0000000..b1040ef
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/NsProgressStatusTest.java
@@ -0,0 +1,60 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.Arrays;
+
+public class NsProgressStatusTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ NsProgressStatus nsProgressStatus = new NsProgressStatus();
+
+ @Test
+ public void getJobId() throws Exception {
+ nsProgressStatus.getJobId();
+ }
+
+ @Test
+ public void setJobId() throws Exception {
+ nsProgressStatus.setJobId("jobid");
+ }
+
+ @Test
+ public void getResponseDescriptor() throws Exception {
+ nsProgressStatus.getResponseDescriptor();
+ }
+
+ @Test
+ public void setResponseDescriptor() throws Exception {
+ nsProgressStatus.setResponseDescriptor(new ResponseDescriptor());
+ }
+
+ @Test
+ public void getResponseHistoryList() throws Exception {
+ nsProgressStatus.getResponseHistoryList();
+ }
+
+ @Test
+ public void setResponseHistoryList() throws Exception {
+ nsProgressStatus.setResponseHistoryList(Arrays.asList(new ResponseDescriptor()));
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/ParamsForVnfTest.java b/src/test/java/org/onap/so/adapters/vfc/model/ParamsForVnfTest.java
new file mode 100644
index 0000000..e0455b0
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/ParamsForVnfTest.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.HashMap;
+import static org.junit.Assert.*;
+
+public class ParamsForVnfTest {
+
+ ParamsForVnf paramsForVnf = new ParamsForVnf();
+
+ @Test
+ public void getVnfProfileId() {
+ paramsForVnf.getVnfProfileId();
+ }
+
+ @Test
+ public void setVnfProfileId() {
+ paramsForVnf.setVnfProfileId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getAdditionalParams() {
+ paramsForVnf.getAdditionalParams();
+ }
+
+ @Test
+ public void setAdditionalParams() {
+ paramsForVnf.setAdditionalParams(new HashMap<>());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/PnfExtCpDataTest.java b/src/test/java/org/onap/so/adapters/vfc/model/PnfExtCpDataTest.java
new file mode 100644
index 0000000..c586c7e
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/PnfExtCpDataTest.java
@@ -0,0 +1,168 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import static org.junit.Assert.*;
+
+public class PnfExtCpDataTest {
+ PnfExtCpData pnfExtCpData = new PnfExtCpData();
+
+ @Test
+ public void getCpInstanceI16() {
+ pnfExtCpData.getCpInstanceI16();
+ }
+
+ @Test
+ public void setCpInstanceI16() {
+ pnfExtCpData.setCpInstanceI16("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getCpdId() {
+ pnfExtCpData.getCpdId();
+ }
+
+ @Test
+ public void setCpdId() {
+ pnfExtCpData.setCpdId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getCpProtocolData() {
+ pnfExtCpData.getCpProtocolData();
+ }
+
+ @Test
+ public void setCpProtocolData() {
+ pnfExtCpData.setCpProtocolData(new List<CpProtocolData>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<CpProtocolData> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(CpProtocolData cpProtocolData) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends CpProtocolData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends CpProtocolData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public CpProtocolData get(int index) {
+ return null;
+ }
+
+ @Override
+ public CpProtocolData set(int index, CpProtocolData element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, CpProtocolData element) {
+
+ }
+
+ @Override
+ public CpProtocolData remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<CpProtocolData> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<CpProtocolData> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<CpProtocolData> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/ProblemDetailsTest.java b/src/test/java/org/onap/so/adapters/vfc/model/ProblemDetailsTest.java
new file mode 100644
index 0000000..ddea6cc
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/ProblemDetailsTest.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class ProblemDetailsTest {
+ ProblemDetails problemDetails = new ProblemDetails();
+
+ @Test
+ public void getType() {
+ problemDetails.getType();
+ }
+
+ @Test
+ public void setType() {
+ problemDetails.setType("Dummy Type");
+ }
+
+ @Test
+ public void getTitle() {
+ problemDetails.getTitle();
+ }
+
+ @Test
+ public void setTitle() {
+ problemDetails.setTitle("Dummy Title");
+ }
+
+ @Test
+ public void getStatus() {
+ problemDetails.getStatus();
+ }
+
+ @Test
+ public void setStatus() {
+ problemDetails.setStatus(200);
+ }
+
+ @Test
+ public void getDetail() {
+ problemDetails.getDetail();
+ }
+
+ @Test
+ public void setDetail() {
+ problemDetails.setTitle("Dummy Title");
+ }
+
+ @Test
+ public void getInstance() {
+ problemDetails.getInstance();
+ }
+
+ @Test
+ public void setInstance() {
+ problemDetails.setInstance("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/ResourceChangesTest.java b/src/test/java/org/onap/so/adapters/vfc/model/ResourceChangesTest.java
new file mode 100644
index 0000000..9c4a029
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/ResourceChangesTest.java
@@ -0,0 +1,773 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import static org.junit.Assert.*;
+
+public class ResourceChangesTest {
+ ResourceChanges resourceChanges = new ResourceChanges();
+
+ @Test
+ public void getAffectedVnfs() {
+ resourceChanges.getAffectedVnfs();
+ }
+
+ @Test
+ public void setAffectedVnfs() {
+ resourceChanges.setAffectedVnfs(new List<AffectedVnf>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<AffectedVnf> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(AffectedVnf affectedVnf) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends AffectedVnf> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends AffectedVnf> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public AffectedVnf get(int index) {
+ return null;
+ }
+
+ @Override
+ public AffectedVnf set(int index, AffectedVnf element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, AffectedVnf element) {
+
+ }
+
+ @Override
+ public AffectedVnf remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<AffectedVnf> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<AffectedVnf> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<AffectedVnf> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+
+ @Test
+ public void getAffectedPnfs() {
+ resourceChanges.getAffectedPnfs();
+ }
+
+ @Test
+ public void setAffectedPnfs() {
+ resourceChanges.setAffectedPnfs(new List<AffectedPnf>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<AffectedPnf> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(AffectedPnf affectedPnf) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends AffectedPnf> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends AffectedPnf> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public AffectedPnf get(int index) {
+ return null;
+ }
+
+ @Override
+ public AffectedPnf set(int index, AffectedPnf element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, AffectedPnf element) {
+
+ }
+
+ @Override
+ public AffectedPnf remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<AffectedPnf> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<AffectedPnf> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<AffectedPnf> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+
+ @Test
+ public void getAffectedVls() {
+ resourceChanges.getAffectedVls();
+ }
+
+ @Test
+ public void setAffectedVls() {
+ resourceChanges.setAffectedVls(new List<AffectedVirtualLink>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<AffectedVirtualLink> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(AffectedVirtualLink affectedVirtualLink) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends AffectedVirtualLink> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends AffectedVirtualLink> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public AffectedVirtualLink get(int index) {
+ return null;
+ }
+
+ @Override
+ public AffectedVirtualLink set(int index, AffectedVirtualLink element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, AffectedVirtualLink element) {
+
+ }
+
+ @Override
+ public AffectedVirtualLink remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<AffectedVirtualLink> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<AffectedVirtualLink> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<AffectedVirtualLink> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+
+ @Test
+ public void getAffectedVnffgs() {
+ resourceChanges.getAffectedVnffgs();
+ }
+
+ @Test
+ public void setAffectedVnffgs() {
+ resourceChanges.setAffectedVnffgs(new List<AffectedVnffg>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<AffectedVnffg> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(AffectedVnffg affectedVnffg) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends AffectedVnffg> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends AffectedVnffg> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public AffectedVnffg get(int index) {
+ return null;
+ }
+
+ @Override
+ public AffectedVnffg set(int index, AffectedVnffg element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, AffectedVnffg element) {
+
+ }
+
+ @Override
+ public AffectedVnffg remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<AffectedVnffg> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<AffectedVnffg> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<AffectedVnffg> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+
+ @Test
+ public void getAffectedNss() {
+ resourceChanges.getAffectedNss();
+ }
+
+ @Test
+ public void setAffectedNss() {
+ resourceChanges.setAffectedNss(new List<AffectedNs>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<AffectedNs> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(AffectedNs affectedNs) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends AffectedNs> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends AffectedNs> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public AffectedNs get(int index) {
+ return null;
+ }
+
+ @Override
+ public AffectedNs set(int index, AffectedNs element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, AffectedNs element) {
+
+ }
+
+ @Override
+ public AffectedNs remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<AffectedNs> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<AffectedNs> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<AffectedNs> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+
+ @Test
+ public void getAffectedSaps() {
+ resourceChanges.getAffectedSaps();
+ }
+
+ @Test
+ public void setAffectedSaps() {
+ resourceChanges.setAffectedSaps(new List<AffectedSap>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<AffectedSap> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(AffectedSap affectedSap) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends AffectedSap> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends AffectedSap> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public AffectedSap get(int index) {
+ return null;
+ }
+
+ @Override
+ public AffectedSap set(int index, AffectedSap element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, AffectedSap element) {
+
+ }
+
+ @Override
+ public AffectedSap remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<AffectedSap> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<AffectedSap> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<AffectedSap> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/ResourceHandleTest.java b/src/test/java/org/onap/so/adapters/vfc/model/ResourceHandleTest.java
new file mode 100644
index 0000000..6390c5a
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/ResourceHandleTest.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class ResourceHandleTest {
+ ResourceHandle resourceHandle = new ResourceHandle();
+
+ @Test
+ public void getVimId() {
+ resourceHandle.getVimId();
+ }
+
+ @Test
+ public void setVimId() {
+ resourceHandle.setVimId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getResourceProviderId() {
+ resourceHandle.getResourceProviderId();
+ }
+
+ @Test
+ public void setResourceProviderId() {
+ resourceHandle.setResourceProviderId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getResourceId() {
+ resourceHandle.getResourceId();
+ }
+
+ @Test
+ public void setResourceId() {
+ resourceHandle.setResourceId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getVimLevelResourceType() {
+ resourceHandle.getVimLevelResourceType();
+ }
+
+ @Test
+ public void setVimLevelResourceType() {
+ resourceHandle.setVimLevelResourceType("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/ResponseDescriptorTest.java b/src/test/java/org/onap/so/adapters/vfc/model/ResponseDescriptorTest.java
new file mode 100644
index 0000000..3f2f735
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/ResponseDescriptorTest.java
@@ -0,0 +1,79 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+
+public class ResponseDescriptorTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ ResponseDescriptor responseDescriptor = new ResponseDescriptor();
+
+ @Test
+ public void getStatus() throws Exception {
+ responseDescriptor.getStatus();
+ }
+
+ @Test
+ public void setStatus() throws Exception {
+ responseDescriptor.setStatus("test");
+ }
+
+ @Test
+ public void getProgress() throws Exception {
+ responseDescriptor.getProgress();
+ }
+
+ @Test
+ public void setProgress() throws Exception {
+ responseDescriptor.setProgress("10");
+ }
+
+ @Test
+ public void getStatusDescription() throws Exception {
+ responseDescriptor.getStatusDescription();
+ }
+
+ @Test
+ public void setStatusDescription() throws Exception {
+ responseDescriptor.setStatusDescription("test");
+ }
+
+ @Test
+ public void getErrorCode() throws Exception {
+ responseDescriptor.getErrorCode();
+ }
+
+ @Test
+ public void setErrorCode() throws Exception {
+ responseDescriptor.setErrorCode(-1);
+ }
+
+ @Test
+ public void getResponseId() throws Exception {
+ responseDescriptor.getResponseId();
+ }
+
+ @Test
+ public void setResponseId() throws Exception {
+ responseDescriptor.setResponseId(1);
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/RestfulResponseTest.java b/src/test/java/org/onap/so/adapters/vfc/model/RestfulResponseTest.java
new file mode 100644
index 0000000..64f8da6
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/RestfulResponseTest.java
@@ -0,0 +1,75 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.HashMap;
+
+public class RestfulResponseTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ RestfulResponse restfulResponse = new RestfulResponse();
+
+ @Test
+ public void getStatus() throws Exception {
+ restfulResponse.getStatus();
+ }
+
+ @Test
+ public void setStatus() throws Exception {
+ restfulResponse.setStatus(1);
+ }
+
+ @Test
+ public void getRespHeaderMap() throws Exception {
+ restfulResponse.getRespHeaderMap();
+ }
+
+ @Test
+ public void setRespHeaderMap() throws Exception {
+ restfulResponse.setRespHeaderMap(new HashMap<>());
+ }
+
+ @Test
+ public void getRespHeaderInt() throws Exception {
+ restfulResponse.getRespHeaderInt("1");
+ }
+
+ @Test
+ public void getRespHeaderLong() throws Exception {
+ restfulResponse.getRespHeaderLong("1");
+ }
+
+ @Test
+ public void getRespHeaderStr() throws Exception {
+ restfulResponse.getRespHeaderStr("test");
+ }
+
+ @Test
+ public void getResponseContent() throws Exception {
+ restfulResponse.getResponseContent();
+ }
+
+ @Test
+ public void setResponseContent() throws Exception {
+ restfulResponse.setResponseContent("responseString");
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/SapDataTest.java b/src/test/java/org/onap/so/adapters/vfc/model/SapDataTest.java
new file mode 100644
index 0000000..2a45599
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/SapDataTest.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import java.util.Collection;
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+import static org.junit.Assert.*;
+
+public class SapDataTest {
+
+ SapData sapData = new SapData();
+
+ @Test
+ public void getSapdId() {
+ sapData.getSapdId();
+ }
+
+ @Test
+ public void setSapdId() {
+ sapData.setSapdId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getSapName() {
+ sapData.getSapName();
+ }
+
+ @Test
+ public void setSapName() {
+ sapData.setSapName("Dummy SapName");
+ }
+
+ @Test
+ public void getDescription() {
+ sapData.getDescription();
+ }
+
+ @Test
+ public void setDescription() {
+ sapData.setDescription("Dummy Description");
+ }
+
+ @Test
+ public void getSapProtocolData() {
+ sapData.getSapProtocolData();
+ }
+
+ @Test
+ public void setSapProtocolData() {
+ sapData.setSapProtocolData(new List<CpProtocolData>() {
+ @Override
+ public int size() {
+ return 0;
+ }
+
+ @Override
+ public boolean isEmpty() {
+ return false;
+ }
+
+ @Override
+ public boolean contains(Object o) {
+ return false;
+ }
+
+ @Override
+ public Iterator<CpProtocolData> iterator() {
+ return null;
+ }
+
+ @Override
+ public Object[] toArray() {
+ return new Object[0];
+ }
+
+ @Override
+ public <T> T[] toArray(T[] a) {
+ return null;
+ }
+
+ @Override
+ public boolean add(CpProtocolData cpProtocolData) {
+ return false;
+ }
+
+ @Override
+ public boolean remove(Object o) {
+ return false;
+ }
+
+ @Override
+ public boolean containsAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(Collection<? extends CpProtocolData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean addAll(int index, Collection<? extends CpProtocolData> c) {
+ return false;
+ }
+
+ @Override
+ public boolean removeAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public boolean retainAll(Collection<?> c) {
+ return false;
+ }
+
+ @Override
+ public void clear() {
+
+ }
+
+ @Override
+ public CpProtocolData get(int index) {
+ return null;
+ }
+
+ @Override
+ public CpProtocolData set(int index, CpProtocolData element) {
+ return null;
+ }
+
+ @Override
+ public void add(int index, CpProtocolData element) {
+
+ }
+
+ @Override
+ public CpProtocolData remove(int index) {
+ return null;
+ }
+
+ @Override
+ public int indexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public int lastIndexOf(Object o) {
+ return 0;
+ }
+
+ @Override
+ public ListIterator<CpProtocolData> listIterator() {
+ return null;
+ }
+
+ @Override
+ public ListIterator<CpProtocolData> listIterator(int index) {
+ return null;
+ }
+
+ @Override
+ public List<CpProtocolData> subList(int fromIndex, int toIndex) {
+ return null;
+ }
+ });
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/VimLocationTest.java b/src/test/java/org/onap/so/adapters/vfc/model/VimLocationTest.java
new file mode 100644
index 0000000..85d3a13
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/VimLocationTest.java
@@ -0,0 +1,39 @@
+
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2018 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+
+public class VimLocationTest {
+ // TODO: following test case is done for coverage
+ // later it should be modified for proper test.
+ VimLocation vimLocation = new VimLocation();
+
+ @Test
+ public void getVimId() throws Exception {
+ vimLocation.getVimId();
+ }
+
+ @Test
+ public void setVimId() throws Exception {
+ vimLocation.setVimId("vimid");
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/VnfInstanceDataTest.java b/src/test/java/org/onap/so/adapters/vfc/model/VnfInstanceDataTest.java
new file mode 100644
index 0000000..b9bdfe3
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/VnfInstanceDataTest.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class VnfInstanceDataTest {
+ VnfInstanceData vnfInstanceData = new VnfInstanceData();
+
+ @Test
+ public void getVnfInstanceId() {
+ vnfInstanceData.getVnfInstanceId();
+ }
+
+ @Test
+ public void setVnfInstanceId() {
+ vnfInstanceData.setVnfInstanceId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getVnfProfileId() {
+ vnfInstanceData.getVnfProfileId();
+ }
+
+ @Test
+ public void setVnfProfileId() {
+ vnfInstanceData.setVnfProfileId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/model/VnfLocationConstraintTest.java b/src/test/java/org/onap/so/adapters/vfc/model/VnfLocationConstraintTest.java
new file mode 100644
index 0000000..b8f9b8e
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/model/VnfLocationConstraintTest.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.model;
+
+import org.junit.Test;
+import static org.junit.Assert.*;
+
+public class VnfLocationConstraintTest {
+ VnfLocationConstraint vnfLocationConstraint = new VnfLocationConstraint();
+
+ @Test
+ public void getVnfProfileId() {
+ vnfLocationConstraint.getVnfProfileId();
+ }
+
+ @Test
+ public void setVnfProfileId() {
+ vnfLocationConstraint.setVnfProfileId("c9f0a95e-dea0-4698-96e5-5a79bc5a233d");
+ }
+
+ @Test
+ public void getLocationConstraints() {
+ vnfLocationConstraint.getLocationConstraints();
+ }
+
+ @Test
+ public void setLocationConstraints() {
+ vnfLocationConstraint.setLocationConstraints(new LocationConstraint());
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/rest/EmbeddedMariaDbConfig.java b/src/test/java/org/onap/so/adapters/vfc/rest/EmbeddedMariaDbConfig.java
new file mode 100644
index 0000000..feb40f7
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/rest/EmbeddedMariaDbConfig.java
@@ -0,0 +1,86 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 - 2018 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import ch.vorburger.exec.ManagedProcessException;
+import ch.vorburger.mariadb4j.DBConfigurationBuilder;
+import ch.vorburger.mariadb4j.springframework.MariaDB4jSpringService;
+import org.springframework.beans.factory.annotation.Qualifier;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.boot.jdbc.DataSourceBuilder;
+import org.springframework.boot.context.properties.ConfigurationProperties;
+import org.springframework.boot.orm.jpa.EntityManagerFactoryBuilder;
+import org.springframework.context.annotation.Bean;
+import org.springframework.context.annotation.Configuration;
+import org.springframework.context.annotation.Primary;
+import org.springframework.context.annotation.Profile;
+import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
+import org.springframework.orm.jpa.JpaTransactionManager;
+import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
+import org.springframework.transaction.PlatformTransactionManager;
+import org.springframework.transaction.annotation.EnableTransactionManagement;
+import javax.persistence.EntityManagerFactory;
+import javax.sql.DataSource;
+
+@Configuration
+@Profile({"test"})
+@EnableTransactionManagement
+@EnableJpaRepositories(entityManagerFactoryRef = "requestEntityManagerFactory",
+ transactionManagerRef = "requestTransactionManager", basePackages = {"org.onap.so.db.request.data.repository"})
+public class EmbeddedMariaDbConfig {
+
+ @Bean
+ MariaDB4jSpringService mariaDB4jSpringService() {
+ return new MariaDB4jSpringService();
+ }
+
+ @Primary
+ @Bean(name = "requestDataSource")
+ @ConfigurationProperties(prefix = "spring.datasource")
+ DataSource dataSource(MariaDB4jSpringService mariaDB4jSpringService,
+ @Value("${mariaDB4j.databaseName}") String databaseName,
+ @Value("${spring.datasource.username}") String datasourceUsername,
+ @Value("${spring.datasource.password}") String datasourcePassword,
+ @Value("${spring.datasource.driver-class-name}") String datasourceDriver) throws ManagedProcessException {
+ // Create our database with default root user and no password
+ mariaDB4jSpringService.getDB().createDB(databaseName);
+
+ DBConfigurationBuilder config = mariaDB4jSpringService.getConfiguration();
+
+ return DataSourceBuilder.create().username(datasourceUsername).password(datasourcePassword)
+ .url(config.getURL(databaseName)).driverClassName(datasourceDriver).build();
+ }
+
+ @Primary
+ @Bean(name = "requestEntityManagerFactory")
+ public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder,
+ @Qualifier("requestDataSource") DataSource dataSource) {
+ return builder.dataSource(dataSource).packages("org.onap.so.db.request.beans").persistenceUnit("requestDB")
+ .build();
+ }
+
+ @Primary
+ @Bean(name = "requestTransactionManager")
+ public PlatformTransactionManager transactionManager(
+ @Qualifier("requestEntityManagerFactory") EntityManagerFactory entityManagerFactory) {
+ return new JpaTransactionManager(entityManagerFactory);
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/rest/HealthCheckHandlerTest.java b/src/test/java/org/onap/so/adapters/vfc/rest/HealthCheckHandlerTest.java
new file mode 100644
index 0000000..fe2bd0b
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/rest/HealthCheckHandlerTest.java
@@ -0,0 +1,67 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import static org.junit.Assert.*;
+import javax.ws.rs.core.Response;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.onap.so.adapters.vfc.MSOVfcApplication;
+import org.springframework.boot.configurationprocessor.json.JSONException;
+import org.springframework.boot.web.server.LocalServerPort;
+import org.springframework.boot.test.context.SpringBootTest;
+import org.springframework.boot.test.web.client.TestRestTemplate;
+import org.springframework.http.HttpEntity;
+import org.springframework.http.HttpHeaders;
+import org.springframework.http.HttpMethod;
+import org.springframework.http.ResponseEntity;
+import org.springframework.test.context.ActiveProfiles;
+import org.springframework.test.context.junit4.SpringRunner;
+
+
+@RunWith(SpringRunner.class)
+@SpringBootTest(classes = MSOVfcApplication.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
+@ActiveProfiles("test")
+public class HealthCheckHandlerTest {
+
+ @LocalServerPort
+ private int port;
+
+ TestRestTemplate restTemplate = new TestRestTemplate();
+
+ HttpHeaders headers = new HttpHeaders();
+
+
+ @Test
+ public void testHealthcheck() throws JSONException {
+
+ HttpEntity<String> entity = new HttpEntity<String>(null, headers);
+
+ ResponseEntity<String> response =
+ restTemplate.exchange(createURLWithPort("manage/health"), HttpMethod.GET, entity, String.class);
+
+ assertEquals(Response.Status.OK.getStatusCode(), response.getStatusCode().value());
+ }
+
+ private String createURLWithPort(String uri) {
+ return "http://localhost:" + port + uri;
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005Test.java b/src/test/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005Test.java
new file mode 100644
index 0000000..799283d
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/rest/VfcManagerSol005Test.java
@@ -0,0 +1,221 @@
+/*
+ * Copyright (C) 2019 Verizon. All Rights Reserved 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.
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Mockito;
+import org.mockito.MockitoAnnotations;
+import org.onap.so.adapters.vfc.exceptions.ApplicationException;
+import org.onap.so.adapters.vfc.model.NSResourceInputParameter;
+import org.onap.so.adapters.vfc.model.RestfulResponse;
+import org.onap.so.adapters.vfc.util.JsonUtil;
+import org.onap.so.adapters.vfc.util.RestfulUtil;
+import org.onap.so.db.request.beans.InstanceNfvoMapping;
+import org.onap.so.db.request.beans.OperationStatus;
+import org.onap.so.db.request.beans.ResourceOperationStatus;
+import org.onap.so.db.request.data.repository.InstanceNfvoMappingRepository;
+import org.onap.so.db.request.data.repository.OperationStatusRepository;
+import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository;
+import org.springframework.test.context.junit4.SpringRunner;
+import java.io.File;
+import java.nio.file.Files;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import static org.mockito.Mockito.when;
+
+@RunWith(SpringRunner.class)
+public class VfcManagerSol005Test {
+ @InjectMocks
+ VfcManagerSol005 vfcManagerSol005;
+
+ @Mock
+ InstanceNfvoMappingRepository instanceNfvoMappingRepository;
+
+ @Mock
+ ResourceOperationStatusRepository resourceOperationStatusRepository;
+
+ @Mock
+ OperationStatusRepository operationStatusRepository;
+
+ @Mock
+ RestfulUtil restfulUtil;
+
+ OperationStatus operationStatus = new OperationStatus();
+
+ InstanceNfvoMapping instanceNfvoMapping = new InstanceNfvoMapping();
+ RestfulResponse restfulResponse = new RestfulResponse();
+ RestfulResponse vfcrestfulResponse = new RestfulResponse();
+ NSResourceInputParameter nsResourceInputParameter = new NSResourceInputParameter();
+ ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus();
+
+ @Test
+ public void createNs() throws ApplicationException, Exception {
+ restfulResponse.setStatus(200);
+ ClassLoader classLoader = ClassLoader.getSystemClassLoader();
+
+ File file = new File(classLoader.getResource("json/createNsReq.json").getFile());
+ String content = new String(Files.readAllBytes(file.toPath())).replace("\n", "");
+ nsResourceInputParameter = JsonUtil.unMarshal(content, NSResourceInputParameter.class);
+ file = new File(classLoader.getResource("json/aainfvoResponse.json").getFile());
+ content = new String(Files.readAllBytes(file.toPath())).replace("\n", "");
+ restfulResponse.setResponseContent(content);
+ // restfulResponse.setResponseContent("{\"nfvoId\":\"6ee79fe2-9579-475a-9bb9-20cf4358a19e\",\"name\":\"external_nfvo\",\"api-root\":\"xyz\",\"vendor\":\"vz\",\"version\":\"v1.0\",\"url\":\"http://sample.com/\",\"userName\":\"admin\",\"password\":\"sacjnasnc\"}");
+ file = new File(classLoader.getResource("json/createNsSol005Response.json").getFile());
+ content = new String(Files.readAllBytes(file.toPath())).replace("\n", "");
+ vfcrestfulResponse.setStatus(202);
+ vfcrestfulResponse.setResponseContent(content);
+ // vfcrestfulResponse.setResponseContent("{\"_links\": {\"heal\": {\"href\": \"\"}, \"instantiate\": {\"href\":
+ // \"\"}, \"nestedNsInstances\": {\"href\": \"\"}, \"scale\": {\"href\": \"\"}, \"self\": {\"href\": \"\"},
+ // \"terminate\": {\"href\": \"\"}, \"update\": {\"href\": \"\"}}, \"additionalAffinityOrAntiAffiniityRule\":
+ // [{\"Scope\": \"\", \"affinityOrAntiAffiinty\": \"\", \"vnfInstanceId\": [], \"vnfProfileId\": [], \"vnfdId\":
+ // []}], \"flavourId\": \"\", \"id\": \"c9f0a95e-dea0-4698-96e5-5a79bc5a233d\", \"nestedNsInstanceId\": [],
+ // \"nsInstanceDescription\": \"\", \"nsInstanceName\": \"\", \"nsScaleStatus\": [{\"nsScaleLevelId\": \"\",
+ // \"nsScalingAspectId\": \"\"}], \"nsState\": \"\", \"nsdId\": \"\", \"nsdInfoId\": \"\", \"pnfInfo\":
+ // [{\"cpInfo\": [{\"cpInstanceId\": \"\", \"cpProtocolData\": {\"ipOverEthernet\": {\"ipAddresses\":
+ // {\"addressRange\": {\"maxAddress\": \"\", \"minAddress\": \"\"}, \"fixedAddresses\": \"\",
+ // \"numDynamicAddresses\": 1, \"subnetId\": \"\", \"type\": \"\"}, \"macAddress\": {}}, \"layerProtocol\":
+ // \"IP_OVER_ETHERNET\"}, \"cpdId\": \"\"}], \"pnfId\": \"\", \"pnfName\": \"\", \"pnfProfileId\": \"\",
+ // \"pnfdId\": \"\", \"pnfdInfoId\": \"\"}], \"sapInfo\": [{\"description\": \"\", \"id\": \"\", \"sapName\":
+ // \"\", \"sapProtocolInfo\": {\"ipOverEthernet\": {\"ipAddresses\": {\"addressRange\": {\"maxAddress\": \"\",
+ // \"minAddress\": \"\"}, \"fixedAddresses\": \"\", \"numDynamicAddresses\": 1, \"subnetId\": \"\", \"type\":
+ // \"\"}, \"macAddress\": \"\"}, \"layerProtocol\": \"IP_OVER_ETHERNET\"}, \"sapdId\": \"\"}],
+ // \"virtualLinkInfo\": [{\"id\": \"\", \"linkPort\": [{\"id\": \"\", \"resourceHandle\": {\"resourceId\": \"\",
+ // \"resourceProviderId\": \"\", \"vimId\": \"\", \"vimLevelResourceType\": \"\"}}], \"nsVirtualLinkDescId\":
+ // \"\", \"resourceHandle\": [{\"resourceId\": \"\", \"resourceProviderId\": \"\", \"vimId\": \"\",
+ // \"vimLevelResourceType\": \"\"}]}], \"vnfInstance\": [{\"vnfInstanceId\": \"\", \"vnfProfileId\": \"\"}],
+ // \"vnffgInfo\": [{\"id\": \"\", \"nfpInfo\": [{\"description\": \"\", \"id\": \"\", \"nfpName\": \"\",
+ // \"nfpRule\": {\"destinationIpAddressPrefix\": \"\", \"destinationPortRange\": \"\", \"dscp\": \"\",
+ // \"etherDestinationAddress\": \"\", \"etherSourceAddress\": \"\", \"etherType\": \"\", \"extendedCriteria\":
+ // [{\"length\": 1, \"startingPoint\": 1, \"value\": \"\"}], \"protocol\": \"\", \"sourceIpAddressPrefix\":
+ // \"\", \"sourcePortRange\": \"\", \"vlanTag\": []}, \"nfpState\": \"\", \"nfpdId\": \"\", \"nscpHandle\":
+ // [{\"nsInstanceId\": \"\", \"nsSapInstanceId\": \"\", \"pnfExtCpInstanceId\": \"\", \"pnfInfoId\": \"\",
+ // \"vnfExtCpInstanceId\": \"\", \"vnfInstanceId\": \"\"}], \"totalCp\": 1}], \"nsCpHandle\":
+ // [{\"nsInstanceId\": \"\", \"nsSapInstanceId\": \"\", \"pnfExtCpInstanceId\": \"\", \"pnfInfoId\": \"\",
+ // \"vnfExtCpInstanceId\": \"\", \"vnfInstanceId\": \"\"}], \"nsVirtualLinkInfoId\": [], \"pnfInfoId\": [],
+ // \"vnfInstanceId\": [], \"vnffgdId\": \"\"}]}");
+
+ resourceOperationStatus.setStatus("processing");
+ resourceOperationStatus.setOperationId(nsResourceInputParameter.getNsOperationKey().getOperationId());
+ resourceOperationStatus.setServiceId(nsResourceInputParameter.getNsOperationKey().getServiceId());
+ resourceOperationStatus
+ .setResourceTemplateUUID(nsResourceInputParameter.getNsOperationKey().getNodeTemplateUUID());
+ when(instanceNfvoMappingRepository.save(instanceNfvoMapping)).thenReturn(instanceNfvoMapping);
+ when(restfulUtil.getNfvoFromAAI("b1bb0ce7-2222-4fa7-95ed-4840d70a1101")).thenReturn(restfulResponse);
+ when(restfulUtil.send(Mockito.anyString(), Mockito.anyString(), Mockito.anyString(), Mockito.anyMap()))
+ .thenReturn(vfcrestfulResponse);
+ when(resourceOperationStatusRepository.save(resourceOperationStatus)).thenReturn(resourceOperationStatus);
+ vfcManagerSol005.createNs(nsResourceInputParameter);
+
+ }
+
+ @Test
+ public void terminateNs() throws Exception {
+ instanceNfvoMapping.setInstanceId("b1bb0ce7-2222-4fa7-95ed-4840d70a1101");
+ instanceNfvoMapping.setPassword("sacjnasnc");
+ instanceNfvoMapping.setUsername("admin");
+ instanceNfvoMapping.setNfvoName("external_nfvo");
+ instanceNfvoMapping.setEndpoint("http://sample.com/");
+ instanceNfvoMapping.setApiRoot("xyz");
+ String nsInstanceId = "c9f0a95e-dea0-4698-96e5-5a79bc5a233d";
+ ClassLoader classLoader = ClassLoader.getSystemClassLoader();
+ File file = new File(classLoader.getResource("json/createNsReq.json").getFile());
+ String content = new String(Files.readAllBytes(file.toPath())).replace("\n", "");
+ nsResourceInputParameter = JsonUtil.unMarshal(content, NSResourceInputParameter.class);
+ Map<String, String> header = new HashMap<>();
+ header.put("Location", "http://192.168.10.57:5000/ns_lcm_op_ops/12204a12-7da2-4ddf-8c2f-992a1a1acebf");
+ vfcrestfulResponse.setStatus(202);
+ vfcrestfulResponse.setResponseContent(null);
+ vfcrestfulResponse.setRespHeaderMap(header);
+ when(instanceNfvoMappingRepository.findOneByInstanceId(nsInstanceId)).thenReturn(instanceNfvoMapping);
+ when(restfulUtil.send(Mockito.anyString(), Mockito.anyString(), Mockito.anyString()))
+ .thenReturn(vfcrestfulResponse);
+ vfcManagerSol005.terminateNs(nsResourceInputParameter.getNsOperationKey(), nsInstanceId);
+ }
+
+ @Test
+ public void getNsProgress() throws Exception {
+ String jobId = "12204a12-7da2-4ddf-8c2f-992a1a1acebf";
+ instanceNfvoMapping.setInstanceId("b1bb0ce7-2222-4fa7-95ed-4840d70a1101");
+ instanceNfvoMapping.setPassword("sacjnasnc");
+ instanceNfvoMapping.setUsername("admin");
+ instanceNfvoMapping.setNfvoName("external_nfvo");
+ instanceNfvoMapping.setEndpoint("http://sample.com/");
+ instanceNfvoMapping.setApiRoot("xyz");
+ instanceNfvoMapping.setJobId(jobId);
+ ClassLoader classLoader = ClassLoader.getSystemClassLoader();
+ File file = new File(classLoader.getResource("json/createNsReq.json").getFile());
+ String content = new String(Files.readAllBytes(file.toPath())).replace("\n", "");
+ nsResourceInputParameter = JsonUtil.unMarshal(content, NSResourceInputParameter.class);
+ operationStatus.setProgress("40");
+ operationStatus.setServiceId(nsResourceInputParameter.getNsOperationKey().getServiceId());
+ operationStatus.setOperationId(nsResourceInputParameter.getNsOperationKey().getOperationId());
+ ResourceOperationStatus resourceOperationStatus =
+ new ResourceOperationStatus(nsResourceInputParameter.getNsOperationKey().getServiceId(),
+ nsResourceInputParameter.getNsOperationKey().getOperationId(),
+ nsResourceInputParameter.getNsOperationKey().getNodeTemplateUUID());
+ file = new File(classLoader.getResource("json/lcmOperRsp.json").getFile());
+ content = new String(Files.readAllBytes(file.toPath())).replace("\n", "");
+ vfcrestfulResponse.setStatus(202);
+ vfcrestfulResponse.setResponseContent(content);
+ List<ResourceOperationStatus> resourceOperationStatuses = new ArrayList<>();
+ resourceOperationStatuses.add(resourceOperationStatus);
+ when(instanceNfvoMappingRepository.findOneByJobId(jobId)).thenReturn(instanceNfvoMapping);
+ when(restfulUtil.send(Mockito.anyString(), Mockito.anyString(), Mockito.anyString()))
+ .thenReturn(vfcrestfulResponse);
+ when(operationStatusRepository.findOneByServiceIdAndOperationId(
+ nsResourceInputParameter.getNsOperationKey().getServiceId(),
+ nsResourceInputParameter.getNsOperationKey().getOperationId())).thenReturn(operationStatus);
+ when(resourceOperationStatusRepository.findByServiceIdAndOperationId(
+ nsResourceInputParameter.getNsOperationKey().getServiceId(),
+ nsResourceInputParameter.getNsOperationKey().getOperationId())).thenReturn(resourceOperationStatuses);
+ when(operationStatusRepository.save(operationStatus)).thenReturn(operationStatus);
+ vfcManagerSol005.getNsProgress(nsResourceInputParameter.getNsOperationKey(), jobId);
+
+ }
+
+ @Test
+ public void instantiateNs() throws Exception {
+ String nsInstanceId = "c9f0a95e-dea0-4698-96e5-5a79bc5a233d";
+ ClassLoader classLoader = ClassLoader.getSystemClassLoader();
+ File file = new File(classLoader.getResource("json/createNsReq.json").getFile());
+ String content = new String(Files.readAllBytes(file.toPath())).replace("\n", "");
+ nsResourceInputParameter = JsonUtil.unMarshal(content, NSResourceInputParameter.class);
+ instanceNfvoMapping.setInstanceId("b1bb0ce7-2222-4fa7-95ed-4840d70a1101");
+ instanceNfvoMapping.setPassword("sacjnasnc");
+ instanceNfvoMapping.setUsername("admin");
+ instanceNfvoMapping.setNfvoName("external_nfvo");
+ instanceNfvoMapping.setEndpoint("http://sample.com/");
+ instanceNfvoMapping.setApiRoot("xyz");
+ resourceOperationStatus.setStatus("processing");
+ resourceOperationStatus.setOperationId(nsResourceInputParameter.getNsOperationKey().getOperationId());
+ resourceOperationStatus.setServiceId(nsResourceInputParameter.getNsOperationKey().getServiceId());
+ resourceOperationStatus
+ .setResourceTemplateUUID(nsResourceInputParameter.getNsOperationKey().getNodeTemplateUUID());
+ Map<String, String> header = new HashMap<>();
+ header.put("Location", "http://192.168.10.57:5000/ns_lcm_op_ops/12204a12-7da2-4ddf-8c2f-992a1a1acebf");
+ vfcrestfulResponse.setStatus(202);
+ vfcrestfulResponse.setResponseContent(null);
+ vfcrestfulResponse.setRespHeaderMap(header);
+ when(instanceNfvoMappingRepository.findOneByInstanceId(nsInstanceId)).thenReturn(instanceNfvoMapping);
+ when(restfulUtil.send(Mockito.anyString(), Mockito.anyString(), Mockito.anyString()))
+ .thenReturn(vfcrestfulResponse);
+ when(resourceOperationStatusRepository.save(resourceOperationStatus)).thenReturn(resourceOperationStatus);
+ when(instanceNfvoMappingRepository.save(instanceNfvoMapping)).thenReturn(instanceNfvoMapping);
+ vfcManagerSol005.instantiateNs(nsInstanceId, nsResourceInputParameter);
+
+ }
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/rest/VfcManagerTest.java b/src/test/java/org/onap/so/adapters/vfc/rest/VfcManagerTest.java
new file mode 100644
index 0000000..08fe618
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/rest/VfcManagerTest.java
@@ -0,0 +1,156 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (c) 2019 Samsung. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.rest;
+
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.so.adapters.vfc.constant.CommonConstant;
+import org.onap.so.adapters.vfc.model.NSResourceInputParameter;
+import org.onap.so.adapters.vfc.model.NsOperationKey;
+import org.onap.so.adapters.vfc.model.NsParameters;
+import org.onap.so.adapters.vfc.model.NsScaleParameters;
+import org.onap.so.adapters.vfc.model.RestfulResponse;
+import org.onap.so.adapters.vfc.util.RestfulUtil;
+import org.onap.so.db.request.beans.ResourceOperationStatus;
+import org.onap.so.db.request.data.repository.ResourceOperationStatusRepository;
+import org.springframework.http.HttpStatus;
+import static org.junit.Assert.*;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class VfcManagerTest {
+
+ @Mock
+ private ResourceOperationStatusRepository resourceOperationStatusRepository;
+
+ @Mock
+ private RestfulUtil restfulUtil;
+
+ @InjectMocks
+ @Spy
+ private VfcManager vfcManager;
+
+ @Test
+ public void createNs() throws Exception {
+
+ NSResourceInputParameter segInput = new NSResourceInputParameter();
+ segInput.setNsOperationKey(new NsOperationKey());
+
+ RestfulResponse restfulResponse = new RestfulResponse();
+ restfulResponse.setStatus(HttpStatus.OK.value());
+ restfulResponse.setResponseContent("{\"" + CommonConstant.NS_INSTANCE_ID + "\": \"someNsInstanceId\"}");
+ when(restfulUtil.send(any(), any(), any())).thenReturn(restfulResponse);
+
+ RestfulResponse response = vfcManager.createNs(segInput);
+ assertEquals(HttpStatus.OK.value(), restfulResponse.getStatus());
+ }
+
+ @Test
+ public void deleteNs() throws Exception {
+
+ RestfulResponse restfulResponse = new RestfulResponse();
+ restfulResponse.setStatus(HttpStatus.OK.value());
+ restfulResponse.setResponseContent("{\"" + CommonConstant.NS_INSTANCE_ID + "\": \"someNsInstanceId\"}");
+ when(restfulUtil.send(any(), any(), any())).thenReturn(restfulResponse);
+
+ NsOperationKey nsOperationKey = new NsOperationKey();
+
+ RestfulResponse response = vfcManager.deleteNs(nsOperationKey, "someNsInstanceId");
+ assertEquals(HttpStatus.OK.value(), restfulResponse.getStatus());
+ }
+
+ @Test
+ public void instantiateNs() throws Exception {
+
+ RestfulResponse restfulResponse = new RestfulResponse();
+ restfulResponse.setStatus(HttpStatus.OK.value());
+ restfulResponse.setResponseContent("{\"" + CommonConstant.JOB_ID + "\": \"someJobId\"}");
+ when(restfulUtil.send(any(), any(), any())).thenReturn(restfulResponse);
+
+ NsParameters nsParameters = new NsParameters();
+ NSResourceInputParameter segInput = new NSResourceInputParameter();
+ segInput.setNsParameters(nsParameters);
+ segInput.setNsOperationKey(new NsOperationKey());
+
+ RestfulResponse response = vfcManager.instantiateNs("someNsInstanceId", segInput);
+ assertEquals(HttpStatus.OK.value(), restfulResponse.getStatus());
+ }
+
+ @Test
+ public void terminateNs() throws Exception {
+
+ NsOperationKey nsOperationKey = new NsOperationKey();
+
+ RestfulResponse restfulResponse = new RestfulResponse();
+ restfulResponse.setStatus(HttpStatus.OK.value());
+ restfulResponse.setResponseContent("{\"" + CommonConstant.JOB_ID + "\": \"someJobId\"}");
+ when(restfulUtil.send(any(), any(), any())).thenReturn(restfulResponse);
+
+ RestfulResponse response = vfcManager.terminateNs(nsOperationKey, "someNsInstanceId");
+ assertEquals(HttpStatus.OK.value(), response.getStatus());
+ }
+
+ @Test
+ public void getNsProgress() throws Exception {
+
+ NsOperationKey nsOperationKey = new NsOperationKey();
+ ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus();
+
+ RestfulResponse restfulResponse = new RestfulResponse();
+ restfulResponse.setStatus(HttpStatus.OK.value());
+ restfulResponse.setResponseContent(
+ "{\"" + CommonConstant.JOB_ID + "\": \"someJobId\", " + "\"responseDescriptor\" : {}}");
+ when(restfulUtil.send(any(), any(), any())).thenReturn(restfulResponse);
+
+ when(resourceOperationStatusRepository.findOne(any()))
+ .thenReturn(java.util.Optional.ofNullable(resourceOperationStatus));
+
+ RestfulResponse response = vfcManager.getNsProgress(nsOperationKey, "someJobId");
+ assertEquals(HttpStatus.OK.value(), response.getStatus());
+ }
+
+ @Test
+ public void scaleNs() throws Exception {
+
+ ResourceOperationStatus resourceOperationStatus = new ResourceOperationStatus();
+ NSResourceInputParameter segInput = new NSResourceInputParameter();
+ NsScaleParameters nsScaleParameters = new NsScaleParameters();
+ segInput.setNsScaleParameters(nsScaleParameters);
+
+ RestfulResponse restfulResponse = new RestfulResponse();
+ restfulResponse.setStatus(HttpStatus.OK.value());
+ segInput.setNsOperationKey(new NsOperationKey());
+ restfulResponse.setResponseContent("{\"" + CommonConstant.JOB_ID + "\": \"someJobId\"}");
+ when(restfulUtil.send(any(), any(), any())).thenReturn(restfulResponse);
+
+ when(resourceOperationStatusRepository.findOne(any()))
+ .thenReturn(java.util.Optional.ofNullable(resourceOperationStatus));
+
+ RestfulResponse response = vfcManager.scaleNs("someNsInstanceId", segInput);
+ assertEquals(HttpStatus.OK.value(), restfulResponse.getStatus());
+ }
+
+}
diff --git a/src/test/java/org/onap/so/adapters/vfc/util/RestfulUtilTest.java b/src/test/java/org/onap/so/adapters/vfc/util/RestfulUtilTest.java
new file mode 100644
index 0000000..4b6baa5
--- /dev/null
+++ b/src/test/java/org/onap/so/adapters/vfc/util/RestfulUtilTest.java
@@ -0,0 +1,164 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (c) 2019 Samsung. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */
+
+package org.onap.so.adapters.vfc.util;
+
+import org.apache.http.HttpEntity;
+import org.apache.http.HttpResponse;
+import org.apache.http.Header;
+import org.apache.http.message.BasicHeader;
+import org.apache.http.StatusLine;
+import org.apache.http.client.HttpClient;
+import org.apache.http.client.methods.HttpDelete;
+import org.apache.http.client.methods.HttpGet;
+import org.apache.http.client.methods.HttpPost;
+import org.apache.http.client.methods.HttpPut;
+import org.junit.Before;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.InjectMocks;
+import org.mockito.Mock;
+import org.mockito.Spy;
+import org.mockito.junit.MockitoJUnitRunner;
+import org.onap.so.adapters.vfc.model.RestfulResponse;
+import org.springframework.http.HttpStatus;
+import javax.ws.rs.HttpMethod;
+import java.io.ByteArrayInputStream;
+import java.io.IOException;
+import static org.junit.Assert.assertEquals;
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.Mockito.doReturn;
+import static org.mockito.Mockito.mock;
+import static org.mockito.Mockito.when;
+
+@RunWith(MockitoJUnitRunner.class)
+public class RestfulUtilTest {
+
+ @InjectMocks
+ @Spy
+ private RestfulUtil restfulUtil;
+
+ @Mock
+ private HttpClient client;
+
+ private HttpEntity httpEntity;
+ private HttpResponse httpResponse;
+ private StatusLine statusLine;
+ private Header httpResponseHeader;
+
+ @Before
+ public void setUp() {
+ httpEntity = mock(HttpEntity.class);
+ httpResponse = mock(HttpResponse.class);
+ statusLine = mock(StatusLine.class);
+ httpResponseHeader = mock(Header.class);
+ }
+
+ private void sendInit() throws IOException {
+
+ Header[] headerList = new BasicHeader[2];
+ headerList[0] = new BasicHeader("Content-Type", "application/json");
+ headerList[1] = new BasicHeader("cache-control", "no-cache");
+ doReturn("https://testHost/").when(restfulUtil).getMsbHost();
+
+ when(statusLine.getStatusCode()).thenReturn(HttpStatus.OK.value());
+ when(httpResponse.getStatusLine()).thenReturn(statusLine);
+ when(httpResponse.getEntity()).thenReturn(httpEntity);
+ when(httpResponse.getAllHeaders()).thenReturn(headerList);
+ }
+
+ @Test
+ public void sendGet() throws Exception {
+
+ sendInit();
+
+ ByteArrayInputStream responseStream = new ByteArrayInputStream(new String("GET").getBytes());
+ when(client.execute(any(HttpGet.class))).thenReturn(httpResponse);
+ when(httpEntity.getContent()).thenReturn(responseStream);
+
+ RestfulResponse restfulResponse = restfulUtil.send("test", HttpMethod.GET, "some request content");
+
+ assertEquals(HttpStatus.OK.value(), restfulResponse.getStatus());
+ assertEquals("GET", restfulResponse.getResponseContent());
+
+ }
+
+ @Test
+ public void sendPost() throws Exception {
+
+ sendInit();
+
+
+ ByteArrayInputStream responseStream = new ByteArrayInputStream(new String("POST").getBytes());
+ when(client.execute(any(HttpPost.class))).thenReturn(httpResponse);
+ when(httpEntity.getContent()).thenReturn(responseStream);
+
+ RestfulResponse restfulResponse = restfulUtil.send("test", HttpMethod.POST, "some request content");
+
+ assertEquals(HttpStatus.OK.value(), restfulResponse.getStatus());
+ assertEquals("POST", restfulResponse.getResponseContent());
+
+ }
+
+ @Test
+ public void sendPut() throws Exception {
+
+ sendInit();
+
+ ByteArrayInputStream responseStream = new ByteArrayInputStream(new String("PUT").getBytes());
+ when(client.execute(any(HttpPut.class))).thenReturn(httpResponse);
+ when(httpEntity.getContent()).thenReturn(responseStream);
+
+ RestfulResponse restfulResponse = restfulUtil.send("test", HttpMethod.PUT, "some request content");
+
+ assertEquals(HttpStatus.OK.value(), restfulResponse.getStatus());
+ assertEquals("PUT", restfulResponse.getResponseContent());
+
+ }
+
+ @Test
+ public void sendDelete() throws Exception {
+
+ sendInit();
+
+ ByteArrayInputStream responseStream = new ByteArrayInputStream(new String("DELETE").getBytes());
+ when(client.execute(any(HttpDelete.class))).thenReturn(httpResponse);
+ when(httpEntity.getContent()).thenReturn(responseStream);
+
+ RestfulResponse restfulResponse = restfulUtil.send("test", HttpMethod.DELETE, "some request content");
+
+ assertEquals(HttpStatus.OK.value(), restfulResponse.getStatus());
+ assertEquals("DELETE", restfulResponse.getResponseContent());
+
+ }
+
+ @Test
+ public void sendOptions() throws Exception {
+
+ doReturn("https://testHost/").when(restfulUtil).getMsbHost();
+
+ RestfulResponse restfulResponse = restfulUtil.send("test", HttpMethod.OPTIONS, "some request content");
+
+ assertEquals(HttpStatus.INTERNAL_SERVER_ERROR.value(), restfulResponse.getStatus());
+ assertEquals("Error processing request to VFC", restfulResponse.getResponseContent());
+
+ }
+
+}
diff --git a/src/test/resources/application-test.yaml b/src/test/resources/application-test.yaml
new file mode 100644
index 0000000..b43d382
--- /dev/null
+++ b/src/test/resources/application-test.yaml
@@ -0,0 +1,64 @@
+
+server:
+ port: 8080
+ tomcat:
+ max-threads: 50
+ssl-enable: false
+mso:
+ adapters:
+ requestDb:
+ auth: Basic YnBlbDptc28tZGItMTUwNyE=
+ endpoint: http://localhost:8081
+ logPath: logs
+ site-name: localSite
+ infra-requests:
+ archived:
+ period: 1
+spring:
+ datasource:
+ jdbc-url: jdbc:mariadb://localhost:3307/requestdb
+ username: root
+ password: password
+ driver-class-name: org.mariadb.jdbc.Driver
+ initialize: true
+ initialization-mode: never
+ jpa:
+ generate-ddl: false
+ show-sql: false
+ hibernate:
+ ddl-auto: validate
+ naming-strategy: org.hibernate.cfg.ImprovedNamingStrategy
+ enable-lazy-load-no-trans: true
+ database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
+ security:
+ usercredentials:
+ -
+ username: test
+ password: '$2a$12$Zi3AuYcZoZO/gBQyUtST2.F5N6HqcTtaNci2Et.ufsQhski56srIu'
+ role: BPEL-Client
+mariaDB4j:
+ dataDir:
+ port: 3307
+ databaseName: requestdb
+
+#Actuator
+management:
+ endpoints:
+ web:
+ base-path: /manage
+ server:
+ servlet:
+ context-path: /manage
+ metrics:
+ se-global-registry: false
+ export:
+ prometheus:
+ enabled: true # Whether exporting of metrics to Prometheus is enabled.
+ step: 1m # Step size (i.e. reporting frequency) to use.
+
+
+flyway:
+ baseline-on-migrate: false
+ url: jdbc:mariadb://localhost:3307/requestdb
+ user: root
+ password: password
diff --git a/src/test/resources/json/LICENSE.txt b/src/test/resources/json/LICENSE.txt
new file mode 100644
index 0000000..bc40e66
--- /dev/null
+++ b/src/test/resources/json/LICENSE.txt
@@ -0,0 +1,19 @@
+/*-
+ * ============LICENSE_START=======================================================
+ * ONAP - SO
+ * ================================================================================
+ * Copyright (C) 2017 Huawei Technologies Co., Ltd. All rights reserved.
+ * ================================================================================
+ * 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.
+ * ============LICENSE_END=========================================================
+ */ \ No newline at end of file
diff --git a/src/test/resources/json/aainfvoResponse.json b/src/test/resources/json/aainfvoResponse.json
new file mode 100644
index 0000000..35047a9
--- /dev/null
+++ b/src/test/resources/json/aainfvoResponse.json
@@ -0,0 +1,10 @@
+{
+ "nfvoId":"6ee79fe2-9579-475a-9bb9-20cf4358a19e",
+ "name":"external_nfvo",
+ "api-root":"xyz",
+ "vendor":"vz",
+ "version":"v1.0",
+ "url":"http://sample.com/",
+ "userName":"admin",
+ "password":"sacjnasnc"
+} \ No newline at end of file
diff --git a/src/test/resources/json/createNsReq.json b/src/test/resources/json/createNsReq.json
new file mode 100644
index 0000000..aec8ae8
--- /dev/null
+++ b/src/test/resources/json/createNsReq.json
@@ -0,0 +1,56 @@
+{
+ "nsServiceName":"vcpe_e2e_vnf_test2",
+ "nsServiceDescription":"null",
+ "nsServiceModelUUID":"c9f0a95e-dea0-4698-96e5-5a79bc5a233d",
+ "nsOperationKey":{
+ "globalSubscriberId":"Demonstration",
+ "serviceType":"vCPE",
+ "serviceId":"996fadbb-e806-4a19-b0e5-3454ad6ac29e",
+ "operationId":"1f1dd6b2-b027-4008-a9df-3b6c8274fb24",
+ "nodeTemplateUUID":"4d3a835c-29c8-4a63-83a4-50de5f7ffe16"
+ },
+ "nsParameters":{
+ "locationConstraints":[
+ {
+ "locationConstraints":{
+ "vimId":"CloudOwner_regionOne"
+ },
+ "vnfProfileId":"b1bb0ce7-2222-4fa7-95ed-4840d70a1101"
+ },
+ {
+ "locationConstraints":{
+ "vimId":"CloudOwner_regionOne"
+ },
+ "vnfProfileId":"0408f076-e6c0-4c82-9940-272fddbb82de"
+ },
+ {
+ "locationConstraints":{
+ "vimId":"CloudOwner_regionOne"
+ },
+ "vnfProfileId":"b1bb0ce7-2222-4fa7-95ed-4840d70a1100"
+ },
+ {
+ "locationConstraints":{
+ "vimId":"CloudOwner_regionOne"
+ },
+ "vnfProfileId":"b1bb0ce7-2222-4fa7-95ed-4840d70a1102"
+ },
+ {
+ "locationConstraints":{
+ "vimId":"CloudOwner_regionOne"
+ },
+ "vnfProfileId":"3fca3543-07f5-492f-812c-ed462e4f94f4"
+ }
+ ],
+ "additionalParamForNs":{
+ "orchestrator":"",
+ "nfvo":"b1bb0ce7-2222-4fa7-95ed-4840d70a1101",
+ "nf_naming":"true",
+ "multi_stage_design":"false",
+ "availability_zone_max_count":"1",
+ "xyz":"123",
+ "nsd0_providing_service_invariant_uuid":"12204a12-7da2-4ddf-8c2f-992a1a1acebf",
+ "nsd0_providing_service_uuid":"5791dbeb-19d4-43e8-bf44-5b327ccf6bca"
+ }
+ }
+}
diff --git a/src/test/resources/json/createNsRsp.json b/src/test/resources/json/createNsRsp.json
new file mode 100644
index 0000000..ccd1d66
--- /dev/null
+++ b/src/test/resources/json/createNsRsp.json
@@ -0,0 +1,3 @@
+{
+ "nsInstanceId": "9b9f02c0-298b-458a-bc9c-be3692e4f354"
+} \ No newline at end of file
diff --git a/src/test/resources/json/createNsSol005Response.json b/src/test/resources/json/createNsSol005Response.json
new file mode 100644
index 0000000..938969a
--- /dev/null
+++ b/src/test/resources/json/createNsSol005Response.json
@@ -0,0 +1,210 @@
+{
+ "_links":{
+ "heal":{
+ "href":""
+ },
+ "instantiate":{
+ "href":""
+ },
+ "nestedNsInstances":{
+ "href":""
+ },
+ "scale":{
+ "href":""
+ },
+ "self":{
+ "href":""
+ },
+ "terminate":{
+ "href":""
+ },
+ "update":{
+ "href":""
+ }
+ },
+ "additionalAffinityOrAntiAffiniityRule":[
+ {
+ "Scope":"",
+ "affinityOrAntiAffiinty":"",
+ "vnfInstanceId":[
+
+ ],
+ "vnfProfileId":[
+
+ ],
+ "vnfdId":[
+
+ ]
+ }
+ ],
+ "flavourId":"",
+ "id":"c9f0a95e-dea0-4698-96e5-5a79bc5a233d",
+ "nestedNsInstanceId":[
+
+ ],
+ "nsInstanceDescription":"",
+ "nsInstanceName":"",
+ "nsScaleStatus":[
+ {
+ "nsScaleLevelId":"",
+ "nsScalingAspectId":""
+ }
+ ],
+ "nsState":"",
+ "nsdId":"",
+ "nsdInfoId":"",
+ "pnfInfo":[
+ {
+ "cpInfo":[
+ {
+ "cpInstanceId":"",
+ "cpProtocolData":{
+ "ipOverEthernet":{
+ "ipAddresses":{
+ "addressRange":{
+ "maxAddress":"",
+ "minAddress":""
+ },
+ "fixedAddresses":"",
+ "numDynamicAddresses":1,
+ "subnetId":"",
+ "type":""
+ },
+ "macAddress":{
+
+ }
+ },
+ "layerProtocol":"IP_OVER_ETHERNET"
+ },
+ "cpdId":""
+ }
+ ],
+ "pnfId":"",
+ "pnfName":"",
+ "pnfProfileId":"",
+ "pnfdId":"",
+ "pnfdInfoId":""
+ }
+ ],
+ "sapInfo":[
+ {
+ "description":"",
+ "id":"",
+ "sapName":"",
+ "sapProtocolInfo":{
+ "ipOverEthernet":{
+ "ipAddresses":{
+ "addressRange":{
+ "maxAddress":"",
+ "minAddress":""
+ },
+ "fixedAddresses":"",
+ "numDynamicAddresses":1,
+ "subnetId":"",
+ "type":""
+ },
+ "macAddress":""
+ },
+ "layerProtocol":"IP_OVER_ETHERNET"
+ },
+ "sapdId":""
+ }
+ ],
+ "virtualLinkInfo":[
+ {
+ "id":"",
+ "linkPort":[
+ {
+ "id":"",
+ "resourceHandle":{
+ "resourceId":"",
+ "resourceProviderId":"",
+ "vimId":"",
+ "vimLevelResourceType":""
+ }
+ }
+ ],
+ "nsVirtualLinkDescId":"",
+ "resourceHandle":[
+ {
+ "resourceId":"",
+ "resourceProviderId":"",
+ "vimId":"",
+ "vimLevelResourceType":""
+ }
+ ]
+ }
+ ],
+ "vnfInstance":[
+ {
+ "vnfInstanceId":"",
+ "vnfProfileId":""
+ }
+ ],
+ "vnffgInfo":[
+ {
+ "id":"",
+ "nfpInfo":[
+ {
+ "description":"",
+ "id":"",
+ "nfpName":"",
+ "nfpRule":{
+ "destinationIpAddressPrefix":"",
+ "destinationPortRange":"",
+ "dscp":"",
+ "etherDestinationAddress":"",
+ "etherSourceAddress":"",
+ "etherType":"",
+ "extendedCriteria":[
+ {
+ "length":1,
+ "startingPoint":1,
+ "value":""
+ }
+ ],
+ "protocol":"",
+ "sourceIpAddressPrefix":"",
+ "sourcePortRange":"",
+ "vlanTag":[
+
+ ]
+ },
+ "nfpState":"",
+ "nfpdId":"",
+ "nscpHandle":[
+ {
+ "nsInstanceId":"",
+ "nsSapInstanceId":"",
+ "pnfExtCpInstanceId":"",
+ "pnfInfoId":"",
+ "vnfExtCpInstanceId":"",
+ "vnfInstanceId":""
+ }
+ ],
+ "totalCp":1
+ }
+ ],
+ "nsCpHandle":[
+ {
+ "nsInstanceId":"",
+ "nsSapInstanceId":"",
+ "pnfExtCpInstanceId":"",
+ "pnfInfoId":"",
+ "vnfExtCpInstanceId":"",
+ "vnfInstanceId":""
+ }
+ ],
+ "nsVirtualLinkInfoId":[
+
+ ],
+ "pnfInfoId":[
+
+ ],
+ "vnfInstanceId":[
+
+ ],
+ "vnffgdId":""
+ }
+ ]
+} \ No newline at end of file
diff --git a/src/test/resources/json/deleteNsReq.json b/src/test/resources/json/deleteNsReq.json
new file mode 100644
index 0000000..ac095e6
--- /dev/null
+++ b/src/test/resources/json/deleteNsReq.json
@@ -0,0 +1,7 @@
+{
+ "globalSubscriberId":"9b9f02c0-298b-458a-bc9c-be3692e4f350",
+ "serviceType":"service",
+ "serviceId":"9b9f02c0-298b-458a-bc9c-be3692e4f351",
+ "operationId":"9b9f02c0-298b-458a-bc9c-be3692e4f352",
+ "nodeTemplateUUID":"9b9f02c0-298b-458a-bc9c-be3692e4f353"
+} \ No newline at end of file
diff --git a/src/test/resources/json/instantiateNsReq.json b/src/test/resources/json/instantiateNsReq.json
new file mode 100644
index 0000000..047c810
--- /dev/null
+++ b/src/test/resources/json/instantiateNsReq.json
@@ -0,0 +1,32 @@
+{
+ "nsServiceName":"vIMS",
+ "nsServiceDescription":"vIMS NS",
+ "nsOperationKey":{
+ "globalSubscriberId":"9b9f02c0-298b-458a-bc9c-be3692e4f350",
+ "serviceType":"service",
+ "serviceId":"9b9f02c0-298b-458a-bc9c-be3692e4f351",
+ "operationId":"9b9f02c0-298b-458a-bc9c-be3692e4f352",
+ "nodeTemplateUUID":"9b9f02c0-298b-458a-bc9c-be3692e4f353"
+ },
+ "nsParameters":{
+ "locationConstraints":[
+ {
+ "vnfProfileId":"zte-CSCF-1.0",
+ "locationConstraints":{
+ "vimId":"1"
+ }
+ }
+ ],
+ "additionalParamForNs":{
+ "externalDataNetworkName":"Flow_out_net",
+ "m6000_mng_ip":"192.168.20.2",
+ "externalCompanyFtpDataNetworkName":"Flow_out_net",
+ "externalPluginManageNetworkName":"plugin_net_2014",
+ "externalManageNetworkName":"mng_net_2017",
+ "sfc_data_network":"sfc_data_net_2016",
+ "NatIpRange":"210.1.1.10-210.1.1.20",
+ "location":"4050083f-465f-4838-af1e-47a545222ad0",
+ "sdncontroller":"9b9f02c0-298b-458a-bc9c-be3692e4f35e"
+ }
+ }
+} \ No newline at end of file
diff --git a/src/test/resources/json/instantiateNsRsp.json b/src/test/resources/json/instantiateNsRsp.json
new file mode 100644
index 0000000..51e4d01
--- /dev/null
+++ b/src/test/resources/json/instantiateNsRsp.json
@@ -0,0 +1,3 @@
+{
+ "jobId":"1"
+} \ No newline at end of file
diff --git a/src/test/resources/json/lcmOperRsp.json b/src/test/resources/json/lcmOperRsp.json
new file mode 100644
index 0000000..111afc1
--- /dev/null
+++ b/src/test/resources/json/lcmOperRsp.json
@@ -0,0 +1,7 @@
+{
+ "id":"12204a12-7da2-4ddf-8c2f-992a1a1acebf",
+ "lcmOperationType":"INSTANTIATE",
+ "nsInstanceId":"c9f0a95e-dea0-4698-96e5-5a79bc5a233d",
+ "operationState":"PROCESSING",
+ "statusEnteredTime":"Time"
+} \ No newline at end of file
diff --git a/src/test/resources/json/queryJobReq.json b/src/test/resources/json/queryJobReq.json
new file mode 100644
index 0000000..ac095e6
--- /dev/null
+++ b/src/test/resources/json/queryJobReq.json
@@ -0,0 +1,7 @@
+{
+ "globalSubscriberId":"9b9f02c0-298b-458a-bc9c-be3692e4f350",
+ "serviceType":"service",
+ "serviceId":"9b9f02c0-298b-458a-bc9c-be3692e4f351",
+ "operationId":"9b9f02c0-298b-458a-bc9c-be3692e4f352",
+ "nodeTemplateUUID":"9b9f02c0-298b-458a-bc9c-be3692e4f353"
+} \ No newline at end of file
diff --git a/src/test/resources/json/queryJobRsp.json b/src/test/resources/json/queryJobRsp.json
new file mode 100644
index 0000000..9238b47
--- /dev/null
+++ b/src/test/resources/json/queryJobRsp.json
@@ -0,0 +1,10 @@
+{
+ "jobId": "1",
+ "responseDescriptor": {
+ "progress": "100",
+ "status": "finished",
+ "statusDescription": "OMC VMs are decommissioned in VIM",
+ "errorCode": "",
+ "responseId": "22"
+ }
+} \ No newline at end of file
diff --git a/src/test/resources/json/terminateNsReq.json b/src/test/resources/json/terminateNsReq.json
new file mode 100644
index 0000000..ac095e6
--- /dev/null
+++ b/src/test/resources/json/terminateNsReq.json
@@ -0,0 +1,7 @@
+{
+ "globalSubscriberId":"9b9f02c0-298b-458a-bc9c-be3692e4f350",
+ "serviceType":"service",
+ "serviceId":"9b9f02c0-298b-458a-bc9c-be3692e4f351",
+ "operationId":"9b9f02c0-298b-458a-bc9c-be3692e4f352",
+ "nodeTemplateUUID":"9b9f02c0-298b-458a-bc9c-be3692e4f353"
+} \ No newline at end of file
diff --git a/src/test/resources/json/terminateNsRsp.json b/src/test/resources/json/terminateNsRsp.json
new file mode 100644
index 0000000..51e4d01
--- /dev/null
+++ b/src/test/resources/json/terminateNsRsp.json
@@ -0,0 +1,3 @@
+{
+ "jobId":"1"
+} \ No newline at end of file
diff --git a/src/test/resources/logback-test.xml b/src/test/resources/logback-test.xml
new file mode 100644
index 0000000..c2e0098
--- /dev/null
+++ b/src/test/resources/logback-test.xml
@@ -0,0 +1,42 @@
+<!-- ============LICENSE_START=======================================================
+ ONAP SO ================================================================================
+ Copyright (C) 2017 Huawei Intellectual Property. All rights reserved. ================================================================================
+ 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. ============LICENSE_END========================================================= -->
+
+<configuration>
+
+
+ <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{MM/dd-HH:mm:ss.SSS}|%X{RequestId}|%X{ServiceInstanceId}|%thread|%X{ServiceName}|%X{InstanceUUID}|%.-5level|%X{AlertSeverity}||%X{ServerIPAddress}|%X{ServerFQDN}|%X{RemoteHost}||%X{Timer}|%msg%n</pattern>
+ </encoder>
+ </appender>
+
+
+ <logger name="com.att.eelf.audit" level="info" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <logger name="com.att.eelf.metrics" level="info" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+
+ <logger name="com.att.eelf.error" level="trace" additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+ <logger name="org.onap" level="${so.log.level:-DEBUG}"
+ additivity="false">
+ <appender-ref ref="STDOUT" />
+ </logger>
+ <root level="info">
+ <appender-ref ref="STDOUT" />
+ </root>
+
+
+</configuration>