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

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) ===
Was previously hard coded to default, but custom volumes can support projects now.
From d520357207a0bb535f78212b25372aaf6478c9c5 Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parr...@canonical.com>
Date: Thu, 22 Oct 2020 09:15:04 +0100
Subject: [PATCH 1/4] lxd/cluster/connect: Renames project arg to projectName
 in ConnectIfInstanceIsRemote

Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com>
---
 lxd/cluster/connect.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lxd/cluster/connect.go b/lxd/cluster/connect.go
index 7ed1dd0773..a180d796f8 100644
--- a/lxd/cluster/connect.go
+++ b/lxd/cluster/connect.go
@@ -97,11 +97,11 @@ func Connect(address string, cert *shared.CertInfo, notify 
bool) (lxd.InstanceSe
 // running the container with the given name. If it's not the local node will
 // connect to it and return the connected client, otherwise it will just return
 // nil.
-func ConnectIfInstanceIsRemote(cluster *db.Cluster, project, name string, cert 
*shared.CertInfo, instanceType instancetype.Type) (lxd.InstanceServer, error) {
+func ConnectIfInstanceIsRemote(cluster *db.Cluster, projectName string, name 
string, cert *shared.CertInfo, instanceType instancetype.Type) 
(lxd.InstanceServer, error) {
        var address string // Node address
        err := cluster.Transaction(func(tx *db.ClusterTx) error {
                var err error
-               address, err = tx.GetNodeAddressOfInstance(project, name, 
instanceType)
+               address, err = tx.GetNodeAddressOfInstance(projectName, name, 
instanceType)
                return err
        })
        if err != nil {

From a5a1f424b9cdba09d91fd86532cdde51d896b253 Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parr...@canonical.com>
Date: Thu, 22 Oct 2020 09:15:21 +0100
Subject: [PATCH 2/4] lxd/cluster/connect: Adds projectName arg to
 ConnectIfVolumeIsRemote

Rather than being hardcoded to "default" project.

Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com>
---
 lxd/cluster/connect.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lxd/cluster/connect.go b/lxd/cluster/connect.go
index a180d796f8..1d93cef6bf 100644
--- a/lxd/cluster/connect.go
+++ b/lxd/cluster/connect.go
@@ -121,11 +121,11 @@ func ConnectIfInstanceIsRemote(cluster *db.Cluster, 
projectName string, name str
 //
 // If there is more than one node with a matching volume name, an error is
 // returned.
-func ConnectIfVolumeIsRemote(cluster *db.Cluster, poolID int64, volumeName 
string, volumeType int, cert *shared.CertInfo) (lxd.InstanceServer, error) {
+func ConnectIfVolumeIsRemote(cluster *db.Cluster, poolID int64, projectName 
string, volumeName string, volumeType int, cert *shared.CertInfo) 
(lxd.InstanceServer, error) {
        var addresses []string // Node addresses
        err := cluster.Transaction(func(tx *db.ClusterTx) error {
                var err error
-               addresses, err = tx.GetStorageVolumeNodeAddresses(poolID, 
"default", volumeName, volumeType)
+               addresses, err = tx.GetStorageVolumeNodeAddresses(poolID, 
projectName, volumeName, volumeType)
                return err
        })
        if err != nil {

From 845d371084edd548435fb26bc8cfa293b8b06705 Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parr...@canonical.com>
Date: Thu, 22 Oct 2020 09:15:54 +0100
Subject: [PATCH 3/4] lxd/response: Adds projectName argument to
 forwardedResponseIfVolumeIsRemote

Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com>
---
 lxd/response.go | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/lxd/response.go b/lxd/response.go
index 01c3c9c605..77557643cb 100644
--- a/lxd/response.go
+++ b/lxd/response.go
@@ -59,13 +59,13 @@ func forwardedResponseIfInstanceIsRemote(d *Daemon, r 
*http.Request, project, na
 //
 // This is used when no targetNode is specified, and saves users some typing
 // when the volume name/type is unique to a node.
-func forwardedResponseIfVolumeIsRemote(d *Daemon, r *http.Request, poolID 
int64, volumeName string, volumeType int) response.Response {
+func forwardedResponseIfVolumeIsRemote(d *Daemon, r *http.Request, poolID 
int64, projectName string, volumeName string, volumeType int) response.Response 
{
        if queryParam(r, "target") != "" {
                return nil
        }
 
        cert := d.endpoints.NetworkCert()
-       client, err := cluster.ConnectIfVolumeIsRemote(d.cluster, poolID, 
volumeName, volumeType, cert)
+       client, err := cluster.ConnectIfVolumeIsRemote(d.cluster, poolID, 
projectName, volumeName, volumeType, cert)
        if err != nil && err != db.ErrNoSuchObject {
                return response.SmartError(err)
        }

From ca3badc5dc32930ab754615b4eae6763b2f6149b Mon Sep 17 00:00:00 2001
From: Thomas Parrott <thomas.parr...@canonical.com>
Date: Thu, 22 Oct 2020 09:16:19 +0100
Subject: [PATCH 4/4] lxd/storage/volumes: forwardedResponseIfVolumeIsRemote
 projectName argument usage

Signed-off-by: Thomas Parrott <thomas.parr...@canonical.com>
---
 lxd/storage_volumes.go          | 10 +++++-----
 lxd/storage_volumes_backup.go   | 12 ++++++------
 lxd/storage_volumes_snapshot.go | 10 +++++-----
 3 files changed, 16 insertions(+), 16 deletions(-)

diff --git a/lxd/storage_volumes.go b/lxd/storage_volumes.go
index a7c0f6c4ca..e823b181cd 100644
--- a/lxd/storage_volumes.go
+++ b/lxd/storage_volumes.go
@@ -634,7 +634,7 @@ func storagePoolVolumeTypePost(d *Daemon, r *http.Request, 
volumeTypeName string
                return response.BadRequest(err)
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, volumeName, 
volumeType)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
volumeName, volumeType)
        if resp != nil {
                return resp
        }
@@ -857,7 +857,7 @@ func storagePoolVolumeTypeGet(d *Daemon, r *http.Request, 
volumeTypeName string)
                return resp
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, volumeName, 
volumeType)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
volumeName, volumeType)
        if resp != nil {
                return resp
        }
@@ -936,7 +936,7 @@ func storagePoolVolumeTypePut(d *Daemon, r *http.Request, 
volumeTypeName string)
                return resp
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, pool.ID(), volumeName, 
volumeType)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, pool.ID(), projectName, 
volumeName, volumeType)
        if resp != nil {
                return resp
        }
@@ -1078,7 +1078,7 @@ func storagePoolVolumeTypePatch(d *Daemon, r 
*http.Request, volumeTypeName strin
                return resp
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, pool.ID(), volumeName, 
volumeType)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, pool.ID(), projectName, 
volumeName, volumeType)
        if resp != nil {
                return resp
        }
@@ -1176,7 +1176,7 @@ func storagePoolVolumeTypeDelete(d *Daemon, r 
*http.Request, volumeTypeName stri
                return response.SmartError(err)
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, volumeName, 
volumeType)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
volumeName, volumeType)
        if resp != nil {
                return resp
        }
diff --git a/lxd/storage_volumes_backup.go b/lxd/storage_volumes_backup.go
index 2979481bbe..2b85e6f6b8 100644
--- a/lxd/storage_volumes_backup.go
+++ b/lxd/storage_volumes_backup.go
@@ -72,7 +72,7 @@ func storagePoolVolumeTypeCustomBackupsGet(d *Daemon, r 
*http.Request) response.
        }
 
        // Handle requests targeted to a volume on a different node
-       resp := forwardedResponseIfVolumeIsRemote(d, r, poolID, volumeName, 
db.StoragePoolVolumeTypeCustom)
+       resp := forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
volumeName, db.StoragePoolVolumeTypeCustom)
        if resp != nil {
                return resp
        }
@@ -145,7 +145,7 @@ func storagePoolVolumeTypeCustomBackupsPost(d *Daemon, r 
*http.Request) response
                return response.SmartError(err)
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, volumeName, 
db.StoragePoolVolumeTypeCustom)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
volumeName, db.StoragePoolVolumeTypeCustom)
        if resp != nil {
                return resp
        }
@@ -287,7 +287,7 @@ func storagePoolVolumeTypeCustomBackupGet(d *Daemon, r 
*http.Request) response.R
                return response.SmartError(err)
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, volumeName, 
db.StoragePoolVolumeTypeCustom)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
volumeName, db.StoragePoolVolumeTypeCustom)
        if resp != nil {
                return resp
        }
@@ -338,7 +338,7 @@ func storagePoolVolumeTypeCustomBackupPost(d *Daemon, r 
*http.Request) response.
                return response.SmartError(err)
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, volumeName, 
db.StoragePoolVolumeTypeCustom)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
volumeName, db.StoragePoolVolumeTypeCustom)
        if resp != nil {
                return resp
        }
@@ -420,7 +420,7 @@ func storagePoolVolumeTypeCustomBackupDelete(d *Daemon, r 
*http.Request) respons
                return response.SmartError(err)
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, volumeName, 
db.StoragePoolVolumeTypeCustom)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
volumeName, db.StoragePoolVolumeTypeCustom)
        if resp != nil {
                return resp
        }
@@ -489,7 +489,7 @@ func storagePoolVolumeTypeCustomBackupExportGet(d *Daemon, 
r *http.Request) resp
                return response.SmartError(err)
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, volumeName, 
db.StoragePoolVolumeTypeCustom)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
volumeName, db.StoragePoolVolumeTypeCustom)
        if resp != nil {
                return resp
        }
diff --git a/lxd/storage_volumes_snapshot.go b/lxd/storage_volumes_snapshot.go
index 9878c0d822..d766a8f7db 100644
--- a/lxd/storage_volumes_snapshot.go
+++ b/lxd/storage_volumes_snapshot.go
@@ -114,7 +114,7 @@ func storagePoolVolumeSnapshotsTypePost(d *Daemon, r 
*http.Request) response.Res
                return resp
        }
 
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, volumeName, 
volumeType)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
volumeName, volumeType)
        if resp != nil {
                return resp
        }
@@ -302,7 +302,7 @@ func storagePoolVolumeSnapshotTypePost(d *Daemon, r 
*http.Request) response.Resp
        }
 
        fullSnapshotName := fmt.Sprintf("%s/%s", volumeName, snapshotName)
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, 
fullSnapshotName, volumeType)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
fullSnapshotName, volumeType)
        if resp != nil {
                return resp
        }
@@ -368,7 +368,7 @@ func storagePoolVolumeSnapshotTypeGet(d *Daemon, r 
*http.Request) response.Respo
        }
 
        fullSnapshotName := fmt.Sprintf("%s/%s", volumeName, snapshotName)
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, 
fullSnapshotName, volumeType)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
fullSnapshotName, volumeType)
        if resp != nil {
                return resp
        }
@@ -437,7 +437,7 @@ func storagePoolVolumeSnapshotTypePut(d *Daemon, r 
*http.Request) response.Respo
        }
 
        fullSnapshotName := fmt.Sprintf("%s/%s", volumeName, snapshotName)
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, 
fullSnapshotName, volumeType)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
fullSnapshotName, volumeType)
        if resp != nil {
                return resp
        }
@@ -533,7 +533,7 @@ func storagePoolVolumeSnapshotTypeDelete(d *Daemon, r 
*http.Request) response.Re
        }
 
        fullSnapshotName := fmt.Sprintf("%s/%s", volumeName, snapshotName)
-       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, 
fullSnapshotName, volumeType)
+       resp = forwardedResponseIfVolumeIsRemote(d, r, poolID, projectName, 
fullSnapshotName, volumeType)
        if resp != nil {
                return resp
        }
_______________________________________________
lxc-devel mailing list
lxc-devel@lists.linuxcontainers.org
http://lists.linuxcontainers.org/listinfo/lxc-devel

Reply via email to