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 }