aboutsummaryrefslogtreecommitdiffstats
path: root/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service
diff options
context:
space:
mode:
Diffstat (limited to 'apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service')
-rw-r--r--apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/IServiceDAO.java17
-rw-r--r--apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/ServiceDAOImpl.java59
-rw-r--r--apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Metadata.java50
-rw-r--r--apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Node.java32
-rw-r--r--apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/ServiceInfo.java76
-rw-r--r--apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Spec.java44
6 files changed, 278 insertions, 0 deletions
diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/IServiceDAO.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/IServiceDAO.java
new file mode 100644
index 0000000..d63f656
--- /dev/null
+++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/IServiceDAO.java
@@ -0,0 +1,17 @@
+package org.onap.msb.apiroute.wrapper.dao.service;
+
+import java.util.List;
+
+import org.onap.msb.apiroute.wrapper.dao.service.bean.ServiceInfo;
+
+public interface IServiceDAO {
+ public void saveService(String key, ServiceInfo serviceInfo) throws Exception;
+
+ public ServiceInfo queryService(String key) throws Exception;
+
+ public List<ServiceInfo> queryMultiService(String keyPattern) throws Exception;
+
+ public long deleteService(String key) throws Exception;
+
+ public long deleteMultiService(String keyPattern) throws Exception;
+}
diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/ServiceDAOImpl.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/ServiceDAOImpl.java
new file mode 100644
index 0000000..e9f4586
--- /dev/null
+++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/ServiceDAOImpl.java
@@ -0,0 +1,59 @@
+package org.onap.msb.apiroute.wrapper.dao.service;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.onap.msb.apiroute.wrapper.dao.RedisAccessWrapper;
+import org.onap.msb.apiroute.wrapper.dao.service.bean.ServiceInfo;
+import org.onap.msb.apiroute.wrapper.util.Jackson;
+
+public class ServiceDAOImpl implements IServiceDAO{
+ public void saveService(String key, ServiceInfo serviceInfo) throws Exception {
+ String serviceInfoStr = null;
+ try {
+ serviceInfoStr = Jackson.MAPPER.writeValueAsString(serviceInfo);
+ } catch (JsonProcessingException e) {
+ throw new Exception("error occurred while parsing ServiceInfo to json data",e);
+ }
+ RedisAccessWrapper.save(key, serviceInfoStr);
+ }
+
+ public ServiceInfo queryService(String key) throws Exception {
+ ServiceInfo serviceInfo = null;
+ String serviceInfoStr = RedisAccessWrapper.query(key);
+ if (null == serviceInfoStr || "".equals(serviceInfoStr))
+ return null;
+ try {
+ serviceInfo = Jackson.MAPPER.readValue(serviceInfoStr, ServiceInfo.class);
+ } catch (IOException e) {
+ throw new Exception("error occurred while parsing the redis json data to ServiceInfo",e);
+ }
+ return serviceInfo;
+ }
+
+ public List<ServiceInfo> queryMultiService(String keyPattern) throws Exception {
+ List<String> serviceInfoStrList = RedisAccessWrapper.queryMultiKeys(keyPattern);
+ List<ServiceInfo> routeInfoList = new ArrayList<>();
+ for (String serviceInfoStr : serviceInfoStrList) {
+ ServiceInfo serviceInfo = null;
+ try {
+ serviceInfo = Jackson.MAPPER.readValue(serviceInfoStr, ServiceInfo.class);
+ routeInfoList.add(serviceInfo);
+ } catch (IOException e) {
+ throw new Exception("error occurred while parsing the redis json data to ServiceInfo",e);
+ }
+ }
+ return routeInfoList;
+ }
+
+ public long deleteService(String key) throws Exception {
+ return RedisAccessWrapper.delete(key);
+ }
+
+ public long deleteMultiService(String keyPattern) throws Exception{
+ return RedisAccessWrapper.deleteMultiKeys(keyPattern);
+ }
+} \ No newline at end of file
diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Metadata.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Metadata.java
new file mode 100644
index 0000000..6ce6126
--- /dev/null
+++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Metadata.java
@@ -0,0 +1,50 @@
+package org.onap.msb.apiroute.wrapper.dao.service.bean;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Map;
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Getter @Setter
+public class Metadata {
+ private String name;
+ private String namespace;
+ private String uid = "";
+ //@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+ //private Date creationTimestamp;
+ // @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
+ @JsonFormat(pattern = "yyyy-MM-dd'T'HH:mm:ssXXX")
+ private Date updateTimestamp;
+ private Map labels = new HashMap();
+ //private String[] annotations = new String[]{};
+ private String[] annotations = null;
+
+ /*
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Metadata metadata = (Metadata) o;
+ return Objects.equals(name, metadata.name) &&
+ Objects.equals(namespace, metadata.namespace) &&
+ Objects.equals(uid, metadata.uid) &&
+ //Objects.equals(creationTimestamp, metadata.creationTimestamp) &&
+ Objects.equals(updateTimestamp, metadata.updateTimestamp) &&
+ Objects.equals(labels, metadata.labels) &&
+ Objects.equals(annotations, metadata.annotations);
+ }
+
+ @Override
+ public int hashCode() {
+ //return Objects.hash(name, namespace, uid, creationTimestamp, updateTimestamp, labels, annotations);
+ return Objects.hash(name, namespace, uid, updateTimestamp, labels, annotations);
+ }
+ */
+}
diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Node.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Node.java
new file mode 100644
index 0000000..fecf4bd
--- /dev/null
+++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Node.java
@@ -0,0 +1,32 @@
+package org.onap.msb.apiroute.wrapper.dao.service.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Getter @Setter
+public class Node {
+ private String ip;
+ private String port;
+ private int ttl=-1;
+
+ /*
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Node node = (Node) o;
+ return Objects.equals(port, node.port) &&
+ Objects.equals(ttl, node.ttl) &&
+ Objects.equals(ip, node.ip);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(ip, port, ttl);
+ }
+ */
+} \ No newline at end of file
diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/ServiceInfo.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/ServiceInfo.java
new file mode 100644
index 0000000..01ab3a9
--- /dev/null
+++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/ServiceInfo.java
@@ -0,0 +1,76 @@
+package org.onap.msb.apiroute.wrapper.dao.service.bean;
+
+import org.onap.msb.apiroute.wrapper.dao.DAOConstants;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Getter
+@Setter
+public class ServiceInfo {
+ private String kind = DAOConstants.SERVICE_KIND;
+ private String apiVersion = "";
+ private String status = "";
+ private Metadata metadata;
+ private Spec spec;
+
+ /**
+ Example Service:
+ {
+ "kind" : "service",
+ "apiVersion" : "v1",
+ "metadata" : {
+ "name" : "kubernetes",
+ "namespace" : "default",
+ "uid" : "0b6f198e-c6ab-11e6-86aa-fa163ee2118b",
+ "creationTimestamp" : "2016-12-20T11:54:21Z",
+ "labels" : {
+ "component" : "apiserver",
+ "provider" : "kubernetes"
+ },
+ "annotations" : {}
+ },
+ "spec" : {
+ "visualRange" : 0,
+ "url" : "",
+ "path" : "",
+ "publish_port" : "",
+ "host" : "",
+ "protocol" : "",
+ "lb_policy" : "",
+ "enable_ssl" : "0|1", //转发时,使用http还是http转发。http:0/https:1
+ "nodes" : [{
+ "ip" : 10.10.10.2,
+ "port" : 8080,
+ "ttl" :
+ }
+ ],
+ }
+ "status" : ""
+ }
+
+ */
+
+ /*
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ ServiceInfo that = (ServiceInfo) o;
+ return Objects.equals(kind, that.kind) &&
+ Objects.equals(apiVersion, that.apiVersion) &&
+ Objects.equals(status, that.status) &&
+ Objects.equals(metadata, that.metadata) &&
+ Objects.equals(spec, that.spec);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(kind, apiVersion, status, metadata, spec);
+ }
+ */
+}
diff --git a/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Spec.java b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Spec.java
new file mode 100644
index 0000000..65e769b
--- /dev/null
+++ b/apiroute/apiroute-service/src/main/java/org/onap/msb/apiroute/wrapper/dao/service/bean/Spec.java
@@ -0,0 +1,44 @@
+package org.onap.msb.apiroute.wrapper.dao.service.bean;
+
+import lombok.AllArgsConstructor;
+import lombok.Getter;
+import lombok.NoArgsConstructor;
+import lombok.Setter;
+
+@AllArgsConstructor
+@NoArgsConstructor
+@Getter @Setter
+public class Spec {
+ private String visualRange = "";
+ private String url = "";
+ private String path = "";
+ private String publish_port;
+ private String host = "";
+ private String protocol = "";
+ private String lb_policy = "";
+ private boolean enable_ssl = false;
+ private Node[] nodes;
+
+ /*
+ @Override
+ public boolean equals(Object o) {
+ if (this == o) return true;
+ if (o == null || getClass() != o.getClass()) return false;
+ Spec spec = (Spec) o;
+ return Objects.equals(enable_ssl, spec.enable_ssl) &&
+ Objects.equals(visualRange, spec.visualRange) &&
+ Objects.equals(url, spec.url) &&
+ Objects.equals(path, spec.path) &&
+ Objects.equals(publish_port, spec.publish_port) &&
+ Objects.equals(host, spec.host) &&
+ Objects.equals(protocol, spec.protocol) &&
+ Objects.equals(lb_policy, spec.lb_policy) &&
+ Arrays.equals(nodes, spec.nodes);
+ }
+
+ @Override
+ public int hashCode() {
+ return Objects.hash(visualRange, url, path, publish_port, host, protocol, lb_policy, enable_ssl, nodes);
+ }
+ */
+}