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

Reply via email to