@@ -227,8 +227,22 @@ func InitiateUploadBlob(ctx *context.Context) {
227
227
return
228
228
}
229
229
230
- if _ , err := saveAsPackageBlob (buf , & packages_service.PackageInfo {Owner : ctx .Package .Owner , Name : image }); err != nil {
231
- apiError (ctx , http .StatusInternalServerError , err )
230
+ if _ , err := saveAsPackageBlob (
231
+ buf ,
232
+ & packages_service.PackageCreationInfo {
233
+ PackageInfo : packages_service.PackageInfo {
234
+ Owner : ctx .Package .Owner ,
235
+ Name : image ,
236
+ },
237
+ Creator : ctx .Doer ,
238
+ },
239
+ ); err != nil {
240
+ switch err {
241
+ case packages_service .ErrQuotaTotalCount , packages_service .ErrQuotaTypeSize , packages_service .ErrQuotaTotalSize :
242
+ apiError (ctx , http .StatusForbidden , err )
243
+ default :
244
+ apiError (ctx , http .StatusInternalServerError , err )
245
+ }
232
246
return
233
247
}
234
248
@@ -358,8 +372,22 @@ func EndUploadBlob(ctx *context.Context) {
358
372
return
359
373
}
360
374
361
- if _ , err := saveAsPackageBlob (uploader , & packages_service.PackageInfo {Owner : ctx .Package .Owner , Name : image }); err != nil {
362
- apiError (ctx , http .StatusInternalServerError , err )
375
+ if _ , err := saveAsPackageBlob (
376
+ uploader ,
377
+ & packages_service.PackageCreationInfo {
378
+ PackageInfo : packages_service.PackageInfo {
379
+ Owner : ctx .Package .Owner ,
380
+ Name : image ,
381
+ },
382
+ Creator : ctx .Doer ,
383
+ },
384
+ ); err != nil {
385
+ switch err {
386
+ case packages_service .ErrQuotaTotalCount , packages_service .ErrQuotaTypeSize , packages_service .ErrQuotaTotalSize :
387
+ apiError (ctx , http .StatusForbidden , err )
388
+ default :
389
+ apiError (ctx , http .StatusInternalServerError , err )
390
+ }
363
391
return
364
392
}
365
393
@@ -526,7 +554,12 @@ func UploadManifest(ctx *context.Context) {
526
554
} else if errors .Is (err , container_model .ErrContainerBlobNotExist ) {
527
555
apiErrorDefined (ctx , errBlobUnknown )
528
556
} else {
529
- apiError (ctx , http .StatusInternalServerError , err )
557
+ switch err {
558
+ case packages_service .ErrQuotaTotalCount , packages_service .ErrQuotaTypeSize , packages_service .ErrQuotaTotalSize :
559
+ apiError (ctx , http .StatusForbidden , err )
560
+ default :
561
+ apiError (ctx , http .StatusInternalServerError , err )
562
+ }
530
563
}
531
564
return
532
565
}
0 commit comments