github.com/minio/console@v1.4.1/api/admin_client_mock.go (about)

     1  // This file is part of MinIO Console Server
     2  // Copyright (c) 2023 MinIO, Inc.
     3  //
     4  // This program is free software: you can redistribute it and/or modify
     5  // it under the terms of the GNU Affero General Public License as published by
     6  // the Free Software Foundation, either version 3 of the License, or
     7  // (at your option) any later version.
     8  //
     9  // This program is distributed in the hope that it will be useful,
    10  // but WITHOUT ANY WARRANTY; without even the implied warranty of
    11  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    12  // GNU Affero General Public License for more details.
    13  //
    14  // You should have received a copy of the GNU Affero General Public License
    15  // along with this program.  If not, see <http://www.gnu.org/licenses/>.
    16  
    17  package api
    18  
    19  import (
    20  	"context"
    21  	"io"
    22  	"time"
    23  
    24  	"github.com/minio/madmin-go/v3"
    25  	iampolicy "github.com/minio/pkg/v3/policy"
    26  )
    27  
    28  type AdminClientMock struct{}
    29  
    30  var (
    31  	MinioServerInfoMock     func(ctx context.Context) (madmin.InfoMessage, error)
    32  	minioChangePasswordMock func(ctx context.Context, accessKey, secretKey string) error
    33  
    34  	minioHelpConfigKVMock       func(subSys, key string, envOnly bool) (madmin.Help, error)
    35  	minioGetConfigKVMock        func(key string) ([]byte, error)
    36  	minioSetConfigKVMock        func(kv string) (restart bool, err error)
    37  	minioDelConfigKVMock        func(name string) (err error)
    38  	minioHelpConfigKVGlobalMock func(envOnly bool) (madmin.Help, error)
    39  
    40  	minioGetLogsMock func(ctx context.Context, node string, lineCnt int, logKind string) <-chan madmin.LogInfo
    41  
    42  	minioListGroupsMock          func() ([]string, error)
    43  	minioUpdateGroupMembersMock  func(madmin.GroupAddRemove) error
    44  	minioGetGroupDescriptionMock func(group string) (*madmin.GroupDesc, error)
    45  	minioSetGroupStatusMock      func(group string, status madmin.GroupStatus) error
    46  
    47  	minioHealMock func(ctx context.Context, bucket, prefix string, healOpts madmin.HealOpts, clientToken string,
    48  		forceStart, forceStop bool) (healStart madmin.HealStartSuccess, healTaskStatus madmin.HealTaskStatus, err error)
    49  
    50  	minioServerHealthInfoMock func(ctx context.Context, deadline time.Duration) (interface{}, string, error)
    51  
    52  	minioListPoliciesMock func() (map[string]*iampolicy.Policy, error)
    53  	minioGetPolicyMock    func(name string) (*iampolicy.Policy, error)
    54  	minioRemovePolicyMock func(name string) error
    55  	minioAddPolicyMock    func(name string, policy *iampolicy.Policy) error
    56  	minioSetPolicyMock    func(policyName, entityName string, isGroup bool) error
    57  
    58  	minioStartProfiling func(profiler madmin.ProfilerType) ([]madmin.StartProfilingResult, error)
    59  	minioStopProfiling  func() (io.ReadCloser, error)
    60  
    61  	minioServiceRestartMock func(ctx context.Context) error
    62  
    63  	getSiteReplicationInfo        func(ctx context.Context) (*madmin.SiteReplicationInfo, error)
    64  	addSiteReplicationInfo        func(ctx context.Context, sites []madmin.PeerSite) (*madmin.ReplicateAddStatus, error)
    65  	editSiteReplicationInfo       func(ctx context.Context, site madmin.PeerInfo) (*madmin.ReplicateEditStatus, error)
    66  	deleteSiteReplicationInfoMock func(ctx context.Context, removeReq madmin.SRRemoveReq) (*madmin.ReplicateRemoveStatus, error)
    67  	getSiteReplicationStatus      func(ctx context.Context, params madmin.SRStatusOptions) (*madmin.SRStatusInfo, error)
    68  
    69  	minioListTiersMock func(ctx context.Context) ([]*madmin.TierConfig, error)
    70  	minioTierStatsMock func(ctx context.Context) ([]madmin.TierInfo, error)
    71  	minioAddTiersMock  func(ctx context.Context, tier *madmin.TierConfig) error
    72  	minioEditTiersMock func(ctx context.Context, tierName string, creds madmin.TierCreds) error
    73  
    74  	minioServiceTraceMock func(ctx context.Context, threshold int64, s3, internal, storage, os, errTrace bool) <-chan madmin.ServiceTraceInfo
    75  
    76  	minioListUsersMock     func() (map[string]madmin.UserInfo, error)
    77  	minioAddUserMock       func(accessKey, secreyKey string) error
    78  	minioRemoveUserMock    func(accessKey string) error
    79  	minioGetUserInfoMock   func(accessKey string) (madmin.UserInfo, error)
    80  	minioSetUserStatusMock func(accessKey string, status madmin.AccountStatus) error
    81  
    82  	minioAccountInfoMock           func(ctx context.Context) (madmin.AccountInfo, error)
    83  	minioAddServiceAccountMock     func(ctx context.Context, policy string, user string, accessKey string, secretKey string, description string, name string, expiry *time.Time, status string) (madmin.Credentials, error)
    84  	minioListServiceAccountsMock   func(ctx context.Context, user string) (madmin.ListServiceAccountsResp, error)
    85  	minioDeleteServiceAccountMock  func(ctx context.Context, serviceAccount string) error
    86  	minioInfoServiceAccountMock    func(ctx context.Context, serviceAccount string) (madmin.InfoServiceAccountResp, error)
    87  	minioUpdateServiceAccountMock  func(ctx context.Context, serviceAccount string, opts madmin.UpdateServiceAccountReq) error
    88  	minioGetLDAPPolicyEntitiesMock func(ctx context.Context, query madmin.PolicyEntitiesQuery) (madmin.PolicyEntitiesResult, error)
    89  
    90  	minioListRemoteBucketsMock func(ctx context.Context, bucket, arnType string) (targets []madmin.BucketTarget, err error)
    91  	minioGetRemoteBucketMock   func(ctx context.Context, bucket, arnType string) (targets *madmin.BucketTarget, err error)
    92  	minioAddRemoteBucketMock   func(ctx context.Context, bucket string, target *madmin.BucketTarget) (string, error)
    93  )
    94  
    95  func (ac AdminClientMock) serverInfo(ctx context.Context) (madmin.InfoMessage, error) {
    96  	return MinioServerInfoMock(ctx)
    97  }
    98  
    99  func (ac AdminClientMock) listRemoteBuckets(ctx context.Context, bucket, arnType string) (targets []madmin.BucketTarget, err error) {
   100  	return minioListRemoteBucketsMock(ctx, bucket, arnType)
   101  }
   102  
   103  func (ac AdminClientMock) getRemoteBucket(ctx context.Context, bucket, arnType string) (targets *madmin.BucketTarget, err error) {
   104  	return minioGetRemoteBucketMock(ctx, bucket, arnType)
   105  }
   106  
   107  func (ac AdminClientMock) removeRemoteBucket(_ context.Context, _, _ string) error {
   108  	return nil
   109  }
   110  
   111  func (ac AdminClientMock) addRemoteBucket(ctx context.Context, bucket string, target *madmin.BucketTarget) (string, error) {
   112  	return minioAddRemoteBucketMock(ctx, bucket, target)
   113  }
   114  
   115  func (ac AdminClientMock) changePassword(ctx context.Context, accessKey, secretKey string) error {
   116  	return minioChangePasswordMock(ctx, accessKey, secretKey)
   117  }
   118  
   119  func (ac AdminClientMock) speedtest(_ context.Context, _ madmin.SpeedtestOpts) (chan madmin.SpeedTestResult, error) {
   120  	return nil, nil
   121  }
   122  
   123  func (ac AdminClientMock) verifyTierStatus(_ context.Context, _ string) error {
   124  	return nil
   125  }
   126  
   127  // mock function helpConfigKV()
   128  func (ac AdminClientMock) helpConfigKV(_ context.Context, subSys, key string, envOnly bool) (madmin.Help, error) {
   129  	return minioHelpConfigKVMock(subSys, key, envOnly)
   130  }
   131  
   132  // mock function getConfigKV()
   133  func (ac AdminClientMock) getConfigKV(_ context.Context, name string) ([]byte, error) {
   134  	return minioGetConfigKVMock(name)
   135  }
   136  
   137  // mock function setConfigKV()
   138  func (ac AdminClientMock) setConfigKV(_ context.Context, kv string) (restart bool, err error) {
   139  	return minioSetConfigKVMock(kv)
   140  }
   141  
   142  // mock function helpConfigKV()
   143  func (ac AdminClientMock) helpConfigKVGlobal(_ context.Context, envOnly bool) (madmin.Help, error) {
   144  	return minioHelpConfigKVGlobalMock(envOnly)
   145  }
   146  
   147  func (ac AdminClientMock) delConfigKV(_ context.Context, name string) (err error) {
   148  	return minioDelConfigKVMock(name)
   149  }
   150  
   151  func (ac AdminClientMock) getLogs(ctx context.Context, node string, lineCnt int, logKind string) <-chan madmin.LogInfo {
   152  	return minioGetLogsMock(ctx, node, lineCnt, logKind)
   153  }
   154  
   155  func (ac AdminClientMock) listGroups(_ context.Context) ([]string, error) {
   156  	return minioListGroupsMock()
   157  }
   158  
   159  func (ac AdminClientMock) updateGroupMembers(_ context.Context, req madmin.GroupAddRemove) error {
   160  	return minioUpdateGroupMembersMock(req)
   161  }
   162  
   163  func (ac AdminClientMock) getGroupDescription(_ context.Context, group string) (*madmin.GroupDesc, error) {
   164  	return minioGetGroupDescriptionMock(group)
   165  }
   166  
   167  func (ac AdminClientMock) setGroupStatus(_ context.Context, group string, status madmin.GroupStatus) error {
   168  	return minioSetGroupStatusMock(group, status)
   169  }
   170  
   171  func (ac AdminClientMock) heal(ctx context.Context, bucket, prefix string, healOpts madmin.HealOpts, clientToken string,
   172  	forceStart, forceStop bool,
   173  ) (healStart madmin.HealStartSuccess, healTaskStatus madmin.HealTaskStatus, err error) {
   174  	return minioHealMock(ctx, bucket, prefix, healOpts, clientToken, forceStart, forceStop)
   175  }
   176  
   177  func (ac AdminClientMock) serverHealthInfo(ctx context.Context, deadline time.Duration) (interface{}, string, error) {
   178  	return minioServerHealthInfoMock(ctx, deadline)
   179  }
   180  
   181  func (ac AdminClientMock) addOrUpdateIDPConfig(_ context.Context, _, _, _ string, _ bool) (restart bool, err error) {
   182  	return true, nil
   183  }
   184  
   185  func (ac AdminClientMock) listIDPConfig(_ context.Context, _ string) ([]madmin.IDPListItem, error) {
   186  	return []madmin.IDPListItem{{Name: "mock"}}, nil
   187  }
   188  
   189  func (ac AdminClientMock) deleteIDPConfig(_ context.Context, _, _ string) (restart bool, err error) {
   190  	return true, nil
   191  }
   192  
   193  func (ac AdminClientMock) getIDPConfig(_ context.Context, _, _ string) (c madmin.IDPConfig, err error) {
   194  	return madmin.IDPConfig{Info: []madmin.IDPCfgInfo{{Key: "mock", Value: "mock"}}}, nil
   195  }
   196  
   197  func (ac AdminClientMock) kmsStatus(_ context.Context) (madmin.KMSStatus, error) {
   198  	return madmin.KMSStatus{Name: "name", DefaultKeyID: "key", Endpoints: map[string]madmin.ItemState{"localhost": madmin.ItemState("online")}}, nil
   199  }
   200  
   201  func (ac AdminClientMock) kmsAPIs(_ context.Context) ([]madmin.KMSAPI, error) {
   202  	return []madmin.KMSAPI{{Method: "GET", Path: "/mock"}}, nil
   203  }
   204  
   205  func (ac AdminClientMock) kmsMetrics(_ context.Context) (*madmin.KMSMetrics, error) {
   206  	return &madmin.KMSMetrics{}, nil
   207  }
   208  
   209  func (ac AdminClientMock) kmsVersion(_ context.Context) (*madmin.KMSVersion, error) {
   210  	return &madmin.KMSVersion{Version: "test-version"}, nil
   211  }
   212  
   213  func (ac AdminClientMock) createKey(_ context.Context, _ string) error {
   214  	return nil
   215  }
   216  
   217  func (ac AdminClientMock) importKey(_ context.Context, _ string, _ []byte) error {
   218  	return nil
   219  }
   220  
   221  func (ac AdminClientMock) listKeys(_ context.Context, _ string) ([]madmin.KMSKeyInfo, error) {
   222  	return []madmin.KMSKeyInfo{{
   223  		Name:      "name",
   224  		CreatedBy: "by",
   225  	}}, nil
   226  }
   227  
   228  func (ac AdminClientMock) keyStatus(_ context.Context, _ string) (*madmin.KMSKeyStatus, error) {
   229  	return &madmin.KMSKeyStatus{KeyID: "key"}, nil
   230  }
   231  
   232  func (ac AdminClientMock) deleteKey(_ context.Context, _ string) error {
   233  	return nil
   234  }
   235  
   236  func (ac AdminClientMock) setKMSPolicy(_ context.Context, _ string, _ []byte) error {
   237  	return nil
   238  }
   239  
   240  func (ac AdminClientMock) assignPolicy(_ context.Context, _ string, _ []byte) error {
   241  	return nil
   242  }
   243  
   244  func (ac AdminClientMock) describePolicy(_ context.Context, _ string) (*madmin.KMSDescribePolicy, error) {
   245  	return &madmin.KMSDescribePolicy{Name: "name"}, nil
   246  }
   247  
   248  func (ac AdminClientMock) getKMSPolicy(_ context.Context, _ string) (*madmin.KMSPolicy, error) {
   249  	return &madmin.KMSPolicy{Allow: []string{""}, Deny: []string{""}}, nil
   250  }
   251  
   252  func (ac AdminClientMock) listKMSPolicies(_ context.Context, _ string) ([]madmin.KMSPolicyInfo, error) {
   253  	return []madmin.KMSPolicyInfo{{
   254  		Name:      "name",
   255  		CreatedBy: "by",
   256  	}}, nil
   257  }
   258  
   259  func (ac AdminClientMock) deletePolicy(_ context.Context, _ string) error {
   260  	return nil
   261  }
   262  
   263  func (ac AdminClientMock) describeIdentity(_ context.Context, _ string) (*madmin.KMSDescribeIdentity, error) {
   264  	return &madmin.KMSDescribeIdentity{}, nil
   265  }
   266  
   267  func (ac AdminClientMock) describeSelfIdentity(_ context.Context) (*madmin.KMSDescribeSelfIdentity, error) {
   268  	return &madmin.KMSDescribeSelfIdentity{
   269  		Policy: &madmin.KMSPolicy{Allow: []string{}, Deny: []string{}},
   270  	}, nil
   271  }
   272  
   273  func (ac AdminClientMock) deleteIdentity(_ context.Context, _ string) error {
   274  	return nil
   275  }
   276  
   277  func (ac AdminClientMock) listIdentities(_ context.Context, _ string) ([]madmin.KMSIdentityInfo, error) {
   278  	return []madmin.KMSIdentityInfo{{Identity: "identity"}}, nil
   279  }
   280  
   281  func (ac AdminClientMock) listPolicies(_ context.Context) (map[string]*iampolicy.Policy, error) {
   282  	return minioListPoliciesMock()
   283  }
   284  
   285  func (ac AdminClientMock) getPolicy(_ context.Context, name string) (*iampolicy.Policy, error) {
   286  	return minioGetPolicyMock(name)
   287  }
   288  
   289  func (ac AdminClientMock) removePolicy(_ context.Context, name string) error {
   290  	return minioRemovePolicyMock(name)
   291  }
   292  
   293  func (ac AdminClientMock) addPolicy(_ context.Context, name string, policy *iampolicy.Policy) error {
   294  	return minioAddPolicyMock(name, policy)
   295  }
   296  
   297  func (ac AdminClientMock) setPolicy(_ context.Context, policyName, entityName string, isGroup bool) error {
   298  	return minioSetPolicyMock(policyName, entityName, isGroup)
   299  }
   300  
   301  // mock function for startProfiling()
   302  func (ac AdminClientMock) startProfiling(_ context.Context, profiler madmin.ProfilerType) ([]madmin.StartProfilingResult, error) {
   303  	return minioStartProfiling(profiler)
   304  }
   305  
   306  // mock function for stopProfiling()
   307  func (ac AdminClientMock) stopProfiling(_ context.Context) (io.ReadCloser, error) {
   308  	return minioStopProfiling()
   309  }
   310  
   311  // mock function of serviceRestart()
   312  func (ac AdminClientMock) serviceRestart(ctx context.Context) error {
   313  	return minioServiceRestartMock(ctx)
   314  }
   315  
   316  func (ac AdminClientMock) getSiteReplicationInfo(ctx context.Context) (*madmin.SiteReplicationInfo, error) {
   317  	return getSiteReplicationInfo(ctx)
   318  }
   319  
   320  func (ac AdminClientMock) addSiteReplicationInfo(ctx context.Context, sites []madmin.PeerSite, _ madmin.SRAddOptions) (*madmin.ReplicateAddStatus, error) {
   321  	return addSiteReplicationInfo(ctx, sites)
   322  }
   323  
   324  func (ac AdminClientMock) editSiteReplicationInfo(ctx context.Context, site madmin.PeerInfo, _ madmin.SREditOptions) (*madmin.ReplicateEditStatus, error) {
   325  	return editSiteReplicationInfo(ctx, site)
   326  }
   327  
   328  func (ac AdminClientMock) deleteSiteReplicationInfo(ctx context.Context, removeReq madmin.SRRemoveReq) (*madmin.ReplicateRemoveStatus, error) {
   329  	return deleteSiteReplicationInfoMock(ctx, removeReq)
   330  }
   331  
   332  func (ac AdminClientMock) getSiteReplicationStatus(ctx context.Context, params madmin.SRStatusOptions) (*madmin.SRStatusInfo, error) {
   333  	return getSiteReplicationStatus(ctx, params)
   334  }
   335  
   336  func (ac AdminClientMock) listTiers(ctx context.Context) ([]*madmin.TierConfig, error) {
   337  	return minioListTiersMock(ctx)
   338  }
   339  
   340  func (ac AdminClientMock) tierStats(ctx context.Context) ([]madmin.TierInfo, error) {
   341  	return minioTierStatsMock(ctx)
   342  }
   343  
   344  func (ac AdminClientMock) addTier(ctx context.Context, tier *madmin.TierConfig) error {
   345  	return minioAddTiersMock(ctx, tier)
   346  }
   347  
   348  func (ac AdminClientMock) editTierCreds(ctx context.Context, tierName string, creds madmin.TierCreds) error {
   349  	return minioEditTiersMock(ctx, tierName, creds)
   350  }
   351  
   352  func (ac AdminClientMock) serviceTrace(ctx context.Context, threshold int64, s3, internal, storage, os, errTrace bool) <-chan madmin.ServiceTraceInfo {
   353  	return minioServiceTraceMock(ctx, threshold, s3, internal, storage, os, errTrace)
   354  }
   355  
   356  func (ac AdminClientMock) listUsers(_ context.Context) (map[string]madmin.UserInfo, error) {
   357  	return minioListUsersMock()
   358  }
   359  
   360  func (ac AdminClientMock) addUser(_ context.Context, accessKey, secretKey string) error {
   361  	return minioAddUserMock(accessKey, secretKey)
   362  }
   363  
   364  func (ac AdminClientMock) removeUser(_ context.Context, accessKey string) error {
   365  	return minioRemoveUserMock(accessKey)
   366  }
   367  
   368  func (ac AdminClientMock) getUserInfo(_ context.Context, accessKey string) (madmin.UserInfo, error) {
   369  	return minioGetUserInfoMock(accessKey)
   370  }
   371  
   372  func (ac AdminClientMock) setUserStatus(_ context.Context, accessKey string, status madmin.AccountStatus) error {
   373  	return minioSetUserStatusMock(accessKey, status)
   374  }
   375  
   376  func (ac AdminClientMock) AccountInfo(ctx context.Context) (madmin.AccountInfo, error) {
   377  	return minioAccountInfoMock(ctx)
   378  }
   379  
   380  func (ac AdminClientMock) addServiceAccount(ctx context.Context, policy string, user string, accessKey string, secretKey string, description string, name string, expiry *time.Time, status string) (madmin.Credentials, error) {
   381  	return minioAddServiceAccountMock(ctx, policy, user, accessKey, secretKey, description, name, expiry, status)
   382  }
   383  
   384  func (ac AdminClientMock) listServiceAccounts(ctx context.Context, user string) (madmin.ListServiceAccountsResp, error) {
   385  	return minioListServiceAccountsMock(ctx, user)
   386  }
   387  
   388  func (ac AdminClientMock) deleteServiceAccount(ctx context.Context, serviceAccount string) error {
   389  	return minioDeleteServiceAccountMock(ctx, serviceAccount)
   390  }
   391  
   392  func (ac AdminClientMock) infoServiceAccount(ctx context.Context, serviceAccount string) (madmin.InfoServiceAccountResp, error) {
   393  	return minioInfoServiceAccountMock(ctx, serviceAccount)
   394  }
   395  
   396  func (ac AdminClientMock) updateServiceAccount(ctx context.Context, serviceAccount string, opts madmin.UpdateServiceAccountReq) error {
   397  	return minioUpdateServiceAccountMock(ctx, serviceAccount, opts)
   398  }
   399  
   400  func (ac AdminClientMock) getLDAPPolicyEntities(ctx context.Context, query madmin.PolicyEntitiesQuery) (madmin.PolicyEntitiesResult, error) {
   401  	return minioGetLDAPPolicyEntitiesMock(ctx, query)
   402  }