key generate
diff --git a/pkg/dubbo/metadata/server.go b/pkg/dubbo/metadata/server.go
index 762a56d..81e6f48 100644
--- a/pkg/dubbo/metadata/server.go
+++ b/pkg/dubbo/metadata/server.go
@@ -102,7 +102,7 @@
}
// MetaData name = podName.revision
- name := podName + "." + metadata.Revision
+ name := podName + "-" + metadata.Revision
registerReq := &RegisterRequest{ConfigsUpdated: map[core_model.ResourceKey]*mesh_proto.MetaData{}}
key := core_model.ResourceKey{
Mesh: mesh,
diff --git a/pkg/test/component.go b/pkg/test/component.go
index 466c6f5..7da4f94 100644
--- a/pkg/test/component.go
+++ b/pkg/test/component.go
@@ -24,10 +24,14 @@
core_model "github.com/apache/dubbo-kubernetes/pkg/core/resources/model"
"github.com/apache/dubbo-kubernetes/pkg/core/resources/store"
core_runtime "github.com/apache/dubbo-kubernetes/pkg/core/runtime"
- "strings"
+ "github.com/apache/dubbo-kubernetes/pkg/util/rmkey"
"time"
)
+const (
+ SystemNamespace = "dubbo-system"
+)
+
var testServerLog = core.Log.WithName("test")
func Setup(rt core_runtime.Runtime) error {
@@ -84,7 +88,7 @@
// get
if err := manager.Get(rt.AppContext(), dataplaneResource,
store.GetBy(core_model.ResourceKey{
- Name: dataplaneList.Items[0].Meta.GetName(),
+ Name: dataplaneList.Items[0].Meta.GetName(), // 这个GetName已经是name.namespace的格式了
Mesh: "default",
})); err != nil {
return err
@@ -112,7 +116,7 @@
return err
}
if err := manager.Create(rt.AppContext(), metadata2, store.CreateBy(core_model.ResourceKey{
- Name: metadata2.Spec.App + "-" + metadata2.Spec.Revision,
+ Name: rmkey.GenerateMetadataResourceKey(metadata2.Spec.App, metadata2.Spec.Revision, SystemNamespace),
Mesh: "default",
})); err != nil {
return err
@@ -121,7 +125,7 @@
metadata1 := mesh.NewMetaDataResource()
// get
if err := manager.Get(rt.AppContext(), metadata1, store.GetBy(core_model.ResourceKey{
- Name: metadata2.Spec.App + "-" + metadata2.Spec.Revision,
+ Name: rmkey.GenerateMetadataResourceKey(metadata2.Spec.App, metadata2.Spec.Revision, SystemNamespace),
Mesh: "default",
})); err != nil {
return err
@@ -173,7 +177,7 @@
// create
if err := manager.Create(rt.AppContext(), mapping2, store.CreateBy(core_model.ResourceKey{
- Name: strings.ToLower(strings.ReplaceAll(mapping2.Spec.InterfaceName, ".", "-")),
+ Name: rmkey.GenerateMappingResourceKey(mapping2.Spec.InterfaceName, SystemNamespace),
Mesh: "default",
})); err != nil {
return err
@@ -183,7 +187,7 @@
mapping1 := mesh.NewMappingResource()
// get
if err := manager.Get(rt.AppContext(), mapping1, store.GetBy(core_model.ResourceKey{
- Name: strings.ToLower(strings.ReplaceAll("org.apache.dubbo.springboot.demo.DemoService1", ".", "-")),
+ Name: rmkey.GenerateMappingResourceKey("org.apache.dubbo.springboot.demo.DemoService1", SystemNamespace),
Mesh: "default",
})); err != nil {
return err
diff --git a/pkg/util/rmkey/resource_name.go b/pkg/util/rmkey/resource_name.go
new file mode 100644
index 0000000..097e2e5
--- /dev/null
+++ b/pkg/util/rmkey/resource_name.go
@@ -0,0 +1,55 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package rmkey
+
+import (
+ util_k8s "github.com/apache/dubbo-kubernetes/pkg/util/k8s"
+ "strings"
+)
+
+const (
+ firstDelimiter = "-"
+ secondDelimiter = "."
+ separator = "/"
+)
+
+func GenerateMetadataResourceKey(app string, revision string, namespace string) string {
+ res := app
+ if revision != "" {
+ res += firstDelimiter + revision
+ }
+ if namespace != "" {
+ res += secondDelimiter + revision
+ }
+ return res
+}
+
+func GenerateNamespacedName(name string, namespace string) string {
+ if namespace == "" { // it's cluster scoped object
+ return name
+ }
+ return util_k8s.K8sNamespacedNameToCoreName(name, namespace)
+}
+
+func GenerateMappingResourceKey(interfaceName string, namespace string) string {
+ res := strings.ToLower(strings.ReplaceAll(interfaceName, ".", "-"))
+ if namespace == "" {
+ return res
+ }
+ return util_k8s.K8sNamespacedNameToCoreName(res, namespace)
+}