Merge "Issue #2737 Make iscMosaic remove data from ISC when grids are deleted." into development
Former-commit-id:debde74356
[formerly2042d975c2
[formerly 93c224f21b0aec4eef0eaf0f57c5f48237c68265]] Former-commit-id:2042d975c2
Former-commit-id:83d660cf2e
This commit is contained in:
commit
d4d7e81799
7 changed files with 75 additions and 65 deletions
|
@ -118,6 +118,7 @@ import com.raytheon.viz.gfe.core.parm.Parm;
|
|||
* 06/06/13 #2073 dgilling Make getGridInventory() better match A1,
|
||||
* fix warnings.
|
||||
* 11/20/2013 #2331 randerso Added getTopoData method
|
||||
* 04/03/2014 #2737 randerso Moved clientISCSendStatus to SaveGFEGridRequest
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -421,8 +422,8 @@ public class IFPClient {
|
|||
throws GFEServerException {
|
||||
ServerResponse<?> response = null;
|
||||
if (!requests.isEmpty()) {
|
||||
SaveGfeGridRequest request = new SaveGfeGridRequest();
|
||||
request.setSaveRequest(requests);
|
||||
SaveGfeGridRequest request = new SaveGfeGridRequest(
|
||||
dataManager.clientISCSendStatus(), requests);
|
||||
response = makeRequest(request);
|
||||
}
|
||||
logResponse(response);
|
||||
|
|
|
@ -84,6 +84,7 @@ import com.raytheon.viz.gfe.core.griddata.IGridData;
|
|||
* logging for save performance
|
||||
* 04/23/13 #1949 rjpeter Added logging of number of records.
|
||||
* 06/26/13 #2044 randerso Fixed error message priority
|
||||
* 04/03/2014 #2737 randerso Moved clientSendStatus from SaveGridRequest to SaveGFEGridRequest
|
||||
* </pre>
|
||||
*
|
||||
* @author chammack
|
||||
|
@ -618,8 +619,7 @@ public class DbParm extends Parm {
|
|||
if (size > GfeClientConfig.getInstance().getGridSaveThreshold()) {
|
||||
TimeRange tr = new TimeRange(saveTime.getStart(), data
|
||||
.getGridTime().getEnd());
|
||||
sgr.add(new SaveGridRequest(getParmID(), tr, records,
|
||||
dataManager.clientISCSendStatus()));
|
||||
sgr.add(new SaveGridRequest(getParmID(), tr, records));
|
||||
|
||||
// save this batch of grids
|
||||
if (doSave(sgr)) {
|
||||
|
@ -647,8 +647,7 @@ public class DbParm extends Parm {
|
|||
|
||||
// if any grids or any time not saved
|
||||
if ((size > 0) || (saveTime.getDuration() > 0)) {
|
||||
sgr.add(new SaveGridRequest(getParmID(), saveTime, records,
|
||||
dataManager.clientISCSendStatus()));
|
||||
sgr.add(new SaveGridRequest(getParmID(), saveTime, records));
|
||||
recordCount = records.size();
|
||||
}
|
||||
|
||||
|
|
|
@ -169,6 +169,7 @@ import com.vividsolutions.jts.geom.Envelope;
|
|||
* Jan 23, 2014 2703 bsteffen Allow construction using a resourceData,
|
||||
* paint using the time in paintProps and
|
||||
* remove dead code in paintInternal
|
||||
* Apr 03, 2014 2737 randerso Uncommented out listers for iscParm inventory changed
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -322,8 +323,7 @@ public class GFEResource extends
|
|||
* the datamanager responsible for it
|
||||
*/
|
||||
public GFEResource(GFEResourceData resourceData, LoadProperties loadProps,
|
||||
Parm parm,
|
||||
DataManager dataManager) {
|
||||
Parm parm, DataManager dataManager) {
|
||||
super(resourceData, loadProps);
|
||||
this.resourceData.addChangeListener(this);
|
||||
this.parm = parm;
|
||||
|
@ -1580,12 +1580,12 @@ public class GFEResource extends
|
|||
.getISCParm(this.parm);
|
||||
if (iscParm != null) {
|
||||
if (message.show()) {
|
||||
// iscParm.getListeners().addParmInventoryChangedListener(
|
||||
// this.parmInventoryChanged);
|
||||
iscParm.getListeners().addParmInventoryChangedListener(
|
||||
this.parmInventoryChanged);
|
||||
iscParm.getListeners().addGridChangedListener(this.gridChanged);
|
||||
} else {
|
||||
// iscParm.getListeners().removeParmInventoryChangedListener(
|
||||
// this.parmInventoryChanged);
|
||||
iscParm.getListeners().removeParmInventoryChangedListener(
|
||||
this.parmInventoryChanged);
|
||||
iscParm.getListeners().removeGridChangedListener(
|
||||
this.gridChanged);
|
||||
}
|
||||
|
|
|
@ -52,9 +52,11 @@ import com.raytheon.uf.common.time.util.TimeUtil;
|
|||
* 06/30/08 #875 bphillip Initial Creation
|
||||
* 01/29/09 #1271 njensen Rewrote for thrift capabilities
|
||||
* 06/24/09 njensen Added sending notifications
|
||||
* 09/22/09 3058 rjpeter Converted to IRequestHandler
|
||||
* 02/12/2013 #1597 randerso Added logging to support GFE Performance investigation
|
||||
* 06/13/13 2044 randerso Refactored to use IFPServer
|
||||
* 09/22/09 #3058 rjpeter Converted to IRequestHandler
|
||||
* 02/12/2013 #1597 randerso Added logging to support GFE Performance investigation
|
||||
* 06/13/13 #2044 randerso Refactored to use IFPServer
|
||||
* 04/03/2014 #2737 randerso Changed to send ISC even when no grids are saved
|
||||
* (i.e. on grid deletes)
|
||||
* </pre>
|
||||
*
|
||||
* @author bphillip
|
||||
|
@ -72,13 +74,10 @@ public class SaveGfeGridHandler extends BaseGfeRequestHandler implements
|
|||
public ServerResponse<?> handleRequest(SaveGfeGridRequest request)
|
||||
throws Exception {
|
||||
ServerResponse<?> sr = null;
|
||||
List<SaveGridRequest> saveRequest = request.getSaveRequest();
|
||||
List<SaveGridRequest> saveRequest = request.getSaveRequests();
|
||||
WsId workstationID = request.getWorkstationID();
|
||||
String siteID = request.getSiteID();
|
||||
boolean clientSendStatus = false;
|
||||
if (!saveRequest.isEmpty()) {
|
||||
clientSendStatus = saveRequest.get(0).isClientSendStatus();
|
||||
}
|
||||
boolean clientSendStatus = request.isClientSendStatus();
|
||||
|
||||
try {
|
||||
ITimer timer = TimeUtil.getTimer();
|
||||
|
@ -102,11 +101,10 @@ public class SaveGfeGridHandler extends BaseGfeRequestHandler implements
|
|||
saveRequest.size());
|
||||
for (SaveGridRequest save : saveRequest) {
|
||||
DatabaseID dbid = save.getParmId().getDbId();
|
||||
|
||||
// ensure Fcst database
|
||||
if (dbid.getModelName().equals("Fcst")
|
||||
&& dbid.getDbType().isEmpty()
|
||||
&& !save.getGridSlices().isEmpty()
|
||||
&& save.isClientSendStatus()) {
|
||||
&& dbid.getDbType().isEmpty()) {
|
||||
IscSendRecord sendReq = new IscSendRecord(
|
||||
save.getParmId(),
|
||||
save.getReplacementTimeRange(), "",
|
||||
|
|
|
@ -86,6 +86,7 @@ from com.raytheon.uf.edex.database.cluster import ClusterTask
|
|||
# Changed WECache to limit the number of cached grids kept in memory
|
||||
# 01/09/14 16952 randerso Fix regression made in #2517 which caused errors with overlapping grids
|
||||
# 02/04/14 17042 ryu Check in changes for randerso.
|
||||
# 04/03/2014 2737 randerso Allow iscMosaic to blankOtherPeriods even when no grids received
|
||||
#
|
||||
|
||||
BATCH_DELAY = 0.0
|
||||
|
@ -677,7 +678,7 @@ class IscMosaic:
|
|||
inTimes = self.__getIncomingValidTimes(vars[0])
|
||||
logger.info("Processing %s #Grids=%d Site=%s", parmName, len(inTimes), self.__siteID)
|
||||
|
||||
if self.__eraseFirst or len(inTimes) > 0:
|
||||
if self.__blankOtherPeriods or self.__eraseFirst or len(inTimes) > 0:
|
||||
while retryAttempt != retries:
|
||||
logger.debug("iscMosaic: Attempting to acquire cluster lock for: %s", parmName)
|
||||
startTime = time.time()
|
||||
|
|
|
@ -35,34 +35,75 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
|||
* Date Ticket# Engineer Description
|
||||
* ------------ ---------- ----------- --------------------------
|
||||
* Sep 22, 2009 3058 rjpeter Initial creation
|
||||
* Apr 03, 2014 2737 randerso Moved clientSendStatus from SaveGridRequest
|
||||
* Added proper constructor
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
* @author rjpeter
|
||||
* @version 1.0
|
||||
*/
|
||||
|
||||
@DynamicSerialize
|
||||
public class SaveGfeGridRequest extends AbstractGfeRequest {
|
||||
@DynamicSerializeElement
|
||||
private List<SaveGridRequest> saveRequest = new ArrayList<SaveGridRequest>();
|
||||
/**
|
||||
* Denotes whether to send ISC grids on save based on the client's
|
||||
* preferences
|
||||
*/
|
||||
|
||||
public void addRequest(SaveGridRequest req) {
|
||||
saveRequest.add(req);
|
||||
@DynamicSerializeElement
|
||||
private boolean clientSendStatus = true;
|
||||
|
||||
@DynamicSerializeElement
|
||||
private List<SaveGridRequest> saveRequests = new ArrayList<SaveGridRequest>();
|
||||
|
||||
/**
|
||||
* Default constructor for serialization
|
||||
*/
|
||||
public SaveGfeGridRequest() {
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param clientSendStatus
|
||||
* true if ISC grids should be sent
|
||||
* @param saveRequests
|
||||
* the save requests
|
||||
*/
|
||||
public SaveGfeGridRequest(boolean clientSendStatus,
|
||||
List<SaveGridRequest> saveRequests) {
|
||||
this.clientSendStatus = clientSendStatus;
|
||||
this.saveRequests = saveRequests;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the clientSendStatus
|
||||
*/
|
||||
public boolean isClientSendStatus() {
|
||||
return clientSendStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param clientSendStatus
|
||||
* the clientSendStatus to set
|
||||
*/
|
||||
public void setClientSendStatus(boolean clientSendStatus) {
|
||||
this.clientSendStatus = clientSendStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the saveRequest
|
||||
*/
|
||||
public List<SaveGridRequest> getSaveRequest() {
|
||||
return saveRequest;
|
||||
public List<SaveGridRequest> getSaveRequests() {
|
||||
return saveRequests;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param saveRequest
|
||||
* the saveRequest to set
|
||||
*/
|
||||
public void setSaveRequest(List<SaveGridRequest> saveRequest) {
|
||||
this.saveRequest = saveRequest;
|
||||
public void setSaveRequests(List<SaveGridRequest> saveRequests) {
|
||||
this.saveRequests = saveRequests;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -25,7 +25,6 @@ import java.util.List;
|
|||
|
||||
import com.raytheon.uf.common.dataplugin.gfe.db.objects.GFERecord;
|
||||
import com.raytheon.uf.common.dataplugin.gfe.db.objects.ParmID;
|
||||
import com.raytheon.uf.common.serialization.ISerializableObject;
|
||||
import com.raytheon.uf.common.serialization.annotations.DynamicSerialize;
|
||||
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||
import com.raytheon.uf.common.time.TimeRange;
|
||||
|
@ -39,6 +38,7 @@ import com.raytheon.uf.common.time.TimeRange;
|
|||
* ------------ ---------- ----------- --------------------------
|
||||
* 04/08/08 #875 bphillip Initial Creation
|
||||
* 06/17/08 #940 bphillip Implemented GFE Locking
|
||||
* 04/03/2014 #2737 randerso Moved clientSendStatus from SaveGridRequest
|
||||
*
|
||||
* </pre>
|
||||
*
|
||||
|
@ -47,7 +47,7 @@ import com.raytheon.uf.common.time.TimeRange;
|
|||
*/
|
||||
|
||||
@DynamicSerialize
|
||||
public class SaveGridRequest implements ISerializableObject {
|
||||
public class SaveGridRequest {
|
||||
|
||||
/** The grid slices */
|
||||
|
||||
|
@ -64,14 +64,6 @@ public class SaveGridRequest implements ISerializableObject {
|
|||
@DynamicSerializeElement
|
||||
private TimeRange replacementTimeRange;
|
||||
|
||||
/**
|
||||
* Denotes whether to send ISC grids on save based on the client's
|
||||
* preferences
|
||||
*/
|
||||
|
||||
@DynamicSerializeElement
|
||||
private boolean clientSendStatus = true;
|
||||
|
||||
/**
|
||||
* Creates a new VerifyGridRequest
|
||||
*/
|
||||
|
@ -86,12 +78,6 @@ public class SaveGridRequest implements ISerializableObject {
|
|||
this.gridSlices = gridSlices;
|
||||
}
|
||||
|
||||
public SaveGridRequest(ParmID parmId, TimeRange replacementTimeRange,
|
||||
List<GFERecord> gridSlices, boolean clientSendStatus) {
|
||||
this(parmId, replacementTimeRange, gridSlices);
|
||||
this.clientSendStatus = clientSendStatus;
|
||||
}
|
||||
|
||||
public ParmID getParmId() {
|
||||
return parmId;
|
||||
}
|
||||
|
@ -127,20 +113,4 @@ public class SaveGridRequest implements ISerializableObject {
|
|||
public void addRecord(GFERecord rec) {
|
||||
this.gridSlices.add(rec);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return the clientSendStatus
|
||||
*/
|
||||
public boolean isClientSendStatus() {
|
||||
return clientSendStatus;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param clientSendStatus
|
||||
* the clientSendStatus to set
|
||||
*/
|
||||
public void setClientSendStatus(boolean clientSendStatus) {
|
||||
this.clientSendStatus = clientSendStatus;
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue