package org.epics.archiverappliance.mgmt;
import java.util.HashMap;
import org.epics.archiverappliance.utils.ui.GetUrlContent;
import org.json.simple.JSONArray;
import com.google.common.net.UrlEscapers;
public class ArchiveWorkflowCompleted {
@SuppressWarnings("unchecked")
public static void isArchiveRequestComplete(String pvNameToArchive) {
// We have to wait for a few minutes here as it does take a while for the workflow to complete.
for(int i = 0; i < 60; i++) {
try { Thread.sleep(10*1000); } catch (InterruptedException ex) {}
String pvsInArchiveWorkflow = "http://localhost:17665/mgmt/bpl/getNeverConnectedPVs";
JSONArray neverConnectedPVs = GetUrlContent.getURLContentAsJSONArray(pvsInArchiveWorkflow);
boolean workflowCompleted = true;
for(Object neverConnectedPVObj : neverConnectedPVs) {
HashMap<String, String> neverConnectedPV = (HashMap<String, String>) neverConnectedPVObj;
if(neverConnectedPV.get("pvName").equals(pvNameToArchive)) {
workflowCompleted = false;
}
}
if(workflowCompleted) {
break;
}
}
for(int i = 0; i < 60; i++) {
try { Thread.sleep(10*1000); } catch (InterruptedException ex) {}
String pvStatusURL = "http://localhost:17665/mgmt/bpl/getPVStatus?pv=" + UrlEscapers.urlFormParameterEscaper().escape(pvNameToArchive);
HashMap<String, String> pvStatus = (HashMap<String, String>) GetUrlContent.getURLContentAsJSONArray(pvStatusURL).get(0);
if(pvStatus.get("status").equals("Being archived")) {
break;
}
}
}
}