[lxc-devel] [lxd/master] #6220 Allow modification of image expiration field

keyallis on Github lxc-bot at linuxcontainers.org
Mon Sep 30 22:03:40 UTC 2019


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/20190930/953762eb/attachment.bin>
-------------- next part --------------
From a6847910e9a9d973a91d52761feb990431284ef1 Mon Sep 17 00:00:00 2001
From: Louise Montalvo <louanmontalvo at gmail.com>
Date: Mon, 30 Sep 2019 16:39:28 -0500
Subject: [PATCH 1/3] api: Add images_expiry API extension

Signed-off-by: Louise Montalvo <louanmontalvo at gmail.com>
---
 doc/api-extensions.md | 3 +++
 shared/version/api.go | 1 +
 2 files changed, 4 insertions(+)

diff --git a/doc/api-extensions.md b/doc/api-extensions.md
index 5708222afe..8016a5a5ea 100644
--- a/doc/api-extensions.md
+++ b/doc/api-extensions.md
@@ -838,3 +838,6 @@ Extends the disk resource API struct to include:
  - Block size
  - Firmware version
  - Serial number
+
+## images\_expiry
+This allows for editing of the expiry date on images.
diff --git a/shared/version/api.go b/shared/version/api.go
index d6d182821d..7d457eda6d 100644
--- a/shared/version/api.go
+++ b/shared/version/api.go
@@ -167,6 +167,7 @@ var APIExtensions = []string{
 	"instances",
 	"image_types",
 	"resources_disk_sata",
+	"images_expiry",
 }
 
 // APIExtensionsCount returns the number of available API extensions.

From 6193a7621e68e6ead8846ccc6f5ccd2df7c79d91 Mon Sep 17 00:00:00 2001
From: Oscar Ward <oscarward95 at gmail.com>
Date: Mon, 30 Sep 2019 16:54:06 -0500
Subject: [PATCH 2/3] shared/api: Make image ExpiryDate modifiable

Signed-off-by: Oscar Ward <oscarward95 at gmail.com>
---
 shared/api/image.go | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/shared/api/image.go b/shared/api/image.go
index eb0dac527b..9210a338a4 100644
--- a/shared/api/image.go
+++ b/shared/api/image.go
@@ -41,6 +41,7 @@ type ImagePut struct {
 	AutoUpdate bool              `json:"auto_update" yaml:"auto_update"`
 	Properties map[string]string `json:"properties" yaml:"properties"`
 	Public     bool              `json:"public" yaml:"public"`
+	ExpiresAt  time.Time         `json:"expires_at" yaml:"expires_at"`
 }
 
 // Image represents a LXD image
@@ -59,7 +60,6 @@ type Image struct {
 	Type string `json:"type" yaml:"type"`
 
 	CreatedAt  time.Time `json:"created_at" yaml:"created_at"`
-	ExpiresAt  time.Time `json:"expires_at" yaml:"expires_at"`
 	LastUsedAt time.Time `json:"last_used_at" yaml:"last_used_at"`
 	UploadedAt time.Time `json:"uploaded_at" yaml:"uploaded_at"`
 }

From 89dc10057ccb0897e4da69db3e5d4a884e8da7b7 Mon Sep 17 00:00:00 2001
From: Louise Montalvo <louanmontalvo at gmail.com>
Date: Mon, 30 Sep 2019 17:01:35 -0500
Subject: [PATCH 3/3] lxd: Make image ExpiryDate modifiable

Signed-off-by: Louise Montalvo <louanmontalvo at gmail.com>
---
 lxd/images.go | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/lxd/images.go b/lxd/images.go
index 6b29a5216b..cf728bbe89 100644
--- a/lxd/images.go
+++ b/lxd/images.go
@@ -1571,6 +1571,11 @@ func imagePut(d *Daemon, r *http.Request) response.Response {
 		return response.BadRequest(err)
 	}
 
+	// Get ExpiresAt
+	if !req.ExpiresAt.IsZero() {
+		info.ExpiresAt = req.ExpiresAt
+	}
+
 	err = d.cluster.ImageUpdate(id, info.Filename, info.Size, req.Public, req.AutoUpdate, info.Architecture, info.CreatedAt, info.ExpiresAt, req.Properties)
 	if err != nil {
 		return response.SmartError(err)


More information about the lxc-devel mailing list