[lxc-devel] [lxd/master] Fix masked errors
stgraber on Github
lxc-bot at linuxcontainers.org
Mon Aug 27 00:12:15 UTC 2018
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 301 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20180827/9cc1b49e/attachment.bin>
-------------- next part --------------
From e4b1a8f8156090fe1d554410f630b0e34d54cb9c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Sun, 26 Aug 2018 19:38:50 -0400
Subject: [PATCH 1/2] tests: Avoid err == nil pattern
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
test/deps/devlxd-client.go | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/test/deps/devlxd-client.go b/test/deps/devlxd-client.go
index 49ad9382c6..2cf6e71784 100644
--- a/test/deps/devlxd-client.go
+++ b/test/deps/devlxd-client.go
@@ -82,10 +82,11 @@ func main() {
if raw.StatusCode != http.StatusOK {
fmt.Println("http error", raw.StatusCode)
result, err := ioutil.ReadAll(raw.Body)
- if err == nil {
- fmt.Println(string(result))
+ if err != nil {
+ os.Exit(1)
}
- os.Exit(1)
+
+ fmt.Println(string(result))
}
result := []string{}
From 9d52f385ac765a24f3f94bfb9912d539d2633059 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber at ubuntu.com>
Date: Sun, 26 Aug 2018 20:10:28 -0400
Subject: [PATCH 2/2] lxd: Don't mask database errors
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Closes #4976
Signed-off-by: Stéphane Graber <stgraber at ubuntu.com>
---
lxd/api_cluster.go | 6 +++++-
lxd/db/images.go | 1 -
lxd/images.go | 18 +++++++++++++++---
lxd/storage_volumes.go | 8 +++++---
4 files changed, 25 insertions(+), 8 deletions(-)
diff --git a/lxd/api_cluster.go b/lxd/api_cluster.go
index 1c5da1b6af..785100ea4a 100644
--- a/lxd/api_cluster.go
+++ b/lxd/api_cluster.go
@@ -356,7 +356,11 @@ func clusterPutJoin(d *Daemon, req api.ClusterPut) Response {
// Remove the our old server certificate from the trust store,
// since it's not needed anymore.
_, err = d.cluster.CertificateGet(fingerprint)
- if err == nil {
+ if err != db.ErrNoSuchObject {
+ if err != nil {
+ return err
+ }
+
err := d.cluster.CertDelete(fingerprint)
if err != nil {
return errors.Wrap(err, "failed to delete joining node's certificate")
diff --git a/lxd/db/images.go b/lxd/db/images.go
index 17c066cc7f..e020f453ff 100644
--- a/lxd/db/images.go
+++ b/lxd/db/images.go
@@ -548,7 +548,6 @@ func (c *Cluster) ImageInsert(fp string, fname string, sz int64, public bool, au
}
err = c.Transaction(func(tx *ClusterTx) error {
-
publicInt := 0
if public {
publicInt = 1
diff --git a/lxd/images.go b/lxd/images.go
index 3b715382d6..6ca4457145 100644
--- a/lxd/images.go
+++ b/lxd/images.go
@@ -246,7 +246,11 @@ func imgPostContInfo(d *Daemon, r *http.Request, req api.ImagesPost, builddir st
info.Fingerprint = fmt.Sprintf("%x", sha256.Sum(nil))
_, _, err = d.cluster.ImageGet(info.Fingerprint, false, true)
- if err == nil {
+ if err != db.ErrNoSuchObject {
+ if err != nil {
+ return nil, err
+ }
+
return nil, fmt.Errorf("The image already exists: %s", info.Fingerprint)
}
@@ -709,7 +713,11 @@ func imagesPost(d *Daemon, r *http.Request) Response {
// Apply any provided alias
for _, alias := range req.Aliases {
_, _, err := d.cluster.ImageAliasGet(alias.Name, true)
- if err == nil {
+ if err != db.ErrNoSuchObject {
+ if err != nil {
+ return err
+ }
+
return fmt.Errorf("Alias already exists: %s", alias.Name)
}
@@ -1462,7 +1470,11 @@ func aliasesPost(d *Daemon, r *http.Request) Response {
// This is just to see if the alias name already exists.
_, _, err := d.cluster.ImageAliasGet(req.Name, true)
- if err == nil {
+ if err != db.ErrNoSuchObject {
+ if err != nil {
+ return InternalError(err)
+ }
+
return Conflict(fmt.Errorf("Alias '%s' already exists", req.Name))
}
diff --git a/lxd/storage_volumes.go b/lxd/storage_volumes.go
index 9ee0392fde..c08fdaa8c6 100644
--- a/lxd/storage_volumes.go
+++ b/lxd/storage_volumes.go
@@ -485,10 +485,12 @@ func storagePoolVolumeTypePost(d *Daemon, r *http.Request) Response {
// Check that the name isn't already in use.
_, err = d.cluster.StoragePoolNodeVolumeGetTypeID(req.Name,
storagePoolVolumeTypeCustom, poolID)
- if err == nil {
+ if err != db.ErrNoSuchObject {
+ if err != nil {
+ return InternalError(err)
+ }
+
return Conflict(fmt.Errorf("Name '%s' already in use", req.Name))
- } else if err != nil && err != db.ErrNoSuchObject {
- return Conflict(err)
}
doWork := func() error {
More information about the lxc-devel
mailing list