diff options
Diffstat (limited to 'msasimulator/src/main/java/org/onap')
14 files changed, 770 insertions, 0 deletions
diff --git a/msasimulator/src/main/java/org/onap/msasimulator/Application.java b/msasimulator/src/main/java/org/onap/msasimulator/Application.java new file mode 100644 index 0000000..01a593d --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/Application.java @@ -0,0 +1,36 @@ +/* + * ============LICENSE_START======================================================= + * MSA-SIMULATOR + * ================================================================================ + * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator; + +import java.util.Arrays; + +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContext; + +@SpringBootApplication +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/msasimulator/src/main/java/org/onap/msasimulator/controller/MsaController.java b/msasimulator/src/main/java/org/onap/msasimulator/controller/MsaController.java new file mode 100644 index 0000000..dab79a9 --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/controller/MsaController.java @@ -0,0 +1,71 @@ +/* + * ============LICENSE_START======================================================= + * MSA-SIMULATOR + * ================================================================================ + * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.controller; + +import javax.validation.Valid; + +import org.onap.msasimulator.model.MsaServiceCreateRequest; +import org.onap.msasimulator.model.MsaServiceDeleteRequest; +import org.onap.msasimulator.model.MsaServiceResponse; +import org.onap.msasimulator.service.MsaService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.DeleteMapping; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +@RestController +public class MsaController { + + @Autowired + MsaService msaService; + + @RequestMapping("/") + public String index() { + return "Test successful"; + } + + @PostMapping("/cxf/openroadm/openroadm-services/create") + public ResponseEntity<?> createService(@Valid @RequestBody MsaServiceCreateRequest request) { + + MsaServiceResponse response = msaService.processMsaService(request); + return new ResponseEntity<>(response, HttpStatus.OK); + + } + + @DeleteMapping("/cxf/openroadm/openroadm-services/delete") + public ResponseEntity<?> deleteService(@Valid @RequestBody MsaServiceDeleteRequest request) { + MsaServiceResponse response = msaService.processMsaServiceDelete(request); + return new ResponseEntity<>(response, HttpStatus.OK); + + } + + @GetMapping("/cxf/openroadm/v2/networks/otn-topology") + public String getMsaTopology() { + + return msaService.getTopology(); + + } +} diff --git a/msasimulator/src/main/java/org/onap/msasimulator/model/ConfigurationResponseCommon.java b/msasimulator/src/main/java/org/onap/msasimulator/model/ConfigurationResponseCommon.java new file mode 100644 index 0000000..377a51f --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/model/ConfigurationResponseCommon.java @@ -0,0 +1,51 @@ +/*
+ * ============LICENSE_START=======================================================
+ * MSA-SIMULATOR
+ * ================================================================================
+ * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.model;
+
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ConfigurationResponseCommon {
+ @NotNull
+ @JsonProperty(value = "response-code")
+ private String responseCode;
+
+ @NotNull
+ @JsonProperty(value = "ack-final-indicator")
+ private String ackFinalIndicator;
+
+ @NotNull
+ @JsonProperty(value = "response-message")
+ private String responseMessage;
+
+ @NotNull
+ @JsonProperty(value = "request-id")
+ private String requestId;
+
+}
diff --git a/msasimulator/src/main/java/org/onap/msasimulator/model/DirectionDetails.java b/msasimulator/src/main/java/org/onap/msasimulator/model/DirectionDetails.java new file mode 100644 index 0000000..847a344 --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/model/DirectionDetails.java @@ -0,0 +1,38 @@ +/*
+ * ============LICENSE_START=======================================================
+ * MSA-SIMULATOR
+ * ================================================================================
+ * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.model;
+
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class DirectionDetails {
+ @NotNull
+ @JsonProperty(value = "port")
+ private Port port;
+
+}
diff --git a/msasimulator/src/main/java/org/onap/msasimulator/model/Link.java b/msasimulator/src/main/java/org/onap/msasimulator/model/Link.java new file mode 100644 index 0000000..9644228 --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/model/Link.java @@ -0,0 +1,36 @@ +/* + * ============LICENSE_START======================================================= + * MSA-SIMULATOR + * ================================================================================ + * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.model; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@AllArgsConstructor +@NoArgsConstructor +public class Link { + + private String aend; + + private String zend; + +} diff --git a/msasimulator/src/main/java/org/onap/msasimulator/model/MsaServiceCreateRequest.java b/msasimulator/src/main/java/org/onap/msasimulator/model/MsaServiceCreateRequest.java new file mode 100644 index 0000000..63bd552 --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/model/MsaServiceCreateRequest.java @@ -0,0 +1,64 @@ +/*
+ * ============LICENSE_START=======================================================
+ * MSA-SIMULATOR
+ * ================================================================================
+ * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MsaServiceCreateRequest {
+
+ @NotNull
+ @JsonProperty(value = "service-layer")
+ private String serviceLayer;
+
+ @NotNull
+ @JsonProperty(value = "service-name")
+ private String serviceName;
+
+ @NotNull
+ @JsonProperty(value = "service-a-end")
+ private ServiceEndPoint serviceAEend;
+
+ @NotNull
+ @JsonProperty(value = "common-id")
+ private String commonId;
+
+ @NotNull
+ @JsonProperty(value = "sdnc-request-header")
+ private SdncRequestHeader sdncRequestHeader;
+
+ @NotNull
+ @JsonProperty(value = "service-z-end")
+ private ServiceEndPoint serviceZEnd;
+
+ @NotNull
+ @JsonProperty(value = "connection-type")
+ private String connectionType;
+
+}
diff --git a/msasimulator/src/main/java/org/onap/msasimulator/model/MsaServiceDeleteRequest.java b/msasimulator/src/main/java/org/onap/msasimulator/model/MsaServiceDeleteRequest.java new file mode 100644 index 0000000..e295c81 --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/model/MsaServiceDeleteRequest.java @@ -0,0 +1,44 @@ +/*
+ * ============LICENSE_START=======================================================
+ * MSA-SIMULATOR
+ * ================================================================================
+ * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.model;
+
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MsaServiceDeleteRequest {
+
+ @NotNull
+ @JsonProperty(value = "sdnc-request-header")
+ private SdncRequestHeader sdncRequestHeader;
+
+ @NotNull
+ @JsonProperty(value = "service-delete-req-info")
+ private ServiceDeleteInfo serviceDeletReqInfo;
+
+}
diff --git a/msasimulator/src/main/java/org/onap/msasimulator/model/MsaServiceResponse.java b/msasimulator/src/main/java/org/onap/msasimulator/model/MsaServiceResponse.java new file mode 100644 index 0000000..83549fc --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/model/MsaServiceResponse.java @@ -0,0 +1,40 @@ +/*
+ * ============LICENSE_START=======================================================
+ * MSA-SIMULATOR
+ * ================================================================================
+ * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.model;
+
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class MsaServiceResponse {
+
+ @NotNull
+ @JsonProperty(value = "configuration-response-common")
+ private ConfigurationResponseCommon configurationResponseCommon;
+
+}
diff --git a/msasimulator/src/main/java/org/onap/msasimulator/model/Port.java b/msasimulator/src/main/java/org/onap/msasimulator/model/Port.java new file mode 100644 index 0000000..041835b --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/model/Port.java @@ -0,0 +1,44 @@ +/*
+ * ============LICENSE_START=======================================================
+ * MSA-SIMULATOR
+ * ================================================================================
+ * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.model;
+
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class Port {
+
+ @NotNull
+ @JsonProperty(value = "port-device-name")
+ private String portDeviceName;
+
+ @NotNull
+ @JsonProperty(value = "port-name")
+ private String portName;
+
+}
diff --git a/msasimulator/src/main/java/org/onap/msasimulator/model/SdncRequestHeader.java b/msasimulator/src/main/java/org/onap/msasimulator/model/SdncRequestHeader.java new file mode 100644 index 0000000..bddfded --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/model/SdncRequestHeader.java @@ -0,0 +1,51 @@ +/*
+ * ============LICENSE_START=======================================================
+ * MSA-SIMULATOR
+ * ================================================================================
+ * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.model;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import javax.validation.constraints.NotNull;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class SdncRequestHeader {
+ @NotNull
+ @JsonProperty(value = "notification-url")
+ private String notificationUrl;
+
+ @NotNull
+ @JsonProperty(value = "request-system-id")
+ private String requestSystemId;
+
+ @NotNull
+ @JsonProperty(value = "request-id")
+ private String requestId;
+
+ @NotNull
+ @JsonProperty(value = "rpc-action")
+ private String rpcAction;
+
+}
diff --git a/msasimulator/src/main/java/org/onap/msasimulator/model/ServiceDeleteInfo.java b/msasimulator/src/main/java/org/onap/msasimulator/model/ServiceDeleteInfo.java new file mode 100644 index 0000000..7da5af2 --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/model/ServiceDeleteInfo.java @@ -0,0 +1,44 @@ +/*
+ * ============LICENSE_START=======================================================
+ * MSA-SIMULATOR
+ * ================================================================================
+ * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.model;
+
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ServiceDeleteInfo {
+
+ @NotNull
+ @JsonProperty(value = "service-name")
+ private String serviceName;
+
+ @NotNull
+ @JsonProperty(value = "tail-retention")
+ private String tailRetention;
+
+}
diff --git a/msasimulator/src/main/java/org/onap/msasimulator/model/ServiceEndPoint.java b/msasimulator/src/main/java/org/onap/msasimulator/model/ServiceEndPoint.java new file mode 100644 index 0000000..ab05f99 --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/model/ServiceEndPoint.java @@ -0,0 +1,71 @@ +/*
+ * ============LICENSE_START=======================================================
+ * MSA-SIMULATOR
+ * ================================================================================
+ * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.model;
+
+import javax.validation.constraints.NotNull;
+
+import com.fasterxml.jackson.annotation.JsonProperty;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ServiceEndPoint {
+ @NotNull
+ @JsonProperty(value = "rx-direction")
+ private DirectionDetails rxDirection;
+
+ @NotNull
+ @JsonProperty(value = "service-format")
+ private String serviceFormat;
+
+ @NotNull
+ @JsonProperty(value = "node-id")
+ private String nodeId;
+
+ @NotNull
+ @JsonProperty(value = "mapping-mode")
+ private String mappingMode;
+
+ @NotNull
+ @JsonProperty(value = "optic-type")
+ private String opticType;
+
+ @NotNull
+ @JsonProperty(value = "clli")
+ private String clli;
+
+ @NotNull
+ @JsonProperty(value = "service-rate")
+ private String serviceRate;
+
+ @NotNull
+ @JsonProperty(value = "tx-direction")
+ private DirectionDetails txDirection;
+
+ @NotNull
+ @JsonProperty(value = "ethernet-encoding")
+ private String ethernetEncoding;
+
+}
diff --git a/msasimulator/src/main/java/org/onap/msasimulator/service/MsaService.java b/msasimulator/src/main/java/org/onap/msasimulator/service/MsaService.java new file mode 100644 index 0000000..2091d61 --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/service/MsaService.java @@ -0,0 +1,117 @@ +/* + * ============LICENSE_START======================================================= + * MSA-SIMULATOR + * ================================================================================ + * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.service; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.List; + +import javax.annotation.PostConstruct; + +import org.json.JSONArray; +import org.json.JSONObject; +import org.onap.msasimulator.model.ConfigurationResponseCommon; +import org.onap.msasimulator.model.Link; +import org.onap.msasimulator.model.MsaServiceCreateRequest; +import org.onap.msasimulator.model.MsaServiceDeleteRequest; +import org.onap.msasimulator.model.MsaServiceResponse; +import org.onap.msasimulator.utils.Utils; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import lombok.Getter; + +@Service +public class MsaService { + + private static Logger log = LoggerFactory.getLogger(MsaService.class); + + @Getter + private String topology = ""; + + private List<Link> linkList = new ArrayList<>(); + + private List<String> serviceIdList = new ArrayList<>(); + + @Autowired + Utils utils; + + @PostConstruct + public void init() throws IOException { + topology = utils.readFromFile("/opt/onap/msasimulator/templates/msa-topology.json"); + log.debug("Inside init method of MsaService classc {}", topology); + JSONObject topo = new JSONObject(topology); + JSONArray topolinks = topo.getJSONArray("ietf-network-topology:link"); + for (Object topolink : topolinks) { + if (topolink instanceof JSONObject) { + JSONObject obj = (JSONObject) topolink; + Link link = new Link(obj.getJSONObject("source").getString("source-node").split("-")[0], + obj.getJSONObject("destination").getString("dest-node").split("-")[0]); + linkList.add(link); + + } + + } + log.debug("Link list {}", linkList); + + } + + public MsaServiceResponse processMsaService(MsaServiceCreateRequest request) { + String aend = request.getServiceAEend().getNodeId(); + String zend = request.getServiceZEnd().getNodeId(); + String requestId = request.getSdncRequestHeader().getRequestId(); + Link link = new Link(aend, zend); + if (linkList.contains(link)) { + serviceIdList.add(requestId); + return formServiceResponse(requestId, "200", "Service creation was successful"); + } else { + return formServiceResponse(requestId, "410", "Link not available , Service creation failed"); + + } + + } + + private MsaServiceResponse formServiceResponse(String requestId, String responseCode, String responseMessage) { + MsaServiceResponse response = new MsaServiceResponse(); + ConfigurationResponseCommon configuration = new ConfigurationResponseCommon(); + configuration.setRequestId(requestId); + configuration.setResponseCode(responseCode); + configuration.setResponseMessage(responseMessage); + configuration.setAckFinalIndicator("Y"); + response.setConfigurationResponseCommon(configuration); + return response; + + } + + public MsaServiceResponse processMsaServiceDelete(MsaServiceDeleteRequest request) { + String requestId = request.getSdncRequestHeader().getRequestId(); + if (serviceIdList.contains(requestId)) { + serviceIdList.remove(requestId); + return formServiceResponse(requestId, "200", "Service deletion success"); + } else { + return formServiceResponse(requestId, "410", "Service does not exist"); + } + + } + +} diff --git a/msasimulator/src/main/java/org/onap/msasimulator/utils/Utils.java b/msasimulator/src/main/java/org/onap/msasimulator/utils/Utils.java new file mode 100644 index 0000000..2f0d924 --- /dev/null +++ b/msasimulator/src/main/java/org/onap/msasimulator/utils/Utils.java @@ -0,0 +1,63 @@ +/*
+ * ============LICENSE_START=======================================================
+ * MSA-SIMULATOR
+ * ================================================================================
+ * Copyright (C) 2020 Fujitsu Limited. 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.msasimulator.utils;
+
+import java.io.File;
+import java.io.FileReader;
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.nio.file.Files;
+import org.springframework.stereotype.Component;
+import org.springframework.util.ResourceUtils;
+
+@Component
+public class Utils {
+
+ public void readFileclasspath() throws IOException {
+ File file = ResourceUtils.getFile("classpath:config/sample.txt");
+
+ // File is found
+ System.out.println("File Found : " + file.exists());
+
+ // Read File Content
+ String content = new String(Files.readAllBytes(file.toPath()));
+ System.out.println(content);
+ }
+
+ public String readFromFile(String file) {
+ String content = "";
+ try {
+
+ BufferedReader bufferedReader = new BufferedReader(new FileReader(file));
+ content = bufferedReader.readLine();
+ String temp;
+ while ((temp = bufferedReader.readLine()) != null) {
+ content = content.concat(temp);
+ }
+ content = content.trim();
+ bufferedReader.close();
+ } catch (Exception e) {
+ content = null;
+ }
+ return content;
+ }
+
+}
|