The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/8204
This e-mail was sent by the LXC bot, direct replies will not reach the author unless they happen to be subscribed to this list. === Description (from pull-request) === Fixes https://github.com/lxc/lxd/issues/8203
From d97041090a02bfd27e21c6fd950cef4eaeaaf45e Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Tue, 1 Dec 2020 14:14:01 +0000 Subject: [PATCH 1/8] lxd/storage/volumes: Replace hardcoded "filesystem" with db.StoragePoolVolumeContentTypeNameFS in storagePoolVolumesTypePost Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage_volumes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/storage_volumes.go b/lxd/storage_volumes.go index 2c95560f3e..dd865ccf2a 100644 --- a/lxd/storage_volumes.go +++ b/lxd/storage_volumes.go @@ -290,7 +290,7 @@ func storagePoolVolumesTypePost(d *Daemon, r *http.Request) response.Response { // Backward compatibility. if req.ContentType == "" { - req.ContentType = "filesystem" + req.ContentType = db.StoragePoolVolumeContentTypeNameFS } _, err = storagePools.VolumeContentTypeNameToContentType(req.ContentType) From c353cb7bf4eba967b9058a9692d485076560eb8f Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Tue, 1 Dec 2020 14:14:24 +0000 Subject: [PATCH 2/8] lxd/storage/volumes: Error quoting in storagePoolVolumesTypePost Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage_volumes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/storage_volumes.go b/lxd/storage_volumes.go index dd865ccf2a..ec83cfd155 100644 --- a/lxd/storage_volumes.go +++ b/lxd/storage_volumes.go @@ -303,7 +303,7 @@ func storagePoolVolumesTypePost(d *Daemon, r *http.Request) response.Response { // We currently only allow to create storage volumes of type storagePoolVolumeTypeCustom. // So check, that nothing else was requested. if req.Type != db.StoragePoolVolumeTypeNameCustom { - return response.BadRequest(fmt.Errorf(`Currently not allowed to create storage volumes of type %q`, req.Type)) + return response.BadRequest(fmt.Errorf("Currently not allowed to create storage volumes of type %q", req.Type)) } poolID, err := d.cluster.GetStoragePoolID(poolName) From e9532a3f3da83473c691a23da833cf9ea8e753a9 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Tue, 1 Dec 2020 14:14:35 +0000 Subject: [PATCH 3/8] lxd/storage/volumes: Fixes misleading comment in storagePoolVolumesPost Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage_volumes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/storage_volumes.go b/lxd/storage_volumes.go index ec83cfd155..9143c1ed34 100644 --- a/lxd/storage_volumes.go +++ b/lxd/storage_volumes.go @@ -385,7 +385,7 @@ func doVolumeCreateOrCopy(d *Daemon, projectName, poolName string, req *api.Stor return operations.OperationResponse(op) } -// /1.0/storage-pools/{name}/volumes/{type} +// /1.0/storage-pools/{name}/volumes // Create a storage volume of a given volume type in a given storage pool. func storagePoolVolumesPost(d *Daemon, r *http.Request) response.Response { resp := forwardedResponseIfTargetIsRemote(d, r) From f0047ce2de38b73355dd53a4272f7beb31361755 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Tue, 1 Dec 2020 14:15:12 +0000 Subject: [PATCH 4/8] lxd/storage/volumes: Set default volume content type to filesystem in storagePoolVolumesPost Fixes #8203 Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage_volumes.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lxd/storage_volumes.go b/lxd/storage_volumes.go index 9143c1ed34..9350a3270c 100644 --- a/lxd/storage_volumes.go +++ b/lxd/storage_volumes.go @@ -422,6 +422,11 @@ func storagePoolVolumesPost(d *Daemon, r *http.Request) response.Response { return response.BadRequest(fmt.Errorf(`Currently not allowed to create storage volumes of type %q`, req.Type)) } + // Backward compatibility. + if req.ContentType == "" { + req.ContentType = db.StoragePoolVolumeContentTypeNameFS + } + projectName, err := project.StorageVolumeProject(d.State().Cluster, projectParam(r), db.StoragePoolVolumeTypeCustom) if err != nil { return response.SmartError(err) From fe4bfde7491f24c5d4f582df07240e58c971c085 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Tue, 1 Dec 2020 14:16:00 +0000 Subject: [PATCH 5/8] lxd/storage/volumes: Error quoting in storagePoolVolumesPost Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage_volumes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/storage_volumes.go b/lxd/storage_volumes.go index 9350a3270c..831f9cebde 100644 --- a/lxd/storage_volumes.go +++ b/lxd/storage_volumes.go @@ -419,7 +419,7 @@ func storagePoolVolumesPost(d *Daemon, r *http.Request) response.Response { // We currently only allow to create storage volumes of type storagePoolVolumeTypeCustom. // So check, that nothing else was requested. if req.Type != db.StoragePoolVolumeTypeNameCustom { - return response.BadRequest(fmt.Errorf(`Currently not allowed to create storage volumes of type %q`, req.Type)) + return response.BadRequest(fmt.Errorf("Currently not allowed to create storage volumes of type %q", req.Type)) } // Backward compatibility. From dce20f9484afb0f5fdd27464fd9869b14654d345 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Tue, 1 Dec 2020 14:18:02 +0000 Subject: [PATCH 6/8] lxd/storage/utils: Align error returned from VolumeContentTypeNameToContentType with similar functions Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage/utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/storage/utils.go b/lxd/storage/utils.go index c070c3375f..cf79c49af1 100644 --- a/lxd/storage/utils.go +++ b/lxd/storage/utils.go @@ -188,7 +188,7 @@ func VolumeContentTypeNameToContentType(contentTypeName string) (int, error) { return db.StoragePoolVolumeContentTypeBlock, nil } - return -1, fmt.Errorf("Invalid storage volume content type name: %s", contentTypeName) + return -1, fmt.Errorf("Invalid volume content type name") } // VolumeDBCreate creates a volume in the database. From bb31b61e3e2c4926fb8183fa860517f1d01501d2 Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Tue, 1 Dec 2020 14:20:03 +0000 Subject: [PATCH 7/8] lxd/storage/volumes: Removes stuttering in errors in storagePoolVolumesTypePost Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/storage_volumes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/storage_volumes.go b/lxd/storage_volumes.go index 831f9cebde..2b8230d334 100644 --- a/lxd/storage_volumes.go +++ b/lxd/storage_volumes.go @@ -295,7 +295,7 @@ func storagePoolVolumesTypePost(d *Daemon, r *http.Request) response.Response { _, err = storagePools.VolumeContentTypeNameToContentType(req.ContentType) if err != nil { - return response.BadRequest(fmt.Errorf("Invalid content type %q", req.ContentType)) + return response.BadRequest(err) } req.Type = mux.Vars(r)["type"] From 1a3676f5e7feb197376c60b5646d70e2bb26ffce Mon Sep 17 00:00:00 2001 From: Thomas Parrott <thomas.parr...@canonical.com> Date: Tue, 1 Dec 2020 14:21:54 +0000 Subject: [PATCH 8/8] lxd/networks: Use SmartError for response when loading networks Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com> --- lxd/networks.go | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/lxd/networks.go b/lxd/networks.go index ea12c70c4e..329b5900ce 100644 --- a/lxd/networks.go +++ b/lxd/networks.go @@ -605,7 +605,7 @@ func networkDelete(d *Daemon, r *http.Request) response.Response { // Get the existing network. n, err := network.LoadByName(state, projectName, name) if err != nil { - return response.NotFound(err) + return response.SmartError(err) } clientType := cluster.UserAgentClientType(r.Header.Get("User-Agent")) @@ -666,11 +666,7 @@ func networkPost(d *Daemon, r *http.Request) response.Response { // Get the existing network. n, err := network.LoadByName(state, projectName, name) if err != nil { - if err == db.ErrNoSuchObject { - return response.NotFound(fmt.Errorf("Network not found")) - } - - return response.InternalError(errors.Wrapf(err, "Failed loading network")) + return response.SmartError(err) } if n.Status() != api.NetworkStatusCreated { @@ -733,7 +729,7 @@ func networkPut(d *Daemon, r *http.Request) response.Response { // Get the existing network. n, err := network.LoadByName(d.State(), projectName, name) if err != nil { - return response.NotFound(err) + return response.SmartError(err) } targetNode := queryParam(r, "target")
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel