From 47f28d73b42e3e5aced66d6e23b2086c7b730c4e Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Sun, 25 Sep 2022 19:15:07 +0800 Subject: [PATCH 01/12] feat: add secret --- examples-secret/pom.xml | 79 +++++++++++++++++++ .../mosn/layotto/examples/secret/Secret.java | 46 +++++++++++ examples-secret/src/main/resources/log4j2.xml | 18 +++++ .../io/mosn/layotto/v1/RuntimeClientGrpc.java | 54 +++++++++++++ .../sdk/runtime/v1/domain/SecretRuntime.java | 13 +++ .../domain/secret/GetBulkSecretRequest.java | 34 ++++++++ .../domain/secret/GetBulkSecretResponse.java | 25 ++++++ .../v1/domain/secret/GetSecretRequest.java | 39 +++++++++ .../v1/domain/secret/GetSecretResponse.java | 19 +++++ 9 files changed, 327 insertions(+) create mode 100644 examples-secret/pom.xml create mode 100644 examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java create mode 100644 examples-secret/src/main/resources/log4j2.xml create mode 100644 sdk/src/main/java/spec/sdk/runtime/v1/domain/SecretRuntime.java create mode 100644 sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java create mode 100644 sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java create mode 100644 sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretRequest.java create mode 100644 sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretResponse.java diff --git a/examples-secret/pom.xml b/examples-secret/pom.xml new file mode 100644 index 0000000..929c48f --- /dev/null +++ b/examples-secret/pom.xml @@ -0,0 +1,79 @@ + + + 4.0.0 + + + runtime-sdk-parent + io.mosn.layotto + 1.2.0-SNAPSHOT + + + io.mosn.layotto + examples-secret + 1.2.0-SNAPSHOT + + + 8 + 8 + + + + + io.mosn.layotto + runtime-sdk + 1.2.0-SNAPSHOT + + + org.apache.logging.log4j + log4j-api + 2.9.1 + + + org.apache.logging.log4j + log4j-core + 2.9.1 + + + org.apache.logging.log4j + log4j-slf4j-impl + 2.9.1 + + + io.mosn.layotto + runtime-sdk + + + + + src/main/java + examples-secret + + + org.apache.maven.plugins + maven-assembly-plugin + 3.2.0 + + + + io.mosn.layotto.examples.sequencer.Secret + + + + jar-with-dependencies + + + + + assemble-all + package + + single + + + + + + + + \ No newline at end of file diff --git a/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java b/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java new file mode 100644 index 0000000..41b56d9 --- /dev/null +++ b/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java @@ -0,0 +1,46 @@ +package io.mosn.layotto.examples.secret; +import io.mosn.layotto.v1.RuntimeClientBuilder; +import io.mosn.layotto.v1.config.RuntimeProperties; + +import spec.sdk.runtime.v1.client.RuntimeClient; +import spec.sdk.runtime.v1.domain.secret.GetSecretRequest; +import spec.sdk.runtime.v1.domain.secret.GetSecretResponse; +import spec.sdk.runtime.v1.domain.secret.GetBulkSecretRequest; +import spec.sdk.runtime.v1.domain.secret.GetBulkSecretResponse; + +import java.util.HashMap; +import java.util.Map; + +public class Secret { + + + + + + + static String storeName = "secret_demo"; + public static void main(String args[]){ + RuntimeClient client = new RuntimeClientBuilder() + .withPort(RuntimeProperties.DEFAULT_PORT) + .build(); + + + /*GetSecret*/ + Map meta = new HashMap<>(); + GetSecretRequest secretreq = new GetSecretRequest(); + secretreq.setStoreName(storeName); + secretreq.setKey("db-user-pass:password"); + secretreq.setMetaData(meta); + System.out.println(client.getSecret(secretreq).getData()); + + /*GetBulkSecret*/ + Map meta2 = new HashMap<>(); + GetBulkSecretRequest bulksecretreq = new GetBulkSecretRequest(); + bulksecretreq.setStoreName(storeName); + bulksecretreq.setMetaData(meta2); + System.out.println(client.getBulkSecret(bulksecretreq).getData()); + + + + + }} diff --git a/examples-secret/src/main/resources/log4j2.xml b/examples-secret/src/main/resources/log4j2.xml new file mode 100644 index 0000000..22578a9 --- /dev/null +++ b/examples-secret/src/main/resources/log4j2.xml @@ -0,0 +1,18 @@ + + + + %d{yyyy-MM-dd HH:mm:ss} %-5p %c{1} - %m%n + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java b/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java index 65d1f5c..b6d9c59 100644 --- a/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java +++ b/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java @@ -47,6 +47,10 @@ import spec.sdk.runtime.v1.domain.lock.TryLockResponse; import spec.sdk.runtime.v1.domain.lock.UnlockRequest; import spec.sdk.runtime.v1.domain.lock.UnlockResponse; +import spec.sdk.runtime.v1.domain.secret.GetSecretRequest; +import spec.sdk.runtime.v1.domain.secret.GetSecretResponse; +import spec.sdk.runtime.v1.domain.secret.GetBulkSecretRequest; +import spec.sdk.runtime.v1.domain.secret.GetBulkSecretResponse; import spec.sdk.runtime.v1.domain.sequencer.GetNextIdRequest; import spec.sdk.runtime.v1.domain.sequencer.GetNextIdResponse; import spec.sdk.runtime.v1.domain.state.DeleteStateRequest; @@ -1101,4 +1105,54 @@ public UnlockResponse unlock(UnlockRequest request) { } } + + @Override + public GetSecretResponse getSecret(GetSecretRequest req){ + try { + + RuntimeProto.GetSecretRequest request = RuntimeProto.GetSecretRequest.newBuilder() + .setStoreName(req.getStoreName()) + .setKey(req.getKey()) + .putAllMetadata(req.getMetaData()) + .build(); + + RuntimeProto.GetSecretResponse response = runtimeStubManager.getBlockingStub() + .getSecret(request); + GetSecretResponse getSecretResponse = new GetSecretResponse(); + getSecretResponse.setData(response.getDataMap()); + return getSecretResponse; + } catch (Exception e) { + logger.error("getSecret error ", e); + throw new RuntimeClientException(e); + } + + + + } + @Override + public GetBulkSecretResponse getBulkSecret(GetBulkSecretRequest req){ + try { + + RuntimeProto.GetBulkSecretRequest request = RuntimeProto.GetBulkSecretRequest.newBuilder() + .setStoreName(req.getStoreName()) + .putAllMetadata(req.getMetaData()) + .build(); + + RuntimeProto.GetBulkSecretResponse response = runtimeStubManager.getBlockingStub() + .getBulkSecret(request); + GetBulkSecretResponse getBulkSecretResponse = new GetBulkSecretResponse(); + + getBulkSecretResponse.setData(response.getDataMap()); + return getBulkSecretResponse; + } catch (Exception e) { + logger.error("getSecret error ", e); + throw new RuntimeClientException(e); + } + + + + } + + } + diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/SecretRuntime.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/SecretRuntime.java new file mode 100644 index 0000000..5aa046f --- /dev/null +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/SecretRuntime.java @@ -0,0 +1,13 @@ +package spec.sdk.runtime.v1.domain; + +import spec.sdk.runtime.v1.domain.secret.GetBulkSecretRequest; +import spec.sdk.runtime.v1.domain.secret.GetBulkSecretResponse; +import spec.sdk.runtime.v1.domain.secret.GetSecretRequest; +import spec.sdk.runtime.v1.domain.secret.GetSecretResponse; + +public interface SecretRuntime { + + GetSecretResponse getSecret(GetSecretRequest req); + + GetBulkSecretResponse getBulkSecret(GetBulkSecretRequest req); +} diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java new file mode 100644 index 0000000..5613c0a --- /dev/null +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java @@ -0,0 +1,34 @@ +package spec.sdk.runtime.v1.domain.secret; + +import java.util.HashMap; +import java.util.Map; + +public class GetBulkSecretRequest { + private String storeName; + + private Map metaData; + + public String getStoreName() { + return storeName; + } + + + public void setStoreName(String storeName) { + this.storeName = storeName; + } + + + public Map getMetaData() { + if (metaData == null) { + metaData = new HashMap<>(); + } + return metaData; + } + + public void setMetaData(Map metaData) { + + this.metaData = metaData; + } + + +} diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java new file mode 100644 index 0000000..c85939a --- /dev/null +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java @@ -0,0 +1,25 @@ +package spec.sdk.runtime.v1.domain.secret; + +import spec.proto.runtime.v1.RuntimeProto; + +import java.util.HashMap; +import java.util.Map; + +public class GetBulkSecretResponse { + + private Map data; + + public Map getData() { + return data; + } + + public void setData(Map data) { + this.data = data; + } + + + + + + +} diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretRequest.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretRequest.java new file mode 100644 index 0000000..967c8d6 --- /dev/null +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretRequest.java @@ -0,0 +1,39 @@ +package spec.sdk.runtime.v1.domain.secret; + +import java.util.HashMap; +import java.util.Map; + +public class GetSecretRequest { + private String storeName; + + private String key; + + private Map metaData; + + public void setStoreName(String storeName) { + this.storeName = storeName; + } + + public void setKey(String key) { + this.key = key; + } + + public void setMetaData(Map metaData) { + if (metaData == null) { + metaData = new HashMap<>(); + } + this.metaData = metaData; + } + + public String getStoreName() { + return storeName; + } + + public String getKey() { + return key; + } + + public Map getMetaData() { + return metaData; + } +} diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretResponse.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretResponse.java new file mode 100644 index 0000000..aed002c --- /dev/null +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretResponse.java @@ -0,0 +1,19 @@ +package spec.sdk.runtime.v1.domain.secret; + +import java.util.Map; + +public class GetSecretResponse { + + private Map data; + + public Map getData() { + return data; + } + + public void setData(Map data) { + this.data = data; + } + + + +} From babe47861bda142552c01af1b1feed1a8b29fe67 Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Mon, 26 Sep 2022 16:11:52 +0800 Subject: [PATCH 02/12] fix --- sdk/src/main/java/spec/sdk/runtime/v1/client/RuntimeClient.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/client/RuntimeClient.java b/sdk/src/main/java/spec/sdk/runtime/v1/client/RuntimeClient.java index c14f073..8ca72c1 100644 --- a/sdk/src/main/java/spec/sdk/runtime/v1/client/RuntimeClient.java +++ b/sdk/src/main/java/spec/sdk/runtime/v1/client/RuntimeClient.java @@ -24,7 +24,7 @@ public interface RuntimeClient extends StateRuntime, LockRuntime, SequencerRuntime, - FileRuntime, OssRuntime { + FileRuntime, OssRuntime, SecretRuntime { void shutdown(); } \ No newline at end of file From 86a2a982d4f18459920ce5a631fe5fa7d89c20a5 Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Tue, 27 Sep 2022 10:11:00 +0800 Subject: [PATCH 03/12] convert the secretresponse to map --- .../main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java | 9 ++++++++- .../runtime/v1/domain/secret/GetBulkSecretResponse.java | 7 +++---- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java b/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java index b6d9c59..6d09720 100644 --- a/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java +++ b/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java @@ -1141,8 +1141,15 @@ public GetBulkSecretResponse getBulkSecret(GetBulkSecretRequest req){ RuntimeProto.GetBulkSecretResponse response = runtimeStubManager.getBlockingStub() .getBulkSecret(request); GetBulkSecretResponse getBulkSecretResponse = new GetBulkSecretResponse(); + Map> tempMap = new HashMap>(); + for(Map.Entry entry : response.getDataMap().entrySet()){ + String key = entry.getKey(); + RuntimeProto.SecretResponse value = entry.getValue(); + Map secretMap = value.getSecretsMap(); + tempMap.put(key, secretMap); - getBulkSecretResponse.setData(response.getDataMap()); + } + getBulkSecretResponse.setData(tempMap); return getBulkSecretResponse; } catch (Exception e) { logger.error("getSecret error ", e); diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java index c85939a..bca2fed 100644 --- a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java @@ -1,19 +1,18 @@ package spec.sdk.runtime.v1.domain.secret; -import spec.proto.runtime.v1.RuntimeProto; import java.util.HashMap; import java.util.Map; public class GetBulkSecretResponse { - private Map data; + private Map> data; - public Map getData() { + public Map> getData() { return data; } - public void setData(Map data) { + public void setData(Map> data) { this.data = data; } From 8c25f4fc98634f04c01b9e64814291b2fe32c9bf Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Tue, 27 Sep 2022 13:53:52 +0800 Subject: [PATCH 04/12] format code --- .../java/io/mosn/layotto/examples/secret/Secret.java | 12 ++---------- .../java/io/mosn/layotto/v1/RuntimeClientGrpc.java | 8 -------- 2 files changed, 2 insertions(+), 18 deletions(-) diff --git a/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java b/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java index 41b56d9..614ef17 100644 --- a/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java +++ b/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java @@ -12,12 +12,6 @@ import java.util.Map; public class Secret { - - - - - - static String storeName = "secret_demo"; public static void main(String args[]){ RuntimeClient client = new RuntimeClientBuilder() @@ -40,7 +34,5 @@ public static void main(String args[]){ bulksecretreq.setMetaData(meta2); System.out.println(client.getBulkSecret(bulksecretreq).getData()); - - - - }} + } +} diff --git a/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java b/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java index 6d09720..78b74ed 100644 --- a/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java +++ b/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java @@ -1109,7 +1109,6 @@ public UnlockResponse unlock(UnlockRequest request) { @Override public GetSecretResponse getSecret(GetSecretRequest req){ try { - RuntimeProto.GetSecretRequest request = RuntimeProto.GetSecretRequest.newBuilder() .setStoreName(req.getStoreName()) .setKey(req.getKey()) @@ -1126,13 +1125,10 @@ public GetSecretResponse getSecret(GetSecretRequest req){ throw new RuntimeClientException(e); } - - } @Override public GetBulkSecretResponse getBulkSecret(GetBulkSecretRequest req){ try { - RuntimeProto.GetBulkSecretRequest request = RuntimeProto.GetBulkSecretRequest.newBuilder() .setStoreName(req.getStoreName()) .putAllMetadata(req.getMetaData()) @@ -1155,11 +1151,7 @@ public GetBulkSecretResponse getBulkSecret(GetBulkSecretRequest req){ logger.error("getSecret error ", e); throw new RuntimeClientException(e); } - - - } - } From 0e53ec1f109ea5e327ea12e6a154c9e0ff48e98b Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Tue, 27 Sep 2022 23:03:55 +0800 Subject: [PATCH 05/12] format code --- .../sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java | 2 -- .../sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java | 5 ----- .../spec/sdk/runtime/v1/domain/secret/GetSecretResponse.java | 2 -- 3 files changed, 9 deletions(-) diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java index 5613c0a..5dcd1a1 100644 --- a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java @@ -12,12 +12,10 @@ public String getStoreName() { return storeName; } - public void setStoreName(String storeName) { this.storeName = storeName; } - public Map getMetaData() { if (metaData == null) { metaData = new HashMap<>(); diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java index bca2fed..5e46d0e 100644 --- a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretResponse.java @@ -16,9 +16,4 @@ public void setData(Map> data) { this.data = data; } - - - - - } diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretResponse.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretResponse.java index aed002c..9ab1105 100644 --- a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretResponse.java +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretResponse.java @@ -14,6 +14,4 @@ public void setData(Map data) { this.data = data; } - - } From 528147c9e178d357ac0b0913cfd64e727b3e7807 Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Wed, 28 Sep 2022 17:01:35 +0800 Subject: [PATCH 06/12] fix pom.xml --- examples-secret/pom.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/examples-secret/pom.xml b/examples-secret/pom.xml index 929c48f..07d7624 100644 --- a/examples-secret/pom.xml +++ b/examples-secret/pom.xml @@ -6,12 +6,12 @@ runtime-sdk-parent io.mosn.layotto - 1.2.0-SNAPSHOT + 1.3.0-SNAPSHOT io.mosn.layotto examples-secret - 1.2.0-SNAPSHOT + 1.3.0-SNAPSHOT 8 @@ -22,7 +22,7 @@ io.mosn.layotto runtime-sdk - 1.2.0-SNAPSHOT + 1.3.0-SNAPSHOT org.apache.logging.log4j @@ -56,7 +56,7 @@ - io.mosn.layotto.examples.sequencer.Secret + io.mosn.layotto.examples.secret.Secret From 1518ce5bb0af28ad4ad0fe10f09f7b0b815614ed Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Wed, 28 Sep 2022 17:23:04 +0800 Subject: [PATCH 07/12] fix return metadata --- .../sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java | 4 +--- .../spec/sdk/runtime/v1/domain/secret/GetSecretRequest.java | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java index 5dcd1a1..ff1f6e7 100644 --- a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetBulkSecretRequest.java @@ -17,9 +17,7 @@ public void setStoreName(String storeName) { } public Map getMetaData() { - if (metaData == null) { - metaData = new HashMap<>(); - } + return metaData; } diff --git a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretRequest.java b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretRequest.java index 967c8d6..694281a 100644 --- a/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretRequest.java +++ b/sdk/src/main/java/spec/sdk/runtime/v1/domain/secret/GetSecretRequest.java @@ -19,9 +19,7 @@ public void setKey(String key) { } public void setMetaData(Map metaData) { - if (metaData == null) { - metaData = new HashMap<>(); - } + this.metaData = metaData; } From 7d18c25f3d67706613a5dce72f4270a3c658ff3a Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Wed, 28 Sep 2022 18:17:34 +0800 Subject: [PATCH 08/12] add assert --- .../mosn/layotto/examples/secret/Secret.java | 40 +++++++++++++++---- 1 file changed, 33 insertions(+), 7 deletions(-) diff --git a/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java b/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java index 614ef17..1fbf291 100644 --- a/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java +++ b/examples-secret/src/main/java/io/mosn/layotto/examples/secret/Secret.java @@ -1,38 +1,64 @@ package io.mosn.layotto.examples.secret; + import io.mosn.layotto.v1.RuntimeClientBuilder; import io.mosn.layotto.v1.config.RuntimeProperties; - import spec.sdk.runtime.v1.client.RuntimeClient; -import spec.sdk.runtime.v1.domain.secret.GetSecretRequest; -import spec.sdk.runtime.v1.domain.secret.GetSecretResponse; import spec.sdk.runtime.v1.domain.secret.GetBulkSecretRequest; import spec.sdk.runtime.v1.domain.secret.GetBulkSecretResponse; +import spec.sdk.runtime.v1.domain.secret.GetSecretRequest; +import spec.sdk.runtime.v1.domain.secret.GetSecretResponse; import java.util.HashMap; import java.util.Map; public class Secret { + static String storeName = "secret_demo"; + static String key = "db-user-pass:password"; + static String value = "S!S*d$zDsb="; + static String []keys = new String[]{"redisPassword", "db-user-pass:password", "db-user-pass:username"}; + static Map values = new HashMap(){{put("redisPassword", "redis123");put("db-user-pass:password", "S!S*d$zDsb=");put("db-user-pass:username", "devuser");}}; + public static void main(String args[]){ RuntimeClient client = new RuntimeClientBuilder() .withPort(RuntimeProperties.DEFAULT_PORT) .build(); - /*GetSecret*/ Map meta = new HashMap<>(); GetSecretRequest secretreq = new GetSecretRequest(); secretreq.setStoreName(storeName); - secretreq.setKey("db-user-pass:password"); + secretreq.setKey(key); secretreq.setMetaData(meta); - System.out.println(client.getSecret(secretreq).getData()); + GetSecretResponse response = client.getSecret(secretreq); + System.out.println(response.getData()); + assertMap(response.getData(),key,value); /*GetBulkSecret*/ Map meta2 = new HashMap<>(); GetBulkSecretRequest bulksecretreq = new GetBulkSecretRequest(); bulksecretreq.setStoreName(storeName); bulksecretreq.setMetaData(meta2); - System.out.println(client.getBulkSecret(bulksecretreq).getData()); + GetBulkSecretResponse bulkrespone = client.getBulkSecret(bulksecretreq); + System.out.println(bulkrespone.getData()); + assertBulkMap(bulkrespone.getData(), keys,values); + } + private static void assertMap(Map secret, String key, String value) { + if (secret.get(key).equals(value)) { + return; + } + throw new AssertionError(); + } + private static void assertBulkMap(Map> bulksecret, String keys[], Map values ) { + Map temp = new HashMap<>(); + for (String key : keys) { + temp = bulksecret.get(key); + if(!(temp.get(key).equals(values.get(key)))) + throw new AssertionError(); } + return; + } + + } From 6e7648eef21b5b4323c8d3d32e1064dae36895f0 Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Wed, 28 Sep 2022 19:08:09 +0800 Subject: [PATCH 09/12] check Datamap isempty --- .../java/io/mosn/layotto/v1/RuntimeClientGrpc.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java b/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java index 78b74ed..2b69125 100644 --- a/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java +++ b/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java @@ -1138,12 +1138,14 @@ public GetBulkSecretResponse getBulkSecret(GetBulkSecretRequest req){ .getBulkSecret(request); GetBulkSecretResponse getBulkSecretResponse = new GetBulkSecretResponse(); Map> tempMap = new HashMap>(); - for(Map.Entry entry : response.getDataMap().entrySet()){ - String key = entry.getKey(); - RuntimeProto.SecretResponse value = entry.getValue(); - Map secretMap = value.getSecretsMap(); - tempMap.put(key, secretMap); + if(!(response.getDataMap().isEmpty())){ + for(Map.Entry entry : response.getDataMap().entrySet()){ + String key = entry.getKey(); + RuntimeProto.SecretResponse value = entry.getValue(); + Map secretMap = value.getSecretsMap(); + tempMap.put(key, secretMap); + } } getBulkSecretResponse.setData(tempMap); return getBulkSecretResponse; From 67f2713ef9084a4a2c2366c39dfd36f2ae47425c Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Wed, 28 Sep 2022 22:34:47 +0800 Subject: [PATCH 10/12] fix pom.xml --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 05f513c..c090e37 100644 --- a/pom.xml +++ b/pom.xml @@ -26,6 +26,7 @@ examples-pubsub-publisher examples-preview-service examples-oss + examples-secret From dfdae3089fb0ced3e400b66bbebeca2a5eb78995 Mon Sep 17 00:00:00 2001 From: fft <2386101282@qq.com> Date: Wed, 28 Sep 2022 22:46:13 +0800 Subject: [PATCH 11/12] fix pom.xml --- pom.xml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index c090e37..2412d48 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.mosn.layotto runtime-sdk-parent - 1.2.0-SNAPSHOT + 1.3.0-SNAPSHOT pom runtime-sdk-parent @@ -26,6 +26,7 @@ examples-pubsub-publisher examples-preview-service examples-oss + examples-lock examples-secret From 5638a821dc1a16f9139803465bc144a93d4c78d7 Mon Sep 17 00:00:00 2001 From: seeflood Date: Thu, 29 Sep 2022 10:55:16 +0800 Subject: [PATCH 12/12] chore: check npe Signed-off-by: seeflood --- .../io/mosn/layotto/v1/RuntimeClientGrpc.java | 54 +++++++++++-------- 1 file changed, 32 insertions(+), 22 deletions(-) diff --git a/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java b/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java index 2b69125..55ce872 100644 --- a/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java +++ b/sdk/src/main/java/io/mosn/layotto/v1/RuntimeClientGrpc.java @@ -28,9 +28,9 @@ import io.mosn.layotto.v1.grpc.stub.StubManager; import io.mosn.layotto.v1.serializer.ObjectSerializer; import org.slf4j.Logger; +import spec.proto.extension.v1.s3.ObjectStorageServiceGrpc; import spec.proto.runtime.v1.RuntimeGrpc; import spec.proto.runtime.v1.RuntimeProto; -import spec.proto.extension.v1.s3.ObjectStorageServiceGrpc; import spec.sdk.runtime.v1.domain.file.DelFileRequest; import spec.sdk.runtime.v1.domain.file.DelFileResponse; import spec.sdk.runtime.v1.domain.file.FileInfo; @@ -47,10 +47,10 @@ import spec.sdk.runtime.v1.domain.lock.TryLockResponse; import spec.sdk.runtime.v1.domain.lock.UnlockRequest; import spec.sdk.runtime.v1.domain.lock.UnlockResponse; -import spec.sdk.runtime.v1.domain.secret.GetSecretRequest; -import spec.sdk.runtime.v1.domain.secret.GetSecretResponse; import spec.sdk.runtime.v1.domain.secret.GetBulkSecretRequest; import spec.sdk.runtime.v1.domain.secret.GetBulkSecretResponse; +import spec.sdk.runtime.v1.domain.secret.GetSecretRequest; +import spec.sdk.runtime.v1.domain.secret.GetSecretResponse; import spec.sdk.runtime.v1.domain.sequencer.GetNextIdRequest; import spec.sdk.runtime.v1.domain.sequencer.GetNextIdResponse; import spec.sdk.runtime.v1.domain.state.DeleteStateRequest; @@ -83,7 +83,8 @@ public class RuntimeClientGrpc extends AbstractRuntimeClient implements GrpcRunt int timeoutMs, ObjectSerializer stateSerializer, StubManager runtimeStubManager, - StubManager ossStubManager) { + StubManager ossStubManager) { super(logger, timeoutMs, stateSerializer); this.runtimeStubManager = runtimeStubManager; this.ossStubManager = ossStubManager; @@ -1107,16 +1108,21 @@ public UnlockResponse unlock(UnlockRequest request) { } @Override - public GetSecretResponse getSecret(GetSecretRequest req){ + public GetSecretResponse getSecret(GetSecretRequest req) { try { - RuntimeProto.GetSecretRequest request = RuntimeProto.GetSecretRequest.newBuilder() - .setStoreName(req.getStoreName()) - .setKey(req.getKey()) - .putAllMetadata(req.getMetaData()) - .build(); + // 1. prepare request + RuntimeProto.GetSecretRequest.Builder builder = RuntimeProto.GetSecretRequest.newBuilder() + .setStoreName(req.getStoreName()) + .setKey(req.getKey()); + if (req.getMetaData() != null) { + builder.putAllMetadata(req.getMetaData()); + } + RuntimeProto.GetSecretRequest request = builder.build(); + // 2. invoke RuntimeProto.GetSecretResponse response = runtimeStubManager.getBlockingStub() - .getSecret(request); + .getSecret(request); + // 3. parse result GetSecretResponse getSecretResponse = new GetSecretResponse(); getSecretResponse.setData(response.getDataMap()); return getSecretResponse; @@ -1126,20 +1132,25 @@ public GetSecretResponse getSecret(GetSecretRequest req){ } } + @Override - public GetBulkSecretResponse getBulkSecret(GetBulkSecretRequest req){ + public GetBulkSecretResponse getBulkSecret(GetBulkSecretRequest req) { try { - RuntimeProto.GetBulkSecretRequest request = RuntimeProto.GetBulkSecretRequest.newBuilder() - .setStoreName(req.getStoreName()) - .putAllMetadata(req.getMetaData()) - .build(); - + // 1. prepare request + RuntimeProto.GetBulkSecretRequest.Builder builder = RuntimeProto.GetBulkSecretRequest.newBuilder() + .setStoreName(req.getStoreName()); + if (req.getMetaData() != null) { + builder.putAllMetadata(req.getMetaData()); + } + RuntimeProto.GetBulkSecretRequest request = builder.build(); + // 2. invoke RuntimeProto.GetBulkSecretResponse response = runtimeStubManager.getBlockingStub() - .getBulkSecret(request); + .getBulkSecret(request); + // 3. parse result GetBulkSecretResponse getBulkSecretResponse = new GetBulkSecretResponse(); - Map> tempMap = new HashMap>(); - if(!(response.getDataMap().isEmpty())){ - for(Map.Entry entry : response.getDataMap().entrySet()){ + Map> tempMap = new HashMap<>(); + if (!(response.getDataMap().isEmpty())) { + for (Map.Entry entry : response.getDataMap().entrySet()) { String key = entry.getKey(); RuntimeProto.SecretResponse value = entry.getValue(); Map secretMap = value.getSecretsMap(); @@ -1156,4 +1167,3 @@ public GetBulkSecretResponse getBulkSecret(GetBulkSecretRequest req){ } } -