Convert Sparky to Spring-Boot
[aai/sparky-be.git] / sparkybe-onap-service / src / test / java / org / onap / aai / sparky / synchronizer / SyncControllerBuilder.java
1 /**
2  * ============LICENSE_START===================================================
3  * SPARKY (AAI UI service)
4  * ============================================================================
5  * Copyright © 2017 AT&T Intellectual Property.
6  * Copyright © 2017 Amdocs
7  * All rights reserved.
8  * ============================================================================
9  * Licensed under the Apache License, Version 2.0 (the "License");
10  * you may not use this file except in compliance with the License.
11  * You may obtain a copy of the License at
12  *
13  *      http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  * ============LICENSE_END=====================================================
21  *
22  * ECOMP and OpenECOMP are trademarks
23  * and service marks of AT&T Intellectual Property.
24  */
25
26 package org.onap.aai.sparky.synchronizer;
27
28 /**
29  * The Class SyncControllerBuilder.
30  */
31 public class SyncControllerBuilder {
32
33   
34   /*
35    * We'll have to revisit this class, as the sync controllers are wired up pretty differently now
36    */
37   
38   /**
39    * Test elastic search update api.
40    */
41 /*  public void testElasticSearchUpdateApi() {
42     try {
43
44       RestClientBuilder clientBuilder = new RestClientBuilder();
45       clientBuilder.setUseHttps(false);
46
47       RestfulDataAccessor nonCachingRestProvider = new RestfulDataAccessor(clientBuilder);
48
49       ElasticSearchConfig esConfig = ElasticSearchConfig.getConfig();
50       ElasticSearchDataProvider elasticSearchDataProvider =
51           new ElasticSearchAdapter(nonCachingRestProvider, esConfig);
52
53       String payload =
54           "{ \"entityType\": \"complex\", \"pkey\": \"MORRISTOWN0075\", \"location\": { \"lat\": \"40.793414\", \"lon\": \"-74.480432\" }, \"selfLink\": \"https://aai-int1.test.att.com:8443/aai/v8/cloud-infrastructure/complexes/complex/MORRISTOWN0075?nodes-only\" }\n";
55
56       String updateRequest = elasticSearchDataProvider.buildBulkImportOperationRequest(
57           "topographysearchindex-localhost", "default",
58           "1e2a6ba9e09d5e1bcb016b3a0b8d50273b42828e47957bd2a2f3ce1854744f5f", "6", payload);
59
60       OperationResult or =
61           elasticSearchDataProvider.doBulkOperation("http://localhost:9200/_bulk", updateRequest);
62
63       System.out.println(or.toString());
64
65       /*
66        * String BULK_IMPORT_INDEX_TEMPLATE =
67        * "{\"index\":{\"_index\":\"%s\",\"_type\":\"%s\",\"_id\":\"%s\", \"_version\":\"%s\"}}\n";
68        * 
69        * StringBuilder updateRequestPayload = new StringBuilder(128);
70        * updateRequestPayload.append(String.format(BULK_IMPORT_INDEX_TEMPLATE,
71        * "topographysearchindex-localhost", "default",
72        * "1e2a6ba9e09d5e1bcb016b3a0b8d50273b42828e47957bd2a2f3ce1854744f5f", "5"));
73        * 
74        * 
75        * updateRequestPayload.append(payload);
76        * 
77        * OperationResult or = nonCachingRestProvider.doRestfulOperation(HttpMethod.PUT,
78        * "http://localhost:9200/_bulk", updateRequestPayload.toString(),
79        * RestfulDataAccessor.APPLICATION_X_WWW_FORM_URL_ENCODED,
80        * RestfulDataAccessor.APPLICATION_JSON);
81        */
82
83
84 /*
85     } catch (Exception exc) {
86       exc.printStackTrace();
87       System.out.println("Error:  failed to sync with message = " + exc.getMessage());
88     }
89   }
90   
91   /**
92    * Do historical entity sync.
93    *//*
94   public void doHistoricalEntitySync() {
95     try {
96       SyncController syncController = new SyncControllerImpl("historicalEntityTestController");
97
98       ActiveInventoryAdapter aaiAdapter = new ActiveInventoryAdapter(new OxmModelLoader(), new RestClientBuilder());
99
100       RestClientBuilder clientBuilder = new RestClientBuilder();
101       clientBuilder.setUseHttps(false);
102
103       RestfulDataAccessor nonCachingRestProvider = new RestfulDataAccessor(clientBuilder);
104
105       ElasticSearchConfig esConfig = ElasticSearchConfig.getConfig();
106
107       ElasticSearchAdapter esAdapter = new ElasticSearchAdapter(nonCachingRestProvider,esConfig);
108
109
110       IndexIntegrityValidator entityCounterHistoryValidator =
111           new IndexIntegrityValidator(nonCachingRestProvider, esConfig.getEntityCountHistoryIndex(),
112               esConfig.getType(), esConfig.getIpAddress(), esConfig.getHttpPort(),
113               esConfig.buildElasticSearchEntityCountHistoryTableConfig());
114
115       syncController.registerIndexValidator(entityCounterHistoryValidator);
116
117
118       //////
119
120
121
122       HistoricalEntitySummarizer historicalSummarizer =
123           new HistoricalEntitySummarizer(esConfig.getEntityCountHistoryIndex());
124       historicalSummarizer.setAaiDataProvider(aaiAdapter);
125       historicalSummarizer.setEsDataProvider(esAdapter);
126       syncController.registerEntitySynchronizer(historicalSummarizer);
127
128       ////
129
130       /*
131        * IndexIntegrityValidator entitySearchIndexValidator = new IndexIntegrityValidator(new
132        * RestClientBuilder());
133        * 
134        * entitySearchIndexValidator.setIndexName("topographysearchindex-localhost");
135        * entitySearchIndexValidator.setIndexType("default");
136        * entitySearchIndexValidator.setIndexSettings("");
137        * entitySearchIndexValidator.setIndexSettings("");
138        * 
139        * syncController.registerIndexValidator(entitySearchIndexValidator);
140        */
141
142       ////
143
144       /*
145        * IndexCleaner index1Cleaner = new ElasticSearchIndexCleaner(nonCachingRestProvider,
146        * "topographysearchindex-localhost", "default", "127.0.0.1", "9200", 5, 5000);
147        */
148
149       // syncController.registerIndexCleaner(index1Cleaner);
150
151       ///
152 /*
153       for (int x = 0; x < 10; x++) {
154
155         syncController.performAction(SyncActions.SYNCHRONIZE);
156
157         while (syncController.getState() == SynchronizerState.PERFORMING_SYNCHRONIZATION) {
158
159           System.out.println("sync controller state = " + syncController.getState());
160
161           Thread.sleep(1000);
162         }
163       }
164
165       syncController.shutdown();
166
167     } catch (Exception exc) {
168       exc.printStackTrace();
169       System.out.println("Error:  failed to sync with message = " + exc.getMessage());
170     }
171   }
172   
173   /**
174    * Do geo entity sync.
175    *//*
176   public void doGeoEntitySync() {
177     try {
178
179       ActiveInventoryAdapter aaiAdapter = new ActiveInventoryAdapter(new OxmModelLoader(), new RestClientBuilder());
180
181       RestClientBuilder clientBuilder = new RestClientBuilder();
182       clientBuilder.setUseHttps(false);
183
184       RestfulDataAccessor nonCachingRestProvider = new RestfulDataAccessor(clientBuilder);
185       ElasticSearchConfig esConfig = ElasticSearchConfig.getConfig();
186
187       ElasticSearchAdapter esAdapter = new ElasticSearchAdapter(nonCachingRestProvider,esConfig);
188
189       IndexIntegrityValidator entitySearchIndexValidator =
190           new IndexIntegrityValidator(nonCachingRestProvider, esConfig.getIndexName(),
191               esConfig.getType(), esConfig.getIpAddress(), esConfig.getHttpPort(),
192               esConfig.buildElasticSearchTableConfig());
193
194       SyncController syncController = new SyncControllerImpl("geoEntitySyncTestController");
195       syncController.registerIndexValidator(entitySearchIndexValidator);
196
197
198       //////
199
200       GeoSynchronizer geoSync = new GeoSynchronizer("topographysearchindex-localhost");
201       geoSync.setAaiDataProvider(aaiAdapter);
202       geoSync.setEsDataProvider(esAdapter);
203       syncController.registerEntitySynchronizer(geoSync);
204
205       ////
206
207       /*
208        * IndexIntegrityValidator entitySearchIndexValidator = new IndexIntegrityValidator(new
209        * RestClientBuilder());
210        * 
211        * entitySearchIndexValidator.setIndexName("topographysearchindex-localhost");
212        * entitySearchIndexValidator.setIndexType("default");
213        * entitySearchIndexValidator.setIndexSettings("");
214        * entitySearchIndexValidator.setIndexSettings("");
215        * 
216        * syncController.registerIndexValidator(entitySearchIndexValidator);
217        */
218
219       ////
220
221       /*
222        * IndexCleaner index1Cleaner = new ElasticSearchIndexCleaner(nonCachingRestProvider,
223        * "topographysearchindex-localhost", "default", "127.0.0.1", "9200", 5, 5000);
224        */
225
226       // syncController.registerIndexCleaner(index1Cleaner);
227
228       ///
229 /*
230       syncController.performAction(SyncActions.SYNCHRONIZE);
231
232       while (syncController.getState() == SynchronizerState.PERFORMING_SYNCHRONIZATION) {
233         Thread.sleep(1000);
234       }
235
236       syncController.shutdown();
237
238     } catch (Exception exc) {
239       exc.printStackTrace();
240       System.out.println("Error:  failed to sync with message = " + exc.getMessage());
241     }
242   }
243
244   /**
245    * Do searchable entitysync.
246    *//*
247   public void doSearchableEntitysync() {
248     try {
249       
250
251       ActiveInventoryAdapter aaiAdapter = new ActiveInventoryAdapter(new OxmModelLoader(), new RestClientBuilder());
252
253       RestClientBuilder clientBuilder = new RestClientBuilder();
254       clientBuilder.setUseHttps(false);
255
256       RestfulDataAccessor nonCachingRestProvider = new RestfulDataAccessor(clientBuilder);
257       ElasticSearchConfig esConfig = ElasticSearchConfig.getConfig();
258
259       ElasticSearchAdapter esAdapter = new ElasticSearchAdapter(nonCachingRestProvider,esConfig);
260
261       //////
262       
263       SyncController syncController = new SyncControllerImpl("searchtableEntityTestController");
264
265       ViewInspectEntitySynchronizer ses =
266           new ViewInspectEntitySynchronizer("entitysearchindex-localhost");
267       ses.setAaiDataProvider(aaiAdapter);
268       ses.setEsDataProvider(esAdapter);
269       syncController.registerEntitySynchronizer(ses);
270
271       ////
272
273       /*
274        * IndexIntegrityValidator entitySearchIndexValidator = new IndexIntegrityValidator(new
275        * RestClientBuilder());
276        * 
277        * entitySearchIndexValidator.setIndexName("esi-sync2-localhost");
278        * entitySearchIndexValidator.setIndexType("default");
279        * 
280        * syncController.registerIndexValidator(entitySearchIndexValidator);
281        */
282
283       ////
284
285       /*
286        * IndexCleaner index1Cleaner = new ElasticSearchIndexCleaner(nonCachingRestProvider,
287        * "entitysearchindex-localhost", "default", "127.0.0.1", "9200", 5, 5000);
288        * 
289        * syncController.registerIndexCleaner(index1Cleaner);
290        */
291
292       ///
293 /*
294       syncController.performAction(SyncActions.SYNCHRONIZE);
295
296       while (syncController.getState() == SynchronizerState.PERFORMING_SYNCHRONIZATION) {
297         Thread.sleep(1000);
298       }
299
300       syncController.shutdown();
301
302     } catch (Exception exc) {
303       exc.printStackTrace();
304       System.out.println("Error:  failed to sync with message = " + exc.getMessage());
305     }
306   }
307
308   /**
309    * Do cross entity reference sync.
310    *//*
311   public void doCrossEntityReferenceSync() {
312     try {
313
314       ActiveInventoryAdapter aaiAdapter = new ActiveInventoryAdapter(new OxmModelLoader(), new RestClientBuilder());
315
316       RestClientBuilder clientBuilder = new RestClientBuilder();
317       clientBuilder.setUseHttps(false);
318
319       RestfulDataAccessor nonCachingRestProvider = new RestfulDataAccessor(clientBuilder);
320       ElasticSearchConfig esConfig = ElasticSearchConfig.getConfig();
321
322       ElasticSearchAdapter esAdapter = new ElasticSearchAdapter(nonCachingRestProvider,esConfig);
323
324       SyncController syncController = new SyncControllerImpl("crossEntityRefSyncController");
325
326       CrossEntityReferenceSynchronizer cers =
327           new CrossEntityReferenceSynchronizer("entitysearchindex-localhost", ActiveInventoryConfig.getConfig());
328       cers.setAaiDataProvider(aaiAdapter);
329       cers.setEsDataProvider(esAdapter);
330       syncController.registerEntitySynchronizer(cers);
331
332       ViewInspectEntitySynchronizer ses =
333           new ViewInspectEntitySynchronizer("entitysearchindex-localhost");
334       ses.setAaiDataProvider(aaiAdapter);
335       ses.setEsDataProvider(esAdapter);
336       syncController.registerEntitySynchronizer(ses);
337
338       ElasticSearchConfig config = ElasticSearchConfig.getConfig();
339
340       IndexIntegrityValidator entitySearchIndexValidator = new IndexIntegrityValidator(
341           nonCachingRestProvider, config.getIndexName(), config.getType(), config.getIpAddress(),
342           config.getHttpPort(), config.buildElasticSearchTableConfig());
343
344       syncController.registerIndexValidator(entitySearchIndexValidator);
345
346       ////
347
348       IndexCleaner index1Cleaner =
349           new ElasticSearchIndexCleaner(nonCachingRestProvider, config.getIndexName(),
350               config.getType(), config.getIpAddress(), config.getHttpPort(), 5, 5000);
351
352       syncController.registerIndexCleaner(index1Cleaner);
353
354       ///
355
356       syncController.performAction(SyncActions.SYNCHRONIZE);
357
358       while (syncController.getState() == SynchronizerState.PERFORMING_SYNCHRONIZATION) {
359         Thread.sleep(1000);
360       }
361
362       syncController.shutdown();
363
364     } catch (Exception exc) {
365       exc.printStackTrace();
366       System.out.println("Error:  Failed to sync with message = " + exc.getMessage());
367     }
368   }
369
370   /**
371    * Do suggestion entitysync.
372    *//*
373   public void doSuggestionEntitySync() {
374     try {
375       ActiveInventoryAdapter aaiAdapter = new ActiveInventoryAdapter(new OxmModelLoader(), new RestClientBuilder());
376
377       RestClientBuilder clientBuilder = new RestClientBuilder();
378       clientBuilder.setUseHttps(false);
379
380       RestfulDataAccessor nonCachingRestProvider = new RestfulDataAccessor(clientBuilder);
381       ElasticSearchConfig esConfig = ElasticSearchConfig.getConfig();
382
383       ElasticSearchAdapter esAdapter = new ElasticSearchAdapter(nonCachingRestProvider, esConfig);
384       
385       SyncController syncController = new SyncControllerImpl("suggestionEntityTestController");
386
387       AutosuggestionSynchronizer ses =
388           new AutosuggestionSynchronizer("entityautosuggestindex-localhost");
389       ses.setAaiDataProvider(aaiAdapter);
390       ses.setEsDataProvider(esAdapter);
391       syncController.registerEntitySynchronizer(ses);
392
393       syncController.performAction(SyncActions.SYNCHRONIZE);
394
395       while (syncController.getState() == SynchronizerState.PERFORMING_SYNCHRONIZATION) {
396         Thread.sleep(1000);
397       }
398
399       syncController.shutdown();
400
401     } catch (Exception exc) {
402       exc.printStackTrace();
403       System.out.println("Error:  failed to sync with message = " + exc.getMessage());
404     }
405   }
406   
407   /*
408    * Do no op sync.
409    *//*
410   public void doNoOpSync() {
411     try {
412       SyncController syncController = new SyncControllerImpl("noopSyncTestController");
413
414       /*
415        * ActiveInventoryAdapter aaiAdapter = new ActiveInventoryAdapter(new RestClientBuilder());
416        * 
417        * aaiAdapter.setCacheEnabled(true);
418        * 
419        * /*InMemoryEntityCache aaiInMemoryCache = new InMemoryEntityCache();
420        * aaiAdapter.setEntityCache(aaiInMemoryCache);
421        */
422
423       /*
424        * PersistentEntityCache aaiDiskCache = new PersistentEntityCache();
425        * aaiAdapter.setEntityCache(aaiDiskCache);
426        * 
427        * ElasticSearchConfig config = ElasticSearchConfig.getConfig(); OXMModelLoader loader =
428        * OXMModelLoader.getInstance(); SyncAdapter syncAdapter = new SyncAdapter(new
429        * RestClientBuilder(), config, loader);
430        * 
431        * //////
432        * 
433        * SearchableEntitySynchronizer ses = new SearchableEntitySynchronizer();
434        * ses.setAaiDataProvider(aaiAdapter); ses.setEsDataProvider(syncAdapter);
435        * syncController.registerEntitySynchronizer(ses);
436        * 
437        * ////
438        * 
439        * IndexIntegrityValidator entitySearchIndexValidator = new IndexIntegrityValidator(new
440        * RestClientBuilder());
441        * 
442        * entitySearchIndexValidator.setIndexName("esi-sync2-localhost");
443        * entitySearchIndexValidator.setIndexType("default");
444        * entitySearchIndexValidator.setIndexSettings("");
445        * entitySearchIndexValidator.setIndexSettings("");
446        * 
447        * syncController.registerIndexValidator(entitySearchIndexValidator);
448        * 
449        * ////
450        * 
451        * ElasticSearchEntityPurger p1 = new ElasticSearchEntityPurger(new RestClientBuilder());
452        * p1.setIndexName("esi-blal-blah");
453        * 
454        * ElasticSearchEntityPurger p2 = new ElasticSearchEntityPurger(new RestClientBuilder());
455        * p2.setIndexName("esi-topo-blah");
456        */
457       ///
458 /*
459       syncController.performAction(SyncActions.SYNCHRONIZE);
460
461       while (syncController.getState() == SynchronizerState.PERFORMING_SYNCHRONIZATION) {
462         Thread.sleep(1000);
463       }
464
465       syncController.shutdown();
466
467     } catch (Exception exc) {
468       System.out.println("Error:  failed to sync with message = " + exc.getMessage());
469     }
470   }
471
472
473   /**
474    * The main method.
475    *
476    * @param args the arguments
477    *//*
478   public static void main(String[] args) {
479     //boolean runSearchableEntitySync = false;
480     //boolean runGeoEntitySync = true;
481
482     //System.setProperty("AJSC_HOME", "e:\\dev");
483     // System.getProperties().setProperty("AJSC_HOME",
484     // "c:\\rpo\\tier-support-ui\\target\\swm\\package\\nix\\"
485     // + "dist_files\\opt\\app\\ajsc-tier-support-ui");
486     
487     System.setProperty("CONFIG_HOME", "appconfig-local");
488     System.setProperty("AJSC_HOME", "x:\\1710_extensibility\\");
489
490     SyncControllerBuilder syncBuilder = new SyncControllerBuilder();
491
492     /*
493      * if (runSearchableEntitySync) syncBuilder.doSearchableEntitysync();
494      */
495 /*
496     syncBuilder.doSearchableEntitysync();
497     // syncBuilder.doCrossEntityReferenceSync();
498     // syncBuilder.doHistoricalEntitySync();
499     // syncBuilder.doGeoEntitySync();
500     //syncBuilder.doSuggestionEntitySync();
501     //syncBuilder.doMasterEntitySync();
502     
503     // syncBuilder.testElasticSearchUpdateAPI();
504
505     /*
506      * if (runGeoEntitySync) { syncBuilder.doGeoEntitySync(); }
507      */
508
509
510
511   //}
512 }