From 5613917729a20f4089edc7f12a0b023b10f366b1 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 19 Mar 2020 10:55:01 +0000 Subject: [PATCH 1/7] CLOUDP-58790: Take database name from a flag when handling dbusers, Atlas --- internal/cli/atlas_dbusers_delete.go | 3 ++- internal/cli/atlas_dbusers_delete_test.go | 3 ++- internal/cli/cli.go | 22 ++++++++++++++++ internal/flags/flags.go | 1 + internal/mocks/mock_database_users.go | 32 +++++++++++------------ internal/store/database_users.go | 14 +++++----- internal/usage/usage.go | 1 + 7 files changed, 50 insertions(+), 26 deletions(-) diff --git a/internal/cli/atlas_dbusers_delete.go b/internal/cli/atlas_dbusers_delete.go index 72d8b71cec..2ce0bdb9ec 100644 --- a/internal/cli/atlas_dbusers_delete.go +++ b/internal/cli/atlas_dbusers_delete.go @@ -38,7 +38,7 @@ func (opts *atlasDBUsersDeleteOpts) init() error { } func (opts *atlasDBUsersDeleteOpts) Run() error { - return opts.DeleteFromProject(opts.store.DeleteDatabaseUser, opts.ProjectID()) + return opts.DeleterFromProjectAuthDB(opts.store.DeleteDatabaseUser, opts.ProjectID()) } // mongocli atlas dbuser(s) delete --force @@ -70,6 +70,7 @@ func AtlasDBUsersDeleteBuilder() *cobra.Command { cmd.Flags().BoolVar(&opts.confirm, flags.Force, false, usage.Force) cmd.Flags().StringVar(&opts.projectID, flags.ProjectID, "", usage.ProjectID) + cmd.Flags().StringVar(&opts.authDB, flags.AuthDB, "", usage.AuthDB) return cmd } diff --git a/internal/cli/atlas_dbusers_delete_test.go b/internal/cli/atlas_dbusers_delete_test.go index a4e8aa92ef..b7bd4d37eb 100644 --- a/internal/cli/atlas_dbusers_delete_test.go +++ b/internal/cli/atlas_dbusers_delete_test.go @@ -32,13 +32,14 @@ func TestAtlasDBUsersDelete_Run(t *testing.T) { deleteOpts: &deleteOpts{ confirm: true, entry: "test", + authDB: "Admin", }, store: mockStore, } mockStore. EXPECT(). - DeleteDatabaseUser(deleteOpts.projectID, deleteOpts.entry). + DeleteDatabaseUser(deleteOpts.authDB, deleteOpts.projectID, deleteOpts.entry). Return(nil). Times(1) diff --git a/internal/cli/cli.go b/internal/cli/cli.go index 9414302c62..7d8e7752a8 100644 --- a/internal/cli/cli.go +++ b/internal/cli/cli.go @@ -60,11 +60,15 @@ type deleteOpts struct { confirm bool successMessage string failMessage string + authDB string } // DeleterFromProject a function to delete from the store. type DeleterFromProject func(projectID string, entry string) error +// DeleterFromProjectAuthDB a function to delete from the store. +type DeleterFromProjectAuthDB func(authDB string, projectID string, entry string) error + // DeleteFromProject deletes a resource from a project, it expects a callback // that should perform the deletion from the store. func (opts *deleteOpts) DeleteFromProject(d DeleterFromProject, projectID string) error { @@ -83,6 +87,24 @@ func (opts *deleteOpts) DeleteFromProject(d DeleterFromProject, projectID string return nil } +// DeleterFromProjectAuthDB deletes a resource from a project, it expects a callback +// that should perform the deletion from the store. +func (opts *deleteOpts) DeleterFromProjectAuthDB(d DeleterFromProjectAuthDB, projectID string) error { + if !opts.confirm { + fmt.Println(opts.failMessage) + return nil + } + err := d(opts.authDB, projectID, opts.entry) + + if err != nil { + return err + } + + fmt.Printf(opts.successMessage, opts.entry) + + return nil +} + // Deleter a function to delete from the store. type Deleter func(entry string) error diff --git a/internal/flags/flags.go b/internal/flags/flags.go index 5c44b74ece..5522ce486a 100644 --- a/internal/flags/flags.go +++ b/internal/flags/flags.go @@ -20,6 +20,7 @@ const ( ProfileShort = "p" // ProfileShort flag to use a profile OrgID = "orgId" // OrgID flag to use an Organization ID ProjectID = "projectId" // ProjectID flag to use a project ID + AuthDB = "authDB" // AuthDB flag Provider = "provider" // Provider flag to set the cloud provider Region = "region" // Region flag RegionShort = "r" // RegionShort flag diff --git a/internal/mocks/mock_database_users.go b/internal/mocks/mock_database_users.go index 59a59b810e..ce7d169e35 100644 --- a/internal/mocks/mock_database_users.go +++ b/internal/mocks/mock_database_users.go @@ -110,17 +110,17 @@ func (m *MockDatabaseUserDeleter) EXPECT() *MockDatabaseUserDeleterMockRecorder } // DeleteDatabaseUser mocks base method -func (m *MockDatabaseUserDeleter) DeleteDatabaseUser(arg0, arg1 string) error { +func (m *MockDatabaseUserDeleter) DeleteDatabaseUser(arg0, arg1, arg2 string) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteDatabaseUser", arg0, arg1) + ret := m.ctrl.Call(m, "DeleteDatabaseUser", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // DeleteDatabaseUser indicates an expected call of DeleteDatabaseUser -func (mr *MockDatabaseUserDeleterMockRecorder) DeleteDatabaseUser(arg0, arg1 interface{}) *gomock.Call { +func (mr *MockDatabaseUserDeleterMockRecorder) DeleteDatabaseUser(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteDatabaseUser", reflect.TypeOf((*MockDatabaseUserDeleter)(nil).DeleteDatabaseUser), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteDatabaseUser", reflect.TypeOf((*MockDatabaseUserDeleter)(nil).DeleteDatabaseUser), arg0, arg1, arg2) } // MockDatabaseUserUpdater is a mock of DatabaseUserUpdater interface @@ -185,18 +185,18 @@ func (m *MockDatabaseUserDescriber) EXPECT() *MockDatabaseUserDescriberMockRecor } // DatabaseUser mocks base method -func (m *MockDatabaseUserDescriber) DatabaseUser(arg0, arg1 string) (*mongodbatlas.DatabaseUser, error) { +func (m *MockDatabaseUserDescriber) DatabaseUser(arg0, arg1, arg2 string) (*mongodbatlas.DatabaseUser, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DatabaseUser", arg0, arg1) + ret := m.ctrl.Call(m, "DatabaseUser", arg0, arg1, arg2) ret0, _ := ret[0].(*mongodbatlas.DatabaseUser) ret1, _ := ret[1].(error) return ret0, ret1 } // DatabaseUser indicates an expected call of DatabaseUser -func (mr *MockDatabaseUserDescriberMockRecorder) DatabaseUser(arg0, arg1 interface{}) *gomock.Call { +func (mr *MockDatabaseUserDescriberMockRecorder) DatabaseUser(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DatabaseUser", reflect.TypeOf((*MockDatabaseUserDescriber)(nil).DatabaseUser), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DatabaseUser", reflect.TypeOf((*MockDatabaseUserDescriber)(nil).DatabaseUser), arg0, arg1, arg2) } // MockDatabaseUserStore is a mock of DatabaseUserStore interface @@ -238,17 +238,17 @@ func (mr *MockDatabaseUserStoreMockRecorder) CreateDatabaseUser(arg0 interface{} } // DeleteDatabaseUser mocks base method -func (m *MockDatabaseUserStore) DeleteDatabaseUser(arg0, arg1 string) error { +func (m *MockDatabaseUserStore) DeleteDatabaseUser(arg0, arg1, arg2 string) error { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DeleteDatabaseUser", arg0, arg1) + ret := m.ctrl.Call(m, "DeleteDatabaseUser", arg0, arg1, arg2) ret0, _ := ret[0].(error) return ret0 } // DeleteDatabaseUser indicates an expected call of DeleteDatabaseUser -func (mr *MockDatabaseUserStoreMockRecorder) DeleteDatabaseUser(arg0, arg1 interface{}) *gomock.Call { +func (mr *MockDatabaseUserStoreMockRecorder) DeleteDatabaseUser(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteDatabaseUser", reflect.TypeOf((*MockDatabaseUserStore)(nil).DeleteDatabaseUser), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DeleteDatabaseUser", reflect.TypeOf((*MockDatabaseUserStore)(nil).DeleteDatabaseUser), arg0, arg1, arg2) } // UpdateDatabaseUser mocks base method @@ -267,16 +267,16 @@ func (mr *MockDatabaseUserStoreMockRecorder) UpdateDatabaseUser(arg0 interface{} } // DatabaseUser mocks base method -func (m *MockDatabaseUserStore) DatabaseUser(arg0, arg1 string) (*mongodbatlas.DatabaseUser, error) { +func (m *MockDatabaseUserStore) DatabaseUser(arg0, arg1, arg2 string) (*mongodbatlas.DatabaseUser, error) { m.ctrl.T.Helper() - ret := m.ctrl.Call(m, "DatabaseUser", arg0, arg1) + ret := m.ctrl.Call(m, "DatabaseUser", arg0, arg1, arg2) ret0, _ := ret[0].(*mongodbatlas.DatabaseUser) ret1, _ := ret[1].(error) return ret0, ret1 } // DatabaseUser indicates an expected call of DatabaseUser -func (mr *MockDatabaseUserStoreMockRecorder) DatabaseUser(arg0, arg1 interface{}) *gomock.Call { +func (mr *MockDatabaseUserStoreMockRecorder) DatabaseUser(arg0, arg1, arg2 interface{}) *gomock.Call { mr.mock.ctrl.T.Helper() - return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DatabaseUser", reflect.TypeOf((*MockDatabaseUserStore)(nil).DatabaseUser), arg0, arg1) + return mr.mock.ctrl.RecordCallWithMethodType(mr.mock, "DatabaseUser", reflect.TypeOf((*MockDatabaseUserStore)(nil).DatabaseUser), arg0, arg1, arg2) } diff --git a/internal/store/database_users.go b/internal/store/database_users.go index 9ea96f918d..971a573bb8 100644 --- a/internal/store/database_users.go +++ b/internal/store/database_users.go @@ -31,7 +31,7 @@ type DatabaseUserCreator interface { } type DatabaseUserDeleter interface { - DeleteDatabaseUser(string, string) error + DeleteDatabaseUser(string, string, string) error } type DatabaseUserUpdater interface { @@ -39,7 +39,7 @@ type DatabaseUserUpdater interface { } type DatabaseUserDescriber interface { - DatabaseUser(string, string) (*atlas.DatabaseUser, error) + DatabaseUser(string, string, string) (*atlas.DatabaseUser, error) } type DatabaseUserStore interface { @@ -60,11 +60,10 @@ func (s *Store) CreateDatabaseUser(user *atlas.DatabaseUser) (*atlas.DatabaseUse } } -func (s *Store) DeleteDatabaseUser(groupID, username string) error { - dbName := "admin" +func (s *Store) DeleteDatabaseUser(authDB, groupID, username string) error { switch s.service { case config.CloudService: - _, err := s.client.(*atlas.Client).DatabaseUsers.Delete(context.Background(), dbName, groupID, username) + _, err := s.client.(*atlas.Client).DatabaseUsers.Delete(context.Background(), authDB, groupID, username) return err default: return fmt.Errorf("unsupported service: %s", s.service) @@ -91,11 +90,10 @@ func (s *Store) UpdateDatabaseUser(user *atlas.DatabaseUser) (*atlas.DatabaseUse } } -func (s *Store) DatabaseUser(groupID string, username string) (*atlas.DatabaseUser, error) { - dbName := "admin" +func (s *Store) DatabaseUser(authDB string, groupID string, username string) (*atlas.DatabaseUser, error) { switch s.service { case config.CloudService: - result, _, err := s.client.(*atlas.Client).DatabaseUsers.Get(context.Background(), dbName, groupID, username) + result, _, err := s.client.(*atlas.Client).DatabaseUsers.Get(context.Background(), authDB, groupID, username) return result, err default: return nil, fmt.Errorf("unsupported service: %s", s.service) diff --git a/internal/usage/usage.go b/internal/usage/usage.go index b0f2d2983d..2d789f68c3 100644 --- a/internal/usage/usage.go +++ b/internal/usage/usage.go @@ -23,6 +23,7 @@ const ( DiskSizeGB = "Capacity, in gigabytes, of the host’s root volume." Backup = "If true, uses Atlas Continuous Backups to back up cluster data." MDBVersion = "MongoDB version of the cluster to deploy." + AuthDB = "Database name." Page = "Page number." Limit = "Number of items per page." Username = "Username for authenticating to MongoDB." From f67db792b3aa31cd5a3f59d4c72a08ff604923a0 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 19 Mar 2020 12:40:08 +0000 Subject: [PATCH 2/7] Changed AuthDB description --- internal/usage/usage.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/usage/usage.go b/internal/usage/usage.go index 2d789f68c3..4044934cfe 100644 --- a/internal/usage/usage.go +++ b/internal/usage/usage.go @@ -23,7 +23,7 @@ const ( DiskSizeGB = "Capacity, in gigabytes, of the host’s root volume." Backup = "If true, uses Atlas Continuous Backups to back up cluster data." MDBVersion = "MongoDB version of the cluster to deploy." - AuthDB = "Database name." + AuthDB = "Authentication database name." Page = "Page number." Limit = "Number of items per page." Username = "Username for authenticating to MongoDB." From 8e179e3aa0b515b9a278a285f1fdac4226d0058b Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 19 Mar 2020 15:33:07 +0000 Subject: [PATCH 3/7] Updated e2e test --- e2e/atlas_dbusers_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/e2e/atlas_dbusers_test.go b/e2e/atlas_dbusers_test.go index 6a80bb131f..cf32940231 100644 --- a/e2e/atlas_dbusers_test.go +++ b/e2e/atlas_dbusers_test.go @@ -125,7 +125,7 @@ func TestAtlasDBUsers(t *testing.T) { }) t.Run("Delete", func(t *testing.T) { - cmd := exec.Command(cliPath, atlasEntity, dbusersEntity, "delete", username, "--force") + cmd := exec.Command(cliPath, atlasEntity, dbusersEntity, "delete", username, "--force", "--authDB", "admin") cmd.Env = os.Environ() resp, err := cmd.CombinedOutput() From 0763251f9163f60fd9936c5af64af57a5db9a13b Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 19 Mar 2020 15:45:37 +0000 Subject: [PATCH 4/7] Fixed issue %!(EXTRA string=test) by adding the successMessage in the test --- internal/cli/atlas_alert_config_delete_test.go | 5 +++-- internal/cli/atlas_clusters_delete_test.go | 5 +++-- internal/cli/atlas_dbusers_delete_test.go | 7 ++++--- internal/cli/atlas_whitelist_delete_test.go | 5 +++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/internal/cli/atlas_alert_config_delete_test.go b/internal/cli/atlas_alert_config_delete_test.go index 236d1d54d1..c40fc15807 100644 --- a/internal/cli/atlas_alert_config_delete_test.go +++ b/internal/cli/atlas_alert_config_delete_test.go @@ -30,8 +30,9 @@ func TestAtlasAlertConfigsDelete_Run(t *testing.T) { deleteOpts := &atlasAlertConfigDeleteOpts{ globalOpts: newGlobalOpts(), deleteOpts: &deleteOpts{ - confirm: true, - entry: "test", + confirm: true, + entry: "test", + successMessage: "Alert config '%s' deleted\n", }, store: mockStore, } diff --git a/internal/cli/atlas_clusters_delete_test.go b/internal/cli/atlas_clusters_delete_test.go index 58aea91f26..03e8cd7fc0 100644 --- a/internal/cli/atlas_clusters_delete_test.go +++ b/internal/cli/atlas_clusters_delete_test.go @@ -30,8 +30,9 @@ func TestAtlasClustersDelete_Run(t *testing.T) { deleteOpts := &atlasClustersDeleteOpts{ globalOpts: newGlobalOpts(), deleteOpts: &deleteOpts{ - confirm: true, - entry: "test", + confirm: true, + entry: "test", + successMessage: "Cluster '%s' deleted\n", }, store: mockStore, } diff --git a/internal/cli/atlas_dbusers_delete_test.go b/internal/cli/atlas_dbusers_delete_test.go index b7bd4d37eb..5dfc2dfd66 100644 --- a/internal/cli/atlas_dbusers_delete_test.go +++ b/internal/cli/atlas_dbusers_delete_test.go @@ -30,9 +30,10 @@ func TestAtlasDBUsersDelete_Run(t *testing.T) { deleteOpts := &atlasDBUsersDeleteOpts{ globalOpts: newGlobalOpts(), deleteOpts: &deleteOpts{ - confirm: true, - entry: "test", - authDB: "Admin", + confirm: true, + entry: "test", + authDB: "Admin", + successMessage: "DB user '%s' deleted\n", }, store: mockStore, } diff --git a/internal/cli/atlas_whitelist_delete_test.go b/internal/cli/atlas_whitelist_delete_test.go index 48f08b7e00..397c9b6818 100644 --- a/internal/cli/atlas_whitelist_delete_test.go +++ b/internal/cli/atlas_whitelist_delete_test.go @@ -30,8 +30,9 @@ func TestAtlasWhitelistDelete_Run(t *testing.T) { deleteOpts := &atlasWhitelistDeleteOpts{ globalOpts: newGlobalOpts(), deleteOpts: &deleteOpts{ - confirm: true, - entry: "test", + confirm: true, + entry: "test", + successMessage: "Project whitelist entry '%s' deleted\n", }, store: mockStore, } From 324282010c45f988d7fcdf94241d9fb3b8c7f259 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 19 Mar 2020 16:08:48 +0000 Subject: [PATCH 5/7] Addressed PR comments --- internal/cli/atlas_dbusers_delete.go | 7 ++++--- internal/cli/atlas_dbusers_delete_test.go | 4 ++-- internal/cli/cli.go | 5 ++--- 3 files changed, 8 insertions(+), 8 deletions(-) diff --git a/internal/cli/atlas_dbusers_delete.go b/internal/cli/atlas_dbusers_delete.go index 2ce0bdb9ec..1e21d05ce8 100644 --- a/internal/cli/atlas_dbusers_delete.go +++ b/internal/cli/atlas_dbusers_delete.go @@ -24,7 +24,8 @@ import ( type atlasDBUsersDeleteOpts struct { *globalOpts *deleteOpts - store store.DatabaseUserDeleter + authDB string + store store.DatabaseUserDeleter } func (opts *atlasDBUsersDeleteOpts) init() error { @@ -38,7 +39,7 @@ func (opts *atlasDBUsersDeleteOpts) init() error { } func (opts *atlasDBUsersDeleteOpts) Run() error { - return opts.DeleterFromProjectAuthDB(opts.store.DeleteDatabaseUser, opts.ProjectID()) + return opts.DeleterFromProjectAuthDB(opts.store.DeleteDatabaseUser, opts.authDB, opts.ProjectID()) } // mongocli atlas dbuser(s) delete --force @@ -70,7 +71,7 @@ func AtlasDBUsersDeleteBuilder() *cobra.Command { cmd.Flags().BoolVar(&opts.confirm, flags.Force, false, usage.Force) cmd.Flags().StringVar(&opts.projectID, flags.ProjectID, "", usage.ProjectID) - cmd.Flags().StringVar(&opts.authDB, flags.AuthDB, "", usage.AuthDB) + cmd.Flags().StringVar(&opts.authDB, flags.AuthDB, "admin", usage.AuthDB) return cmd } diff --git a/internal/cli/atlas_dbusers_delete_test.go b/internal/cli/atlas_dbusers_delete_test.go index 5dfc2dfd66..9fc6a74ec6 100644 --- a/internal/cli/atlas_dbusers_delete_test.go +++ b/internal/cli/atlas_dbusers_delete_test.go @@ -32,10 +32,10 @@ func TestAtlasDBUsersDelete_Run(t *testing.T) { deleteOpts: &deleteOpts{ confirm: true, entry: "test", - authDB: "Admin", successMessage: "DB user '%s' deleted\n", }, - store: mockStore, + authDB: "Admin", + store: mockStore, } mockStore. diff --git a/internal/cli/cli.go b/internal/cli/cli.go index 7d8e7752a8..ebf94c1a4c 100644 --- a/internal/cli/cli.go +++ b/internal/cli/cli.go @@ -60,7 +60,6 @@ type deleteOpts struct { confirm bool successMessage string failMessage string - authDB string } // DeleterFromProject a function to delete from the store. @@ -89,12 +88,12 @@ func (opts *deleteOpts) DeleteFromProject(d DeleterFromProject, projectID string // DeleterFromProjectAuthDB deletes a resource from a project, it expects a callback // that should perform the deletion from the store. -func (opts *deleteOpts) DeleterFromProjectAuthDB(d DeleterFromProjectAuthDB, projectID string) error { +func (opts *deleteOpts) DeleterFromProjectAuthDB(d DeleterFromProjectAuthDB, authDB, projectID string) error { if !opts.confirm { fmt.Println(opts.failMessage) return nil } - err := d(opts.authDB, projectID, opts.entry) + err := d(authDB, projectID, opts.entry) if err != nil { return err From ef618afe3f91751a64400d1db83716eaa1f37c91 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 19 Mar 2020 16:17:08 +0000 Subject: [PATCH 6/7] Refactoring --- internal/cli/atlas_dbusers_delete_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/cli/atlas_dbusers_delete_test.go b/internal/cli/atlas_dbusers_delete_test.go index 9fc6a74ec6..97b4252566 100644 --- a/internal/cli/atlas_dbusers_delete_test.go +++ b/internal/cli/atlas_dbusers_delete_test.go @@ -34,7 +34,7 @@ func TestAtlasDBUsersDelete_Run(t *testing.T) { entry: "test", successMessage: "DB user '%s' deleted\n", }, - authDB: "Admin", + authDB: "admin", store: mockStore, } From 4a1580bec3987482bbfdac3a924e4534ba1ba711 Mon Sep 17 00:00:00 2001 From: andreaangiolillo Date: Thu, 19 Mar 2020 16:28:10 +0000 Subject: [PATCH 7/7] Refactoring --- internal/flags/flags.go | 1 - internal/usage/usage.go | 1 - 2 files changed, 2 deletions(-) diff --git a/internal/flags/flags.go b/internal/flags/flags.go index 2538d3619f..b80ea2999e 100644 --- a/internal/flags/flags.go +++ b/internal/flags/flags.go @@ -32,7 +32,6 @@ const ( Backup = "backup" // Backup flag Username = "username" // Username flag Password = "password" // Password flag - AuthDB = "authDB" // AuthDB flag Email = "email" // Email flag FirstName = "firstName" // FirstName flag LastName = "lastName" // LastName flag diff --git a/internal/usage/usage.go b/internal/usage/usage.go index 0276df16ef..a40298457f 100644 --- a/internal/usage/usage.go +++ b/internal/usage/usage.go @@ -28,7 +28,6 @@ const ( Limit = "Number of items per page." Username = "Username for authenticating to MongoDB." Password = "User’s password." - AuthDB = "Authentication database name." Roles = "User's roles and the databases or collections on which the roles apply." Comment = "Optional description of the whitelist entry." Force = "Don't ask for confirmation."