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

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) ===
Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
From 83632e4d1ef69d5ec1fc110d1d48141b23addb4c Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgra...@ubuntu.com>
Date: Fri, 26 Feb 2016 17:40:36 -0500
Subject: [PATCH] Export image last use and cache state
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

Signed-off-by: Stéphane Graber <stgra...@ubuntu.com>
---
 lxd/db_images.go  | 20 +++++++++++++-------
 shared/image.go   |  2 ++
 specs/rest-api.md |  2 ++
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/lxd/db_images.go b/lxd/db_images.go
index 70f58d3..c845b46 100644
--- a/lxd/db_images.go
+++ b/lxd/db_images.go
@@ -38,7 +38,7 @@ func dbImagesGet(db *sql.DB, public bool) ([]string, error) {
 // enforced by a UNIQUE constraint in the schema.
 func dbImageGet(db *sql.DB, fingerprint string, public bool, strictMatching 
bool) (int, *shared.ImageInfo, error) {
        var err error
-       var create, expire, upload *time.Time // These hold the db-returned 
times
+       var create, expire, used, upload *time.Time // These hold the 
db-returned times
 
        // The object we'll actually return
        image := shared.ImageInfo{}
@@ -47,8 +47,8 @@ func dbImageGet(db *sql.DB, fingerprint string, public bool, 
strictMatching bool
 
        // These two humongous things will be filled by the call to 
DbQueryRowScan
        outfmt := []interface{}{&id, &image.Fingerprint, &image.Filename,
-               &image.Size, &image.Public, &arch,
-               &create, &expire, &upload}
+               &image.Size, &image.Cached, &image.Public, &arch,
+               &create, &expire, &used, &upload}
 
        var query string
 
@@ -57,8 +57,8 @@ func dbImageGet(db *sql.DB, fingerprint string, public bool, 
strictMatching bool
                inargs = []interface{}{fingerprint}
                query = `
         SELECT
-            id, fingerprint, filename, size, public, architecture,
-            creation_date, expiry_date, upload_date
+            id, fingerprint, filename, size, cached, public, architecture,
+            creation_date, expiry_date, last_use_date, upload_date
         FROM
             images
         WHERE fingerprint = ?`
@@ -66,8 +66,8 @@ func dbImageGet(db *sql.DB, fingerprint string, public bool, 
strictMatching bool
                inargs = []interface{}{fingerprint + "%"}
                query = `
         SELECT
-            id, fingerprint, filename, size, public, architecture,
-            creation_date, expiry_date, upload_date
+            id, fingerprint, filename, size, cached, public, architecture,
+            creation_date, expiry_date, last_use_date, upload_date
         FROM
             images
         WHERE fingerprint LIKE ?`
@@ -96,6 +96,12 @@ func dbImageGet(db *sql.DB, fingerprint string, public bool, 
strictMatching bool
                image.ExpiryDate = time.Time{}
        }
 
+       if used != nil {
+               image.LastUsedDate = *used
+       } else {
+               image.LastUsedDate = time.Time{}
+       }
+
        image.Architecture, _ = shared.ArchitectureName(arch)
 
        // The upload date is enforced by NOT NULL in the schema, so it can 
never be nil.
diff --git a/shared/image.go b/shared/image.go
index c56c997..c2feaaa 100644
--- a/shared/image.go
+++ b/shared/image.go
@@ -22,6 +22,7 @@ type ImageAlias struct {
 type ImageInfo struct {
        Aliases      []ImageAlias      `json:"aliases"`
        Architecture string            `json:"architecture"`
+       Cached       bool              `json:"cached"`
        Fingerprint  string            `json:"fingerprint"`
        Filename     string            `json:"filename"`
        Properties   map[string]string `json:"properties"`
@@ -29,6 +30,7 @@ type ImageInfo struct {
        Size         int64             `json:"size"`
        CreationDate time.Time         `json:"created_at"`
        ExpiryDate   time.Time         `json:"expires_at"`
+       LastUsedDate time.Time         `json:"last_used_at"`
        UploadDate   time.Time         `json:"uploaded_at"`
 }
 
diff --git a/specs/rest-api.md b/specs/rest-api.md
index 1c82ea7..945115c 100644
--- a/specs/rest-api.md
+++ b/specs/rest-api.md
@@ -1101,6 +1101,7 @@ Output:
             }
         ],
         "architecture": "x86_64",
+        "cached": false,
         "fingerprint": 
"54c8caac1f61901ed86c68f24af5f5d3672bdc62c71d04f06df3a59e95684473",
         "filename": "ubuntu-trusty-14.04-amd64-server-20160201.tar.xz",
         "properties": {
@@ -1113,6 +1114,7 @@ Output:
         "size": 123792592,
         "created_at": "2016-02-01T21:07:41Z",
         "expires_at": "1970-01-01T00:00:00Z",
+        "last_used_at": "1970-01-01T00:00:00Z",
         "uploaded_at": "2016-02-16T00:44:47Z"
     }
 
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to