|
@@ -200,7 +200,7 @@ public class ConnectorSyncJob implements Writeable, ToXContentObject {
|
|
|
this.createdAt = createdAt;
|
|
|
this.deletedDocumentCount = deletedDocumentCount;
|
|
|
this.error = error;
|
|
|
- this.id = Objects.requireNonNull(id, "[id] cannot be null");
|
|
|
+ this.id = id;
|
|
|
this.indexedDocumentCount = indexedDocumentCount;
|
|
|
this.indexedDocumentVolume = indexedDocumentVolume;
|
|
|
this.jobType = Objects.requireNonNullElse(jobType, ConnectorSyncJobType.FULL);
|
|
@@ -235,10 +235,10 @@ public class ConnectorSyncJob implements Writeable, ToXContentObject {
|
|
|
}
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
- private static final ConstructingObjectParser<ConnectorSyncJob, Void> PARSER = new ConstructingObjectParser<>(
|
|
|
+ private static final ConstructingObjectParser<ConnectorSyncJob, String> PARSER = new ConstructingObjectParser<>(
|
|
|
"connector_sync_job",
|
|
|
true,
|
|
|
- (args) -> {
|
|
|
+ (args, docId) -> {
|
|
|
int i = 0;
|
|
|
return new Builder().setCancellationRequestedAt((Instant) args[i++])
|
|
|
.setCanceledAt((Instant) args[i++])
|
|
@@ -247,7 +247,7 @@ public class ConnectorSyncJob implements Writeable, ToXContentObject {
|
|
|
.setCreatedAt((Instant) args[i++])
|
|
|
.setDeletedDocumentCount((Long) args[i++])
|
|
|
.setError((String) args[i++])
|
|
|
- .setId((String) args[i++])
|
|
|
+ .setId(docId)
|
|
|
.setIndexedDocumentCount((Long) args[i++])
|
|
|
.setIndexedDocumentVolume((Long) args[i++])
|
|
|
.setJobType((ConnectorSyncJobType) args[i++])
|
|
@@ -295,7 +295,6 @@ public class ConnectorSyncJob implements Writeable, ToXContentObject {
|
|
|
);
|
|
|
PARSER.declareLong(constructorArg(), DELETED_DOCUMENT_COUNT_FIELD);
|
|
|
PARSER.declareStringOrNull(optionalConstructorArg(), ERROR_FIELD);
|
|
|
- PARSER.declareString(constructorArg(), ID_FIELD);
|
|
|
PARSER.declareLong(constructorArg(), INDEXED_DOCUMENT_COUNT_FIELD);
|
|
|
PARSER.declareLong(constructorArg(), INDEXED_DOCUMENT_VOLUME_FIELD);
|
|
|
PARSER.declareField(
|
|
@@ -383,16 +382,16 @@ public class ConnectorSyncJob implements Writeable, ToXContentObject {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- public static ConnectorSyncJob fromXContentBytes(BytesReference source, XContentType xContentType) {
|
|
|
+ public static ConnectorSyncJob fromXContentBytes(BytesReference source, String docId, XContentType xContentType) {
|
|
|
try (XContentParser parser = XContentHelper.createParser(XContentParserConfiguration.EMPTY, source, xContentType)) {
|
|
|
- return ConnectorSyncJob.fromXContent(parser);
|
|
|
+ return ConnectorSyncJob.fromXContent(parser, docId);
|
|
|
} catch (IOException e) {
|
|
|
throw new ElasticsearchParseException("Failed to parse a connector sync job document.", e);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static ConnectorSyncJob fromXContent(XContentParser parser) throws IOException {
|
|
|
- return PARSER.parse(parser, null);
|
|
|
+ public static ConnectorSyncJob fromXContent(XContentParser parser, String docId) throws IOException {
|
|
|
+ return PARSER.parse(parser, docId);
|
|
|
}
|
|
|
|
|
|
public static Connector syncJobConnectorFromXContentBytes(BytesReference source, String connectorId, XContentType xContentType) {
|
|
@@ -479,70 +478,73 @@ public class ConnectorSyncJob implements Writeable, ToXContentObject {
|
|
|
return workerHostname;
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
|
|
|
- builder.startObject();
|
|
|
+ public void toInnerXContent(XContentBuilder builder, Params params) throws IOException {
|
|
|
+ if (cancelationRequestedAt != null) {
|
|
|
+ builder.field(CANCELATION_REQUESTED_AT_FIELD.getPreferredName(), cancelationRequestedAt);
|
|
|
+ }
|
|
|
+ if (canceledAt != null) {
|
|
|
+ builder.field(CANCELED_AT_FIELD.getPreferredName(), canceledAt);
|
|
|
+ }
|
|
|
+ if (completedAt != null) {
|
|
|
+ builder.field(COMPLETED_AT_FIELD.getPreferredName(), completedAt);
|
|
|
+ }
|
|
|
+
|
|
|
+ builder.startObject(CONNECTOR_FIELD.getPreferredName());
|
|
|
{
|
|
|
- if (cancelationRequestedAt != null) {
|
|
|
- builder.field(CANCELATION_REQUESTED_AT_FIELD.getPreferredName(), cancelationRequestedAt);
|
|
|
- }
|
|
|
- if (canceledAt != null) {
|
|
|
- builder.field(CANCELED_AT_FIELD.getPreferredName(), canceledAt);
|
|
|
+ if (connector.getConnectorId() != null) {
|
|
|
+ builder.field(Connector.ID_FIELD.getPreferredName(), connector.getConnectorId());
|
|
|
}
|
|
|
- if (completedAt != null) {
|
|
|
- builder.field(COMPLETED_AT_FIELD.getPreferredName(), completedAt);
|
|
|
+ if (connector.getSyncJobFiltering() != null) {
|
|
|
+ builder.field(Connector.FILTERING_FIELD.getPreferredName(), connector.getSyncJobFiltering());
|
|
|
}
|
|
|
-
|
|
|
- builder.startObject(CONNECTOR_FIELD.getPreferredName());
|
|
|
- {
|
|
|
- if (connector.getConnectorId() != null) {
|
|
|
- builder.field(Connector.ID_FIELD.getPreferredName(), connector.getConnectorId());
|
|
|
- }
|
|
|
- if (connector.getSyncJobFiltering() != null) {
|
|
|
- builder.field(Connector.FILTERING_FIELD.getPreferredName(), connector.getSyncJobFiltering());
|
|
|
- }
|
|
|
- if (connector.getIndexName() != null) {
|
|
|
- builder.field(Connector.INDEX_NAME_FIELD.getPreferredName(), connector.getIndexName());
|
|
|
- }
|
|
|
- if (connector.getLanguage() != null) {
|
|
|
- builder.field(Connector.LANGUAGE_FIELD.getPreferredName(), connector.getLanguage());
|
|
|
- }
|
|
|
- if (connector.getPipeline() != null) {
|
|
|
- builder.field(Connector.PIPELINE_FIELD.getPreferredName(), connector.getPipeline());
|
|
|
- }
|
|
|
- if (connector.getServiceType() != null) {
|
|
|
- builder.field(Connector.SERVICE_TYPE_FIELD.getPreferredName(), connector.getServiceType());
|
|
|
- }
|
|
|
- if (connector.getConfiguration() != null) {
|
|
|
- builder.field(Connector.CONFIGURATION_FIELD.getPreferredName(), connector.getConfiguration());
|
|
|
- }
|
|
|
+ if (connector.getIndexName() != null) {
|
|
|
+ builder.field(Connector.INDEX_NAME_FIELD.getPreferredName(), connector.getIndexName());
|
|
|
}
|
|
|
- builder.endObject();
|
|
|
-
|
|
|
- builder.field(CREATED_AT_FIELD.getPreferredName(), createdAt);
|
|
|
- builder.field(DELETED_DOCUMENT_COUNT_FIELD.getPreferredName(), deletedDocumentCount);
|
|
|
- if (error != null) {
|
|
|
- builder.field(ERROR_FIELD.getPreferredName(), error);
|
|
|
+ if (connector.getLanguage() != null) {
|
|
|
+ builder.field(Connector.LANGUAGE_FIELD.getPreferredName(), connector.getLanguage());
|
|
|
}
|
|
|
- builder.field(ID_FIELD.getPreferredName(), id);
|
|
|
- builder.field(INDEXED_DOCUMENT_COUNT_FIELD.getPreferredName(), indexedDocumentCount);
|
|
|
- builder.field(INDEXED_DOCUMENT_VOLUME_FIELD.getPreferredName(), indexedDocumentVolume);
|
|
|
- builder.field(JOB_TYPE_FIELD.getPreferredName(), jobType);
|
|
|
- if (lastSeen != null) {
|
|
|
- builder.field(LAST_SEEN_FIELD.getPreferredName(), lastSeen);
|
|
|
+ if (connector.getPipeline() != null) {
|
|
|
+ builder.field(Connector.PIPELINE_FIELD.getPreferredName(), connector.getPipeline());
|
|
|
}
|
|
|
- builder.field(METADATA_FIELD.getPreferredName(), metadata);
|
|
|
- if (startedAt != null) {
|
|
|
- builder.field(STARTED_AT_FIELD.getPreferredName(), startedAt);
|
|
|
+ if (connector.getServiceType() != null) {
|
|
|
+ builder.field(Connector.SERVICE_TYPE_FIELD.getPreferredName(), connector.getServiceType());
|
|
|
}
|
|
|
- builder.field(STATUS_FIELD.getPreferredName(), status);
|
|
|
- builder.field(TOTAL_DOCUMENT_COUNT_FIELD.getPreferredName(), totalDocumentCount);
|
|
|
- builder.field(TRIGGER_METHOD_FIELD.getPreferredName(), triggerMethod);
|
|
|
- if (workerHostname != null) {
|
|
|
- builder.field(WORKER_HOSTNAME_FIELD.getPreferredName(), workerHostname);
|
|
|
+ if (connector.getConfiguration() != null) {
|
|
|
+ builder.field(Connector.CONFIGURATION_FIELD.getPreferredName(), connector.getConfiguration());
|
|
|
}
|
|
|
}
|
|
|
builder.endObject();
|
|
|
+
|
|
|
+ builder.field(CREATED_AT_FIELD.getPreferredName(), createdAt);
|
|
|
+ builder.field(DELETED_DOCUMENT_COUNT_FIELD.getPreferredName(), deletedDocumentCount);
|
|
|
+ if (error != null) {
|
|
|
+ builder.field(ERROR_FIELD.getPreferredName(), error);
|
|
|
+ }
|
|
|
+ builder.field(INDEXED_DOCUMENT_COUNT_FIELD.getPreferredName(), indexedDocumentCount);
|
|
|
+ builder.field(INDEXED_DOCUMENT_VOLUME_FIELD.getPreferredName(), indexedDocumentVolume);
|
|
|
+ builder.field(JOB_TYPE_FIELD.getPreferredName(), jobType);
|
|
|
+ if (lastSeen != null) {
|
|
|
+ builder.field(LAST_SEEN_FIELD.getPreferredName(), lastSeen);
|
|
|
+ }
|
|
|
+ builder.field(METADATA_FIELD.getPreferredName(), metadata);
|
|
|
+ if (startedAt != null) {
|
|
|
+ builder.field(STARTED_AT_FIELD.getPreferredName(), startedAt);
|
|
|
+ }
|
|
|
+ builder.field(STATUS_FIELD.getPreferredName(), status);
|
|
|
+ builder.field(TOTAL_DOCUMENT_COUNT_FIELD.getPreferredName(), totalDocumentCount);
|
|
|
+ builder.field(TRIGGER_METHOD_FIELD.getPreferredName(), triggerMethod);
|
|
|
+ if (workerHostname != null) {
|
|
|
+ builder.field(WORKER_HOSTNAME_FIELD.getPreferredName(), workerHostname);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException {
|
|
|
+ builder.startObject();
|
|
|
+ {
|
|
|
+ toInnerXContent(builder, params);
|
|
|
+ }
|
|
|
+ builder.endObject();
|
|
|
return builder;
|
|
|
}
|
|
|
|