github.com/sacloud/iaas-api-go@v1.12.0/fake/ops_container_registry.go (about) 1 // Copyright 2022-2023 The sacloud/iaas-api-go Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package fake 16 17 import ( 18 "context" 19 20 "github.com/sacloud/iaas-api-go" 21 "github.com/sacloud/iaas-api-go/types" 22 ) 23 24 // Find is fake implementation 25 func (o *ContainerRegistryOp) Find(ctx context.Context, conditions *iaas.FindCondition) (*iaas.ContainerRegistryFindResult, error) { 26 results, _ := find(o.key, iaas.APIDefaultZone, conditions) 27 var values []*iaas.ContainerRegistry 28 for _, res := range results { 29 dest := &iaas.ContainerRegistry{} 30 copySameNameField(res, dest) 31 values = append(values, dest) 32 } 33 return &iaas.ContainerRegistryFindResult{ 34 Total: len(results), 35 Count: len(results), 36 From: 0, 37 ContainerRegistries: values, 38 }, nil 39 } 40 41 // Create is fake implementation 42 func (o *ContainerRegistryOp) Create(ctx context.Context, param *iaas.ContainerRegistryCreateRequest) (*iaas.ContainerRegistry, error) { 43 result := &iaas.ContainerRegistry{} 44 copySameNameField(param, result) 45 fill(result, fillID, fillCreatedAt) 46 47 result.FQDN = result.SubDomainLabel + ".sakuracr.jp" 48 result.Availability = types.Availabilities.Available 49 putContainerRegistry(iaas.APIDefaultZone, result) 50 return result, nil 51 } 52 53 // Read is fake implementation 54 func (o *ContainerRegistryOp) Read(ctx context.Context, id types.ID) (*iaas.ContainerRegistry, error) { 55 value := getContainerRegistryByID(iaas.APIDefaultZone, id) 56 if value == nil { 57 return nil, newErrorNotFound(o.key, id) 58 } 59 dest := &iaas.ContainerRegistry{} 60 copySameNameField(value, dest) 61 return dest, nil 62 } 63 64 // Update is fake implementation 65 func (o *ContainerRegistryOp) Update(ctx context.Context, id types.ID, param *iaas.ContainerRegistryUpdateRequest) (*iaas.ContainerRegistry, error) { 66 value, err := o.Read(ctx, id) 67 if err != nil { 68 return nil, err 69 } 70 copySameNameField(param, value) 71 fill(value, fillModifiedAt) 72 putContainerRegistry(iaas.APIDefaultZone, value) 73 return value, nil 74 } 75 76 // UpdateSettings is fake implementation 77 func (o *ContainerRegistryOp) UpdateSettings(ctx context.Context, id types.ID, param *iaas.ContainerRegistryUpdateSettingsRequest) (*iaas.ContainerRegistry, error) { 78 value, err := o.Read(ctx, id) 79 if err != nil { 80 return nil, err 81 } 82 copySameNameField(param, value) 83 fill(value, fillModifiedAt) 84 putContainerRegistry(iaas.APIDefaultZone, value) 85 return value, nil 86 } 87 88 // Delete is fake implementation 89 func (o *ContainerRegistryOp) Delete(ctx context.Context, id types.ID) error { 90 _, err := o.Read(ctx, id) 91 if err != nil { 92 return err 93 } 94 ds().Delete(o.key, iaas.APIDefaultZone, id) 95 return nil 96 } 97 98 // ListUsers is fake implementation 99 func (o *ContainerRegistryOp) ListUsers(ctx context.Context, id types.ID) (*iaas.ContainerRegistryUsers, error) { 100 _, err := o.Read(ctx, id) 101 if err != nil { 102 return nil, err 103 } 104 105 v := ds().Get(ResourceContainerRegistry+"Users", iaas.APIDefaultZone, id) 106 if v != nil { 107 users := v.([]*iaas.ContainerRegistryUser) 108 return &iaas.ContainerRegistryUsers{ 109 Users: users, 110 }, nil 111 } 112 113 return nil, err 114 } 115 116 // AddUser is fake implementation 117 func (o *ContainerRegistryOp) AddUser(ctx context.Context, id types.ID, param *iaas.ContainerRegistryUserCreateRequest) error { 118 _, err := o.Read(ctx, id) 119 if err != nil { 120 return err 121 } 122 123 var users []*iaas.ContainerRegistryUser 124 v := ds().Get(ResourceContainerRegistry+"Users", iaas.APIDefaultZone, id) 125 if v != nil { 126 users = v.([]*iaas.ContainerRegistryUser) 127 } 128 users = append(users, &iaas.ContainerRegistryUser{ 129 UserName: param.UserName, 130 Permission: param.Permission, 131 }) 132 133 ds().Put(ResourceContainerRegistry+"Users", iaas.APIDefaultZone, id, users) 134 return nil 135 } 136 137 // UpdateUser is fake implementation 138 func (o *ContainerRegistryOp) UpdateUser(ctx context.Context, id types.ID, username string, param *iaas.ContainerRegistryUserUpdateRequest) error { 139 _, err := o.Read(ctx, id) 140 if err != nil { 141 return err 142 } 143 144 v := ds().Get(ResourceContainerRegistry+"Users", iaas.APIDefaultZone, id) 145 if v == nil { 146 return newErrorNotFound(ResourceContainerRegistry+"Users", id) 147 } 148 users := v.([]*iaas.ContainerRegistryUser) 149 for _, u := range users { 150 if u.UserName == username { 151 u.Permission = param.Permission 152 } 153 } 154 ds().Put(ResourceContainerRegistry+"Users", iaas.APIDefaultZone, id, users) 155 return nil 156 } 157 158 // DeleteUser is fake implementation 159 func (o *ContainerRegistryOp) DeleteUser(ctx context.Context, id types.ID, username string) error { 160 _, err := o.Read(ctx, id) 161 if err != nil { 162 return err 163 } 164 165 v := ds().Get(ResourceContainerRegistry+"Users", iaas.APIDefaultZone, id) 166 if v == nil { 167 return newErrorNotFound(ResourceContainerRegistry+"Users", id) 168 } 169 users := v.([]*iaas.ContainerRegistryUser) 170 var newUsers []*iaas.ContainerRegistryUser 171 for _, u := range users { 172 if u.UserName != username { 173 newUsers = append(newUsers, u) 174 } 175 } 176 177 ds().Put(ResourceContainerRegistry+"Users", iaas.APIDefaultZone, id, newUsers) 178 return nil 179 }