Update the license for 2017-2018 license
[aai/traversal.git] / aai-traversal / src / test / java / org / onap / aai / rest / search / ServiceTopologyTest.java
1 /**
2  * ============LICENSE_START=======================================================
3  * org.onap.aai
4  * ================================================================================
5  * Copyright © 2017-2018 AT&T Intellectual Property. All rights reserved.
6  * ================================================================================
7  * Licensed under the Apache License, Version 2.0 (the "License");
8  * you may not use this file except in compliance with the License.
9  * You may obtain a copy of the License at
10  *
11  *    http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  * ============LICENSE_END=========================================================
19  */
20 package org.onap.aai.rest.search;
21
22 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversal;
23 import org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.GraphTraversalSource;
24 import org.apache.tinkerpop.gremlin.structure.T;
25 import org.apache.tinkerpop.gremlin.structure.Vertex;
26 import org.junit.Test;
27 import org.onap.aai.exceptions.AAIException;
28 import org.onap.aai.serialization.db.exceptions.NoEdgeRuleFoundException;
29
30 import java.util.Map;
31
32 public class ServiceTopologyTest extends QueryTest {
33     public ServiceTopologyTest() throws AAIException, NoEdgeRuleFoundException {
34         super();
35     }
36
37     @Test
38     public void run() {
39         super.run();
40     }
41     @Override
42     protected void createGraph() throws AAIException, NoEdgeRuleFoundException {
43         Vertex servinst = graph.addVertex(T.label, "service-instance", T.id, "1", "aai-node-type", "service-instance", "service-instance-id", "servInstId01", "service-type", "servType01");
44         Vertex gv = graph.addVertex(T.id, "2", "aai-node-type", "generic-vnf", "vnf-id", "gvId", "vnf-name", "name", "vnf-type", "type");
45         Vertex vnfc = graph.addVertex(T.id, "3", "aai-node-type", "vnfc","vnfc-name", "vnfcName1", "nfc-naming-code", "blue", "nfc-function", "correct-function");
46
47         Vertex vipipv4addresslist1 = graph.addVertex(T.label, "vip-ipv4-address-list", T.id, "4", "aai-node-type", "vip-ipv4-address-list", "vip-ipv4-addres", "vip-ipv4-address1");
48         Vertex subnet1 = graph.addVertex(T.label, "subnet", T.id, "5", "aai-node-type", "subnet", "subnet-id", "subnet1");
49         Vertex l3network1 = graph.addVertex(T.label, "l3-network", T.id, "6", "aai-node-type", "l3-network", "network-id", "network1-id1", "network-name", "network1-name1");
50
51         Vertex vipipv6addresslist1 = graph.addVertex(T.label, "vip-ipv6-address-list", T.id, "7", "aai-node-type", "vip-ipv6-address-list", "vip-ipv6-address", "vip-ipv6-address2");
52         Vertex subnet2 = graph.addVertex(T.label, "subnet", T.id, "8", "aai-node-type", "subnet", "subnet-id", "subnet2");
53         Vertex l3network2 = graph.addVertex(T.label, "l3-network", T.id, "9", "aai-node-type", "l3-network", "network-id", "network1-id2", "network-name", "network2-name2");
54
55         Vertex l3inter1ipv4addresslist1 = graph.addVertex(T.label, "interface-ipv4-address-list", T.id, "10", "aai-node-type", "l3-interface-ipv4-address-list", "l3-interface-ipv4-address", "l3-interface-ipv4-address1");
56         Vertex l3network3 = graph.addVertex(T.label, "l3-network", T.id, "11", "aai-node-type", "l3-network", "network-id", "network3-id3", "network-name", "network2-name3");
57         Vertex subnet3 = graph.addVertex(T.label, "subnet", T.id, "12", "aai-node-type", "subnet", "subnet-id", "subnet3");
58         Vertex l3network3_2 = graph.addVertex(T.label, "l3-network", T.id, "13", "aai-node-type", "l3-network", "network-id", "network3-id3", "network-name", "network3_2-name3_2");
59
60         Vertex l3inter1ipv6addresslist1 = graph.addVertex(T.label, "l3-interface-ipv6-address-list", T.id, "14", "aai-node-type", "l3-interface-ipv6-address-list", "l3-interface-ipv6-address", "l3-interface-ipv6-address1");
61         Vertex l3network4 = graph.addVertex(T.label, "l3-network", T.id, "15", "aai-node-type", "l3-network", "network-id", "network3-id3", "network-name", "network2-name4");
62         Vertex subnet4 = graph.addVertex(T.label, "subnet", T.id, "16", "aai-node-type", "subnet", "subnet-id", "subnet4");
63         Vertex l3network4_2 = graph.addVertex(T.label, "l3-network", T.id, "17", "aai-node-type", "l3-network", "network-id", "network3-id4", "network-name", "network4_2-name4_2");
64
65
66         Vertex vserv1 = graph.addVertex(T.id, "18", "aai-node-type", "vserver", "vserver-id", "vservId1", "vserver-name", "vservName1");
67         Vertex tenant1 = graph.addVertex(T.id, "19", "aai-node-type", "tenant", "tenant-id", "ten1", "tenant-name", "tenName1");
68         Vertex linterface1 = graph.addVertex(T.label, "l-interface", T.id, "20", "aai-node-type", "l-interface", "l-interface-id", "l-interface-id1", "l-interface-name", "l-interface-name1");
69                     Vertex l3inter1ipv4addresslist2 = graph.addVertex(T.label, "interface-ipv4-address-list", T.id, "21", "aai-node-type", "l3-interface-ipv4-address-list", "l3-interface-ipv4-address", "l3-interface-ipv4-address2");
70                     Vertex l3network5 = graph.addVertex(T.label, "l3-network", T.id, "22", "aai-node-type", "l3-network", "network-id", "network3-id3", "network-name", "network2-name3");
71                     Vertex subnet5 = graph.addVertex(T.label, "subnet", T.id, "23", "aai-node-type", "subnet", "subnet-id", "subnet3");
72                     Vertex l3network5_2 = graph.addVertex(T.label, "l3-network", T.id, "24", "aai-node-type", "l3-network", "network-id", "network3-id3", "network-name", "network3_2-name3_2");
73
74                     Vertex l3inter1ipv6addresslist2 = graph.addVertex(T.label, "l3-interface-ipv6-address-list", T.id, "25", "aai-node-type", "l3-interface-ipv6-address-list", "l3-interface-ipv6-address", "l3-interface-ipv6-address1");
75                     Vertex l3network6 = graph.addVertex(T.label, "l3-network", T.id, "26", "aai-node-type", "l3-network", "network-id", "network3-id3", "network-name", "network2-name4");
76                     Vertex subnet6 = graph.addVertex(T.label, "subnet", T.id, "27", "aai-node-type", "subnet", "subnet-id", "subnet4");
77                     Vertex l3network6_2 = graph.addVertex(T.label, "l3-network", T.id, "28", "aai-node-type", "l3-network", "network-id", "network3-id4", "network-name", "network4_2-name4_2");
78
79         Vertex pserver1 = graph.addVertex(T.label, "pserver", T.id, "29", "aai-node-type", "pserver", "hostname", "pservername1");
80
81
82         Vertex pserver2 = graph.addVertex(T.label, "pserver", T.id, "30", "aai-node-type", "pserver", "hostname", "pservername1");
83         Vertex pserverint = graph.addVertex(T.label, "p-interface", T.id, "31", "aai-node-type", "p-interface", "interface-name", "xe0/0/0");
84         Vertex plink1 = graph.addVertex(T.label, "physical-link", T.id, "32", "aai-node-type", "physical-link", "link-name", "ge0/0/0-to-xe0/0/0");
85
86         GraphTraversalSource g = graph.traversal();
87
88         rules.addEdge(g, servinst , gv);
89         rules.addEdge(g,gv,vnfc);
90         rules.addEdge(g,vnfc,vipipv4addresslist1);
91         rules.addEdge(g,vipipv4addresslist1,subnet1);
92         rules.addTreeEdge(g,subnet1,l3network1);
93         rules.addEdge(g,vnfc,vipipv6addresslist1);
94         rules.addEdge(g,vipipv6addresslist1,subnet2);
95         rules.addTreeEdge(g,subnet2,l3network2);
96         rules.addTreeEdge(g,vnfc,l3inter1ipv4addresslist1);
97         rules.addEdge(g,l3inter1ipv4addresslist1,l3network3);
98         rules.addEdge(g,l3inter1ipv4addresslist1,subnet3);
99         rules.addTreeEdge(g,subnet3,l3network3_2);
100         rules.addTreeEdge(g,vnfc,l3inter1ipv6addresslist1);
101         rules.addEdge(g,l3inter1ipv6addresslist1,l3network4);
102         rules.addEdge(g,l3inter1ipv6addresslist1,subnet4);
103         rules.addTreeEdge(g,subnet4,l3network4_2);
104         rules.addEdge(g,gv,vserv1);
105         rules.addTreeEdge(g,vserv1,tenant1);
106         rules.addTreeEdge(g,vserv1,linterface1);
107         rules.addTreeEdge(g,linterface1,l3inter1ipv4addresslist2);
108         rules.addEdge(g,l3inter1ipv4addresslist2,l3network5);
109         rules.addEdge(g,l3inter1ipv4addresslist2,subnet5);
110         rules.addTreeEdge(g,subnet5,l3network5_2);
111         rules.addTreeEdge(g,linterface1,l3inter1ipv6addresslist2);
112         rules.addEdge(g,l3inter1ipv6addresslist2,l3network6);
113         rules.addEdge(g,l3inter1ipv6addresslist2,subnet6);
114         rules.addTreeEdge(g,subnet6,l3network6_2);
115         rules.addEdge(g,vserv1,pserver1);
116         rules.addEdge(g,gv,pserver2);
117         rules.addTreeEdge(g,pserver2,pserverint);
118         rules.addEdge(g,pserverint,plink1);
119
120         expectedResult.add(servinst);
121         expectedResult.add(gv);
122         expectedResult.add(vnfc);
123         expectedResult.add(vipipv4addresslist1);
124         expectedResult.add(subnet1);
125         expectedResult.add(l3network1);
126         expectedResult.add(vipipv6addresslist1);
127         expectedResult.add(subnet2);
128         expectedResult.add(l3network2);
129         expectedResult.add(l3inter1ipv4addresslist1);
130         expectedResult.add(l3network3);
131         expectedResult.add(subnet3);
132         expectedResult.add(l3network3_2);
133         expectedResult.add(l3inter1ipv6addresslist1);
134         expectedResult.add(l3network4);
135         expectedResult.add(subnet4);
136         expectedResult.add(l3network4_2);
137         expectedResult.add(vserv1);
138         expectedResult.add(tenant1);
139         expectedResult.add(linterface1);
140         expectedResult.add(l3inter1ipv4addresslist2);
141         expectedResult.add(l3network5);
142         expectedResult.add(subnet5);
143         expectedResult.add(l3network5_2);
144         expectedResult.add(l3inter1ipv6addresslist2);
145         expectedResult.add(l3network6);
146         expectedResult.add(subnet6);
147         expectedResult.add(l3network6_2);
148         expectedResult.add(pserver1);
149         expectedResult.add(pserver2);
150         expectedResult.add(pserverint);
151         expectedResult.add(plink1);
152
153
154     }
155     @Override
156     protected String getQueryName() {
157         return "service-topology";
158     }
159
160     @Override
161     protected void addStartNode(GraphTraversal<Vertex, Vertex> g) {
162         g.has("aai-node-type", "service-instance");
163     }
164     @Override
165     protected void addParam(Map<String, Object> params) {
166         return;
167     }
168 }