1 /*******************************************************************************
 
   2  * ============LICENSE_START========================================================================
 
   3  * ONAP : ccsdk feature sdnr wt
 
   4  * =================================================================================================
 
   5  * Copyright (C) 2019 highstreet technologies GmbH Intellectual Property. All rights reserved.
 
   6  * =================================================================================================
 
   7  * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
 
   8  * in compliance with the License. You may obtain a copy of the License at
 
  10  * http://www.apache.org/licenses/LICENSE-2.0
 
  12  * Unless required by applicable law or agreed to in writing, software distributed under the License
 
  13  * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
 
  14  * or implied. See the License for the specific language governing permissions and limitations under
 
  16  * ============LICENSE_END==========================================================================
 
  17  ******************************************************************************/
 
  18 package org.onap.ccsdk.features.sdnr.wt.dataprovider.test;
 
  20 import static org.junit.Assert.*;
 
  22 import java.io.IOException;
 
  23 import java.util.List;
 
  24 import java.util.concurrent.TimeUnit;
 
  26 import org.junit.BeforeClass;
 
  27 import org.junit.Test;
 
  28 import org.onap.ccsdk.features.sdnr.wt.common.database.HtDatabaseClient;
 
  29 import org.onap.ccsdk.features.sdnr.wt.common.database.queries.QueryBuilders;
 
  30 import org.onap.ccsdk.features.sdnr.wt.common.database.requests.DeleteByQueryRequest;
 
  31 import org.onap.ccsdk.features.sdnr.wt.dataprovider.data.ElasticSearchDataProvider;
 
  32 import org.onap.ccsdk.features.sdnr.wt.dataprovider.data.HtDatabaseEventsService;
 
  33 import org.onap.ccsdk.features.sdnr.wt.dataprovider.data.HtDatabaseMaintenanceService;
 
  34 import org.onap.ccsdk.features.sdnr.wt.dataprovider.model.HtDatabaseMaintenance;
 
  35 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.Entity;
 
  36 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.MaintenanceBuilder;
 
  37 import org.opendaylight.yang.gen.v1.urn.opendaylight.params.xml.ns.yang.data.provider.rev190801.MaintenanceEntity;
 
  40  * - Handling of inital values for Maintenance mode.
 
  42 public class TestMaintenanceService {
 
  44         private static ElasticSearchDataProvider dbProvider;
 
  45         private static HtDatabaseClient dbRawProvider;
 
  46         private static HtDatabaseMaintenance service = null;
 
  48         private static final String NODEID = "tmsnode1";
 
  49         private static final String NODEID2 = "tmsnode2";
 
  51         public static void init() throws Exception {
 
  53                 dbProvider = new ElasticSearchDataProvider(TestCRUDforDatabase.hosts);
 
  54                 dbProvider.waitForYellowDatabaseStatus(30, TimeUnit.SECONDS);
 
  55                 dbRawProvider = new HtDatabaseClient(TestCRUDforDatabase.hosts);
 
  56                 service  = dbProvider.getHtDatabaseMaintenance();
 
  60                 clearDbEntity(Entity.Maintenancemode);
 
  61                 MaintenanceEntity obj = service.createIfNotExists(NODEID);
 
  63                 obj = service.createIfNotExists(NODEID2);
 
  65                 obj = service.getMaintenance(NODEID);
 
  67                 List<MaintenanceEntity> list = service.getAll();
 
  68                 assertEquals(2,list.size());
 
  69                 service.deleteIfNotRequired(NODEID);
 
  70                 obj = service.getMaintenance(NODEID);
 
  74                 obj = service.setMaintenance(createMaintenance(NODEID,true));
 
  83         private static MaintenanceEntity createMaintenance(String nodeId, Boolean active) {
 
  84                 return new MaintenanceBuilder().setNodeId(nodeId).setActive(active).setProblem("problem").setObjectIdRef("idref").build();
 
  86         private static void clearDbEntity(Entity entity) {
 
  87                 DeleteByQueryRequest query = new DeleteByQueryRequest(entity.getName());
 
  88                 query.setQuery(QueryBuilders.matchAllQuery().toJSON());
 
  90                         dbRawProvider.deleteByQuery(query);
 
  91                 } catch (IOException e) {
 
  94                 TestCRUDforDatabase.trySleep(1000);