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.appc.dg.mock.instance;
 
  26 import org.slf4j.Logger;
 
  27 import org.slf4j.LoggerFactory;
 
  29 import org.onap.ccsdk.sli.core.sli.SvcLogicAdaptor;
 
  30 import org.onap.ccsdk.sli.core.sli.SvcLogicContext;
 
  31 import org.onap.ccsdk.sli.core.sli.SvcLogicException;
 
  32 import org.onap.ccsdk.sli.core.sli.SvcLogicResource;
 
  33 import org.onap.ccsdk.sli.core.sli.SvcLogicResource.QueryStatus;
 
  34 import static org.junit.Assert.*;
 
  36 public class MockAaiResource implements SvcLogicResource {
 
  38     private final static Logger logger = LoggerFactory.getLogger(MockAaiResource.class);
 
  41     public QueryStatus isAvailable(String resource, String key, String prefix, SvcLogicContext ctx) throws SvcLogicException {
 
  42         return QueryStatus.SUCCESS;
 
  46     public QueryStatus exists(String resource, String key, String prefix, SvcLogicContext ctx)  throws SvcLogicException {
 
  47         return QueryStatus.SUCCESS;
 
  50     public QueryStatus query(String resource, boolean localOnly, String select, String key,  String prefix, String orderBy, SvcLogicContext ctx) throws SvcLogicException {
 
  51         if (ctx.getAttribute("j").equals("0") && "tmp.aai-data-vm".equals(prefix)) {
 
  52             logger.info("Mock VM Get query1 called " + ctx.getAttribute("j") );
 
  54             assertEquals(resource, "vserver");
 
  55             assertEquals(key, "'vserver-name = $request-parameters.vm[$j].vm-name'");
 
  57             ctx.setAttribute("tmp.aai-data-vm.vserver-id", "vserverid1");
 
  59             ctx.setAttribute("tmp.aai-data-vm.tenant-id", "tenantid1");
 
  60             ctx.setAttribute("tmp.aai-data-vm.cloud-owner", "att-aic");
 
  61             ctx.setAttribute("tmp.aai-data-vm.cloud-region-id", "cloudregionid1");
 
  63         else if (ctx.getAttribute("j").equals("1") && "tmp.aai-data-vm".equals(prefix)) {
 
  64             logger.info("Mock VM Get query1 called " + ctx.getAttribute("j") );
 
  66             assertEquals(resource, "vserver");
 
  67             assertEquals(key, "'vserver-name = $request-parameters.vm[$j].vm-name'");
 
  69             ctx.setAttribute("tmp.aai-data-vm.vserver-id", "vserverid2");
 
  70             ctx.setAttribute("tmp.aai-data-vm.tenant-id", "tenantid2");
 
  71             ctx.setAttribute("tmp.aai-data-vm.cloud-owner", "att-aic");
 
  72             ctx.setAttribute("tmp.aai-data-vm.cloud-region-id", "cloudregionid2");
 
  74         else if ("tmp.aai-data-vnfc".equals(prefix)) {
 
  75             logger.info("Mock VNFC Get query1 called "  );
 
  77             assertEquals(resource, "vnfc");
 
  78             assertEquals(key, "'vnfc-name = $request-parameters.vm[$j].vnfc[$k].vnfc-name'");
 
  79             return QueryStatus.NOT_FOUND;
 
  81         return QueryStatus.SUCCESS;
 
  84     public QueryStatus query(String resource, boolean localOnly, String select, String key, String prefix, SvcLogicContext ctx)  throws SvcLogicException {
 
  85         logger.info("Mock query2 called " + ctx.getAttribute("j"));
 
  86         return QueryStatus.SUCCESS;
 
  90     public QueryStatus reserve(String resource, String select, String key, String prefix, SvcLogicContext ctx) throws SvcLogicException {
 
  91         return QueryStatus.SUCCESS;
 
  95     public QueryStatus save(String resource, boolean force, boolean localOnly, String key, Map<String, String> parms, String prefix, SvcLogicContext ctx) throws SvcLogicException {
 
  96         logger.info("Mock Save called");
 
  97         if (ctx.getAttribute("j").equals("0") &&
 
  98                 ctx.getAttribute("k").equals("0") &&
 
  99                 "tmp.vnfc-sys-controller".equals(prefix)) {
 
 100             assertEquals(resource, "vnfc");
 
 101             assertEquals(key, "'vnfc-name = $request-parameters.vm[$j].vnfc[$k].vnfc-name'");
 
 102             assertEquals(parms.get("prov-status"), "NVTPROV");
 
 103             assertEquals(parms.get("orchestration-status"), "CONFIGURED");
 
 104             assertEquals(parms.get("in-maint"), "false");
 
 105             assertEquals(parms.get("is-closed-loop"), "false");
 
 106             assertEquals(parms.get("vnfc-function-code"), "funccode");
 
 107             assertEquals(parms.get("vnfc-type"), "vnfctype");
 
 108             assertEquals(parms.get("ipaddress-v4-oam-vip"), "135.1.1.1");
 
 109             assertEquals(parms.get("group-notation"), "groupnotation");
 
 110             assertEquals(parms.get("relationship-list.relationship[0].related-to"), "vserver");
 
 111             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[0].relationship-key"), "vserver.vserver-id");
 
 112             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[0].relationship-value"), "vserverid1");
 
 113             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[1].relationship-key"), "tenant.tenant-id");
 
 114             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[1].relationship-value"), "tenantid1");
 
 115             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[2].relationship-key"), "cloud-region.cloud-owner");
 
 116             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[2].relationship-value"), "att-aic");
 
 117             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[3].relationship-key"), "cloud-region.cloud-region-id");
 
 118             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[3].relationship-value"), "cloudregionid1");
 
 119             assertEquals(parms.get("relationship-list.relationship[1].related-to"), "generic-vnf");
 
 120             assertEquals(parms.get("relationship-list.relationship[1].relationship-data[0].relationship-key"), "generic-vnf.vnf-id");
 
 121             assertEquals(parms.get("relationship-list.relationship[1].relationship-data[0].relationship-value"), "ibcx0001v");
 
 122             assertEquals(parms.get("relationship-list.relationship[2].related-to"), "vf-module");
 
 123             assertEquals(parms.get("relationship-list.relationship[2].relationship-data[0].relationship-key"), "generic-vnf.vnf-id");
 
 124             assertEquals(parms.get("relationship-list.relationship[2].relationship-data[0].relationship-value"), "ibcx0001v");
 
 125             assertEquals(parms.get("relationship-list.relationship[2].relationship-data[1].relationship-key"), "vf-module.vf-module-id");
 
 126             assertEquals(parms.get("relationship-list.relationship[2].relationship-data[1].relationship-value"), "1");
 
 128         else if (ctx.getAttribute("j").equals("1") &&
 
 129                 ctx.getAttribute("k").equals("0") &&
 
 130                 "tmp.vnfc-sys-controller".equals(prefix)) {
 
 131             assertEquals(resource, "vnfc");
 
 132             assertEquals(key, "'vnfc-name = $request-parameters.vm[$j].vnfc[$k].vnfc-name'");
 
 133             assertEquals(parms.get("prov-status"), "NVTPROV");
 
 134             assertEquals(parms.get("orchestration-status"), "CONFIGURED");
 
 135             assertEquals(parms.get("in-maint"), "false");
 
 136             assertEquals(parms.get("is-closed-loop"), "false");
 
 137             assertEquals(parms.get("vnfc-function-code"), "funccode1");
 
 138             assertEquals(parms.get("vnfc-type"), "vnfctype1");
 
 139             assertEquals(parms.get("ipaddress-v4-oam-vip"), "135.2.2.2");
 
 140             assertEquals(parms.get("group-notation"), "groupnotation1");
 
 141             assertEquals(parms.get("relationship-list.relationship[0].related-to"), "vserver");
 
 142             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[0].relationship-key"), "vserver.vserver-id");
 
 143             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[0].relationship-value"), "vserverid2");
 
 144             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[1].relationship-key"), "tenant.tenant-id");
 
 145             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[1].relationship-value"), "tenantid2");
 
 146             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[2].relationship-key"), "cloud-region.cloud-owner");
 
 147             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[2].relationship-value"), "att-aic");
 
 148             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[3].relationship-key"), "cloud-region.cloud-region-id");
 
 149             assertEquals(parms.get("relationship-list.relationship[0].relationship-data[3].relationship-value"), "cloudregionid2");
 
 150             assertEquals(parms.get("relationship-list.relationship[1].related-to"), "generic-vnf");
 
 151             assertEquals(parms.get("relationship-list.relationship[1].relationship-data[0].relationship-key"), "generic-vnf.vnf-id");
 
 152             assertEquals(parms.get("relationship-list.relationship[1].relationship-data[0].relationship-value"), "ibcx0001v");
 
 153             assertEquals(parms.get("relationship-list.relationship[2].related-to"), "vf-module");
 
 154             assertEquals(parms.get("relationship-list.relationship[2].relationship-data[0].relationship-key"), "generic-vnf.vnf-id");
 
 155             assertEquals(parms.get("relationship-list.relationship[2].relationship-data[0].relationship-value"), "ibcx0001v");
 
 156             assertEquals(parms.get("relationship-list.relationship[2].relationship-data[1].relationship-key"), "vf-module.vf-module-id");
 
 157             assertEquals(parms.get("relationship-list.relationship[2].relationship-data[1].relationship-value"), "1");
 
 159         return QueryStatus.SUCCESS;
 
 163     public QueryStatus release(String resource, String key, SvcLogicContext ctx)  throws SvcLogicException {
 
 164         return QueryStatus.SUCCESS;
 
 168     public QueryStatus delete(String resource, String key, SvcLogicContext ctx) throws SvcLogicException {
 
 169         return QueryStatus.SUCCESS;
 
 173     public QueryStatus notify(String resource,     String action,    String key, SvcLogicContext ctx) throws SvcLogicException {
 
 174         return QueryStatus.SUCCESS;
 
 177     public QueryStatus update(String resource, String key,
 
 178             Map<String, String> parms, String prefix, SvcLogicContext ctx)
 
 179             throws SvcLogicException {
 
 180         return QueryStatus.SUCCESS;