Issue #2737 Make iscMosaic remove data from ISC when grids are deleted.
Change-Id: Ibf1255244b6e5856b5052e541727d427b331d9fe Former-commit-id:ea250a253f
[formerly01ab6ce52d
[formerly 5db8738783d79e8a48bfffac49910cc46df61ad2]] Former-commit-id:01ab6ce52d
Former-commit-id:51bb7f474d
This commit is contained in:
parent
660bc974e9
commit
700d2ba37f
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,
|
* 06/06/13 #2073 dgilling Make getGridInventory() better match A1,
|
||||||
* fix warnings.
|
* fix warnings.
|
||||||
* 11/20/2013 #2331 randerso Added getTopoData method
|
* 11/20/2013 #2331 randerso Added getTopoData method
|
||||||
|
* 04/03/2014 #2737 randerso Moved clientISCSendStatus to SaveGFEGridRequest
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -421,8 +422,8 @@ public class IFPClient {
|
||||||
throws GFEServerException {
|
throws GFEServerException {
|
||||||
ServerResponse<?> response = null;
|
ServerResponse<?> response = null;
|
||||||
if (!requests.isEmpty()) {
|
if (!requests.isEmpty()) {
|
||||||
SaveGfeGridRequest request = new SaveGfeGridRequest();
|
SaveGfeGridRequest request = new SaveGfeGridRequest(
|
||||||
request.setSaveRequest(requests);
|
dataManager.clientISCSendStatus(), requests);
|
||||||
response = makeRequest(request);
|
response = makeRequest(request);
|
||||||
}
|
}
|
||||||
logResponse(response);
|
logResponse(response);
|
||||||
|
|
|
@ -84,6 +84,7 @@ import com.raytheon.viz.gfe.core.griddata.IGridData;
|
||||||
* logging for save performance
|
* logging for save performance
|
||||||
* 04/23/13 #1949 rjpeter Added logging of number of records.
|
* 04/23/13 #1949 rjpeter Added logging of number of records.
|
||||||
* 06/26/13 #2044 randerso Fixed error message priority
|
* 06/26/13 #2044 randerso Fixed error message priority
|
||||||
|
* 04/03/2014 #2737 randerso Moved clientSendStatus from SaveGridRequest to SaveGFEGridRequest
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author chammack
|
* @author chammack
|
||||||
|
@ -618,8 +619,7 @@ public class DbParm extends Parm {
|
||||||
if (size > GfeClientConfig.getInstance().getGridSaveThreshold()) {
|
if (size > GfeClientConfig.getInstance().getGridSaveThreshold()) {
|
||||||
TimeRange tr = new TimeRange(saveTime.getStart(), data
|
TimeRange tr = new TimeRange(saveTime.getStart(), data
|
||||||
.getGridTime().getEnd());
|
.getGridTime().getEnd());
|
||||||
sgr.add(new SaveGridRequest(getParmID(), tr, records,
|
sgr.add(new SaveGridRequest(getParmID(), tr, records));
|
||||||
dataManager.clientISCSendStatus()));
|
|
||||||
|
|
||||||
// save this batch of grids
|
// save this batch of grids
|
||||||
if (doSave(sgr)) {
|
if (doSave(sgr)) {
|
||||||
|
@ -647,8 +647,7 @@ public class DbParm extends Parm {
|
||||||
|
|
||||||
// if any grids or any time not saved
|
// if any grids or any time not saved
|
||||||
if ((size > 0) || (saveTime.getDuration() > 0)) {
|
if ((size > 0) || (saveTime.getDuration() > 0)) {
|
||||||
sgr.add(new SaveGridRequest(getParmID(), saveTime, records,
|
sgr.add(new SaveGridRequest(getParmID(), saveTime, records));
|
||||||
dataManager.clientISCSendStatus()));
|
|
||||||
recordCount = records.size();
|
recordCount = records.size();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -169,6 +169,7 @@ import com.vividsolutions.jts.geom.Envelope;
|
||||||
* Jan 23, 2014 2703 bsteffen Allow construction using a resourceData,
|
* Jan 23, 2014 2703 bsteffen Allow construction using a resourceData,
|
||||||
* paint using the time in paintProps and
|
* paint using the time in paintProps and
|
||||||
* remove dead code in paintInternal
|
* remove dead code in paintInternal
|
||||||
|
* Apr 03, 2014 2737 randerso Uncommented out listers for iscParm inventory changed
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -322,8 +323,7 @@ public class GFEResource extends
|
||||||
* the datamanager responsible for it
|
* the datamanager responsible for it
|
||||||
*/
|
*/
|
||||||
public GFEResource(GFEResourceData resourceData, LoadProperties loadProps,
|
public GFEResource(GFEResourceData resourceData, LoadProperties loadProps,
|
||||||
Parm parm,
|
Parm parm, DataManager dataManager) {
|
||||||
DataManager dataManager) {
|
|
||||||
super(resourceData, loadProps);
|
super(resourceData, loadProps);
|
||||||
this.resourceData.addChangeListener(this);
|
this.resourceData.addChangeListener(this);
|
||||||
this.parm = parm;
|
this.parm = parm;
|
||||||
|
@ -1580,12 +1580,12 @@ public class GFEResource extends
|
||||||
.getISCParm(this.parm);
|
.getISCParm(this.parm);
|
||||||
if (iscParm != null) {
|
if (iscParm != null) {
|
||||||
if (message.show()) {
|
if (message.show()) {
|
||||||
// iscParm.getListeners().addParmInventoryChangedListener(
|
iscParm.getListeners().addParmInventoryChangedListener(
|
||||||
// this.parmInventoryChanged);
|
this.parmInventoryChanged);
|
||||||
iscParm.getListeners().addGridChangedListener(this.gridChanged);
|
iscParm.getListeners().addGridChangedListener(this.gridChanged);
|
||||||
} else {
|
} else {
|
||||||
// iscParm.getListeners().removeParmInventoryChangedListener(
|
iscParm.getListeners().removeParmInventoryChangedListener(
|
||||||
// this.parmInventoryChanged);
|
this.parmInventoryChanged);
|
||||||
iscParm.getListeners().removeGridChangedListener(
|
iscParm.getListeners().removeGridChangedListener(
|
||||||
this.gridChanged);
|
this.gridChanged);
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,9 +52,11 @@ import com.raytheon.uf.common.time.util.TimeUtil;
|
||||||
* 06/30/08 #875 bphillip Initial Creation
|
* 06/30/08 #875 bphillip Initial Creation
|
||||||
* 01/29/09 #1271 njensen Rewrote for thrift capabilities
|
* 01/29/09 #1271 njensen Rewrote for thrift capabilities
|
||||||
* 06/24/09 njensen Added sending notifications
|
* 06/24/09 njensen Added sending notifications
|
||||||
* 09/22/09 3058 rjpeter Converted to IRequestHandler
|
* 09/22/09 #3058 rjpeter Converted to IRequestHandler
|
||||||
* 02/12/2013 #1597 randerso Added logging to support GFE Performance investigation
|
* 02/12/2013 #1597 randerso Added logging to support GFE Performance investigation
|
||||||
* 06/13/13 2044 randerso Refactored to use IFPServer
|
* 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>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author bphillip
|
* @author bphillip
|
||||||
|
@ -72,13 +74,10 @@ public class SaveGfeGridHandler extends BaseGfeRequestHandler implements
|
||||||
public ServerResponse<?> handleRequest(SaveGfeGridRequest request)
|
public ServerResponse<?> handleRequest(SaveGfeGridRequest request)
|
||||||
throws Exception {
|
throws Exception {
|
||||||
ServerResponse<?> sr = null;
|
ServerResponse<?> sr = null;
|
||||||
List<SaveGridRequest> saveRequest = request.getSaveRequest();
|
List<SaveGridRequest> saveRequest = request.getSaveRequests();
|
||||||
WsId workstationID = request.getWorkstationID();
|
WsId workstationID = request.getWorkstationID();
|
||||||
String siteID = request.getSiteID();
|
String siteID = request.getSiteID();
|
||||||
boolean clientSendStatus = false;
|
boolean clientSendStatus = request.isClientSendStatus();
|
||||||
if (!saveRequest.isEmpty()) {
|
|
||||||
clientSendStatus = saveRequest.get(0).isClientSendStatus();
|
|
||||||
}
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
ITimer timer = TimeUtil.getTimer();
|
ITimer timer = TimeUtil.getTimer();
|
||||||
|
@ -102,11 +101,10 @@ public class SaveGfeGridHandler extends BaseGfeRequestHandler implements
|
||||||
saveRequest.size());
|
saveRequest.size());
|
||||||
for (SaveGridRequest save : saveRequest) {
|
for (SaveGridRequest save : saveRequest) {
|
||||||
DatabaseID dbid = save.getParmId().getDbId();
|
DatabaseID dbid = save.getParmId().getDbId();
|
||||||
|
|
||||||
// ensure Fcst database
|
// ensure Fcst database
|
||||||
if (dbid.getModelName().equals("Fcst")
|
if (dbid.getModelName().equals("Fcst")
|
||||||
&& dbid.getDbType().isEmpty()
|
&& dbid.getDbType().isEmpty()) {
|
||||||
&& !save.getGridSlices().isEmpty()
|
|
||||||
&& save.isClientSendStatus()) {
|
|
||||||
IscSendRecord sendReq = new IscSendRecord(
|
IscSendRecord sendReq = new IscSendRecord(
|
||||||
save.getParmId(),
|
save.getParmId(),
|
||||||
save.getReplacementTimeRange(), "",
|
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
|
# 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
|
# 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.
|
# 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
|
BATCH_DELAY = 0.0
|
||||||
|
@ -677,7 +678,7 @@ class IscMosaic:
|
||||||
inTimes = self.__getIncomingValidTimes(vars[0])
|
inTimes = self.__getIncomingValidTimes(vars[0])
|
||||||
logger.info("Processing %s #Grids=%d Site=%s", parmName, len(inTimes), self.__siteID)
|
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:
|
while retryAttempt != retries:
|
||||||
logger.debug("iscMosaic: Attempting to acquire cluster lock for: %s", parmName)
|
logger.debug("iscMosaic: Attempting to acquire cluster lock for: %s", parmName)
|
||||||
startTime = time.time()
|
startTime = time.time()
|
||||||
|
|
|
@ -35,34 +35,75 @@ import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||||
* Date Ticket# Engineer Description
|
* Date Ticket# Engineer Description
|
||||||
* ------------ ---------- ----------- --------------------------
|
* ------------ ---------- ----------- --------------------------
|
||||||
* Sep 22, 2009 3058 rjpeter Initial creation
|
* Sep 22, 2009 3058 rjpeter Initial creation
|
||||||
|
* Apr 03, 2014 2737 randerso Moved clientSendStatus from SaveGridRequest
|
||||||
|
* Added proper constructor
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
* @author rjpeter
|
* @author rjpeter
|
||||||
* @version 1.0
|
* @version 1.0
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@DynamicSerialize
|
@DynamicSerialize
|
||||||
public class SaveGfeGridRequest extends AbstractGfeRequest {
|
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) {
|
@DynamicSerializeElement
|
||||||
saveRequest.add(req);
|
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
|
* @return the saveRequest
|
||||||
*/
|
*/
|
||||||
public List<SaveGridRequest> getSaveRequest() {
|
public List<SaveGridRequest> getSaveRequests() {
|
||||||
return saveRequest;
|
return saveRequests;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param saveRequest
|
* @param saveRequest
|
||||||
* the saveRequest to set
|
* the saveRequest to set
|
||||||
*/
|
*/
|
||||||
public void setSaveRequest(List<SaveGridRequest> saveRequest) {
|
public void setSaveRequests(List<SaveGridRequest> saveRequests) {
|
||||||
this.saveRequest = saveRequest;
|
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.GFERecord;
|
||||||
import com.raytheon.uf.common.dataplugin.gfe.db.objects.ParmID;
|
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.DynamicSerialize;
|
||||||
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
import com.raytheon.uf.common.serialization.annotations.DynamicSerializeElement;
|
||||||
import com.raytheon.uf.common.time.TimeRange;
|
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
|
* 04/08/08 #875 bphillip Initial Creation
|
||||||
* 06/17/08 #940 bphillip Implemented GFE Locking
|
* 06/17/08 #940 bphillip Implemented GFE Locking
|
||||||
|
* 04/03/2014 #2737 randerso Moved clientSendStatus from SaveGridRequest
|
||||||
*
|
*
|
||||||
* </pre>
|
* </pre>
|
||||||
*
|
*
|
||||||
|
@ -47,7 +47,7 @@ import com.raytheon.uf.common.time.TimeRange;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@DynamicSerialize
|
@DynamicSerialize
|
||||||
public class SaveGridRequest implements ISerializableObject {
|
public class SaveGridRequest {
|
||||||
|
|
||||||
/** The grid slices */
|
/** The grid slices */
|
||||||
|
|
||||||
|
@ -64,14 +64,6 @@ public class SaveGridRequest implements ISerializableObject {
|
||||||
@DynamicSerializeElement
|
@DynamicSerializeElement
|
||||||
private TimeRange replacementTimeRange;
|
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
|
* Creates a new VerifyGridRequest
|
||||||
*/
|
*/
|
||||||
|
@ -86,12 +78,6 @@ public class SaveGridRequest implements ISerializableObject {
|
||||||
this.gridSlices = gridSlices;
|
this.gridSlices = gridSlices;
|
||||||
}
|
}
|
||||||
|
|
||||||
public SaveGridRequest(ParmID parmId, TimeRange replacementTimeRange,
|
|
||||||
List<GFERecord> gridSlices, boolean clientSendStatus) {
|
|
||||||
this(parmId, replacementTimeRange, gridSlices);
|
|
||||||
this.clientSendStatus = clientSendStatus;
|
|
||||||
}
|
|
||||||
|
|
||||||
public ParmID getParmId() {
|
public ParmID getParmId() {
|
||||||
return parmId;
|
return parmId;
|
||||||
}
|
}
|
||||||
|
@ -127,20 +113,4 @@ public class SaveGridRequest implements ISerializableObject {
|
||||||
public void addRecord(GFERecord rec) {
|
public void addRecord(GFERecord rec) {
|
||||||
this.gridSlices.add(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