The following pull request was submitted through Github. It can be accessed and reviewed at: https://github.com/lxc/lxd/pull/5242
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) === Backup expiry can be disabled by setting `"expiry" = "0"`. A simple empty string would not suffice since we cannot always differentiate between an empty string and an omitted `expiry` field. This also removes the hard-coded expiry in `lxc export` which is the same as the default expiry.
From 35b1683996fe97dc33742bfebb7f24c826a6941a Mon Sep 17 00:00:00 2001 From: Thomas Hipp <thomas.h...@canonical.com> Date: Mon, 5 Nov 2018 04:31:05 +0100 Subject: [PATCH 1/2] lxc/export: Don't set expiry Signed-off-by: Thomas Hipp <thomas.h...@canonical.com> --- lxc/export.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/lxc/export.go b/lxc/export.go index fdb43c82dc..0b76e1517d 100644 --- a/lxc/export.go +++ b/lxc/export.go @@ -4,7 +4,6 @@ import ( "io" "os" "strings" - "time" "github.com/pkg/errors" "github.com/spf13/cobra" @@ -65,7 +64,6 @@ func (c *cmdExport) Run(cmd *cobra.Command, args []string) error { req := api.ContainerBackupsPost{ Name: "", - ExpiryDate: time.Now().Add(30 * time.Minute), ContainerOnly: c.flagContainerOnly, OptimizedStorage: c.flagOptimizedStorage, } From 94e732e488d4494d754a2af5109f9a2d8a0fa5a3 Mon Sep 17 00:00:00 2001 From: Thomas Hipp <thomas.h...@canonical.com> Date: Mon, 5 Nov 2018 04:34:15 +0100 Subject: [PATCH 2/2] backup: Allow backups to not expire Backup expiry can be disabled by setting `"expiry" = "0"`. A simple empty string would not suffice since we cannot always differentiate between an empty string and an omitted `expiry` field. Signed-off-by: Thomas Hipp <thomas.h...@canonical.com> --- lxd/container_backup.go | 15 +++++++++++++-- shared/api/container_backup.go | 8 ++++---- 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/lxd/container_backup.go b/lxd/container_backup.go index 345ff49789..03082786cf 100644 --- a/lxd/container_backup.go +++ b/lxd/container_backup.go @@ -82,7 +82,8 @@ func containerBackupsPost(d *Daemon, r *http.Request) Response { } req := api.ContainerBackupsPost{ - ExpiryDate: time.Now().Add(30 * time.Minute), // default expiry time of 30 minutes + // default expiry time of 30 minutes + ExpiryDate: time.Now().Add(30 * time.Minute).Format(time.RFC3339), } err = json.NewDecoder(r.Body).Decode(&req) if err != nil { @@ -127,12 +128,22 @@ func containerBackupsPost(d *Daemon, r *http.Request) Response { fullName := name + shared.SnapshotDelimiter + req.Name + if req.ExpiryDate == "0" { + // Set zero time if backup is not to expiry + req.ExpiryDate = time.Date(1, time.January, 1, 0, 0, 0, 0, time.Local).Format(time.RFC3339) + } + + expiry, err := time.Parse(time.RFC3339, req.ExpiryDate) + if err != nil { + return BadRequest(err) + } + backup := func(op *operation) error { args := db.ContainerBackupArgs{ Name: fullName, ContainerID: c.Id(), CreationDate: time.Now(), - ExpiryDate: req.ExpiryDate, + ExpiryDate: expiry, ContainerOnly: req.ContainerOnly, OptimizedStorage: req.OptimizedStorage, } diff --git a/shared/api/container_backup.go b/shared/api/container_backup.go index 15b3b5234d..067b3d230f 100644 --- a/shared/api/container_backup.go +++ b/shared/api/container_backup.go @@ -5,10 +5,10 @@ import "time" // ContainerBackupsPost represents the fields available for a new LXD container backup // API extension: container_backup type ContainerBackupsPost struct { - Name string `json:"name" yaml:"name"` - ExpiryDate time.Time `json:"expiry" yaml:"expiry"` - ContainerOnly bool `json:"container_only" yaml:"container_only"` - OptimizedStorage bool `json:"optimized_storage" yaml:"optimized_storage"` + Name string `json:"name" yaml:"name"` + ExpiryDate string `json:"expiry" yaml:"expiry"` + ContainerOnly bool `json:"container_only" yaml:"container_only"` + OptimizedStorage bool `json:"optimized_storage" yaml:"optimized_storage"` } // ContainerBackup represents a LXD container backup
_______________________________________________ lxc-devel mailing list lxc-devel@lists.linuxcontainers.org http://lists.linuxcontainers.org/listinfo/lxc-devel