2 * ============LICENSE_START=======================================================
4 * ================================================================================
5 * Copyright (C) 2017 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
11 * http://www.apache.org/licenses/LICENSE-2.0
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=========================================================
21 package org.onap.policy.controlloop.eventmanager;
23 import static org.junit.Assert.assertNotNull;
24 import static org.junit.Assert.fail;
26 import java.time.Instant;
27 import java.util.HashMap;
28 import java.util.UUID;
30 import org.junit.Test;
31 import org.onap.policy.aai.AAIGETVnfResponse;
32 import org.onap.policy.aai.AAIGETVserverResponse;
33 import org.onap.policy.aai.RelatedToProperty;
34 import org.onap.policy.aai.RelatedToPropertyItem;
35 import org.onap.policy.aai.Relationship;
36 import org.onap.policy.aai.RelationshipData;
37 import org.onap.policy.aai.RelationshipDataItem;
38 import org.onap.policy.aai.RelationshipList;
39 import org.onap.policy.controlloop.ControlLoopEventStatus;
40 import org.onap.policy.controlloop.Util;
41 import org.onap.policy.controlloop.VirtualControlLoopEvent;
42 import org.onap.policy.controlloop.policy.ControlLoopPolicy;
43 import org.slf4j.Logger;
44 import org.slf4j.LoggerFactory;
46 public class ControlLoopEventManagerTest {
47 private static final Logger logger = LoggerFactory.getLogger(ControlLoopEventManagerTest.class);
49 private static VirtualControlLoopEvent onset;
51 onset = new VirtualControlLoopEvent();
52 onset.closedLoopControlName = "ControlLoop-vUSP";
53 onset.requestID = UUID.randomUUID();
54 onset.target = "VM_NAME";
55 onset.closedLoopAlarmStart = Instant.now();
56 onset.AAI = new HashMap<String, String>();
57 onset.AAI.put("cloud-region.identity-url", "foo");
58 onset.AAI.put("vserver.selflink", "bar");
59 onset.AAI.put("generic-vnf.vnf-id", "83f674e8-7555-44d7-9a39-bdc3770b0491");
60 onset.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
64 public void testGetAAIInfo() {
65 final Util.Pair<ControlLoopPolicy, String> pair = Util.loadYaml("src/test/resources/test.yaml");
66 onset.closedLoopControlName = pair.a.getControlLoop().getControlLoopName();
68 @SuppressWarnings("unused")
69 ControlLoopEventManager eventManager = new ControlLoopEventManager(onset.closedLoopControlName, onset.requestID);
70 onset.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
72 String user = "POLICY";
73 String password = "POLICY";
74 String vnfID = "83f674e8-7555-44d7-9a39-bdc3770b0491";
75 String url = "https://aai-ext1.test.att.com:8443/aai/v11/network/generic-vnfs/generic-vnf/";
76 AAIGETVnfResponse response = getQueryByVnfID2(url, user, password, onset.requestID, vnfID);
77 assertNotNull(response);
78 logger.info("testGetAAIInfo test result is " + (response == null ? "null" : "not null"));
79 } catch (Exception e) {
81 logger.error("testGetAAIInfo Exception: ", e);
86 public void testIsClosedLoopDisabled() {
90 final Util.Pair<ControlLoopPolicy, String> pair = Util.loadYaml("src/test/resources/test.yaml");
91 onset.closedLoopControlName = pair.a.getControlLoop().getControlLoopName();
94 onset.closedLoopEventStatus = ControlLoopEventStatus.ONSET;
96 logger.info("testIsClosedLoopDisabled --");
97 String user = "POLICY";
98 String password = "POLICY";
99 String vnfID = "83f674e8-7555-44d7-9a39-bdc3770b0491";
100 String url = "https://aai-ext1.test.att.com:8443/aai/v11/network/generic-vnfs/generic-vnf/";
101 AAIGETVnfResponse response = getQueryByVnfID2(url, user, password, onset.requestID, vnfID);
102 assertNotNull(response);
103 boolean disabled = ControlLoopEventManager.isClosedLoopDisabled(response);
104 logger.info("QueryByVnfID - isClosedLoopDisabled: " + disabled);
106 String vnfName = "lll_vnf_010317";
107 url = "https://aai-ext1.test.att.com:8443/aai/v11/network/generic-vnfs/generic-vnf?vnf-name=";
108 response = getQueryByVnfName2(url, user, password, onset.requestID, vnfName);
109 assertNotNull(response);
110 disabled = ControlLoopEventManager.isClosedLoopDisabled(response);
111 logger.info("QueryByVnfName2 - isClosedLoopDisabled: " + disabled);
113 String vserverName = "USMSO1SX7NJ0103UJZZ01-vjunos0";
114 url = "https://aai-ext1.test.att.com:8443//aai/v11/nodes/vservers?vserver-name=";
115 @SuppressWarnings("unused")
116 AAIGETVserverResponse response2 = getQueryByVserverName2(url, user, password, onset.requestID, vserverName);
117 assertNotNull(response);
118 disabled = ControlLoopEventManager.isClosedLoopDisabled(response);
119 logger.info("QueryByVserverName - isClosedLoopDisabled: " + disabled);
120 } catch (Exception e) {
121 fail(e.getMessage());
125 // Simulate a response
126 public static AAIGETVnfResponse getQueryByVnfID2(String urlGet, String username, String password, UUID requestID, String key) {
127 AAIGETVnfResponse response = new AAIGETVnfResponse();
129 response.vnfID = "83f674e8-7555-44d7-9a39-bdc3770b0491";
130 response.vnfName = "lll_vnf_010317";
131 response.vnfType = "Basa-122216-Service/VidVsamp12BaseVolume 1";
132 response.serviceId = "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb";
133 response.orchestrationStatus = "Created";
134 response.inMaint = "false";
135 response.isClosedLoopDisabled = "false";
136 response.resourceVersion = "1494001988835";
137 response.modelInvariantId = "f18be3cd-d446-456e-9109-121d9b62feaa";
139 RelationshipList relationshipList = new RelationshipList();
140 Relationship relationship = new Relationship();
141 RelationshipData relationshipData = new RelationshipData();
142 RelationshipDataItem relationshipDataItem = new RelationshipDataItem();
144 relationshipDataItem.relationshipKey = "customer.global-customer-id";
145 relationshipDataItem.relationshipValue = "MSO_1610_ST";
146 relationshipData.relationshipData.add(relationshipDataItem);
148 relationshipDataItem.relationshipKey = "service-subscription.service-type";
149 relationshipDataItem.relationshipValue = "MSO-dev-service-type";
150 relationshipData.relationshipData.add(relationshipDataItem);
152 relationshipDataItem.relationshipKey = "service-instance.service-instance-id";
153 relationshipDataItem.relationshipValue = "e1e9c97c-02c0-4919-9b4c-eb5d5ef68970";
154 relationshipData.relationshipData.add(relationshipDataItem);
156 RelatedToProperty relatedToProperty = new RelatedToProperty();
157 RelatedToPropertyItem item = new RelatedToPropertyItem();
158 item.propertyKey = "service-instance.service-instance-name";
159 item.propertyValue = "lll_svc_010317";
160 relatedToProperty.relatedTo.add(item);
162 relationship.relatedTo = "service-instance";
163 relationship.relatedLink = "/aai/v11/business/customers/customer/MSO_1610_ST/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/e1e9c97c-02c0-4919-9b4c-eb5d5ef68970";
164 relationship.relationshipData = relationshipData;
165 relationship.relatedToProperty = relatedToProperty;
167 relationshipList.relationshipList.add(relationship);
168 response.relationshipList = relationshipList;
173 public static AAIGETVnfResponse getQueryByVnfName2(String urlGet, String username, String password, UUID requestID, String key) {
174 AAIGETVnfResponse response = new AAIGETVnfResponse();
176 response.vnfID = "83f674e8-7555-44d7-9a39-bdc3770b0491";
177 response.vnfName = "lll_vnf_010317";
178 response.vnfType = "Basa-122216-Service/VidVsamp12BaseVolume 1";
179 response.serviceId = "a9a77d5a-123e-4ca2-9eb9-0b015d2ee0fb";
180 response.orchestrationStatus = "Created";
181 response.inMaint = "false";
182 response.isClosedLoopDisabled = "false";
183 response.resourceVersion = "1494001988835";
184 response.modelInvariantId = "f18be3cd-d446-456e-9109-121d9b62feaa";
186 RelationshipList relationshipList = new RelationshipList();
187 Relationship relationship = new Relationship();
188 RelationshipData relationshipData = new RelationshipData();
189 RelationshipDataItem relationshipDataItem = new RelationshipDataItem();
191 relationshipDataItem.relationshipKey = "customer.global-customer-id";
192 relationshipDataItem.relationshipValue = "MSO_1610_ST";
193 relationshipData.relationshipData.add(relationshipDataItem);
195 relationshipDataItem.relationshipKey = "service-subscription.service-type";
196 relationshipDataItem.relationshipValue = "MSO-dev-service-type";
197 relationshipData.relationshipData.add(relationshipDataItem);
199 relationshipDataItem.relationshipKey = "service-instance.service-instance-id";
200 relationshipDataItem.relationshipValue = "e1e9c97c-02c0-4919-9b4c-eb5d5ef68970";
201 relationshipData.relationshipData.add(relationshipDataItem);
203 RelatedToProperty relatedToProperty = new RelatedToProperty();
204 RelatedToPropertyItem item = new RelatedToPropertyItem();
205 item.propertyKey = "service-instance.service-instance-name";
206 item.propertyValue = "lll_svc_010317";
207 relatedToProperty.relatedTo.add(item);
209 relationship.relatedTo = "service-instance";
210 relationship.relatedLink = "/aai/v11/business/customers/customer/MSO_1610_ST/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/e1e9c97c-02c0-4919-9b4c-eb5d5ef68970";
211 relationship.relationshipData = relationshipData;
212 relationship.relatedToProperty = relatedToProperty;
214 relationshipList.relationshipList.add(relationship);
215 response.relationshipList = relationshipList;
220 public static AAIGETVserverResponse getQueryByVserverName2(String urlGet, String username, String password, UUID requestID, String key) {
221 AAIGETVserverResponse response = new AAIGETVserverResponse();
223 response.vserverID = "d0668d4f-c25e-4a1b-87c4-83845c01efd8";
224 response.vserverName = "USMSO1SX7NJ0103UJZZ01-vjunos0";
225 response.vserverName2 = "vjunos0";
226 response.vserverSelflink = "https://aai-ext1.test.att.com:8443/aai/v7/cloud-infrastructure/cloud-regions/cloud-region/att-aic/AAIAIC25/tenants/tenant/USMSO1SX7NJ0103UJZZ01%3A%3AuCPE-VMS/vservers/vserver/d0668d4f-c25e-4a1b-87c4-83845c01efd8";
227 response.inMaint = "false";
228 response.isClosedLoopDisabled = "false";
229 response.resourceVersion = "1494001931513";
231 RelationshipList relationshipList = new RelationshipList();
232 Relationship relationship = new Relationship();
233 RelationshipData relationshipData = new RelationshipData();
234 RelationshipDataItem relationshipDataItem = new RelationshipDataItem();
236 relationshipDataItem.relationshipKey = "customer.global-customer-id";
237 relationshipDataItem.relationshipValue = "MSO_1610_ST";
238 relationshipData.relationshipData.add(relationshipDataItem);
240 relationshipDataItem.relationshipKey = "service-subscription.service-type";
241 relationshipDataItem.relationshipValue = "MSO-dev-service-type";
242 relationshipData.relationshipData.add(relationshipDataItem);
244 relationshipDataItem.relationshipKey = "service-instance.service-instance-id";
245 relationshipDataItem.relationshipValue = "e1e9c97c-02c0-4919-9b4c-eb5d5ef68970";
246 relationshipData.relationshipData.add(relationshipDataItem);
248 RelatedToProperty relatedToProperty = new RelatedToProperty();
249 RelatedToPropertyItem item = new RelatedToPropertyItem();
250 item.propertyKey = "service-instance.service-instance-name";
251 item.propertyValue = "lll_svc_010317";
252 relatedToProperty.relatedTo.add(item);
254 relationship.relatedTo = "service-instance";
255 relationship.relatedLink = "/aai/v11/business/customers/customer/MSO_1610_ST/service-subscriptions/service-subscription/MSO-dev-service-type/service-instances/service-instance/e1e9c97c-02c0-4919-9b4c-eb5d5ef68970";
256 relationship.relationshipData = relationshipData;
257 relationship.relatedToProperty = relatedToProperty;
259 relationshipList.relationshipList.add(relationship);
260 response.relationshipList = relationshipList;