Fix error handling 80/71580/1
authorTimoney, Dan (dt5972) <dtimoney@att.com>
Wed, 31 Oct 2018 19:50:33 +0000 (15:50 -0400)
committerDan Timoney <dtimoney@att.com>
Wed, 31 Oct 2018 20:13:28 +0000 (20:13 +0000)
Recreate client objects after failure is returned by SDC before
retrying.

Change-Id: Ib165fc1220a010a0443a7dab4014aaba8c9f29f8
Issue-ID: SDNC-472
Signed-off-by: Timoney, Dan (dt5972) <dtimoney@att.com>
ueb-listener/src/main/java/org/onap/ccsdk/sli/northbound/uebclient/SdncUebClient.java

index c025f3b..4f2de1c 100644 (file)
@@ -34,13 +34,12 @@ public class SdncUebClient {
        private static final Logger LOG = LoggerFactory.getLogger(SdncUebConfiguration.class);
 
        public static void main(String[] args) {
-               IDistributionClient client = DistributionClientFactory.createDistributionClient();
 
                SdncUebConfiguration config = new SdncUebConfiguration();
 
+               IDistributionClient client = DistributionClientFactory.createDistributionClient();
                SdncUebCallback cb = new SdncUebCallback(client, config);
 
-
                LOG.info("Scanning for local distribution artifacts before starting client");
                cb.deployDownloadedFiles(null, null, null);
 
@@ -67,6 +66,21 @@ public class SdncUebClient {
                                        if (start.getDistributionActionResult() == DistributionActionResultEnum.SUCCESS) {
                
                                                keepWaiting = false;
+                                       } else {
+                                               LOG.info("SDC returned "+start.getDistributionActionResult().toString()+" - will retry");
+                                               try {
+                                                       client.stop();
+                                               } catch(Exception e1) {
+                                                       // Ignore exception on stop
+                                               }
+                                               client = DistributionClientFactory.createDistributionClient();
+                                               cb = new SdncUebCallback(client, config);
+                                               LOG.info("Initializing ASDC distribution client");
+
+                                               result = client.init(config, cb);
+
+                                               LOG.info("Initialized ASDC distribution client - results = {}", result.getDistributionMessageResult());
+                                               
                                        }
                                } catch(Exception e) {
                                        LOG.info("Client startup failure", e);