diff --git a/common/src/main/java/org/opensearch/ml/common/connector/AbstractConnector.java b/common/src/main/java/org/opensearch/ml/common/connector/AbstractConnector.java index 1a9f613a56..618b01b24a 100644 --- a/common/src/main/java/org/opensearch/ml/common/connector/AbstractConnector.java +++ b/common/src/main/java/org/opensearch/ml/common/connector/AbstractConnector.java @@ -72,10 +72,10 @@ public abstract class AbstractConnector implements Connector { @Setter protected ConnectorClientConfig connectorClientConfig; - public AbstractConnector() { - this.createdTime = Instant.now(); - this.lastUpdateTime = Instant.now(); - } +// public AbstractConnector() { +// this.createdTime = Instant.now(); +// this.lastUpdateTime = Instant.now(); +// } protected Map createDecryptedHeaders(Map headers) { if (headers == null) { diff --git a/common/src/main/java/org/opensearch/ml/common/connector/Connector.java b/common/src/main/java/org/opensearch/ml/common/connector/Connector.java index c808f6628c..b906246eca 100644 --- a/common/src/main/java/org/opensearch/ml/common/connector/Connector.java +++ b/common/src/main/java/org/opensearch/ml/common/connector/Connector.java @@ -12,12 +12,14 @@ import java.security.AccessController; import java.security.PrivilegedActionException; import java.security.PrivilegedExceptionAction; +import java.time.Instant; import java.util.List; import java.util.Map; import java.util.Optional; import java.util.function.Function; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; import org.apache.commons.text.StringSubstitutor; import org.opensearch.common.xcontent.LoggingDeprecationHandler; @@ -43,6 +45,8 @@ public interface Connector extends ToXContentObject, Writeable { String getName(); String getProtocol(); + void setCreatedTime(Instant createdTime); + void setLastUpdatedTime(Instant lastUpdatedTime); User getOwner(); @@ -120,7 +124,10 @@ static Connector createConnector(XContentBuilder builder, String connectorProtoc @SuppressWarnings("removal") static Connector createConnector(XContentParser parser) throws IOException { - Map connectorMap = parser.map(); + Map connectorMap = parser.map().entrySet().stream() + .filter(field -> field.getValue() != null) + .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue)); + String jsonStr; try { jsonStr = AccessController.doPrivileged((PrivilegedExceptionAction) () -> gson.toJson(connectorMap)); diff --git a/common/src/main/java/org/opensearch/ml/common/connector/HttpConnector.java b/common/src/main/java/org/opensearch/ml/common/connector/HttpConnector.java index ac2af57e22..9bdadaab90 100644 --- a/common/src/main/java/org/opensearch/ml/common/connector/HttpConnector.java +++ b/common/src/main/java/org/opensearch/ml/common/connector/HttpConnector.java @@ -65,6 +65,7 @@ public HttpConnector( User owner, ConnectorClientConfig connectorClientConfig ) { + super(); validateProtocol(protocol); this.name = name; this.description = description; @@ -147,6 +148,7 @@ public HttpConnector(String protocol, XContentParser parser) throws IOException @Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { + System.out.println("TEST MESSSAGE****"); builder.startObject(); if (name != null) { builder.field(NAME_FIELD, name); @@ -284,7 +286,9 @@ public void writeTo(StreamOutput out) throws IOException { @Override public void update(MLCreateConnectorInput updateContent, Function function) { - this.setLastUpdateTime(Instant.now()); +// if (this.lastUpdateTime != null) { +// this.setLastUpdateTime(Instant.now()); +// } if (updateContent.getName() != null) { this.name = updateContent.getName(); } @@ -391,6 +395,11 @@ public void encrypt(Function function) { } } + @Override + public void setLastUpdatedTime(Instant lastUpdatedTime) { + this.lastUpdateTime = lastUpdatedTime; + } + @Override public String getActionHttpMethod(String action) { return findAction(action).get().getMethod(); diff --git a/plugin/src/main/java/org/opensearch/ml/action/connector/TransportCreateConnectorAction.java b/plugin/src/main/java/org/opensearch/ml/action/connector/TransportCreateConnectorAction.java index 4cadcc936a..5e09768371 100644 --- a/plugin/src/main/java/org/opensearch/ml/action/connector/TransportCreateConnectorAction.java +++ b/plugin/src/main/java/org/opensearch/ml/action/connector/TransportCreateConnectorAction.java @@ -8,6 +8,7 @@ import static org.opensearch.ml.common.CommonValue.ML_CONNECTOR_INDEX; import static org.opensearch.ml.settings.MLCommonsSettings.ML_COMMONS_TRUSTED_CONNECTOR_ENDPOINTS_REGEX; +import java.time.Instant; import java.util.HashSet; import java.util.List; @@ -135,6 +136,11 @@ private void indexConnector(Connector connector, ActionListener