The following pull request was submitted through Github.
It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/2012

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) ===

From 434c76566a8ee175380ccbdfb7374e4cd04c7f80 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Tue, 10 May 2016 18:21:57 -0400
Subject: [PATCH 1/3] Properly record the source of all image copies
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Closes #2010

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 client.go | 32 +++++++++++++++-----------------
 1 file changed, 15 insertions(+), 17 deletions(-)

diff --git a/client.go b/client.go
index 6338017..d1f07ea 100644
--- a/client.go
+++ b/client.go
@@ -580,27 +580,25 @@ func (c *Client) CopyImage(image string, dest *Client, 
copy_aliases bool, aliase
                return err
        }
 
-       if c.Remote.Protocol != "simplestreams" {
-               if !info.Public {
-                       var secret string
+       if c.Remote.Protocol != "simplestreams" && !info.Public {
+               var secret string
 
-                       resp, err := c.post("images/"+image+"/secret", nil, 
Async)
-                       if err != nil {
-                               return err
-                       }
-
-                       op, err := resp.MetadataAsOperation()
-                       if err != nil {
-                               return err
-                       }
+               resp, err := c.post("images/"+image+"/secret", nil, Async)
+               if err != nil {
+                       return err
+               }
 
-                       secret, err = op.Metadata.GetString("secret")
-                       if err != nil {
-                               return err
-                       }
+               op, err := resp.MetadataAsOperation()
+               if err != nil {
+                       return err
+               }
 
-                       source["secret"] = secret
+               secret, err = op.Metadata.GetString("secret")
+               if err != nil {
+                       return err
                }
+
+               source["secret"] = secret
                source["fingerprint"] = image
        }
 

From 19f39710c4ab67051d622f95baa87bfac7c63e4a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Tue, 10 May 2016 18:51:27 -0400
Subject: [PATCH 2/3] Don't mark containers as ERROR while being created
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Closes #1988

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 lxd/storage.go | 11 ++++++++---
 1 file changed, 8 insertions(+), 3 deletions(-)

diff --git a/lxd/storage.go b/lxd/storage.go
index 68f30be..a17b205 100644
--- a/lxd/storage.go
+++ b/lxd/storage.go
@@ -234,6 +234,9 @@ func newStorageWithConfig(d *Daemon, sType storageType, 
config map[string]interf
 }
 
 func storageForFilename(d *Daemon, filename string) (storage, error) {
+       var filesystem string
+       var err error
+
        config := make(map[string]interface{})
        storageType := storageTypeDir
 
@@ -241,9 +244,11 @@ func storageForFilename(d *Daemon, filename string) 
(storage, error) {
                return newStorageWithConfig(d, storageTypeMock, config)
        }
 
-       filesystem, err := filesystemDetect(filename)
-       if err != nil {
-               return nil, fmt.Errorf("couldn't detect filesystem for '%s': 
%v", filename, err)
+       if shared.PathExists(filename) {
+               filesystem, err = filesystemDetect(filename)
+               if err != nil {
+                       return nil, fmt.Errorf("couldn't detect filesystem for 
'%s': %v", filename, err)
+               }
        }
 
        if shared.PathExists(filename + ".lv") {

From fa5861c5deb3dfc5ef3c899ba85d4ef35cae3b25 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Tue, 10 May 2016 19:07:33 -0400
Subject: [PATCH 3/3] Cleanup events sent for operations
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This fixes the following two issues:
 - No-change events being emitted on websocket connects
 - Out of order events on operation completion

Closes #1992

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 lxd/operations.go | 8 ++------
 1 file changed, 2 insertions(+), 6 deletions(-)

diff --git a/lxd/operations.go b/lxd/operations.go
index 63e9ea9..b50d3c7 100644
--- a/lxd/operations.go
+++ b/lxd/operations.go
@@ -129,9 +129,11 @@ func (op *operation) Run() (chan error, error) {
                        op.done()
                        chanRun <- nil
 
+                       op.lock.Lock()
                        shared.Debugf("Success for %s operation: %s", 
op.class.String(), op.id)
                        _, md, _ := op.Render()
                        eventSend("operation", md)
+                       op.lock.Unlock()
                }(op, chanRun)
        }
        op.lock.Unlock()
@@ -224,22 +226,16 @@ func (op *operation) Connect(r *http.Request, w 
http.ResponseWriter) (chan error
                        chanConnect <- err
 
                        shared.Debugf("Failed to handle %s operation: %s: %s", 
op.class.String(), op.id, err)
-                       _, md, _ := op.Render()
-                       eventSend("operation", md)
                        return
                }
 
                chanConnect <- nil
 
                shared.Debugf("Handled %s operation: %s", op.class.String(), 
op.id)
-               _, md, _ := op.Render()
-               eventSend("operation", md)
        }(op, chanConnect)
        op.lock.Unlock()
 
        shared.Debugf("Connected %s operation: %s", op.class.String(), op.id)
-       _, md, _ := op.Render()
-       eventSend("operation", md)
 
        return chanConnect, nil
 }
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to