Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package aclutil
package aclcmdutil

import (
"fmt"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package aclutil
package aclcmdutil

const (
Wildcard = "*"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package aclutil
package aclcmdutil

import kafkainstanceclient "github.com/redhat-developer/app-services-sdk-go/kafkainstance/apiv1internal/client"

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package aclutil
package aclcmdutil

import (
"reflect"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package aclutil
package aclcmdutil

import (
"context"
Expand Down
14 changes: 7 additions & 7 deletions pkg/cmd/kafka/acl/admin/admin.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ package admin
import (
"context"

"github.com/redhat-developer/app-services-cli/pkg/cmd/kafka/acl/aclcmdutil"
flagset "github.com/redhat-developer/app-services-cli/pkg/cmd/kafka/acl/flagutil"
"github.com/redhat-developer/app-services-cli/pkg/kafkautil/aclutil"

"github.com/AlecAivazis/survey/v2"
"github.com/redhat-developer/app-services-cli/pkg/core/cmdutil/factory"
Expand Down Expand Up @@ -83,7 +83,7 @@ func NewAdminACLCommand(f *factory.Factory) *cobra.Command {
}

// user and service account should not allow wildcard
if userID == aclutil.Wildcard || serviceAccount == aclutil.Wildcard || userID == aclutil.AllAlias || serviceAccount == aclutil.AllAlias {
if userID == aclcmdutil.Wildcard || serviceAccount == aclcmdutil.Wildcard || userID == aclcmdutil.AllAlias || serviceAccount == aclcmdutil.AllAlias {
return opts.localizer.MustLocalizeError("kafka.acl.common.error.useAllAccountsFlag")
}

Expand All @@ -96,7 +96,7 @@ func NewAdminACLCommand(f *factory.Factory) *cobra.Command {
}

if allAccounts {
opts.principal = aclutil.Wildcard
opts.principal = aclcmdutil.Wildcard
}

return runAdmin(opts)
Expand Down Expand Up @@ -131,17 +131,17 @@ func runAdmin(opts *options) (err error) {

aclBindClusterAlter := kafkainstanceclient.NewAclBinding(
kafkainstanceclient.ACLRESOURCETYPE_CLUSTER,
aclutil.KafkaCluster,
aclcmdutil.KafkaCluster,
kafkainstanceclient.ACLPATTERNTYPE_LITERAL,
aclutil.FormatPrincipal(opts.principal),
aclcmdutil.FormatPrincipal(opts.principal),
kafkainstanceclient.ACLOPERATION_ALTER,
kafkainstanceclient.ACLPERMISSIONTYPE_ALLOW,
)

opts.logger.Info(opts.localizer.MustLocalize("kafka.acl.grantPermissions.log.info.aclsPreview"))
opts.logger.Info()

rows := aclutil.MapACLsToTableRows([]kafkainstanceclient.AclBinding{*aclBindClusterAlter}, opts.localizer)
rows := aclcmdutil.MapACLsToTableRows([]kafkainstanceclient.AclBinding{*aclBindClusterAlter}, opts.localizer)
dump.Table(opts.io.Out, rows)
opts.logger.Info()

Expand All @@ -164,7 +164,7 @@ func runAdmin(opts *options) (err error) {

req = req.AclBinding(*aclBindClusterAlter)

err = aclutil.ExecuteACLRuleCreate(req, opts.localizer, kafkaName)
err = aclcmdutil.ExecuteACLRuleCreate(req, opts.localizer, kafkaName)
if err != nil {
return err
}
Expand Down
42 changes: 21 additions & 21 deletions pkg/cmd/kafka/acl/create/create.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package create

import (
"github.com/AlecAivazis/survey/v2"
"github.com/redhat-developer/app-services-cli/pkg/cmd/kafka/acl/aclcmdutil"
aclFlagutil "github.com/redhat-developer/app-services-cli/pkg/cmd/kafka/acl/flagutil"
"github.com/redhat-developer/app-services-cli/pkg/core/cmdutil"
"github.com/redhat-developer/app-services-cli/pkg/core/cmdutil/factory"
Expand All @@ -10,7 +11,6 @@ import (
"github.com/redhat-developer/app-services-cli/pkg/core/ioutil/dump"
"github.com/redhat-developer/app-services-cli/pkg/core/ioutil/spinner"
"github.com/redhat-developer/app-services-cli/pkg/core/localize"
"github.com/redhat-developer/app-services-cli/pkg/kafkautil/aclutil"
kafkainstanceclient "github.com/redhat-developer/app-services-sdk-go/kafkainstance/apiv1internal/client"
"github.com/spf13/cobra"
)
Expand All @@ -33,7 +33,7 @@ type requestParams struct {

// NewCreateCommand creates a new command to add Kafka ACLs
func NewCreateCommand(f *factory.Factory) *cobra.Command {
opts := &aclutil.CrudOptions{
opts := &aclcmdutil.CrudOptions{
Config: f.Config,
Connection: f.Connection,
Logger: f.Logger,
Expand Down Expand Up @@ -63,7 +63,7 @@ func NewCreateCommand(f *factory.Factory) *cobra.Command {
errorCollection = append(errorCollection, opts.Localizer.MustLocalizeError("kafka.acl.common.flag.operation.required"))
}

if resourceErrors := aclutil.ValidateAndSetResources(opts, aclFlagutil.ResourceTypeFlagEntries); resourceErrors != nil {
if resourceErrors := aclcmdutil.ValidateAndSetResources(opts, aclFlagutil.ResourceTypeFlagEntries); resourceErrors != nil {
errorCollection = append(errorCollection, resourceErrors)
}

Expand All @@ -72,7 +72,7 @@ func NewCreateCommand(f *factory.Factory) *cobra.Command {
}

if len(errorCollection) > 0 {
return aclutil.BuildInstructions(errorCollection)
return aclcmdutil.BuildInstructions(errorCollection)
}

return runAdd(opts.InstanceID, opts)
Expand All @@ -99,7 +99,7 @@ func NewCreateCommand(f *factory.Factory) *cobra.Command {
}

// nolint:funlen
func runAdd(instanceID string, opts *aclutil.CrudOptions) error {
func runAdd(instanceID string, opts *aclcmdutil.CrudOptions) error {
ctx := opts.Context

conn, err := opts.Connection(connection.DefaultConfigRequireMasAuth)
Expand All @@ -122,7 +122,7 @@ func runAdd(instanceID string, opts *aclutil.CrudOptions) error {
return err
}

if isValidOp, validResourceOperations := aclutil.IsValidResourceOperation(opts.ResourceType, opts.Operation, resourceOperations); !isValidOp {
if isValidOp, validResourceOperations := aclcmdutil.IsValidResourceOperation(opts.ResourceType, opts.Operation, resourceOperations); !isValidOp {
return opts.Localizer.MustLocalizeError("kafka.acl.common.error.invalidResourceOperation",
localize.NewEntry("ResourceType", opts.ResourceType),
localize.NewEntry("Operation", opts.Operation),
Expand All @@ -136,15 +136,15 @@ func runAdd(instanceID string, opts *aclutil.CrudOptions) error {
kafkainstanceclient.AclResourceType(requestParams.resourceType),
requestParams.resourceName,
kafkainstanceclient.AclPatternType(requestParams.patternType),
aclutil.FormatPrincipal(opts.Principal),
aclcmdutil.FormatPrincipal(opts.Principal),
kafkainstanceclient.AclOperation(requestParams.operation),
kafkainstanceclient.AclPermissionType(requestParams.permission),
)

opts.Logger.Info(opts.Localizer.MustLocalize("kafka.acl.grantPermissions.log.info.aclsPreview"))
opts.Logger.Info()

rows := aclutil.MapACLsToTableRows([]kafkainstanceclient.AclBinding{*newAclBinding}, opts.Localizer)
rows := aclcmdutil.MapACLsToTableRows([]kafkainstanceclient.AclBinding{*newAclBinding}, opts.Localizer)
dump.Table(opts.IO.Out, rows)
opts.Logger.Info()

Expand Down Expand Up @@ -173,7 +173,7 @@ func runAdd(instanceID string, opts *aclutil.CrudOptions) error {

req = req.AclBinding(*newAclBinding)

err = aclutil.ExecuteACLRuleCreate(req, opts.Localizer, kafkaName)
err = aclcmdutil.ExecuteACLRuleCreate(req, opts.Localizer, kafkaName)
spinnr.Stop()
if err != nil {
return err
Expand All @@ -182,43 +182,43 @@ func runAdd(instanceID string, opts *aclutil.CrudOptions) error {
return nil
}

func getRequestParams(opts *aclutil.CrudOptions) *requestParams {
func getRequestParams(opts *aclcmdutil.CrudOptions) *requestParams {
return &requestParams{
resourceType: kafkainstanceclient.AclResourceType(aclutil.GetMappedResourceTypeFilterValue(opts.ResourceType)),
principal: aclutil.FormatPrincipal(opts.Principal),
resourceName: aclutil.GetResourceName(opts.ResourceName),
patternType: aclutil.GetMappedPatternTypeValue(opts.PatternType),
operation: aclutil.GetMappedOperationValue(opts.Operation),
permission: aclutil.GetMappedPermissionTypeValue(opts.Permission),
resourceType: kafkainstanceclient.AclResourceType(aclcmdutil.GetMappedResourceTypeFilterValue(opts.ResourceType)),
principal: aclcmdutil.FormatPrincipal(opts.Principal),
resourceName: aclcmdutil.GetResourceName(opts.ResourceName),
patternType: aclcmdutil.GetMappedPatternTypeValue(opts.PatternType),
operation: aclcmdutil.GetMappedOperationValue(opts.Operation),
permission: aclcmdutil.GetMappedPermissionTypeValue(opts.Permission),
}
}

func validateAndSetOpts(opts *aclutil.CrudOptions) error {
func validateAndSetOpts(opts *aclcmdutil.CrudOptions) error {

// user and service account should not be provided together
if userID != "" && serviceAccount != "" {
return opts.Localizer.MustLocalizeError("kafka.acl.common.error.bothPrincipalsSelected")
}

if userID == aclutil.Wildcard || serviceAccount == aclutil.Wildcard || userID == aclutil.AllAlias || serviceAccount == aclutil.AllAlias {
if userID == aclcmdutil.Wildcard || serviceAccount == aclcmdutil.Wildcard || userID == aclcmdutil.AllAlias || serviceAccount == aclcmdutil.AllAlias {
return opts.Localizer.MustLocalizeError("kafka.acl.common.error.useAllAccountsFlag")
}

if allAccounts {
if userID != "" || serviceAccount != "" {
return opts.Localizer.MustLocalizeError("kafka.acl.common.error.allAccountsCannotBeUsedWithUserFlag")
}
opts.Principal = aclutil.Wildcard
opts.Principal = aclcmdutil.Wildcard
}

// check if principal is provided
if !allAccounts && (userID == "" && serviceAccount == "") {
return opts.Localizer.MustLocalizeError("kafka.acl.common.error.noPrincipalsSelected")
}

opts.PatternType = aclutil.PatternTypeLITERAL
opts.PatternType = aclcmdutil.PatternTypeLITERAL
if prefix {
opts.PatternType = aclutil.PatternTypePREFIX
opts.PatternType = aclcmdutil.PatternTypePREFIX
}

if userID != "" {
Expand Down
40 changes: 20 additions & 20 deletions pkg/cmd/kafka/acl/delete/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package delete

import (
"github.com/AlecAivazis/survey/v2"
"github.com/redhat-developer/app-services-cli/pkg/cmd/kafka/acl/aclcmdutil"
aclFlagUtil "github.com/redhat-developer/app-services-cli/pkg/cmd/kafka/acl/flagutil"
"github.com/redhat-developer/app-services-cli/pkg/core/cmdutil"
"github.com/redhat-developer/app-services-cli/pkg/core/cmdutil/factory"
Expand All @@ -11,7 +12,6 @@ import (
"github.com/redhat-developer/app-services-cli/pkg/core/ioutil/icon"
"github.com/redhat-developer/app-services-cli/pkg/core/ioutil/spinner"
"github.com/redhat-developer/app-services-cli/pkg/core/localize"
"github.com/redhat-developer/app-services-cli/pkg/kafkautil/aclutil"
kafkainstanceclient "github.com/redhat-developer/app-services-sdk-go/kafkainstance/apiv1internal/client"
"github.com/spf13/cobra"
)
Expand All @@ -34,7 +34,7 @@ type requestParams struct {

// NewDeleteCommand creates a new command to delete Kafka ACLs
func NewDeleteCommand(f *factory.Factory) *cobra.Command {
opts := &aclutil.CrudOptions{
opts := &aclcmdutil.CrudOptions{
Config: f.Config,
Connection: f.Connection,
Logger: f.Logger,
Expand All @@ -60,7 +60,7 @@ func NewDeleteCommand(f *factory.Factory) *cobra.Command {
errorCollection = append(errorCollection, opts.Localizer.MustLocalizeError("kafka.acl.common.flag.operation.required"))
}

if resourceErrors := aclutil.ValidateAndSetResources(opts, aclFlagUtil.ResourceTypeFlagEntries); resourceErrors != nil {
if resourceErrors := aclcmdutil.ValidateAndSetResources(opts, aclFlagUtil.ResourceTypeFlagEntries); resourceErrors != nil {
errorCollection = append(errorCollection, resourceErrors)
}

Expand All @@ -69,7 +69,7 @@ func NewDeleteCommand(f *factory.Factory) *cobra.Command {
}

if len(errorCollection) > 0 {
return aclutil.BuildInstructions(errorCollection)
return aclcmdutil.BuildInstructions(errorCollection)
}

return runDelete(opts.InstanceID, opts)
Expand Down Expand Up @@ -97,7 +97,7 @@ func NewDeleteCommand(f *factory.Factory) *cobra.Command {
}

// nolint:funlen
func runDelete(instanceID string, opts *aclutil.CrudOptions) error {
func runDelete(instanceID string, opts *aclcmdutil.CrudOptions) error {
ctx := opts.Context

conn, err := opts.Connection(connection.DefaultConfigRequireMasAuth)
Expand All @@ -118,7 +118,7 @@ func runDelete(instanceID string, opts *aclutil.CrudOptions) error {
return err
}

if isValidOp, validResourceOperations := aclutil.IsValidResourceOperation(opts.ResourceType, opts.Operation, resourceOperations); !isValidOp {
if isValidOp, validResourceOperations := aclcmdutil.IsValidResourceOperation(opts.ResourceType, opts.Operation, resourceOperations); !isValidOp {
return opts.Localizer.MustLocalizeError("kafka.acl.common.error.invalidResourceOperation",
localize.NewEntry("ResourceType", opts.ResourceType),
localize.NewEntry("Operation", opts.Operation),
Expand Down Expand Up @@ -162,7 +162,7 @@ func runDelete(instanceID string, opts *aclutil.CrudOptions) error {
defer httpRes.Body.Close()
}

err = aclutil.ValidateAPIError(httpRes, opts.Localizer, err, "delete", kafkaInstance.GetName())
err = aclcmdutil.ValidateAPIError(httpRes, opts.Localizer, err, "delete", kafkaInstance.GetName())
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think that ValidateAPIError belongs more in an SDK instead of a cmd util, but we can revisit that when the error handling refactor happens.

spinnr.Stop()

if err != nil {
Expand All @@ -184,50 +184,50 @@ func runDelete(instanceID string, opts *aclutil.CrudOptions) error {

opts.Logger.Info(opts.Localizer.MustLocalize("kafka.acl.grantPermissions.log.delete.info.aclsPreview"))
opts.Logger.Info()
rows := aclutil.MapACLsToTableRows(*deletedACLs.Items, opts.Localizer)
rows := aclcmdutil.MapACLsToTableRows(*deletedACLs.Items, opts.Localizer)
dump.Table(opts.IO.Out, rows)
opts.Logger.Info()

return nil
}

func getRequestParams(opts *aclutil.CrudOptions) *requestParams {
func getRequestParams(opts *aclcmdutil.CrudOptions) *requestParams {
return &requestParams{
resourceType: aclutil.GetMappedResourceTypeFilterValue(opts.ResourceType),
principal: aclutil.FormatPrincipal(opts.Principal),
resourceName: aclutil.GetResourceName(opts.ResourceName),
patternType: aclutil.GetMappedPatternTypeFilterValue(opts.PatternType),
operation: aclutil.GetMappedOperationFilterValue(opts.Operation),
permission: aclutil.GetMappedPermissionTypeFilterValue(opts.Permission),
resourceType: aclcmdutil.GetMappedResourceTypeFilterValue(opts.ResourceType),
principal: aclcmdutil.FormatPrincipal(opts.Principal),
resourceName: aclcmdutil.GetResourceName(opts.ResourceName),
patternType: aclcmdutil.GetMappedPatternTypeFilterValue(opts.PatternType),
operation: aclcmdutil.GetMappedOperationFilterValue(opts.Operation),
permission: aclcmdutil.GetMappedPermissionTypeFilterValue(opts.Permission),
}
}

func validateAndSetOpts(opts *aclutil.CrudOptions) error {
func validateAndSetOpts(opts *aclcmdutil.CrudOptions) error {

// user and service account should not be provided together
if userID != "" && serviceAccount != "" {
return opts.Localizer.MustLocalizeError("kafka.acl.common.error.bothPrincipalsSelected")
}

if userID == aclutil.Wildcard || serviceAccount == aclutil.Wildcard || userID == aclutil.AllAlias || serviceAccount == aclutil.AllAlias {
if userID == aclcmdutil.Wildcard || serviceAccount == aclcmdutil.Wildcard || userID == aclcmdutil.AllAlias || serviceAccount == aclcmdutil.AllAlias {
return opts.Localizer.MustLocalizeError("kafka.acl.common.error.useAllAccountsFlag")
}

if allAccounts {
if userID != "" || serviceAccount != "" {
return opts.Localizer.MustLocalizeError("kafka.acl.common.error.allAccountsCannotBeUsedWithUserFlag")
}
opts.Principal = aclutil.Wildcard
opts.Principal = aclcmdutil.Wildcard
}

// check if principal is provided
if !allAccounts && (userID == "" && serviceAccount == "") {
return opts.Localizer.MustLocalizeError("kafka.acl.common.error.noPrincipalsSelected")
}

opts.PatternType = aclutil.PatternTypeLITERAL
opts.PatternType = aclcmdutil.PatternTypeLITERAL
if prefix {
opts.PatternType = aclutil.PatternTypePREFIX
opts.PatternType = aclcmdutil.PatternTypePREFIX
}

if userID != "" {
Expand Down
Loading