Fix cluster name parsing

For cluster names that contain underscore ('_') symbol config module
removed some part of the name due to hardcoded indexes after name split

Change-Id: Ibd1e9b3ef2fce7e43cbdf41f4b1852933a253868
This commit is contained in:
Dmitry Ukov 2020-02-05 11:37:01 +04:00
parent 9a47c9b423
commit a125dc5d8a
7 changed files with 32 additions and 20 deletions

View File

@ -40,7 +40,7 @@ type setClusterTest struct {
} }
const ( const (
testCluster = "my-new-cluster" testCluster = "my_new-cluster"
) )
func TestSetClusterWithCAFile(t *testing.T) { func TestSetClusterWithCAFile(t *testing.T) {

View File

@ -930,15 +930,27 @@ func (c *ClusterComplexName) validName() bool {
err := ValidClusterType(c.clusterType) err := ValidClusterType(c.clusterType)
return c.clusterName != "" && err == nil return c.clusterName != "" && err == nil
} }
func (c *ClusterComplexName) FromName(clusterName string) { func (c *ClusterComplexName) FromName(clusterName string) {
if clusterName != "" { if clusterName == "" {
return
}
userNameSplit := strings.Split(clusterName, AirshipClusterNameSep) userNameSplit := strings.Split(clusterName, AirshipClusterNameSep)
if len(userNameSplit) == 2 { if len(userNameSplit) == 1 {
c.clusterType = userNameSplit[1] c.clusterName = clusterName
return
} }
c.clusterName = userNameSplit[0]
for _, cType := range AllClusterTypes {
if userNameSplit[len(userNameSplit)-1] == cType {
c.clusterType = userNameSplit[len(userNameSplit)-1]
c.clusterName = strings.Join(userNameSplit[:len(userNameSplit)-1], AirshipClusterNameSep)
return
} }
} }
}
func (c *ClusterComplexName) WithType(clusterName string, clusterType string) { func (c *ClusterComplexName) WithType(clusterName string, clusterType string) {
c.FromName(clusterName) c.FromName(clusterName)
c.SetClusterType(clusterType) c.SetClusterType(clusterType)

View File

@ -50,20 +50,20 @@ func DummyConfig() *Config {
kubeConfig: kubeconfig.NewConfig(), kubeConfig: kubeconfig.NewConfig(),
} }
dummyCluster := conf.Clusters["dummy_cluster"] dummyCluster := conf.Clusters["dummy_cluster"]
conf.KubeConfig().Clusters["dummycluster_target"] = dummyCluster.ClusterTypes[Target].KubeCluster() conf.KubeConfig().Clusters["dummy_cluster_target"] = dummyCluster.ClusterTypes[Target].KubeCluster()
conf.KubeConfig().Clusters["dummycluster_ephemeral"] = dummyCluster.ClusterTypes[Ephemeral].KubeCluster() conf.KubeConfig().Clusters["dummy_cluster_ephemeral"] = dummyCluster.ClusterTypes[Ephemeral].KubeCluster()
return conf return conf
} }
// DummyContext , utility function used for tests // DummyContext , utility function used for tests
func DummyContext() *Context { func DummyContext() *Context {
c := NewContext() c := NewContext()
c.NameInKubeconf = "dummy_cluster" c.NameInKubeconf = "dummy_cluster_ephemeral"
c.Manifest = "dummy_manifest" c.Manifest = "dummy_manifest"
context := kubeconfig.NewContext() context := kubeconfig.NewContext()
context.Namespace = "dummy_namespace" context.Namespace = "dummy_namespace"
context.AuthInfo = "dummy_user" context.AuthInfo = "dummy_user"
context.Cluster = "dummycluster_ephemeral" context.Cluster = "dummy_cluster_ephemeral"
c.SetKubeContext(context) c.SetKubeContext(context)
return c return c
@ -78,7 +78,7 @@ func DummyCluster() *Cluster {
cluster.InsecureSkipTLSVerify = false cluster.InsecureSkipTLSVerify = false
cluster.CertificateAuthority = "dummy_ca" cluster.CertificateAuthority = "dummy_ca"
c.SetKubeCluster(cluster) c.SetKubeCluster(cluster)
c.NameInKubeconf = "dummycluster_target" c.NameInKubeconf = "dummy_cluster_target"
c.Bootstrap = "dummy_bootstrap_config" c.Bootstrap = "dummy_bootstrap_config"
return c return c
} }
@ -125,7 +125,7 @@ func DummyModules() *Modules {
func DummyClusterPurpose() *ClusterPurpose { func DummyClusterPurpose() *ClusterPurpose {
cp := NewClusterPurpose() cp := NewClusterPurpose()
cp.ClusterTypes["ephemeral"] = DummyCluster() cp.ClusterTypes["ephemeral"] = DummyCluster()
cp.ClusterTypes["ephemeral"].NameInKubeconf = "dummycluster_ephemeral" cp.ClusterTypes["ephemeral"].NameInKubeconf = "dummy_cluster_ephemeral"
cp.ClusterTypes["target"] = DummyCluster() cp.ClusterTypes["target"] = DummyCluster()
return cp return cp
} }

View File

@ -1,5 +1,5 @@
bootstrap-info: dummy_bootstrap_config bootstrap-info: dummy_bootstrap_config
cluster-kubeconf: dummycluster_target cluster-kubeconf: dummy_cluster_target
LocationOfOrigin: "" LocationOfOrigin: ""
certificate-authority: dummy_ca certificate-authority: dummy_ca

View File

@ -4,13 +4,13 @@ clusters:
cluster-type: cluster-type:
ephemeral: ephemeral:
bootstrap-info: dummy_bootstrap_config bootstrap-info: dummy_bootstrap_config
cluster-kubeconf: dummycluster_ephemeral cluster-kubeconf: dummy_cluster_ephemeral
target: target:
bootstrap-info: dummy_bootstrap_config bootstrap-info: dummy_bootstrap_config
cluster-kubeconf: dummycluster_target cluster-kubeconf: dummy_cluster_target
contexts: contexts:
dummy_context: dummy_context:
context-kubeconf: dummy_cluster context-kubeconf: dummy_cluster_ephemeral
manifest: dummy_manifest manifest: dummy_manifest
current-context: dummy_context current-context: dummy_context
kind: Config kind: Config

View File

@ -1,7 +1,7 @@
context-kubeconf: dummy_cluster context-kubeconf: dummy_cluster_ephemeral
manifest: dummy_manifest manifest: dummy_manifest
LocationOfOrigin: "" LocationOfOrigin: ""
cluster: dummycluster_ephemeral cluster: dummy_cluster_ephemeral
namespace: dummy_namespace namespace: dummy_namespace
user: dummy_user user: dummy_user

View File

@ -1,7 +1,7 @@
Cluster: dummycluster Cluster: dummy_cluster
target: target:
bootstrap-info: dummy_bootstrap_config bootstrap-info: dummy_bootstrap_config
cluster-kubeconf: dummycluster_target cluster-kubeconf: dummy_cluster_target
LocationOfOrigin: "" LocationOfOrigin: ""
certificate-authority: dummy_ca certificate-authority: dummy_ca