use of org.hisp.dhis.dxf2.metadata.tasks.MetadataRetryContext in project dhis2-core by dhis2.
the class MetadataSyncPreProcessor method handleCurrentMetadataVersion.
public MetadataVersion handleCurrentMetadataVersion(MetadataRetryContext context) {
log.debug("Getting the current version of the system");
MetadataVersion metadataVersion = null;
try {
metadataVersion = metadataVersionService.getCurrentVersion();
log.info("Current Metadata Version of the system: " + metadataVersion);
} catch (MetadataVersionServiceException ex) {
context.updateRetryContext(MetadataSyncTask.GET_METADATAVERSION, ex.getMessage(), null, null);
throw new MetadataSyncServiceException(ex.getMessage(), ex);
}
return metadataVersion;
}
use of org.hisp.dhis.dxf2.metadata.tasks.MetadataRetryContext in project dhis2-core by dhis2.
the class MetadataSyncTask method handleMetadataSync.
//----------------------------------------------------------------------------------------
// Private Methods
//----------------------------------------------------------------------------------------
private MetadataSyncSummary handleMetadataSync(MetadataRetryContext context, MetadataVersion dataVersion) throws DhisVersionMismatchException {
MetadataSyncParams syncParams = new MetadataSyncParams(new MetadataImportParams(), dataVersion);
MetadataSyncSummary metadataSyncSummary = null;
try {
metadataSyncSummary = metadataSyncService.doMetadataSync(syncParams);
} catch (MetadataSyncServiceException e) {
log.error("Exception happened while trying to do metadata sync " + e.getMessage(), e);
context.updateRetryContext(METADATA_SYNC, e.getMessage(), dataVersion);
throw e;
} catch (DhisVersionMismatchException e) {
context.updateRetryContext(METADATA_SYNC, e.getMessage(), dataVersion);
throw e;
}
return metadataSyncSummary;
}
use of org.hisp.dhis.dxf2.metadata.tasks.MetadataRetryContext in project dhis2-core by dhis2.
the class MetadataSyncPostProcessor method handleSyncNotificationsAndAbortStatus.
public boolean handleSyncNotificationsAndAbortStatus(MetadataSyncSummary metadataSyncSummary, MetadataRetryContext retryContext, MetadataVersion dataVersion) {
ImportReport importReport = metadataSyncSummary.getImportReport();
if (importReport == null) {
handleImportFailedContext(null, retryContext, dataVersion);
return true;
}
Status syncStatus = importReport.getStatus();
log.info("Import completed. Import Status: " + syncStatus);
if (Status.OK.equals(syncStatus) || (Status.WARNING.equals(syncStatus) && VersionType.BEST_EFFORT.equals(dataVersion.getType()))) {
sendSuccessMailToAdmin(metadataSyncSummary);
return false;
}
if (Status.ERROR.equals(syncStatus)) {
handleImportFailedContext(metadataSyncSummary, retryContext, dataVersion);
return true;
}
return false;
}
use of org.hisp.dhis.dxf2.metadata.tasks.MetadataRetryContext in project dhis2-core by dhis2.
the class MetadataSyncPreProcessor method handleAggregateDataPush.
public ImportSummary handleAggregateDataPush(MetadataRetryContext context) {
log.debug("Entering data push");
ImportSummary importSummary = null;
AvailabilityStatus remoteServerAvailable = synchronizationManager.isRemoteServerAvailable();
if (!(remoteServerAvailable.isAvailable())) {
String message = remoteServerAvailable.getMessage();
log.error(message);
context.updateRetryContext(MetadataSyncTask.DATA_PUSH_SUMMARY, remoteServerAvailable.getMessage(), null, null);
throw new MetadataSyncServiceException(message);
}
try {
importSummary = synchronizationManager.executeDataPush();
handleAggregateImportSummary(importSummary, context);
} catch (Exception ex) {
log.error("Exception happened while trying to do data push " + ex.getMessage(), ex);
if (ex instanceof MetadataSyncServiceException) {
throw (MetadataSyncServiceException) ex;
}
context.updateRetryContext(MetadataSyncTask.DATA_PUSH_SUMMARY, ex.getMessage(), null, null);
throw new MetadataSyncServiceException(ex.getMessage(), ex);
}
log.debug("Exiting data push");
return importSummary;
}
use of org.hisp.dhis.dxf2.metadata.tasks.MetadataRetryContext in project dhis2-core by dhis2.
the class MetadataSyncPreProcessor method handleMetadataVersionsList.
public List<MetadataVersion> handleMetadataVersionsList(MetadataRetryContext context, MetadataVersion metadataVersion) {
log.debug("Fetching the list of remote versions");
List<MetadataVersion> metadataVersionList = new ArrayList<>();
try {
metadataVersionList = metadataVersionDelegate.getMetaDataDifference(metadataVersion);
if (metadataVersion == null) {
log.info("There is no initial version in the system");
}
if (isRemoteVersionEmpty(metadataVersion, metadataVersionList)) {
log.info("There are no metadata versions created in the remote instance.");
return metadataVersionList;
}
if (isUsingLatestVersion(metadataVersion, metadataVersionList)) {
log.info("Your instance is already using the latest version:" + metadataVersion);
return metadataVersionList;
}
MetadataVersion latestVersion = getLatestVersion(metadataVersionList);
assert latestVersion != null;
systemSettingManager.saveSystemSetting(SettingKey.REMOTE_METADATA_VERSION, latestVersion.getName());
log.info("Remote system is at version: " + latestVersion.getName());
} catch (MetadataVersionServiceException e) {
String message = setVersionListErrorInfoInContext(context, metadataVersion, e);
throw new MetadataSyncServiceException(message, e);
} catch (Exception ex) {
if (ex instanceof MetadataSyncServiceException) {
log.error(ex.getMessage(), ex);
throw ex;
}
String message = setVersionListErrorInfoInContext(context, metadataVersion, ex);
log.error(message, ex);
throw new MetadataSyncServiceException(message, ex);
}
return metadataVersionList;
}
Aggregations