This is an automated email from the ASF dual-hosted git repository.
peacewong pushed a commit to branch dev-1.3.2
in repository https://gitbox.apache.org/repos/asf/incubator-linkis.git
The following commit(s) were added to refs/heads/dev-1.3.2 by this push:
new 44676701d Dev 1.3.2 fix cs remove by prefix (#4052)
44676701d is described below
commit 44676701d5476cc5643159240809af1b4157efc0
Author: Alexyang <[email protected]>
AuthorDate: Wed Dec 28 17:22:34 2022 +0800
Dev 1.3.2 fix cs remove by prefix (#4052)
* 1. cs-client - fix bug in initNodeCSInfo.
2. cs-client - add method removeValueByKeyAndContextType.
3. cs-server - add restful method 'removeAllValueByKeyAndContextType'.
* context-service - remove method 'removeValueByKey' because there are
already a method 'remove' with same function
* linkis-gateway-server-support - fix backupInstance in ContextIdParserImpl
* linkis-cs-server - remove duplicated method
* linkis-cs-server - remove duplicated method
* format code
---
.../org/apache/linkis/cs/client/ContextClient.java | 12 ++++++++
.../linkis/cs/client/http/HttpContextClient.java | 14 +++++++++
.../cs/client/service/CSNodeServiceImpl.java | 2 +-
.../cs/client/utils/ContextServerHttpConf.scala | 3 ++
.../org/apache/linkis/cs/client/test/Test.java | 11 +++++++
.../cs/contextcache/ContextCacheService.java | 2 ++
.../contextcache/DefaultContextCacheService.java | 17 +++++++++++
.../cache/cskey/ContextKeyValueContext.java | 2 ++
.../cache/cskey/ContextValueMapSet.java | 4 +++
.../cache/cskey/impl/ContextValueMapSetImpl.java | 35 ++++++++++++++++++++++
.../cskey/impl/DefaultContextKeyValueContext.java | 11 +++++++
.../cs/persistence/dao/ContextMapMapper.java | 5 ++++
.../cs/persistence/dao/impl/contextMapMapper.xml | 9 ++++++
.../persistence/ContextMapPersistence.java | 2 ++
.../impl/ContextMapPersistenceImpl.java | 5 ++++
.../cs/server/enumeration/ServiceMethod.java | 1 +
.../cs/server/restful/ContextRestfulApi.java | 26 ++++++++++++++++
.../linkis/cs/server/service/ContextService.java | 3 ++
.../cs/server/service/impl/ContextServiceImpl.java | 11 +++++++
.../route/contextservice/ContextIdParserImpl.scala | 2 +-
20 files changed, 175 insertions(+), 2 deletions(-)
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/ContextClient.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/ContextClient.java
index 735b18664..276df180e 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/ContextClient.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/ContextClient.java
@@ -136,11 +136,23 @@ public interface ContextClient extends Closeable {
List<ContextHistory> searchHistory(ContextID contextID, String... keywords)
throws ErrorException;
+ /**
+ * If you want to remove some type of key starting with keyPrefix, please
make sure the keyPrefix
+ * is end up with '.'. In this way, you will not remove the value by mistake
those node name
+ * contains your node name. eg : Suppose you hava a workflow with node1 and
node1_xxx , you want
+ * to clear values of the type 'METADATA' and prefix 'node.node1', but this
will also clear values
+ * of node1_xxx . So you can use the prefix 'node.node1.', which is safe.
+ *
+ * @throws ErrorException
+ */
void removeAllValueByKeyPrefixAndContextType(
ContextID contextID, ContextType contextType, String keyPrefix) throws
ErrorException;
void removeAllValueByKeyPrefix(ContextID contextID, String keyPrefix) throws
ErrorException;
+ void removeAllValueByKeyAndContextType(
+ ContextID contextID, ContextType contextType, String keyStr) throws
ErrorException;
+
List<String> searchHAIDByTime(
String createTimeStart,
String createTimeEnd,
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/http/HttpContextClient.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/http/HttpContextClient.java
index bae8bd51a..f32bad39e 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/http/HttpContextClient.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/http/HttpContextClient.java
@@ -712,6 +712,20 @@ public class HttpContextClient extends
AbstractContextClient {
checkDWSResult(execute(action));
}
+ @Override
+ public void removeAllValueByKeyAndContextType(
+ ContextID contextID, ContextType contextType, String key) throws
ErrorException {
+ String contextIDStr = SerializeHelper.serializeContextID(contextID);
+ DefaultContextPostAction action =
+
ContextPostActionBuilder.of(ContextServerHttpConf.removeAllValueByKeyAndContextTypeURL())
+ .with(ContextHTTPConstant.CONTEXT_ID_STR, contextIDStr)
+ .with(ContextHTTPConstant.CONTEXT_KEY_TYPE_STR,
contextType.toString())
+ .with(ContextHTTPConstant.CONTEXT_KEY_STR, key)
+ .addHeader(ContextHTTPConstant.CONTEXT_ID_STR, contextIDStr)
+ .build();
+ checkDWSResult(execute(action));
+ }
+
@Override
public void removeAllValueByKeyPrefix(ContextID contextID, String keyPrefix)
throws ErrorException {
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/service/CSNodeServiceImpl.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/service/CSNodeServiceImpl.java
index dd71168df..3f79011e0 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/service/CSNodeServiceImpl.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/java/org/apache/linkis/cs/client/service/CSNodeServiceImpl.java
@@ -55,7 +55,7 @@ public class CSNodeServiceImpl implements CSNodeService {
ContextClient contextClient =
ContextClientFactory.getOrCreateContextClient();
ContextID contextID = SerializeHelper.deserializeContextID(contextIDStr);
contextClient.removeAllValueByKeyPrefixAndContextType(
- contextID, ContextType.METADATA, CSCommonUtils.NODE_PREFIX +
ndeName);
+ contextID, ContextType.METADATA, CSCommonUtils.NODE_PREFIX + ndeName
+ ".");
logger.info("contextIDStr: {} and nodeName: {} init cs info",
contextIDStr, ndeName);
} catch (Exception e) {
logger.error("Failed to init node cs Info", e);
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/scala/org/apache/linkis/cs/client/utils/ContextServerHttpConf.scala
b/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/scala/org/apache/linkis/cs/client/utils/ContextServerHttpConf.scala
index e85a2980b..7aa3f0383 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/scala/org/apache/linkis/cs/client/utils/ContextServerHttpConf.scala
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/main/scala/org/apache/linkis/cs/client/utils/ContextServerHttpConf.scala
@@ -64,6 +64,9 @@ object ContextServerHttpConf {
val removeAllValueByKeyPrefixAndContextTypeURL: String =
urlPrefix + "/removeAllValueByKeyPrefixAndContextType"
+ val removeAllValueByKeyAndContextTypeURL: String =
+ urlPrefix + "/removeAllValueByKeyAndContextType"
+
val removeAllValueByKeyPrefixURL: String = urlPrefix +
"/removeAllValueByKeyPrefix"
val searchContextIDByTime: String = urlPrefix + "/searchContextIDByTime"
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/test/java/org/apache/linkis/cs/client/test/Test.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/test/java/org/apache/linkis/cs/client/test/Test.java
index 257d2a4e6..b86ffbb9a 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/test/java/org/apache/linkis/cs/client/test/Test.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-client/src/test/java/org/apache/linkis/cs/client/test/Test.java
@@ -114,6 +114,17 @@ public class Test {
context.setContextKeyAndValue(contextKeyValue);
ContextValue myValue = context.getContextValue(contextKey);
System.out.println(SerializeHelper.serializeContextID(context.getContextID()));
+ contextClient.removeAllValueByKeyAndContextType(
+ context.getContextID(), contextKey.getContextType(),
contextKey.getKey());
+ ContextValue delValue = context.getContextValue(contextKey);
+ if (null != delValue) {
+ System.err.println(
+ "contextValue : "
+ + myValue.getValue()
+ + " with key : "
+ + contextKey.getKey()
+ + " was not deleted.");
+ }
List<String> idList = new ArrayList<>();
idList.add(csid);
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/ContextCacheService.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/ContextCacheService.java
index ca2eed4d6..a37f1d3e1 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/ContextCacheService.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/ContextCacheService.java
@@ -55,4 +55,6 @@ public interface ContextCacheService {
void removeByKeyPrefix(ContextID contextID, String preFix);
void removeByKeyPrefix(ContextID contextID, String preFix, ContextType
csType);
+
+ void removeByKey(ContextID contextID, String preFix, ContextType csType);
}
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/DefaultContextCacheService.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/DefaultContextCacheService.java
index 5333b046d..f9227aef8 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/DefaultContextCacheService.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/DefaultContextCacheService.java
@@ -290,4 +290,21 @@ public class DefaultContextCacheService implements
ContextCacheService {
e);
}
}
+
+ @Override
+ public void removeByKey(ContextID contextID, String keyStr, ContextType
csType) {
+ if (null == contextID || StringUtils.isBlank(keyStr) || null == csType) {
+ return;
+ }
+ try {
+ ContextIDValue contextIDValue =
contextCache.getContextIDValue(contextID);
+ contextIDValue.getContextKeyValueContext().removeByKey(keyStr, csType);
+ } catch (Exception e) {
+ logger.error(
+ String.format(
+ "Failed to removeByKey contextID(%s) of key keyStr(%s) and
csyTye(%s)",
+ contextID.getContextId(), keyStr, csType.name()),
+ e);
+ }
+ }
}
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/ContextKeyValueContext.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/ContextKeyValueContext.java
index eadada79d..0c8080341 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/ContextKeyValueContext.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/ContextKeyValueContext.java
@@ -63,4 +63,6 @@ public interface ContextKeyValueContext {
void removeByKeyPrefix(String preFix);
void removeByKeyPrefix(String preFix, ContextType csType);
+
+ void removeByKey(String keyStr, ContextType csType);
}
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/ContextValueMapSet.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/ContextValueMapSet.java
index 107cd772d..682430c88 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/ContextValueMapSet.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/ContextValueMapSet.java
@@ -48,5 +48,9 @@ public interface ContextValueMapSet {
List<ContextKey> findByKeyPrefix(String preFix);
+ List<ContextKey> findByKey(String keyStr);
+
List<ContextKey> findByKeyPrefix(String preFix, ContextType csType);
+
+ List<ContextKey> findByKey(String keyStr, ContextType csType);
}
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/impl/ContextValueMapSetImpl.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/impl/ContextValueMapSetImpl.java
index 897274eb0..7ddb75dca 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/impl/ContextValueMapSetImpl.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/impl/ContextValueMapSetImpl.java
@@ -166,6 +166,24 @@ public class ContextValueMapSetImpl implements
ContextValueMapSet {
return contextKeyValueList;
}
+ @Override
+ public List<ContextKey> findByKey(String keyStr) {
+ if (StringUtils.isBlank(keyStr)) {
+ return null;
+ }
+ List<ContextKey> contextKeyValueList = new ArrayList<>();
+ for (Map<String, ContextKeyValue> contextKeyValueMap :
contextValueMapSet.values()) {
+ Iterator<String> iterator = contextKeyValueMap.keySet().iterator();
+ while (iterator.hasNext()) {
+ String key = iterator.next();
+ if (key.equals(keyStr)) {
+ contextKeyValueList.add(contextKeyValueMap.get(key).getContextKey());
+ }
+ }
+ }
+ return contextKeyValueList;
+ }
+
@Override
public List<ContextKey> findByKeyPrefix(String preFix, ContextType csType) {
if (StringUtils.isBlank(preFix)) {
@@ -182,4 +200,21 @@ public class ContextValueMapSetImpl implements
ContextValueMapSet {
}
return contextKeyValueList;
}
+
+ @Override
+ public List<ContextKey> findByKey(String keyStr, ContextType csType) {
+ if (StringUtils.isBlank(keyStr)) {
+ return null;
+ }
+ Map<String, ContextKeyValue> contextValueMap = getContextValueMap(csType);
+ List<ContextKey> contextKeyValueList = new ArrayList<>();
+ Iterator<String> iterator = contextValueMap.keySet().iterator();
+ while (iterator.hasNext()) {
+ String key = iterator.next();
+ if (key.equals(keyStr)) {
+ contextKeyValueList.add(contextValueMap.get(key).getContextKey());
+ }
+ }
+ return contextKeyValueList;
+ }
}
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/impl/DefaultContextKeyValueContext.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/impl/DefaultContextKeyValueContext.java
index 1924cea91..a3481d829 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/impl/DefaultContextKeyValueContext.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/contextcache/cache/cskey/impl/DefaultContextKeyValueContext.java
@@ -222,4 +222,15 @@ public class DefaultContextKeyValueContext implements
ContextKeyValueContext {
logger.warn("Remove keyValue by key preFix{} and csType{} ", preFix,
csType);
}
}
+
+ @Override
+ public void removeByKey(String keyStr, ContextType csType) {
+ List<ContextKey> removeKeys = getContextValueMapSet().findByKey(keyStr,
csType);
+ if (CollectionUtils.isNotEmpty(removeKeys)) {
+ for (ContextKey key : removeKeys) {
+ remove(key);
+ }
+ logger.warn("Remove keyValue by keyStr {} and csType{} ", keyStr,
csType);
+ }
+ }
}
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/dao/ContextMapMapper.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/dao/ContextMapMapper.java
index 9dfdaed23..515ba8759 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/dao/ContextMapMapper.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/dao/ContextMapMapper.java
@@ -74,6 +74,11 @@ public interface ContextMapMapper {
@Param("contextType") ContextType contextType,
@Param("keyPrefix") String keyPrefix);
+ void removeByKeyAndContextType(
+ @Param("contextID") ContextID contextID,
+ @Param("contextType") ContextType contextType,
+ @Param("keyStr") String keyStr);
+
void removeByKeyPrefix(
@Param("contextID") ContextID contextID, @Param("keyPrefix") String
keyPrefix);
}
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/dao/impl/contextMapMapper.xml
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/dao/impl/contextMapMapper.xml
index 489ca3230..603765d8e 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/dao/impl/contextMapMapper.xml
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/dao/impl/contextMapMapper.xml
@@ -156,4 +156,13 @@
</where>
</delete>
+ <delete id="removeByKeyAndContextType">
+ delete from linkis_ps_cs_context_map
+ <where>
+ <if test="#{contextID.contextId} !=null">context_id =
#{contextID.contextId} and </if>
+ <if test="#{contextType} !=null">context_type = #{contextType} and
</if>
+ <if test="#{keyStr} !=null">`key` = #{keyStr}</if>
+ </where>
+ </delete>
+
</mapper>
\ No newline at end of file
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/persistence/ContextMapPersistence.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/persistence/ContextMapPersistence.java
index c2115d040..1adb15fa4 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/persistence/ContextMapPersistence.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/persistence/ContextMapPersistence.java
@@ -59,6 +59,8 @@ public interface ContextMapPersistence {
void removeByKeyPrefix(ContextID contextID, ContextType contextType, String
keyPrefix);
+ void removeByKey(ContextID contextID, ContextType contextType, String
keyPrefix);
+
List<ContextKeyValue> searchContextIDByTime(
Date createTimeStart,
Date createTimeEnd,
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/persistence/impl/ContextMapPersistenceImpl.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/persistence/impl/ContextMapPersistenceImpl.java
index c42ffe9f7..63f7007e8 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/persistence/impl/ContextMapPersistenceImpl.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/persistence/persistence/impl/ContextMapPersistenceImpl.java
@@ -234,6 +234,11 @@ public class ContextMapPersistenceImpl implements
ContextMapPersistence {
contextMapMapper.removeByKeyPrefixAndContextType(contextID, contextType,
keyPrefix);
}
+ @Override
+ public void removeByKey(ContextID contextID, ContextType contextType, String
keyStr) {
+ contextMapMapper.removeByKeyAndContextType(contextID, contextType, keyStr);
+ }
+
@Override
public List<ContextKeyValue> searchContextIDByTime(
Date createTimeStart,
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/enumeration/ServiceMethod.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/enumeration/ServiceMethod.java
index ad5e82e05..9faaf1a03 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/enumeration/ServiceMethod.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/enumeration/ServiceMethod.java
@@ -24,6 +24,7 @@ public enum ServiceMethod {
SEARCH,
REMOVE,
REMOVEALL,
+ REMOVEVALUEBYKEY,
UPDATE,
RESET,
SET,
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextRestfulApi.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextRestfulApi.java
index 62f9548c9..6573596d4 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextRestfulApi.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/restful/ContextRestfulApi.java
@@ -245,6 +245,32 @@ public class ContextRestfulApi implements CsRestfulParent {
return generateResponse(answerJob, "");
}
+ @ApiOperation(
+ value = "removeAllValueByKeyAndContextType",
+ notes = "remove all value by key and context type",
+ response = Message.class)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = "contextKeyType", required = true, dataType =
"String"),
+ @ApiImplicitParam(name = "contextKey", required = true, dataType =
"String")
+ })
+ @ApiOperationSupport(ignoreParameters = {"jsonNode"})
+ @RequestMapping(path = "removeAllValueByKeyAndContextType", method =
RequestMethod.POST)
+ public Message removeAllValueByKeyAndContextType(
+ HttpServletRequest req, @RequestBody JsonNode jsonNode)
+ throws InterruptedException, CSErrorException, IOException,
ClassNotFoundException {
+ ContextID contextID = getContextIDFromJsonNode(jsonNode);
+ String contextType =
jsonNode.get(ContextHTTPConstant.CONTEXT_KEY_TYPE_STR).textValue();
+ String keyStr =
jsonNode.get(ContextHTTPConstant.CONTEXT_KEY_STR).textValue();
+ HttpAnswerJob answerJob =
+ submitRestJob(
+ req,
+ ServiceMethod.REMOVEVALUEBYKEY,
+ contextID,
+ ContextType.valueOf(contextType),
+ keyStr);
+ return generateResponse(answerJob, "");
+ }
+
@ApiOperation(
value = "removeAllValueByKeyPrefix",
notes = "remove all value by key prefix",
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/service/ContextService.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/service/ContextService.java
index 4dce58d81..d5bfd8954 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/service/ContextService.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/service/ContextService.java
@@ -59,6 +59,9 @@ public abstract class ContextService extends AbstractService {
public abstract void removeAllValueByKeyPrefixAndContextType(
ContextID contextID, ContextType contextType, String keyPrefix) throws
CSErrorException;
+ public abstract void removeValueByKeyAndContextType(
+ ContextID contextID, ContextType contextType, String keyPrefix) throws
CSErrorException;
+
public abstract void removeAllValueByKeyPrefix(ContextID contextID, String
keyPrefix)
throws CSErrorException;
diff --git
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/service/impl/ContextServiceImpl.java
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/service/impl/ContextServiceImpl.java
index 74b00b51e..27b44d2d3 100644
---
a/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/service/impl/ContextServiceImpl.java
+++
b/linkis-public-enhancements/linkis-context-service/linkis-cs-server/src/main/java/org/apache/linkis/cs/server/service/impl/ContextServiceImpl.java
@@ -255,6 +255,17 @@ public class ContextServiceImpl extends ContextService {
contextID.getContextId(), contextType, keyPrefix));
}
+ @Override
+ public void removeValueByKeyAndContextType(
+ ContextID contextID, ContextType contextType, String keyStr) throws
CSErrorException {
+ contextCacheService.removeByKey(contextID, keyStr, contextType);
+ getPersistence().removeByKey(contextID, contextType, keyStr);
+ logger.info(
+ String.format(
+ "removeAllValueByKeyAndContextType, csId:%s,csType:%s,keyStr:%s",
+ contextID.getContextId(), contextType, keyStr));
+ }
+
@Override
public void removeAllValueByKeyPrefix(ContextID contextID, String keyPrefix)
throws CSErrorException {
diff --git
a/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-server-support/src/main/scala/org/apache/linkis/gateway/ujes/route/contextservice/ContextIdParserImpl.scala
b/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-server-support/src/main/scala/org/apache/linkis/gateway/ujes/route/contextservice/ContextIdParserImpl.scala
index 02f4a7132..ea53808cc 100644
---
a/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-server-support/src/main/scala/org/apache/linkis/gateway/ujes/route/contextservice/ContextIdParserImpl.scala
+++
b/linkis-spring-cloud-services/linkis-service-gateway/linkis-gateway-server-support/src/main/scala/org/apache/linkis/gateway/ujes/route/contextservice/ContextIdParserImpl.scala
@@ -56,7 +56,7 @@ class ContextIdParserImpl extends ContextIDParser with
Logging {
} else {
logger.error(s"parse HAID instance invalid. haIDKey : " + contextId)
}
- val backupInstance = getInstanceByAlias(haContextID.getInstance())
+ val backupInstance = getInstanceByAlias(haContextID.getBackupInstance())
if (null != backupInstance) {
instances.add(backupInstance.getInstance)
} else {
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]