Skip to content

Commit

Permalink
Merge pull request #1353 from liranmauda/liran-fix-printing
Browse files Browse the repository at this point in the history
Fix printing of Identity
  • Loading branch information
liranmauda authored May 2, 2024
2 parents fcc5240 + 043d150 commit 8f4aaa2
Show file tree
Hide file tree
Showing 3 changed files with 34 additions and 34 deletions.
26 changes: 13 additions & 13 deletions pkg/backingstore/reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -625,7 +625,7 @@ func (r *Reconciler) ReadSystemInfo() error {
if pool.CloudInfo == nil ||
pool.CloudInfo.EndpointType != conn.EndpointType ||
pool.CloudInfo.Endpoint != conn.Endpoint ||
pool.CloudInfo.Identity != conn.Identity {
pool.CloudInfo.Identity != string(conn.Identity) {
r.Logger.Warnf("using existing pool but connection mismatch %+v pool %+v %+v", conn, pool, pool.CloudInfo)
r.UpdateExternalConnectionParams = &nb.UpdateExternalConnectionParams{
Name: conn.Name,
Expand All @@ -644,7 +644,7 @@ func (r *Reconciler) ReadSystemInfo() error {
c := &account.ExternalConnections.Connections[j]
if c.EndpointType == conn.EndpointType &&
c.Endpoint == conn.Endpoint &&
c.Identity == conn.Identity {
c.Identity == string(conn.Identity) {
r.ExternalConnectionInfo = c
conn.Name = c.Name
}
Expand Down Expand Up @@ -689,8 +689,8 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa
conn.AWSSTSARN = *r.BackingStore.Spec.AWSS3.AWSSTSRoleARN
} else {
conn.EndpointType = nb.EndpointTypeAws
conn.Identity = r.Secret.StringData["AWS_ACCESS_KEY_ID"]
conn.Secret = r.Secret.StringData["AWS_SECRET_ACCESS_KEY"]
conn.Identity = nb.MaskedString(r.Secret.StringData["AWS_ACCESS_KEY_ID"])
conn.Secret = nb.MaskedString(r.Secret.StringData["AWS_SECRET_ACCESS_KEY"])
}
awsS3 := r.BackingStore.Spec.AWSS3
u := url.URL{
Expand All @@ -708,8 +708,8 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa

case nbv1.StoreTypeS3Compatible:
conn.EndpointType = nb.EndpointTypeS3Compat
conn.Identity = r.Secret.StringData["AWS_ACCESS_KEY_ID"]
conn.Secret = r.Secret.StringData["AWS_SECRET_ACCESS_KEY"]
conn.Identity = nb.MaskedString(r.Secret.StringData["AWS_ACCESS_KEY_ID"])
conn.Secret = nb.MaskedString(r.Secret.StringData["AWS_SECRET_ACCESS_KEY"])
s3Compatible := r.BackingStore.Spec.S3Compatible
if s3Compatible.SignatureVersion == nbv1.S3SignatureVersionV4 {
conn.AuthMethod = "AWS_V4"
Expand Down Expand Up @@ -754,8 +754,8 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa

case nbv1.StoreTypeIBMCos:
conn.EndpointType = nb.EndpointTypeIBMCos
conn.Identity = r.Secret.StringData["IBM_COS_ACCESS_KEY_ID"]
conn.Secret = r.Secret.StringData["IBM_COS_SECRET_ACCESS_KEY"]
conn.Identity = nb.MaskedString(r.Secret.StringData["IBM_COS_ACCESS_KEY_ID"])
conn.Secret = nb.MaskedString(r.Secret.StringData["IBM_COS_SECRET_ACCESS_KEY"])
IBMCos := r.BackingStore.Spec.IBMCos
if IBMCos.SignatureVersion == nbv1.S3SignatureVersionV4 {
conn.AuthMethod = "AWS_V4"
Expand Down Expand Up @@ -801,8 +801,8 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa
case nbv1.StoreTypeAzureBlob:
conn.EndpointType = nb.EndpointTypeAzure
conn.Endpoint = "https://blob.core.windows.net"
conn.Identity = r.Secret.StringData["AccountName"]
conn.Secret = r.Secret.StringData["AccountKey"]
conn.Identity = nb.MaskedString(r.Secret.StringData["AccountName"])
conn.Secret = nb.MaskedString(r.Secret.StringData["AccountKey"])
tenantID := r.Secret.StringData["TenantID"]
appID := r.Secret.StringData["ApplicationID"]
appSecret := r.Secret.StringData["ApplicationSecret"]
Expand Down Expand Up @@ -831,8 +831,8 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa
r.Secret.Name,
))
}
conn.Identity = privateKey.ID
conn.Secret = privateKeyJSON
conn.Identity = nb.MaskedString(privateKey.ID)
conn.Secret = nb.MaskedString(privateKeyJSON)

case nbv1.StoreTypePVPool:
return nil, util.NewPersistentError("InvalidType",
Expand All @@ -843,7 +843,7 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa
fmt.Sprintf("Invalid backing store type %q", r.BackingStore.Spec.Type))
}
if !util.IsSTSClusterBS(r.BackingStore) {
if !util.IsStringGraphicOrSpacesCharsOnly(conn.Identity) || !util.IsStringGraphicOrSpacesCharsOnly(conn.Secret) {
if !util.IsStringGraphicOrSpacesCharsOnly(string(conn.Identity)) || !util.IsStringGraphicOrSpacesCharsOnly(string(conn.Secret)) {
return nil, util.NewPersistentError("InvalidSecret",
fmt.Sprintf("Invalid secret containing non graphic characters (perhaps not base64 encoded?) %q", r.Secret.Name))
}
Expand Down
28 changes: 14 additions & 14 deletions pkg/namespacestore/reconciler.go
Original file line number Diff line number Diff line change
Expand Up @@ -476,7 +476,7 @@ func (r *Reconciler) ReadSystemInfo() error {
if nsr != nil {
if nsr.EndpointType != conn.EndpointType ||
nsr.Endpoint != conn.Endpoint ||
nsr.Identity != conn.Identity {
nsr.Identity != string(conn.Identity) {
r.Logger.Warnf("using existing namespace resource but connection mismatch %+v namespace store %+v", conn, nsr)
r.UpdateExternalConnectionParams = &nb.UpdateExternalConnectionParams{
Name: conn.Name,
Expand All @@ -495,7 +495,7 @@ func (r *Reconciler) ReadSystemInfo() error {
c := &account.ExternalConnections.Connections[j]
if c.EndpointType == conn.EndpointType &&
c.Endpoint == conn.Endpoint &&
c.Identity == conn.Identity {
c.Identity == string(conn.Identity) {
r.ExternalConnectionInfo = c
conn.Name = c.Name
}
Expand Down Expand Up @@ -579,7 +579,7 @@ func (r *Reconciler) LoadNamespaceStoreSecret() error {
}

// MakeExternalConnectionParams translates the namespace store spec and secret,
// to noobaa api structures to be used for creating/updating external connetion and namespace store
// to noobaa api structures to be used for creating/updating external connection and namespace store
func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionParams, error) {

conn := &nb.AddExternalConnectionParams{
Expand All @@ -596,8 +596,8 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa
conn.AWSSTSARN = *r.NamespaceStore.Spec.AWSS3.AWSSTSRoleARN
} else {
conn.EndpointType = nb.EndpointTypeAws
conn.Identity = r.Secret.StringData["AWS_ACCESS_KEY_ID"]
conn.Secret = r.Secret.StringData["AWS_SECRET_ACCESS_KEY"]
conn.Identity = nb.MaskedString(r.Secret.StringData["AWS_ACCESS_KEY_ID"])
conn.Secret = nb.MaskedString(r.Secret.StringData["AWS_SECRET_ACCESS_KEY"])
}
awsS3 := r.NamespaceStore.Spec.AWSS3
u := url.URL{
Expand All @@ -615,8 +615,8 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa

case nbv1.NSStoreTypeS3Compatible:
conn.EndpointType = nb.EndpointTypeS3Compat
conn.Identity = r.Secret.StringData["AWS_ACCESS_KEY_ID"]
conn.Secret = r.Secret.StringData["AWS_SECRET_ACCESS_KEY"]
conn.Identity = nb.MaskedString(r.Secret.StringData["AWS_ACCESS_KEY_ID"])
conn.Secret = nb.MaskedString(r.Secret.StringData["AWS_SECRET_ACCESS_KEY"])
s3Compatible := r.NamespaceStore.Spec.S3Compatible

//Configure auth method
Expand All @@ -627,8 +627,8 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa

case nbv1.NSStoreTypeIBMCos:
conn.EndpointType = nb.EndpointTypeIBMCos
conn.Identity = r.Secret.StringData["IBM_COS_ACCESS_KEY_ID"]
conn.Secret = r.Secret.StringData["IBM_COS_SECRET_ACCESS_KEY"]
conn.Identity = nb.MaskedString(r.Secret.StringData["IBM_COS_ACCESS_KEY_ID"])
conn.Secret = nb.MaskedString(r.Secret.StringData["IBM_COS_SECRET_ACCESS_KEY"])
IBMCos := r.NamespaceStore.Spec.IBMCos

//Configure auth method
Expand All @@ -640,8 +640,8 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa
case nbv1.NSStoreTypeAzureBlob:
conn.EndpointType = nb.EndpointTypeAzure
conn.Endpoint = "https://blob.core.windows.net"
conn.Identity = r.Secret.StringData["AccountName"]
conn.Secret = r.Secret.StringData["AccountKey"]
conn.Identity = nb.MaskedString(r.Secret.StringData["AccountName"])
conn.Secret = nb.MaskedString(r.Secret.StringData["AccountKey"])
tenantID := r.Secret.StringData["TenantID"]
appID := r.Secret.StringData["ApplicationID"]
appSecret := r.Secret.StringData["ApplicationSecret"]
Expand Down Expand Up @@ -670,15 +670,15 @@ func (r *Reconciler) MakeExternalConnectionParams() (*nb.AddExternalConnectionPa
r.Secret.Name,
))
}
conn.Identity = privateKey.ID
conn.Secret = privateKeyJSON
conn.Identity = nb.MaskedString(privateKey.ID)
conn.Secret = nb.MaskedString(privateKeyJSON)

default:
return nil, util.NewPersistentError("InvalidType",
fmt.Sprintf("Invalid namespace store type %q", r.NamespaceStore.Spec.Type))
}
if util.IsSTSClusterNS(r.NamespaceStore) {
if !util.IsStringGraphicOrSpacesCharsOnly(conn.Identity) || !util.IsStringGraphicOrSpacesCharsOnly(conn.Secret) {
if !util.IsStringGraphicOrSpacesCharsOnly(string(conn.Identity)) || !util.IsStringGraphicOrSpacesCharsOnly(string(conn.Secret)) {
return nil, util.NewPersistentError("InvalidSecret",
fmt.Sprintf("Invalid secret containing non graphic characters (perhaps not base64 encoded?) %q", r.Secret.Name))
}
Expand Down
14 changes: 7 additions & 7 deletions pkg/nb/types.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ const (
maskString = "****"
)

// MaskedString is a string type for sensitive string, masked when formated
// MaskedString is a string type for sensitive string, masked when formatted
type MaskedString string

func (MaskedString) String() string {
Expand Down Expand Up @@ -701,8 +701,8 @@ type AddExternalConnectionParams struct {
Name string `json:"name"`
EndpointType EndpointType `json:"endpoint_type"`
Endpoint string `json:"endpoint"`
Identity string `json:"identity"`
Secret string `json:"secret"`
Identity MaskedString `json:"identity"`
Secret MaskedString `json:"secret"`
AuthMethod CloudAuthMethod `json:"auth_method,omitempty"`
AWSSTSARN string `json:"aws_sts_arn,omitempty"`
Region string `json:"region,omitempty"`
Expand All @@ -714,8 +714,8 @@ type CheckExternalConnectionParams struct {
Name string `json:"name"`
EndpointType EndpointType `json:"endpoint_type"`
Endpoint string `json:"endpoint"`
Identity string `json:"identity"`
Secret string `json:"secret"`
Identity MaskedString `json:"identity"`
Secret MaskedString `json:"secret"`
AuthMethod CloudAuthMethod `json:"auth_method,omitempty"`
AWSSTSARN string `json:"aws_sts_arn,omitempty"`
IgnoreNameAlreadyExist bool `json:"ignore_name_already_exist,omitempty"`
Expand All @@ -735,8 +735,8 @@ type CheckExternalConnectionReply struct {
// UpdateExternalConnectionParams is the params of account_api.update_external_connection()
type UpdateExternalConnectionParams struct {
Name string `json:"name"`
Identity string `json:"identity"`
Secret string `json:"secret"`
Identity MaskedString `json:"identity"`
Secret MaskedString `json:"secret"`
AzureLogAccessKeys *AzureLogAccessKeysParams `json:"azure_log_access_keys,omitempty"`
Region string `json:"region,omitempty"`
}
Expand Down

0 comments on commit 8f4aaa2

Please sign in to comment.