From 95efea8c5686f25e302102d64be8a57afde1a8de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Sat, 30 Dec 2023 00:44:38 +0100 Subject: [PATCH 001/169] lxd/device/pci: Detect USB bus MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber (cherry picked from commit c239189ef9a583c4e14bb7dcaef22babc6054612) Signed-off-by: Wesley Hershberger License: Apache-2.0 --- lxd/device/pci/pci.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lxd/device/pci/pci.go b/lxd/device/pci/pci.go index cdf419d4fcc7..e02edadc2c0f 100644 --- a/lxd/device/pci/pci.go +++ b/lxd/device/pci/pci.go @@ -13,6 +13,9 @@ import ( "github.com/canonical/lxd/shared/revert" ) +// ErrDeviceIsUSB is returned when dealing with a USB device. +var ErrDeviceIsUSB = fmt.Errorf("Device is USB instead of PCI") + // Device represents info about a PCI uevent device. type Device struct { ID string @@ -40,6 +43,8 @@ func ParseUeventFile(ueventFilePath string) (Device, error) { dev.SlotName = fields[1] } else if fields[0] == "PCI_ID" { dev.ID = fields[1] + } else if fields[0] == "DEVTYPE" && fields[1] == "usb_interface" { + return dev, ErrDeviceIsUSB } else if fields[0] == "DRIVER" { dev.Driver = fields[1] } From 3c590b626e8919e6a1bda7bbe6333b89d1478ba1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Sat, 30 Dec 2023 00:45:07 +0100 Subject: [PATCH 002/169] lxd/device/nic: Support USB parents for physical NICs in VMs MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes https://github.com/lxc/incus/issues/339 Signed-off-by: Stéphane Graber (cherry picked from commit 1e2843d53bccb8f4516e01c93fa584d841a12b21) Signed-off-by: Wesley Hershberger License: Apache-2.0 --- lxd/device/nic_physical.go | 88 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 85 insertions(+), 3 deletions(-) diff --git a/lxd/device/nic_physical.go b/lxd/device/nic_physical.go index be5db45d14db..98804bf4c607 100644 --- a/lxd/device/nic_physical.go +++ b/lxd/device/nic_physical.go @@ -4,6 +4,7 @@ import ( "fmt" "net" "strconv" + "strings" deviceConfig "github.com/canonical/lxd/lxd/device/config" pcidev "github.com/canonical/lxd/lxd/device/pci" @@ -11,6 +12,7 @@ import ( "github.com/canonical/lxd/lxd/instance/instancetype" "github.com/canonical/lxd/lxd/ip" "github.com/canonical/lxd/lxd/network" + "github.com/canonical/lxd/lxd/resources" "github.com/canonical/lxd/lxd/util" "github.com/canonical/lxd/shared" "github.com/canonical/lxd/shared/api" @@ -198,10 +200,15 @@ func (d *nicPhysical) Start() (*deviceConfig.RunConfig, error) { } } } else if d.inst.Type() == instancetype.VM { - // Get PCI information about the network interface. + // Try to get PCI information about the network interface. ueventPath := fmt.Sprintf("/sys/class/net/%s/device/uevent", saveData["host_name"]) pciDev, err := pcidev.ParseUeventFile(ueventPath) if err != nil { + if err == pcidev.ErrDeviceIsUSB { + // Device is USB rather than PCI. + return d.startVMUSB(saveData["host_name"]) + } + return nil, fmt.Errorf("Failed to get PCI device info for %q: %w", saveData["host_name"], err) } @@ -245,14 +252,87 @@ func (d *nicPhysical) Start() (*deviceConfig.RunConfig, error) { return &runConf, nil } +func (d *nicPhysical) startVMUSB(name string) (*deviceConfig.RunConfig, error) { + // Get the list of network interfaces. + interfaces, err := resources.GetNetwork() + if err != nil { + return nil, err + } + + // Look for our USB device. + var addr string + for _, card := range interfaces.Cards { + for _, port := range card.Ports { + if port.ID == name { + addr = card.USBAddress + break + } + } + + if addr != "" { + break + } + } + + if addr == "" { + return nil, fmt.Errorf("Failed to get USB device info for %q", name) + } + + // Parse the USB address. + fields := strings.Split(addr, ":") + if len(fields) != 2 { + return nil, fmt.Errorf("Bad USB device info for %q", name) + } + + usbBus, err := strconv.Atoi(fields[0]) + if err != nil { + return nil, fmt.Errorf("Bad USB device info for %q: %w", name, err) + } + + usbDev, err := strconv.Atoi(fields[1]) + if err != nil { + return nil, fmt.Errorf("Bad USB device info for %q: %w", name, err) + } + + // Record the addresses. + saveData := map[string]string{} + saveData["last_state.usb.bus"] = fmt.Sprintf("%03d", usbBus) + saveData["last_state.usb.device"] = fmt.Sprintf("%03d", usbDev) + + err = d.volatileSet(saveData) + if err != nil { + return nil, err + } + + // Generate a config. + runConf := deviceConfig.RunConfig{} + runConf.USBDevice = append(runConf.USBDevice, deviceConfig.USBDeviceItem{ + DeviceName: fmt.Sprintf("%s-%03d-%03d", d.name, usbBus, usbDev), + HostDevicePath: fmt.Sprintf("/dev/bus/usb/%03d/%03d", usbBus, usbDev), + }) + + return &runConf, nil +} + // Stop is run when the device is removed from the instance. func (d *nicPhysical) Stop() (*deviceConfig.RunConfig, error) { v := d.volatileGet() + runConf := deviceConfig.RunConfig{ PostHooks: []func() error{d.postStop}, - NetworkInterface: []deviceConfig.RunConfigItem{ + } + + if v["last_state.usb.bus"] != "" && v["last_state.usb.device"] != "" { + // Handle USB NICs. + runConf.USBDevice = append(runConf.USBDevice, deviceConfig.USBDeviceItem{ + DeviceName: fmt.Sprintf("%s-%s-%s", d.name, v["last_state.usb.bus"], v["last_state.usb.device"]), + HostDevicePath: fmt.Sprintf("/dev/bus/usb/%s/%s", v["last_state.usb.bus"], v["last_state.usb.device"]), + }) + } else { + // Handle all other NICs. + runConf.NetworkInterface = []deviceConfig.RunConfigItem{ {Key: "link", Value: v["host_name"]}, - }, + } } return &runConf, nil @@ -268,6 +348,8 @@ func (d *nicPhysical) postStop() error { "last_state.created": "", "last_state.pci.slot.name": "", "last_state.pci.driver": "", + "last_state.usb.bus": "", + "last_state.usb.device": "", }) }() From 710a06cb7a489d5e4b7d230089f5df165c611ed8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Sat, 30 Dec 2023 00:48:31 +0100 Subject: [PATCH 003/169] lxd/instance: Add new volatile keys MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber (cherry picked from commit f9c119dccd6804f134dd10269a87bb911b12a21b) Signed-off-by: Wesley Hershberger License: Apache-2.0 --- lxd/instance/instancetype/instance.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lxd/instance/instancetype/instance.go b/lxd/instance/instancetype/instance.go index c57075f5a398..1b267b83210e 100644 --- a/lxd/instance/instancetype/instance.go +++ b/lxd/instance/instancetype/instance.go @@ -1210,6 +1210,14 @@ func ConfigKeyChecker(key string, instanceType Type) (func(value string) error, return validate.IsAny, nil } + if strings.HasSuffix(key, ".bus") { + return validate.IsAny, nil + } + + if strings.HasSuffix(key, ".device") { + return validate.IsAny, nil + } + if strings.HasSuffix(key, ".uuid") { return validate.IsAny, nil } From 9481e1752b8551d884c6d9c378702df485aa59b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Sat, 30 Dec 2023 00:56:47 +0100 Subject: [PATCH 004/169] lxd/instance/qemu: Fix typo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber (cherry picked from commit 1252d03118bb7d8e72034593625a64f08210926f) Signed-off-by: Wesley Hershberger License: Apache-2.0 --- lxd/instance/drivers/driver_qemu.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/instance/drivers/driver_qemu.go b/lxd/instance/drivers/driver_qemu.go index ae3192a9c33a..2b178b4ea744 100644 --- a/lxd/instance/drivers/driver_qemu.go +++ b/lxd/instance/drivers/driver_qemu.go @@ -2467,7 +2467,7 @@ func (d *qemu) deviceStop(dev device.Device, instanceRunning bool, _ string) err } } - // Detach USB drom running instance. + // Detach USB from running instance. if configCopy["type"] == "usb" && runConf != nil { for _, usbDev := range runConf.USBDevice { err = d.deviceDetachUSB(usbDev) From f76edd66501af29fbf9c9687687e73149c7a5b64 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Sat, 30 Dec 2023 00:56:57 +0100 Subject: [PATCH 005/169] lxd/instance/qemu: Handle USB NIC hotremove MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber (cherry picked from commit 280e5c473ebc80d1dc5a8e25ff781b66fc7e4bae) Signed-off-by: Wesley Hershberger License: Apache-2.0 --- lxd/instance/drivers/driver_qemu.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lxd/instance/drivers/driver_qemu.go b/lxd/instance/drivers/driver_qemu.go index 2b178b4ea744..efe8bf0adc72 100644 --- a/lxd/instance/drivers/driver_qemu.go +++ b/lxd/instance/drivers/driver_qemu.go @@ -2461,6 +2461,13 @@ func (d *qemu) deviceStop(dev device.Device, instanceRunning bool, _ string) err if instanceRunning { // Detach NIC from running instance. if configCopy["type"] == "nic" { + for _, usbDev := range runConf.USBDevice { + err = d.deviceDetachUSB(usbDev) + if err != nil { + return err + } + } + err = d.deviceDetachNIC(dev.Name()) if err != nil { return err From fcec577631004dc9f8cabf4d5db9d1e7733c653e Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Fri, 9 Aug 2024 16:42:28 +0200 Subject: [PATCH 006/169] doc/tutorial: improve the UI tutorial Incorporate feedback received on the UI tutorial Signed-off-by: Ruth Fuchss --- doc/custom_conf.py | 1 + doc/howto/access_ui.md | 2 +- doc/tutorial/first_steps.md | 13 ++++----- doc/tutorial/ui.md | 53 ++++++++++++++++++++++++++++++++----- 4 files changed, 55 insertions(+), 14 deletions(-) diff --git a/doc/custom_conf.py b/doc/custom_conf.py index b545cf39351c..af7e16b4fc00 100644 --- a/doc/custom_conf.py +++ b/doc/custom_conf.py @@ -154,6 +154,7 @@ # Links to ignore when checking links linkcheck_ignore = [ + 'https://127.0.0.1:8443', 'https://127.0.0.1:8443/1.0', 'https://web.libera.chat/#lxd', 'http://localhost:8000', diff --git a/doc/howto/access_ui.md b/doc/howto/access_ui.md index c0660fe8d4f4..f4e807cd2f8f 100644 --- a/doc/howto/access_ui.md +++ b/doc/howto/access_ui.md @@ -27,7 +27,7 @@ Complete the following steps to access the LXD web UI: -2. Access the UI in your browser by entering the server address (for example, `https://127.0.0.1:8443` for a local server, or `https://192.0.2.10:8443`). +2. Access the UI in your browser by entering the server address (for example, [`https://127.0.0.1:8443`](https://127.0.0.1:8443) for a local server, or an address like `https://192.0.2.10:8443` for a server running on `192.0.2.10`). If you have not set up a secure {ref}`authentication-server-certificate`, LXD uses a self-signed certificate, which will cause a security warning in your browser. Use your browser's mechanism to continue despite the security warning. diff --git a/doc/tutorial/first_steps.md b/doc/tutorial/first_steps.md index 6cc1d3693b4a..fff575e614d4 100644 --- a/doc/tutorial/first_steps.md +++ b/doc/tutorial/first_steps.md @@ -50,15 +50,16 @@ If you prefer a different installation method, or use a Linux distribution that sudo snap refresh lxd -1. Enter the following command to add the current user to the `lxd` group (the group was automatically created during the previous step): +1. Check if the current user is part of the `lxd` group (the group was automatically created during the previous step): - getent group lxd | grep -qwF "$USER" || sudo usermod -aG lxd "$USER" + getent group lxd | grep "$USER" - This is needed to be granted permission to interact with LXD. + If this command returns a result, you're set up correctly and can continue with the next step. - ```{note} - {{must_start_new_session}} - ``` + If there is no result, enter the following commands to add the current user to the `lxd` group (which is needed to grant the user permission to interact with LXD): + + sudo usermod -aG lxd "$USER" + newgrp lxd 1. Enter the following command to initialize LXD: diff --git a/doc/tutorial/ui.md b/doc/tutorial/ui.md index 56107d7a9557..221717924463 100644 --- a/doc/tutorial/ui.md +++ b/doc/tutorial/ui.md @@ -56,13 +56,14 @@ See {ref}`containers-and-vms` for information about the difference between the t See {ref}`instances-create-iso` for more information. ``` -1. Click {guilabel}`Create and start` to launch the container. +1. To launch the container, click {guilabel}`Create and start`. ```{note} Launching this container takes a few seconds, because the image must be downloaded and unpacked first. ``` -1. Create another container called `second`, using the same image, but click {guilabel}`Create` instead of {guilabel}`Create and start`. +1. Create another container called `second`, using the same image. + After entering the name and selecting the image, click {guilabel}`Create` instead of {guilabel}`Create and start`. This container will be created but not started. @@ -70,7 +71,7 @@ See {ref}`containers-and-vms` for information about the difference between the t Creating this container is quicker than launching the first, because the image is already available locally. ``` -1. Launch a VM called `ubuntu-vm` using the Ubuntu 24.04 LTS image by selecting {guilabel}`VM` as the instance type: +1. Create and start a VM called `ubuntu-vm` using the Ubuntu 24.04 LTS image by selecting {guilabel}`VM` as the instance type: ```{figure} /images/tutorial/create_vm.png :width: 100% @@ -81,7 +82,7 @@ See {ref}`containers-and-vms` for information about the difference between the t Even though you are using the same image name to launch the instance, LXD downloads a slightly different image that is compatible with VMs. ``` -1. Launch a VM called `ubuntu-desktop` using the Ubuntu 24.04 LTS desktop image (filter by variant "desktop" to find it). +1. Create and start a VM called `ubuntu-desktop` using the Ubuntu 24.04 LTS desktop image (filter by variant "desktop" to find it). When you select the image, the instance type is automatically set to {guilabel}`VM`: ```{figure} /images/tutorial/create_desktop_vm.png @@ -195,7 +196,8 @@ See {ref}`instance-options` for an overview. Let's create another container with some resource limits: -1. Click {guilabel}`Create instance`, enter `limited` as the instance name and select the Ubuntu 24.04 LTS image. +1. On the instances list, click {guilabel}`Create instance`. + Enter `limited` as the instance name and select the Ubuntu 24.04 LTS image. 1. Expand {guilabel}`Advanced` and go to {guilabel}`Resource limits`. @@ -408,8 +410,45 @@ Let's check its content: 1. Go to {guilabel}`Storage` > {guilabel}`Volumes`. - Because you deselected `Storage volumes` when creating the project, storage volumes are not isolated to the project, and you can see the custom storage volume that you created in the default project. - However, you cannot see any of the instance or image volumes from the other project, because those are isolated. + Remember that in the default project, you saw three different kinds of storage volumes in the volume list: + + - Instance (container or VM) volumes + - Image volumes + - Custom volumes + + You should see the same three types in the `tutorial` project. + However, note the following: + + - You can see only one instance volume and one image volume. + These are for the one instance you created in the `tutorial` project. + + You cannot see the instance and image volumes for the instances you created in the default project, because both instances and images are isolated in the `tutorial` project, so you cannot see the corresponding storage volumes from other projects. + + - You can see the custom storage volume that you created in the default project. + + Because you deselected `Storage volumes` when creating the project, storage volumes are not isolated, and you can therefore see storage volumes from other projects. + +## Clean up entities + +Now that we've run through the basic functionality of LXD, let's clean up the entities we created throughout the tutorial. + +1. With the `tutorial` project still selected, go to the instances list and stop and delete the instance you created in this project. + +1. Go to {guilabel}`Images` and click the {guilabel}`Delete` button ({{delete_button}}) next to it. + +1. Go to {guilabel}`Configuration` and click the {guilabel}`Delete project` button in the top-right corner. + + After deleting the project, you are automatically switched back to the default project. + +1. Stop and delete all instances in the default project. + To do this all at once, go to the instance list and select all instances. + Then click {guilabel}`Stop` at the top. + Finally, click {guilabel}`Delete` at the top. + +1. Go to {guilabel}`Storage` > {guilabel}`Volumes` and click the {guilabel}`Delete` button ({{delete_button}}) next to the `tutorial_volume` storage volume. + +1. Optionally, you can also delete the images that you used. + If you keep them, they will eventually expire (by default, when they haven't been used for ten days). % Include content from [first_steps.md](first_steps.md) ```{include} first_steps.md From a56285d675d735030a6108e6a286ff8858a16aa7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Thu, 11 Jan 2024 11:05:49 -0500 Subject: [PATCH 007/169] lxd/instance/file: Add type and size to HEAD MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber (cherry picked from commit e6a9eaefd41c3768b07468453c8c2e1bdc5f130b) Signed-off-by: Kadin Sayani License: Apache-2.0 --- lxd/instance_file.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lxd/instance_file.go b/lxd/instance_file.go index 8bea4bf480b2..2a9af8dc9c62 100644 --- a/lxd/instance_file.go +++ b/lxd/instance_file.go @@ -350,6 +350,11 @@ func instanceFileHead(inst instance.Instance, path string) response.Response { "X-LXD-type": fileType, } + if fileType == "file" { + headers["Content-Type"] = "application/octet-stream" + headers["Content-Length"] = fmt.Sprintf("%d", stat.Size()) + } + // Return an empty body (per RFC for HEAD). return response.ManualResponse(func(w http.ResponseWriter) error { // Set the headers. From 1eb95e1ccf51af41f5646ffa9d1b75a6b23e4f82 Mon Sep 17 00:00:00 2001 From: Kadin Sayani Date: Fri, 9 Aug 2024 19:15:21 +0000 Subject: [PATCH 008/169] lxd/instance/file: Add pattern matching for stat.Sys().(*sftp.FileStat) type assertion Signed-off-by: Kadin Sayani --- lxd/instance_file.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lxd/instance_file.go b/lxd/instance_file.go index 2a9af8dc9c62..0dd87b4993b0 100644 --- a/lxd/instance_file.go +++ b/lxd/instance_file.go @@ -176,7 +176,7 @@ func instanceFileGet(s *state.State, inst instance.Instance, path string, r *htt fileType = "symlink" } - fs := stat.Sys().(*sftp.FileStat) + fs, _ := stat.Sys().(*sftp.FileStat) // Prepare the response. headers := map[string]string{ @@ -339,7 +339,7 @@ func instanceFileHead(inst instance.Instance, path string) response.Response { fileType = "symlink" } - fs := stat.Sys().(*sftp.FileStat) + fs, _ := stat.Sys().(*sftp.FileStat) // Prepare the response. headers := map[string]string{ From 3dd1227ac1b815a7be376b33292f798c2c3d74d5 Mon Sep 17 00:00:00 2001 From: Wesley Hershberger Date: Fri, 9 Aug 2024 16:55:00 -0500 Subject: [PATCH 009/169] lxd/instance: lxdmeta for volatile usb NIC keys Signed-off-by: Wesley Hershberger --- lxd/instance/instancetype/instance.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/lxd/instance/instancetype/instance.go b/lxd/instance/instancetype/instance.go index 1b267b83210e..cdcfbd52990d 100644 --- a/lxd/instance/instancetype/instance.go +++ b/lxd/instance/instancetype/instance.go @@ -1210,10 +1210,20 @@ func ConfigKeyChecker(key string, instanceType Type) (func(value string) error, return validate.IsAny, nil } + // lxdmeta:generate(entities=network-physical; group=volatile; key=volatile.last_state.usb.bus) + // + // -- + // type: string + // shortdesc: USB Bus Number if strings.HasSuffix(key, ".bus") { return validate.IsAny, nil } + // lxdmeta:generate(entities=network-physical; group=volatile; key=volatile.last_state.usb.device) + // + // -- + // type: string + // shortdesc: USB Device Number if strings.HasSuffix(key, ".device") { return validate.IsAny, nil } From 2c18dcd3879c2d17ac02c805e056cda4b255200e Mon Sep 17 00:00:00 2001 From: Wesley Hershberger Date: Tue, 6 Aug 2024 16:37:14 -0500 Subject: [PATCH 010/169] lxd/cluster: Don't fail when notifying a server... ...that is shutting down when using NotifyAlive. Fixes #13811 Signed-off-by: Wesley Hershberger --- lxd/cluster/notify.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lxd/cluster/notify.go b/lxd/cluster/notify.go index 06d419f5ff0b..8f337292694b 100644 --- a/lxd/cluster/notify.go +++ b/lxd/cluster/notify.go @@ -3,6 +3,7 @@ package cluster import ( "context" "fmt" + "net/http" "sync" "time" @@ -10,6 +11,7 @@ import ( "github.com/canonical/lxd/lxd/db" "github.com/canonical/lxd/lxd/state" "github.com/canonical/lxd/shared" + "github.com/canonical/lxd/shared/api" "github.com/canonical/lxd/shared/logger" ) @@ -109,7 +111,9 @@ func NewNotifier(state *state.State, networkCert *shared.CertInfo, serverCert *s // TODO: aggregate all errors? for i, err := range errs { if err != nil { - if shared.IsConnectionError(err) && policy == NotifyAlive { + isDown := shared.IsConnectionError(err) || api.StatusErrorCheck(err, http.StatusServiceUnavailable) + + if isDown && policy == NotifyAlive { logger.Warnf("Could not notify node %s", peers[i]) continue } From 0d9643268f05545d23a839e82c94fae6c56930cb Mon Sep 17 00:00:00 2001 From: Wesley Hershberger Date: Tue, 6 Aug 2024 16:38:26 -0500 Subject: [PATCH 011/169] lxd/cluster: Test Notify with shutdown response Signed-off-by: Wesley Hershberger --- lxd/cluster/notify_test.go | 54 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/lxd/cluster/notify_test.go b/lxd/cluster/notify_test.go index 6b3d90871380..dc53fd70d31e 100644 --- a/lxd/cluster/notify_test.go +++ b/lxd/cluster/notify_test.go @@ -2,6 +2,7 @@ package cluster_test import ( "context" + "fmt" "net/http" "net/http/httptest" "strconv" @@ -15,6 +16,7 @@ import ( "github.com/canonical/lxd/lxd/cluster" "github.com/canonical/lxd/lxd/db" "github.com/canonical/lxd/lxd/node" + "github.com/canonical/lxd/lxd/response" "github.com/canonical/lxd/lxd/state" "github.com/canonical/lxd/lxd/util" "github.com/canonical/lxd/shared" @@ -140,6 +142,46 @@ func TestNewNotify_NotifyAlive(t *testing.T) { assert.Equal(t, 1, i) } +// Creating a new notifier does not fail if the policy is set to NotifyAlive +// and one of the nodes is shutting down. +func TestNewNotify_NotifyAliveShuttingDown(t *testing.T) { + testState, cleanup := state.NewTestState(t) + defer cleanup() + + cert := shared.TestingKeyPair() + + f := notifyFixtures{t: t, state: testState} + cleanupF := f.Nodes(cert, 3) + defer cleanupF() + + f.Unavailable(1, fmt.Errorf("LXD is shutting down")) + + // Populate state.LocalConfig after nodes created above. + var err error + var nodeConfig *node.Config + err = testState.DB.Node.Transaction(context.TODO(), func(ctx context.Context, tx *db.NodeTx) error { + nodeConfig, err = node.ConfigLoad(ctx, tx) + return err + }) + require.NoError(t, err) + + testState.LocalConfig = nodeConfig + + notifier, err := cluster.NewNotifier(testState, cert, cert, cluster.NotifyAlive) + assert.NoError(t, err) + + connections := 0 + hook := func(client lxd.InstanceServer) error { + connections++ + // Notifiers do not GetServer() when they set up the connection; + _, _, err := client.GetServer() + return err + } + + assert.NoError(t, notifier(hook)) + assert.Equal(t, 2, connections) +} + // Helper for setting fixtures for Notify tests. type notifyFixtures struct { t *testing.T @@ -226,6 +268,18 @@ func (h *notifyFixtures) Down(i int) { h.servers[i].Close() } +func (h *notifyFixtures) Unavailable(i int, err error) { + mux := http.NewServeMux() + + mux.HandleFunc("/1.0/", func(w http.ResponseWriter, r *http.Request) { + w.Header().Set("Content-Type", "application/json") + err := response.Unavailable(err) + _ = err.Render(w) + }) + + h.servers[i].Config.Handler = mux +} + // Returns a minimal stub for the LXD RESTful API server, just realistic // enough to make lxd.ConnectLXD succeed. func newRestServer(cert *shared.CertInfo) *httptest.Server { From b6b796200b1bd42085451dfcf1fdc1fe4f850872 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Fri, 5 Jan 2024 10:05:04 -0500 Subject: [PATCH 012/169] lxd: Refresh the state on cluster put/join MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Without that, the updated global config (or server name) doesn't make it into the state which is passed on through other functions. Signed-off-by: Stéphane Graber (cherry picked from commit 37736893c50422050f678348fa3c5bc1f8246595) Signed-off-by: Mark Bolton License: Apache-2.0 --- lxd/api_cluster.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/lxd/api_cluster.go b/lxd/api_cluster.go index 7e44d4f8e44a..8f0a80670673 100644 --- a/lxd/api_cluster.go +++ b/lxd/api_cluster.go @@ -370,6 +370,10 @@ func clusterPutBootstrap(d *Daemon, r *http.Request, req api.ClusterPut) respons d.globalConfigMu.Unlock() d.events.SetLocalLocation(d.serverName) + + // Refresh the state. + s = d.State() + // Start clustering tasks d.startClusterTasks() @@ -797,6 +801,9 @@ func clusterPutJoin(d *Daemon, r *http.Request, req api.ClusterPut) response.Res return err } + // Refresh the state. + s = d.State() + // Start up networks so any post-join changes can be applied now that we have a Node ID. logger.Debug("Starting networks after cluster join") err = networkStartup(s) From b5ccfa36cb67111dc47fa7342bbe202ef037af9b Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Mon, 12 Aug 2024 10:46:59 +0200 Subject: [PATCH 013/169] doc: change title to "LXD" instead of "Canonical LXD" For consistency with the webpage and other doc sets. Signed-off-by: Ruth Fuchss --- doc/custom_conf.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/custom_conf.py b/doc/custom_conf.py index af7e16b4fc00..a5e2de6ac1a7 100644 --- a/doc/custom_conf.py +++ b/doc/custom_conf.py @@ -25,7 +25,7 @@ ############################################################ # Product name -project = 'Canonical LXD' +project = 'LXD' author = 'LXD contributors' # The title you want to display for the documentation in the sidebar. From 6a670422cf7946658f0079ad8f7c06062aeb8e6d Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Mon, 12 Aug 2024 10:49:19 +0200 Subject: [PATCH 014/169] doc/Makefile: add target for building on readthedocs RTD doesn't usually use the Makefile, that's why the Makefile currently supports local builds only. However, for an integrated MicroCloud doc build, we will use the Makefile - so add a target for doing a "non-local build" (which uses an existing client instead of building it again). Signed-off-by: Ruth Fuchss --- doc/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/Makefile b/doc/Makefile index c52ff27faec3..beb6ce9ddfee 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -50,5 +50,9 @@ lint: html: $(MAKE) -f Makefile.sp sp-html LOCAL_SPHINX_BUILD=True ADDPREREQS='gitpython pyyaml' +.PHONY: html-rtd +html-rtd: + $(MAKE) -f Makefile.sp sp-html LOCAL_SPHINX_BUILD=False ADDPREREQS='gitpython pyyaml' + %: $(MAKE) -f Makefile.sp sp-$@ LOCAL_SPHINX_BUILD=True ALLFILES='*.md **/*.md' ADDPREREQS='gitpython pyyaml' From a081dbe0d67ea6df881ade13f534be609e0aa620 Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Mon, 12 Aug 2024 10:51:25 +0200 Subject: [PATCH 015/169] doc: remove objects.inv.txt generation from RTD build The UI uses the local objects.inv.txt - so no need to generate that file on RTD. Signed-off-by: Ruth Fuchss --- doc/.readthedocs.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/doc/.readthedocs.yaml b/doc/.readthedocs.yaml index d991041c189e..fd25b42c912b 100644 --- a/doc/.readthedocs.yaml +++ b/doc/.readthedocs.yaml @@ -18,8 +18,6 @@ build: - git fetch --unshallow || true pre_build: - go build -ldflags "-s -w" -o trimpath -o lxc.bin ./lxc - post_build: - - cd _readthedocs/html; python -m sphinx.ext.intersphinx 'objects.inv' > objects.inv.txt # Build documentation in the docs/ directory with Sphinx sphinx: From e7021d0d88eccaad7eb496df453ff42243579a62 Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Mon, 12 Aug 2024 11:21:59 +0200 Subject: [PATCH 016/169] doc: update to the latest version of the starter pack Leaving out the changes for PDF generation, since the PDF currently doesn't build. Signed-off-by: Ruth Fuchss --- doc/.sphinx/_static/custom.css | 14 ++++++++++++++ doc/.sphinx/get_vale_conf.py | 14 +++++++++++++- doc/.wordlist.txt | 1 + doc/Makefile | 2 ++ doc/Makefile.sp | 5 +++-- 5 files changed, 33 insertions(+), 3 deletions(-) diff --git a/doc/.sphinx/_static/custom.css b/doc/.sphinx/_static/custom.css index 926407e4447f..6ce87caac81d 100644 --- a/doc/.sphinx/_static/custom.css +++ b/doc/.sphinx/_static/custom.css @@ -377,6 +377,20 @@ p code.literal { color: #BB5400; } +.rubric > .hclass2 { + display: block; + font-size: 2em; + border-radius: .5rem; + font-weight: 300; + line-height: 1.25; + margin-top: 1.75rem; + margin-right: -0.5rem; + margin-bottom: 0.5rem; + margin-left: -0.5rem; + padding-left: .5rem; + padding-right: .5rem; +} + /* Exception for LXD: smaller font size for option table fields */ .configoption .fields p code.literal { font-size: var(--font-size--small--2); diff --git a/doc/.sphinx/get_vale_conf.py b/doc/.sphinx/get_vale_conf.py index 2f1c566f96e8..23d890153231 100644 --- a/doc/.sphinx/get_vale_conf.py +++ b/doc/.sphinx/get_vale_conf.py @@ -20,10 +20,22 @@ def main(): file.write(download.text) file.close() + if os.path.exists(f"{DIR}/.sphinx/styles/config/vocabularies/Canonical"): + print("Vocab directory exists") + else: + os.makedirs(f"{DIR}/.sphinx/styles/config/vocabularies/Canonical") + + url = "https://api.github.com/repos/canonical/praecepta/contents/styles/config/vocabularies/Canonical" + r = requests.get(url) + for item in r.json(): + download = requests.get(item["download_url"]) + file = open(".sphinx/styles/config/vocabularies/Canonical/" + item["name"], "w") + file.write(download.text) + file.close() config = requests.get("https://raw.githubusercontent.com/canonical/praecepta/main/vale.ini") file = open(".sphinx/vale.ini", "w") file.write(config.text) file.close() if __name__ == "__main__": - main() \ No newline at end of file + main() diff --git a/doc/.wordlist.txt b/doc/.wordlist.txt index 0dc12d3d3e72..f7eb1db46839 100644 --- a/doc/.wordlist.txt +++ b/doc/.wordlist.txt @@ -8,6 +8,7 @@ balancer Charmhub CLI Diátaxis +Dqlite dropdown EBS EKS diff --git a/doc/Makefile b/doc/Makefile index beb6ce9ddfee..bdb33ee99f63 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -21,6 +21,8 @@ help: "* check spelling (without building again): make spellcheck \n" \ "* check inclusive language: make woke \n" \ "* check accessibility: make pa11y \n" \ + "* check style guide compliance: make vale \n" \ + "* check style guide compliance on target: make vale TARGET=* \n" \ "* other possible targets: make \n" \ "------------------------------------------------------------- \n" diff --git a/doc/Makefile.sp b/doc/Makefile.sp index 61c42cf821bd..d40405976fd1 100644 --- a/doc/Makefile.sp +++ b/doc/Makefile.sp @@ -34,7 +34,8 @@ $(SPHINXDIR)/requirements.txt: (echo "You must install python3-venv before you can build the documentation."; exit 1) python3 -m venv $(VENVDIR) @if [ ! -z "$(ADDPREREQS)" ]; then \ - . $(VENV); pip install --require-virtualenv $(ADDPREREQS); \ + . $(VENV); pip install \ + $(PIPOPTS) --require-virtualenv $(ADDPREREQS); \ fi . $(VENV); python3 $(SPHINXDIR)/build_requirements.py @@ -42,7 +43,7 @@ $(SPHINXDIR)/requirements.txt: $(VENVDIR): $(SPHINXDIR)/requirements.txt @echo "... setting up virtualenv" python3 -m venv $(VENVDIR) - . $(VENV); pip install --require-virtualenv \ + . $(VENV); pip install $(PIPOPTS) --require-virtualenv \ --upgrade -r $(SPHINXDIR)/requirements.txt \ --log $(VENVDIR)/pip_install.log @test ! -f $(VENVDIR)/pip_list.txt || \ From 0b0815b34c069bd4c95f4fc9ae84e1be5400e8f0 Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Mon, 12 Aug 2024 12:06:20 +0200 Subject: [PATCH 017/169] doc/pdf: add files and updates needed for PDF generation From the starter pack with some small fixes. Signed-off-by: Ruth Fuchss --- doc/.sphinx/_static/custom.css | 2 +- doc/.sphinx/fonts/Ubuntu-B.ttf | Bin 0 -> 333612 bytes doc/.sphinx/fonts/Ubuntu-R.ttf | Bin 0 -> 353824 bytes doc/.sphinx/fonts/Ubuntu-RI.ttf | Bin 0 -> 386440 bytes doc/.sphinx/fonts/UbuntuMono-B.ttf | Bin 0 -> 191400 bytes doc/.sphinx/fonts/UbuntuMono-R.ttf | Bin 0 -> 205748 bytes doc/.sphinx/fonts/UbuntuMono-RI.ttf | Bin 0 -> 210216 bytes doc/.sphinx/fonts/ubuntu-font-licence-1.0.txt | 96 ++++++++++++++ doc/.sphinx/images/Canonical-logo-4x.png | Bin 0 -> 163254 bytes doc/.sphinx/images/front-page-light.pdf | Bin 0 -> 9676 bytes doc/.sphinx/images/front-page.png | Bin 0 -> 75868 bytes doc/.sphinx/images/normal-page-footer.pdf | Bin 0 -> 5532 bytes doc/.sphinx/latex_elements_template.txt | 119 ++++++++++++++++++ doc/Makefile.sp | 23 +++- doc/conf.py | 29 ++++- doc/custom_conf.py | 6 +- doc/index.md | 12 +- 17 files changed, 278 insertions(+), 9 deletions(-) create mode 100644 doc/.sphinx/fonts/Ubuntu-B.ttf create mode 100644 doc/.sphinx/fonts/Ubuntu-R.ttf create mode 100644 doc/.sphinx/fonts/Ubuntu-RI.ttf create mode 100644 doc/.sphinx/fonts/UbuntuMono-B.ttf create mode 100644 doc/.sphinx/fonts/UbuntuMono-R.ttf create mode 100644 doc/.sphinx/fonts/UbuntuMono-RI.ttf create mode 100644 doc/.sphinx/fonts/ubuntu-font-licence-1.0.txt create mode 100644 doc/.sphinx/images/Canonical-logo-4x.png create mode 100644 doc/.sphinx/images/front-page-light.pdf create mode 100644 doc/.sphinx/images/front-page.png create mode 100644 doc/.sphinx/images/normal-page-footer.pdf create mode 100644 doc/.sphinx/latex_elements_template.txt diff --git a/doc/.sphinx/_static/custom.css b/doc/.sphinx/_static/custom.css index 6ce87caac81d..ce1e073cfafd 100644 --- a/doc/.sphinx/_static/custom.css +++ b/doc/.sphinx/_static/custom.css @@ -377,7 +377,7 @@ p code.literal { color: #BB5400; } -.rubric > .hclass2 { +.rubric > .hclass2, .rubric.hclass2 { display: block; font-size: 2em; border-radius: .5rem; diff --git a/doc/.sphinx/fonts/Ubuntu-B.ttf b/doc/.sphinx/fonts/Ubuntu-B.ttf new file mode 100644 index 0000000000000000000000000000000000000000..b173da27417c00101dff72617f9b9a2b80ecc8f3 GIT binary patch literal 333612 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 HZ~K1%`Nrw3 literal 0 HcmV?d00001 diff --git a/doc/.sphinx/fonts/Ubuntu-RI.ttf b/doc/.sphinx/fonts/Ubuntu-RI.ttf new file mode 100644 index 0000000000000000000000000000000000000000..4f2d2bc7cb6ae34d90066e1b330dc18ae2386e38 GIT binary patch literal 386440 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%0D#kS^lm0fO#+FHRgSk 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 z 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∋LXPZ=oZ-EA1nlD6rFa+of2=9D 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 literal 0 HcmV?d00001 diff --git a/doc/.sphinx/fonts/UbuntuMono-B.ttf b/doc/.sphinx/fonts/UbuntuMono-B.ttf new file mode 100644 index 0000000000000000000000000000000000000000..7bd6665765768ae885e2868623e7e9c2fd0cfc8a GIT binary patch literal 191400 zcmcG%d3;pW`9J=gduQMGnaoUP?qrfo_DuE!0yBgV0t84{BrJgdA%L<3L-YWRJ2&s=o_p>& z&w0-FoaZbvAx1=25CvK4CypBFTQz$w32(0?N{f!1IJwT8oVJIAU)2)j){dW8TzbbB z^m`(<1+m(%s2|(9sP^g)hzx!rW$)a@v%9`s*&GAI3q-2h=3cu(stM$F5(N(<&b6Ig z^A}(HT>Swe&pNyh&!2sDS29T=_?Ls9X8xj8oy9+^HxX5=Cn3IQ!MxcW=Uxcf5EuNZ zasfP)74!t2C*e7B!QvGwD_$%r#`Ae1UB;rNb7!jt-O@-DswZ;PFP^=!OW&=181IoE zl9tR~Jn!zaU#%hGnsdnT9bHSWUQzbJ?sFtu-%V7st84kZu5Vjk`Xf4Fm;Xbea?fKXF{k30?PbO|iULpKkj3KO+gj5Vp#i7Y7z~fwUdUCq( z^L~FGDfMC8M`=MmCexLqMobG8(^U99q5d68gptV33HwM%Bmo`Zs*_ z8m*`jL_yI@Lb92p=>x3mhm9RZ5>fJ^@N{xIm54*>*LZyR3Zy7#gr^Zs;@rU}^?8D( zkc~1RgOmP1Ga*qC< zA+`h8aQHq4IPvZVv>*dw52ZoW1zB=v9c0>!D;KesBPP)__*Bw^vdOvjA=mt> z1tR^I5pRRY=?|A1?qL6wi5&7P2mI16T{&Km*9i@a#SKuHk1V~v;Tw- zWqUaasS07!AXDc5Kqh(cHV>s!2tFJm5$ZA|zr}MA{0E>-{#|zaAnyPw<$4Q)`&8tL zw}BMW5O)9(|? zvip!KbR(qUeJ6%I2a|{4s|6&4Dd8N7zi#$@LLIf6>Z) zG*#+exwH$x+lTiRi1QrHKq);T=THlpYC$}|yiM|U#8dchwaLqCpw+q&D%BEs{DHRO zMGi{(IrH}c@Z)VO6_3Z^C7K|K{B9j;A%s97bT$5SEv z-H4qba|%G}0@PDIa_xa6CMp9Lep&H67-hoU1+upDAZ!epT*8%#?*S(VVgC)&S^0ai zh^<7r1K=EaUNUg;{^SG~-jmyr0xuISB;a-8!V|AAUPn^Dw0?v%0(yXJhDzisNO9b` zM46y=lz<8SCsh}PxM!lAcx`wnE%`}ub@IyOVyaAbC#R7y*$p0X#7d0?=?Gbd(n_PB z(Qk0)BkpBavN!p9;`^jKS((gDUYA^nn3t~PRms(f?TJ4nUP}BP{C;#LrzJZRn-jlH z^dufie4F^TKebevpvjJ8d*bJbrxSYb z;zP*$qYJW(Ox%#zns`0&Tq2oB$a&zBa;bQ#oIB^iV_lX%?oR$X`B38J#7Bwm68}gR zC3$`R=t{OE+Y+}Ur%xmvO!Ovtf1EN(_`jw7LmFsl$@$5RsJq`l6aNN%dFBuNlQqe@ zWF*P;Qk=%o5?NL!+6R{zy*8PZ45IHh;tiKR8yA<2yN#&JD#V>4``-G4R7pp&KJo8l z8B)BJeuLaSk@$1sT+){`C1)ht{8kT7$1>nxYc=&IWzXTcq{TJF(257EK^U%)EqvvOV7Ra=avf(bGNb)<3#5tf* z$^|WvX({EwT}Jt!<)Gi9PZxq>oC2+qX*CtYT|-gOK~$3b27SL2v{t4=s0{9*R1O-W z3Q*{YkhxdpK2t)}wyUVZ0v%+CYPoU&Hp|w2^8-N6`?_(KHlv46K2#sfpsr zuQ1vS105&R@l*$QGYtoAp?c5>p#Oxm+W;~McG6_f`E&*70-6H4 zkXk{nl<8G8HQ5K7dm89snhv^zW`Hi0X&23edl~5Gu!UxUUQO-E&u9hB2E9h6*U}ug zucHpol{61@l}xXv&g4I6wM^I0e7M)r0?-@iO3)i++D%u%eUnUYrbTeyLW@Dy(Gt*G zK|jT)-UWKQOxM#gxbL9lpd09F(2by<&?dSD^e1#J=$$gXi>`xvGpz)@8}wtkhgN~! zOV@+mN2@{ar!}BIrM0k~eFMr5Um4!Sf<

;rag2I+`H)B>sPuoCWphrMol<79R&Rn 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

K6B~TIT$OQsY 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 literal 0 HcmV?d00001 diff --git a/doc/.sphinx/fonts/UbuntuMono-R.ttf b/doc/.sphinx/fonts/UbuntuMono-R.ttf new file mode 100644 index 0000000000000000000000000000000000000000..fdd309d716629f4e5339d5e5508225ed857a3ede GIT binary patch literal 205748 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ăESk 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 G(fmJpf?fdt literal 0 HcmV?d00001 diff --git a/doc/.sphinx/fonts/UbuntuMono-RI.ttf b/doc/.sphinx/fonts/UbuntuMono-RI.ttf new file mode 100644 index 0000000000000000000000000000000000000000..18f81a29258d13e1d6f1ce98cdd167091ea9bd4a GIT binary patch literal 210216 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 DJ!q!2 literal 0 HcmV?d00001 diff --git a/doc/.sphinx/images/front-page-light.pdf b/doc/.sphinx/images/front-page-light.pdf new file mode 100644 index 0000000000000000000000000000000000000000..bb68cdf8f5c2b6749fa5490253a1695c148ba197 GIT binary patch literal 9676 zcmb_?1yod9)ITL6NH+ow4I)gDBVE!pAdL<%z)*w3&|MM|l7b*Dp-8uMNr|9HsVFH3 zf;0-qH{kO<-+N#E*Z-TfX3d>*_Wj*`cb~HlkFJu65Lj58lxJc7c367=1UI4&R6#jmkr<$g69S7=LRzD3kU(t!6sV7Iu|t}H0AL)^&##4y45=Fy zgG4x!dQCq}^)xV;V2F6x;^~w70`!X6CrKC-v?B~)Bhq8CC1x7H>$<4r6j>~%L`{va zd@m;mKR;KsG}4NLzxWoVDwVDkD7v`VMrB;x&)a)radH27%ZF*Z4Y&O%-|SjpJZ_!K z!oYK>1b}qDkLP_PUK@p9AE`XXBlZfyFT?|xtdz9MuXo6C1H~DAn))sr-JQ9JuX@yq zTwc*B3O&(zRcg?Rhu3$rd&x-~rqTV4Q+t4}Ao>fGv#^&tnpq_(9jLC`jj@U|TX>Z1 z&oHGov}VI@);*UApXzr4??-z1-nqwR)qTDD9J9H0VI=ylF;p#Wh)9;ev@Q!`VR2h8aKdc`MA2jV>IUpQMx z58go|$M++?lppDT#=A8X?NGf+X*Lvq2dg6hc%D#ZEOFp*EBiaPZT5KE&v{2NlIT0f z#6qFa*ap_rgod29)j-%0x&Nj#*QQ6?{fPB}C?shT5%%_bV*xb*1sQ4Sl>WI9@)N1< z6N#_o+r}(?QHx(CrSz1F?FSl~CG?(oJCy}xbmqHxpOi$MfYx+OGaVE7ceC+C2S`-k z=MXG>k_pPA!l&`peYgAJa4D4X+*}4@A*@njKl|MAVVP^xLBeqCA?qg^CQZ8w-kn>ebHcVt{Z}N&Sc#fQ2d$L&hv$nBd8OF*+nK|Ds+Uzm5S(bhx^rvmAZ?6}{_v zUy9ksgvR(Ch<7h&sR-thkBHd=cdlSrVYC)O!q>%f-j3WK@f?|77H7J6=gw${F+vJF zn?^JQ(*!T!71F!0LxY&RhO8=$y-V@ODOMwpR_7)O)&kbRYm#dK57tA5>)j=DL$2!$ zB&?M8BLts|&JNEJ-==NwZl<#&Lx=8nRc}rm(D+HWk_8gV#%1%V(qc(G!fq)LAfUM+ zBMJ>lUaDTo+%#{Z#=G%2?>9sl%S&lDE3opka`oTaQ4=muO}tl=gbl-HVdHnAHF+JA z*!rn$@V)sO6Z{g6(vEI~a3Z*8c{)-j`So~4g~9xr3N*kHo)zxK8<6W&=34~|vfvOo^q4m|-K zgr4GxxqjM>f-BQks_4k*b@*qDLQ-~82vWuc*lv7=KQO$Zx2LOZI8*MY=WQBZI9HsQ zqhE-*fmBb)b0{A$6oN|^eUA~=@XX^I6qr%b1S<8uk7a zLNPHn32_HeJzGruqVGBX%i^x(@XEs5VVf@Vmh(Ei47_T*yS$W|NKK=(rF4(<9}b1+ zUdR*3GiPlvPw@}-GpHY!^bW{yRp{WlsqR%jp*j<+nO{v!)q+`_v9<}yRN2hXj2v2g zF;E3OA1yjPJ>`?Xi(2&*OBEx?pcQMIWSQoj7Ms!*o-i3Uv261j(taO@GIA8R(y5QH zleLkZ%UNp27Q1=P70>p0IJsuJzH(D{g)QxLPIaemyjzm`WHnzkv)C*+_j%TId3u9) zo?-6B%HE{Kd+FhpDgWNCPV0xyy>)7e>OZ->L;#V%RHOWfA<`%Gt42FsNzI|nf-Ttx z%ZFe6oBR+T=v#gLE|-m&_M1)3oW_-sR3h!heS(7oNQ7yAMZXXix3QR>$=8OL7huYPF?-v z{f!L^X?7H~36*4xik;T@gC~yk>F+UTwqbNd%7pJSG#wr=Sx&Zv}YtRK6|OjRj?6AD@E%-vqW=D6VENo z9nMqBJD-@Jq_b(`71f+Ymy%qX9BdFe7BZF~l2Oxwg8HEY6k*A&ye)7!`eV)A3+~}& z;rYya%!bTps3KIyR?Tj+>U-60wWp2FLc=G&7K+-q+Olg#LY{8x%RWWBwU=_p!IzrE z9h`A|_Kw@&qMoUS{6 za@qKRXth3x(+OYebX4Y5UR1suZPGK*3ORl}_ayvb<+VeNs~QyRoojPnSf;;J9NL#) zQQ9k$>>s4RAa|-dt0sK&_bi2O-mt8Wuh3~g7jzcoxwS3*usD=8=rx)t!IU{Xz43TP zPuerc|JK)>`HobU#Rqv0_9Gf1*2jIu>LySVDVKX$hb4|`WNKRX9eXEY$w|qT$uGx$ zjf-I=mzsWU|7LQsV9emvMRBr>qBv#tXWwF1#UBdY5vqM!GoCm9vEl1MH9EhI4L0ka zcgQ_&Gw5mh!LVL$n)Ge%-r8Pz+(BHz@YmsBxS+PX=afgSKYHgl;k852li|KB0Z9#s zj6jcB^Wny+?UGMLz-|ks)ws_AuD9Rxyp_h6KEB@!v}jxl_-0iO-)I!{Fw(wR+vxL| zW#06;`{3#qe+GYNS>vOTarD%OfUeIfpR`spEC>hB4^zM{S~e{DtZq4%zn$19ZH9vA zAXrZcjMswj;rc>LfiG~w?p=0Z#R|uF#4K0I^~LxU_KD--ee2c8#lCdCiP2U*c^&qc z%HFJ#T zCZfI3zWZfJLmHPQ_L{#oEED4=nZr{%9c z@Hz(V?ux5`;Xnfn!o|%MfkC=hdjl2WKqaIH${MMET>+>Dz+&8yGPuuQ<*tRPM%E=2w-uIP4mUV-2G1@XOmPBX7 z_{4h#Oh43(i<pHZ(J?7(caV!r%kYq#uHT?Ip?V2S^W!g)l5>1|^0!yI`l zzD)l&gB``|j<*iqm)S;q-`pZlIUJ#Ad>UdZ74f#=#@Ce;$BwqpFeT$?AgMqbt10?k zoI%U?1$}#~1YzBvXBJ3xVuaj}g53f{`Ma(EZ`|7z&c%?YPsaiGRV@OwRaBSnv7M1x|E;cR)Gr6`A zTdlbN4SP`Qns~-jC-o&ed zm@uJ31r=kPX~RmY>%bpbvFaTP#gBxP?>P}4&fPDgZ0>*IOJtr><{FttzI<3Q-)tJu zV$XRQeXeY~{&M+A>ksc;&Z0Xn17`R0j+vkF#@!YENJbD;enjerNEDrsrXWcmo8bV- ze{^!&ZZLcxmjh}h>+wuuf1bX&QxB|B-0uGSy|8C zUJ7eWJ!gg_I!w)H@?%+_?uZ>728Aq-GfSu)d$~6?y+=Dzs(a_vV|Jq-RfcYch(V^o&l&ZE!TUd`p$c~umt>=urFuILh7Ajw0+>5g#T0GXYSh<)@` zHOxOEjqQ0smia4dEkfxsQkA}h;rb-feD_AAuB^>$fNI2ism_yBNkK5O9Xq0#|xd$%E|E@~Ujf;~$ib}q{1{x3V zEIocLaF>;wFKC|Q6?qf;PK~xBV0zhJGk=7I+d=;%`Mb$2Z;})W{f8{N>FT78TIoB@ z$~#k3TuY@b^!}4d)XL)T1i6EJRju#%;M?uJQ8a$}{laBVGwiuY{_oslQF7x z3Y6vomv|0H67lq}-+YcAVJ>=9t|5J6F)$bIaQK=g{c64brP3z*j2z><9Nyx@^Nw5c zPOy8oFOf|y%@BqMrAN!-*%GEYX}R1q7G&||*6$M_w4k#P=PwN(O!010?$Fh}H!7D| z%W;9F%NHP0JW$MK{Uih$l6zcfO>0Z%vn4l*48hh)5%%9#t^&KWs!F zoCR;P>B@MLe0*or59;+&nb;1%Ckj$Ns^{F^USiAA|956OjO8MmXX zil++{v@@>w7+;FW+3z6rmf^7}jqTzKuibgzvm73ob?Dca7x2N4(d?zWhsE0Nbb@_{ z_fe`x8@vT!)fo;RciLVn@7=94w+wx>0j zsmC=iT4k9?j`J=#G>l^kcXHv6`}Fx#0dQ-)$qW{0etPyc%~*~r_FYDXJjwK?nD&Og z2vxsjQhrcNvg96b9C4zJ@7A~x^<3@c)TPh(4UK!yR3N)~9@7JDBBudVS3{W32nUl$ zY-z(?*>j3?iZaBpLlQSY^K*@Ht8n>2c@ zB-Y@N@kAqJzp?7bvl$-ic|7Or#7eDQsk@zb9;UPE^iM`oIPRN;Yk!^6%-=0xx^xE- z5*J;m$Jvq^GM-OAZu)1LR!W{cg;RL!_Ia2H)+rk$p{KsB!LN$V27RNu z8@ukk1HU?+Ringk_gwb(VtV407tbv2M&J@_Re}q z%K2aw&f#x{hH~Vr;NVf&KI*M^lq0Xx8=g;S`XA5EsO;EOUMuvkd*fQbl~H~DnKENf zk0IBgHN#3tR`@_pCYE_C8JaAM0tX2aKiWu{{ca z!?+Bt@B0w!+@lt1vz!iU-2uWLnxrl?8>z&M^wy0}u2lEj$RB(()^$U*{q8fh5qgtu zh2egg0HP(m1Gt1zJe0gY>{V@XF8|#tj)xoxRAH~*QR;5rpCMCq<1wjR+LWL=x4}%$ zhH+&Pf)yd?FNqFFY?+2Q-o^|At4eF_ z`ARZH>=R{e#y;`LC$i0p)7L#|jV)LqExDXe3D_t!!|J0-H;<3tK`6=u!)2`xO3}*s_cS;c5&}AlZ1}0ei+na*o^2l<0F>O z7^APK5;qq-EqmcLg7H@Shv7?v$=etYoxxsGU5B_q zkyr%>B4W+?o%kqbYE^S=Hc4q=uAZExBva}X1FOH>)e%gFT%~U8oe;P1){hB~W+YOn zWwQi>ufj!!l&UD)b4nFAw#AmR@v6Ix-|{>_5?!NL9i_OWsm@3#H5i#hoYh^cWVv!X z*q(XRQfNBZiDPV>5EZ=c@a?7JgEy4L=kyh~V;vA=NjdnA!8^}xb59hvL^-l;eKZw+ z+Nk^iLqdLw%;xSCSAvifz>>X>foL==YlK0Sk>z%UQ2$fr8={0oH0Bw2scS!iUHW&b zrOT)4hY4Mo5iXnRVS`tj4#FA={9_Y38x}a$Df`Y@e{qxr+-In;xv)qey0IW?4JF>| zXtZfv>rXR{>faAV&H^lshk~12M+DHa8`4MI?ZPE#Q;Rtk6-gJe$QsBNB4@poc>uN* zm)pr~+mcczIif07FZ8YQQZBi(vyPC}s2jCgeq4WdO)550xipx>isvZGZIi zOI0z;fT4iUn~3$4n#z3s)US+8;^aHQfx+fRI!7A9OM>_n*q4MsY-njbrWEgwz;OIn zI=r+o%ih?a;If2JQ_Y83`&Xhc%)U=-DM@&rlpQzQ(biI4v~|)OCk*Yd#&S?eF!3|C zGRUQE4lEIpKrPdYo5(ICt*)o&PUccDcr4>}EfnLD_#HM`Y1gy@;|me}YKqTaofNr4 zwzr0fUoK}kSeem2UTC_fFgMN?{k+3;SF}kVB>E!>B3o zR3w$7vZn+%lg(kJDncW)Fz{ldW9U1l3l@!Eyep(GMHJY{@zPBj_NCcgijF5^jSP8_ zp4EED3#;Yfkt1w!qI;DRIk>ngdUczkiYi zuEhp=xlgkjW|uRriIG}}v0v4?ycP@V2+Dcqrc0T~NX$gK4%Aw_`pwj`0rqh0x%Wuk zvmu=%m|xP6)&@{954|;@<;rAQw(_`|zX~Drn%;J%Q!M?WzdABYwaPd(CP!=k+9>G3 z(t@@k&qhH73k7noS>?loj10xr?8BWYn5;~Qf6^gquZXkG?6aFdhJ=p782VRX>l_QX5}C@qm%eqo#X0sOypNa5vW9YHV%L_*0u3< zrk9cE&4OA<6BO&lQtN+QiP1lzi!yLua~e63~l~K?7i_I zn?1cX%I|8U`)Zv8jbDq`;l`-n^X_8WjwbXTz4AAZLC;E(^*urNH_J1M(V-VI~^{wAP1WSh7Gz zzMb7bLjBt2f3K8Jm%yj1W2l(8_^*|+*dJqmb#Fw^7PSBF-u%97jn(gP=mK4A`6P&C z*G#$EU$-7wHNVVvv5t+Qx9%jOAE|9x6ilO=XScGl(i1Ts_3_vf#;WsfCd~2{x$Fkq zO7jM*reKp%ni2OUn9)IIX8t6Uh~+v%-}9Zlir`OCjX7x{k{rInHwb>iw|Kg&f zgk!5sD{?*cG1ojxD4V|-7dQFmEWv!yn~z`)qEzHUnb$^1UM3~S@VIC>oYyyf!lS9o zL0`(A{Om^D)9u)j{IVC&kMpi>2$sW7mc5r@)y4tY;XNM z8-El20pqFhCgF*6YiOpXxuCAE56!Tx=eIWYayP-S2Gpm=43|@iXCv%Fipp1bvSb4* zCfon5om07=X$SJxHpXw-!D0}uu1FgIzb(Sa4JkkhRK#`6uxJc`ACAPJYytANwkQ`A z)*GONbVJ#>ATa>2Fc>5(hNCn1XtdJ|h4k_e>va`qj!a$*2lyE&d0KXCp z0)pW7D?v~&NK`^ZQV_sRCXK|uY!57cW_)K`GFnJ1!Ulmw{JAG%tfl#v4NA#+xgx9` zkywBg(hlV!&AIWcjT3;fk>)fK)dFd`DkAMssy-Mb+(+BM+Q-pa(uPx3h7^GNNO{4$ zoL!x9=m0NgCl@!Emoz5=w`+ui;jT}Ift)`HaikapEy=US%g*_G0 z*`yNM+T9uHg8dU1BC05+2$B#|fQl&!fpLZ+Bq1g*FQlTR0#XqXg@BbMA-{lsyZ29E zDd6dQ|0ak3X9@lH^7&2TKi>g%<|W8eLiJ%Qya4EdAj}XS9C;{eNo0 z^*2}eo2B9=aFz=FhneC=VZQ=|%zqLeeuf7DDd67-{|}kP`S>4>`%iAY{&RM{V1EQ$ znX`C%#@SzE|5u#ZSpUhFt2@T&ES%U_1CdV1Q?GNwu?GH!ByFr=*wb+Sm*bqd>#1AG zJ7NDm`bXGtLY)Q}m=o^cg*2y^kPXrn;qHXxl=){q_-PVOsK0~!9Q_Bj6!71C{FfH> za{?Dee*)vI`&R&#A^j_i!e_?}Ux5y_Z`PCACTHFi`5v>ZcLx%lZM#)HMaWiCQ*--YDamlQ^N?;oE{6;t~M$62qn zRNa>}eUzx2DbIO3*I?W1UBXAY?r(0MSkYoLl@B+J{5k%u&ofD%>JuXIXQ=}@RoLkm zPM!a*J%4K0SRZK%G%^F@4j4f!fN+!#5&(e!_0ec70Q|GPqvm3Z27phiCVilql9`l< z0$2$I7Keb8mBF~or2+zriONI3P!%y{5vYnhSmuAGu)uY2P7g2XA~4QwIOY`5PVUYw zZU9lBE(U3XvOX=rzz`XkUx%N-V9~P-3IP0W9y~)}iV$5orP0Il1Yw=gy_1zxH0s8L z*DC7AcPHOAP+c>nxps*LymbH+sh3EP!GlIA^4l!NmZz2H1SRxqv)wfY3d1!XH}Lhv zc?QgFdt|@V^Vlz|`aUbO$GwU82;7n)9UROMwUll#sK6&$xK#9SspCon4Au*Sv?Y~< Og21FaJjyyMr2heHrkTzF literal 0 HcmV?d00001 diff --git a/doc/.sphinx/images/front-page.png b/doc/.sphinx/images/front-page.png new file mode 100644 index 0000000000000000000000000000000000000000..c80e8430393b328d2eaf7640dbd7dc3bf3e6d3d3 GIT binary patch literal 75868 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%0AAdw;Up^H(R3M=qHq#wR@ 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 z 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 literal 0 HcmV?d00001 diff --git a/doc/.sphinx/images/normal-page-footer.pdf b/doc/.sphinx/images/normal-page-footer.pdf new file mode 100644 index 0000000000000000000000000000000000000000..dfd73cbc7e2f28fffa73fbc5e27317f5dc1f1148 GIT binary patch literal 5532 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 literal 0 HcmV?d00001 diff --git a/doc/.sphinx/latex_elements_template.txt b/doc/.sphinx/latex_elements_template.txt new file mode 100644 index 000000000000..2b13b514ad75 --- /dev/null +++ b/doc/.sphinx/latex_elements_template.txt @@ -0,0 +1,119 @@ +{ + 'papersize': 'a4paper', + 'pointsize': '11pt', + 'fncychap': '', + 'preamble': r''' +%\usepackage{charter} +%\usepackage[defaultsans]{lato} +%\usepackage{inconsolata} +\setmainfont[UprightFont = *-R, BoldFont = *-B, ItalicFont=*-RI, Extension = .ttf]{Ubuntu} +\setmonofont[UprightFont = *-R, BoldFont = *-B, ItalicFont=*-RI, Extension = .ttf]{UbuntuMono} +\usepackage[most]{tcolorbox} +\tcbuselibrary{breakable} +\usepackage{lastpage} +\usepackage{tabto} +\usepackage{ifthen} +\usepackage{etoolbox} +\usepackage{fancyhdr} +\usepackage{graphicx} +\usepackage{titlesec} +\usepackage{fontspec} +\usepackage{tikz} +\usepackage{changepage} +\usepackage{array} +\usepackage{tabularx} +\definecolor{yellowgreen}{RGB}{154, 205, 50} +\definecolor{title}{RGB}{76, 17, 48} +\definecolor{subtitle}{RGB}{116, 27, 71} +\definecolor{label}{RGB}{119, 41, 100} +\definecolor{copyright}{RGB}{174, 167, 159} +\makeatletter +\def\tcb@finalize@environment{% + \color{.}% hack for xelatex + \tcb@layer@dec% +} +\makeatother +\newenvironment{sphinxclassprompt}{\color{yellowgreen}\setmonofont[Color = 9ACD32, UprightFont = *-R, Extension = .ttf]{UbuntuMono}}{} +\tcbset{enhanced jigsaw, colback=black, fontupper=\color{white}} +\newtcolorbox{termbox}{use color stack, breakable, colupper=white, halign=flush left} +\newenvironment{sphinxclassterminal}{\setmonofont[Color = white, UprightFont = *-R, Extension = .ttf]{UbuntuMono}\sphinxsetup{VerbatimColor={black}}\begin{termbox}}{\end{termbox}} +\newcommand{\dimtorightedge}{% + \dimexpr\paperwidth-1in-\hoffset-\oddsidemargin\relax} +\newcommand{\dimtotop}{% + \dimexpr\height-1in-\voffset-\topmargin-\headheight-\headsep\relax} +\newtoggle{tpage} +\AtBeginEnvironment{titlepage}{\global\toggletrue{tpage}} +\fancypagestyle{plain}{ + \fancyhf{} + \fancyfoot[R]{\thepage\ of \pageref*{LastPage}} + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0pt} +} +\fancypagestyle{normal}{ + \fancyhf{} + \fancyfoot[R]{\thepage\ of \pageref*{LastPage}} + \renewcommand{\headrulewidth}{0pt} + \renewcommand{\footrulewidth}{0pt} +} +\fancypagestyle{titlepage}{% + \fancyhf{} + \fancyfoot[L]{\footnotesize \textcolor{copyright}{© 2024 Canonical Ltd. All rights reserved.}} +} +\newcommand\sphinxbackoftitlepage{\thispagestyle{titlepage}} +\titleformat{\chapter}[block]{\Huge \color{title} \bfseries\filright}{\thechapter .}{1.5ex}{} +\titlespacing{\chapter}{0pt}{0pt}{0pt} +\titleformat{\section}[block]{\huge \bfseries\filright}{\thesection .}{1.5ex}{} +\titlespacing{\section}{0pt}{0pt}{0pt} +\titleformat{\subsection}[block]{\Large \bfseries\filright}{\thesubsection .}{1.5ex}{} +\titlespacing{\subsection}{0pt}{0pt}{0pt} +\setcounter{tocdepth}{1} +\renewcommand\pagenumbering[1]{} +''', + 'sphinxsetup': 'verbatimwithframe=false, pre_border-radius=0pt, verbatimvisiblespace=\\phantom{}, verbatimcontinued=\\phantom{}', + 'extraclassoptions': 'openany,oneside', + 'maketitle': r''' +\begin{titlepage} +\begin{flushleft} + \begin{tikzpicture}[remember picture,overlay] + \node[anchor=south east, inner sep=0] at (current page.south east) { + \includegraphics[width=\paperwidth, height=\paperheight]{front-page-light} + }; + \end{tikzpicture} +\end{flushleft} + +\vspace*{3cm} + +\begin{adjustwidth}{8cm}{0pt} +\begin{flushleft} + \huge \textcolor{black}{\textbf{}{\raggedright{$PROJECT}}} +\end{flushleft} +\end{adjustwidth} + +\vfill + +\begin{adjustwidth}{8cm}{0pt} +\begin{tabularx}{0.5\textwidth}{ l l } + \textcolor{lightgray}{© 2024 Canonical Ltd.} & \hspace{3cm} \\ + \textcolor{lightgray}{All rights reserved.} & \hspace{3cm} \\ + & \hspace{3cm} \\ + & \hspace{3cm} \\ + +\end{tabularx} +\end{adjustwidth} + +\end{titlepage} +\RemoveFromHook{shipout/background} +\AddToHook{shipout/background}{ + \begin{tikzpicture}[remember picture,overlay] + \node[anchor=south west, align=left, inner sep=0] at (current page.south west) { + \includegraphics[width=\paperwidth]{normal-page-footer} + }; + \end{tikzpicture} + \begin{tikzpicture}[remember picture,overlay] + \node[anchor=north east, opacity=0.5, inner sep=35] at (current page.north east) { + \includegraphics[width=4cm]{Canonical-logo-4x} + }; + \end{tikzpicture} + } +''', +} \ No newline at end of file diff --git a/doc/Makefile.sp b/doc/Makefile.sp index d40405976fd1..f5a1be7bc1a1 100644 --- a/doc/Makefile.sp +++ b/doc/Makefile.sp @@ -17,10 +17,11 @@ VENV = $(VENVDIR)/bin/activate TARGET = * ALLFILES = *.rst **/*.rst ADDPREREQS ?= +REQPDFPACKS = latexmk fonts-freefont-otf texlive-latex-recommended texlive-latex-extra texlive-fonts-recommended texlive-font-utils texlive-lang-cjk texlive-xetex plantuml xindy tex-gyre dvipng .PHONY: sp-full-help sp-woke-install sp-pa11y-install sp-install sp-run sp-html \ sp-epub sp-serve sp-clean sp-clean-doc sp-spelling sp-spellcheck sp-linkcheck sp-woke \ - sp-pa11y Makefile.sp sp-vale + sp-pa11y sp-pdf-prep-force sp-pdf-prep sp-pdf Makefile.sp sp-vale sp-full-help: $(VENVDIR) @. $(VENV); $(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) @@ -114,7 +115,25 @@ sp-vale: sp-install @echo "" @. $(VENV); vale --config "$(SPHINXDIR)/vale.ini" --glob='*.{md,txt,rst}' $(TARGET) - +sp-pdf-prep: sp-install + @for packageName in $(REQPDFPACKS); do (dpkg-query -W -f='$${Status}' $$packageName 2>/dev/null | \ + grep -c "ok installed" >/dev/null && echo "Package $$packageName is installed") && continue || \ + (echo "\nPDF generation requires the installation of the following packages: $(REQPDFPACKS)" && \ + echo "" && echo "Run sudo make pdf-prep-force to install these packages" && echo "" && echo \ + "Please be aware these packages will be installed to your system") && exit 1 ; done + +sp-pdf-prep-force: + apt-get update + apt-get upgrade -y + apt-get install --no-install-recommends -y $(REQPDFPACKS) \ + +sp-pdf: sp-pdf-prep + @. $(VENV); sphinx-build -M latexpdf "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) + @rm ./$(BUILDDIR)/latex/front-page-light.pdf || true + @rm ./$(BUILDDIR)/latex/normal-page-footer.pdf || true + @find ./$(BUILDDIR)/latex -name "*.pdf" -exec mv -t ./$(BUILDDIR) {} + + @rm -r $(BUILDDIR)/latex + @echo "\nOutput can be found in ./$(BUILDDIR)\n" # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). diff --git a/doc/conf.py b/doc/conf.py index e0c23fdd7d48..48a0c4f96e28 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -4,6 +4,7 @@ from urllib.parse import urlparse from git import Repo, InvalidGitRepositoryError import time +import ast sys.path.append('./') from custom_conf import * @@ -25,7 +26,7 @@ extensions = [ 'sphinx_design', 'sphinx_copybutton', - 'sphinxcontrib.jquery', + 'sphinxcontrib.jquery' ] # Only add redirects extension if any redirects are specified. @@ -210,4 +211,28 @@ def get_contributors_for_file(github_url, github_folder, pagename, page_source_s return sorted_contributors_list html_context['get_contribs'] = get_contributors_for_file -############################################################# + +############################################################ +### PDF configuration +############################################################ + +latex_additional_files = [ + "./.sphinx/fonts/Ubuntu-B.ttf", + "./.sphinx/fonts/Ubuntu-R.ttf", + "./.sphinx/fonts/Ubuntu-RI.ttf", + "./.sphinx/fonts/UbuntuMono-R.ttf", + "./.sphinx/fonts/UbuntuMono-RI.ttf", + "./.sphinx/fonts/UbuntuMono-B.ttf", + "./.sphinx/images/Canonical-logo-4x.png", + "./.sphinx/images/front-page-light.pdf", + "./.sphinx/images/normal-page-footer.pdf", +] + +latex_engine = 'xelatex' +latex_show_pagerefs = True +latex_show_urls = 'footnote' + +with open(".sphinx/latex_elements_template.txt", "rt") as file: + latex_config = file.read() + +latex_elements = ast.literal_eval(latex_config.replace("$PROJECT", project)) diff --git a/doc/custom_conf.py b/doc/custom_conf.py index a5e2de6ac1a7..b4dd2c263ef4 100644 --- a/doc/custom_conf.py +++ b/doc/custom_conf.py @@ -196,7 +196,8 @@ 'sphinx.ext.intersphinx', 'canonical.config-options', 'sphinx_remove_toctrees', - 'canonical.filtered-toc' + 'canonical.filtered-toc', + 'sphinxcontrib.inkscapeconverter' ] # Add custom required Python modules that must be added to the @@ -209,7 +210,8 @@ custom_required_modules = [ 'gitpython', 'pyyaml', - 'sphinx-remove-toctrees' + 'sphinx-remove-toctrees', + "sphinxcontrib-svg2pdfconverter" ] # Add files or directories that should be excluded from processing. diff --git a/doc/index.md b/doc/index.md index dbba9cc44799..809b77e4f51e 100644 --- a/doc/index.md +++ b/doc/index.md @@ -16,7 +16,11 @@ LXD ( Date: Mon, 12 Aug 2024 10:50:55 +0000 Subject: [PATCH 018/169] build(deps): bump golang.org/x/text from 0.16.0 to 0.17.0 Bumps [golang.org/x/text](https://github.com/golang/text) from 0.16.0 to 0.17.0. - [Release notes](https://github.com/golang/text/releases) - [Commits](https://github.com/golang/text/compare/v0.16.0...v0.17.0) --- updated-dependencies: - dependency-name: golang.org/x/text dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index b5674175c58c..7d7eeab33e04 100644 --- a/go.mod +++ b/go.mod @@ -59,7 +59,7 @@ require ( golang.org/x/sync v0.8.0 golang.org/x/sys v0.23.0 golang.org/x/term v0.22.0 - golang.org/x/text v0.16.0 + golang.org/x/text v0.17.0 google.golang.org/protobuf v1.34.2 gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637 gopkg.in/yaml.v2 v2.4.0 diff --git a/go.sum b/go.sum index fd8da885eb76..08bb93f6781b 100644 --- a/go.sum +++ b/go.sum @@ -934,8 +934,8 @@ golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= golang.org/x/text v0.4.0/go.mod h1:mrYo+phRRbMaCq/xk9113O4dZlRixOauAjOtrjsXDZ8= -golang.org/x/text v0.16.0 h1:a94ExnEXNtEwYLGJSIUxnWoxoRz/ZcCsV63ROupILh4= -golang.org/x/text v0.16.0/go.mod h1:GhwF1Be+LQoKShO3cGOHzqOgRrGaYc9AvblQOmPVHnI= +golang.org/x/text v0.17.0 h1:XtiM5bkSOt+ewxlOE/aE/AKEHibwj/6gvWMl9Rsh0Qc= +golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= From 8be9c51eaa22464f1e458517231f109f1f4ee39c Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Mon, 12 Aug 2024 14:12:50 +0200 Subject: [PATCH 019/169] doc: ignore anchor for link checking Signed-off-by: Ruth Fuchss --- doc/custom_conf.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/doc/custom_conf.py b/doc/custom_conf.py index b4dd2c263ef4..a73188779ecf 100644 --- a/doc/custom_conf.py +++ b/doc/custom_conf.py @@ -166,7 +166,8 @@ # (This list will be appended to linkcheck_anchors_ignore_for_url) custom_linkcheck_anchors_ignore_for_url = [ - r'https://snapcraft\.io/docs/.*' + r'https://snapcraft\.io/docs/.*', + 'https://docs.docker.com/network/packet-filtering-firewalls/' ] linkcheck_exclude_documents = [r'.*/manpages/.*'] From 5788f4eda9f67e6ff3dfe3209ccd727719409c04 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 18:26:05 +0000 Subject: [PATCH 020/169] build(deps): bump golang.org/x/crypto from 0.25.0 to 0.26.0 Bumps [golang.org/x/crypto](https://github.com/golang/crypto) from 0.25.0 to 0.26.0. - [Commits](https://github.com/golang/crypto/compare/v0.25.0...v0.26.0) --- updated-dependencies: - dependency-name: golang.org/x/crypto dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 7d7eeab33e04..c34a15a11504 100644 --- a/go.mod +++ b/go.mod @@ -53,12 +53,12 @@ require ( github.com/zitadel/oidc/v3 v3.26.0 go.starlark.net v0.0.0-20240725214946-42030a7cedce go.uber.org/zap v1.27.0 - golang.org/x/crypto v0.25.0 + golang.org/x/crypto v0.26.0 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 golang.org/x/oauth2 v0.22.0 golang.org/x/sync v0.8.0 golang.org/x/sys v0.23.0 - golang.org/x/term v0.22.0 + golang.org/x/term v0.23.0 golang.org/x/text v0.17.0 google.golang.org/protobuf v1.34.2 gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637 diff --git a/go.sum b/go.sum index 08bb93f6781b..a0016267d191 100644 --- a/go.sum +++ b/go.sum @@ -743,8 +743,8 @@ golang.org/x/crypto v0.0.0-20210711020723-a769d52b0f97/go.mod h1:GvvjBRRGRdwPK5y golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20211215153901-e495a2d5b3d3/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.1.0/go.mod h1:RecgLatLF4+eUMCP1PoPZQb+cVrJcOPbHkTkbkB9sbw= -golang.org/x/crypto v0.25.0 h1:ypSNr+bnYL2YhwoMt2zPxHFmbAN1KZs/njMG3hxUp30= -golang.org/x/crypto v0.25.0/go.mod h1:T+wALwcMOSE0kXgUAnPAHqTLW+XHgcELELW8VaDgm/M= +golang.org/x/crypto v0.26.0 h1:RrRspgV4mU+YwB4FYnuBoKsUapNIL5cohGAmSH3azsw= +golang.org/x/crypto v0.26.0/go.mod h1:GY7jblb9wI+FOo5y8/S2oY4zWP07AkOJ4+jxCqdqn54= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= @@ -922,8 +922,8 @@ golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= -golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 892afafd06583b4c4fa5433bad7187b350632715 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 18:26:09 +0000 Subject: [PATCH 021/169] build(deps): bump golang.org/x/term from 0.22.0 to 0.23.0 Bumps [golang.org/x/term](https://github.com/golang/term) from 0.22.0 to 0.23.0. - [Commits](https://github.com/golang/term/compare/v0.22.0...v0.23.0) --- updated-dependencies: - dependency-name: golang.org/x/term dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 7d7eeab33e04..4a9c8aa7e954 100644 --- a/go.mod +++ b/go.mod @@ -58,7 +58,7 @@ require ( golang.org/x/oauth2 v0.22.0 golang.org/x/sync v0.8.0 golang.org/x/sys v0.23.0 - golang.org/x/term v0.22.0 + golang.org/x/term v0.23.0 golang.org/x/text v0.17.0 google.golang.org/protobuf v1.34.2 gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637 diff --git a/go.sum b/go.sum index 08bb93f6781b..0efd55ee88ae 100644 --- a/go.sum +++ b/go.sum @@ -922,8 +922,8 @@ golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.22.0 h1:BbsgPEJULsl2fV/AT3v15Mjva5yXKQDyKf+TbDz7QJk= -golang.org/x/term v0.22.0/go.mod h1:F3qCibpT5AMpCRfhfT53vVJwhLtIVHhB9XDjfFvnMI4= +golang.org/x/term v0.23.0 h1:F6D4vR+EHoL9/sWAWgAR1H2DcHr4PareCbAaCo1RpuU= +golang.org/x/term v0.23.0/go.mod h1:DgV24QBUrK6jhZXl+20l6UWznPlwAHm1Q1mGHtydmSk= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= From 1b3357ceb80bc7c3be859b41c13f0bc8cec58e82 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 12 Aug 2024 18:59:14 +0000 Subject: [PATCH 022/169] build(deps): bump golang.org/x/sys from 0.23.0 to 0.24.0 Bumps [golang.org/x/sys](https://github.com/golang/sys) from 0.23.0 to 0.24.0. - [Commits](https://github.com/golang/sys/compare/v0.23.0...v0.24.0) --- updated-dependencies: - dependency-name: golang.org/x/sys dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index c34a15a11504..682f6372185d 100644 --- a/go.mod +++ b/go.mod @@ -57,7 +57,7 @@ require ( golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 golang.org/x/oauth2 v0.22.0 golang.org/x/sync v0.8.0 - golang.org/x/sys v0.23.0 + golang.org/x/sys v0.24.0 golang.org/x/term v0.23.0 golang.org/x/text v0.17.0 google.golang.org/protobuf v1.34.2 diff --git a/go.sum b/go.sum index a0016267d191..c4c93267eb5d 100644 --- a/go.sum +++ b/go.sum @@ -917,8 +917,8 @@ golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.23.0 h1:YfKFowiIMvtgl1UERQoTPPToxltDeZfbj4H7dVUCwmM= -golang.org/x/sys v0.23.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= +golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= +golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.1.0/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= From 524000087acee9a9f508ad70f2ff85b13af3b717 Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Tue, 13 Aug 2024 09:10:39 +0200 Subject: [PATCH 023/169] doc/pdf: make PDF build work on RTD Signed-off-by: Ruth Fuchss --- doc/custom_conf.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/custom_conf.py b/doc/custom_conf.py index a73188779ecf..3b41ffd0c049 100644 --- a/doc/custom_conf.py +++ b/doc/custom_conf.py @@ -198,7 +198,7 @@ 'canonical.config-options', 'sphinx_remove_toctrees', 'canonical.filtered-toc', - 'sphinxcontrib.inkscapeconverter' + 'sphinxcontrib.cairosvgconverter' ] # Add custom required Python modules that must be added to the @@ -212,7 +212,7 @@ 'gitpython', 'pyyaml', 'sphinx-remove-toctrees', - "sphinxcontrib-svg2pdfconverter" + 'sphinxcontrib-svg2pdfconverter[CairoSVG]' ] # Add files or directories that should be excluded from processing. From fff8051697e4ff3eb6ed43b4a2d1bc489511aa9f Mon Sep 17 00:00:00 2001 From: hamistao Date: Tue, 13 Aug 2024 17:19:36 -0300 Subject: [PATCH 024/169] lxd/instance/drivers: Improve device ID generation This applies the same approach of generating device IDs for dir passthrough devices to physical PCI and GPU devices. This avoids issues with duplicate device IDs due to QEMU's internal trimming of the device ID. Also supports using `/` in physical GPU and PCI device names. Signed-off-by: hamistao --- lxd/instance/drivers/driver_qemu_templates.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lxd/instance/drivers/driver_qemu_templates.go b/lxd/instance/drivers/driver_qemu_templates.go index dd491bcad188..3a149191a103 100644 --- a/lxd/instance/drivers/driver_qemu_templates.go +++ b/lxd/instance/drivers/driver_qemu_templates.go @@ -797,7 +797,7 @@ func qemuPCIPhysical(opts *qemuPCIPhysicalOpts) []cfgSection { return []cfgSection{{ // Devices use "lxd_" prefix indicating that this is a user named device. - name: fmt.Sprintf(`device "dev-lxd_%s"`, opts.devName), + name: fmt.Sprintf(`device "%s"`, qemuDeviceNameOrID(qemuDeviceIDPrefix, opts.devName, "", qemuDeviceIDMaxLength)), comment: fmt.Sprintf(`PCI card ("%s" device)`, opts.devName), entries: entries, }} @@ -833,7 +833,7 @@ func qemuGPUDevPhysical(opts *qemuGPUDevPhysicalOpts) []cfgSection { return []cfgSection{{ // Devices use "lxd_" prefix indicating that this is a user named device. - name: fmt.Sprintf(`device "dev-lxd_%s"`, opts.devName), + name: fmt.Sprintf(`device "%s"`, qemuDeviceNameOrID(qemuDeviceIDPrefix, opts.devName, "", qemuDeviceIDMaxLength)), comment: fmt.Sprintf(`GPU card ("%s" device)`, opts.devName), entries: entries, }} From 6e9b7d957d25615255f0e4e76954ca9c64a308e2 Mon Sep 17 00:00:00 2001 From: hamistao Date: Tue, 13 Aug 2024 23:56:36 -0300 Subject: [PATCH 025/169] lxd/instance/drivers: Update unit tests to fit character escaping Signed-off-by: hamistao --- lxd/instance/drivers/driver_qemu_config_test.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lxd/instance/drivers/driver_qemu_config_test.go b/lxd/instance/drivers/driver_qemu_config_test.go index 2811ae893c50..cc297d7d04cf 100644 --- a/lxd/instance/drivers/driver_qemu_config_test.go +++ b/lxd/instance/drivers/driver_qemu_config_test.go @@ -936,7 +936,7 @@ func TestQemuConfigTemplates(t *testing.T) { pciSlotName: "host-slot", }, `# PCI card ("physical-pci-name" device) - [device "dev-lxd_physical-pci-name"] + [device "dev-lxd_physical--pci--name"] driver = "vfio-pci" bus = "qemu_pcie1" addr = "00.0" @@ -948,7 +948,7 @@ func TestQemuConfigTemplates(t *testing.T) { pciSlotName: "host-slot-ccw", }, `# PCI card ("physical-ccw-name" device) - [device "dev-lxd_physical-ccw-name"] + [device "dev-lxd_physical--ccw--name"] driver = "vfio-ccw" multifunction = "on" host = "host-slot-ccw"`, @@ -969,7 +969,7 @@ func TestQemuConfigTemplates(t *testing.T) { pciSlotName: "gpu-slot", }, `# GPU card ("gpu-name" device) - [device "dev-lxd_gpu-name"] + [device "dev-lxd_gpu--name"] driver = "vfio-pci" bus = "qemu_pcie1" addr = "00.0" @@ -982,7 +982,7 @@ func TestQemuConfigTemplates(t *testing.T) { vga: true, }, `# GPU card ("gpu-name" device) - [device "dev-lxd_gpu-name"] + [device "dev-lxd_gpu--name"] driver = "vfio-ccw" multifunction = "on" host = "gpu-slot" @@ -994,7 +994,7 @@ func TestQemuConfigTemplates(t *testing.T) { vgpu: "vgpu-dev", }, `# GPU card ("vgpu-name" device) - [device "dev-lxd_vgpu-name"] + [device "dev-lxd_vgpu--name"] driver = "vfio-pci" bus = "qemu_pcie1" addr = "00.0" From 8d74356060745346b09e279deddea5000892dd78 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 14 Aug 2024 11:24:51 +0100 Subject: [PATCH 026/169] gomod: Update OpenFGA dependency. Signed-off-by: Mark Laing --- go.mod | 5 +++-- go.sum | 58 ++++++++-------------------------------------------------- 2 files changed, 11 insertions(+), 52 deletions(-) diff --git a/go.mod b/go.mod index 682f6372185d..755f182ec3b3 100644 --- a/go.mod +++ b/go.mod @@ -38,9 +38,9 @@ require ( github.com/mitchellh/mapstructure v1.5.0 github.com/oklog/ulid/v2 v2.1.0 github.com/olekukonko/tablewriter v0.0.5 - github.com/openfga/api/proto v0.0.0-20240723155248-7e5be7b65c27 + github.com/openfga/api/proto v0.0.0-20240807201305-c96ec773cae9 github.com/openfga/language/pkg/go v0.2.0-beta.0 - github.com/openfga/openfga v1.5.6 + github.com/openfga/openfga v1.5.9 github.com/osrg/gobgp/v3 v3.29.0 github.com/pkg/sftp v1.13.6 github.com/pkg/xattr v0.4.10 @@ -150,6 +150,7 @@ require ( go.uber.org/multierr v1.11.0 // indirect golang.org/x/mod v0.19.0 // indirect golang.org/x/net v0.27.0 // indirect + golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.23.0 // indirect google.golang.org/genproto/googleapis/api v0.0.0-20240730163845-b1a4ccb954bf // indirect google.golang.org/genproto/googleapis/rpc v0.0.0-20240730163845-b1a4ccb954bf // indirect diff --git a/go.sum b/go.sum index c4c93267eb5d..225d58bc6d90 100644 --- a/go.sum +++ b/go.sum @@ -36,13 +36,9 @@ cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0Zeo cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dario.cat/mergo v1.0.0 h1:AGCNq9Evsj31mOgNPcLyXc+4PNABt905YmuqPYYpBWk= -dario.cat/mergo v1.0.0/go.mod h1:uNxQE+84aUszobStD9th8a29P2fMDhsBdgRYvZOxGmk= dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= filippo.io/edwards25519 v1.1.0 h1:FNf4tywRC1HmFuKW5xopWpigGjJKiJSV0Cqo0cJWDaA= filippo.io/edwards25519 v1.1.0/go.mod h1:BxyFTGdWcka3PhytdK4V28tE5sGfRvvvRV7EaN4VDT4= -github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= -github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-ntlmssp v0.0.0-20211209120228-48547f28849e/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= @@ -51,8 +47,6 @@ github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8 github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= -github.com/Microsoft/hcsshim v0.11.4 h1:68vKo2VN8DE9AdN4tnkWnmdhqdbpUFM8OF3Airm7fz8= -github.com/Microsoft/hcsshim v0.11.4/go.mod h1:smjE4dvqPX9Zldna+t5FG3rnoHhaB7QYxPRqGcpAD9w= github.com/Rican7/retry v0.3.0/go.mod h1:CxSDrhAyXmTMeEuRAnArMu1FHu48vtfjLREWqVl7Vw0= github.com/Rican7/retry v0.3.1 h1:scY4IbO8swckzoA/11HgBwaZRJEyY9vaNJshcdhp1Mc= github.com/Rican7/retry v0.3.1/go.mod h1:CxSDrhAyXmTMeEuRAnArMu1FHu48vtfjLREWqVl7Vw0= @@ -87,14 +81,8 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/containerd/containerd v1.7.12 h1:+KQsnv4VnzyxWcfO9mlxxELaoztsDEjOuCMPAuPqgU0= -github.com/containerd/containerd v1.7.12/go.mod h1:/5OMpE1p0ylxtEUGY8kuCYkDRzJm9NO1TFMWjUpdevk= -github.com/containerd/log v0.1.0 h1:TCJt7ioM2cr/tfR8GPbGf9/VRAX8D2B4PjzCpfX540I= -github.com/containerd/log v0.1.0/go.mod h1:VRRf09a7mHDIRezVKTRCrOq78v577GXq3bSa3EhrzVo= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/dockercfg v0.3.1 h1:/FpZ+JaygUR/lZP2NlFI2DVfrOEMAIKP5wWEJdoYe9E= -github.com/cpuguy83/dockercfg v0.3.1/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHfjj5/jFyUJc= github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= github.com/cpuguy83/go-md2man/v2 v2.0.2/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o= github.com/cpuguy83/go-md2man/v2 v2.0.4 h1:wfIWP927BUkWJb2NmU/kNDYIBTh/ziUX91+lVfRxZq4= @@ -116,8 +104,8 @@ github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e h1:vUmf0yez github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e/go.mod h1:YTIHhz/QFSYnu/EhlF2SpU2Uk+32abacUYA5ZPljz1A= github.com/distribution/reference v0.5.0 h1:/FUIFXtfc/x2gpa5/VGfiGLuOIdYa1t65IKK2OFGvA0= github.com/distribution/reference v0.5.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/docker v26.0.2+incompatible h1:yGVmKUFGgcxA6PXWAokO0sQL22BrQ67cgVjko8tGdXE= -github.com/docker/docker v26.0.2+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= +github.com/docker/docker v27.1.1+incompatible h1:hO/M4MtV36kzKldqnA37IWhebRA+LnqqcqDja6kVaKY= +github.com/docker/docker v27.1.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.5.0 h1:USnMq7hx7gwdVZq1L49hLXaFtUdTADjXGp+uj1Br63c= github.com/docker/go-connections v0.5.0/go.mod h1:ov60Kzw0kKElRwhNs9UlUHAE/F9Fe6GLaXnqyDdmEXc= github.com/docker/go-units v0.5.0 h1:69rxXcBk27SvSaaxTtLh/8llcHD8vYHT7WSdRZ/jvr4= @@ -172,8 +160,6 @@ github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY= github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY= github.com/go-logr/stdr v1.2.2 h1:hSWxHoqTgW2S2qGc0LTAI563KZ5YKYRhT3MFKZMbjag= github.com/go-logr/stdr v1.2.2/go.mod h1:mMo/vtBO5dYbehREoey6XUKy/eSumjCCveDpRre4VKE= -github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY= -github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0= github.com/go-sql-driver/mysql v1.8.1 h1:LedoTUt/eveggdHS9qUFC1EFSa8bU2+1pZjSRpvNJ1Y= github.com/go-sql-driver/mysql v1.8.1/go.mod h1:wEBSXgmK//2ZFJyE+qWnIsVGmvmEKlqwuVSjsCm7DZg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= @@ -444,8 +430,6 @@ github.com/lann/builder v0.0.0-20180802200727-47ae307949d0 h1:SOEGU9fKiNWd/HOJuq github.com/lann/builder v0.0.0-20180802200727-47ae307949d0/go.mod h1:dXGbAdH5GtBTC4WfIxhKZfyBF/HBFgRZSWwZ9g/He9o= github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0 h1:P6pPBnrTSX3DEVR4fDembhRWSsG5rVo6hYhAB/ADZrk= github.com/lann/ps v0.0.0-20150810152359-62de8c46ede0/go.mod h1:vmVJ0l/dxyfGW6FmdpVm2joNMFikkuWg0EoCKLGUMNw= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0 h1:6E+4a0GO5zZEnZ81pIr0yLvtUWk2if982qA3F3QD6H4= -github.com/lufia/plan9stats v0.0.0-20211012122336-39d0f177ccd0/go.mod h1:zJYVVT2jmtg6P3p1VtQj7WsuWi/y4VnjVBn7F8KPB3I= github.com/lunixbochs/vtclean v0.0.0-20160125035106-4fbf7632a2c6/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/lunixbochs/vtclean v1.0.0/go.mod h1:pHhQNgMf3btfWnGBVipUOjRYhoOsdGqdm/+2c2E2WMI= github.com/lxc/go-lxc v0.0.0-20240606200241-27b3d116511f h1:KnZqnn4R9Ae+jOK7DwacF1CnWEBMSwoXh44owa6j6k4= @@ -510,19 +494,9 @@ github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyua github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= -github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= -github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= -github.com/moby/sys/sequential v0.5.0 h1:OPvI35Lzn9K04PBbCLW0g4LcFAJgHsvXsRyewg5lXtc= -github.com/moby/sys/sequential v0.5.0/go.mod h1:tH2cOOs5V9MlPiXcQzRC+eEyab644PWKGRYaaV5ZZlo= -github.com/moby/sys/user v0.1.0 h1:WmZ93f5Ux6het5iituh9x2zAG7NFY9Aqi49jjE1PaQg= -github.com/moby/sys/user v0.1.0/go.mod h1:fKJhFOnsCN6xZ5gSfbM6zaHGgDJMrqt9/reuj4T7MmU= -github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= -github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/morikuni/aec v1.0.0 h1:nP9CBfwrvYnBRgY6qfDQkygYDmYwOilePFkwzv4dU8A= -github.com/morikuni/aec v1.0.0/go.mod h1:BbKIizmSmc5MMPqRYbxO4ZU0S0+P200+tUnFx7PXmsc= github.com/muhlemmer/gu v0.3.1 h1:7EAqmFrW7n3hETvuAdmFmn4hS8W+z3LgKtrnow+YzNM= github.com/muhlemmer/gu v0.3.1/go.mod h1:YHtHR+gxM+bKEIIs7Hmi9sPT3ZDUvTN/i88wQpZkrdM= github.com/muhlemmer/httpforwarded v0.1.0 h1:x4DLrzXdliq8mprgUMR0olDvHGkou5BJsK/vWUetyzY= @@ -541,12 +515,12 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= -github.com/openfga/api/proto v0.0.0-20240723155248-7e5be7b65c27 h1:4DI5cY46DLLjZoKNGpe9FRluNl+mN4yxkRL9VjWRbFk= -github.com/openfga/api/proto v0.0.0-20240723155248-7e5be7b65c27/go.mod h1:gil5LBD8tSdFQbUkCQdnXsoeU9kDJdJgbGdHkgJfcd0= +github.com/openfga/api/proto v0.0.0-20240807201305-c96ec773cae9 h1:Y0fIAHrYECcf5lpa/o1AbH21bS7rsco/FoH4A4NGlZE= +github.com/openfga/api/proto v0.0.0-20240807201305-c96ec773cae9/go.mod h1:gil5LBD8tSdFQbUkCQdnXsoeU9kDJdJgbGdHkgJfcd0= github.com/openfga/language/pkg/go v0.2.0-beta.0 h1:dTvgDkQImfNnH1iDvxnUIbz4INvKr4kS46dI12oAEzM= github.com/openfga/language/pkg/go v0.2.0-beta.0/go.mod h1:mCwEY2IQvyNgfEwbfH0C0ERUwtL8z6UjSAF8zgn5Xbg= -github.com/openfga/openfga v1.5.6 h1:V5VPXbDnThXHORJaP0Hv0kdw0gtS62eV4H0IQk0EqfE= -github.com/openfga/openfga v1.5.6/go.mod h1:Iv2BfL2b6ANYrqWIANSoEveZPh51LV2YnoexrUI8bvU= +github.com/openfga/openfga v1.5.9 h1:1x+9YdBOzbYPbkEUZjPPYt255GXDUbouC0ConpMRtL8= +github.com/openfga/openfga v1.5.9/go.mod h1:1OF1qR8nXdIirtosRZq0mPx5B6nuY5phPGk61Yh+9Lc= github.com/opentracing/opentracing-go v1.1.0/go.mod h1:UkNAQd3GIcIGf0SeVgPpRdFStlNbqXla1AfSYxPUl2o= github.com/osrg/gobgp/v3 v3.29.0 h1:ISWjY5YQ45THcvXWdG2ykzXWxS22rgE6U9YWdaI/ki8= github.com/osrg/gobgp/v3 v3.29.0/go.mod h1:ZGeSti9mURR/o5hf5R6T1FM5g1yiEBZbhP+TuqYJUpI= @@ -568,8 +542,6 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c h1:ncq/mPwQF4JjgDlrVEn3C11VoGHZN7m8qihwgMEtzYw= -github.com/power-devops/perfstat v0.0.0-20210106213030-5aafc221ea8c/go.mod h1:OmDBASR4679mdNQnz2pUhc2G8CO2JrUAVFDRBDP/hJE= github.com/pressly/goose/v3 v3.20.0 h1:uPJdOxF/Ipj7ABVNOAMJXSxwFXZGwMGHNqjC8e61VA0= github.com/pressly/goose/v3 v3.20.0/go.mod h1:BRfF2GcG4FTG12QfdBVy3q1yveaf4ckL9vWwEcIO3lA= github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= @@ -605,10 +577,6 @@ github.com/sagikazarmark/slog-shim v0.1.0/go.mod h1:SrcSrq8aKtyuqEI1uvTDTK1arOWR github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sethvargo/go-retry v0.2.4 h1:T+jHEQy/zKJf5s95UkguisicE0zuF9y7+/vgz08Ocec= github.com/sethvargo/go-retry v0.2.4/go.mod h1:1afjQuvh7s4gflMObvjLPaWgluLLyhA1wmVZ6KLpICw= -github.com/shirou/gopsutil/v3 v3.23.12 h1:z90NtUkp3bMtmICZKpC4+WaknU1eXtp5vtbQ11DgpE4= -github.com/shirou/gopsutil/v3 v3.23.12/go.mod h1:1FrWgea594Jp7qmjHUUPlJDTPgcsb9mGnXDxavtikzM= -github.com/shoenig/go-m1cpu v0.1.6 h1:nxdKQNcEB6vzgA2E2bvzKIYRuNj7XNJ4S/aRSwKzFtM= -github.com/shoenig/go-m1cpu v0.1.6/go.mod h1:1JJMcUBvfNwpq05QDQVAnx3gUHr9IYF7GNg9SUEw2VQ= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= @@ -657,16 +625,6 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/testcontainers/testcontainers-go v0.30.0 h1:jmn/XS22q4YRrcMwWg0pAwlClzs/abopbsBzrepyc4E= -github.com/testcontainers/testcontainers-go v0.30.0/go.mod h1:K+kHNGiM5zjklKjgTtcrEetF3uhWbMUyqAQoyoh8Pf0= -github.com/testcontainers/testcontainers-go/modules/mysql v0.30.0 h1:wrePvxfU/2HFALKyBqpNs6VoPPvThzHy9aN+PCxse9g= -github.com/testcontainers/testcontainers-go/modules/mysql v0.30.0/go.mod h1:Srnlf7wwA7s6K4sKKhjAoBHJcKorRINR/i5dCA4ZyGk= -github.com/testcontainers/testcontainers-go/modules/postgres v0.30.0 h1:D3HFqpZS90iRGAN7M85DFiuhPfvYvFNnx8urQ6mPAvo= -github.com/testcontainers/testcontainers-go/modules/postgres v0.30.0/go.mod h1:e1sKxwUOkqzvaqdHl/oV9mUtFmkDPTfBGp0po2tnWQU= -github.com/tklauser/go-sysconf v0.3.12 h1:0QaGUFOdQaIVdPgfITYzaTegZvdCjmYO52cSFAEVmqU= -github.com/tklauser/go-sysconf v0.3.12/go.mod h1:Ho14jnntGE1fpdOqQEEaiKRpvIavV0hSfmBq8nJbHYI= -github.com/tklauser/numcpus v0.6.1 h1:ng9scYS7az0Bk4OZLvrNXNSAO2Pxr1XXRAPyjhIx+Fk= -github.com/tklauser/numcpus v0.6.1/go.mod h1:1XfjsgE2zo8GVw7POkMbHENHzVg3GzmoZ9fESEdAacY= github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs= github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= @@ -680,8 +638,6 @@ github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9de github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= -github.com/yusufpapurcu/wmi v1.2.3 h1:E1ctvB7uKFMOJw3fdOW32DwGE9I7t++CRUEMKvFoFiw= -github.com/yusufpapurcu/wmi v1.2.3/go.mod h1:SBZ9tNy3G9/m5Oi98Zks0QjeHVDvuK0qfxQmPyzfmi0= github.com/zitadel/logging v0.6.0 h1:t5Nnt//r+m2ZhhoTmoPX+c96pbMarqJvW1Vq6xFTank= github.com/zitadel/logging v0.6.0/go.mod h1:Y4CyAXHpl3Mig6JOszcV5Rqqsojj+3n7y2F591Mp/ow= github.com/zitadel/oidc/v3 v3.26.0 h1:BG3OUK+JpuKz7YHJIyUxL5Sl2JV6ePkG42UP4Xv3J2w= @@ -939,6 +895,8 @@ golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= +golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= From 379e2dc719b75eb0a81d84550fcbe8d2d1b7ee43 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 13 Aug 2024 10:29:29 +0100 Subject: [PATCH 027/169] lxd/db/openfga: Update OpenFGADatastore implementation to match interface. We don't need to care about the options that are passed into the database methods. These are related to OpenFGA's concept of "consistency preference" (see https://openfga.dev/docs/interacting/consistency#when-to-use-higher-consistency) which is not applicable for our implementation. Closes #13913 Signed-off-by: Mark Laing --- lxd/db/openfga/openfga.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lxd/db/openfga/openfga.go b/lxd/db/openfga/openfga.go index c1a15d73cd74..ab2cf2e8cab2 100644 --- a/lxd/db/openfga/openfga.go +++ b/lxd/db/openfga/openfga.go @@ -58,7 +58,7 @@ type openfgaStore struct { // - This method doesn't actually perform any queries (win!). // - If we change our design to use entity IDs directly, this method will need to change so that we can return the correct project ID. // (Currently we don't need to as the project name is already in the URL). -func (o *openfgaStore) Read(ctx context.Context, s string, key *openfgav1.TupleKey) (storage.TupleIterator, error) { +func (o *openfgaStore) Read(ctx context.Context, s string, key *openfgav1.TupleKey, options storage.ReadOptions) (storage.TupleIterator, error) { obj := key.GetObject() relation := key.GetRelation() user := key.GetUser() @@ -171,7 +171,7 @@ func (o *openfgaStore) Read(ctx context.Context, s string, key *openfgav1.TupleK // Implementation: // - The tuples that this method is meant to return have been passed in contextually. So validate the input matches // what is expected and return nil. -func (o *openfgaStore) ReadUserTuple(ctx context.Context, store string, tk *openfgav1.TupleKey) (*openfgav1.Tuple, error) { +func (o *openfgaStore) ReadUserTuple(ctx context.Context, store string, tk *openfgav1.TupleKey, options storage.ReadUserTupleOptions) (*openfgav1.Tuple, error) { // Expect the User field to be present. user := tk.GetUser() if user == "" { @@ -214,7 +214,7 @@ func (o *openfgaStore) ReadUserTuple(ctx context.Context, store string, tk *open // - The exception for the type-bound public access may be better placed as a contextual tuple. However, adding it here // means we can avoid an unnecessary transaction that will happen a lot. // - We will need to modify this exception when we implement service accounts. -func (o *openfgaStore) ReadUsersetTuples(ctx context.Context, store string, filter storage.ReadUsersetTuplesFilter) (storage.TupleIterator, error) { +func (o *openfgaStore) ReadUsersetTuples(ctx context.Context, store string, filter storage.ReadUsersetTuplesFilter, options storage.ReadUsersetTuplesOptions) (storage.TupleIterator, error) { // Expect both an object and a relation. if filter.Object == "" || filter.Relation == "" { return nil, fmt.Errorf("ReadUsersetTuples: Filter must include both an object and a relation") @@ -322,7 +322,7 @@ WHERE auth_groups_permissions.entitlement = ? AND auth_groups_permissions.entity // - For the first two cases we can perform a simple lookup for entities of the requested type (with project name if project relation). // - In the third case, we need to get all permissions with the given entity type and entitlement that are associated with the given group. // - For the fourth case we return nil, since we expect direct entitlements for identities to be passed in contextually. -func (o *openfgaStore) ReadStartingWithUser(ctx context.Context, store string, filter storage.ReadStartingWithUserFilter) (storage.TupleIterator, error) { +func (o *openfgaStore) ReadStartingWithUser(ctx context.Context, store string, filter storage.ReadStartingWithUserFilter, options storage.ReadStartingWithUserOptions) (storage.TupleIterator, error) { // Example expected input, case 1: // filter.ObjectType = "certificate" // filter.Relation = "server" @@ -529,7 +529,7 @@ WHERE auth_groups_permissions.entitlement = ? AND auth_groups_permissions.entity } // ReadPage is not implemented. It is not required for the functionality we need. -func (*openfgaStore) ReadPage(ctx context.Context, store string, tk *openfgav1.TupleKey, opts storage.PaginationOptions) ([]*openfgav1.Tuple, []byte, error) { +func (*openfgaStore) ReadPage(ctx context.Context, store string, tk *openfgav1.TupleKey, opts storage.ReadPageOptions) ([]*openfgav1.Tuple, []byte, error) { return nil, nil, api.StatusErrorf(http.StatusNotImplemented, "not implemented") } @@ -563,7 +563,7 @@ func (o *openfgaStore) FindLatestAuthorizationModel(ctx context.Context, store s } // ReadAuthorizationModels returns a slice containing our own model or an error if it hasn't been set yet. -func (o *openfgaStore) ReadAuthorizationModels(ctx context.Context, store string, options storage.PaginationOptions) ([]*openfgav1.AuthorizationModel, []byte, error) { +func (o *openfgaStore) ReadAuthorizationModels(ctx context.Context, store string, options storage.ReadAuthorizationModelsOptions) ([]*openfgav1.AuthorizationModel, []byte, error) { if o.model != nil { return []*openfgav1.AuthorizationModel{o.model}, nil, nil } @@ -598,7 +598,7 @@ func (*openfgaStore) GetStore(ctx context.Context, id string) (*openfgav1.Store, } // ListStores returns a not implemented error, because there is only one store. -func (*openfgaStore) ListStores(ctx context.Context, paginationOptions storage.PaginationOptions) ([]*openfgav1.Store, []byte, error) { +func (*openfgaStore) ListStores(ctx context.Context, paginationOptions storage.ListStoresOptions) ([]*openfgav1.Store, []byte, error) { return nil, nil, api.StatusErrorf(http.StatusNotImplemented, "not implemented") } @@ -613,7 +613,7 @@ func (*openfgaStore) ReadAssertions(ctx context.Context, store, modelID string) } // ReadChanges returns a not implemented error, because we do not need to use the read changes API. -func (*openfgaStore) ReadChanges(ctx context.Context, store, objectType string, paginationOptions storage.PaginationOptions, horizonOffset time.Duration) ([]*openfgav1.TupleChange, []byte, error) { +func (*openfgaStore) ReadChanges(ctx context.Context, store, objectType string, paginationOptions storage.ReadChangesOptions, horizonOffset time.Duration) ([]*openfgav1.TupleChange, []byte, error) { return nil, nil, api.StatusErrorf(http.StatusNotImplemented, "not implemented") } From 8aa8361746da8912260d962f277bf8d4cefcf39a Mon Sep 17 00:00:00 2001 From: Kadin Sayani Date: Wed, 14 Aug 2024 12:27:50 -0600 Subject: [PATCH 028/169] lxd/certificates: Disallow forward slashes and hyphen prefixes Signed-off-by: Kadin Sayani --- lxd/certificates.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/lxd/certificates.go b/lxd/certificates.go index 466264c34e27..97639d8141a5 100644 --- a/lxd/certificates.go +++ b/lxd/certificates.go @@ -12,6 +12,7 @@ import ( "net" "net/http" "net/url" + "strings" "time" "github.com/gorilla/mux" @@ -439,6 +440,11 @@ func certificatesPost(d *Daemon, r *http.Request) response.Response { return response.NotImplemented(fmt.Errorf("Password authentication is no longer supported, please update your client")) } + // Validate name. + if strings.HasPrefix(req.Name, "-") || strings.Contains(req.Name, "/") { + return response.BadRequest(fmt.Errorf("Invalid certificate name %q, name must not start with a hyphen or contain forward slashes", req.Name)) + } + localHTTPSAddress := s.LocalConfig.HTTPSAddress() // Quick check. From 9df3543faa0248fddf15df6f5e909c6e254fd4e3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Sat, 30 Dec 2023 01:55:39 +0100 Subject: [PATCH 029/169] lxd/networks: Don't fill network configs when joining MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Closes https://github.com/lxc/incus/issues/338 Signed-off-by: Stéphane Graber Signed-off-by: hamistao License: Apache-2.0 --- lxd/networks.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lxd/networks.go b/lxd/networks.go index c36974c905a3..2891caed76f5 100644 --- a/lxd/networks.go +++ b/lxd/networks.go @@ -475,9 +475,11 @@ func networksPost(d *Daemon, r *http.Request) response.Response { defer revert.Fail() // Populate default config. - err = netType.FillConfig(req.Config) - if err != nil { - return response.SmartError(err) + if clientType != clusterRequest.ClientTypeJoiner { + err = netType.FillConfig(req.Config) + if err != nil { + return response.SmartError(err) + } } err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { From 57e9f76d56e185930d00a5c852a09fb80924e24a Mon Sep 17 00:00:00 2001 From: hamistao Date: Wed, 14 Aug 2024 23:26:14 -0300 Subject: [PATCH 030/169] lxd/networks: Update comment Signed-off-by: hamistao --- lxd/networks.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/networks.go b/lxd/networks.go index 2891caed76f5..990dd2d6beee 100644 --- a/lxd/networks.go +++ b/lxd/networks.go @@ -474,7 +474,7 @@ func networksPost(d *Daemon, r *http.Request) response.Response { revert := revert.New() defer revert.Fail() - // Populate default config. + // Populate default config unless joining a cluster. if clientType != clusterRequest.ClientTypeJoiner { err = netType.FillConfig(req.Config) if err != nil { From 9e3e36e6464e1f4b1fbc6e762c85ded603e79bc3 Mon Sep 17 00:00:00 2001 From: Fabian Mettler Date: Wed, 20 Dec 2023 13:26:24 +0100 Subject: [PATCH 031/169] shared: Fix comment typo Signed-off-by: Fabian Mettler Signed-off-by: hamistao License: Apache-2.0 --- shared/ioprogress/data.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/ioprogress/data.go b/shared/ioprogress/data.go index 3a86dddf211d..ed7bc80e1be2 100644 --- a/shared/ioprogress/data.go +++ b/shared/ioprogress/data.go @@ -2,7 +2,7 @@ package ioprogress // The ProgressData struct represents new progress information on an operation. type ProgressData struct { - // Preferred string repreentation of progress (always set) + // Preferred string representation of progress (always set) Text string // Progress in percent From b3101285c8b4876e94f0f0fdce79e52bdfd8ca97 Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Thu, 15 Aug 2024 15:45:49 +0200 Subject: [PATCH 032/169] doc/images: specify the order of split images To upload a split image through the API, you must upload the metadata tarball before the rootfs image. Signed-off-by: Ruth Fuchss --- doc/howto/images_copy.md | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/doc/howto/images_copy.md b/doc/howto/images_copy.md index b9300c471a44..5ac675c80911 100644 --- a/doc/howto/images_copy.md +++ b/doc/howto/images_copy.md @@ -56,8 +56,8 @@ There are several ways of obtaining such image files: ### Import from the local file system -````{tabs} -```{group-tab} CLI +`````{tabs} +````{group-tab} CLI To import an image from the local file system, use the [`lxc image import`](lxc_image_import.md) command. This command supports both {ref}`unified images ` (compressed file or directory) and {ref}`split images ` (two files). @@ -71,8 +71,8 @@ To import a split image, enter the following command: In both cases, you can assign an alias with the `--alias` flag. See [`lxc image import --help`](lxc_image_import.md) for all available flags. -``` -```{group-tab} API +```` +````{group-tab} API To import an image from the local file system, send a POST request to the `/1.0/images` endpoint. For example, to import a unified image from one file: @@ -85,9 +85,13 @@ To import a split image from a metadata file and a rootfs file: curl -X POST --unix-socket /var/snap/lxd/common/lxd/unix.socket lxd/1.0/images \ --form metadata=@ --form rootfs.img= -See [`POST /1.0/images`](swagger:/images/images_post) for more information. +```{note} +For a split image, you must send the metadata tarball first and the rootfs image after. ``` + +See [`POST /1.0/images`](swagger:/images/images_post) for more information. ```` +````` ### Import from a file on a remote web server From 69060c506622efe78e721734fc16943f39a7e3f7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Fri, 15 Dec 2023 17:12:48 -0500 Subject: [PATCH 033/169] lxd/firewall/drivers: Make sure to always use locking MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber Signed-off-by: hamistao License: Apache-2.0 --- lxd/firewall/drivers/drivers_xtables.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/lxd/firewall/drivers/drivers_xtables.go b/lxd/firewall/drivers/drivers_xtables.go index 72d80777e583..075ff49be878 100644 --- a/lxd/firewall/drivers/drivers_xtables.go +++ b/lxd/firewall/drivers/drivers_xtables.go @@ -568,7 +568,7 @@ func (d Xtables) NetworkApplyACLRules(networkName string, rules []ACLRule) error // Add rules to chain in table. for _, iptRule := range iptRules { - _, err := shared.RunCommand(cmd, append([]string{"-t", "filter", "-A", chain}, iptRule...)...) + _, err := shared.RunCommand(cmd, append([]string{"-w", "-t", "filter", "-A", chain}, iptRule...)...) if err != nil { return fmt.Errorf("Failed adding rule to %q chain %q in table %q: %w", cmd, chain, "filter", err) } @@ -1449,7 +1449,7 @@ func (d Xtables) iptablesChainExists(ipVersion uint, table string, chain string) } // Attempt to dump the rules of the chain, if this fails then chain doesn't exist. - rules, err := shared.RunCommand(cmd, "-t", table, "-S", chain) + rules, err := shared.RunCommand(cmd, "-w", "-t", table, "-S", chain) if err != nil { return false, false, nil } @@ -1475,7 +1475,7 @@ func (d Xtables) iptablesChainCreate(ipVersion uint, table string, chain string) } // Attempt to create chain in table. - _, err := shared.RunCommand(cmd, "-t", table, "-N", chain) + _, err := shared.RunCommand(cmd, "-w", "-t", table, "-N", chain) if err != nil { return fmt.Errorf("Failed creating %q chain %q in table %q: %w", cmd, chain, table, err) } @@ -1496,14 +1496,14 @@ func (d Xtables) iptablesChainDelete(ipVersion uint, table string, chain string, // Attempt to flush rules from chain in table. if flushFirst { - _, err := shared.RunCommand(cmd, "-t", table, "-F", chain) + _, err := shared.RunCommand(cmd, "-w", "-t", table, "-F", chain) if err != nil { return fmt.Errorf("Failed flushing %q chain %q in table %q: %w", cmd, chain, table, err) } } // Attempt to delete chain in table. - _, err := shared.RunCommand(cmd, "-t", table, "-X", chain) + _, err := shared.RunCommand(cmd, "-w", "-t", table, "-X", chain) if err != nil { return fmt.Errorf("Failed deleting %q chain %q in table %q: %w", cmd, chain, table, err) } From 726f91053f0ed62223153354651e71ae092d9224 Mon Sep 17 00:00:00 2001 From: hamistao Date: Thu, 15 Aug 2024 09:58:17 -0300 Subject: [PATCH 034/169] lxd/firewall/drivers: Fix `generateFilterIptablesRules` empty return This is needed here because it raises problems with the linter as well. Signed-off-by: hamistao --- lxd/firewall/drivers/drivers_xtables.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lxd/firewall/drivers/drivers_xtables.go b/lxd/firewall/drivers/drivers_xtables.go index 075ff49be878..13c534a5def4 100644 --- a/lxd/firewall/drivers/drivers_xtables.go +++ b/lxd/firewall/drivers/drivers_xtables.go @@ -1107,7 +1107,7 @@ func (d Xtables) generateFilterEbtablesRules(hostName string, hwAddr string, IPv func (d Xtables) generateFilterIptablesRules(parentName string, hostName string, hwAddr string, IPv6Nets []*net.IPNet, parentManaged bool) (rules [][]string, err error) { mac, err := net.ParseMAC(hwAddr) if err != nil { - return [][]string{}, err + return rules, err } macHex := hex.EncodeToString(mac) @@ -1162,7 +1162,7 @@ func (d Xtables) generateFilterIptablesRules(parentName string, hostName string, } } - return [][]string{}, err + return rules, err } // matchEbtablesRule compares an active rule to a supplied match rule to see if they match. From 41a24997e49e2b551088cb73d072f29384ac1e6e Mon Sep 17 00:00:00 2001 From: hamistao Date: Thu, 15 Aug 2024 14:49:48 -0300 Subject: [PATCH 035/169] github: Run `go test` verbosely Signed-off-by: hamistao --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 3a23ce33a41c..0d5a0b5b2bf6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -167,7 +167,7 @@ jobs: - name: Unit tests (all) run: | set -eux - sudo --preserve-env=CGO_CFLAGS,CGO_LDFLAGS,CGO_LDFLAGS_ALLOW,LD_LIBRARY_PATH LD_LIBRARY_PATH=${LD_LIBRARY_PATH} env "PATH=${PATH}" go test ./... + sudo --preserve-env=CGO_CFLAGS,CGO_LDFLAGS,CGO_LDFLAGS_ALLOW,LD_LIBRARY_PATH LD_LIBRARY_PATH=${LD_LIBRARY_PATH} env "PATH=${PATH}" go test -v ./... system-tests: env: From b2a6a528167d923185a9cd15afa2f1ff5ee67a26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Tue, 9 Jan 2024 17:08:46 -0500 Subject: [PATCH 036/169] lxd/cluster: Ensure the cluster member config is always sorted MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The database functions return maps which are inherently unsorted, this then would turn the MemberConfig slice under a similarly unsorted slice.. That's a problem because our own CLI and some 3rd party tools will ask the user to answer each of the MemberConfig questions during join. The user may assume that when joining multiple systems, the questions will be in the same order on all systems, when they're not, they may incorrectly answer some of the questions. Signed-off-by: Stéphane Graber (cherry picked from commit 0da9df830c5b0474450ffdc98e733eeb1c078206) Signed-off-by: Wesley Hershberger License: Apache-2.0 --- lxd/api_cluster.go | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/lxd/api_cluster.go b/lxd/api_cluster.go index 8f0a80670673..48f33ee74609 100644 --- a/lxd/api_cluster.go +++ b/lxd/api_cluster.go @@ -10,6 +10,7 @@ import ( "net/url" "os" "path/filepath" + "sort" "strconv" "strings" "sync" @@ -209,6 +210,26 @@ func clusterGet(d *Daemon, r *http.Request) response.Response { return response.SmartError(err) } + // Sort the member config. + sort.Slice(memberConfig, func(i, j int) bool { + left := memberConfig[i] + right := memberConfig[j] + + if left.Entity != right.Entity { + return left.Entity < right.Entity + } + + if left.Name != right.Name { + return left.Name < right.Name + } + + if left.Key != right.Key { + return left.Key < right.Key + } + + return left.Description < right.Description + }) + cluster := api.Cluster{ ServerName: serverName, Enabled: serverName != "", From fcdc78dda31b210f246e075aaf4bf507b07b68f5 Mon Sep 17 00:00:00 2001 From: Jinseek Ryu Date: Fri, 16 Aug 2024 22:34:58 +0900 Subject: [PATCH 037/169] lxd/instance: if storage location is remote, make cluster self healing available, and vm can migrate when src member is offline also Signed-off-by: Jinseek Ryu --- lxd/instance_post.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lxd/instance_post.go b/lxd/instance_post.go index 2dcc3634d26a..7648e7fc5e16 100644 --- a/lxd/instance_post.go +++ b/lxd/instance_post.go @@ -874,17 +874,17 @@ func instancePostClusteringMigrate(s *state.State, r *http.Request, srcPool stor return run, nil } -// instancePostClusteringMigrateWithCeph handles moving a ceph instance from a source member that is offline. +// instancePostClusteringMigrateWithRemoteStorage handles moving a remote shared storage instance from a source member that is offline. // This function must be run on the target cluster member to move the instance to. -func instancePostClusteringMigrateWithCeph(s *state.State, r *http.Request, srcPool storagePools.Pool, srcInst instance.Instance, newInstName string, newMember db.NodeInfo, stateful bool) (func(op *operations.Operation) error, error) { +func instancePostClusteringMigrateWithRemoteStorage(s *state.State, r *http.Request, srcPool storagePools.Pool, srcInst instance.Instance, newInstName string, newMember db.NodeInfo, stateful bool) (func(op *operations.Operation) error, error) { // Sense checks to avoid unexpected behaviour. - if srcPool.Driver().Info().Name != "ceph" { - return nil, fmt.Errorf("Source instance's storage pool is not of type ceph") + if !srcPool.Driver().Info().Remote { + return nil, fmt.Errorf("Source instance's storage pool is not remote shared storage") } // Check this function is only run on the target member. if s.ServerName != newMember.Name { - return nil, fmt.Errorf("Ceph instance move when source member is offline must be run on target member") + return nil, fmt.Errorf("Remote shared storage instance move when source member is offline must be run on target member") } // Check we can convert the instance to the volume types needed. @@ -974,9 +974,9 @@ func migrateInstance(s *state.State, r *http.Request, inst instance.Instance, ta return fmt.Errorf("Failed loading instance storage pool: %w", err) } - // Only use instancePostClusteringMigrateWithCeph when source member is offline. - if srcMember.IsOffline(s.GlobalConfig.OfflineThreshold()) && srcPool.Driver().Info().Name == "ceph" { - f, err := instancePostClusteringMigrateWithCeph(s, r, srcPool, inst, req.Name, newMember, req.Live) + // Only use instancePostClusteringMigrateWithRemoteStorage when source member is offline and storage location is remote. + if srcMember.IsOffline(s.GlobalConfig.OfflineThreshold()) && srcPool.Driver().Info().Remote { + f, err := instancePostClusteringMigrateWithRemoteStorage(s, r, srcPool, inst, req.Name, newMember, req.Live) if err != nil { return err } From 0ab6d76dc45bb37480da4349636a8f3e7c5b72d1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 10:25:31 +0000 Subject: [PATCH 038/169] build(deps): bump github.com/minio/minio-go/v7 from 7.0.74 to 7.0.75 Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.74 to 7.0.75. - [Release notes](https://github.com/minio/minio-go/releases) - [Commits](https://github.com/minio/minio-go/compare/v7.0.74...v7.0.75) --- updated-dependencies: - dependency-name: github.com/minio/minio-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 755f182ec3b3..1a2a59689fa3 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/mdlayher/netx v0.0.0-20230430222610-7e21880baee8 github.com/mdlayher/vsock v1.2.1 github.com/miekg/dns v1.1.61 - github.com/minio/minio-go/v7 v7.0.74 + github.com/minio/minio-go/v7 v7.0.75 github.com/mitchellh/mapstructure v1.5.0 github.com/oklog/ulid/v2 v2.1.0 github.com/olekukonko/tablewriter v0.0.5 diff --git a/go.sum b/go.sum index 225d58bc6d90..cd0a716bbd96 100644 --- a/go.sum +++ b/go.sum @@ -478,8 +478,8 @@ github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.74 h1:fTo/XlPBTSpo3BAMshlwKL5RspXRv9us5UeHEGYCFe0= -github.com/minio/minio-go/v7 v7.0.74/go.mod h1:qydcVzV8Hqtj1VtEocfxbmVFa2siu6HGa+LDEPogjD8= +github.com/minio/minio-go/v7 v7.0.75 h1:0uLrB6u6teY2Jt+cJUVi9cTvDRuBKWSRzSAcznRkwlE= +github.com/minio/minio-go/v7 v7.0.75/go.mod h1:qydcVzV8Hqtj1VtEocfxbmVFa2siu6HGa+LDEPogjD8= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= From 2a5663c36da76224501cd5ce2b43fcc3d01894ad Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 10:25:36 +0000 Subject: [PATCH 039/169] build(deps): bump github.com/zitadel/oidc/v3 from 3.26.0 to 3.27.0 Bumps [github.com/zitadel/oidc/v3](https://github.com/zitadel/oidc) from 3.26.0 to 3.27.0. - [Release notes](https://github.com/zitadel/oidc/releases) - [Changelog](https://github.com/zitadel/oidc/blob/main/.releaserc.js) - [Commits](https://github.com/zitadel/oidc/compare/v3.26.0...v3.27.0) --- updated-dependencies: - dependency-name: github.com/zitadel/oidc/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 755f182ec3b3..2caa6337d1e2 100644 --- a/go.mod +++ b/go.mod @@ -50,7 +50,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 github.com/vishvananda/netlink v1.2.1-beta.2 - github.com/zitadel/oidc/v3 v3.26.0 + github.com/zitadel/oidc/v3 v3.27.0 go.starlark.net v0.0.0-20240725214946-42030a7cedce go.uber.org/zap v1.27.0 golang.org/x/crypto v0.26.0 diff --git a/go.sum b/go.sum index 225d58bc6d90..56d28a375c5f 100644 --- a/go.sum +++ b/go.sum @@ -640,8 +640,8 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zitadel/logging v0.6.0 h1:t5Nnt//r+m2ZhhoTmoPX+c96pbMarqJvW1Vq6xFTank= github.com/zitadel/logging v0.6.0/go.mod h1:Y4CyAXHpl3Mig6JOszcV5Rqqsojj+3n7y2F591Mp/ow= -github.com/zitadel/oidc/v3 v3.26.0 h1:BG3OUK+JpuKz7YHJIyUxL5Sl2JV6ePkG42UP4Xv3J2w= -github.com/zitadel/oidc/v3 v3.26.0/go.mod h1:Cx6AYPTJO5q2mjqF3jaknbKOUjpq1Xui0SYvVhkKuXU= +github.com/zitadel/oidc/v3 v3.27.0 h1:zeYpyRH0UcgdCjVHUYzSsqf1jbSwVMPVxYKOnRXstgU= +github.com/zitadel/oidc/v3 v3.27.0/go.mod h1:ZwBEqSviCpJVZiYashzo53bEGRGXi7amE5Q8PpQg9IM= github.com/zitadel/schema v1.3.0 h1:kQ9W9tvIwZICCKWcMvCEweXET1OcOyGEuFbHs4o5kg0= github.com/zitadel/schema v1.3.0/go.mod h1:NptN6mkBDFvERUCvZHlvWmmME+gmZ44xzwRXwhzsbtc= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= From 8cd0e132c8c6d014c8f35769517fe44caf0e95ca Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Aug 2024 11:50:06 +0000 Subject: [PATCH 040/169] build(deps): bump github.com/miekg/dns from 1.1.61 to 1.1.62 Bumps [github.com/miekg/dns](https://github.com/miekg/dns) from 1.1.61 to 1.1.62. - [Changelog](https://github.com/miekg/dns/blob/master/Makefile.release) - [Commits](https://github.com/miekg/dns/compare/v1.1.61...v1.1.62) --- updated-dependencies: - dependency-name: github.com/miekg/dns dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 58d9b166e4b6..33a5e7a80b8c 100644 --- a/go.mod +++ b/go.mod @@ -33,7 +33,7 @@ require ( github.com/mdlayher/ndp v1.1.0 github.com/mdlayher/netx v0.0.0-20230430222610-7e21880baee8 github.com/mdlayher/vsock v1.2.1 - github.com/miekg/dns v1.1.61 + github.com/miekg/dns v1.1.62 github.com/minio/minio-go/v7 v7.0.75 github.com/mitchellh/mapstructure v1.5.0 github.com/oklog/ulid/v2 v2.1.0 diff --git a/go.sum b/go.sum index 777a1ccb6232..6dd6aac913d8 100644 --- a/go.sum +++ b/go.sum @@ -474,8 +474,8 @@ github.com/mdlayher/vsock v1.2.1/go.mod h1:NRfCibel++DgeMD8z/hP+PPTjlNJsdPOmxcnE github.com/mfridman/interpolate v0.0.2 h1:pnuTK7MQIxxFz1Gr+rjSIx9u7qVjf5VOoM/u6BbAxPY= github.com/mfridman/interpolate v0.0.2/go.mod h1:p+7uk6oE07mpE/Ik1b8EckO0O4ZXiGAfshKBWLUM9Xg= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/miekg/dns v1.1.61 h1:nLxbwF3XxhwVSm8g9Dghm9MHPaUZuqhPiGL+675ZmEs= -github.com/miekg/dns v1.1.61/go.mod h1:mnAarhS3nWaW+NVP2wTkYVIZyHNJ098SJZUki3eykwQ= +github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= +github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= github.com/minio/minio-go/v7 v7.0.75 h1:0uLrB6u6teY2Jt+cJUVi9cTvDRuBKWSRzSAcznRkwlE= From a885db1f367db8a21c7bdaa7b8823b9749dc4b8f Mon Sep 17 00:00:00 2001 From: Vishesh Agrawal Date: Mon, 6 May 2024 15:18:05 +0200 Subject: [PATCH 041/169] lxc/storage_bucket: Add yaml support for key create Signed-off-by: Vishesh Agrawal (cherry picked from commit 9919c795c4967c8122c7ae1798986442d1be1b2d) Signed-off-by: Gabriel Mougard License: Apache-2.0 --- lxc/storage_bucket.go | 40 ++++++++++++++++++++++++++++++++++------ 1 file changed, 34 insertions(+), 6 deletions(-) diff --git a/lxc/storage_bucket.go b/lxc/storage_bucket.go index d0ff62420fd1..8947309d3d45 100644 --- a/lxc/storage_bucket.go +++ b/lxc/storage_bucket.go @@ -845,6 +845,12 @@ func (c *cmdStorageBucketKeyCreate) command() *cobra.Command { cmd.Use = usage("create", i18n.G("[:] ")) cmd.Short = i18n.G("Create key for a storage bucket") cmd.Long = cli.FormatSection(i18n.G("Description"), i18n.G("Create key for a storage bucket")) + cmd.Example = cli.FormatSection("", i18n.G(`lxc storage bucket key create p1 b01 k1 + Create a key called k1 for the bucket b01 in the pool p1. + +lxc storage bucket key create p1 b01 k1 < config.yaml + Create a key called k1 for the bucket b01 in the pool p1 using the content of config.yaml.`)) + cmd.RunE = c.runAdd cmd.Flags().StringVar(&c.storageBucketKey.flagTarget, "target", "", i18n.G("Cluster member name")+"``") @@ -889,13 +895,35 @@ func (c *cmdStorageBucketKeyCreate) runAdd(cmd *cobra.Command, args []string) er client = client.UseTarget(c.storageBucketKey.flagTarget) } + // If stdin isn't a terminal, read yaml from it. + var bucketKeyPut api.StorageBucketKeyPut + if !termios.IsTerminal(getStdinFd()) { + contents, err := io.ReadAll(os.Stdin) + if err != nil { + return err + } + + err = yaml.UnmarshalStrict(contents, &bucketKeyPut) + if err != nil { + return err + } + } + req := api.StorageBucketKeysPost{ - Name: args[2], - StorageBucketKeyPut: api.StorageBucketKeyPut{ - Role: c.flagRole, - AccessKey: c.flagAccessKey, - SecretKey: c.flagSecretKey, - }, + Name: args[2], + StorageBucketKeyPut: bucketKeyPut, + } + + if c.flagRole != "" { + req.Role = c.flagRole + } + + if c.flagAccessKey != "" { + req.AccessKey = c.flagAccessKey + } + + if c.flagSecretKey != "" { + req.SecretKey = c.flagSecretKey } key, err := client.CreateStoragePoolBucketKey(resource.name, args[1], req) From 9bcc53b79ead9a07ac5fecf8354fe636b188aa8d Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Mon, 19 Aug 2024 16:53:21 +0200 Subject: [PATCH 042/169] lxc/storage_bucket: Avoid govet error `printf: non-constant format string in call to fmt.Errorf (govet)` Signed-off-by: Gabriel Mougard --- lxc/storage_bucket.go | 54 +++++++++++++++++++++---------------------- 1 file changed, 27 insertions(+), 27 deletions(-) diff --git a/lxc/storage_bucket.go b/lxc/storage_bucket.go index 8947309d3d45..4d7da196d0e8 100644 --- a/lxc/storage_bucket.go +++ b/lxc/storage_bucket.go @@ -104,11 +104,11 @@ func (c *cmdStorageBucketCreate) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } // If stdin isn't a terminal, read yaml from it. @@ -204,11 +204,11 @@ func (c *cmdStorageBucketDelete) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } client := resource.server @@ -280,11 +280,11 @@ func (c *cmdStorageBucketEdit) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } client := resource.server @@ -399,11 +399,11 @@ func (c *cmdStorageBucketGet) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } client := resource.server @@ -474,7 +474,7 @@ func (c *cmdStorageBucketList) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } client := resource.server @@ -556,11 +556,11 @@ func (c *cmdStorageBucketSet) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } client := resource.server @@ -648,11 +648,11 @@ func (c *cmdStorageBucketShow) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } client := resource.server @@ -790,11 +790,11 @@ func (c *cmdStorageBucketKeyList) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } client := resource.server @@ -877,15 +877,15 @@ func (c *cmdStorageBucketKeyCreate) runAdd(cmd *cobra.Command, args []string) er resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } if args[2] == "" { - return fmt.Errorf(i18n.G("Missing key name")) + return fmt.Errorf("%s", i18n.G("Missing key name")) } client := resource.server @@ -974,15 +974,15 @@ func (c *cmdStorageBucketKeyDelete) runRemove(cmd *cobra.Command, args []string) resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } if args[2] == "" { - return fmt.Errorf(i18n.G("Missing key name")) + return fmt.Errorf("%s", i18n.G("Missing key name")) } client := resource.server @@ -1053,15 +1053,15 @@ func (c *cmdStorageBucketKeyEdit) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } if args[2] == "" { - return fmt.Errorf(i18n.G("Missing key name")) + return fmt.Errorf("%s", i18n.G("Missing key name")) } client := resource.server @@ -1176,15 +1176,15 @@ func (c *cmdStorageBucketKeyShow) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing pool name")) + return fmt.Errorf("%s", i18n.G("Missing pool name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing bucket name")) + return fmt.Errorf("%s", i18n.G("Missing bucket name")) } if args[2] == "" { - return fmt.Errorf(i18n.G("Missing key name")) + return fmt.Errorf("%s", i18n.G("Missing key name")) } client := resource.server From 6fe73003b0c457192b53d82cd3ec7056539f5b46 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Mon, 12 Aug 2024 13:30:38 +0200 Subject: [PATCH 043/169] i18n: update translation templates Signed-off-by: Gabriel Mougard --- po/ar.po | 72 +++++++++++++++++++++++++++++---------------------- po/ber.po | 72 +++++++++++++++++++++++++++++---------------------- po/bg.po | 72 +++++++++++++++++++++++++++++---------------------- po/ca.po | 72 +++++++++++++++++++++++++++++---------------------- po/cs.po | 72 +++++++++++++++++++++++++++++---------------------- po/de.po | 72 +++++++++++++++++++++++++++++---------------------- po/el.po | 72 +++++++++++++++++++++++++++++---------------------- po/eo.po | 72 +++++++++++++++++++++++++++++---------------------- po/es.po | 72 +++++++++++++++++++++++++++++---------------------- po/fa.po | 72 +++++++++++++++++++++++++++++---------------------- po/fi.po | 72 +++++++++++++++++++++++++++++---------------------- po/fr.po | 72 +++++++++++++++++++++++++++++---------------------- po/he.po | 72 +++++++++++++++++++++++++++++---------------------- po/hi.po | 72 +++++++++++++++++++++++++++++---------------------- po/id.po | 72 +++++++++++++++++++++++++++++---------------------- po/it.po | 72 +++++++++++++++++++++++++++++---------------------- po/ja.po | 72 +++++++++++++++++++++++++++++---------------------- po/ka.po | 72 +++++++++++++++++++++++++++++---------------------- po/ko.po | 72 +++++++++++++++++++++++++++++---------------------- po/lxd.pot | 52 +++++++++++++++++++++---------------- po/mr.po | 72 +++++++++++++++++++++++++++++---------------------- po/nb_NO.po | 72 +++++++++++++++++++++++++++++---------------------- po/nl.po | 72 +++++++++++++++++++++++++++++---------------------- po/pa.po | 72 +++++++++++++++++++++++++++++---------------------- po/pl.po | 72 +++++++++++++++++++++++++++++---------------------- po/pt.po | 72 +++++++++++++++++++++++++++++---------------------- po/pt_BR.po | 72 +++++++++++++++++++++++++++++---------------------- po/ru.po | 72 +++++++++++++++++++++++++++++---------------------- po/si.po | 72 +++++++++++++++++++++++++++++---------------------- po/sl.po | 72 +++++++++++++++++++++++++++++---------------------- po/sr.po | 72 +++++++++++++++++++++++++++++---------------------- po/sv.po | 72 +++++++++++++++++++++++++++++---------------------- po/te.po | 72 +++++++++++++++++++++++++++++---------------------- po/th.po | 72 +++++++++++++++++++++++++++++---------------------- po/tr.po | 72 +++++++++++++++++++++++++++++---------------------- po/tzm.po | 72 +++++++++++++++++++++++++++++---------------------- po/ug.po | 72 +++++++++++++++++++++++++++++---------------------- po/uk.po | 72 +++++++++++++++++++++++++++++---------------------- po/zh_Hans.po | 72 +++++++++++++++++++++++++++++---------------------- po/zh_Hant.po | 72 +++++++++++++++++++++++++++++---------------------- 40 files changed, 1629 insertions(+), 1231 deletions(-) diff --git a/po/ar.po b/po/ar.po index 1e98e4e8fcb5..2ff5b3b06683 100644 --- a/po/ar.po +++ b/po/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -565,11 +565,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1145,9 +1145,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1214,7 +1214,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1581,7 +1581,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1731,8 +1731,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1987,7 +1987,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3730,9 +3730,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3776,8 +3776,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3846,9 +3846,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4386,7 +4386,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4952,7 +4952,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5027,11 +5027,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5464,7 +5464,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5624,12 +5624,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6862,8 +6862,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7399,13 +7399,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/ber.po b/po/ber.po index 54c3c628faba..eff03835835a 100644 --- a/po/ber.po +++ b/po/ber.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Berber :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/bg.po b/po/bg.po index 182bda3b7939..9a6478ff5d34 100644 --- a/po/bg.po +++ b/po/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/ca.po b/po/ca.po index 70dc8c7bb50e..d46c8b047161 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Catalan :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/cs.po b/po/cs.po index 961a9b7a09c7..98576106376c 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Czech =2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1148,9 +1148,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1217,7 +1217,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1584,7 +1584,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1734,8 +1734,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1990,7 +1990,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3733,9 +3733,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3779,8 +3779,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3849,9 +3849,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4389,7 +4389,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4955,7 +4955,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5030,11 +5030,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5467,7 +5467,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5627,12 +5627,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6865,8 +6865,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/de.po b/po/de.po index b2663dec92a9..a651f71f3389 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Krombel \n" "Language-Team: German \n" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 #, fuzzy msgid "[:] " msgstr "" @@ -8717,13 +8717,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/el.po b/po/el.po index 32cb483c1887..ed16a315cd67 100644 --- a/po/el.po +++ b/po/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Greek :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7515,13 +7515,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/eo.po b/po/eo.po index caae633f91fa..59b1f9d6bf56 100644 --- a/po/eo.po +++ b/po/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Esperanto :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/es.po b/po/es.po index 96704fd55943..af0dd2e01fdd 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2023-06-16 20:55+0000\n" "Last-Translator: Francisco Serrador \n" "Language-Team: Spanish :] " msgstr "No se puede proveer el nombre del container a la lista" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" @@ -7980,13 +7980,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/fa.po b/po/fa.po index 55f58b306a5d..e9fdb3253bc8 100644 --- a/po/fa.po +++ b/po/fa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Persian 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1148,9 +1148,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1217,7 +1217,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1584,7 +1584,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1734,8 +1734,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1990,7 +1990,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3733,9 +3733,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3779,8 +3779,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3849,9 +3849,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4389,7 +4389,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4955,7 +4955,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5030,11 +5030,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5467,7 +5467,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5627,12 +5627,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6865,8 +6865,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/fi.po b/po/fi.po index c576dbde0eb6..0c919efa1b24 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Finnish :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/fr.po b/po/fr.po index 1365a94bc178..6fb65fff1050 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Wivik \n" "Language-Team: French 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 #, fuzzy msgid "" "### This is a YAML representation of a storage bucket.\n" @@ -830,11 +830,11 @@ msgstr "" msgid "Accept certificate" msgstr "Accepter le certificat" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, fuzzy, c-format msgid "Access key: %s" msgstr "Expire : %s" @@ -1443,9 +1443,9 @@ msgstr "Périphérique %s retiré de %s" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1523,7 +1523,7 @@ msgstr "Clé/valeur de configuration à appliquer au nouveau conteneur" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1940,7 +1940,7 @@ msgstr "L'arrêt du conteneur a échoué !" msgid "Delete instances and snapshots" msgstr "Forcer le conteneur à s'arrêter" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 #, fuzzy msgid "Delete key from a storage bucket" msgstr "Copie de l'image : %s" @@ -2099,8 +2099,8 @@ msgstr "Récupération de l'image : %s" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -2381,7 +2381,7 @@ msgstr "Clé de configuration invalide" msgid "Edit storage bucket configurations as YAML" msgstr "Clé de configuration invalide" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -4318,9 +4318,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 #, fuzzy msgid "Missing bucket name" msgstr "Résumé manquant." @@ -4373,8 +4373,8 @@ msgstr "Vous devez fournir le nom d'un conteneur pour : " msgid "Missing instance name" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 #, fuzzy msgid "Missing key name" msgstr "Résumé manquant." @@ -4451,9 +4451,9 @@ msgstr "Résumé manquant." #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -5027,7 +5027,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 #, fuzzy msgid "Press enter to open the editor again or ctrl+c to abort change" @@ -5655,7 +5655,7 @@ msgstr "Vous devez fournir le nom d'un conteneur pour : " msgid "Revoke cluster member join token" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5734,11 +5734,11 @@ msgstr "ENSEMBLE DE STOCKAGE" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, fuzzy, c-format msgid "Secret key: %s" msgstr "Créé : %s" @@ -6219,7 +6219,7 @@ msgstr "Afficher la configuration étendue" msgid "Show storage bucket configurations" msgstr "Afficher la configuration étendue" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 #, fuzzy msgid "Show storage bucket key configurations" msgstr "Afficher la configuration étendue" @@ -6393,12 +6393,12 @@ msgstr "Profil %s créé" msgid "Storage bucket %s deleted" msgstr "Profil %s supprimé" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, fuzzy, c-format msgid "Storage bucket key %s added" msgstr "Profil %s créé" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, fuzzy, c-format msgid "Storage bucket key %s removed" msgstr "Profil %s créé" @@ -8188,8 +8188,8 @@ msgstr "" "lxc %s [:] [[:]...]%s" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 #, fuzzy msgid "[:] " msgstr "" @@ -8992,13 +8992,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/he.po b/po/he.po index 8636b231d0c5..1f492668d8c0 100644 --- a/po/he.po +++ b/po/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hebrew :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7403,13 +7403,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/hi.po b/po/hi.po index dad463035e49..8c8d58539ed1 100644 --- a/po/hi.po +++ b/po/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hindi 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1148,9 +1148,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1217,7 +1217,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1584,7 +1584,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1734,8 +1734,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1990,7 +1990,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3733,9 +3733,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3779,8 +3779,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3849,9 +3849,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4389,7 +4389,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4955,7 +4955,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5030,11 +5030,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5467,7 +5467,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5627,12 +5627,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6865,8 +6865,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/id.po b/po/id.po index e0f5aa146272..76e2a9dab06b 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/it.po b/po/it.po index 28a40fcb2e6a..129974b0fe24 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Luigi Operoso \n" "Language-Team: Italian :] " msgstr "Creazione del container in corso" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" @@ -7977,13 +7977,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/ja.po b/po/ja.po index ce53a476c786..0d07e38739a3 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2023-03-10 15:14+0000\n" "Last-Translator: KATOH Yasufumi \n" "Language-Team: Japanese :] " msgstr "[:] " #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "[:] " @@ -8302,7 +8302,7 @@ msgstr "" "lxc storage bucket edit [:] < bucket.yaml\n" " bucket.yaml の内容でストレージバケットを更新します。" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." @@ -8310,7 +8310,17 @@ msgstr "" "lxc storage bucket edit [:] < key.yaml\n" " key.yaml の内容でストレージバケットの鍵を更新します。" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/ka.po b/po/ka.po index 444a25fc6e88..bec991928808 100644 --- a/po/ka.po +++ b/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -565,11 +565,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1145,9 +1145,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1214,7 +1214,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1581,7 +1581,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1731,8 +1731,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1987,7 +1987,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3730,9 +3730,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3776,8 +3776,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3846,9 +3846,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4386,7 +4386,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4952,7 +4952,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5027,11 +5027,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5464,7 +5464,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5624,12 +5624,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6862,8 +6862,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7399,13 +7399,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/ko.po b/po/ko.po index 253977d6c083..97b587317d1b 100644 --- a/po/ko.po +++ b/po/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/lxd.pot b/po/lxd.pot index fbda836b11e9..71f50248e6cf 100644 --- a/po/lxd.pot +++ b/po/lxd.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" - "POT-Creation-Date: 2024-08-02 16:47+0200\n" + "POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,7 +16,7 @@ msgstr "Project-Id-Version: lxd\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" "###\n" @@ -534,11 +534,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1085,7 +1085,7 @@ msgstr "" msgid "Cluster member %s removed from group %s" msgstr "" -#: lxc/config.go:105 lxc/config.go:389 lxc/config.go:529 lxc/config.go:735 lxc/config.go:858 lxc/copy.go:61 lxc/info.go:44 lxc/init.go:64 lxc/move.go:66 lxc/network.go:300 lxc/network.go:723 lxc/network.go:792 lxc/network.go:1134 lxc/network.go:1219 lxc/network.go:1283 lxc/network_forward.go:174 lxc/network_forward.go:239 lxc/network_forward.go:456 lxc/network_forward.go:579 lxc/network_forward.go:721 lxc/network_forward.go:798 lxc/network_forward.go:864 lxc/network_load_balancer.go:176 lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 lxc/storage_volume.go:560 lxc/storage_volume.go:639 lxc/storage_volume.go:883 lxc/storage_volume.go:1097 lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 lxc/storage_volume.go:1758 lxc/storage_volume.go:1885 lxc/storage_volume.go:2031 lxc/storage_volume.go:2135 lxc/storage_volume.go:2175 lxc/storage_volume.go:2268 lxc/storage_volume.go:2340 lxc/storage_volume.go:2492 +#: lxc/config.go:105 lxc/config.go:389 lxc/config.go:529 lxc/config.go:735 lxc/config.go:858 lxc/copy.go:61 lxc/info.go:44 lxc/init.go:64 lxc/move.go:66 lxc/network.go:300 lxc/network.go:723 lxc/network.go:792 lxc/network.go:1134 lxc/network.go:1219 lxc/network.go:1283 lxc/network_forward.go:174 lxc/network_forward.go:239 lxc/network_forward.go:456 lxc/network_forward.go:579 lxc/network_forward.go:721 lxc/network_forward.go:798 lxc/network_forward.go:864 lxc/network_load_balancer.go:176 lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 lxc/storage_volume.go:560 lxc/storage_volume.go:639 lxc/storage_volume.go:883 lxc/storage_volume.go:1097 lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 lxc/storage_volume.go:1758 lxc/storage_volume.go:1885 lxc/storage_volume.go:2031 lxc/storage_volume.go:2135 lxc/storage_volume.go:2175 lxc/storage_volume.go:2268 lxc/storage_volume.go:2340 lxc/storage_volume.go:2492 msgid "Cluster member name" msgstr "" @@ -1136,7 +1136,7 @@ msgstr "" msgid "Config key/value to apply to the target instance" msgstr "" -#: lxc/cluster.go:770 lxc/cluster_group.go:339 lxc/config.go:272 lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 lxc/network_acl.go:620 lxc/network_forward.go:685 lxc/network_load_balancer.go:689 lxc/network_peer.go:610 lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 lxc/storage_volume.go:1048 +#: lxc/cluster.go:770 lxc/cluster_group.go:339 lxc/config.go:272 lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 lxc/network_acl.go:620 lxc/network_forward.go:685 lxc/network_load_balancer.go:689 lxc/network_peer.go:610 lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" msgstr "" @@ -1487,7 +1487,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1543,7 +1543,7 @@ msgstr "" msgid "Delete warning" msgstr "" -#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:158 lxc/project.go:221 lxc/project.go:349 lxc/project.go:410 lxc/project.go:523 lxc/project.go:580 lxc/project.go:659 lxc/project.go:690 lxc/project.go:743 lxc/project.go:802 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 +#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:158 lxc/project.go:221 lxc/project.go:349 lxc/project.go:410 lxc/project.go:523 lxc/project.go:580 lxc/project.go:659 lxc/project.go:690 lxc/project.go:743 lxc/project.go:802 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 msgid "Description" msgstr "" @@ -1779,7 +1779,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3458,7 +3458,7 @@ msgstr "" msgid "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3494,7 +3494,7 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3526,7 +3526,7 @@ msgstr "" msgid "Missing peer name" msgstr "" -#: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 lxc/storage_volume.go:287 lxc/storage_volume.go:583 lxc/storage_volume.go:660 lxc/storage_volume.go:735 lxc/storage_volume.go:817 lxc/storage_volume.go:919 lxc/storage_volume.go:1120 lxc/storage_volume.go:1780 lxc/storage_volume.go:1907 lxc/storage_volume.go:2053 lxc/storage_volume.go:2195 lxc/storage_volume.go:2290 +#: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 lxc/storage_volume.go:287 lxc/storage_volume.go:583 lxc/storage_volume.go:660 lxc/storage_volume.go:735 lxc/storage_volume.go:817 lxc/storage_volume.go:919 lxc/storage_volume.go:1120 lxc/storage_volume.go:1780 lxc/storage_volume.go:1907 lxc/storage_volume.go:2053 lxc/storage_volume.go:2195 lxc/storage_volume.go:2290 msgid "Missing pool name" msgstr "" @@ -4031,7 +4031,7 @@ msgstr "" msgid "Press ctrl+c to finish" msgstr "" -#: lxc/auth.go:301 lxc/auth.go:1055 lxc/auth.go:1661 lxc/cluster.go:771 lxc/cluster_group.go:340 lxc/config.go:273 lxc/config.go:348 lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 lxc/network_acl.go:621 lxc/network_forward.go:686 lxc/network_load_balancer.go:690 lxc/network_peer.go:611 lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 lxc/storage_volume.go:1049 +#: lxc/auth.go:301 lxc/auth.go:1055 lxc/auth.go:1661 lxc/cluster.go:771 lxc/cluster_group.go:340 lxc/config.go:273 lxc/config.go:348 lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 lxc/network_acl.go:621 lxc/network_forward.go:686 lxc/network_load_balancer.go:690 lxc/network_peer.go:611 lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4576,7 +4576,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -4650,11 +4650,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5055,7 +5055,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5213,12 +5213,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6390,7 +6390,7 @@ msgstr "" msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -6865,12 +6865,20 @@ msgid "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "lxc storage bucket key create p1 b01 k1\n" + " Create a key called k1 for the bucket b01 in the pool p1.\n" + "\n" + "lxc storage bucket key create p1 b01 k1 < config.yaml\n" + " Create a key called k1 for the bucket b01 in the pool p1 using the content of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket called \"data\" in the \"default\" pool." msgstr "" diff --git a/po/mr.po b/po/mr.po index 65154ff39c50..9a61cf53ba74 100644 --- a/po/mr.po +++ b/po/mr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Marathi :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/nb_NO.po b/po/nb_NO.po index 8665352abe8e..62bcbe93ee87 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Norwegian Bokmål :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/nl.po b/po/nl.po index 4647de307584..fae296a69194 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7626,13 +7626,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/pa.po b/po/pa.po index 79b4f25b2ad0..c6ee48bd1bc3 100644 --- a/po/pa.po +++ b/po/pa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Punjabi 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1148,9 +1148,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1217,7 +1217,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1584,7 +1584,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1734,8 +1734,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1990,7 +1990,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3733,9 +3733,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3779,8 +3779,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3849,9 +3849,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4389,7 +4389,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4955,7 +4955,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5030,11 +5030,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5467,7 +5467,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5627,12 +5627,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6865,8 +6865,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/pl.po b/po/pl.po index be9039c72a20..ec40bb9739e4 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Polish =20) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 #, fuzzy msgid "" "### This is a YAML representation of a storage bucket.\n" @@ -830,11 +830,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1410,9 +1410,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1479,7 +1479,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1846,7 +1846,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1996,8 +1996,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -2252,7 +2252,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3995,9 +3995,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -4041,8 +4041,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -4111,9 +4111,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4651,7 +4651,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -5217,7 +5217,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5292,11 +5292,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5729,7 +5729,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5889,12 +5889,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -7127,8 +7127,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7664,13 +7664,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/pt.po b/po/pt.po index a7a8ee469011..283983ac542c 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -565,11 +565,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1145,9 +1145,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1214,7 +1214,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1581,7 +1581,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1731,8 +1731,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1987,7 +1987,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3730,9 +3730,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3776,8 +3776,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3846,9 +3846,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4386,7 +4386,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4952,7 +4952,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5027,11 +5027,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5464,7 +5464,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5624,12 +5624,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6862,8 +6862,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7399,13 +7399,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/pt_BR.po b/po/pt_BR.po index b3747eee27fa..718fb844d1a6 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Renato dos Santos \n" "Language-Team: Portuguese (Brazil) 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 #, fuzzy msgid "" "### This is a YAML representation of a storage bucket.\n" @@ -827,11 +827,11 @@ msgstr "" msgid "Accept certificate" msgstr "Aceitar certificado" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1427,9 +1427,9 @@ msgstr "Dispositivo %s removido de %s" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1505,7 +1505,7 @@ msgstr "Configuração chave/valor para aplicar ao novo contêiner" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1897,7 +1897,7 @@ msgstr "Editar templates de arquivo do container" msgid "Delete instances and snapshots" msgstr "Apagar nomes alternativos da imagem" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -2054,8 +2054,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -2334,7 +2334,7 @@ msgstr "Editar configurações de perfil como YAML" msgid "Edit storage bucket configurations as YAML" msgstr "Editar configurações de perfil como YAML" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -4141,9 +4141,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 #, fuzzy msgid "Missing bucket name" msgstr "Nome de membro do cluster" @@ -4195,8 +4195,8 @@ msgstr "Nome de membro do cluster" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 #, fuzzy msgid "Missing key name" msgstr "Nome de membro do cluster" @@ -4271,9 +4271,9 @@ msgstr "Nome de membro do cluster" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4815,7 +4815,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -5415,7 +5415,7 @@ msgstr "Nome de membro do cluster" msgid "Revoke cluster member join token" msgstr "Nome de membro do cluster" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5491,11 +5491,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, fuzzy, c-format msgid "Secret key: %s" msgstr "Criado: %s" @@ -5965,7 +5965,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "Editar configurações do container ou do servidor como YAML" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 #, fuzzy msgid "Show storage bucket key configurations" msgstr "Editar configurações do container ou do servidor como YAML" @@ -6129,12 +6129,12 @@ msgstr "Clustering ativado" msgid "Storage bucket %s deleted" msgstr "Clustering ativado" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -7450,8 +7450,8 @@ msgid "[:] " msgstr "Criar perfis" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 #, fuzzy msgid "[:] " msgstr "Editar templates de arquivo do container" @@ -8012,13 +8012,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/ru.po b/po/ru.po index faf1b5a1543b..8ef31d51d279 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Александр Киль \n" "Language-Team: Russian =20) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 #, fuzzy msgid "" "### This is a YAML representation of a storage bucket.\n" @@ -831,11 +831,11 @@ msgstr "" msgid "Accept certificate" msgstr "Принять сертификат" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1424,9 +1424,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1493,7 +1493,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1884,7 +1884,7 @@ msgstr "Невозможно добавить имя контейнера в с msgid "Delete instances and snapshots" msgstr "Невозможно добавить имя контейнера в список" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 #, fuzzy msgid "Delete key from a storage bucket" msgstr "Копирование образа: %s" @@ -2040,8 +2040,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -2311,7 +2311,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "Копирование образа: %s" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -4139,9 +4139,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 #, fuzzy msgid "Missing bucket name" msgstr "Имя контейнера: %s" @@ -4193,8 +4193,8 @@ msgstr "Копирование образа: %s" msgid "Missing instance name" msgstr "Имя контейнера: %s" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 #, fuzzy msgid "Missing key name" msgstr "Имя контейнера: %s" @@ -4269,9 +4269,9 @@ msgstr "Имя контейнера: %s" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4820,7 +4820,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -5409,7 +5409,7 @@ msgstr "Копирование образа: %s" msgid "Revoke cluster member join token" msgstr "Копирование образа: %s" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5485,11 +5485,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, fuzzy, c-format msgid "Secret key: %s" msgstr "Авто-обновление: %s" @@ -5951,7 +5951,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "Копирование образа: %s" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 #, fuzzy msgid "Show storage bucket key configurations" msgstr "Копирование образа: %s" @@ -6119,12 +6119,12 @@ msgstr " Использование сети:" msgid "Storage bucket %s deleted" msgstr " Использование сети:" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -7766,8 +7766,8 @@ msgstr "" "lxc %s [:] [[:]...]%s" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 #, fuzzy msgid "[:] " msgstr "" @@ -8499,13 +8499,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/si.po b/po/si.po index c67074632bd6..c60c895eb919 100644 --- a/po/si.po +++ b/po/si.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Sinhala 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1148,9 +1148,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1217,7 +1217,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1584,7 +1584,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1734,8 +1734,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1990,7 +1990,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3733,9 +3733,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3779,8 +3779,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3849,9 +3849,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4389,7 +4389,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4955,7 +4955,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5030,11 +5030,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5467,7 +5467,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5627,12 +5627,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6865,8 +6865,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/sl.po b/po/sl.po index db25190912e7..fb0fdbe5f137 100644 --- a/po/sl.po +++ b/po/sl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Slovenian :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7403,13 +7403,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/sr.po b/po/sr.po index 189ebc26e321..e5fe3d19bcab 100644 --- a/po/sr.po +++ b/po/sr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian =20) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -569,11 +569,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1149,9 +1149,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1218,7 +1218,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1585,7 +1585,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1735,8 +1735,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1991,7 +1991,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3734,9 +3734,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3780,8 +3780,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3850,9 +3850,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4390,7 +4390,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4956,7 +4956,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5031,11 +5031,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5468,7 +5468,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5628,12 +5628,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6866,8 +6866,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7403,13 +7403,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/sv.po b/po/sv.po index 2a5fb100e0af..e983acb6d20c 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Swedish :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/te.po b/po/te.po index 6d72da4092d7..7fc285ad21af 100644 --- a/po/te.po +++ b/po/te.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Telugu :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/th.po b/po/th.po index e1c6c5acc9b2..1c38a21c29be 100644 --- a/po/th.po +++ b/po/th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -565,11 +565,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1145,9 +1145,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1214,7 +1214,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1581,7 +1581,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1731,8 +1731,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1987,7 +1987,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3730,9 +3730,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3776,8 +3776,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3846,9 +3846,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4386,7 +4386,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4952,7 +4952,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5027,11 +5027,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5464,7 +5464,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5624,12 +5624,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6862,8 +6862,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7399,13 +7399,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/tr.po b/po/tr.po index cb78db2d3d2b..99ab7a55ff4f 100644 --- a/po/tr.po +++ b/po/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Turkish :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/tzm.po b/po/tzm.po index e8d5fa67b8be..e9ceb2ba3fc7 100644 --- a/po/tzm.po +++ b/po/tzm.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Tamazight (Central Atlas) = 2 && (n < 11 || n > 99);\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1148,9 +1148,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1217,7 +1217,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1584,7 +1584,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1734,8 +1734,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1990,7 +1990,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3733,9 +3733,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3779,8 +3779,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3849,9 +3849,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4389,7 +4389,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4955,7 +4955,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5030,11 +5030,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5467,7 +5467,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5627,12 +5627,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6865,8 +6865,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/ug.po b/po/ug.po index 07df227b1515..f8f6e5d4c070 100644 --- a/po/ug.po +++ b/po/ug.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Uyghur :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/uk.po b/po/uk.po index 142ddc65ebcc..094da7604e35 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Ukrainian =20) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1000 +#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -569,11 +569,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:852 +#: lxc/storage_bucket.go:858 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:908 +#: lxc/storage_bucket.go:936 #, c-format msgid "Access key: %s" msgstr "" @@ -1149,9 +1149,9 @@ msgstr "" #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 #: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 #: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:850 -#: lxc/storage_bucket.go:928 lxc/storage_bucket.go:993 -#: lxc/storage_bucket.go:1129 lxc/storage_volume.go:358 +#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 +#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 +#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1218,7 +1218,7 @@ msgstr "" #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1092 lxc/storage_volume.go:1016 +#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1585,7 +1585,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:924 lxc/storage_bucket.go:925 +#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 msgid "Delete key from a storage bucket" msgstr "" @@ -1735,8 +1735,8 @@ msgstr "" #: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 #: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 #: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:925 -#: lxc/storage_bucket.go:989 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1991,7 +1991,7 @@ msgstr "" msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:988 lxc/storage_bucket.go:989 +#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 msgid "Edit storage bucket key as YAML" msgstr "" @@ -3734,9 +3734,9 @@ msgstr "" #: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 #: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 #: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:878 -#: lxc/storage_bucket.go:953 lxc/storage_bucket.go:1032 -#: lxc/storage_bucket.go:1155 +#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 +#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 +#: lxc/storage_bucket.go:1183 msgid "Missing bucket name" msgstr "" @@ -3780,8 +3780,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:882 lxc/storage_bucket.go:957 -#: lxc/storage_bucket.go:1036 lxc/storage_bucket.go:1159 +#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 +#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 msgid "Missing key name" msgstr "" @@ -3850,9 +3850,9 @@ msgstr "" #: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 #: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 #: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:874 -#: lxc/storage_bucket.go:949 lxc/storage_bucket.go:1028 -#: lxc/storage_bucket.go:1151 lxc/storage_volume.go:189 +#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 +#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 +#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4390,7 +4390,7 @@ msgstr "" #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1093 lxc/storage_volume.go:1017 +#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4956,7 +4956,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:851 +#: lxc/storage_bucket.go:857 msgid "Role (admin or read-only)" msgstr "" @@ -5031,11 +5031,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:853 +#: lxc/storage_bucket.go:859 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:909 +#: lxc/storage_bucket.go:937 #, c-format msgid "Secret key: %s" msgstr "" @@ -5468,7 +5468,7 @@ msgstr "" msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1123 lxc/storage_bucket.go:1124 +#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 msgid "Show storage bucket key configurations" msgstr "" @@ -5628,12 +5628,12 @@ msgstr "" msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:907 +#: lxc/storage_bucket.go:935 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:973 +#: lxc/storage_bucket.go:1001 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6866,8 +6866,8 @@ msgid "[:] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7403,13 +7403,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/zh_Hans.po b/po/zh_Hans.po index 3513456e897a..c1dcf95590d3 100644 --- a/po/zh_Hans.po +++ b/po/zh_Hans.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: 0x0916 \n" "Language-Team: Chinese (Simplified) :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7563,13 +7563,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " diff --git a/po/zh_Hant.po b/po/zh_Hant.po index 10a06424845b..456078376fbc 100644 --- a/po/zh_Hant.po +++ b/po/zh_Hant.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-02 16:47+0200\n" +"POT-Creation-Date: 2024-08-12 13:29+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Traditional) :] " msgstr "" #: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:923 -#: lxc/storage_bucket.go:987 lxc/storage_bucket.go:1122 +#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 +#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 msgid "[:] " msgstr "" @@ -7402,13 +7402,23 @@ msgid "" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1018 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:1125 +#: lxc/storage_bucket.go:848 +msgid "" +"lxc storage bucket key create p1 b01 k1\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1.\n" +"\n" +"lxc storage bucket key create p1 b01 k1 < config.yaml\n" +"\tCreate a key called k1 for the bucket b01 in the pool p1 using the content " +"of config.yaml." +msgstr "" + +#: lxc/storage_bucket.go:1153 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " From bf0fbaca2a2d829799faff622299199788ae2de0 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Mon, 12 Aug 2024 14:04:34 +0200 Subject: [PATCH 044/169] test: Create a bucket key using YAML bucket key config Signed-off-by: Gabriel Mougard --- test/suites/storage_buckets.sh | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/test/suites/storage_buckets.sh b/test/suites/storage_buckets.sh index 483bae4661c2..4c7a84057024 100644 --- a/test/suites/storage_buckets.sh +++ b/test/suites/storage_buckets.sh @@ -101,6 +101,14 @@ test_storage_buckets() { roAccessKey=$(echo "${creds}" | awk '{ if ($1 == "Access" && $2 == "key:") {print $3}}') roSecretKey=$(echo "${creds}" | awk '{ if ($1 == "Secret" && $2 == "key:") {print $3}}') + # Test creating a bucket key with YAML bucket key config. + creds=$(lxc storage bucket key create "${poolName}" "${bucketPrefix}.foo" yaml-key << EOF +role: read-only +EOF +) + roYamlAccessKey=$(echo "${creds}" | awk '{ if ($1 == "Access" && $2 == "key:") {print $3}}') + roYamlSecretKey=$(echo "${creds}" | awk '{ if ($1 == "Secret" && $2 == "key:") {print $3}}') + lxc storage bucket key list "${poolName}" "${bucketPrefix}.foo" | grep -F "admin-key" lxc storage bucket key list "${poolName}" "${bucketPrefix}.foo" | grep -F "ro-key" lxc storage bucket key show "${poolName}" "${bucketPrefix}.foo" admin-key @@ -109,6 +117,7 @@ test_storage_buckets() { # Test listing buckets via S3. s3cmdrun "${lxd_backend}" "${adAccessKey}" "${adSecretKey}" ls | grep -F "${bucketPrefix}.foo" s3cmdrun "${lxd_backend}" "${roAccessKey}" "${roSecretKey}" ls | grep -F "${bucketPrefix}.foo" + s3cmdrun "${lxd_backend}" "${roYamlAccessKey}" "${roYamlSecretKey}" ls | grep -F "${bucketPrefix}.foo" # Test making buckets via S3 is blocked. ! s3cmdrun "${lxd_backend}" "${adAccessKey}" "${adSecretKey}" mb "s3://${bucketPrefix}.foo2" || false From 876e6819a96c99d60d9056ce30c436964d3b6c05 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Tue, 20 Aug 2024 10:23:08 +0100 Subject: [PATCH 045/169] gomod: Update dependencies And remove pin of openfga. Signed-off-by: Thomas Parrott --- Makefile | 1 - go.mod | 26 +++++++++++++------------- go.sum | 52 ++++++++++++++++++++++++++-------------------------- 3 files changed, 39 insertions(+), 40 deletions(-) diff --git a/Makefile b/Makefile index 2604e5107d65..5450ebb446bc 100644 --- a/Makefile +++ b/Makefile @@ -91,7 +91,6 @@ ifneq "$(LXD_OFFLINE)" "" endif go get -t -v -d -u ./... go get github.com/gorilla/websocket@v1.5.1 # Due to riscv64 crashes in LP - go get github.com/openfga/openfga@v1.5.6 # Due to build failures go mod tidy -go=$(GOMIN) @echo "Dependencies updated" diff --git a/go.mod b/go.mod index 33a5e7a80b8c..646288a1e92d 100644 --- a/go.mod +++ b/go.mod @@ -54,7 +54,7 @@ require ( go.starlark.net v0.0.0-20240725214946-42030a7cedce go.uber.org/zap v1.27.0 golang.org/x/crypto v0.26.0 - golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 + golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa golang.org/x/oauth2 v0.22.0 golang.org/x/sync v0.8.0 golang.org/x/sys v0.24.0 @@ -75,22 +75,22 @@ require ( github.com/cpuguy83/go-md2man/v2 v2.0.4 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 // indirect - github.com/digitalocean/go-libvirt v0.0.0-20240709142323-d8406205c752 // indirect + github.com/digitalocean/go-libvirt v0.0.0-20240812180835-9c6c0a310c6c // indirect github.com/dustin/go-humanize v1.0.1 // indirect github.com/eapache/channels v1.1.0 // indirect github.com/eapache/queue v1.1.0 // indirect github.com/emirpasic/gods v1.18.1 // indirect - github.com/envoyproxy/protoc-gen-validate v1.0.4 // indirect + github.com/envoyproxy/protoc-gen-validate v1.1.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect github.com/go-ini/ini v1.67.0 // indirect github.com/go-logr/logr v1.4.2 // indirect github.com/go-logr/stdr v1.2.2 // indirect github.com/goccy/go-json v0.10.3 // indirect - github.com/google/cel-go v0.20.1 // indirect + github.com/google/cel-go v0.21.0 // indirect github.com/google/renameio v1.0.1 // indirect github.com/grpc-ecosystem/go-grpc-middleware v1.4.0 // indirect github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 // indirect - github.com/grpc-ecosystem/grpc-gateway/v2 v2.21.0 // indirect + github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 // indirect github.com/hashicorp/errwrap v1.1.0 // indirect github.com/hashicorp/go-multierror v1.1.1 // indirect github.com/hashicorp/hcl v1.0.0 // indirect @@ -120,7 +120,7 @@ require ( github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.19.1 // indirect + github.com/prometheus/client_golang v1.20.0 // indirect github.com/prometheus/client_model v0.6.1 // indirect github.com/prometheus/common v0.55.0 // indirect github.com/prometheus/procfs v0.15.1 // indirect @@ -132,7 +132,7 @@ require ( github.com/sagikazarmark/slog-shim v0.1.0 // indirect github.com/sourcegraph/conc v0.3.0 // indirect github.com/spf13/afero v1.11.0 // indirect - github.com/spf13/cast v1.6.0 // indirect + github.com/spf13/cast v1.7.0 // indirect github.com/spf13/pflag v1.0.5 // indirect github.com/spf13/viper v1.19.0 // indirect github.com/stoewer/go-strcase v1.3.0 // indirect @@ -148,12 +148,12 @@ require ( go.opentelemetry.io/otel/trace v1.28.0 // indirect go.opentelemetry.io/proto/otlp v1.3.1 // indirect go.uber.org/multierr v1.11.0 // indirect - golang.org/x/mod v0.19.0 // indirect - golang.org/x/net v0.27.0 // indirect - golang.org/x/time v0.5.0 // indirect - golang.org/x/tools v0.23.0 // indirect - google.golang.org/genproto/googleapis/api v0.0.0-20240730163845-b1a4ccb954bf // indirect - google.golang.org/genproto/googleapis/rpc v0.0.0-20240730163845-b1a4ccb954bf // indirect + golang.org/x/mod v0.20.0 // indirect + golang.org/x/net v0.28.0 // indirect + golang.org/x/time v0.6.0 // indirect + golang.org/x/tools v0.24.0 // indirect + google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 // indirect + google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 // indirect google.golang.org/grpc v1.65.0 // indirect gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect diff --git a/go.sum b/go.sum index 6dd6aac913d8..644b222dbe64 100644 --- a/go.sum +++ b/go.sum @@ -96,8 +96,8 @@ github.com/dell/goscaleio v1.15.0 h1:DzI1ZlQhdIR+V4AKGOMwz1Viu2bAtj3N6kTyixB0Qg8 github.com/dell/goscaleio v1.15.0/go.mod h1:h7SCmReARG/szFWBMQGETGkZObknhS45lQipQbtdmJ8= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13 h1:fAjc9m62+UWV/WAFKLNi6ZS0675eEUC9y3AlwSbQu1Y= github.com/dgryski/go-farm v0.0.0-20200201041132-a6ae2369ad13/go.mod h1:SqUrOPUnsFjfmXRMNPybcSiG0BgUW2AuFH8PAnS2iTw= -github.com/digitalocean/go-libvirt v0.0.0-20240709142323-d8406205c752 h1:NI7XEcHzWVvBfVjSVK6Qk4wmrUfoyQxCNpBjrHelZFk= -github.com/digitalocean/go-libvirt v0.0.0-20240709142323-d8406205c752/go.mod h1:/Ok8PA2qi/ve0Py38+oL+VxoYmlowigYRyLEODRYdgc= +github.com/digitalocean/go-libvirt v0.0.0-20240812180835-9c6c0a310c6c h1:1y+eZhZOMDP86ErYQ7P7ebAvyhpr+HZhR5K6BlOkWoo= +github.com/digitalocean/go-libvirt v0.0.0-20240812180835-9c6c0a310c6c/go.mod h1:vhj0tZhS07ugaMVppAreQmBVHcqLwl5YR2DRu5/uJbY= github.com/digitalocean/go-qemu v0.0.0-20230711162256-2e3d0186973e h1:x5PInTuXLddHWHlePCNAcM8QtUfOGx44f3UmYPMtDcI= github.com/digitalocean/go-qemu v0.0.0-20230711162256-2e3d0186973e/go.mod h1:K4+o74YGNjOb9N6yyG+LPj1NjHtk+Qz0IYQPvirbaLs= github.com/digitalocean/go-smbios v0.0.0-20180907143718-390a4f403a8e h1:vUmf0yezR0y7jJ5pceLHthLaYf4bA5T14B6q39S4q2Q= @@ -127,8 +127,8 @@ github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5y github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/envoyproxy/protoc-gen-validate v1.0.4 h1:gVPz/FMfvh57HdSJQyvBtF00j8JU4zdyUgIUNhlgg0A= -github.com/envoyproxy/protoc-gen-validate v1.0.4/go.mod h1:qys6tmnRsYrQqIhm2bvKZH4Blx/1gTIZ2UKVY1M+Yew= +github.com/envoyproxy/protoc-gen-validate v1.1.0 h1:tntQDh69XqOCOZsDz0lVJQez/2L6Uu2PdjCQwWCJ3bM= +github.com/envoyproxy/protoc-gen-validate v1.1.0/go.mod h1:sXRDRVmzEbkM7CVcM06s9shE/m23dg3wzjl0UWqJ2q4= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg= github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U= @@ -208,8 +208,8 @@ github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/cel-go v0.20.1 h1:nDx9r8S3L4pE61eDdt8igGj8rf5kjYR3ILxWIpWNi84= -github.com/google/cel-go v0.20.1/go.mod h1:kWcIzTsPX0zmQ+H3TirHstLLf9ep5QTsZBN9u4dOYLg= +github.com/google/cel-go v0.21.0 h1:cl6uW/gxN+Hy50tNYvI691+sXxioCnstFzLp2WO4GCI= +github.com/google/cel-go v0.21.0/go.mod h1:rHUlWCcBKgyEk+eV03RPdZUekPp6YcJwV0FxuUksYxc= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= @@ -267,8 +267,8 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.4.0/go.mod h1:g5qyo/la0ALbONm6Vb github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0 h1:pRhl55Yx1eC7BZ1N+BBWwnKaMyD8uC+34TLdndZMAKk= github.com/grpc-ecosystem/go-grpc-middleware/v2 v2.1.0/go.mod h1:XKMd7iuf/RGPSMJ/U4HP0zS2Z9Fh8Ps9a+6X26m/tmI= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.21.0 h1:CWyXh/jylQWp2dtiV33mY4iSSp6yf4lmn+c7/tN+ObI= -github.com/grpc-ecosystem/grpc-gateway/v2 v2.21.0/go.mod h1:nCLIt0w3Ept2NwF8ThLmrppXsfT07oC8k0XNDxd8sVU= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0 h1:asbCHRVmodnJTuQ3qamDwqVOIjwqUPTYmYuemVOx+Ys= +github.com/grpc-ecosystem/grpc-gateway/v2 v2.22.0/go.mod h1:ggCgvZ2r7uOoQjOyu2Y1NhHmEPPzzuhWgcza5M1Ji1I= github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= @@ -544,8 +544,8 @@ github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= github.com/pressly/goose/v3 v3.20.0 h1:uPJdOxF/Ipj7ABVNOAMJXSxwFXZGwMGHNqjC8e61VA0= github.com/pressly/goose/v3 v3.20.0/go.mod h1:BRfF2GcG4FTG12QfdBVy3q1yveaf4ckL9vWwEcIO3lA= -github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= -github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_golang v1.20.0 h1:jBzTZ7B099Rg24tny+qngoynol8LtVYlA2bqx3vEloI= +github.com/prometheus/client_golang v1.20.0/go.mod h1:PIEt8X02hGcP8JWbeHyeZ53Y/jReSnHgO035n//V5WE= github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= @@ -589,8 +589,8 @@ github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z github.com/spf13/afero v1.11.0 h1:WJQKhtpdm3v2IzqG8VMqrr6Rf3UYpEF239Jy9wNepM8= github.com/spf13/afero v1.11.0/go.mod h1:GH9Y3pIexgf1MTIWtNGyogA5MwRIDXGUr+hbWNoBjkY= github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cast v1.6.0 h1:GEiTHELF+vaR5dhz3VqZfFSzZjYbgeKDpBxQVS4GYJ0= -github.com/spf13/cast v1.6.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= +github.com/spf13/cast v1.7.0 h1:ntdiHjuueXFgm5nzDRdOS4yfT43P5Fnud6DH50rz/7w= +github.com/spf13/cast v1.7.0/go.mod h1:ancEpBxwJDODSW/UG4rDrAqiKolqNNh2DX3mk86cAdo= github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= github.com/spf13/cobra v1.5.0/go.mod h1:dWXEIy2H428czQCjInthrTRUg7yKbok+2Qi/yBIJoUM= github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM= @@ -711,8 +711,8 @@ golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u0 golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8= -golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= +golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa h1:ELnwvuAXPNtPk1TJRuGkI9fDTwym6AYBu0qzT8AcHdI= +golang.org/x/exp v0.0.0-20240808152545-0cdaa3abc0fa/go.mod h1:akd2r19cwCdwSwWeIdzYQGa/EZZyqcOdwWiwj5L5eKQ= golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= @@ -739,8 +739,8 @@ golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= -golang.org/x/mod v0.19.0 h1:fEdghXQSo20giMthA7cd28ZC+jts4amQ3YMXiP5oMQ8= -golang.org/x/mod v0.19.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= +golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= +golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20180406214816-61147c48b25b/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -784,8 +784,8 @@ golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qx golang.org/x/net v0.0.0-20211216030914-fe4d6282115f/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.1.0/go.mod h1:Cx3nUiGt4eDBEyega/BKRp+/AlGL8hYe7U9odMt2Cco= -golang.org/x/net v0.27.0 h1:5K3Njcw06/l2y9vpGCSdcxWOYHOUk3dVNGDXN+FvAys= -golang.org/x/net v0.27.0/go.mod h1:dDi0PyhWNoiUOrAS8uXv/vnScO4wnHQO4mj9fn/RytE= +golang.org/x/net v0.28.0 h1:a9JDOJc5GMUJ0+UDqmLT86WiEy7iWyIhz8gz8E4e5hE= +golang.org/x/net v0.28.0/go.mod h1:yqtgsTWOOnlGLG9GFRrK3++bGOUEkNBoHZc8MEDWPNg= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= @@ -895,8 +895,8 @@ golang.org/x/text v0.17.0/go.mod h1:BuEKDfySbSR4drPmRPG/7iBdf8hvFMuRexcpahXilzY= golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= -golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= +golang.org/x/time v0.6.0 h1:eTDhh4ZXt5Qf0augr54TN6suAUudPcawVZeIAPU7D4U= +golang.org/x/time v0.6.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= @@ -950,8 +950,8 @@ golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4f golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= -golang.org/x/tools v0.23.0 h1:SGsXPZ+2l4JsgaCKkx+FQ9YZ5XEtA1GZYuoDjenLjvg= -golang.org/x/tools v0.23.0/go.mod h1:pnu6ufv6vQkll6szChhK3C3L/ruaIv5eBeztNG8wtsI= +golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= +golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -1027,10 +1027,10 @@ google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6D google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/genproto/googleapis/api v0.0.0-20240730163845-b1a4ccb954bf h1:GillM0Ef0pkZPIB+5iO6SDK+4T9pf6TpaYR6ICD5rVE= -google.golang.org/genproto/googleapis/api v0.0.0-20240730163845-b1a4ccb954bf/go.mod h1:OFMYQFHJ4TM3JRlWDZhJbZfra2uqc3WLBZiaaqP4DtU= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240730163845-b1a4ccb954bf h1:liao9UHurZLtiEwBgT9LMOnKYsHze6eA6w1KQCMVN2Q= -google.golang.org/genproto/googleapis/rpc v0.0.0-20240730163845-b1a4ccb954bf/go.mod h1:Ue6ibwXGpU+dqIcODieyLOcgj7z8+IcskoNIgZxtrFY= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142 h1:wKguEg1hsxI2/L3hUYrpo1RVi48K+uTyzKqprwLXsb8= +google.golang.org/genproto/googleapis/api v0.0.0-20240814211410-ddb44dafa142/go.mod h1:d6be+8HhtEtucleCbxpPW9PA9XwISACu8nvpPqF0BVo= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142 h1:e7S5W7MGGLaSu8j3YjdezkZ+m1/Nm0uRVRMEMGk26Xs= +google.golang.org/genproto/googleapis/rpc v0.0.0-20240814211410-ddb44dafa142/go.mod h1:UqMtugtsSgubUsoxbuAoiCXvqvErP7Gf0so0mK9tHxU= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= From feedc99818022c61eb0807e71d51b7b77d95011f Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Tue, 20 Aug 2024 15:07:51 +0200 Subject: [PATCH 046/169] doc/tutorial: integrate feedback for UI tutorial Update some wordings to make things clearer. Signed-off-by: Ruth Fuchss --- doc/tutorial/ui.md | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/doc/tutorial/ui.md b/doc/tutorial/ui.md index 221717924463..43d759060b62 100644 --- a/doc/tutorial/ui.md +++ b/doc/tutorial/ui.md @@ -71,7 +71,8 @@ See {ref}`containers-and-vms` for information about the difference between the t Creating this container is quicker than launching the first, because the image is already available locally. ``` -1. Create and start a VM called `ubuntu-vm` using the Ubuntu 24.04 LTS image by selecting {guilabel}`VM` as the instance type: +1. Create and start a VM called `ubuntu-vm` using the Ubuntu 24.04 LTS image. + To create a VM instead of a container, select {guilabel}`VM` as the instance type: ```{figure} /images/tutorial/create_vm.png :width: 100% @@ -82,8 +83,9 @@ See {ref}`containers-and-vms` for information about the difference between the t Even though you are using the same image name to launch the instance, LXD downloads a slightly different image that is compatible with VMs. ``` -1. Create and start a VM called `ubuntu-desktop` using the Ubuntu 24.04 LTS desktop image (filter by variant "desktop" to find it). - When you select the image, the instance type is automatically set to {guilabel}`VM`: +1. Start creating (do not click {guilabel}`Create and start` yet) a VM called `ubuntu-desktop`. + When selecting the image, filter by variant "desktop" to find the Ubuntu 24.04 LTS desktop image. + Note that after you select the image, the instance type is automatically set to {guilabel}`VM`: ```{figure} /images/tutorial/create_desktop_vm.png :width: 100% @@ -91,7 +93,8 @@ See {ref}`containers-and-vms` for information about the difference between the t ``` To run smoothly, the desktop VM needs more RAM. - Therefore, navigate to {guilabel}`Advanced` > {guilabel}`Resource limits` and set the {guilabel}`Memory limit` to 4 GiB before you start the instance. + Therefore, navigate to {guilabel}`Advanced` > {guilabel}`Resource limits` and set the {guilabel}`Memory limit` to 4 GiB. + Then click {guilabel}`Create and start` to start the instance. 1. Check the list of instances that you created: @@ -447,8 +450,11 @@ Now that we've run through the basic functionality of LXD, let's clean up the en 1. Go to {guilabel}`Storage` > {guilabel}`Volumes` and click the {guilabel}`Delete` button ({{delete_button}}) next to the `tutorial_volume` storage volume. -1. Optionally, you can also delete the images that you used. - If you keep them, they will eventually expire (by default, when they haven't been used for ten days). +```{note} +Optionally, you can also delete the images that you used. +However, this isn't really needed. +If you keep them, they will eventually expire (by default, when they haven't been used for ten days). +``` % Include content from [first_steps.md](first_steps.md) ```{include} first_steps.md From 758d0d9179399a740d4503d0e5ea4abff41cc176 Mon Sep 17 00:00:00 2001 From: Ruth Fuchss Date: Wed, 21 Aug 2024 10:16:06 +0200 Subject: [PATCH 047/169] doc/instances: add anchor to allow linking to section Signed-off-by: Ruth Fuchss --- doc/howto/instances_manage.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/howto/instances_manage.md b/doc/howto/instances_manage.md index 5ae781517839..e8f230deb8ba 100644 --- a/doc/howto/instances_manage.md +++ b/doc/howto/instances_manage.md @@ -178,6 +178,7 @@ You can also stop several instances at the same time by selecting them in the in ````` +(instances-manage-delete)= ## Delete an instance If you don't need an instance anymore, you can remove it. @@ -226,6 +227,7 @@ There are different ways to prevent accidental deletion of instances: lxc alias add delete "delete -i" +(instances-manage-rebuild)= ## Rebuild an instance If you want to wipe and re-initialize the root disk of your instance but keep the instance configuration, you can rebuild the instance. From 2198478f871de64fb5c228f2e172cba2a2a77656 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Wed, 21 Aug 2024 13:16:38 +0100 Subject: [PATCH 048/169] lxd/patches: Log the stage of patches being applied And correct doc block. Signed-off-by: Thomas Parrott --- lxd/patches.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/patches.go b/lxd/patches.go index 463795742e4a..e5c45081336b 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -100,8 +100,6 @@ type patch struct { } func (p *patch) apply(d *Daemon) error { - logger.Info("Applying patch", logger.Ctx{"name": p.name}) - err := p.run(p.name, d) if err != nil { return fmt.Errorf("Failed applying patch %q: %w", p.name, err) @@ -129,8 +127,9 @@ func patchesGetNames() []string { return names } -// patchesApplyPostDaemonStorage applies the patches that need to run after the daemon storage is initialised. +// patchesApply applies the patches for the specified stage. func patchesApply(d *Daemon, stage patchStage) error { + logger.Debug("Checking for patches", logger.Ctx{"stage": stage}) appliedPatches, err := d.db.Node.GetAppliedPatches() if err != nil { return err @@ -145,6 +144,7 @@ func patchesApply(d *Daemon, stage patchStage) error { continue } + logger.Info("Applying patch", logger.Ctx{"name": patch.name, "stage": stage}) err := patch.apply(d) if err != nil { return err From ee44cf2f1912f645c6774b3906a2f90f1254522a Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Wed, 21 Aug 2024 13:17:11 +0100 Subject: [PATCH 049/169] lxd/patches: Fix patchesApply so that the specified stage takes effect Signed-off-by: Thomas Parrott --- lxd/patches.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lxd/patches.go b/lxd/patches.go index e5c45081336b..e676a71d14bc 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -140,6 +140,10 @@ func patchesApply(d *Daemon, stage patchStage) error { return fmt.Errorf("Patch %q has no stage set: %d", patch.name, patch.stage) } + if patch.stage != stage { + continue + } + if shared.ValueInSlice(patch.name, appliedPatches) { continue } From b4c0c60317c8942a4b931cb98ee59856c28694f9 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Wed, 21 Aug 2024 13:17:42 +0100 Subject: [PATCH 050/169] lxd/patches: Fix patchVMRenameUUIDKey so that it uses the correct function to update snapshot config Signed-off-by: Thomas Parrott --- lxd/patches.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/patches.go b/lxd/patches.go index e676a71d14bc..6285f5ce9419 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -501,7 +501,7 @@ func patchVMRenameUUIDKey(name string, d *Daemon) error { } for _, snap := range snaps { - config, err := dbCluster.GetInstanceConfig(ctx, tx.Tx(), snap.ID) + config, err := dbCluster.GetInstanceSnapshotConfig(ctx, tx.Tx(), snap.ID) if err != nil { return err } From 2266478e602ddcd02ce1adc5f27af0f08ebc1e8a Mon Sep 17 00:00:00 2001 From: Max Asnaashari Date: Wed, 21 Aug 2024 19:53:52 +0000 Subject: [PATCH 051/169] shared: Allow adding multiple names to certificate SAN Signed-off-by: Max Asnaashari --- shared/cert.go | 33 +++++++++++++++++++-------------- 1 file changed, 19 insertions(+), 14 deletions(-) diff --git a/shared/cert.go b/shared/cert.go index 1627793b0070..2e40496d51d0 100644 --- a/shared/cert.go +++ b/shared/cert.go @@ -34,8 +34,11 @@ type CertOptions struct { // AddHosts determines whether to populate the Subject Alternative Name DNS Names and IP Addresses fields. AddHosts bool - // SubjectName will be used in place of the system hostname for the SAN DNS Name and Issuer Common Name. - SubjectName string + // CommonName will be used in place of the system hostname for the SAN DNS Name and Issuer Common Name. + CommonName string + + // SubjectAlternativeNames contains other names to include in the SAN DNS name field in addition to CommonName. + SubjectAlternativeNames []string } // KeyPairAndCA returns a CertInfo object with a reference to the key pair and @@ -245,23 +248,25 @@ func TestingAltKeyPair() *CertInfo { return cert } -/* - * Generate a list of names for which the certificate will be valid. - * This will include the hostname and ip address. - * If the `name` argument is non-empty, it will be used in place of the system hostname. - */ -func mynames(name string) ([]string, error) { - if name == "" { +// generateSANNames creates a list of names for which the certificate will be valid. +// - `commonName` will be the first entry if defined, otherwise the hostname will be used. +// - `additionalNames` will be supplied next, if defined +// - Finally, the localhost IPs will be added. +func generateSANNames(commonName string, additionalNames ...string) ([]string, error) { + if commonName == "" { h, err := os.Hostname() if err != nil { return nil, err } - name = h + commonName = h } - ret := []string{name, "127.0.0.1/8", "::1/128"} - return ret, nil + names := []string{commonName} + names = append(names, additionalNames...) + names = append(names, "127.0.0.1/8", "::1/128") + + return names, nil } // FindOrGenCert generates a keypair if needed. @@ -362,7 +367,7 @@ func GenerateMemCert(client bool, options CertOptions) ([]byte, []byte, error) { username = "UNKNOWN" } - hostname := options.SubjectName + hostname := options.CommonName if hostname == "" { hostname, err = os.Hostname() if err != nil { @@ -390,7 +395,7 @@ func GenerateMemCert(client bool, options CertOptions) ([]byte, []byte, error) { } if options.AddHosts { - hosts, err := mynames(hostname) + hosts, err := generateSANNames(hostname, options.SubjectAlternativeNames...) if err != nil { return nil, nil, fmt.Errorf("Failed to get my hostname: %w", err) } From 4d193e71300ef4cc4374cbb787322dafaefb4324 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 22 Aug 2024 09:00:47 +0100 Subject: [PATCH 052/169] lxd/patches: Updates selectedPatchClusterMember to use state.State And use s.ServerClustered as an indicator that the server is clustered. Signed-off-by: Thomas Parrott --- lxd/patches.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/lxd/patches.go b/lxd/patches.go index 6285f5ce9419..dff2c7ddb76d 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -23,6 +23,7 @@ import ( "github.com/canonical/lxd/lxd/network" "github.com/canonical/lxd/lxd/node" "github.com/canonical/lxd/lxd/project" + "github.com/canonical/lxd/lxd/state" storagePools "github.com/canonical/lxd/lxd/storage" storageDrivers "github.com/canonical/lxd/lxd/storage/drivers" "github.com/canonical/lxd/lxd/util" @@ -162,15 +163,15 @@ func patchesApply(d *Daemon, stage patchStage) error { // Use this function to deterministically coordinate the execution of patches on a single cluster member. // The member selection isn't based on the raft leader election which allows getting the same // results even if the raft cluster is currently running any kind of election. -func selectedPatchClusterMember(d *Daemon) (bool, error) { +func selectedPatchClusterMember(s *state.State) (bool, error) { // If not clustered indicate to apply the patch. - if d.serverName == "none" { + if !s.ServerClustered { return true, nil } // Get a list of all cluster members. var clusterMembers []string - err := d.db.Cluster.Transaction(d.shutdownCtx, func(ctx context.Context, tx *db.ClusterTx) error { + err := s.DB.Cluster.Transaction(s.ShutdownCtx, func(ctx context.Context, tx *db.ClusterTx) error { nodeInfos, err := tx.GetNodes(ctx) if err != nil { return err @@ -194,7 +195,7 @@ func selectedPatchClusterMember(d *Daemon) (bool, error) { sort.Strings(clusterMembers) // If the first cluster member in the sorted list matches the current node indicate to apply the patch. - return clusterMembers[0] == d.serverName, nil + return clusterMembers[0] == s.ServerName, nil } // Patches begin here @@ -1362,7 +1363,7 @@ func patchStorageRenameCustomISOBlockVolumesV2(name string, d *Daemon) error { return err } - isSelectedPatchMember, err := selectedPatchClusterMember(d) + isSelectedPatchMember, err := selectedPatchClusterMember(s) if err != nil { return err } From 6e8867d8e1e403ef7023c4391c2f817142dcf387 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 22 Aug 2024 09:32:44 +0100 Subject: [PATCH 053/169] lxd/patches: No-op patchStorageZfsUnsetInvalidBlockSettings As it was replaced by patchStorageZfsUnsetInvalidBlockSettingsV2. Signed-off-by: Thomas Parrott --- lxd/patches.go | 111 +------------------------------------------------ 1 file changed, 1 insertion(+), 110 deletions(-) diff --git a/lxd/patches.go b/lxd/patches.go index dff2c7ddb76d..eec638dacd0d 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -941,116 +941,7 @@ func patchZfsSetContentTypeUserProperty(name string, d *Daemon) error { // patchStorageZfsUnsetInvalidBlockSettings removes invalid block settings from volumes. func patchStorageZfsUnsetInvalidBlockSettings(_ string, d *Daemon) error { - s := d.State() - - var pools []string - - err := s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - var err error - - // Get all storage pool names. - pools, err = tx.GetStoragePoolNames(ctx) - - return err - }) - if err != nil { - // Skip the rest of the patch if no storage pools were found. - if api.StatusErrorCheck(err, http.StatusNotFound) { - return nil - } - - return fmt.Errorf("Failed getting storage pool names: %w", err) - } - - volTypeCustom := dbCluster.StoragePoolVolumeTypeCustom - volTypeVM := dbCluster.StoragePoolVolumeTypeVM - - poolIDNameMap := make(map[int64]string, 0) - poolVolumes := make(map[int64][]*db.StorageVolume, 0) - - err = s.DB.Cluster.Transaction(s.ShutdownCtx, func(ctx context.Context, tx *db.ClusterTx) error { - for _, pool := range pools { - // Get storage pool ID. - poolID, err := tx.GetStoragePoolID(ctx, pool) - if err != nil { - return fmt.Errorf("Failed getting storage pool ID of pool %q: %w", pool, err) - } - - driverName, err := tx.GetStoragePoolDriver(ctx, poolID) - if err != nil { - return fmt.Errorf("Failed getting storage pool driver of pool %q: %w", pool, err) - } - - if driverName != "zfs" { - continue - } - - // Get the pool's custom storage volumes. - volumes, err := tx.GetStorageVolumes(ctx, false, db.StorageVolumeFilter{Type: &volTypeCustom, PoolID: &poolID}, db.StorageVolumeFilter{Type: &volTypeVM, PoolID: &poolID}) - if err != nil { - return fmt.Errorf("Failed getting custom storage volumes of pool %q: %w", pool, err) - } - - if poolVolumes[poolID] == nil { - poolVolumes[poolID] = []*db.StorageVolume{} - } - - poolIDNameMap[poolID] = pool - poolVolumes[poolID] = append(poolVolumes[poolID], volumes...) - } - - return nil - }) - if err != nil { - return err - } - - var volType int - - for pool, volumes := range poolVolumes { - for _, vol := range volumes { - // In a non-clusted environment ServerName will be empty. - if s.ServerName != "" && vol.Location != s.ServerName { - continue - } - - config := vol.Config - - if shared.IsTrue(config["zfs.block_mode"]) { - continue - } - - update := false - for _, k := range []string{"block.filesystem", "block.mount_options"} { - _, found := config[k] - if found { - delete(config, k) - update = true - } - } - - if !update { - continue - } - - if vol.Type == dbCluster.StoragePoolVolumeTypeNameVM { - volType = volTypeVM - } else if vol.Type == dbCluster.StoragePoolVolumeTypeNameCustom { - volType = volTypeCustom - } else { - // Should not happen. - continue - } - - err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - return tx.UpdateStoragePoolVolume(ctx, vol.Project, vol.Name, volType, pool, vol.Description, config) - }) - if err != nil { - return fmt.Errorf("Failed updating volume %q in project %q on pool %q: %w", vol.Name, vol.Project, poolIDNameMap[pool], err) - } - } - } - + // Superseded by patchStorageZfsUnsetInvalidBlockSettingsV2. return nil } From 97dda02a491f54570446d89e04dd98f865af9e94 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 22 Aug 2024 09:33:28 +0100 Subject: [PATCH 054/169] lxd/patches: Updates ZFS patches to use s.ServerClustered correctly Signed-off-by: Thomas Parrott --- lxd/patches.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lxd/patches.go b/lxd/patches.go index eec638dacd0d..96387324901c 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -917,8 +917,8 @@ func patchZfsSetContentTypeUserProperty(name string, d *Daemon) error { } for _, vol := range volumes { - // In a non-clusted environment ServerName will be empty. - if s.ServerName != "" && vol.Location != s.ServerName { + // Only consider volumes local to this server. + if s.ServerClustered && vol.Location != s.ServerName { continue } @@ -1018,8 +1018,8 @@ func patchStorageZfsUnsetInvalidBlockSettingsV2(_ string, d *Daemon) error { for pool, volumes := range poolVolumes { for _, vol := range volumes { - // In a non-clusted environment ServerName will be empty. - if s.ServerName != "" && vol.Location != s.ServerName { + // Only consider volumes local to this server. + if s.ServerClustered && vol.Location != s.ServerName { continue } From fd69d7772f1750f9b72581432973e65576afe907 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 22 Aug 2024 09:48:06 +0100 Subject: [PATCH 055/169] lxd/patches: Fix patchStorageRenameCustomISOBlockVolumesV2 to apply to remote pools Signed-off-by: Thomas Parrott --- lxd/patches.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lxd/patches.go b/lxd/patches.go index 96387324901c..cb3f04ae13c1 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -1266,14 +1266,16 @@ func patchStorageRenameCustomISOBlockVolumesV2(name string, d *Daemon) error { return fmt.Errorf("Failed loading pool %q: %w", poolName, err) } + isRemotePool := p.Driver().Info().Remote + // Ensure the renaming is done only on the selected patch cluster member for remote storage pools. - if p.Driver().Info().Remote && !isSelectedPatchMember { + if isRemotePool && !isSelectedPatchMember { continue } for _, vol := range volumes { - // In a non-clusted environment ServerName will be empty. - if s.ServerName != "" && vol.Location != s.ServerName { + // Skip volumes on local pools that are on other servers. + if !isRemotePool && s.ServerClustered && vol.Location != s.ServerName { continue } From d5134189d110146d45b83a613ada5893ee975ec3 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Fri, 2 Aug 2024 10:07:47 +0100 Subject: [PATCH 056/169] lxd: Fix network forward deletion entitlement. Entitlements required for network forward APIs use the `network` entity type. Therefore deleting a network forward is equivalent to editing the network, not deleting the network. Signed-off-by: Mark Laing --- lxd/network_forwards.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/network_forwards.go b/lxd/network_forwards.go index 289bf1a06101..12da78c3ad4a 100644 --- a/lxd/network_forwards.go +++ b/lxd/network_forwards.go @@ -33,7 +33,7 @@ var networkForwardsCmd = APIEndpoint{ var networkForwardCmd = APIEndpoint{ Path: "networks/{networkName}/forwards/{listenAddress}", - Delete: APIEndpointAction{Handler: networkForwardDelete, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanDelete, "networkName")}, + Delete: APIEndpointAction{Handler: networkForwardDelete, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, Get: APIEndpointAction{Handler: networkForwardGet, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanView, "networkName")}, Put: APIEndpointAction{Handler: networkForwardPut, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, Patch: APIEndpointAction{Handler: networkForwardPut, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, From 58b49c86f86608480f7b46b13db6c5d9ad1a569e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Peliz=C3=A4us?= Date: Thu, 22 Aug 2024 15:30:57 +0200 Subject: [PATCH 057/169] lxd/cluster: Enforce cluster join token name cannot be 'none' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julian Pelizäus --- lxd/api_cluster.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lxd/api_cluster.go b/lxd/api_cluster.go index 48f33ee74609..02a01141a8b1 100644 --- a/lxd/api_cluster.go +++ b/lxd/api_cluster.go @@ -1329,6 +1329,10 @@ func clusterNodesPost(d *Daemon, r *http.Request) response.Response { return response.BadRequest(fmt.Errorf("This server is not clustered")) } + if req.ServerName == "none" { + return response.BadRequest(fmt.Errorf("Join token name cannot be %q", req.ServerName)) + } + expiry, err := shared.GetExpiry(time.Now(), s.GlobalConfig.ClusterJoinTokenExpiry()) if err != nil { return response.BadRequest(err) From c0a03da3ab886156ff86abae602ebfca89bb86b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Peliz=C3=A4us?= Date: Thu, 22 Aug 2024 16:05:17 +0200 Subject: [PATCH 058/169] lxd/cluster: Enforce cluster member name cannot be 'none' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julian Pelizäus --- lxd/api_cluster.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lxd/api_cluster.go b/lxd/api_cluster.go index 02a01141a8b1..f89a1c97e641 100644 --- a/lxd/api_cluster.go +++ b/lxd/api_cluster.go @@ -363,6 +363,10 @@ func clusterPut(d *Daemon, r *http.Request) response.Response { return response.BadRequest(fmt.Errorf("ServerName may not start with %q", targetGroupPrefix)) } + if req.ServerName == "none" { + return response.BadRequest(fmt.Errorf("ServerName cannot be %q", req.ServerName)) + } + // Disable clustering. if !req.Enabled { return clusterPutDisable(d, r, req) From c49ef5f1c599c9c6883b20527387a7e8057b8155 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julian=20Peliz=C3=A4us?= Date: Thu, 22 Aug 2024 16:05:40 +0200 Subject: [PATCH 059/169] tests: Extend cluster member join tests if 'none' MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Julian Pelizäus --- test/suites/clustering.sh | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/test/suites/clustering.sh b/test/suites/clustering.sh index aea40c3d5c21..414e6c15401b 100644 --- a/test/suites/clustering.sh +++ b/test/suites/clustering.sh @@ -1704,6 +1704,20 @@ test_clustering_join_api() { ns2="${prefix}2" LXD_NETNS="${ns2}" spawn_lxd "${LXD_TWO_DIR}" false + # Check a join token cannot be created for the reserved name 'none' + ! lxc cluster add none --quiet || false + + # Check a server with the name 'valid' cannot be joined when modifying the token. + # Therefore replace the valid name in the token with 'none'. + malicious_token="$(lxc cluster add valid --quiet | base64 -d | jq '.server_name |= "none"' | base64 --wrap=0)" + op=$(curl --unix-socket "${LXD_TWO_DIR}/unix.socket" -X PUT "lxd/1.0/cluster" -d "{\"server_name\":\"valid\",\"enabled\":true,\"member_config\":[{\"entity\": \"storage-pool\",\"name\":\"data\",\"key\":\"source\",\"value\":\"\"}],\"server_address\":\"10.1.1.102:8443\",\"cluster_address\":\"10.1.1.101:8443\",\"cluster_certificate\":\"${cert}\",\"cluster_token\":\"${malicious_token}\"}" | jq -r .operation) + [ "$(curl --unix-socket "${LXD_TWO_DIR}/unix.socket" "lxd${op}/wait" | jq '.error_code')" = "403" ] + + # Check that the server cannot be joined using a valid token by changing it's name to 'none'. + token="$(lxc cluster add valid2 --quiet)" + [ "$(curl --unix-socket "${LXD_TWO_DIR}/unix.socket" -X PUT "lxd/1.0/cluster" -d "{\"server_name\":\"none\",\"enabled\":true,\"member_config\":[{\"entity\": \"storage-pool\",\"name\":\"data\",\"key\":\"source\",\"value\":\"\"}],\"server_address\":\"10.1.1.102:8443\",\"cluster_address\":\"10.1.1.101:8443\",\"cluster_certificate\":\"${cert}\",\"cluster_token\":\"${token}\"}" | jq -r '.error_code')" = "400" ] + + # Check the server can be joined. token="$(lxc cluster add node2 --quiet)" op=$(curl --unix-socket "${LXD_TWO_DIR}/unix.socket" -X PUT "lxd/1.0/cluster" -d "{\"server_name\":\"node2\",\"enabled\":true,\"member_config\":[{\"entity\": \"storage-pool\",\"name\":\"data\",\"key\":\"source\",\"value\":\"\"}],\"server_address\":\"10.1.1.102:8443\",\"cluster_address\":\"10.1.1.101:8443\",\"cluster_certificate\":\"${cert}\",\"cluster_token\":\"${token}\"}" | jq -r .operation) curl --unix-socket "${LXD_TWO_DIR}/unix.socket" "lxd${op}/wait" From 542946010b625d28bdd51bb32b5629d9f91afcf8 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 09:44:47 +0100 Subject: [PATCH 060/169] lxd/device/nic/ovn: Remove legacy port name cleanup logic in Stop Signed-off-by: Thomas Parrott --- lxd/device/nic_ovn.go | 11 ----------- 1 file changed, 11 deletions(-) diff --git a/lxd/device/nic_ovn.go b/lxd/device/nic_ovn.go index 86dccf5e30f3..d7e8c74c556c 100644 --- a/lxd/device/nic_ovn.go +++ b/lxd/device/nic_ovn.go @@ -835,19 +835,8 @@ func (d *nicOVN) Stop() (*deviceConfig.RunConfig, error) { var err error - // Try and retrieve the last associated OVN switch port for the instance interface in the local OVS DB. - // If we cannot get this, don't fail, as InstanceDevicePortStop will then try and generate the likely - // port name using the same regime it does for new ports. This part is only here in order to allow - // instance ports generated under an older regime to be cleaned up properly. networkVethFillFromVolatile(d.config, v) ovs := openvswitch.NewOVS() - var ovsExternalOVNPort openvswitch.OVNSwitchPort - if d.config["nested"] == "" { - ovsExternalOVNPort, err = ovs.InterfaceAssociatedOVNSwitchPort(d.config["host_name"]) - if err != nil { - d.logger.Warn("Could not find OVN Switch port associated to OVS interface", logger.Ctx{"interface": d.config["host_name"]}) - } - } integrationBridgeNICName := d.config["host_name"] if d.config["acceleration"] == "sriov" || d.config["acceleration"] == "vdpa" { From 2a85cbb2e7921b18f2b4fb64b9a27a05ad33854a Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 09:45:25 +0100 Subject: [PATCH 061/169] lxd/device/nic/ovn: Don't call InstanceDevicePortStop anymore in Stop It will be removed as the stop logic is being moved to the delete step. Signed-off-by: Thomas Parrott --- lxd/device/nic_ovn.go | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/lxd/device/nic_ovn.go b/lxd/device/nic_ovn.go index d7e8c74c556c..db6eea140bd5 100644 --- a/lxd/device/nic_ovn.go +++ b/lxd/device/nic_ovn.go @@ -861,20 +861,6 @@ func (d *nicOVN) Stop() (*deviceConfig.RunConfig, error) { } } - // If the devices config is invalid validateConfig() won't populate this field. - if d.network != nil { - instanceUUID := d.inst.LocalConfig()["volatile.uuid"] - err = d.network.InstanceDevicePortStop(ovsExternalOVNPort, &network.OVNInstanceNICStopOpts{ - InstanceUUID: instanceUUID, - DeviceName: d.name, - DeviceConfig: d.config, - }) - if err != nil { - // Don't fail here as we still want the postStop hook to run to clean up the local veth pair. - d.logger.Error("Failed to remove OVN device port", logger.Ctx{"err": err}) - } - } - // Remove BGP announcements. err = bgpRemovePrefix(&d.deviceCommon, d.config) if err != nil { From ba1ba1cb7b84e3c28af95c5b3f91a8a110fe3835 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 09:46:15 +0100 Subject: [PATCH 062/169] lxd/network/driver/ovn: Move logic from InstanceDevicePortStop to InstanceDevicePortRemove This ensures that the instance's logical port remains in the OVN DB when the instance is stopped and means that OVN's dynamic IP allocations remain for the duration that the instance exists, rather than potentially changing when the instance is restarted. Fixes #11658 Signed-off-by: Thomas Parrott --- lxd/network/driver_ovn.go | 42 ++++++++++----------------------------- 1 file changed, 10 insertions(+), 32 deletions(-) diff --git a/lxd/network/driver_ovn.go b/lxd/network/driver_ovn.go index fdc8e41edda6..89c16c88e906 100644 --- a/lxd/network/driver_ovn.go +++ b/lxd/network/driver_ovn.go @@ -4252,17 +4252,15 @@ func (n *ovn) InstanceDevicePortIPs(instanceUUID string, deviceName string) ([]n // InstanceDevicePortStop deletes an instance device port from the internal logical switch. func (n *ovn) InstanceDevicePortStop(ovsExternalOVNPort openvswitch.OVNSwitchPort, opts *OVNInstanceNICStopOpts) error { - // Decide whether to use OVS provided OVN port name or internally derived OVN port name. - instancePortName := ovsExternalOVNPort - source := "OVS" - if ovsExternalOVNPort == "" { - if opts.InstanceUUID == "" { - return fmt.Errorf("Instance UUID is required") - } - instancePortName = n.getInstanceDevicePortName(opts.InstanceUUID, opts.DeviceName) - source = "internal" - } + return nil +} + +// InstanceDevicePortRemove unregisters the NIC device in the OVN database by removing the DNS entry that should +// have been created during InstanceDevicePortAdd(). If the DNS record exists at remove time then this indicates +// the NIC device was successfully added and this function also clears any DHCP reservations for the NIC's IPs. +func (n *ovn) InstanceDevicePortRemove(instanceUUID string, deviceName string, deviceConfig deviceConfig.Device) error { + instancePortName := n.getInstanceDevicePortName(instanceUUID, deviceName) client, err := openvswitch.NewOVN(n.state) if err != nil { @@ -4279,9 +4277,9 @@ func (n *ovn) InstanceDevicePortStop(ovsExternalOVNPort openvswitch.OVNSwitchPor return nil } - n.logger.Debug("Deleting instance port", logger.Ctx{"port": instancePortName, "source": source}) + n.logger.Debug("Deleting instance port", logger.Ctx{"port": instancePortName}) - internalRoutes, externalRoutes, err := n.instanceDevicePortRoutesParse(opts.DeviceConfig) + internalRoutes, externalRoutes, err := n.instanceDevicePortRoutesParse(deviceConfig) if err != nil { return fmt.Errorf("Failed parsing NIC device routes: %w", err) } @@ -4383,29 +4381,9 @@ func (n *ovn) InstanceDevicePortStop(ovsExternalOVNPort openvswitch.OVNSwitchPor } } - return nil -} - -// InstanceDevicePortRemove unregisters the NIC device in the OVN database by removing the DNS entry that should -// have been created during InstanceDevicePortAdd(). If the DNS record exists at remove time then this indicates -// the NIC device was successfully added and this function also clears any DHCP reservations for the NIC's IPs. -func (n *ovn) InstanceDevicePortRemove(instanceUUID string, deviceName string, deviceConfig deviceConfig.Device) error { - instancePortName := n.getInstanceDevicePortName(instanceUUID, deviceName) - revert := revert.New() defer revert.Fail() - client, err := openvswitch.NewOVN(n.state) - if err != nil { - return fmt.Errorf("Failed to get OVN client: %w", err) - } - - // Get DNS records. - dnsUUID, _, _, err := client.LogicalSwitchPortGetDNS(instancePortName) - if err != nil { - return err - } - // Remove DNS record if exists. if dnsUUID != "" { // If NIC has static IPv4 address then remove the DHCPv4 reservation. From bc193180ce009aa15f65446d61d921d4424e45a7 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 09:47:47 +0100 Subject: [PATCH 063/169] lxd/device/nic/ovn: Remove InstanceDevicePortStop Signed-off-by: Thomas Parrott --- lxd/device/nic_ovn.go | 9 --------- 1 file changed, 9 deletions(-) diff --git a/lxd/device/nic_ovn.go b/lxd/device/nic_ovn.go index db6eea140bd5..d89d245791c5 100644 --- a/lxd/device/nic_ovn.go +++ b/lxd/device/nic_ovn.go @@ -38,7 +38,6 @@ type ovnNet interface { InstanceDevicePortValidateExternalRoutes(deviceInstance instance.Instance, deviceName string, externalRoutes []*net.IPNet) error InstanceDevicePortAdd(instanceUUID string, deviceName string, deviceConfig deviceConfig.Device) error InstanceDevicePortStart(opts *network.OVNInstanceNICSetupOpts, securityACLsRemove []string) (openvswitch.OVNSwitchPort, []net.IP, error) - InstanceDevicePortStop(ovsExternalOVNPort openvswitch.OVNSwitchPort, opts *network.OVNInstanceNICStopOpts) error InstanceDevicePortRemove(instanceUUID string, deviceName string, deviceConfig deviceConfig.Device) error InstanceDevicePortIPs(instanceUUID string, deviceName string) ([]net.IP, error) } @@ -594,14 +593,6 @@ func (d *nicOVN) Start() (*deviceConfig.RunConfig, error) { saveData["last_state.ip_addresses"] = dnsIPsStr.String() - revert.Add(func() { - _ = d.network.InstanceDevicePortStop("", &network.OVNInstanceNICStopOpts{ - InstanceUUID: d.inst.LocalConfig()["volatile.uuid"], - DeviceName: d.name, - DeviceConfig: d.config, - }) - }) - // Associated host side interface to OVN logical switch port (if not nested). if integrationBridgeNICName != "" { cleanup, err := d.setupHostNIC(integrationBridgeNICName, logicalPortName) From 10f6a08b3222008143324cf96d1f374998df2153 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 09:47:57 +0100 Subject: [PATCH 064/169] lxd/network/driver/ovn: Remove InstanceDevicePortStop Signed-off-by: Thomas Parrott --- lxd/network/driver_ovn.go | 6 ------ 1 file changed, 6 deletions(-) diff --git a/lxd/network/driver_ovn.go b/lxd/network/driver_ovn.go index 89c16c88e906..bb99bc38dab2 100644 --- a/lxd/network/driver_ovn.go +++ b/lxd/network/driver_ovn.go @@ -4250,12 +4250,6 @@ func (n *ovn) InstanceDevicePortIPs(instanceUUID string, deviceName string) ([]n return devIPs, nil } -// InstanceDevicePortStop deletes an instance device port from the internal logical switch. -func (n *ovn) InstanceDevicePortStop(ovsExternalOVNPort openvswitch.OVNSwitchPort, opts *OVNInstanceNICStopOpts) error { - - return nil -} - // InstanceDevicePortRemove unregisters the NIC device in the OVN database by removing the DNS entry that should // have been created during InstanceDevicePortAdd(). If the DNS record exists at remove time then this indicates // the NIC device was successfully added and this function also clears any DHCP reservations for the NIC's IPs. From 0242777e0d99dd2dcf6c5fe75687b7b77ad60cb1 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 09:54:24 +0100 Subject: [PATCH 065/169] lxd/device/nic/ovn: Removes last_state.ip_addresses logic Signed-off-by: Thomas Parrott --- lxd/device/nic_ovn.go | 29 +---------------------------- 1 file changed, 1 insertion(+), 28 deletions(-) diff --git a/lxd/device/nic_ovn.go b/lxd/device/nic_ovn.go index d89d245791c5..7652ca17f13f 100644 --- a/lxd/device/nic_ovn.go +++ b/lxd/device/nic_ovn.go @@ -554,45 +554,18 @@ func (d *nicOVN) Start() (*deviceConfig.RunConfig, error) { // Populate device config with volatile fields if needed. networkVethFillFromVolatile(d.config, saveData) - v := d.volatileGet() - - // Retrieve any last state IPs from volatile and pass them to OVN driver for potential use with sticky - // DHCPv4 allocations. - var lastStateIPs []net.IP - for _, ipStr := range shared.SplitNTrimSpace(v["last_state.ip_addresses"], ",", -1, true) { - lastStateIP := net.ParseIP(ipStr) - if lastStateIP != nil { - lastStateIPs = append(lastStateIPs, lastStateIP) - } - } - // Add new OVN logical switch port for instance. - logicalPortName, dnsIPs, err := d.network.InstanceDevicePortStart(&network.OVNInstanceNICSetupOpts{ + logicalPortName, _, err := d.network.InstanceDevicePortStart(&network.OVNInstanceNICSetupOpts{ InstanceUUID: d.inst.LocalConfig()["volatile.uuid"], DNSName: d.inst.Name(), DeviceName: d.name, DeviceConfig: d.config, UplinkConfig: uplink.Config, - LastStateIPs: lastStateIPs, // Pass in volatile last state IPs for use with sticky DHCPv4 hint. }, nil) if err != nil { return nil, fmt.Errorf("Failed setting up OVN port: %w", err) } - // Record switch port DNS IPs to volatile so they can be used as sticky DHCPv4 hint in the future in order - // to allocate the same IPs on next start if they are still available/appropriate. - // This volatile key will not be removed when instance stops. - var dnsIPsStr strings.Builder - for i, dnsIP := range dnsIPs { - if i > 0 { - dnsIPsStr.WriteString(",") - } - - dnsIPsStr.WriteString(dnsIP.String()) - } - - saveData["last_state.ip_addresses"] = dnsIPsStr.String() - // Associated host side interface to OVN logical switch port (if not nested). if integrationBridgeNICName != "" { cleanup, err := d.setupHostNIC(integrationBridgeNICName, logicalPortName) From 3b0b37678ac3bf4fc83f2463cc315ba87901023e Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 09:54:40 +0100 Subject: [PATCH 066/169] lxd/instance/instancetype: Removes last_state.ip_addresses definition Signed-off-by: Thomas Parrott --- lxd/instance/instancetype/instance.go | 9 --------- 1 file changed, 9 deletions(-) diff --git a/lxd/instance/instancetype/instance.go b/lxd/instance/instancetype/instance.go index cdcfbd52990d..fcdf5f328575 100644 --- a/lxd/instance/instancetype/instance.go +++ b/lxd/instance/instancetype/instance.go @@ -1179,15 +1179,6 @@ func ConfigKeyChecker(key string, instanceType Type) (func(value string) error, return validate.IsAny, nil } - // lxdmeta:generate(entities=instance; group=volatile; key=volatile..last_state.ip_addresses) - // Comma-separated list of the last used IP addresses of the network device. - // --- - // type: string - // shortdesc: Last used IP addresses - if strings.HasSuffix(key, ".last_state.ip_addresses") { - return validate.IsListOf(validate.IsNetworkAddress), nil - } - // lxdmeta:generate(entities=instance; group=volatile; key=volatile..apply_quota) // The disk quota is applied the next time the instance starts. // --- From f04e204e90c4c97056a76bde753b5c0a3f593985 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 09:55:12 +0100 Subject: [PATCH 067/169] lxd/network/driver/ovn: Removes last_state.ip_addresses logic Signed-off-by: Thomas Parrott --- lxd/network/driver_ovn.go | 38 -------------------------------------- 1 file changed, 38 deletions(-) diff --git a/lxd/network/driver_ovn.go b/lxd/network/driver_ovn.go index bb99bc38dab2..9fe8ff0ba100 100644 --- a/lxd/network/driver_ovn.go +++ b/lxd/network/driver_ovn.go @@ -74,7 +74,6 @@ type OVNInstanceNICSetupOpts struct { DeviceConfig deviceConfig.Device UplinkConfig map[string]string DNSName string - LastStateIPs []net.IP } // OVNInstanceNICStopOpts options for stopping an OVN Instance NIC. @@ -3733,43 +3732,6 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL if dhcpV4ID == "" { return "", nil, fmt.Errorf("Could not find DHCPv4 options for instance port for subnet %q", dhcpv4Subnet.String()) } - - // If using dynamic IPv4, look for previously used sticky IPs from the NIC's last state. - var dhcpV4StickyIP net.IP - if opts.DeviceConfig["ipv4.address"] == "" { - for _, ip := range opts.LastStateIPs { - if ip.To4() != nil && SubnetContainsIP(dhcpv4Subnet, ip) { - dhcpV4StickyIP = ip - break - } - } - } - - // If a previously used IP has been found and its not one of the static IPs, then check if - // the IP is available for use and if not then we can request this port use it statically. - if dhcpV4StickyIP != nil && !IPInSlice(dhcpV4StickyIP, staticIPs) { - // If the sticky IP isn't statically reserved, lets check its not used dynamically - // on any active port. - if !n.hasDHCPv4Reservation(dhcpReservations, dhcpV4StickyIP) { - existingPortIPs, err := client.LogicalSwitchIPs(n.getIntSwitchName()) - if err != nil { - return "", nil, fmt.Errorf("Failed getting existing switch port IPs: %w", err) - } - - found := false - for _, ips := range existingPortIPs { - if IPInSlice(dhcpV4StickyIP, ips) { - found = true - break // IP is in use with another port, so cannot use it. - } - } - - // If IP is not in use then request OVN use previously used IP for port. - if !found { - staticIPs = append(staticIPs, dhcpV4StickyIP) - } - } - } } if dhcpv6Subnet != nil { From 6cb35bbc2823fed16d36ec16e5a816e3acd298e9 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 09:55:38 +0100 Subject: [PATCH 068/169] doc: Update metadata Signed-off-by: Thomas Parrott --- doc/metadata.txt | 6 ------ lxd/metadata/configuration.json | 7 ------- 2 files changed, 13 deletions(-) diff --git a/doc/metadata.txt b/doc/metadata.txt index 7f04e4adc74f..a17e5b63f031 100644 --- a/doc/metadata.txt +++ b/doc/metadata.txt @@ -2432,12 +2432,6 @@ Possible values are `true` or `false`. The original MAC that was used when moving a physical device into an instance. ``` -```{config:option} volatile..last_state.ip_addresses instance-volatile -:shortdesc: "Last used IP addresses" -:type: "string" -Comma-separated list of the last used IP addresses of the network device. -``` - ```{config:option} volatile..last_state.mtu instance-volatile :shortdesc: "Network device original MTU" :type: "string" diff --git a/lxd/metadata/configuration.json b/lxd/metadata/configuration.json index 04b6acb5faf3..878454680d28 100644 --- a/lxd/metadata/configuration.json +++ b/lxd/metadata/configuration.json @@ -2746,13 +2746,6 @@ "type": "string" } }, - { - "volatile.\u003cname\u003e.last_state.ip_addresses": { - "longdesc": "Comma-separated list of the last used IP addresses of the network device.", - "shortdesc": "Last used IP addresses", - "type": "string" - } - }, { "volatile.\u003cname\u003e.last_state.mtu": { "longdesc": "The original MTU that was used when moving a physical device into an instance.", From 65e7c20e7abc81c581d3df6055aaaffdc16b37a2 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 10:41:17 +0100 Subject: [PATCH 069/169] lxd/network/driver/ovn: Don't return unused port IPs from InstanceDevicePortStart Signed-off-by: Thomas Parrott --- lxd/network/driver_ovn.go | 78 +++++++++++++++++++-------------------- 1 file changed, 39 insertions(+), 39 deletions(-) diff --git a/lxd/network/driver_ovn.go b/lxd/network/driver_ovn.go index 9fe8ff0ba100..325223bb2885 100644 --- a/lxd/network/driver_ovn.go +++ b/lxd/network/driver_ovn.go @@ -3661,15 +3661,15 @@ func (n *ovn) hasDHCPv4Reservation(dhcpReservations []shared.IPRange, ip net.IP) // InstanceDevicePortStart sets up an instance device port to the internal logical switch. // Accepts a list of ACLs being removed from the NIC device (if called as part of a NIC update). -// Returns the logical switch port name and a list of IPs that were allocated to the port for DNS. -func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACLsRemove []string) (openvswitch.OVNSwitchPort, []net.IP, error) { +// Returns the logical switch port name. +func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACLsRemove []string) (openvswitch.OVNSwitchPort, error) { if opts.InstanceUUID == "" { - return "", nil, fmt.Errorf("Instance UUID is required") + return "", fmt.Errorf("Instance UUID is required") } mac, err := net.ParseMAC(opts.DeviceConfig["hwaddr"]) if err != nil { - return "", nil, err + return "", err } staticIPs := []net.IP{} @@ -3680,7 +3680,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL ip := net.ParseIP(opts.DeviceConfig[key]) if ip == nil { - return "", nil, fmt.Errorf("Invalid %s value %q", key, opts.DeviceConfig[key]) + return "", fmt.Errorf("Invalid %s value %q", key, opts.DeviceConfig[key]) } staticIPs = append(staticIPs, ip) @@ -3688,7 +3688,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL internalRoutes, externalRoutes, err := n.instanceDevicePortRoutesParse(opts.DeviceConfig) if err != nil { - return "", nil, fmt.Errorf("Failed parsing NIC device routes: %w", err) + return "", fmt.Errorf("Failed parsing NIC device routes: %w", err) } revert := revert.New() @@ -3696,7 +3696,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL client, err := openvswitch.NewOVN(n.state) if err != nil { - return "", nil, fmt.Errorf("Failed to get OVN client: %w", err) + return "", fmt.Errorf("Failed to get OVN client: %w", err) } // Get existing DHCPv4 static reservations. @@ -3704,7 +3704,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL // reservations exist. dhcpReservations, err := client.LogicalSwitchDHCPv4RevervationsGet(n.getIntSwitchName()) if err != nil { - return "", nil, fmt.Errorf("Failed getting DHCPv4 reservations: %w", err) + return "", fmt.Errorf("Failed getting DHCPv4 reservations: %w", err) } dhcpv4Subnet := n.DHCPv4Subnet() @@ -3715,14 +3715,14 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL // Find existing DHCP options set for IPv4 and IPv6 and update them instead of adding sets. existingOpts, err := client.LogicalSwitchDHCPOptionsGet(n.getIntSwitchName()) if err != nil { - return "", nil, fmt.Errorf("Failed getting existing DHCP settings for internal switch: %w", err) + return "", fmt.Errorf("Failed getting existing DHCP settings for internal switch: %w", err) } if dhcpv4Subnet != nil { for _, existingOpt := range existingOpts { if existingOpt.CIDR.String() == dhcpv4Subnet.String() { if dhcpV4ID != "" { - return "", nil, fmt.Errorf("Multiple matching DHCP option sets found for switch %q and subnet %q", n.getIntSwitchName(), dhcpv4Subnet.String()) + return "", fmt.Errorf("Multiple matching DHCP option sets found for switch %q and subnet %q", n.getIntSwitchName(), dhcpv4Subnet.String()) } dhcpV4ID = existingOpt.UUID @@ -3730,7 +3730,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL } if dhcpV4ID == "" { - return "", nil, fmt.Errorf("Could not find DHCPv4 options for instance port for subnet %q", dhcpv4Subnet.String()) + return "", fmt.Errorf("Could not find DHCPv4 options for instance port for subnet %q", dhcpv4Subnet.String()) } } @@ -3738,7 +3738,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL for _, existingOpt := range existingOpts { if existingOpt.CIDR.String() == dhcpv6Subnet.String() { if dhcpv6ID != "" { - return "", nil, fmt.Errorf("Multiple matching DHCP option sets found for switch %q and subnet %q", n.getIntSwitchName(), dhcpv6Subnet.String()) + return "", fmt.Errorf("Multiple matching DHCP option sets found for switch %q and subnet %q", n.getIntSwitchName(), dhcpv6Subnet.String()) } dhcpv6ID = existingOpt.UUID @@ -3746,7 +3746,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL } if dhcpv6ID == "" { - return "", nil, fmt.Errorf("Could not find DHCPv6 options for instance port for subnet %q", dhcpv6Subnet.String()) + return "", fmt.Errorf("Could not find DHCPv6 options for instance port for subnet %q", dhcpv6Subnet.String()) } // If port isn't going to have fully dynamic IPs allocated by OVN, and instead only static @@ -3766,7 +3766,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL if !hasIPv6 { eui64IP, err := eui64.ParseMAC(dhcpv6Subnet.IP, mac) if err != nil { - return "", nil, fmt.Errorf("Failed generating EUI64 for instance port %q: %w", mac.String(), err) + return "", fmt.Errorf("Failed generating EUI64 for instance port %q: %w", mac.String(), err) } // Add EUI64 to list of static IPs for instance port. @@ -3784,7 +3784,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL nestedPortParentName = n.getInstanceDevicePortName(opts.InstanceUUID, opts.DeviceConfig["nested"]) nestedPortVLANInt64, err := strconv.ParseUint(opts.DeviceConfig["vlan"], 10, 16) if err != nil { - return "", nil, fmt.Errorf("Invalid VLAN ID %q: %w", opts.DeviceConfig["vlan"], err) + return "", fmt.Errorf("Invalid VLAN ID %q: %w", opts.DeviceConfig["vlan"], err) } nestedPortVLAN = uint16(nestedPortVLANInt64) @@ -3804,7 +3804,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL Location: n.state.ServerName, }, true) if err != nil { - return "", nil, err + return "", err } revert.Add(func() { _ = client.LogicalSwitchPortDelete(instancePortName) }) @@ -3841,7 +3841,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL for i := 0; i < 5; i++ { dynamicIPs, err = client.LogicalSwitchPortDynamicIPs(instancePortName) if err != nil { - return "", nil, err + return "", err } if len(dynamicIPs) > 0 { @@ -3858,14 +3858,14 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL // Check, after considering all dynamic IPs, whether we have got the required ones. if (dnsIPv4 == nil && dhcpv4Subnet != nil) || (dnsIPv6 == nil && dhcpv6Subnet != nil) { - return "", nil, fmt.Errorf("Insufficient dynamic addresses allocated") + return "", fmt.Errorf("Insufficient dynamic addresses allocated") } } dnsName := fmt.Sprintf("%s.%s", opts.DNSName, n.getDomainName()) dnsUUID, err := client.LogicalSwitchPortSetDNS(n.getIntSwitchName(), instancePortName, dnsName, dnsIPs) if err != nil { - return "", nil, fmt.Errorf("Failed setting DNS for %q: %w", dnsName, err) + return "", fmt.Errorf("Failed setting DNS for %q: %w", dnsName, err) } revert.Add(func() { _ = client.LogicalSwitchPortDeleteDNS(n.getIntSwitchName(), dnsUUID, false) }) @@ -3879,7 +3879,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL dhcpReservations = append(dhcpReservations, shared.IPRange{Start: dnsIPv4}) err = client.LogicalSwitchDHCPv4RevervationsSet(n.getIntSwitchName(), dhcpReservations) if err != nil { - return "", nil, fmt.Errorf("Failed adding DHCPv4 reservation for %q: %w", dnsIPv4.String(), err) + return "", fmt.Errorf("Failed adding DHCPv4 reservation for %q: %w", dnsIPv4.String(), err) } } } @@ -3905,7 +3905,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL err = client.LogicalRouterDNATSNATAdd(n.getRouterName(), ip, ip, true, true) if err != nil { - return "", nil, err + return "", err } revert.Add(func() { _ = client.LogicalRouterDNATSNATDelete(n.getRouterName(), ip) }) @@ -3933,7 +3933,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL } if targetIP == nil { - return "", nil, fmt.Errorf("Cannot add static route for %q as target IP is not set", internalRoute.String()) + return "", fmt.Errorf("Cannot add static route for %q as target IP is not set", internalRoute.String()) } routes = append(routes, openvswitch.OVNRouterRoute{ @@ -3951,7 +3951,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL } if targetIP == nil { - return "", nil, fmt.Errorf("Cannot add static route for %q as target IP is not set", externalRoute.String()) + return "", fmt.Errorf("Cannot add static route for %q as target IP is not set", externalRoute.String()) } routes = append(routes, openvswitch.OVNRouterRoute{ @@ -3977,7 +3977,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL return nil }) if err != nil { - return "", nil, err + return "", err } } } @@ -3986,7 +3986,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL // Add routes to local router. err = client.LogicalRouterRouteAdd(n.getRouterName(), true, routes...) if err != nil { - return "", nil, err + return "", err } routePrefixes := make([]net.IPNet, 0, len(routes)) @@ -3999,7 +3999,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL // Add routes to internal switch's address set for ACL usage. err = client.AddressSetAdd(acl.OVNIntSwitchPortGroupAddressSetPrefix(n.ID()), routePrefixes...) if err != nil { - return "", nil, fmt.Errorf("Failed adding switch address set entries: %w", err) + return "", fmt.Errorf("Failed adding switch address set entries: %w", err) } revert.Add(func() { @@ -4008,12 +4008,12 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL routerIntPortIPv4, _, err := n.parseRouterIntPortIPv4Net() if err != nil { - return "", nil, fmt.Errorf("Failed parsing local router's peering port IPv4 Net: %w", err) + return "", fmt.Errorf("Failed parsing local router's peering port IPv4 Net: %w", err) } routerIntPortIPv6, _, err := n.parseRouterIntPortIPv6Net() if err != nil { - return "", nil, fmt.Errorf("Failed parsing local router's peering port IPv6 Net: %w", err) + return "", fmt.Errorf("Failed parsing local router's peering port IPv6 Net: %w", err) } // Add routes to peer routers, and security policies for each peer port on local router. @@ -4048,7 +4048,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL return nil }) if err != nil { - return "", nil, err + return "", err } } @@ -4069,7 +4069,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL // Get logical port UUID. portUUID, err := client.LogicalSwitchPortUUID(instancePortName) if err != nil || portUUID == "" { - return "", nil, fmt.Errorf("Failed getting logical port UUID for security ACL removal: %w", err) + return "", fmt.Errorf("Failed getting logical port UUID for security ACL removal: %w", err) } // Add NIC port to network port group (this includes the port in the @internal subject for ACL rules). @@ -4086,7 +4086,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL return err }) if err != nil { - return "", nil, fmt.Errorf("Failed getting network ACL IDs for security ACL setup: %w", err) + return "", fmt.Errorf("Failed getting network ACL IDs for security ACL setup: %w", err) } // Add port to ACLs requested. @@ -4098,7 +4098,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL cleanup, err := acl.OVNEnsureACLs(n.state, n.logger, client, n.Project(), aclNameIDs, aclNets, nicACLNames, false) if err != nil { - return "", nil, fmt.Errorf("Failed ensuring security ACLs are configured in OVN for instance: %w", err) + return "", fmt.Errorf("Failed ensuring security ACLs are configured in OVN for instance: %w", err) } revert.Add(cleanup) @@ -4106,7 +4106,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL for _, aclName := range nicACLNames { aclID, found := aclNameIDs[aclName] if !found { - return "", nil, fmt.Errorf("Cannot find security ACL ID for %q", aclName) + return "", fmt.Errorf("Cannot find security ACL ID for %q", aclName) } // Add NIC port to ACL port group. @@ -4126,7 +4126,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL aclID, found := aclNameIDs[aclName] if !found { - return "", nil, fmt.Errorf("Cannot find security ACL ID for %q", aclName) + return "", fmt.Errorf("Cannot find security ACL ID for %q", aclName) } // Remove NIC port from ACL port group. @@ -4142,7 +4142,7 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL n.logger.Debug("Applying instance NIC port group member change sets") err = client.PortGroupMemberChange(addChangeSet, removeChangeSet) if err != nil { - return "", nil, fmt.Errorf("Failed applying OVN port group member change sets for instance NIC: %w", err) + return "", fmt.Errorf("Failed applying OVN port group member change sets for instance NIC: %w", err) } // Set the automatic default ACL rule for the port. @@ -4153,21 +4153,21 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL logPrefix := fmt.Sprintf("%s-%s", opts.InstanceUUID, opts.DeviceName) err = acl.OVNApplyInstanceNICDefaultRules(client, acl.OVNIntSwitchPortGroupName(n.ID()), logPrefix, instancePortName, ingressAction, ingressLogged, egressAction, egressLogged) if err != nil { - return "", nil, fmt.Errorf("Failed applying OVN default ACL rules for instance NIC: %w", err) + return "", fmt.Errorf("Failed applying OVN default ACL rules for instance NIC: %w", err) } n.logger.Debug("Set NIC default rule", logger.Ctx{"port": instancePortName, "ingressAction": ingressAction, "ingressLogged": ingressLogged, "egressAction": egressAction, "egressLogged": egressLogged}) } else { err = client.PortGroupPortClearACLRules(acl.OVNIntSwitchPortGroupName(n.ID()), instancePortName) if err != nil { - return "", nil, fmt.Errorf("Failed clearing OVN default ACL rules for instance NIC: %w", err) + return "", fmt.Errorf("Failed clearing OVN default ACL rules for instance NIC: %w", err) } n.logger.Debug("Cleared NIC default rule", logger.Ctx{"port": instancePortName}) } revert.Success() - return instancePortName, dnsIPs, nil + return instancePortName, nil } // instanceDeviceACLDefaults returns the action and logging mode to use for the specified direction's default rule. @@ -4633,7 +4633,7 @@ func (n *ovn) handleDependencyChange(uplinkName string, uplinkConfig map[string] // Re-add logical switch port to apply the l2proxy DNAT_AND_SNAT rules. n.logger.Debug("Re-adding instance OVN NIC port to apply ingress mode changes", logger.Ctx{"project": inst.Project, "instance": inst.Name, "device": devName}) - _, _, err = n.InstanceDevicePortStart(&OVNInstanceNICSetupOpts{ + _, err = n.InstanceDevicePortStart(&OVNInstanceNICSetupOpts{ InstanceUUID: instanceUUID, DNSName: inst.Name, DeviceName: devName, From 9525b9bbfc78fd55b7e9d6edb3a945784a446be5 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 10:40:37 +0100 Subject: [PATCH 070/169] lxd/device/nic/ovn: Update InstanceDevicePortStart signature Signed-off-by: Thomas Parrott --- lxd/device/nic_ovn.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/device/nic_ovn.go b/lxd/device/nic_ovn.go index 7652ca17f13f..2be332aaabc6 100644 --- a/lxd/device/nic_ovn.go +++ b/lxd/device/nic_ovn.go @@ -37,7 +37,7 @@ type ovnNet interface { InstanceDevicePortValidateExternalRoutes(deviceInstance instance.Instance, deviceName string, externalRoutes []*net.IPNet) error InstanceDevicePortAdd(instanceUUID string, deviceName string, deviceConfig deviceConfig.Device) error - InstanceDevicePortStart(opts *network.OVNInstanceNICSetupOpts, securityACLsRemove []string) (openvswitch.OVNSwitchPort, []net.IP, error) + InstanceDevicePortStart(opts *network.OVNInstanceNICSetupOpts, securityACLsRemove []string) (openvswitch.OVNSwitchPort, error) InstanceDevicePortRemove(instanceUUID string, deviceName string, deviceConfig deviceConfig.Device) error InstanceDevicePortIPs(instanceUUID string, deviceName string) ([]net.IP, error) } @@ -555,7 +555,7 @@ func (d *nicOVN) Start() (*deviceConfig.RunConfig, error) { networkVethFillFromVolatile(d.config, saveData) // Add new OVN logical switch port for instance. - logicalPortName, _, err := d.network.InstanceDevicePortStart(&network.OVNInstanceNICSetupOpts{ + logicalPortName, err := d.network.InstanceDevicePortStart(&network.OVNInstanceNICSetupOpts{ InstanceUUID: d.inst.LocalConfig()["volatile.uuid"], DNSName: d.inst.Name(), DeviceName: d.name, @@ -724,7 +724,7 @@ func (d *nicOVN) Update(oldDevices deviceConfig.Devices, isRunning bool) error { } // Update OVN logical switch port for instance. - _, _, err = d.network.InstanceDevicePortStart(&network.OVNInstanceNICSetupOpts{ + _, err = d.network.InstanceDevicePortStart(&network.OVNInstanceNICSetupOpts{ InstanceUUID: d.inst.LocalConfig()["volatile.uuid"], DNSName: d.inst.Name(), DeviceName: d.name, From 3150da86e0f1674a37c07e16c21644ad38689735 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Thu, 8 Aug 2024 10:51:55 +0100 Subject: [PATCH 071/169] lxd/device/nic/ovn: Call InstanceDevicePortStart when adding port So that the logical port and its config is setup in OVN DB at create time rather than at start time. This way OVN's dynamic IP allocations are long-lived for the duration of the instance rather than potentially changing when the instance is rebooted. Fixes #11658 Signed-off-by: Thomas Parrott --- lxd/device/nic_ovn.go | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/lxd/device/nic_ovn.go b/lxd/device/nic_ovn.go index 2be332aaabc6..82718ca31037 100644 --- a/lxd/device/nic_ovn.go +++ b/lxd/device/nic_ovn.go @@ -343,7 +343,41 @@ func (d *nicOVN) checkAddressConflict() error { // Add is run when a device is added to a non-snapshot instance whether or not the instance is running. func (d *nicOVN) Add() error { - return d.network.InstanceDevicePortAdd(d.inst.LocalConfig()["volatile.uuid"], d.name, d.config) + networkVethFillFromVolatile(d.config, d.volatileGet()) + + // Load uplink network config. + uplinkNetworkName := d.network.Config()["network"] + + var err error + var uplink *api.Network + + err = d.state.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { + _, uplink, _, err = tx.GetNetworkInAnyState(ctx, api.ProjectDefaultName, uplinkNetworkName) + + return err + }) + if err != nil { + return fmt.Errorf("Failed to load uplink network %q: %w", uplinkNetworkName, err) + } + + err = d.network.InstanceDevicePortAdd(d.inst.LocalConfig()["volatile.uuid"], d.name, d.config) + if err != nil { + return err + } + + // Add new OVN logical switch port for instance. + _, err = d.network.InstanceDevicePortStart(&network.OVNInstanceNICSetupOpts{ + InstanceUUID: d.inst.LocalConfig()["volatile.uuid"], + DNSName: d.inst.Name(), + DeviceName: d.name, + DeviceConfig: d.config, + UplinkConfig: uplink.Config, + }, nil) + if err != nil { + return fmt.Errorf("Failed setting up OVN port: %w", err) + } + + return nil } // PreStartCheck checks the managed parent network is available (if relevant). From 3076c369bff2d54b349c4b07bd8c01141350bc39 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Wed, 21 Aug 2024 11:02:40 +0100 Subject: [PATCH 072/169] lxd/patches: Adds instance_remove_volatile_last_state_ip_addresses This adds patchInstanceRemoveVolatileLastStateIPAddresses function and patch to remove the `volatile.*.last_state.ip_addresses` config keys from all instances. This is because now that OVN NICs are long-lived we have no use for the "sticky" IP feature that used this volatile key. Signed-off-by: Thomas Parrott --- lxd/patches.go | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) diff --git a/lxd/patches.go b/lxd/patches.go index cb3f04ae13c1..f38372255359 100644 --- a/lxd/patches.go +++ b/lxd/patches.go @@ -92,6 +92,7 @@ var patches = []patch{ {name: "storage_move_custom_iso_block_volumes_v2", stage: patchPostDaemonStorage, run: patchStorageRenameCustomISOBlockVolumesV2}, {name: "storage_unset_invalid_block_settings_v2", stage: patchPostDaemonStorage, run: patchStorageUnsetInvalidBlockSettingsV2}, {name: "config_remove_core_trust_password", stage: patchPreLoadClusterConfig, run: patchRemoveCoreTrustPassword}, + {name: "instance_remove_volatile_last_state_ip_addresses", stage: patchPostDaemonStorage, run: patchInstanceRemoveVolatileLastStateIPAddresses}, } type patch struct { @@ -1345,4 +1346,78 @@ func patchRemoveCoreTrustPassword(_ string, d *Daemon) error { return nil } +// patchInstanceRemoveVolatileLastStateIPAddresses removes the volatile.*.last_state.ip_addresses config key from instances. +func patchInstanceRemoveVolatileLastStateIPAddresses(_ string, d *Daemon) error { + s := d.State() + + err := s.DB.Cluster.Transaction(s.ShutdownCtx, func(ctx context.Context, tx *db.ClusterTx) error { + foundCandidateKey := func(k string) bool { + if strings.HasPrefix(k, "volatile.") && strings.HasSuffix(k, ".last_state.ip_addresses") { + return true + } + + return false + } + + // Get instances on this member. + return tx.InstanceList(ctx, func(dbInst db.InstanceArgs, p api.Project) error { + l := logger.AddContext(logger.Ctx{"project": dbInst.Project, "inst": dbInst.Name}) + + for k := range dbInst.Config { + if !foundCandidateKey(k) { + continue + } + + // Remove found config key. + changes := map[string]string{ + k: "", + } + + l.Debug("Removing config key from instance", logger.Ctx{"key": k}) + err := tx.UpdateInstanceConfig(dbInst.ID, changes) + if err != nil { + return fmt.Errorf("Failed removing config key %q for instance %q (Project %q): %w", k, dbInst.Name, dbInst.Project, err) + } + } + + // Get snapshots for instance so we can check those too. + dbSnaps, err := tx.GetInstanceSnapshotsWithName(ctx, dbInst.Project, dbInst.Name) + if err != nil { + return fmt.Errorf("Failed getting snapshots for %q (Project %q): %w", dbInst.Name, dbInst.Project, err) + } + + for _, dbSnap := range dbSnaps { + snapConfig, err := dbCluster.GetInstanceSnapshotConfig(ctx, tx.Tx(), dbSnap.ID) + if err != nil { + return err + } + + for k := range snapConfig { + if !foundCandidateKey(k) { + continue + } + + // Remove found config key. + changes := map[string]string{ + k: "", + } + + l.Debug("Removing config key from instance snapshot", logger.Ctx{"snapshot": dbSnap.Name, "key": k}) + err := tx.UpdateInstanceSnapshotConfig(dbSnap.ID, changes) + if err != nil { + return fmt.Errorf("Failed removing config key %q for instance %q (Project %q): %w", k, dbSnap.Name, dbSnap.Project, err) + } + } + } + + return nil + }, dbCluster.InstanceFilter{Node: &s.ServerName}) + }) + if err != nil { + return fmt.Errorf("Failed removing volatile.*.last_state.ip_addresses config keys: %w", err) + } + + return nil +} + // Patches end here From c1604998d5769fd9eb870f318e68ec6737f6a19a Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Fri, 23 Aug 2024 09:33:49 +0100 Subject: [PATCH 073/169] lxd/network/driver/ovn: Update comment Signed-off-by: Thomas Parrott --- lxd/network/driver_ovn.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/lxd/network/driver_ovn.go b/lxd/network/driver_ovn.go index 325223bb2885..4c0010fa7605 100644 --- a/lxd/network/driver_ovn.go +++ b/lxd/network/driver_ovn.go @@ -3791,9 +3791,8 @@ func (n *ovn) InstanceDevicePortStart(opts *OVNInstanceNICSetupOpts, securityACL } // Add port with mayExist set to true, so that if instance port exists, we don't fail and continue below - // to configure the port as needed. This is required in case the OVN northbound database was unavailable - // when the instance NIC was stopped and was unable to remove the port on last stop, which would otherwise - // prevent future NIC starts. + // to configure the port as needed. This is required because the port is created when the NIC is added, but + // we need to ensure it is present at start up as well in case it was deleted since the NIC was added. err = client.LogicalSwitchPortAdd(n.getIntSwitchName(), instancePortName, &openvswitch.OVNSwitchPortOpts{ DHCPv4OptsID: dhcpV4ID, DHCPv6OptsID: dhcpv6ID, From 5c1fcefc6baf3ea5067a4480f82b43dc73716b82 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Fri, 2 Aug 2024 12:35:03 +0200 Subject: [PATCH 074/169] shared/cmd: Allow a cmd asker to be created with a logger If a command asker is set with a logger instance, the question and answer (even if it is invalid) are systematically logged. This will greatly help debugability in integration test suites like in MicroCloud which have a lot of interactions in the command line. Signed-off-by: Gabriel Mougard --- lxc/main.go | 4 +-- lxd-migrate/main.go | 2 +- lxd/main.go | 3 +- shared/cmd/ask.go | 68 ++++++++++++++++++++++++++++++++++++--------- 4 files changed, 60 insertions(+), 17 deletions(-) diff --git a/lxc/main.go b/lxc/main.go index 114d86df51f1..8a6624a3b305 100644 --- a/lxc/main.go +++ b/lxc/main.go @@ -89,7 +89,7 @@ For help with any of those, simply call them with --help.`)) app.CompletionOptions = cobra.CompletionOptions{DisableDefaultCmd: true} // Global flags - globalCmd := cmdGlobal{cmd: app, asker: cli.NewAsker(bufio.NewReader(os.Stdin))} + globalCmd := cmdGlobal{cmd: app, asker: cli.NewAsker(bufio.NewReader(os.Stdin), nil)} app.PersistentFlags().BoolVar(&globalCmd.flagVersion, "version", false, i18n.G("Print version number")) app.PersistentFlags().BoolVarP(&globalCmd.flagHelp, "help", "h", false, i18n.G("Print help")) app.PersistentFlags().BoolVar(&globalCmd.flagForceLocal, "force-local", false, i18n.G("Force using the local unix socket")) @@ -358,7 +358,7 @@ func (c *cmdGlobal) PreRun(cmd *cobra.Command, args []string) error { // Setup password helper c.conf.PromptPassword = func(filename string) (string, error) { - return cli.AskPasswordOnce(fmt.Sprintf(i18n.G("Password for %s: "), filename)), nil + return c.asker.AskPasswordOnce(fmt.Sprintf(i18n.G("Password for %s: "), filename)), nil } // If the user is running a command that may attempt to connect to the local daemon diff --git a/lxd-migrate/main.go b/lxd-migrate/main.go index 471bcf298b98..d6982a48b890 100644 --- a/lxd-migrate/main.go +++ b/lxd-migrate/main.go @@ -28,7 +28,7 @@ func main() { app.Args = cobra.ArbitraryArgs // Global flags - globalCmd := cmdGlobal{asker: cli.NewAsker(bufio.NewReader(os.Stdin))} + globalCmd := cmdGlobal{asker: cli.NewAsker(bufio.NewReader(os.Stdin), nil)} migrateCmd.global = &globalCmd app.PersistentFlags().BoolVar(&globalCmd.flagVersion, "version", false, "Print version number") app.PersistentFlags().BoolVarP(&globalCmd.flagHelp, "help", "h", false, "Print help") diff --git a/lxd/main.go b/lxd/main.go index c46141e1973d..2f1485e4a9c8 100644 --- a/lxd/main.go +++ b/lxd/main.go @@ -33,6 +33,7 @@ type cmdGlobal struct { flagLogVerbose bool } +// Run is the main entry point for the LXD daemon command. func (c *cmdGlobal) Run(cmd *cobra.Command, args []string) error { // Configure dqlite to *not* disable internal SQLite locking, since we // use SQLite both through dqlite and through go-dqlite, potentially @@ -91,7 +92,7 @@ func main() { app.Args = cobra.ArbitraryArgs // Global flags - globalCmd := cmdGlobal{cmd: app, asker: cli.NewAsker(bufio.NewReader(os.Stdin))} + globalCmd := cmdGlobal{cmd: app, asker: cli.NewAsker(bufio.NewReader(os.Stdin), nil)} daemonCmd.global = &globalCmd app.PersistentPreRunE = globalCmd.Run app.PersistentFlags().BoolVar(&globalCmd.flagVersion, "version", false, "Print version number") diff --git a/shared/cmd/ask.go b/shared/cmd/ask.go index ddeb890295f9..60ec62ba6c1b 100644 --- a/shared/cmd/ask.go +++ b/shared/cmd/ask.go @@ -10,15 +10,19 @@ import ( "golang.org/x/term" "github.com/canonical/lxd/shared" + "github.com/canonical/lxd/shared/logger" ) // Asker holds a reader for reading input into CLI questions. type Asker struct { reader *bufio.Reader + logger logger.Logger } -func NewAsker(reader *bufio.Reader) Asker { - return Asker{reader: reader} +// NewAsker creates a new Asker instance that reads from the given reader. +// It can also be configured with a logger to help during the debug process. +func NewAsker(reader *bufio.Reader, logger logger.Logger) Asker { + return Asker{reader: reader, logger: logger} } // AskBool asks a question and expect a yes/no answer. @@ -26,6 +30,10 @@ func (a *Asker) AskBool(question string, defaultAnswer string) (bool, error) { for { answer, err := a.askQuestion(question, defaultAnswer) if err != nil { + if a.logger != nil { + a.logger.Error("Failed to read answer for question", logger.Ctx{"answer": answer, "question": question, "err": err}) + } + return false, err } @@ -35,7 +43,7 @@ func (a *Asker) AskBool(question string, defaultAnswer string) (bool, error) { return false, nil } - invalidInput() + a.invalidInput(question, answer) } } @@ -44,14 +52,20 @@ func (a *Asker) AskChoice(question string, choices []string, defaultAnswer strin for { answer, err := a.askQuestion(question, defaultAnswer) if err != nil { + if a.logger != nil { + a.logger.Error("Failed to read answer for question", logger.Ctx{"answer": answer, "question": question, "err": err}) + } + return "", err } if shared.ValueInSlice(answer, choices) { return answer, nil + } else if a.logger != nil { + a.logger.Error("Answer not among the available choices", logger.Ctx{"answer": answer, "choices": choices}) } - invalidInput() + a.invalidInput(question, answer) } } @@ -60,16 +74,28 @@ func (a *Asker) AskInt(question string, min int64, max int64, defaultAnswer stri for { answer, err := a.askQuestion(question, defaultAnswer) if err != nil { + if a.logger != nil { + a.logger.Error("Failed to read answer for question", logger.Ctx{"answer": answer, "question": question, "err": err}) + } + return -1, err } result, err := strconv.ParseInt(answer, 10, 64) if err != nil { + if a.logger != nil { + a.logger.Error("Invalid input for the question", logger.Ctx{"answer": answer, "question": question, "err": err}) + } + fmt.Fprintf(os.Stderr, "Invalid input: %v\n\n", err) continue } if !((min == -1 || result >= min) && (max == -1 || result <= max)) { + if a.logger != nil { + a.logger.Error("Invalid input (out of range) for the question", logger.Ctx{"answer": answer, "question": question}) + } + fmt.Fprintf(os.Stderr, "Invalid input: out of range\n\n") continue } @@ -77,6 +103,10 @@ func (a *Asker) AskInt(question string, min int64, max int64, defaultAnswer stri if validate != nil { err = validate(result) if err != nil { + if a.logger != nil { + a.logger.Error("Invalid input for the question", logger.Ctx{"answer": answer, "question": question, "err": err}) + } + fmt.Fprintf(os.Stderr, "Invalid input: %v\n\n", err) continue } @@ -92,13 +122,21 @@ func (a *Asker) AskString(question string, defaultAnswer string, validate func(s for { answer, err := a.askQuestion(question, defaultAnswer) if err != nil { + if a.logger != nil { + a.logger.Error("Failed to read answer for question", logger.Ctx{"answer": answer, "question": question, "err": err}) + } + return "", err } if validate != nil { - error := validate(answer) - if error != nil { - fmt.Fprintf(os.Stderr, "Invalid input: %s\n\n", error) + err = validate(answer) + if err != nil { + if a.logger != nil { + a.logger.Error("Invalid input for the question", logger.Ctx{"answer": answer, "question": question, "err": err}) + } + + fmt.Fprintf(os.Stderr, "Invalid input: %v\n\n", err) continue } @@ -109,12 +147,12 @@ func (a *Asker) AskString(question string, defaultAnswer string, validate func(s return answer, err } - invalidInput() + a.invalidInput(question, answer) } } // AskPassword asks the user to enter a password. -func AskPassword(question string) string { +func (a *Asker) AskPassword(question string) string { for { fmt.Print(question) @@ -134,14 +172,14 @@ func AskPassword(question string) string { return inFirst } - invalidInput() + a.invalidInput(question, "*****") } } // AskPasswordOnce asks the user to enter a password. // // It's the same as AskPassword, but it won't ask to enter it again. -func AskPasswordOnce(question string) string { +func (a *Asker) AskPasswordOnce(question string) string { for { fmt.Print(question) pwd, _ := term.ReadPassword(0) @@ -153,7 +191,7 @@ func AskPasswordOnce(question string) string { return spwd } - invalidInput() + a.invalidInput(question, "*****") } } @@ -176,6 +214,10 @@ func (a *Asker) readAnswer(defaultAnswer string) (string, error) { } // Print an invalid input message on the error stream. -func invalidInput() { +func (a *Asker) invalidInput(question string, answer string) { + if a.logger != nil { + a.logger.Error("Invalid input for the question", logger.Ctx{"answer": answer, "question": question}) + } + fmt.Fprintf(os.Stderr, "Invalid input, try again.\n\n") } From a9a90b486a39bc9a43c1270db62c9ff95643997a Mon Sep 17 00:00:00 2001 From: Vishesh Agrawal Date: Wed, 17 Apr 2024 18:26:45 +0200 Subject: [PATCH 075/169] lxc/project: Add support for creating project from yaml Signed-off-by: Vishesh Agrawal (cherry picked from commit 4f921e6eee029ba22b948d330c5217e3c67c83a1) Signed-off-by: Gabriel Mougard License: Apache-2.0 --- lxc/project.go | 37 ++++++++++++++++++++++++++++++------- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/lxc/project.go b/lxc/project.go index a6737ebd39fd..82e1bd37cf65 100644 --- a/lxc/project.go +++ b/lxc/project.go @@ -92,6 +92,11 @@ func (c *cmdProjectCreate) command() *cobra.Command { cmd.Short = i18n.G("Create projects") cmd.Long = cli.FormatSection(i18n.G("Description"), i18n.G( `Create projects`)) + cmd.Example = cli.FormatSection("", i18n.G(`lxc project create p1 + +lxc project create p1 < config.yaml + Create a project with configuration from config.yaml`)) + cmd.Flags().StringArrayVarP(&c.flagConfig, "config", "c", nil, i18n.G("Config key/value to apply to the new project")+"``") cmd.RunE = c.run @@ -100,12 +105,27 @@ func (c *cmdProjectCreate) command() *cobra.Command { } func (c *cmdProjectCreate) run(cmd *cobra.Command, args []string) error { + var stdinData api.ProjectPut + // Quick checks. exit, err := c.global.CheckArgs(cmd, args, 1, 1) if exit { return err } + // If stdin isn't a terminal, read text from it + if !termios.IsTerminal(getStdinFd()) { + contents, err := io.ReadAll(os.Stdin) + if err != nil { + return err + } + + err = yaml.Unmarshal(contents, &stdinData) + if err != nil { + return err + } + } + // Parse remote resources, err := c.global.ParseServers(args[0]) if err != nil { @@ -121,15 +141,18 @@ func (c *cmdProjectCreate) run(cmd *cobra.Command, args []string) error { // Create the project project := api.ProjectsPost{} project.Name = resource.name + project.ProjectPut = stdinData + + if project.Config == nil { + project.Config = map[string]string{} + for _, entry := range c.flagConfig { + key, value, found := strings.Cut(entry, "=") + if !found { + return fmt.Errorf(i18n.G("Bad key=value pair: %q"), entry) + } - project.Config = map[string]string{} - for _, entry := range c.flagConfig { - key, value, found := strings.Cut(entry, "=") - if !found { - return fmt.Errorf(i18n.G("Bad key=value pair: %q"), entry) + project.Config[key] = value } - - project.Config[key] = value } err = resource.server.CreateProject(project) From da0d858d1749339f1eddc4e6348a368aac3e228c Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Mon, 19 Aug 2024 18:22:41 +0200 Subject: [PATCH 076/169] lxc/project: Fix govet error (`non-constant format string in call to fmt.Errorf`) Signed-off-by: Gabriel Mougard --- lxc/project.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/lxc/project.go b/lxc/project.go index 82e1bd37cf65..1c3bd1754d4b 100644 --- a/lxc/project.go +++ b/lxc/project.go @@ -135,7 +135,7 @@ func (c *cmdProjectCreate) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing project name")) + return fmt.Errorf("%s", i18n.G("Missing project name")) } // Create the project @@ -207,7 +207,7 @@ func (c *cmdProjectDelete) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing project name")) + return fmt.Errorf("%s", i18n.G("Missing project name")) } // Delete the project @@ -289,7 +289,7 @@ func (c *cmdProjectEdit) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing project name")) + return fmt.Errorf("%s", i18n.G("Missing project name")) } // If stdin isn't a terminal, read text from it @@ -393,7 +393,7 @@ func (c *cmdProjectGet) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing project name")) + return fmt.Errorf("%s", i18n.G("Missing project name")) } // Get the configuration key @@ -567,7 +567,7 @@ func (c *cmdProjectRename) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing project name")) + return fmt.Errorf("%s", i18n.G("Missing project name")) } // Rename the project @@ -627,7 +627,7 @@ func (c *cmdProjectSet) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing project name")) + return fmt.Errorf("%s", i18n.G("Missing project name")) } // Get the project @@ -734,7 +734,7 @@ func (c *cmdProjectShow) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing project name")) + return fmt.Errorf("%s", i18n.G("Missing project name")) } // Show the project @@ -847,7 +847,7 @@ func (c *cmdProjectInfo) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing project name")) + return fmt.Errorf("%s", i18n.G("Missing project name")) } // Get the current allocations From 2a36e162152bc5beaabdfe8279fbbadf884df9c4 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Mon, 12 Aug 2024 09:38:13 +0200 Subject: [PATCH 077/169] test: Add project creation test with YAML Signed-off-by: Gabriel Mougard --- test/main.sh | 1 + test/suites/projects.sh | 27 +++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/test/main.sh b/test/main.sh index 2fc2dcc44405..2677d978a86a 100755 --- a/test/main.sh +++ b/test/main.sh @@ -274,6 +274,7 @@ if [ "${1:-"all"}" != "cluster" ]; then run_test test_projects_network "projects and networks" run_test test_projects_limits "projects limits" run_test test_projects_usage "projects usage" + run_test test_projects_yaml "projects with yaml initialization" run_test test_projects_restrictions "projects restrictions" run_test test_container_devices_disk "container devices - disk" run_test test_container_devices_disk_restricted "container devices - disk - restricted" diff --git a/test/suites/projects.sh b/test/suites/projects.sh index 5af0bc750ac7..b34fad3a4d1d 100644 --- a/test/suites/projects.sh +++ b/test/suites/projects.sh @@ -1060,3 +1060,30 @@ test_projects_usage() { lxc image delete testimage --project test-usage lxc project delete test-usage } + +test_projects_yaml() { + lxc project create test-project-yaml < Date: Fri, 23 Aug 2024 13:09:00 +0200 Subject: [PATCH 078/169] i18n: update translation templates Signed-off-by: Gabriel Mougard --- po/ar.po | 130 +++++++++++++++++++++++++----------------------- po/ber.po | 130 +++++++++++++++++++++++++----------------------- po/bg.po | 130 +++++++++++++++++++++++++----------------------- po/ca.po | 130 +++++++++++++++++++++++++----------------------- po/cs.po | 130 +++++++++++++++++++++++++----------------------- po/de.po | 130 +++++++++++++++++++++++++----------------------- po/el.po | 130 +++++++++++++++++++++++++----------------------- po/eo.po | 130 +++++++++++++++++++++++++----------------------- po/es.po | 130 +++++++++++++++++++++++++----------------------- po/fa.po | 130 +++++++++++++++++++++++++----------------------- po/fi.po | 130 +++++++++++++++++++++++++----------------------- po/fr.po | 130 +++++++++++++++++++++++++----------------------- po/he.po | 130 +++++++++++++++++++++++++----------------------- po/hi.po | 130 +++++++++++++++++++++++++----------------------- po/id.po | 130 +++++++++++++++++++++++++----------------------- po/it.po | 130 +++++++++++++++++++++++++----------------------- po/ja.po | 135 +++++++++++++++++++++++++++----------------------- po/ka.po | 130 +++++++++++++++++++++++++----------------------- po/ko.po | 130 +++++++++++++++++++++++++----------------------- po/lxd.pot | 111 ++++++++++++++++++++++------------------- po/mr.po | 130 +++++++++++++++++++++++++----------------------- po/nb_NO.po | 130 +++++++++++++++++++++++++----------------------- po/nl.po | 130 +++++++++++++++++++++++++----------------------- po/pa.po | 130 +++++++++++++++++++++++++----------------------- po/pl.po | 130 +++++++++++++++++++++++++----------------------- po/pt.po | 130 +++++++++++++++++++++++++----------------------- po/pt_BR.po | 130 +++++++++++++++++++++++++----------------------- po/ru.po | 130 +++++++++++++++++++++++++----------------------- po/si.po | 130 +++++++++++++++++++++++++----------------------- po/sl.po | 130 +++++++++++++++++++++++++----------------------- po/sr.po | 130 +++++++++++++++++++++++++----------------------- po/sv.po | 130 +++++++++++++++++++++++++----------------------- po/te.po | 130 +++++++++++++++++++++++++----------------------- po/th.po | 130 +++++++++++++++++++++++++----------------------- po/tr.po | 130 +++++++++++++++++++++++++----------------------- po/tzm.po | 130 +++++++++++++++++++++++++----------------------- po/ug.po | 130 +++++++++++++++++++++++++----------------------- po/uk.po | 130 +++++++++++++++++++++++++----------------------- po/zh_Hans.po | 130 +++++++++++++++++++++++++----------------------- po/zh_Hant.po | 130 +++++++++++++++++++++++++----------------------- 40 files changed, 2755 insertions(+), 2431 deletions(-) diff --git a/po/ar.po b/po/ar.po index 2ff5b3b06683..628de8f1aab7 100644 --- a/po/ar.po +++ b/po/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -388,7 +388,7 @@ msgid "" "### Note that the name is shown but cannot be changed" msgstr "" -#: lxc/project.go:233 +#: lxc/project.go:256 msgid "" "### This is a YAML representation of the project.\n" "### Any line starting with a '# will be ignored.\n" @@ -871,7 +871,7 @@ msgstr "" msgid "Bad key/value pair: %s" msgstr "" -#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:129 +#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:151 #, c-format msgid "Bad key=value pair: %q" msgstr "" @@ -1199,7 +1199,7 @@ msgstr "" msgid "Config key/value to apply to the new instance" msgstr "" -#: lxc/project.go:95 +#: lxc/project.go:100 msgid "Config key/value to apply to the new project" msgstr "" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format @@ -1515,7 +1515,7 @@ msgstr "" #: lxc/network_acl.go:148 lxc/network_forward.go:149 #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 -#: lxc/profile.go:678 lxc/project.go:505 lxc/storage.go:646 +#: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 #: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" @@ -1617,7 +1617,7 @@ msgstr "" msgid "Delete profiles" msgstr "" -#: lxc/project.go:157 lxc/project.go:158 +#: lxc/project.go:180 lxc/project.go:181 msgid "Delete projects" msgstr "" @@ -1717,9 +1717,9 @@ msgstr "" #: lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 #: lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 #: lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 -#: lxc/project.go:93 lxc/project.go:158 lxc/project.go:221 lxc/project.go:349 -#: lxc/project.go:410 lxc/project.go:523 lxc/project.go:580 lxc/project.go:659 -#: lxc/project.go:690 lxc/project.go:743 lxc/project.go:802 lxc/publish.go:33 +#: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 +#: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 +#: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 #: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 #: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 #: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 @@ -1979,7 +1979,7 @@ msgstr "" msgid "Edit profile configurations as YAML" msgstr "" -#: lxc/project.go:220 lxc/project.go:221 +#: lxc/project.go:243 lxc/project.go:244 msgid "Edit project configurations as YAML" msgstr "" @@ -2059,7 +2059,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:634 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2073,7 +2073,7 @@ msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 #: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 -#: lxc/profile.go:870 lxc/project.go:628 lxc/storage.go:721 +#: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format @@ -2411,8 +2411,8 @@ msgstr "" #: lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 -#: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:412 -#: lxc/project.go:804 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 +#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2478,7 +2478,7 @@ msgstr "" msgid "Get UEFI variables for instance" msgstr "" -#: lxc/project.go:801 lxc/project.go:802 +#: lxc/project.go:824 lxc/project.go:825 msgid "Get a summary of resource allocations" msgstr "" @@ -2526,7 +2526,7 @@ msgstr "" msgid "Get the key as a profile property" msgstr "" -#: lxc/project.go:353 +#: lxc/project.go:376 msgid "Get the key as a project property" msgstr "" @@ -2590,7 +2590,7 @@ msgstr "" msgid "Get values for profile configuration keys" msgstr "" -#: lxc/project.go:348 lxc/project.go:349 +#: lxc/project.go:371 lxc/project.go:372 msgid "Get values for project configuration keys" msgstr "" @@ -2684,7 +2684,7 @@ msgstr "" msgid "IDENTIFIER" msgstr "" -#: lxc/project.go:499 +#: lxc/project.go:522 msgid "IMAGES" msgstr "" @@ -3010,7 +3010,7 @@ msgstr "" msgid "LAST USED AT" msgstr "" -#: lxc/project.go:863 +#: lxc/project.go:886 msgid "LIMIT" msgstr "" @@ -3311,7 +3311,7 @@ msgstr "" msgid "List profiles" msgstr "" -#: lxc/project.go:409 lxc/project.go:410 +#: lxc/project.go:432 lxc/project.go:433 msgid "List projects" msgstr "" @@ -3863,8 +3863,8 @@ msgstr "" msgid "Missing profile name" msgstr "" -#: lxc/project.go:118 lxc/project.go:187 lxc/project.go:269 lxc/project.go:373 -#: lxc/project.go:547 lxc/project.go:607 lxc/project.go:714 lxc/project.go:827 +#: lxc/project.go:138 lxc/project.go:210 lxc/project.go:292 lxc/project.go:396 +#: lxc/project.go:570 lxc/project.go:630 lxc/project.go:737 lxc/project.go:850 msgid "Missing project name" msgstr "" @@ -3988,7 +3988,7 @@ msgstr "" #: lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 -#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:498 +#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 #: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" @@ -3998,11 +3998,11 @@ msgstr "" msgid "NAT" msgstr "" -#: lxc/project.go:504 +#: lxc/project.go:527 msgid "NETWORK ZONES" msgstr "" -#: lxc/project.go:503 +#: lxc/project.go:526 msgid "NETWORKS" msgstr "" @@ -4014,9 +4014,9 @@ msgstr "" msgid "NICs:" msgstr "" -#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:456 -#: lxc/project.go:461 lxc/project.go:466 lxc/project.go:471 lxc/project.go:476 -#: lxc/project.go:481 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 +#: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 +#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 msgid "NO" msgstr "" @@ -4308,7 +4308,7 @@ msgstr "" msgid "PROCESSES" msgstr "" -#: lxc/list.go:567 lxc/project.go:500 +#: lxc/list.go:567 lxc/project.go:523 msgid "PROFILES" msgstr "" @@ -4385,7 +4385,7 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" @@ -4477,17 +4477,17 @@ msgstr "" msgid "Profiles: " msgstr "" -#: lxc/project.go:141 +#: lxc/project.go:164 #, c-format msgid "Project %s created" msgstr "" -#: lxc/project.go:197 +#: lxc/project.go:220 #, c-format msgid "Project %s deleted" msgstr "" -#: lxc/project.go:562 +#: lxc/project.go:585 #, c-format msgid "Project %s renamed to %s" msgstr "" @@ -4634,7 +4634,7 @@ msgstr "" msgid "Query virtual machine images" msgstr "" -#: lxc/project.go:862 +#: lxc/project.go:885 msgid "RESOURCE" msgstr "" @@ -4686,7 +4686,7 @@ msgstr "" msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:769 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 +#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 #: lxc/remote.go:961 #, c-format msgid "Remote %s doesn't exist" @@ -4854,7 +4854,7 @@ msgstr "" msgid "Rename profiles" msgstr "" -#: lxc/project.go:522 lxc/project.go:523 +#: lxc/project.go:545 lxc/project.go:546 msgid "Rename projects" msgstr "" @@ -5011,7 +5011,7 @@ msgstr "" msgid "STATUS" msgstr "" -#: lxc/project.go:502 +#: lxc/project.go:525 msgid "STORAGE BUCKETS" msgstr "" @@ -5019,7 +5019,7 @@ msgstr "" msgid "STORAGE POOL" msgstr "" -#: lxc/project.go:501 +#: lxc/project.go:524 msgid "STORAGE VOLUMES" msgstr "" @@ -5207,11 +5207,11 @@ msgid "" " lxc profile set [:] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5311,7 +5311,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5456,7 +5456,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5698,7 +5698,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5857,7 +5857,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6047,7 +6047,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6059,12 +6059,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6191,7 +6191,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6243,7 +6243,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6404,9 +6404,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6442,7 +6442,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6986,20 +6986,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7063,7 +7063,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7366,7 +7366,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/ber.po b/po/ber.po index eff03835835a..048b0bb26e3c 100644 --- a/po/ber.po +++ b/po/ber.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Berber :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/bg.po b/po/bg.po index 9a6478ff5d34..568e1a31ac37 100644 --- a/po/bg.po +++ b/po/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/ca.po b/po/ca.po index d46c8b047161..968617412d3f 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Catalan :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/cs.po b/po/cs.po index 98576106376c..a4a01eda3c93 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Czech :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/de.po b/po/de.po index a651f71f3389..ca183c3250cd 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Krombel \n" "Language-Team: German :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 #, fuzzy msgid "Set project configuration keys" msgstr "Profil %s erstellt\n" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5915,7 +5915,7 @@ msgstr "Profil %s erstellt\n" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -6079,7 +6079,7 @@ msgstr "Profil %s erstellt\n" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -6337,7 +6337,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -6502,7 +6502,7 @@ msgstr "der Name des Ursprung Containers muss angegeben werden" msgid "The property %q does not exist on the profile %q: %v" msgstr "der Name des Ursprung Containers muss angegeben werden" -#: lxc/project.go:386 +#: lxc/project.go:409 #, fuzzy, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "der Name des Ursprung Containers muss angegeben werden" @@ -6698,7 +6698,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6710,12 +6710,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6857,7 +6857,7 @@ msgstr "Profil %s erstellt\n" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 #, fuzzy msgid "Unset project configuration keys" msgstr "Profil %s erstellt\n" @@ -6918,7 +6918,7 @@ msgstr "Profil %s erstellt\n" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -7093,9 +7093,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -7143,7 +7143,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 #, fuzzy msgid "[:]" @@ -8219,8 +8219,8 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 #, fuzzy msgid "[:]" msgstr "" @@ -8228,7 +8228,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 #, fuzzy msgid "[:] " msgstr "" @@ -8236,7 +8236,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/project.go:578 +#: lxc/project.go:601 #, fuzzy msgid "[:] =..." msgstr "" @@ -8244,7 +8244,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/project.go:520 +#: lxc/project.go:543 #, fuzzy msgid "[:] " msgstr "" @@ -8377,7 +8377,7 @@ msgstr "" "Entfernt einen Container (oder Sicherungspunkt) und alle dazugehörigen\n" "Daten (Konfiguration, Sicherungspunkte, ...).\n" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -8684,7 +8684,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/el.po b/po/el.po index ed16a315cd67..e6d51483efb2 100644 --- a/po/el.po +++ b/po/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Greek :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5397,7 +5397,7 @@ msgstr " Χρήση δικτύου:" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5551,7 +5551,7 @@ msgstr " Χρήση δικτύου:" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5796,7 +5796,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5955,7 +5955,7 @@ msgstr " Χρήση δικτύου:" msgid "The property %q does not exist on the profile %q: %v" msgstr " Χρήση δικτύου:" -#: lxc/project.go:386 +#: lxc/project.go:409 #, fuzzy, c-format msgid "The property %q does not exist on the project %q: %v" msgstr " Χρήση δικτύου:" @@ -6146,7 +6146,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6158,12 +6158,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6299,7 +6299,7 @@ msgstr " Χρήση δικτύου:" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6358,7 +6358,7 @@ msgstr " Χρήση δικτύου:" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6520,9 +6520,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6558,7 +6558,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -7102,20 +7102,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7179,7 +7179,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7482,7 +7482,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/eo.po b/po/eo.po index 59b1f9d6bf56..d3de8c0f09f6 100644 --- a/po/eo.po +++ b/po/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Esperanto :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/es.po b/po/es.po index af0dd2e01fdd..149666aa5489 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2023-06-16 20:55+0000\n" "Last-Translator: Francisco Serrador \n" "Language-Team: Spanish :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5709,7 +5709,7 @@ msgstr "Perfil %s creado" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5864,7 +5864,7 @@ msgstr "Perfil %s creado" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -6110,7 +6110,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -6271,7 +6271,7 @@ msgstr "Nombre del Miembro del Cluster" msgid "The property %q does not exist on the profile %q: %v" msgstr "Nombre del Miembro del Cluster" -#: lxc/project.go:386 +#: lxc/project.go:409 #, fuzzy, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "Nombre del Miembro del Cluster" @@ -6465,7 +6465,7 @@ msgstr "Expira: %s" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6477,12 +6477,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6619,7 +6619,7 @@ msgstr "Perfil %s creado" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6678,7 +6678,7 @@ msgstr "Perfil %s creado" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6841,9 +6841,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6881,7 +6881,7 @@ msgstr "No se puede proveer el nombre del container a la lista" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 #, fuzzy msgid "[:]" @@ -7548,23 +7548,23 @@ msgstr "No se puede proveer el nombre del container a la lista" msgid "[:] [:]" msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 #, fuzzy msgid "[:]" msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/project.go:578 +#: lxc/project.go:601 #, fuzzy msgid "[:] =..." msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/project.go:520 +#: lxc/project.go:543 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" @@ -7644,7 +7644,7 @@ msgstr "No se puede proveer el nombre del container a la lista" msgid "[[:]]" msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7947,7 +7947,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/fa.po b/po/fa.po index e9fdb3253bc8..c5b852dc9cbf 100644 --- a/po/fa.po +++ b/po/fa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Persian :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/fi.po b/po/fi.po index 0c919efa1b24..44930685ce9b 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Finnish :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/fr.po b/po/fr.po index 6fb65fff1050..89f1b5e3f2f2 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Wivik \n" "Language-Team: French :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 #, fuzzy msgid "Set project configuration keys" msgstr "Clé de configuration invalide" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -6041,7 +6041,7 @@ msgstr "Clé de configuration invalide" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -6209,7 +6209,7 @@ msgstr "Afficher la configuration étendue" msgid "Show profile configurations" msgstr "Afficher la configuration étendue" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 #, fuzzy msgid "Show project options" msgstr "Afficher la configuration étendue" @@ -6470,7 +6470,7 @@ msgstr "Swap (courant)" msgid "Swap (peak)" msgstr "Swap (pointe)" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 #, fuzzy msgid "Switch the current project" msgstr "impossible de supprimer le serveur distant par défaut" @@ -6641,7 +6641,7 @@ msgstr "Vous devez fournir le nom d'un conteneur pour : " msgid "The property %q does not exist on the profile %q: %v" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/project.go:386 +#: lxc/project.go:409 #, fuzzy, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "Vous devez fournir le nom d'un conteneur pour : " @@ -6839,7 +6839,7 @@ msgstr "Expire : %s" msgid "Type: %s (ephemeral)" msgstr "Type : éphémère" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6851,12 +6851,12 @@ msgstr "DATE DE PUBLICATION" msgid "URL" msgstr "URL" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "UTILISÉ PAR" @@ -7000,7 +7000,7 @@ msgstr "Clé de configuration invalide" msgid "Unset profile configuration keys" msgstr "Clé de configuration invalide" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 #, fuzzy msgid "Unset project configuration keys" msgstr "Clé de configuration invalide" @@ -7062,7 +7062,7 @@ msgstr "Clé de configuration invalide" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -7235,9 +7235,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "OUI" @@ -7285,7 +7285,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 #, fuzzy msgid "[:]" @@ -8460,8 +8460,8 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 #, fuzzy msgid "[:]" msgstr "" @@ -8469,7 +8469,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 #, fuzzy msgid "[:] " msgstr "" @@ -8477,7 +8477,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/project.go:578 +#: lxc/project.go:601 #, fuzzy msgid "[:] =..." msgstr "" @@ -8485,7 +8485,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/project.go:520 +#: lxc/project.go:543 #, fuzzy msgid "[:] " msgstr "" @@ -8633,7 +8633,7 @@ msgstr "" "Détruit les conteneurs ou les instantanés ainsi que toute donnée associée " "(configuration, instantanés, …)." -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 #, fuzzy msgid "current" msgstr "Swap (courant)" @@ -8959,7 +8959,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/he.po b/po/he.po index 1f492668d8c0..50898a81a7d2 100644 --- a/po/he.po +++ b/po/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hebrew :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5315,7 +5315,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5460,7 +5460,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5702,7 +5702,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5861,7 +5861,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6051,7 +6051,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6063,12 +6063,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6195,7 +6195,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6247,7 +6247,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6408,9 +6408,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6446,7 +6446,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6990,20 +6990,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7067,7 +7067,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7370,7 +7370,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/hi.po b/po/hi.po index 8c8d58539ed1..228bfb0a17e7 100644 --- a/po/hi.po +++ b/po/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hindi :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/id.po b/po/id.po index 76e2a9dab06b..af06755a4b9f 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/it.po b/po/it.po index 129974b0fe24..15582c297d2d 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Luigi Operoso \n" "Language-Team: Italian :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5705,7 +5705,7 @@ msgstr "Il nome del container è: %s" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "Il nome del container è: %s" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -6108,7 +6108,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -6269,7 +6269,7 @@ msgstr "Il nome del container è: %s" msgid "The property %q does not exist on the profile %q: %v" msgstr "Il nome del container è: %s" -#: lxc/project.go:386 +#: lxc/project.go:409 #, fuzzy, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "Il nome del container è: %s" @@ -6462,7 +6462,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6474,12 +6474,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6615,7 +6615,7 @@ msgstr "Il nome del container è: %s" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6671,7 +6671,7 @@ msgstr "Il nome del container è: %s" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6835,9 +6835,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6878,7 +6878,7 @@ msgstr "Creazione del container in corso" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 #, fuzzy msgid "[:]" @@ -7545,23 +7545,23 @@ msgstr "Creazione del container in corso" msgid "[:] [:]" msgstr "Creazione del container in corso" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 #, fuzzy msgid "[:]" msgstr "Creazione del container in corso" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" -#: lxc/project.go:578 +#: lxc/project.go:601 #, fuzzy msgid "[:] =..." msgstr "Creazione del container in corso" -#: lxc/project.go:520 +#: lxc/project.go:543 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" @@ -7641,7 +7641,7 @@ msgstr "Creazione del container in corso" msgid "[[:]]" msgstr "Creazione del container in corso" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7944,7 +7944,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/ja.po b/po/ja.po index 0d07e38739a3..a21b8aad23a9 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2023-03-10 15:14+0000\n" "Last-Translator: KATOH Yasufumi \n" "Language-Team: Japanese :] " -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "プロジェクトの設定項目を設定します" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5976,7 +5976,7 @@ msgstr "ネットワークゾーンレコードエントリを削除します" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -6127,7 +6127,7 @@ msgstr "ネットワークゾーンレコードの設定を表示します" msgid "Show profile configurations" msgstr "プロファイルの設定を表示します" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "プロジェクトの設定を表示します" @@ -6369,7 +6369,7 @@ msgstr "Swap (現在値)" msgid "Swap (peak)" msgstr "Swap (ピーク)" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "現在のプロジェクトを切り替えます" @@ -6534,7 +6534,7 @@ msgstr "設定 %q はクラスタメンバー %q には存在しません" msgid "The property %q does not exist on the profile %q: %v" msgstr "設定 %q はクラスタメンバー %q には存在しません" -#: lxc/project.go:386 +#: lxc/project.go:409 #, fuzzy, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "設定 %q はクラスタメンバー %q には存在しません" @@ -6747,7 +6747,7 @@ msgstr "タイプ: %s" msgid "Type: %s (ephemeral)" msgstr "タイプ: %s (ephemeral)" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "UNLIMITED" @@ -6759,12 +6759,12 @@ msgstr "UPLOAD DATE" msgid "URL" msgstr "URL" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "USAGE" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "USED BY" @@ -6892,7 +6892,7 @@ msgstr "ネットワークゾーンレコードの設定を削除します" msgid "Unset profile configuration keys" msgstr "プロファイルの設定を削除します" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "プロジェクトの設定を削除します" @@ -6950,7 +6950,7 @@ msgstr "ネットワークゾーンレコードエントリを削除します" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -7123,9 +7123,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "YES" @@ -7164,7 +7164,7 @@ msgstr "[] [] []" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "[:]" @@ -7735,20 +7735,20 @@ msgstr "[:] " msgid "[:] [:]" msgstr "[:] [:]" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "[:]" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "[:] " -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "[:] =..." -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "[:] " @@ -7815,7 +7815,7 @@ msgstr "[] " msgid "[[:]]" msgstr "[:] " -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "現在値" @@ -8256,7 +8256,20 @@ msgstr "" "lxc profile edit < profile.yaml\n" " profile.yaml の内容でプロファイルを更新します" -#: lxc/project.go:223 +#: lxc/project.go:95 +#, fuzzy +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" +"lxc init ubuntu:22.04 u1\n" +"\n" +"lxc init ubuntu:22.04 u1 < config.yaml\n" +" config.yaml の設定を使ってインスタンスを作成します" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/ka.po b/po/ka.po index bec991928808..e36946cf40a8 100644 --- a/po/ka.po +++ b/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -388,7 +388,7 @@ msgid "" "### Note that the name is shown but cannot be changed" msgstr "" -#: lxc/project.go:233 +#: lxc/project.go:256 msgid "" "### This is a YAML representation of the project.\n" "### Any line starting with a '# will be ignored.\n" @@ -871,7 +871,7 @@ msgstr "" msgid "Bad key/value pair: %s" msgstr "" -#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:129 +#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:151 #, c-format msgid "Bad key=value pair: %q" msgstr "" @@ -1199,7 +1199,7 @@ msgstr "" msgid "Config key/value to apply to the new instance" msgstr "" -#: lxc/project.go:95 +#: lxc/project.go:100 msgid "Config key/value to apply to the new project" msgstr "" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format @@ -1515,7 +1515,7 @@ msgstr "" #: lxc/network_acl.go:148 lxc/network_forward.go:149 #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 -#: lxc/profile.go:678 lxc/project.go:505 lxc/storage.go:646 +#: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 #: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" @@ -1617,7 +1617,7 @@ msgstr "" msgid "Delete profiles" msgstr "" -#: lxc/project.go:157 lxc/project.go:158 +#: lxc/project.go:180 lxc/project.go:181 msgid "Delete projects" msgstr "" @@ -1717,9 +1717,9 @@ msgstr "" #: lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 #: lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 #: lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 -#: lxc/project.go:93 lxc/project.go:158 lxc/project.go:221 lxc/project.go:349 -#: lxc/project.go:410 lxc/project.go:523 lxc/project.go:580 lxc/project.go:659 -#: lxc/project.go:690 lxc/project.go:743 lxc/project.go:802 lxc/publish.go:33 +#: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 +#: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 +#: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 #: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 #: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 #: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 @@ -1979,7 +1979,7 @@ msgstr "" msgid "Edit profile configurations as YAML" msgstr "" -#: lxc/project.go:220 lxc/project.go:221 +#: lxc/project.go:243 lxc/project.go:244 msgid "Edit project configurations as YAML" msgstr "" @@ -2059,7 +2059,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:634 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2073,7 +2073,7 @@ msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 #: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 -#: lxc/profile.go:870 lxc/project.go:628 lxc/storage.go:721 +#: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format @@ -2411,8 +2411,8 @@ msgstr "" #: lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 -#: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:412 -#: lxc/project.go:804 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 +#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2478,7 +2478,7 @@ msgstr "" msgid "Get UEFI variables for instance" msgstr "" -#: lxc/project.go:801 lxc/project.go:802 +#: lxc/project.go:824 lxc/project.go:825 msgid "Get a summary of resource allocations" msgstr "" @@ -2526,7 +2526,7 @@ msgstr "" msgid "Get the key as a profile property" msgstr "" -#: lxc/project.go:353 +#: lxc/project.go:376 msgid "Get the key as a project property" msgstr "" @@ -2590,7 +2590,7 @@ msgstr "" msgid "Get values for profile configuration keys" msgstr "" -#: lxc/project.go:348 lxc/project.go:349 +#: lxc/project.go:371 lxc/project.go:372 msgid "Get values for project configuration keys" msgstr "" @@ -2684,7 +2684,7 @@ msgstr "" msgid "IDENTIFIER" msgstr "" -#: lxc/project.go:499 +#: lxc/project.go:522 msgid "IMAGES" msgstr "" @@ -3010,7 +3010,7 @@ msgstr "" msgid "LAST USED AT" msgstr "" -#: lxc/project.go:863 +#: lxc/project.go:886 msgid "LIMIT" msgstr "" @@ -3311,7 +3311,7 @@ msgstr "" msgid "List profiles" msgstr "" -#: lxc/project.go:409 lxc/project.go:410 +#: lxc/project.go:432 lxc/project.go:433 msgid "List projects" msgstr "" @@ -3863,8 +3863,8 @@ msgstr "" msgid "Missing profile name" msgstr "" -#: lxc/project.go:118 lxc/project.go:187 lxc/project.go:269 lxc/project.go:373 -#: lxc/project.go:547 lxc/project.go:607 lxc/project.go:714 lxc/project.go:827 +#: lxc/project.go:138 lxc/project.go:210 lxc/project.go:292 lxc/project.go:396 +#: lxc/project.go:570 lxc/project.go:630 lxc/project.go:737 lxc/project.go:850 msgid "Missing project name" msgstr "" @@ -3988,7 +3988,7 @@ msgstr "" #: lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 -#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:498 +#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 #: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" @@ -3998,11 +3998,11 @@ msgstr "" msgid "NAT" msgstr "" -#: lxc/project.go:504 +#: lxc/project.go:527 msgid "NETWORK ZONES" msgstr "" -#: lxc/project.go:503 +#: lxc/project.go:526 msgid "NETWORKS" msgstr "" @@ -4014,9 +4014,9 @@ msgstr "" msgid "NICs:" msgstr "" -#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:456 -#: lxc/project.go:461 lxc/project.go:466 lxc/project.go:471 lxc/project.go:476 -#: lxc/project.go:481 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 +#: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 +#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 msgid "NO" msgstr "" @@ -4308,7 +4308,7 @@ msgstr "" msgid "PROCESSES" msgstr "" -#: lxc/list.go:567 lxc/project.go:500 +#: lxc/list.go:567 lxc/project.go:523 msgid "PROFILES" msgstr "" @@ -4385,7 +4385,7 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" @@ -4477,17 +4477,17 @@ msgstr "" msgid "Profiles: " msgstr "" -#: lxc/project.go:141 +#: lxc/project.go:164 #, c-format msgid "Project %s created" msgstr "" -#: lxc/project.go:197 +#: lxc/project.go:220 #, c-format msgid "Project %s deleted" msgstr "" -#: lxc/project.go:562 +#: lxc/project.go:585 #, c-format msgid "Project %s renamed to %s" msgstr "" @@ -4634,7 +4634,7 @@ msgstr "" msgid "Query virtual machine images" msgstr "" -#: lxc/project.go:862 +#: lxc/project.go:885 msgid "RESOURCE" msgstr "" @@ -4686,7 +4686,7 @@ msgstr "" msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:769 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 +#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 #: lxc/remote.go:961 #, c-format msgid "Remote %s doesn't exist" @@ -4854,7 +4854,7 @@ msgstr "" msgid "Rename profiles" msgstr "" -#: lxc/project.go:522 lxc/project.go:523 +#: lxc/project.go:545 lxc/project.go:546 msgid "Rename projects" msgstr "" @@ -5011,7 +5011,7 @@ msgstr "" msgid "STATUS" msgstr "" -#: lxc/project.go:502 +#: lxc/project.go:525 msgid "STORAGE BUCKETS" msgstr "" @@ -5019,7 +5019,7 @@ msgstr "" msgid "STORAGE POOL" msgstr "" -#: lxc/project.go:501 +#: lxc/project.go:524 msgid "STORAGE VOLUMES" msgstr "" @@ -5207,11 +5207,11 @@ msgid "" " lxc profile set [:] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5311,7 +5311,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5456,7 +5456,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5698,7 +5698,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5857,7 +5857,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6047,7 +6047,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6059,12 +6059,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6191,7 +6191,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6243,7 +6243,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6404,9 +6404,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6442,7 +6442,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6986,20 +6986,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7063,7 +7063,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7366,7 +7366,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/ko.po b/po/ko.po index 97b587317d1b..e5a75eb851b4 100644 --- a/po/ko.po +++ b/po/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/lxd.pot b/po/lxd.pot index 71f50248e6cf..22222a0ebdfb 100644 --- a/po/lxd.pot +++ b/po/lxd.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" - "POT-Creation-Date: 2024-08-12 13:29+0200\n" + "POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -361,7 +361,7 @@ msgid "### This is a YAML representation of the profile.\n" "### Note that the name is shown but cannot be changed" msgstr "" -#: lxc/project.go:233 +#: lxc/project.go:256 msgid "### This is a YAML representation of the project.\n" "### Any line starting with a '# will be ignored.\n" "###\n" @@ -830,7 +830,7 @@ msgstr "" msgid "Bad key/value pair: %s" msgstr "" -#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:129 +#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:151 #, c-format msgid "Bad key=value pair: %q" msgstr "" @@ -1128,7 +1128,7 @@ msgstr "" msgid "Config key/value to apply to the new instance" msgstr "" -#: lxc/project.go:95 +#: lxc/project.go:100 msgid "Config key/value to apply to the new project" msgstr "" @@ -1136,7 +1136,7 @@ msgstr "" msgid "Config key/value to apply to the target instance" msgstr "" -#: lxc/cluster.go:770 lxc/cluster_group.go:339 lxc/config.go:272 lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 lxc/network_acl.go:620 lxc/network_forward.go:685 lxc/network_load_balancer.go:689 lxc/network_peer.go:610 lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 lxc/storage_volume.go:1048 +#: lxc/cluster.go:770 lxc/cluster_group.go:339 lxc/config.go:272 lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 lxc/network_acl.go:620 lxc/network_forward.go:685 lxc/network_load_balancer.go:689 lxc/network_peer.go:610 lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" msgstr "" @@ -1423,7 +1423,7 @@ msgstr "" msgid "DEFAULT TARGET ADDRESS" msgstr "" -#: lxc/auth.go:376 lxc/cluster.go:188 lxc/cluster_group.go:438 lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 lxc/network_acl.go:148 lxc/network_forward.go:149 lxc/network_load_balancer.go:152 lxc/network_peer.go:140 lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 lxc/profile.go:678 lxc/project.go:505 lxc/storage.go:646 lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 lxc/storage_volume.go:1562 +#: lxc/auth.go:376 lxc/cluster.go:188 lxc/cluster_group.go:438 lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 lxc/network_acl.go:148 lxc/network_forward.go:149 lxc/network_load_balancer.go:152 lxc/network_peer.go:140 lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1523,7 +1523,7 @@ msgstr "" msgid "Delete profiles" msgstr "" -#: lxc/project.go:157 lxc/project.go:158 +#: lxc/project.go:180 lxc/project.go:181 msgid "Delete projects" msgstr "" @@ -1543,7 +1543,7 @@ msgstr "" msgid "Delete warning" msgstr "" -#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:158 lxc/project.go:221 lxc/project.go:349 lxc/project.go:410 lxc/project.go:523 lxc/project.go:580 lxc/project.go:659 lxc/project.go:690 lxc/project.go:743 lxc/project.go:802 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 +#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 msgid "Description" msgstr "" @@ -1771,7 +1771,7 @@ msgstr "" msgid "Edit profile configurations as YAML" msgstr "" -#: lxc/project.go:220 lxc/project.go:221 +#: lxc/project.go:243 lxc/project.go:244 msgid "Edit project configurations as YAML" msgstr "" @@ -1842,7 +1842,7 @@ msgstr "" msgid "Error retrieving aliases: %w" msgstr "" -#: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 lxc/network_acl.go:467 lxc/network_forward.go:519 lxc/network_load_balancer.go:522 lxc/network_peer.go:463 lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 lxc/project.go:634 lxc/storage.go:727 lxc/storage_bucket.go:597 lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 +#: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 lxc/network_acl.go:467 lxc/network_forward.go:519 lxc/network_load_balancer.go:522 lxc/network_peer.go:463 lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" msgstr "" @@ -1852,7 +1852,7 @@ msgstr "" msgid "Error unsetting properties: %v" msgstr "" -#: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 lxc/network_forward.go:513 lxc/network_load_balancer.go:516 lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 lxc/profile.go:870 lxc/project.go:628 lxc/storage.go:721 lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 lxc/storage_volume.go:1979 +#: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 lxc/network_forward.go:513 lxc/network_load_balancer.go:516 lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" msgstr "" @@ -2170,7 +2170,7 @@ msgid "Forcefully removing a server from the cluster should only be done as a "Are you really sure you want to force removing %s? (yes/no): " msgstr "" -#: lxc/alias.go:112 lxc/auth.go:336 lxc/auth.go:769 lxc/auth.go:1696 lxc/cluster.go:124 lxc/cluster.go:881 lxc/cluster_group.go:384 lxc/config_template.go:242 lxc/config_trust.go:352 lxc/config_trust.go:434 lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 lxc/network_forward.go:93 lxc/network_load_balancer.go:97 lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:412 lxc/project.go:804 lxc/remote.go:689 lxc/storage.go:588 lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 lxc/storage_volume.go:1446 lxc/warning.go:93 +#: lxc/alias.go:112 lxc/auth.go:336 lxc/auth.go:769 lxc/auth.go:1696 lxc/cluster.go:124 lxc/cluster.go:881 lxc/cluster_group.go:384 lxc/config_template.go:242 lxc/config_trust.go:352 lxc/config_trust.go:434 lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 lxc/network_forward.go:93 lxc/network_load_balancer.go:97 lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2234,7 +2234,7 @@ msgstr "" msgid "Get UEFI variables for instance" msgstr "" -#: lxc/project.go:801 lxc/project.go:802 +#: lxc/project.go:824 lxc/project.go:825 msgid "Get a summary of resource allocations" msgstr "" @@ -2282,7 +2282,7 @@ msgstr "" msgid "Get the key as a profile property" msgstr "" -#: lxc/project.go:353 +#: lxc/project.go:376 msgid "Get the key as a project property" msgstr "" @@ -2346,7 +2346,7 @@ msgstr "" msgid "Get values for profile configuration keys" msgstr "" -#: lxc/project.go:348 lxc/project.go:349 +#: lxc/project.go:371 lxc/project.go:372 msgid "Get values for project configuration keys" msgstr "" @@ -2440,7 +2440,7 @@ msgstr "" msgid "IDENTIFIER" msgstr "" -#: lxc/project.go:499 +#: lxc/project.go:522 msgid "IMAGES" msgstr "" @@ -2760,7 +2760,7 @@ msgstr "" msgid "LAST USED AT" msgstr "" -#: lxc/project.go:863 +#: lxc/project.go:886 msgid "LIMIT" msgstr "" @@ -3048,7 +3048,7 @@ msgstr "" msgid "List profiles" msgstr "" -#: lxc/project.go:409 lxc/project.go:410 +#: lxc/project.go:432 lxc/project.go:433 msgid "List projects" msgstr "" @@ -3534,7 +3534,7 @@ msgstr "" msgid "Missing profile name" msgstr "" -#: lxc/project.go:118 lxc/project.go:187 lxc/project.go:269 lxc/project.go:373 lxc/project.go:547 lxc/project.go:607 lxc/project.go:714 lxc/project.go:827 +#: lxc/project.go:138 lxc/project.go:210 lxc/project.go:292 lxc/project.go:396 lxc/project.go:570 lxc/project.go:630 lxc/project.go:737 lxc/project.go:850 msgid "Missing project name" msgstr "" @@ -3647,7 +3647,7 @@ msgstr "" msgid "Must supply instance name for: " msgstr "" -#: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:498 lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -3655,11 +3655,11 @@ msgstr "" msgid "NAT" msgstr "" -#: lxc/project.go:504 +#: lxc/project.go:527 msgid "NETWORK ZONES" msgstr "" -#: lxc/project.go:503 +#: lxc/project.go:526 msgid "NETWORKS" msgstr "" @@ -3671,7 +3671,7 @@ msgstr "" msgid "NICs:" msgstr "" -#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:456 lxc/project.go:461 lxc/project.go:466 lxc/project.go:471 lxc/project.go:476 lxc/project.go:481 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 msgid "NO" msgstr "" @@ -3961,7 +3961,7 @@ msgstr "" msgid "PROCESSES" msgstr "" -#: lxc/list.go:567 lxc/project.go:500 +#: lxc/list.go:567 lxc/project.go:523 msgid "PROFILES" msgstr "" @@ -4031,7 +4031,7 @@ msgstr "" msgid "Press ctrl+c to finish" msgstr "" -#: lxc/auth.go:301 lxc/auth.go:1055 lxc/auth.go:1661 lxc/cluster.go:771 lxc/cluster_group.go:340 lxc/config.go:273 lxc/config.go:348 lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 lxc/network_acl.go:621 lxc/network_forward.go:686 lxc/network_load_balancer.go:690 lxc/network_peer.go:611 lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 lxc/storage_volume.go:1049 +#: lxc/auth.go:301 lxc/auth.go:1055 lxc/auth.go:1661 lxc/cluster.go:771 lxc/cluster_group.go:340 lxc/config.go:273 lxc/config.go:348 lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 lxc/network_acl.go:621 lxc/network_forward.go:686 lxc/network_load_balancer.go:690 lxc/network_peer.go:611 lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4121,17 +4121,17 @@ msgstr "" msgid "Profiles: " msgstr "" -#: lxc/project.go:141 +#: lxc/project.go:164 #, c-format msgid "Project %s created" msgstr "" -#: lxc/project.go:197 +#: lxc/project.go:220 #, c-format msgid "Project %s deleted" msgstr "" -#: lxc/project.go:562 +#: lxc/project.go:585 #, c-format msgid "Project %s renamed to %s" msgstr "" @@ -4262,7 +4262,7 @@ msgstr "" msgid "Query virtual machine images" msgstr "" -#: lxc/project.go:862 +#: lxc/project.go:885 msgid "RESOURCE" msgstr "" @@ -4314,7 +4314,7 @@ msgstr "" msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:769 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 lxc/remote.go:961 #, c-format msgid "Remote %s doesn't exist" msgstr "" @@ -4480,7 +4480,7 @@ msgstr "" msgid "Rename profiles" msgstr "" -#: lxc/project.go:522 lxc/project.go:523 +#: lxc/project.go:545 lxc/project.go:546 msgid "Rename projects" msgstr "" @@ -4634,7 +4634,7 @@ msgstr "" msgid "STATUS" msgstr "" -#: lxc/project.go:502 +#: lxc/project.go:525 msgid "STORAGE BUCKETS" msgstr "" @@ -4642,7 +4642,7 @@ msgstr "" msgid "STORAGE POOL" msgstr "" -#: lxc/project.go:501 +#: lxc/project.go:524 msgid "STORAGE VOLUMES" msgstr "" @@ -4810,11 +4810,11 @@ msgid "Set profile configuration keys\n" " lxc profile set [:] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "Set project configuration keys\n" "\n" "For backward compatibility, a single configuration key may still be set with:\n" @@ -4906,7 +4906,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5047,7 +5047,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5287,7 +5287,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5441,7 +5441,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -5620,7 +5620,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -5632,11 +5632,11 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" -#: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 lxc/storage.go:647 lxc/storage_volume.go:1564 +#: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -5761,7 +5761,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -5813,7 +5813,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -5966,7 +5966,7 @@ msgstr "" msgid "Wipe the instance root disk and re-initialize. The original image is used to re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -5998,7 +5998,7 @@ msgstr "" msgid "[] [] []" msgstr "" -#: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 +#: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6510,19 +6510,19 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -6586,7 +6586,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -6837,7 +6837,14 @@ msgid "lxc profile edit < profile.yaml\n" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "lxc project create p1\n" + "\n" + "lxc project create p1 < config.yaml\n" + " Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" msgstr "" diff --git a/po/mr.po b/po/mr.po index 9a61cf53ba74..925894723aa1 100644 --- a/po/mr.po +++ b/po/mr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Marathi :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/nb_NO.po b/po/nb_NO.po index 62bcbe93ee87..d29683cd6cf1 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Norwegian Bokmål :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/nl.po b/po/nl.po index fae296a69194..83fce96aa871 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5538,7 +5538,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5683,7 +5683,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5925,7 +5925,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -6084,7 +6084,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6274,7 +6274,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6286,12 +6286,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6418,7 +6418,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6470,7 +6470,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6631,9 +6631,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6669,7 +6669,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -7213,20 +7213,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7290,7 +7290,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7593,7 +7593,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/pa.po b/po/pa.po index c6ee48bd1bc3..47a58ed2b1db 100644 --- a/po/pa.po +++ b/po/pa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Punjabi :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/pl.po b/po/pl.po index ec40bb9739e4..7d2ef81f3198 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Polish :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5576,7 +5576,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5721,7 +5721,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5963,7 +5963,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -6122,7 +6122,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6312,7 +6312,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6324,12 +6324,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6456,7 +6456,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6508,7 +6508,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6669,9 +6669,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6707,7 +6707,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -7251,20 +7251,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7328,7 +7328,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7631,7 +7631,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/pt.po b/po/pt.po index 283983ac542c..71582411e8b8 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -388,7 +388,7 @@ msgid "" "### Note that the name is shown but cannot be changed" msgstr "" -#: lxc/project.go:233 +#: lxc/project.go:256 msgid "" "### This is a YAML representation of the project.\n" "### Any line starting with a '# will be ignored.\n" @@ -871,7 +871,7 @@ msgstr "" msgid "Bad key/value pair: %s" msgstr "" -#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:129 +#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:151 #, c-format msgid "Bad key=value pair: %q" msgstr "" @@ -1199,7 +1199,7 @@ msgstr "" msgid "Config key/value to apply to the new instance" msgstr "" -#: lxc/project.go:95 +#: lxc/project.go:100 msgid "Config key/value to apply to the new project" msgstr "" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format @@ -1515,7 +1515,7 @@ msgstr "" #: lxc/network_acl.go:148 lxc/network_forward.go:149 #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 -#: lxc/profile.go:678 lxc/project.go:505 lxc/storage.go:646 +#: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 #: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" @@ -1617,7 +1617,7 @@ msgstr "" msgid "Delete profiles" msgstr "" -#: lxc/project.go:157 lxc/project.go:158 +#: lxc/project.go:180 lxc/project.go:181 msgid "Delete projects" msgstr "" @@ -1717,9 +1717,9 @@ msgstr "" #: lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 #: lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 #: lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 -#: lxc/project.go:93 lxc/project.go:158 lxc/project.go:221 lxc/project.go:349 -#: lxc/project.go:410 lxc/project.go:523 lxc/project.go:580 lxc/project.go:659 -#: lxc/project.go:690 lxc/project.go:743 lxc/project.go:802 lxc/publish.go:33 +#: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 +#: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 +#: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 #: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 #: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 #: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 @@ -1979,7 +1979,7 @@ msgstr "" msgid "Edit profile configurations as YAML" msgstr "" -#: lxc/project.go:220 lxc/project.go:221 +#: lxc/project.go:243 lxc/project.go:244 msgid "Edit project configurations as YAML" msgstr "" @@ -2059,7 +2059,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:634 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2073,7 +2073,7 @@ msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 #: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 -#: lxc/profile.go:870 lxc/project.go:628 lxc/storage.go:721 +#: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format @@ -2411,8 +2411,8 @@ msgstr "" #: lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 -#: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:412 -#: lxc/project.go:804 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 +#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2478,7 +2478,7 @@ msgstr "" msgid "Get UEFI variables for instance" msgstr "" -#: lxc/project.go:801 lxc/project.go:802 +#: lxc/project.go:824 lxc/project.go:825 msgid "Get a summary of resource allocations" msgstr "" @@ -2526,7 +2526,7 @@ msgstr "" msgid "Get the key as a profile property" msgstr "" -#: lxc/project.go:353 +#: lxc/project.go:376 msgid "Get the key as a project property" msgstr "" @@ -2590,7 +2590,7 @@ msgstr "" msgid "Get values for profile configuration keys" msgstr "" -#: lxc/project.go:348 lxc/project.go:349 +#: lxc/project.go:371 lxc/project.go:372 msgid "Get values for project configuration keys" msgstr "" @@ -2684,7 +2684,7 @@ msgstr "" msgid "IDENTIFIER" msgstr "" -#: lxc/project.go:499 +#: lxc/project.go:522 msgid "IMAGES" msgstr "" @@ -3010,7 +3010,7 @@ msgstr "" msgid "LAST USED AT" msgstr "" -#: lxc/project.go:863 +#: lxc/project.go:886 msgid "LIMIT" msgstr "" @@ -3311,7 +3311,7 @@ msgstr "" msgid "List profiles" msgstr "" -#: lxc/project.go:409 lxc/project.go:410 +#: lxc/project.go:432 lxc/project.go:433 msgid "List projects" msgstr "" @@ -3863,8 +3863,8 @@ msgstr "" msgid "Missing profile name" msgstr "" -#: lxc/project.go:118 lxc/project.go:187 lxc/project.go:269 lxc/project.go:373 -#: lxc/project.go:547 lxc/project.go:607 lxc/project.go:714 lxc/project.go:827 +#: lxc/project.go:138 lxc/project.go:210 lxc/project.go:292 lxc/project.go:396 +#: lxc/project.go:570 lxc/project.go:630 lxc/project.go:737 lxc/project.go:850 msgid "Missing project name" msgstr "" @@ -3988,7 +3988,7 @@ msgstr "" #: lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 -#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:498 +#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 #: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" @@ -3998,11 +3998,11 @@ msgstr "" msgid "NAT" msgstr "" -#: lxc/project.go:504 +#: lxc/project.go:527 msgid "NETWORK ZONES" msgstr "" -#: lxc/project.go:503 +#: lxc/project.go:526 msgid "NETWORKS" msgstr "" @@ -4014,9 +4014,9 @@ msgstr "" msgid "NICs:" msgstr "" -#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:456 -#: lxc/project.go:461 lxc/project.go:466 lxc/project.go:471 lxc/project.go:476 -#: lxc/project.go:481 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 +#: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 +#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 msgid "NO" msgstr "" @@ -4308,7 +4308,7 @@ msgstr "" msgid "PROCESSES" msgstr "" -#: lxc/list.go:567 lxc/project.go:500 +#: lxc/list.go:567 lxc/project.go:523 msgid "PROFILES" msgstr "" @@ -4385,7 +4385,7 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" @@ -4477,17 +4477,17 @@ msgstr "" msgid "Profiles: " msgstr "" -#: lxc/project.go:141 +#: lxc/project.go:164 #, c-format msgid "Project %s created" msgstr "" -#: lxc/project.go:197 +#: lxc/project.go:220 #, c-format msgid "Project %s deleted" msgstr "" -#: lxc/project.go:562 +#: lxc/project.go:585 #, c-format msgid "Project %s renamed to %s" msgstr "" @@ -4634,7 +4634,7 @@ msgstr "" msgid "Query virtual machine images" msgstr "" -#: lxc/project.go:862 +#: lxc/project.go:885 msgid "RESOURCE" msgstr "" @@ -4686,7 +4686,7 @@ msgstr "" msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:769 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 +#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 #: lxc/remote.go:961 #, c-format msgid "Remote %s doesn't exist" @@ -4854,7 +4854,7 @@ msgstr "" msgid "Rename profiles" msgstr "" -#: lxc/project.go:522 lxc/project.go:523 +#: lxc/project.go:545 lxc/project.go:546 msgid "Rename projects" msgstr "" @@ -5011,7 +5011,7 @@ msgstr "" msgid "STATUS" msgstr "" -#: lxc/project.go:502 +#: lxc/project.go:525 msgid "STORAGE BUCKETS" msgstr "" @@ -5019,7 +5019,7 @@ msgstr "" msgid "STORAGE POOL" msgstr "" -#: lxc/project.go:501 +#: lxc/project.go:524 msgid "STORAGE VOLUMES" msgstr "" @@ -5207,11 +5207,11 @@ msgid "" " lxc profile set [:] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5311,7 +5311,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5456,7 +5456,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5698,7 +5698,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5857,7 +5857,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6047,7 +6047,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6059,12 +6059,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6191,7 +6191,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6243,7 +6243,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6404,9 +6404,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6442,7 +6442,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6986,20 +6986,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7063,7 +7063,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7366,7 +7366,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/pt_BR.po b/po/pt_BR.po index 718fb844d1a6..f17f4ea36bf3 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Renato dos Santos \n" "Language-Team: Portuguese (Brazil) ,=: %s" msgid "Bad key/value pair: %s" msgstr "par de chave/valor inválido %s" -#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:129 +#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:151 #, fuzzy, c-format msgid "Bad key=value pair: %q" msgstr "par de chave=valor inválido %s" @@ -1489,7 +1489,7 @@ msgstr "Definir um algoritmo de compressão: para imagem ou nenhum" msgid "Config key/value to apply to the new instance" msgstr "Configuração chave/valor para aplicar ao novo contêiner" -#: lxc/project.go:95 +#: lxc/project.go:100 msgid "Config key/value to apply to the new project" msgstr "" @@ -1504,7 +1504,7 @@ msgstr "Configuração chave/valor para aplicar ao novo contêiner" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format @@ -1825,7 +1825,7 @@ msgstr "" #: lxc/network_acl.go:148 lxc/network_forward.go:149 #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 -#: lxc/profile.go:678 lxc/project.go:505 lxc/storage.go:646 +#: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 #: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" @@ -1939,7 +1939,7 @@ msgstr "" msgid "Delete profiles" msgstr "" -#: lxc/project.go:157 lxc/project.go:158 +#: lxc/project.go:180 lxc/project.go:181 msgid "Delete projects" msgstr "Apagar projetos" @@ -2040,9 +2040,9 @@ msgstr "" #: lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 #: lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 #: lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 -#: lxc/project.go:93 lxc/project.go:158 lxc/project.go:221 lxc/project.go:349 -#: lxc/project.go:410 lxc/project.go:523 lxc/project.go:580 lxc/project.go:659 -#: lxc/project.go:690 lxc/project.go:743 lxc/project.go:802 lxc/publish.go:33 +#: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 +#: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 +#: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 #: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 #: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 #: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 @@ -2324,7 +2324,7 @@ msgstr "Editar configurações de rede como YAML" msgid "Edit profile configurations as YAML" msgstr "Editar configurações de perfil como YAML" -#: lxc/project.go:220 lxc/project.go:221 +#: lxc/project.go:243 lxc/project.go:244 #, fuzzy msgid "Edit project configurations as YAML" msgstr "Editar configurações de perfil como YAML" @@ -2407,7 +2407,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:634 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, fuzzy, c-format msgid "Error setting properties: %v" @@ -2421,7 +2421,7 @@ msgstr "Editar propriedades da imagem" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 #: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 -#: lxc/profile.go:870 lxc/project.go:628 lxc/storage.go:721 +#: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format @@ -2761,8 +2761,8 @@ msgstr "" #: lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 -#: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:412 -#: lxc/project.go:804 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 +#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2829,7 +2829,7 @@ msgstr "" msgid "Get UEFI variables for instance" msgstr "Adicionar perfis aos containers" -#: lxc/project.go:801 lxc/project.go:802 +#: lxc/project.go:824 lxc/project.go:825 msgid "Get a summary of resource allocations" msgstr "" @@ -2883,7 +2883,7 @@ msgstr "Editar configurações de perfil como YAML" msgid "Get the key as a profile property" msgstr "" -#: lxc/project.go:353 +#: lxc/project.go:376 msgid "Get the key as a project property" msgstr "" @@ -2958,7 +2958,7 @@ msgstr "Editar configurações de perfil como YAML" msgid "Get values for profile configuration keys" msgstr "" -#: lxc/project.go:348 lxc/project.go:349 +#: lxc/project.go:371 lxc/project.go:372 #, fuzzy msgid "Get values for project configuration keys" msgstr "Editar configurações de perfil como YAML" @@ -3054,7 +3054,7 @@ msgstr "" msgid "IDENTIFIER" msgstr "" -#: lxc/project.go:499 +#: lxc/project.go:522 msgid "IMAGES" msgstr "" @@ -3384,7 +3384,7 @@ msgstr "" msgid "LAST USED AT" msgstr "" -#: lxc/project.go:863 +#: lxc/project.go:886 msgid "LIMIT" msgstr "" @@ -3694,7 +3694,7 @@ msgstr "" msgid "List profiles" msgstr "" -#: lxc/project.go:409 lxc/project.go:410 +#: lxc/project.go:432 lxc/project.go:433 msgid "List projects" msgstr "" @@ -4288,8 +4288,8 @@ msgstr "" msgid "Missing profile name" msgstr "" -#: lxc/project.go:118 lxc/project.go:187 lxc/project.go:269 lxc/project.go:373 -#: lxc/project.go:547 lxc/project.go:607 lxc/project.go:714 lxc/project.go:827 +#: lxc/project.go:138 lxc/project.go:210 lxc/project.go:292 lxc/project.go:396 +#: lxc/project.go:570 lxc/project.go:630 lxc/project.go:737 lxc/project.go:850 msgid "Missing project name" msgstr "" @@ -4416,7 +4416,7 @@ msgstr "" #: lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 -#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:498 +#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 #: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" @@ -4426,11 +4426,11 @@ msgstr "" msgid "NAT" msgstr "" -#: lxc/project.go:504 +#: lxc/project.go:527 msgid "NETWORK ZONES" msgstr "" -#: lxc/project.go:503 +#: lxc/project.go:526 msgid "NETWORKS" msgstr "" @@ -4442,9 +4442,9 @@ msgstr "" msgid "NICs:" msgstr "" -#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:456 -#: lxc/project.go:461 lxc/project.go:466 lxc/project.go:471 lxc/project.go:476 -#: lxc/project.go:481 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 +#: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 +#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 msgid "NO" msgstr "" @@ -4736,7 +4736,7 @@ msgstr "" msgid "PROCESSES" msgstr "" -#: lxc/list.go:567 lxc/project.go:500 +#: lxc/list.go:567 lxc/project.go:523 msgid "PROFILES" msgstr "" @@ -4814,7 +4814,7 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" @@ -4911,17 +4911,17 @@ msgstr "Copiar perfis" msgid "Profiles: " msgstr "Copiar perfis" -#: lxc/project.go:141 +#: lxc/project.go:164 #, c-format msgid "Project %s created" msgstr "" -#: lxc/project.go:197 +#: lxc/project.go:220 #, c-format msgid "Project %s deleted" msgstr "" -#: lxc/project.go:562 +#: lxc/project.go:585 #, c-format msgid "Project %s renamed to %s" msgstr "" @@ -5069,7 +5069,7 @@ msgstr "" msgid "Query virtual machine images" msgstr "" -#: lxc/project.go:862 +#: lxc/project.go:885 msgid "RESOURCE" msgstr "" @@ -5123,7 +5123,7 @@ msgstr "" msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:769 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 +#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 #: lxc/remote.go:961 #, c-format msgid "Remote %s doesn't exist" @@ -5308,7 +5308,7 @@ msgstr "" msgid "Rename profiles" msgstr "" -#: lxc/project.go:522 lxc/project.go:523 +#: lxc/project.go:545 lxc/project.go:546 msgid "Rename projects" msgstr "" @@ -5475,7 +5475,7 @@ msgstr "" msgid "STATUS" msgstr "" -#: lxc/project.go:502 +#: lxc/project.go:525 msgid "STORAGE BUCKETS" msgstr "" @@ -5483,7 +5483,7 @@ msgstr "" msgid "STORAGE POOL" msgstr "" -#: lxc/project.go:501 +#: lxc/project.go:524 msgid "STORAGE VOLUMES" msgstr "" @@ -5682,12 +5682,12 @@ msgid "" " lxc profile set [:] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 #, fuzzy msgid "Set project configuration keys" msgstr "Editar configurações de perfil como YAML" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5793,7 +5793,7 @@ msgstr "Editar configurações de perfil como YAML" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5956,7 +5956,7 @@ msgstr "Editar configurações do container ou do servidor como YAML" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -6204,7 +6204,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -6367,7 +6367,7 @@ msgstr "Nome de membro do cluster" msgid "The property %q does not exist on the profile %q: %v" msgstr "Nome de membro do cluster" -#: lxc/project.go:386 +#: lxc/project.go:409 #, fuzzy, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "Nome de membro do cluster" @@ -6560,7 +6560,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6572,12 +6572,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6720,7 +6720,7 @@ msgstr "Editar configurações de perfil como YAML" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 #, fuzzy msgid "Unset project configuration keys" msgstr "Editar configurações de perfil como YAML" @@ -6780,7 +6780,7 @@ msgstr "Editar configurações de perfil como YAML" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6944,9 +6944,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6983,7 +6983,7 @@ msgstr "Criar perfis" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -7587,21 +7587,21 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 #, fuzzy msgid "[:]" msgstr "Criar projetos" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7676,7 +7676,7 @@ msgstr "Criar perfis" msgid "[[:]]" msgstr "Editar templates de arquivo do container" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7979,7 +7979,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/ru.po b/po/ru.po index 8ef31d51d279..9ca1c05db73b 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Александр Киль \n" "Language-Team: Russian :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5782,7 +5782,7 @@ msgstr "Копирование образа: %s" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5942,7 +5942,7 @@ msgstr "Копирование образа: %s" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -6353,7 +6353,7 @@ msgstr "Копирование образа: %s" msgid "The property %q does not exist on the profile %q: %v" msgstr "Копирование образа: %s" -#: lxc/project.go:386 +#: lxc/project.go:409 #, fuzzy, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "Копирование образа: %s" @@ -6545,7 +6545,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6557,12 +6557,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6699,7 +6699,7 @@ msgstr "Копирование образа: %s" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6758,7 +6758,7 @@ msgstr "Копирование образа: %s" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6924,9 +6924,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6970,7 +6970,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 #, fuzzy msgid "[:]" @@ -8010,8 +8010,8 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 #, fuzzy msgid "[:]" msgstr "" @@ -8019,7 +8019,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 #, fuzzy msgid "[:] " msgstr "" @@ -8027,7 +8027,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/project.go:578 +#: lxc/project.go:601 #, fuzzy msgid "[:] =..." msgstr "" @@ -8035,7 +8035,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/project.go:520 +#: lxc/project.go:543 #, fuzzy msgid "[:] " msgstr "" @@ -8163,7 +8163,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -8466,7 +8466,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/si.po b/po/si.po index c60c895eb919..9cfdc70dc8d1 100644 --- a/po/si.po +++ b/po/si.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Sinhala :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/sl.po b/po/sl.po index fb0fdbe5f137..f885e1db7723 100644 --- a/po/sl.po +++ b/po/sl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Slovenian :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5315,7 +5315,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5460,7 +5460,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5702,7 +5702,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5861,7 +5861,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6051,7 +6051,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6063,12 +6063,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6195,7 +6195,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6247,7 +6247,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6408,9 +6408,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6446,7 +6446,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6990,20 +6990,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7067,7 +7067,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7370,7 +7370,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/sr.po b/po/sr.po index e5fe3d19bcab..690e8fe34e87 100644 --- a/po/sr.po +++ b/po/sr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5315,7 +5315,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5460,7 +5460,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5702,7 +5702,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5861,7 +5861,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6051,7 +6051,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6063,12 +6063,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6195,7 +6195,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6247,7 +6247,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6408,9 +6408,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6446,7 +6446,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6990,20 +6990,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7067,7 +7067,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7370,7 +7370,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/sv.po b/po/sv.po index e983acb6d20c..3e28b8949bdc 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Swedish :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/te.po b/po/te.po index 7fc285ad21af..fbcdead74135 100644 --- a/po/te.po +++ b/po/te.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Telugu :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/th.po b/po/th.po index 1c38a21c29be..c8cf72f3d5ab 100644 --- a/po/th.po +++ b/po/th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -388,7 +388,7 @@ msgid "" "### Note that the name is shown but cannot be changed" msgstr "" -#: lxc/project.go:233 +#: lxc/project.go:256 msgid "" "### This is a YAML representation of the project.\n" "### Any line starting with a '# will be ignored.\n" @@ -871,7 +871,7 @@ msgstr "" msgid "Bad key/value pair: %s" msgstr "" -#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:129 +#: lxc/copy.go:139 lxc/init.go:232 lxc/move.go:380 lxc/project.go:151 #, c-format msgid "Bad key=value pair: %q" msgstr "" @@ -1199,7 +1199,7 @@ msgstr "" msgid "Config key/value to apply to the new instance" msgstr "" -#: lxc/project.go:95 +#: lxc/project.go:100 msgid "Config key/value to apply to the new project" msgstr "" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:315 lxc/storage.go:310 lxc/storage_bucket.go:343 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format @@ -1515,7 +1515,7 @@ msgstr "" #: lxc/network_acl.go:148 lxc/network_forward.go:149 #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 -#: lxc/profile.go:678 lxc/project.go:505 lxc/storage.go:646 +#: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 #: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" @@ -1617,7 +1617,7 @@ msgstr "" msgid "Delete profiles" msgstr "" -#: lxc/project.go:157 lxc/project.go:158 +#: lxc/project.go:180 lxc/project.go:181 msgid "Delete projects" msgstr "" @@ -1717,9 +1717,9 @@ msgstr "" #: lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 #: lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 #: lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 -#: lxc/project.go:93 lxc/project.go:158 lxc/project.go:221 lxc/project.go:349 -#: lxc/project.go:410 lxc/project.go:523 lxc/project.go:580 lxc/project.go:659 -#: lxc/project.go:690 lxc/project.go:743 lxc/project.go:802 lxc/publish.go:33 +#: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 +#: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 +#: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 #: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 #: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 #: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 @@ -1979,7 +1979,7 @@ msgstr "" msgid "Edit profile configurations as YAML" msgstr "" -#: lxc/project.go:220 lxc/project.go:221 +#: lxc/project.go:243 lxc/project.go:244 msgid "Edit project configurations as YAML" msgstr "" @@ -2059,7 +2059,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:634 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2073,7 +2073,7 @@ msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 #: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 -#: lxc/profile.go:870 lxc/project.go:628 lxc/storage.go:721 +#: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format @@ -2411,8 +2411,8 @@ msgstr "" #: lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 -#: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:412 -#: lxc/project.go:804 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 +#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2478,7 +2478,7 @@ msgstr "" msgid "Get UEFI variables for instance" msgstr "" -#: lxc/project.go:801 lxc/project.go:802 +#: lxc/project.go:824 lxc/project.go:825 msgid "Get a summary of resource allocations" msgstr "" @@ -2526,7 +2526,7 @@ msgstr "" msgid "Get the key as a profile property" msgstr "" -#: lxc/project.go:353 +#: lxc/project.go:376 msgid "Get the key as a project property" msgstr "" @@ -2590,7 +2590,7 @@ msgstr "" msgid "Get values for profile configuration keys" msgstr "" -#: lxc/project.go:348 lxc/project.go:349 +#: lxc/project.go:371 lxc/project.go:372 msgid "Get values for project configuration keys" msgstr "" @@ -2684,7 +2684,7 @@ msgstr "" msgid "IDENTIFIER" msgstr "" -#: lxc/project.go:499 +#: lxc/project.go:522 msgid "IMAGES" msgstr "" @@ -3010,7 +3010,7 @@ msgstr "" msgid "LAST USED AT" msgstr "" -#: lxc/project.go:863 +#: lxc/project.go:886 msgid "LIMIT" msgstr "" @@ -3311,7 +3311,7 @@ msgstr "" msgid "List profiles" msgstr "" -#: lxc/project.go:409 lxc/project.go:410 +#: lxc/project.go:432 lxc/project.go:433 msgid "List projects" msgstr "" @@ -3863,8 +3863,8 @@ msgstr "" msgid "Missing profile name" msgstr "" -#: lxc/project.go:118 lxc/project.go:187 lxc/project.go:269 lxc/project.go:373 -#: lxc/project.go:547 lxc/project.go:607 lxc/project.go:714 lxc/project.go:827 +#: lxc/project.go:138 lxc/project.go:210 lxc/project.go:292 lxc/project.go:396 +#: lxc/project.go:570 lxc/project.go:630 lxc/project.go:737 lxc/project.go:850 msgid "Missing project name" msgstr "" @@ -3988,7 +3988,7 @@ msgstr "" #: lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 -#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:498 +#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 #: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" @@ -3998,11 +3998,11 @@ msgstr "" msgid "NAT" msgstr "" -#: lxc/project.go:504 +#: lxc/project.go:527 msgid "NETWORK ZONES" msgstr "" -#: lxc/project.go:503 +#: lxc/project.go:526 msgid "NETWORKS" msgstr "" @@ -4014,9 +4014,9 @@ msgstr "" msgid "NICs:" msgstr "" -#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:456 -#: lxc/project.go:461 lxc/project.go:466 lxc/project.go:471 lxc/project.go:476 -#: lxc/project.go:481 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 +#: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 +#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 msgid "NO" msgstr "" @@ -4308,7 +4308,7 @@ msgstr "" msgid "PROCESSES" msgstr "" -#: lxc/list.go:567 lxc/project.go:500 +#: lxc/list.go:567 lxc/project.go:523 msgid "PROFILES" msgstr "" @@ -4385,7 +4385,7 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:316 lxc/storage.go:311 lxc/storage_bucket.go:344 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" @@ -4477,17 +4477,17 @@ msgstr "" msgid "Profiles: " msgstr "" -#: lxc/project.go:141 +#: lxc/project.go:164 #, c-format msgid "Project %s created" msgstr "" -#: lxc/project.go:197 +#: lxc/project.go:220 #, c-format msgid "Project %s deleted" msgstr "" -#: lxc/project.go:562 +#: lxc/project.go:585 #, c-format msgid "Project %s renamed to %s" msgstr "" @@ -4634,7 +4634,7 @@ msgstr "" msgid "Query virtual machine images" msgstr "" -#: lxc/project.go:862 +#: lxc/project.go:885 msgid "RESOURCE" msgstr "" @@ -4686,7 +4686,7 @@ msgstr "" msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:769 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 +#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 #: lxc/remote.go:961 #, c-format msgid "Remote %s doesn't exist" @@ -4854,7 +4854,7 @@ msgstr "" msgid "Rename profiles" msgstr "" -#: lxc/project.go:522 lxc/project.go:523 +#: lxc/project.go:545 lxc/project.go:546 msgid "Rename projects" msgstr "" @@ -5011,7 +5011,7 @@ msgstr "" msgid "STATUS" msgstr "" -#: lxc/project.go:502 +#: lxc/project.go:525 msgid "STORAGE BUCKETS" msgstr "" @@ -5019,7 +5019,7 @@ msgstr "" msgid "STORAGE POOL" msgstr "" -#: lxc/project.go:501 +#: lxc/project.go:524 msgid "STORAGE VOLUMES" msgstr "" @@ -5207,11 +5207,11 @@ msgid "" " lxc profile set [:] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5311,7 +5311,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5456,7 +5456,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5698,7 +5698,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5857,7 +5857,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6047,7 +6047,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6059,12 +6059,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6191,7 +6191,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6243,7 +6243,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6404,9 +6404,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6442,7 +6442,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6986,20 +6986,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7063,7 +7063,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7366,7 +7366,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/tr.po b/po/tr.po index 99ab7a55ff4f..ea2d127c44e0 100644 --- a/po/tr.po +++ b/po/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Turkish :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/tzm.po b/po/tzm.po index e9ceb2ba3fc7..19a44a6cbb2d 100644 --- a/po/tzm.po +++ b/po/tzm.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Tamazight (Central Atlas) :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/ug.po b/po/ug.po index f8f6e5d4c070..5551b8c71f5a 100644 --- a/po/ug.po +++ b/po/ug.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Uyghur :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/uk.po b/po/uk.po index 094da7604e35..07a1536d38a7 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Ukrainian :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5315,7 +5315,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5460,7 +5460,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5702,7 +5702,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5861,7 +5861,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6051,7 +6051,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6063,12 +6063,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6195,7 +6195,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6247,7 +6247,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6408,9 +6408,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6446,7 +6446,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6990,20 +6990,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7067,7 +7067,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7370,7 +7370,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/zh_Hans.po b/po/zh_Hans.po index c1dcf95590d3..e45a6f0d2662 100644 --- a/po/zh_Hans.po +++ b/po/zh_Hans.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: 0x0916 \n" "Language-Team: Chinese (Simplified) :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5475,7 +5475,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5620,7 +5620,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5862,7 +5862,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -6021,7 +6021,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6211,7 +6211,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6223,12 +6223,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6355,7 +6355,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6407,7 +6407,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6568,9 +6568,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6606,7 +6606,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -7150,20 +7150,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7227,7 +7227,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7530,7 +7530,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" diff --git a/po/zh_Hant.po b/po/zh_Hant.po index 456078376fbc..d5f3a42bebae 100644 --- a/po/zh_Hant.po +++ b/po/zh_Hant.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-12 13:29+0200\n" +"POT-Creation-Date: 2024-08-23 13:08+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Traditional) :] " msgstr "" -#: lxc/project.go:579 +#: lxc/project.go:602 msgid "Set project configuration keys" msgstr "" -#: lxc/project.go:580 +#: lxc/project.go:603 msgid "" "Set project configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a profile property" msgstr "" -#: lxc/project.go:587 +#: lxc/project.go:610 msgid "Set the key as a project property" msgstr "" @@ -5459,7 +5459,7 @@ msgstr "" msgid "Show profile configurations" msgstr "" -#: lxc/project.go:689 lxc/project.go:690 +#: lxc/project.go:712 lxc/project.go:713 msgid "Show project options" msgstr "" @@ -5701,7 +5701,7 @@ msgstr "" msgid "Swap (peak)" msgstr "" -#: lxc/project.go:742 lxc/project.go:743 +#: lxc/project.go:765 lxc/project.go:766 msgid "Switch the current project" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the profile %q: %v" msgstr "" -#: lxc/project.go:386 +#: lxc/project.go:409 #, c-format msgid "The property %q does not exist on the project %q: %v" msgstr "" @@ -6050,7 +6050,7 @@ msgstr "" msgid "Type: %s (ephemeral)" msgstr "" -#: lxc/project.go:840 +#: lxc/project.go:863 msgid "UNLIMITED" msgstr "" @@ -6062,12 +6062,12 @@ msgstr "" msgid "URL" msgstr "" -#: lxc/project.go:864 lxc/storage_volume.go:1565 +#: lxc/project.go:887 lxc/storage_volume.go:1565 msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:506 +#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset profile configuration keys" msgstr "" -#: lxc/project.go:658 lxc/project.go:659 +#: lxc/project.go:681 lxc/project.go:682 msgid "Unset project configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a profile property" msgstr "" -#: lxc/project.go:663 +#: lxc/project.go:686 msgid "Unset the key as a project property" msgstr "" @@ -6407,9 +6407,9 @@ msgid "" "re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:458 -#: lxc/project.go:463 lxc/project.go:468 lxc/project.go:473 lxc/project.go:478 -#: lxc/project.go:483 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 +#: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 +#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 msgid "YES" msgstr "" @@ -6445,7 +6445,7 @@ msgstr "" #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 #: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 -#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:407 +#: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6989,20 +6989,20 @@ msgstr "" msgid "[:] [:]" msgstr "" -#: lxc/project.go:91 lxc/project.go:155 lxc/project.go:219 lxc/project.go:688 -#: lxc/project.go:741 +#: lxc/project.go:91 lxc/project.go:178 lxc/project.go:242 lxc/project.go:711 +#: lxc/project.go:764 msgid "[:]" msgstr "" -#: lxc/project.go:347 lxc/project.go:657 lxc/project.go:800 +#: lxc/project.go:370 lxc/project.go:680 lxc/project.go:823 msgid "[:] " msgstr "" -#: lxc/project.go:578 +#: lxc/project.go:601 msgid "[:] =..." msgstr "" -#: lxc/project.go:520 +#: lxc/project.go:543 msgid "[:] " msgstr "" @@ -7066,7 +7066,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:488 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:738 msgid "current" msgstr "" @@ -7369,7 +7369,15 @@ msgid "" " Update a profile using the content of profile.yaml" msgstr "" -#: lxc/project.go:223 +#: lxc/project.go:95 +msgid "" +"lxc project create p1\n" +"\n" +"lxc project create p1 < config.yaml\n" +" Create a project with configuration from config.yaml" +msgstr "" + +#: lxc/project.go:246 msgid "" "lxc project edit < project.yaml\n" " Update a project using the content of project.yaml" From 128f9de96d5db0fd19a7078ef9e7c3421d706e17 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Fri, 23 Aug 2024 14:26:09 +0200 Subject: [PATCH 079/169] lxc: fix `printf: non-constant format string in call to fmt.Fprintf (govet)` lint error Signed-off-by: Gabriel Mougard --- lxc/main.go | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/lxc/main.go b/lxc/main.go index 8a6624a3b305..f95e710350f6 100644 --- a/lxc/main.go +++ b/lxc/main.go @@ -2,6 +2,7 @@ package main import ( "bufio" + "errors" "fmt" "os" "os/user" @@ -290,11 +291,12 @@ For help with any of those, simply call them with --help.`)) if err != nil { // Handle non-Linux systems if err == config.ErrNotLinux { - fmt.Fprintf(os.Stderr, i18n.G(`This client hasn't been configured to use a remote LXD server yet. + msg := i18n.G(`This client hasn't been configured to use a remote LXD server yet. As your platform can't run native Linux instances, you must connect to a remote LXD server. If you already added a remote server, make it the default with "lxc remote switch NAME". -To easily setup a local LXD server in a virtual machine, consider using: https://multipass.run`)+"\n") +To easily setup a local LXD server in a virtual machine, consider using: https://multipass.run`) + fmt.Fprintln(os.Stderr, msg) os.Exit(1) } @@ -395,13 +397,15 @@ func (c *cmdGlobal) PreRun(cmd *cobra.Command, args []string) error { flush := false if runInit { - fmt.Fprintf(os.Stderr, i18n.G("If this is your first time running LXD on this machine, you should also run: lxd init")+"\n") + msg := i18n.G("If this is your first time running LXD on this machine, you should also run: lxd init") + fmt.Fprintln(os.Stderr, msg) flush = true } if !shared.ValueInSlice(cmd.Name(), []string{"init", "launch"}) { - fmt.Fprintf(os.Stderr, i18n.G(`To start your first container, try: lxc launch ubuntu:24.04 -Or for a virtual machine: lxc launch ubuntu:24.04 --vm`)+"\n") + msg := i18n.G(`To start your first container, try: lxc launch ubuntu:24.04 +Or for a virtual machine: lxc launch ubuntu:24.04 --vm`) + fmt.Fprintln(os.Stderr, msg) flush = true } @@ -495,7 +499,8 @@ func (c *cmdGlobal) CheckArgs(cmd *cobra.Command, args []string, minArgs int, ma return true, nil } - return true, fmt.Errorf(i18n.G("Invalid number of arguments")) + msg := i18n.G("Invalid number of arguments") + return true, errors.New(msg) } return false, nil From fd011a2d1acc0d3ce41e46a3c8e21331678419d1 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 10:53:59 +0100 Subject: [PATCH 080/169] lxd: Handle effective projects for profiles. Adds the effective project to the request context for all profile related requests. This follows the pattern in storage volumes and storage buckets, whereby details about the profile that are needed for the access check are added to the request context so that they do not need to be recalculated. Signed-off-by: Mark Laing --- lxd/profiles.go | 143 +++++++++++++++++++++++++++++------------------- 1 file changed, 88 insertions(+), 55 deletions(-) diff --git a/lxd/profiles.go b/lxd/profiles.go index 3526076b9140..22318f55f538 100644 --- a/lxd/profiles.go +++ b/lxd/profiles.go @@ -25,6 +25,7 @@ import ( "github.com/canonical/lxd/lxd/project" "github.com/canonical/lxd/lxd/request" "github.com/canonical/lxd/lxd/response" + "github.com/canonical/lxd/lxd/state" "github.com/canonical/lxd/lxd/util" "github.com/canonical/lxd/shared" "github.com/canonical/lxd/shared/api" @@ -43,11 +44,68 @@ var profilesCmd = APIEndpoint{ var profileCmd = APIEndpoint{ Path: "profiles/{name}", - Delete: APIEndpointAction{Handler: profileDelete, AccessHandler: allowPermission(entity.TypeProfile, auth.EntitlementCanDelete, "name")}, - Get: APIEndpointAction{Handler: profileGet, AccessHandler: allowPermission(entity.TypeProfile, auth.EntitlementCanView, "name")}, - Patch: APIEndpointAction{Handler: profilePatch, AccessHandler: allowPermission(entity.TypeProfile, auth.EntitlementCanEdit, "name")}, - Post: APIEndpointAction{Handler: profilePost, AccessHandler: allowPermission(entity.TypeProfile, auth.EntitlementCanEdit, "name")}, - Put: APIEndpointAction{Handler: profilePut, AccessHandler: allowPermission(entity.TypeProfile, auth.EntitlementCanEdit, "name")}, + Delete: APIEndpointAction{Handler: profileDelete, AccessHandler: profileAccessHandler(auth.EntitlementCanDelete)}, + Get: APIEndpointAction{Handler: profileGet, AccessHandler: profileAccessHandler(auth.EntitlementCanView)}, + Patch: APIEndpointAction{Handler: profilePatch, AccessHandler: profileAccessHandler(auth.EntitlementCanEdit)}, + Post: APIEndpointAction{Handler: profilePost, AccessHandler: profileAccessHandler(auth.EntitlementCanEdit)}, + Put: APIEndpointAction{Handler: profilePut, AccessHandler: profileAccessHandler(auth.EntitlementCanEdit)}, +} + +// ctxProfileDetails should be used only for getting/setting profileDetails in the request context. +const ctxProfileDetails request.CtxKey = "profile-details" + +// profileDetails contains fields that are determined prior to the access check. This is set in the request context when +// addProfileDetailsToRequestContext is called. +type profileDetails struct { + profileName string + effectiveProject api.Project +} + +// addProfileDetailsToRequestContext sets request.CtxEffectiveProjectName (string) and ctxProfileDetails (profileDetails) +// in the request context. +func addProfileDetailsToRequestContext(s *state.State, r *http.Request) error { + profileName, err := url.PathUnescape(mux.Vars(r)["name"]) + if err != nil { + return err + } + + requestProjectName := request.ProjectParam(r) + effectiveProject, err := project.ProfileProject(s.DB.Cluster, requestProjectName) + if err != nil { + return fmt.Errorf("Failed to check project %q profile feature: %w", requestProjectName, err) + } + + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProject.Name) + request.SetCtxValue(r, ctxProfileDetails, profileDetails{ + profileName: profileName, + effectiveProject: *effectiveProject, + }) + + return nil +} + +// profileAccessHandler calls addProfileDetailsToRequestContext, then uses the details to perform an access check with +// the given auth.Entitlement. +func profileAccessHandler(entitlement auth.Entitlement) func(d *Daemon, r *http.Request) response.Response { + return func(d *Daemon, r *http.Request) response.Response { + s := d.State() + err := addProfileDetailsToRequestContext(s, r) + if err != nil { + return response.SmartError(err) + } + + details, err := request.GetCtxValue[profileDetails](r.Context(), ctxProfileDetails) + if err != nil { + return response.SmartError(err) + } + + err = s.Authorizer.CheckPermission(r.Context(), entity.ProfileURL(request.ProjectParam(r), details.profileName), entitlement) + if err != nil { + return response.SmartError(err) + } + + return response.EmptySyncResponse + } } // swagger:operation GET /1.0/profiles profiles profiles_get @@ -391,12 +449,7 @@ func profilesPost(d *Daemon, r *http.Request) response.Response { func profileGet(d *Daemon, r *http.Request) response.Response { s := d.State() - p, err := project.ProfileProject(s.DB.Cluster, request.ProjectParam(r)) - if err != nil { - return response.SmartError(err) - } - - name, err := url.PathUnescape(mux.Vars(r)["name"]) + details, err := request.GetCtxValue[profileDetails](r.Context(), ctxProfileDetails) if err != nil { return response.SmartError(err) } @@ -404,7 +457,7 @@ func profileGet(d *Daemon, r *http.Request) response.Response { var resp *api.Profile err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - profile, err := dbCluster.GetProfile(ctx, tx.Tx(), p.Name, name) + profile, err := dbCluster.GetProfile(ctx, tx.Tx(), details.effectiveProject.Name, details.profileName) if err != nil { return fmt.Errorf("Fetch profile: %w", err) } @@ -468,12 +521,7 @@ func profileGet(d *Daemon, r *http.Request) response.Response { func profilePut(d *Daemon, r *http.Request) response.Response { s := d.State() - p, err := project.ProfileProject(s.DB.Cluster, request.ProjectParam(r)) - if err != nil { - return response.SmartError(err) - } - - name, err := url.PathUnescape(mux.Vars(r)["name"]) + details, err := request.GetCtxValue[profileDetails](r.Context(), ctxProfileDetails) if err != nil { return response.SmartError(err) } @@ -487,7 +535,7 @@ func profilePut(d *Daemon, r *http.Request) response.Response { return response.BadRequest(err) } - err = doProfileUpdateCluster(s, p.Name, name, old) + err = doProfileUpdateCluster(s, details.effectiveProject.Name, details.profileName, old) return response.SmartError(err) } @@ -495,9 +543,9 @@ func profilePut(d *Daemon, r *http.Request) response.Response { var profile *api.Profile err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - current, err := dbCluster.GetProfile(ctx, tx.Tx(), p.Name, name) + current, err := dbCluster.GetProfile(ctx, tx.Tx(), details.effectiveProject.Name, details.profileName) if err != nil { - return fmt.Errorf("Failed to retrieve profile %q: %w", name, err) + return fmt.Errorf("Failed to retrieve profile %q: %w", details.profileName, err) } profile, err = current.ToAPI(ctx, tx.Tx()) @@ -526,7 +574,7 @@ func profilePut(d *Daemon, r *http.Request) response.Response { return response.BadRequest(err) } - err = doProfileUpdate(s, *p, name, id, profile, req) + err = doProfileUpdate(s, details.effectiveProject, details.profileName, id, profile, req) if err == nil && !isClusterNotification(r) { // Notify all other nodes. If a node is down, it will be ignored. @@ -536,7 +584,7 @@ func profilePut(d *Daemon, r *http.Request) response.Response { } err = notifier(func(client lxd.InstanceServer) error { - return client.UseProject(p.Name).UpdateProfile(name, profile.Writable(), "") + return client.UseProject(details.effectiveProject.Name).UpdateProfile(details.profileName, profile.Writable(), "") }) if err != nil { return response.SmartError(err) @@ -544,7 +592,7 @@ func profilePut(d *Daemon, r *http.Request) response.Response { } requestor := request.CreateRequestor(r) - s.Events.SendLifecycle(p.Name, lifecycle.ProfileUpdated.Event(name, p.Name, requestor, nil)) + s.Events.SendLifecycle(details.effectiveProject.Name, lifecycle.ProfileUpdated.Event(details.profileName, details.effectiveProject.Name, requestor, nil)) return response.SmartError(err) } @@ -586,12 +634,7 @@ func profilePut(d *Daemon, r *http.Request) response.Response { func profilePatch(d *Daemon, r *http.Request) response.Response { s := d.State() - p, err := project.ProfileProject(s.DB.Cluster, request.ProjectParam(r)) - if err != nil { - return response.SmartError(err) - } - - name, err := url.PathUnescape(mux.Vars(r)["name"]) + details, err := request.GetCtxValue[profileDetails](r.Context(), ctxProfileDetails) if err != nil { return response.SmartError(err) } @@ -600,9 +643,9 @@ func profilePatch(d *Daemon, r *http.Request) response.Response { var profile *api.Profile err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - current, err := dbCluster.GetProfile(ctx, tx.Tx(), p.Name, name) + current, err := dbCluster.GetProfile(ctx, tx.Tx(), details.effectiveProject.Name, details.profileName) if err != nil { - return fmt.Errorf("Failed to retrieve profile=%q: %w", name, err) + return fmt.Errorf("Failed to retrieve profile=%q: %w", details.profileName, err) } profile, err = current.ToAPI(ctx, tx.Tx()) @@ -676,9 +719,9 @@ func profilePatch(d *Daemon, r *http.Request) response.Response { } requestor := request.CreateRequestor(r) - s.Events.SendLifecycle(p.Name, lifecycle.ProfileUpdated.Event(name, p.Name, requestor, nil)) + s.Events.SendLifecycle(details.effectiveProject.Name, lifecycle.ProfileUpdated.Event(details.profileName, details.effectiveProject.Name, requestor, nil)) - return response.SmartError(doProfileUpdate(s, *p, name, id, profile, req)) + return response.SmartError(doProfileUpdate(s, details.effectiveProject, details.profileName, id, profile, req)) } // swagger:operation POST /1.0/profiles/{name} profiles profile_post @@ -716,17 +759,12 @@ func profilePatch(d *Daemon, r *http.Request) response.Response { func profilePost(d *Daemon, r *http.Request) response.Response { s := d.State() - p, err := project.ProfileProject(s.DB.Cluster, request.ProjectParam(r)) - if err != nil { - return response.SmartError(err) - } - - name, err := url.PathUnescape(mux.Vars(r)["name"]) + details, err := request.GetCtxValue[profileDetails](r.Context(), ctxProfileDetails) if err != nil { return response.SmartError(err) } - if name == "default" { + if details.profileName == "default" { return response.Forbidden(errors.New(`The "default" profile cannot be renamed`)) } @@ -751,20 +789,20 @@ func profilePost(d *Daemon, r *http.Request) response.Response { err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { // Check that the name isn't already in use. - _, err = dbCluster.GetProfile(ctx, tx.Tx(), p.Name, req.Name) + _, err = dbCluster.GetProfile(ctx, tx.Tx(), details.effectiveProject.Name, req.Name) if err == nil { return fmt.Errorf("Name %q already in use", req.Name) } - return dbCluster.RenameProfile(ctx, tx.Tx(), p.Name, name, req.Name) + return dbCluster.RenameProfile(ctx, tx.Tx(), details.effectiveProject.Name, details.profileName, req.Name) }) if err != nil { return response.SmartError(err) } requestor := request.CreateRequestor(r) - lc := lifecycle.ProfileRenamed.Event(req.Name, p.Name, requestor, logger.Ctx{"old_name": name}) - s.Events.SendLifecycle(p.Name, lc) + lc := lifecycle.ProfileRenamed.Event(req.Name, details.effectiveProject.Name, requestor, logger.Ctx{"old_name": details.profileName}) + s.Events.SendLifecycle(details.effectiveProject.Name, lc) return response.SyncResponseLocation(true, nil, lc.Source) } @@ -796,22 +834,17 @@ func profilePost(d *Daemon, r *http.Request) response.Response { func profileDelete(d *Daemon, r *http.Request) response.Response { s := d.State() - p, err := project.ProfileProject(s.DB.Cluster, request.ProjectParam(r)) - if err != nil { - return response.SmartError(err) - } - - name, err := url.PathUnescape(mux.Vars(r)["name"]) + details, err := request.GetCtxValue[profileDetails](r.Context(), ctxProfileDetails) if err != nil { return response.SmartError(err) } - if name == "default" { + if details.profileName == "default" { return response.Forbidden(errors.New(`The "default" profile cannot be deleted`)) } err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - profile, err := dbCluster.GetProfile(ctx, tx.Tx(), p.Name, name) + profile, err := dbCluster.GetProfile(ctx, tx.Tx(), details.effectiveProject.Name, details.profileName) if err != nil { return err } @@ -825,14 +858,14 @@ func profileDelete(d *Daemon, r *http.Request) response.Response { return fmt.Errorf("Profile is currently in use") } - return dbCluster.DeleteProfile(ctx, tx.Tx(), p.Name, name) + return dbCluster.DeleteProfile(ctx, tx.Tx(), details.effectiveProject.Name, details.profileName) }) if err != nil { return response.SmartError(err) } requestor := request.CreateRequestor(r) - s.Events.SendLifecycle(p.Name, lifecycle.ProfileDeleted.Event(name, p.Name, requestor, nil)) + s.Events.SendLifecycle(details.effectiveProject.Name, lifecycle.ProfileDeleted.Event(details.profileName, details.effectiveProject.Name, requestor, nil)) return response.EmptySyncResponse } From a6b53d16765aa171f6cc1961a5e32e8f227f597f Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 10:56:39 +0100 Subject: [PATCH 081/169] lxd: Handle effective projects for networks. Signed-off-by: Mark Laing --- lxd/network_forwards.go | 67 ++++++++++---------- lxd/network_load_balancers.go | 67 ++++++++++---------- lxd/network_peer.go | 67 ++++++++++---------- lxd/networks.go | 113 +++++++++++++++++++++++++--------- 4 files changed, 184 insertions(+), 130 deletions(-) diff --git a/lxd/network_forwards.go b/lxd/network_forwards.go index 12da78c3ad4a..21851c4bb038 100644 --- a/lxd/network_forwards.go +++ b/lxd/network_forwards.go @@ -19,24 +19,23 @@ import ( "github.com/canonical/lxd/lxd/response" "github.com/canonical/lxd/lxd/util" "github.com/canonical/lxd/shared/api" - "github.com/canonical/lxd/shared/entity" "github.com/canonical/lxd/shared/version" ) var networkForwardsCmd = APIEndpoint{ Path: "networks/{networkName}/forwards", - Get: APIEndpointAction{Handler: networkForwardsGet, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanView, "networkName")}, - Post: APIEndpointAction{Handler: networkForwardsPost, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, + Get: APIEndpointAction{Handler: networkForwardsGet, AccessHandler: networkAccessHandler(auth.EntitlementCanView)}, + Post: APIEndpointAction{Handler: networkForwardsPost, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, } var networkForwardCmd = APIEndpoint{ Path: "networks/{networkName}/forwards/{listenAddress}", - Delete: APIEndpointAction{Handler: networkForwardDelete, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, - Get: APIEndpointAction{Handler: networkForwardGet, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanView, "networkName")}, - Put: APIEndpointAction{Handler: networkForwardPut, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, - Patch: APIEndpointAction{Handler: networkForwardPut, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, + Delete: APIEndpointAction{Handler: networkForwardDelete, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, + Get: APIEndpointAction{Handler: networkForwardGet, AccessHandler: networkAccessHandler(auth.EntitlementCanView)}, + Put: APIEndpointAction{Handler: networkForwardPut, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, + Patch: APIEndpointAction{Handler: networkForwardPut, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, } // API endpoints @@ -136,23 +135,23 @@ var networkForwardCmd = APIEndpoint{ func networkForwardsGet(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -241,7 +240,12 @@ func networkForwardsPost(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) + if err != nil { + return response.SmartError(err) + } + + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } @@ -255,18 +259,13 @@ func networkForwardsPost(d *Daemon, r *http.Request) response.Response { req.Normalise() // So we handle the request in normalised/canonical form. - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) - if err != nil { - return response.SmartError(err) - } - - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -282,7 +281,7 @@ func networkForwardsPost(d *Daemon, r *http.Request) response.Response { } lc := lifecycle.NetworkForwardCreated.Event(n, listenAddress.String(), request.CreateRequestor(r), nil) - s.Events.SendLifecycle(projectName, lc) + s.Events.SendLifecycle(effectiveProjectName, lc) return response.SyncResponseLocation(true, nil, lc.Source) } @@ -319,23 +318,23 @@ func networkForwardDelete(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -355,7 +354,7 @@ func networkForwardDelete(d *Daemon, r *http.Request) response.Response { return response.SmartError(fmt.Errorf("Failed deleting forward: %w", err)) } - s.Events.SendLifecycle(projectName, lifecycle.NetworkForwardDeleted.Event(n, listenAddress, request.CreateRequestor(r), nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkForwardDeleted.Event(n, listenAddress, request.CreateRequestor(r), nil)) return response.EmptySyncResponse } @@ -408,23 +407,23 @@ func networkForwardGet(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -531,23 +530,23 @@ func networkForwardPut(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -607,7 +606,7 @@ func networkForwardPut(d *Daemon, r *http.Request) response.Response { return response.SmartError(fmt.Errorf("Failed updating forward: %w", err)) } - s.Events.SendLifecycle(projectName, lifecycle.NetworkForwardUpdated.Event(n, listenAddress, request.CreateRequestor(r), nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkForwardUpdated.Event(n, listenAddress, request.CreateRequestor(r), nil)) return response.EmptySyncResponse } diff --git a/lxd/network_load_balancers.go b/lxd/network_load_balancers.go index 89253cd96843..77f5c275a90e 100644 --- a/lxd/network_load_balancers.go +++ b/lxd/network_load_balancers.go @@ -19,24 +19,23 @@ import ( "github.com/canonical/lxd/lxd/response" "github.com/canonical/lxd/lxd/util" "github.com/canonical/lxd/shared/api" - "github.com/canonical/lxd/shared/entity" "github.com/canonical/lxd/shared/version" ) var networkLoadBalancersCmd = APIEndpoint{ Path: "networks/{networkName}/load-balancers", - Get: APIEndpointAction{Handler: networkLoadBalancersGet, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanView, "networkName")}, - Post: APIEndpointAction{Handler: networkLoadBalancersPost, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, + Get: APIEndpointAction{Handler: networkLoadBalancersGet, AccessHandler: networkAccessHandler(auth.EntitlementCanView)}, + Post: APIEndpointAction{Handler: networkLoadBalancersPost, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, } var networkLoadBalancerCmd = APIEndpoint{ Path: "networks/{networkName}/load-balancers/{listenAddress}", - Delete: APIEndpointAction{Handler: networkLoadBalancerDelete, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, - Get: APIEndpointAction{Handler: networkLoadBalancerGet, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanView, "networkName")}, - Put: APIEndpointAction{Handler: networkLoadBalancerPut, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, - Patch: APIEndpointAction{Handler: networkLoadBalancerPut, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, + Delete: APIEndpointAction{Handler: networkLoadBalancerDelete, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, + Get: APIEndpointAction{Handler: networkLoadBalancerGet, AccessHandler: networkAccessHandler(auth.EntitlementCanView)}, + Put: APIEndpointAction{Handler: networkLoadBalancerPut, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, + Patch: APIEndpointAction{Handler: networkLoadBalancerPut, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, } // API endpoints @@ -136,23 +135,23 @@ var networkLoadBalancerCmd = APIEndpoint{ func networkLoadBalancersGet(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -242,7 +241,12 @@ func networkLoadBalancersPost(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) + if err != nil { + return response.SmartError(err) + } + + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } @@ -256,18 +260,13 @@ func networkLoadBalancersPost(d *Daemon, r *http.Request) response.Response { req.Normalise() // So we handle the request in normalised/canonical form. - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) - if err != nil { - return response.SmartError(err) - } - - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -283,7 +282,7 @@ func networkLoadBalancersPost(d *Daemon, r *http.Request) response.Response { } lc := lifecycle.NetworkLoadBalancerCreated.Event(n, listenAddress.String(), request.CreateRequestor(r), nil) - s.Events.SendLifecycle(projectName, lc) + s.Events.SendLifecycle(effectiveProjectName, lc) return response.SyncResponseLocation(true, nil, lc.Source) } @@ -320,23 +319,23 @@ func networkLoadBalancerDelete(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -356,7 +355,7 @@ func networkLoadBalancerDelete(d *Daemon, r *http.Request) response.Response { return response.SmartError(fmt.Errorf("Failed deleting load balancer: %w", err)) } - s.Events.SendLifecycle(projectName, lifecycle.NetworkLoadBalancerDeleted.Event(n, listenAddress, request.CreateRequestor(r), nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkLoadBalancerDeleted.Event(n, listenAddress, request.CreateRequestor(r), nil)) return response.EmptySyncResponse } @@ -409,23 +408,23 @@ func networkLoadBalancerGet(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -532,23 +531,23 @@ func networkLoadBalancerPut(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -614,7 +613,7 @@ func networkLoadBalancerPut(d *Daemon, r *http.Request) response.Response { return response.SmartError(fmt.Errorf("Failed updating load balancer: %w", err)) } - s.Events.SendLifecycle(projectName, lifecycle.NetworkLoadBalancerUpdated.Event(n, listenAddress, request.CreateRequestor(r), nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkLoadBalancerUpdated.Event(n, listenAddress, request.CreateRequestor(r), nil)) return response.EmptySyncResponse } diff --git a/lxd/network_peer.go b/lxd/network_peer.go index c86af162501f..52c4e5633664 100644 --- a/lxd/network_peer.go +++ b/lxd/network_peer.go @@ -18,24 +18,23 @@ import ( "github.com/canonical/lxd/lxd/response" "github.com/canonical/lxd/lxd/util" "github.com/canonical/lxd/shared/api" - "github.com/canonical/lxd/shared/entity" "github.com/canonical/lxd/shared/version" ) var networkPeersCmd = APIEndpoint{ Path: "networks/{networkName}/peers", - Get: APIEndpointAction{Handler: networkPeersGet, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanView, "networkName")}, - Post: APIEndpointAction{Handler: networkPeersPost, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, + Get: APIEndpointAction{Handler: networkPeersGet, AccessHandler: networkAccessHandler(auth.EntitlementCanView)}, + Post: APIEndpointAction{Handler: networkPeersPost, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, } var networkPeerCmd = APIEndpoint{ Path: "networks/{networkName}/peers/{peerName}", - Delete: APIEndpointAction{Handler: networkPeerDelete, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, - Get: APIEndpointAction{Handler: networkPeerGet, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanView, "networkName")}, - Put: APIEndpointAction{Handler: networkPeerPut, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, - Patch: APIEndpointAction{Handler: networkPeerPut, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, + Delete: APIEndpointAction{Handler: networkPeerDelete, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, + Get: APIEndpointAction{Handler: networkPeerGet, AccessHandler: networkAccessHandler(auth.EntitlementCanView)}, + Put: APIEndpointAction{Handler: networkPeerPut, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, + Patch: APIEndpointAction{Handler: networkPeerPut, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, } // API endpoints @@ -135,23 +134,23 @@ var networkPeerCmd = APIEndpoint{ func networkPeersGet(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -242,7 +241,12 @@ func networkPeersPost(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) + if err != nil { + return response.SmartError(err) + } + + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } @@ -254,18 +258,13 @@ func networkPeersPost(d *Daemon, r *http.Request) response.Response { return response.BadRequest(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) - if err != nil { - return response.SmartError(err) - } - - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -279,7 +278,7 @@ func networkPeersPost(d *Daemon, r *http.Request) response.Response { } lc := lifecycle.NetworkPeerCreated.Event(n, req.Name, request.CreateRequestor(r), nil) - s.Events.SendLifecycle(projectName, lc) + s.Events.SendLifecycle(effectiveProjectName, lc) return response.SyncResponseLocation(true, nil, lc.Source) } @@ -316,23 +315,23 @@ func networkPeerDelete(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -350,7 +349,7 @@ func networkPeerDelete(d *Daemon, r *http.Request) response.Response { return response.SmartError(fmt.Errorf("Failed deleting peer: %w", err)) } - s.Events.SendLifecycle(projectName, lifecycle.NetworkPeerDeleted.Event(n, peerName, request.CreateRequestor(r), nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkPeerDeleted.Event(n, peerName, request.CreateRequestor(r), nil)) return response.EmptySyncResponse } @@ -403,23 +402,23 @@ func networkPeerGet(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -526,23 +525,23 @@ func networkPeerPut(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -567,7 +566,7 @@ func networkPeerPut(d *Daemon, r *http.Request) response.Response { return response.SmartError(fmt.Errorf("Failed updating peer: %w", err)) } - s.Events.SendLifecycle(projectName, lifecycle.NetworkPeerUpdated.Event(n, peerName, request.CreateRequestor(r), nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkPeerUpdated.Event(n, peerName, request.CreateRequestor(r), nil)) return response.EmptySyncResponse } diff --git a/lxd/networks.go b/lxd/networks.go index 990dd2d6beee..1ebc2fd232a2 100644 --- a/lxd/networks.go +++ b/lxd/networks.go @@ -54,23 +54,80 @@ var networksCmd = APIEndpoint{ var networkCmd = APIEndpoint{ Path: "networks/{networkName}", - Delete: APIEndpointAction{Handler: networkDelete, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanDelete, "networkName")}, - Get: APIEndpointAction{Handler: networkGet, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanView, "networkName")}, - Patch: APIEndpointAction{Handler: networkPatch, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, - Post: APIEndpointAction{Handler: networkPost, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, - Put: APIEndpointAction{Handler: networkPut, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanEdit, "networkName")}, + Delete: APIEndpointAction{Handler: networkDelete, AccessHandler: networkAccessHandler(auth.EntitlementCanDelete)}, + Get: APIEndpointAction{Handler: networkGet, AccessHandler: networkAccessHandler(auth.EntitlementCanView)}, + Patch: APIEndpointAction{Handler: networkPatch, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, + Post: APIEndpointAction{Handler: networkPost, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, + Put: APIEndpointAction{Handler: networkPut, AccessHandler: networkAccessHandler(auth.EntitlementCanEdit)}, } var networkLeasesCmd = APIEndpoint{ Path: "networks/{networkName}/leases", - Get: APIEndpointAction{Handler: networkLeasesGet, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanView, "networkName")}, + Get: APIEndpointAction{Handler: networkLeasesGet, AccessHandler: networkAccessHandler(auth.EntitlementCanView)}, } var networkStateCmd = APIEndpoint{ Path: "networks/{networkName}/state", - Get: APIEndpointAction{Handler: networkStateGet, AccessHandler: allowPermission(entity.TypeNetwork, auth.EntitlementCanView, "networkName")}, + Get: APIEndpointAction{Handler: networkStateGet, AccessHandler: networkAccessHandler(auth.EntitlementCanView)}, +} + +// ctxNetworkDetails should be used only for getting/setting networkDetails in the request context. +const ctxNetworkDetails request.CtxKey = "network-details" + +// networkDetails contains fields that are determined prior to the access check. This is set in the request context when +// addNetworkDetailsToRequestContext is called. +type networkDetails struct { + networkName string + requestProject api.Project +} + +// addNetworkDetailsToRequestContext sets request.CtxEffectiveProjectName (string) and ctxNetworkDetails (networkDetails) +// in the request context. +func addNetworkDetailsToRequestContext(s *state.State, r *http.Request) error { + networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + if err != nil { + return err + } + + requestProjectName := request.ProjectParam(r) + effectiveProjectName, requestProject, err := project.NetworkProject(s.DB.Cluster, requestProjectName) + if err != nil { + return fmt.Errorf("Failed to check project %q network feature: %w", requestProjectName, err) + } + + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) + request.SetCtxValue(r, ctxNetworkDetails, networkDetails{ + networkName: networkName, + requestProject: *requestProject, + }) + + return nil +} + +// profileAccessHandler calls addProfileDetailsToRequestContext, then uses the details to perform an access check with +// the given auth.Entitlement. +func networkAccessHandler(entitlement auth.Entitlement) func(d *Daemon, r *http.Request) response.Response { + return func(d *Daemon, r *http.Request) response.Response { + s := d.State() + err := addNetworkDetailsToRequestContext(s, r) + if err != nil { + return response.SmartError(err) + } + + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) + if err != nil { + return response.SmartError(err) + } + + err = s.Authorizer.CheckPermission(r.Context(), entity.NetworkURL(details.requestProject.Name, details.networkName), entitlement) + if err != nil { + return response.SmartError(err) + } + + return response.EmptySyncResponse + } } // API endpoints @@ -796,12 +853,12 @@ func networkGet(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } @@ -811,7 +868,7 @@ func networkGet(d *Daemon, r *http.Request) response.Response { allNodes = true } - n, err := doNetworkGet(s, r, allNodes, projectName, reqProject.Config, networkName) + n, err := doNetworkGet(s, r, allNodes, effectiveProjectName, details.requestProject.Config, details.networkName) if err != nil { return response.SmartError(err) } @@ -954,24 +1011,24 @@ func doNetworkGet(s *state.State, r *http.Request, allNodes bool, projectName st func networkDelete(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } // Get the existing network. - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -1029,7 +1086,7 @@ func networkDelete(d *Daemon, r *http.Request) response.Response { } requestor := request.CreateRequestor(r) - s.Events.SendLifecycle(projectName, lifecycle.NetworkDeleted.Event(n, requestor, nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkDeleted.Event(n, requestor, nil)) return response.EmptySyncResponse } @@ -1080,12 +1137,12 @@ func networkPost(d *Daemon, r *http.Request) response.Response { return response.BadRequest(fmt.Errorf("Renaming clustered network not supported")) } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } @@ -1099,13 +1156,13 @@ func networkPost(d *Daemon, r *http.Request) response.Response { } // Get the existing network. - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -1137,7 +1194,7 @@ func networkPost(d *Daemon, r *http.Request) response.Response { err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { // Check that the name isn't already in used by an existing managed network. - networks, err = tx.GetNetworks(ctx, projectName) + networks, err = tx.GetNetworks(ctx, effectiveProjectName) return err }) @@ -1156,8 +1213,8 @@ func networkPost(d *Daemon, r *http.Request) response.Response { } requestor := request.CreateRequestor(r) - lc := lifecycle.NetworkRenamed.Event(n, requestor, map[string]any{"old_name": networkName}) - s.Events.SendLifecycle(projectName, lc) + lc := lifecycle.NetworkRenamed.Event(n, requestor, map[string]any{"old_name": details.networkName}) + s.Events.SendLifecycle(effectiveProjectName, lc) return response.SyncResponseLocation(true, nil, lc.Source) } @@ -1210,24 +1267,24 @@ func networkPut(d *Daemon, r *http.Request) response.Response { return resp } - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - networkName, err := url.PathUnescape(mux.Vars(r)["networkName"]) + details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) } // Get the existing network. - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, details.networkName) if err != nil { return response.SmartError(fmt.Errorf("Failed loading network: %w", err)) } // Check if project allows access to network. - if !project.NetworkAllowed(reqProject.Config, networkName, n.IsManaged()) { + if !project.NetworkAllowed(details.requestProject.Config, details.networkName, n.IsManaged()) { return response.SmartError(api.StatusErrorf(http.StatusNotFound, "Network not found")) } @@ -1287,10 +1344,10 @@ func networkPut(d *Daemon, r *http.Request) response.Response { clientType := clusterRequest.UserAgentClientType(r.Header.Get("User-Agent")) - response := doNetworkUpdate(projectName, n, req, targetNode, clientType, r.Method, s.ServerClustered) + response := doNetworkUpdate(effectiveProjectName, n, req, targetNode, clientType, r.Method, s.ServerClustered) requestor := request.CreateRequestor(r) - s.Events.SendLifecycle(projectName, lifecycle.NetworkUpdated.Event(n, requestor, nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkUpdated.Event(n, requestor, nil)) return response } From b621203ea2afd15f2f10900449db8f84e1ded28c Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 10:56:57 +0100 Subject: [PATCH 082/169] lxd: Handle effective projects for network zones. Signed-off-by: Mark Laing --- lxd/network_zones.go | 88 ++++++++++++++++++++++++++++++------ lxd/network_zones_records.go | 56 +++++++++++------------ 2 files changed, 100 insertions(+), 44 deletions(-) diff --git a/lxd/network_zones.go b/lxd/network_zones.go index 3d098207d67a..f1eab4b0b0a9 100644 --- a/lxd/network_zones.go +++ b/lxd/network_zones.go @@ -17,6 +17,7 @@ import ( "github.com/canonical/lxd/lxd/project" "github.com/canonical/lxd/lxd/request" "github.com/canonical/lxd/lxd/response" + "github.com/canonical/lxd/lxd/state" "github.com/canonical/lxd/lxd/util" "github.com/canonical/lxd/shared/api" "github.com/canonical/lxd/shared/entity" @@ -33,10 +34,67 @@ var networkZonesCmd = APIEndpoint{ var networkZoneCmd = APIEndpoint{ Path: "network-zones/{zone}", - Delete: APIEndpointAction{Handler: networkZoneDelete, AccessHandler: allowPermission(entity.TypeNetworkZone, auth.EntitlementCanDelete, "zone")}, - Get: APIEndpointAction{Handler: networkZoneGet, AccessHandler: allowPermission(entity.TypeNetworkZone, auth.EntitlementCanView, "zone")}, - Put: APIEndpointAction{Handler: networkZonePut, AccessHandler: allowPermission(entity.TypeNetworkZone, auth.EntitlementCanEdit, "zone")}, - Patch: APIEndpointAction{Handler: networkZonePut, AccessHandler: allowPermission(entity.TypeNetworkZone, auth.EntitlementCanEdit, "zone")}, + Delete: APIEndpointAction{Handler: networkZoneDelete, AccessHandler: networkZoneAccessHandler(auth.EntitlementCanDelete)}, + Get: APIEndpointAction{Handler: networkZoneGet, AccessHandler: networkZoneAccessHandler(auth.EntitlementCanView)}, + Put: APIEndpointAction{Handler: networkZonePut, AccessHandler: networkZoneAccessHandler(auth.EntitlementCanEdit)}, + Patch: APIEndpointAction{Handler: networkZonePut, AccessHandler: networkZoneAccessHandler(auth.EntitlementCanEdit)}, +} + +// ctxNetworkZoneDetails should be used only for getting/setting networkZoneDetails in the request context. +const ctxNetworkZoneDetails request.CtxKey = "network-zone-details" + +// networkZoneDetails contains fields that are determined prior to the access check. This is set in the request context when +// addNetworkZoneDetailsToRequestContext is called. +type networkZoneDetails struct { + zoneName string + requestProject api.Project +} + +// addNetworkZoneDetailsToRequestContext sets request.CtxEffectiveProjectName (string) and ctxNetworkZoneDetails (networkZoneDetails) +// in the request context. +func addNetworkZoneDetailsToRequestContext(s *state.State, r *http.Request) error { + zoneName, err := url.PathUnescape(mux.Vars(r)["zone"]) + if err != nil { + return err + } + + requestProjectName := request.ProjectParam(r) + effectiveProjectName, requestProject, err := project.NetworkZoneProject(s.DB.Cluster, requestProjectName) + if err != nil { + return fmt.Errorf("Failed to check project %q network feature: %w", requestProjectName, err) + } + + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) + request.SetCtxValue(r, ctxNetworkZoneDetails, networkZoneDetails{ + zoneName: zoneName, + requestProject: *requestProject, + }) + + return nil +} + +// profileAccessHandler calls addNetworkZoneDetailsToRequestContext, then uses the details to perform an access check with +// the given auth.Entitlement. +func networkZoneAccessHandler(entitlement auth.Entitlement) func(d *Daemon, r *http.Request) response.Response { + return func(d *Daemon, r *http.Request) response.Response { + s := d.State() + err := addNetworkZoneDetailsToRequestContext(s, r) + if err != nil { + return response.SmartError(err) + } + + details, err := request.GetCtxValue[networkZoneDetails](r.Context(), ctxNetworkZoneDetails) + if err != nil { + return response.SmartError(err) + } + + err = s.Authorizer.CheckPermission(r.Context(), entity.NetworkZoneURL(details.requestProject.Name, details.zoneName), entitlement) + if err != nil { + return response.SmartError(err) + } + + return response.EmptySyncResponse + } } // API endpoints. @@ -288,17 +346,17 @@ func networkZonesPost(d *Daemon, r *http.Request) response.Response { func networkZoneDelete(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkZoneProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - zoneName, err := url.PathUnescape(mux.Vars(r)["zone"]) + details, err := request.GetCtxValue[networkZoneDetails](r.Context(), ctxNetworkZoneDetails) if err != nil { return response.SmartError(err) } - netzone, err := zone.LoadByNameAndProject(s, projectName, zoneName) + netzone, err := zone.LoadByNameAndProject(s, effectiveProjectName, details.zoneName) if err != nil { return response.SmartError(err) } @@ -308,7 +366,7 @@ func networkZoneDelete(d *Daemon, r *http.Request) response.Response { return response.SmartError(err) } - s.Events.SendLifecycle(projectName, lifecycle.NetworkZoneDeleted.Event(netzone, request.CreateRequestor(r), nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkZoneDeleted.Event(netzone, request.CreateRequestor(r), nil)) return response.EmptySyncResponse } @@ -356,17 +414,17 @@ func networkZoneDelete(d *Daemon, r *http.Request) response.Response { func networkZoneGet(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkZoneProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - zoneName, err := url.PathUnescape(mux.Vars(r)["zone"]) + details, err := request.GetCtxValue[networkZoneDetails](r.Context(), ctxNetworkZoneDetails) if err != nil { return response.SmartError(err) } - netzone, err := zone.LoadByNameAndProject(s, projectName, zoneName) + netzone, err := zone.LoadByNameAndProject(s, effectiveProjectName, details.zoneName) if err != nil { return response.SmartError(err) } @@ -454,18 +512,18 @@ func networkZoneGet(d *Daemon, r *http.Request) response.Response { func networkZonePut(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkZoneProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - zoneName, err := url.PathUnescape(mux.Vars(r)["zone"]) + details, err := request.GetCtxValue[networkZoneDetails](r.Context(), ctxNetworkZoneDetails) if err != nil { return response.SmartError(err) } // Get the existing Network zone. - netzone, err := zone.LoadByNameAndProject(s, projectName, zoneName) + netzone, err := zone.LoadByNameAndProject(s, effectiveProjectName, details.zoneName) if err != nil { return response.SmartError(err) } @@ -502,7 +560,7 @@ func networkZonePut(d *Daemon, r *http.Request) response.Response { return response.SmartError(err) } - s.Events.SendLifecycle(projectName, lifecycle.NetworkZoneUpdated.Event(netzone, request.CreateRequestor(r), nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkZoneUpdated.Event(netzone, request.CreateRequestor(r), nil)) return response.EmptySyncResponse } diff --git a/lxd/network_zones_records.go b/lxd/network_zones_records.go index c98b60f8001e..6227f91d6d9d 100644 --- a/lxd/network_zones_records.go +++ b/lxd/network_zones_records.go @@ -11,29 +11,27 @@ import ( clusterRequest "github.com/canonical/lxd/lxd/cluster/request" "github.com/canonical/lxd/lxd/lifecycle" "github.com/canonical/lxd/lxd/network/zone" - "github.com/canonical/lxd/lxd/project" "github.com/canonical/lxd/lxd/request" "github.com/canonical/lxd/lxd/response" "github.com/canonical/lxd/lxd/util" "github.com/canonical/lxd/shared/api" - "github.com/canonical/lxd/shared/entity" "github.com/canonical/lxd/shared/version" ) var networkZoneRecordsCmd = APIEndpoint{ Path: "network-zones/{zone}/records", - Get: APIEndpointAction{Handler: networkZoneRecordsGet, AccessHandler: allowPermission(entity.TypeNetworkZone, auth.EntitlementCanView, "zone")}, - Post: APIEndpointAction{Handler: networkZoneRecordsPost, AccessHandler: allowPermission(entity.TypeNetworkZone, auth.EntitlementCanEdit, "zone")}, + Get: APIEndpointAction{Handler: networkZoneRecordsGet, AccessHandler: networkZoneAccessHandler(auth.EntitlementCanView)}, + Post: APIEndpointAction{Handler: networkZoneRecordsPost, AccessHandler: networkZoneAccessHandler(auth.EntitlementCanEdit)}, } var networkZoneRecordCmd = APIEndpoint{ Path: "network-zones/{zone}/records/{name}", - Delete: APIEndpointAction{Handler: networkZoneRecordDelete, AccessHandler: allowPermission(entity.TypeNetworkZone, auth.EntitlementCanEdit, "zone")}, - Get: APIEndpointAction{Handler: networkZoneRecordGet, AccessHandler: allowPermission(entity.TypeNetworkZone, auth.EntitlementCanView, "zone")}, - Put: APIEndpointAction{Handler: networkZoneRecordPut, AccessHandler: allowPermission(entity.TypeNetworkZone, auth.EntitlementCanEdit, "zone")}, - Patch: APIEndpointAction{Handler: networkZoneRecordPut, AccessHandler: allowPermission(entity.TypeNetworkZone, auth.EntitlementCanEdit, "zone")}, + Delete: APIEndpointAction{Handler: networkZoneRecordDelete, AccessHandler: networkZoneAccessHandler(auth.EntitlementCanEdit)}, + Get: APIEndpointAction{Handler: networkZoneRecordGet, AccessHandler: networkZoneAccessHandler(auth.EntitlementCanView)}, + Put: APIEndpointAction{Handler: networkZoneRecordPut, AccessHandler: networkZoneAccessHandler(auth.EntitlementCanEdit)}, + Patch: APIEndpointAction{Handler: networkZoneRecordPut, AccessHandler: networkZoneAccessHandler(auth.EntitlementCanEdit)}, } // API endpoints. @@ -133,20 +131,20 @@ var networkZoneRecordCmd = APIEndpoint{ func networkZoneRecordsGet(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkZoneProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - recursion := util.IsRecursionRequest(r) - - zoneName, err := url.PathUnescape(mux.Vars(r)["zone"]) + details, err := request.GetCtxValue[networkZoneDetails](r.Context(), ctxNetworkZoneDetails) if err != nil { return response.SmartError(err) } + recursion := util.IsRecursionRequest(r) + // Get the network zone. - netzone, err := zone.LoadByNameAndProject(s, projectName, zoneName) + netzone, err := zone.LoadByNameAndProject(s, effectiveProjectName, details.zoneName) if err != nil { return response.SmartError(err) } @@ -161,7 +159,7 @@ func networkZoneRecordsGet(d *Daemon, r *http.Request) response.Response { resultMap := []api.NetworkZoneRecord{} for _, record := range records { if !recursion { - resultString = append(resultString, api.NewURL().Path(version.APIVersion, "network-zones", zoneName, "records", record.Name).String()) + resultString = append(resultString, api.NewURL().Path(version.APIVersion, "network-zones", details.zoneName, "records", record.Name).String()) } else { resultMap = append(resultMap, record) } @@ -209,18 +207,18 @@ func networkZoneRecordsGet(d *Daemon, r *http.Request) response.Response { func networkZoneRecordsPost(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkZoneProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - zoneName, err := url.PathUnescape(mux.Vars(r)["zone"]) + details, err := request.GetCtxValue[networkZoneDetails](r.Context(), ctxNetworkZoneDetails) if err != nil { return response.SmartError(err) } // Get the network zone. - netzone, err := zone.LoadByNameAndProject(s, projectName, zoneName) + netzone, err := zone.LoadByNameAndProject(s, effectiveProjectName, details.zoneName) if err != nil { return response.SmartError(err) } @@ -239,7 +237,7 @@ func networkZoneRecordsPost(d *Daemon, r *http.Request) response.Response { } lc := lifecycle.NetworkZoneRecordCreated.Event(netzone, req.Name, request.CreateRequestor(r), nil) - s.Events.SendLifecycle(projectName, lc) + s.Events.SendLifecycle(effectiveProjectName, lc) return response.SyncResponseLocation(true, nil, lc.Source) } @@ -271,12 +269,12 @@ func networkZoneRecordsPost(d *Daemon, r *http.Request) response.Response { func networkZoneRecordDelete(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkZoneProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - zoneName, err := url.PathUnescape(mux.Vars(r)["zone"]) + details, err := request.GetCtxValue[networkZoneDetails](r.Context(), ctxNetworkZoneDetails) if err != nil { return response.SmartError(err) } @@ -287,7 +285,7 @@ func networkZoneRecordDelete(d *Daemon, r *http.Request) response.Response { } // Get the network zone. - netzone, err := zone.LoadByNameAndProject(s, projectName, zoneName) + netzone, err := zone.LoadByNameAndProject(s, effectiveProjectName, details.zoneName) if err != nil { return response.SmartError(err) } @@ -298,7 +296,7 @@ func networkZoneRecordDelete(d *Daemon, r *http.Request) response.Response { return response.SmartError(err) } - s.Events.SendLifecycle(projectName, lifecycle.NetworkZoneRecordDeleted.Event(netzone, recordName, request.CreateRequestor(r), nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkZoneRecordDeleted.Event(netzone, recordName, request.CreateRequestor(r), nil)) return response.EmptySyncResponse } @@ -346,12 +344,12 @@ func networkZoneRecordDelete(d *Daemon, r *http.Request) response.Response { func networkZoneRecordGet(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkZoneProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - zoneName, err := url.PathUnescape(mux.Vars(r)["zone"]) + details, err := request.GetCtxValue[networkZoneDetails](r.Context(), ctxNetworkZoneDetails) if err != nil { return response.SmartError(err) } @@ -362,7 +360,7 @@ func networkZoneRecordGet(d *Daemon, r *http.Request) response.Response { } // Get the network zone. - netzone, err := zone.LoadByNameAndProject(s, projectName, zoneName) + netzone, err := zone.LoadByNameAndProject(s, effectiveProjectName, details.zoneName) if err != nil { return response.SmartError(err) } @@ -448,12 +446,12 @@ func networkZoneRecordGet(d *Daemon, r *http.Request) response.Response { func networkZoneRecordPut(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkZoneProject(s.DB.Cluster, request.ProjectParam(r)) + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) if err != nil { return response.SmartError(err) } - zoneName, err := url.PathUnescape(mux.Vars(r)["zone"]) + details, err := request.GetCtxValue[networkZoneDetails](r.Context(), ctxNetworkZoneDetails) if err != nil { return response.SmartError(err) } @@ -464,7 +462,7 @@ func networkZoneRecordPut(d *Daemon, r *http.Request) response.Response { } // Get the network zone. - netzone, err := zone.LoadByNameAndProject(s, projectName, zoneName) + netzone, err := zone.LoadByNameAndProject(s, effectiveProjectName, details.zoneName) if err != nil { return response.SmartError(err) } @@ -505,7 +503,7 @@ func networkZoneRecordPut(d *Daemon, r *http.Request) response.Response { return response.SmartError(err) } - s.Events.SendLifecycle(projectName, lifecycle.NetworkZoneRecordUpdated.Event(netzone, recordName, request.CreateRequestor(r), nil)) + s.Events.SendLifecycle(effectiveProjectName, lifecycle.NetworkZoneRecordUpdated.Event(netzone, recordName, request.CreateRequestor(r), nil)) return response.EmptySyncResponse } From 6a099ca5b9cf47b7669ee81948c1ffc6cffd5db8 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 13:17:42 +0100 Subject: [PATCH 083/169] lxd/project: Add project helper for getting image effective project. Signed-off-by: Mark Laing --- lxd/project/project.go | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/lxd/project/project.go b/lxd/project/project.go index 389e7c575f05..4c258eb126da 100644 --- a/lxd/project/project.go +++ b/lxd/project/project.go @@ -2,6 +2,7 @@ package project import ( "context" + "database/sql" "fmt" "strings" @@ -311,3 +312,17 @@ func NetworkZoneProjectFromRecord(p *api.Project) string { return api.ProjectDefaultName } + +// ImageProject returns the effective project for images based on the value of `features.images` in the given project. +func ImageProject(ctx context.Context, tx *sql.Tx, requestProjectName string) (string, error) { + projectHasImages, err := cluster.ProjectHasImages(ctx, tx, requestProjectName) + if err != nil { + return "", err + } + + if !projectHasImages { + return api.ProjectDefaultName, nil + } + + return requestProjectName, nil +} From ed4e3ad1a8a050cc3168ea85b42245f86ce298ec Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 13:14:24 +0100 Subject: [PATCH 084/169] lxd: Handle effective projects for images. Signed-off-by: Mark Laing --- lxd/images.go | 327 ++++++++++++++++++++++++++++---------------------- 1 file changed, 182 insertions(+), 145 deletions(-) diff --git a/lxd/images.go b/lxd/images.go index 341ae033a6d6..09528d6edaa8 100644 --- a/lxd/images.go +++ b/lxd/images.go @@ -66,46 +66,147 @@ var imagesCmd = APIEndpoint{ var imageCmd = APIEndpoint{ Path: "images/{fingerprint}", - Delete: APIEndpointAction{Handler: imageDelete, AccessHandler: allowPermission(entity.TypeImage, auth.EntitlementCanDelete, "fingerprint")}, + Delete: APIEndpointAction{Handler: imageDelete, AccessHandler: imageAccessHandler(auth.EntitlementCanDelete)}, Get: APIEndpointAction{Handler: imageGet, AllowUntrusted: true}, - Patch: APIEndpointAction{Handler: imagePatch, AccessHandler: allowPermission(entity.TypeImage, auth.EntitlementCanEdit, "fingerprint")}, - Put: APIEndpointAction{Handler: imagePut, AccessHandler: allowPermission(entity.TypeImage, auth.EntitlementCanEdit, "fingerprint")}, + Patch: APIEndpointAction{Handler: imagePatch, AccessHandler: imageAccessHandler(auth.EntitlementCanEdit)}, + Put: APIEndpointAction{Handler: imagePut, AccessHandler: imageAccessHandler(auth.EntitlementCanEdit)}, } var imageExportCmd = APIEndpoint{ Path: "images/{fingerprint}/export", Get: APIEndpointAction{Handler: imageExport, AllowUntrusted: true}, - Post: APIEndpointAction{Handler: imageExportPost, AccessHandler: allowPermission(entity.TypeImage, auth.EntitlementCanEdit, "fingerprint")}, + Post: APIEndpointAction{Handler: imageExportPost, AccessHandler: imageAccessHandler(auth.EntitlementCanEdit)}, } var imageSecretCmd = APIEndpoint{ Path: "images/{fingerprint}/secret", - Post: APIEndpointAction{Handler: imageSecret, AccessHandler: allowPermission(entity.TypeImage, auth.EntitlementCanEdit, "fingerprint")}, + Post: APIEndpointAction{Handler: imageSecret, AccessHandler: imageAccessHandler(auth.EntitlementCanEdit)}, } var imageRefreshCmd = APIEndpoint{ Path: "images/{fingerprint}/refresh", - Post: APIEndpointAction{Handler: imageRefresh, AccessHandler: allowPermission(entity.TypeImage, auth.EntitlementCanEdit, "fingerprint")}, + Post: APIEndpointAction{Handler: imageRefresh, AccessHandler: imageAccessHandler(auth.EntitlementCanEdit)}, } var imageAliasesCmd = APIEndpoint{ Path: "images/aliases", - Get: APIEndpointAction{Handler: imageAliasesGet, AccessHandler: allowAuthenticated}, + Get: APIEndpointAction{Handler: imageAliasesGet, AccessHandler: allowProjectResourceList}, Post: APIEndpointAction{Handler: imageAliasesPost, AccessHandler: allowPermission(entity.TypeProject, auth.EntitlementCanCreateImageAliases)}, } var imageAliasCmd = APIEndpoint{ Path: "images/aliases/{name:.*}", - Delete: APIEndpointAction{Handler: imageAliasDelete, AccessHandler: allowPermission(entity.TypeImageAlias, auth.EntitlementCanDelete, "name")}, + Delete: APIEndpointAction{Handler: imageAliasDelete, AccessHandler: imageAliasAccessHandler(auth.EntitlementCanDelete)}, Get: APIEndpointAction{Handler: imageAliasGet, AllowUntrusted: true}, - Patch: APIEndpointAction{Handler: imageAliasPatch, AccessHandler: allowPermission(entity.TypeImageAlias, auth.EntitlementCanEdit, "name")}, - Post: APIEndpointAction{Handler: imageAliasPost, AccessHandler: allowPermission(entity.TypeImageAlias, auth.EntitlementCanEdit, "name")}, - Put: APIEndpointAction{Handler: imageAliasPut, AccessHandler: allowPermission(entity.TypeImageAlias, auth.EntitlementCanEdit, "name")}, + Patch: APIEndpointAction{Handler: imageAliasPatch, AccessHandler: imageAliasAccessHandler(auth.EntitlementCanEdit)}, + Post: APIEndpointAction{Handler: imageAliasPost, AccessHandler: imageAliasAccessHandler(auth.EntitlementCanEdit)}, + Put: APIEndpointAction{Handler: imageAliasPut, AccessHandler: imageAliasAccessHandler(auth.EntitlementCanEdit)}, +} + +const ctxImageDetails request.CtxKey = "image-details" + +// imageDetails contains fields that are determined prior to the access check. This is set in the request context when +// addImageDetailsToRequestContext is called. +type imageDetails struct { + imageFingerprintPrefix string + imageID int + image api.Image +} + +// addImageDetailsToRequestContext sets request.CtxEffectiveProjectName (string) and ctxImageDetails (imageDetails) +// in the request context. +func addImageDetailsToRequestContext(s *state.State, r *http.Request) error { + imageFingerprintPrefix, err := url.PathUnescape(mux.Vars(r)["fingerprint"]) + if err != nil { + return err + } + + requestProjectName := request.ProjectParam(r) + effectiveProjectName := requestProjectName + var imageID int + var image *api.Image + err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { + effectiveProjectName, err = projectutils.ImageProject(ctx, tx.Tx(), requestProjectName) + if err != nil { + return err + } + + imageID, image, err = tx.GetImageByFingerprintPrefix(ctx, imageFingerprintPrefix, dbCluster.ImageFilter{Project: &requestProjectName}) + if err != nil { + return err + } + + return nil + }) + if err != nil { + return fmt.Errorf("Failed to check project %q image feature: %w", requestProjectName, err) + } + + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) + request.SetCtxValue(r, ctxImageDetails, imageDetails{ + imageFingerprintPrefix: imageFingerprintPrefix, + imageID: imageID, + image: *image, + }) + + return nil +} + +func imageAccessHandler(entitlement auth.Entitlement) func(d *Daemon, r *http.Request) response.Response { + return func(d *Daemon, r *http.Request) response.Response { + s := d.State() + err := addImageDetailsToRequestContext(s, r) + if err != nil { + return response.SmartError(err) + } + + details, err := request.GetCtxValue[imageDetails](r.Context(), ctxImageDetails) + if err != nil { + return response.SmartError(err) + } + + err = s.Authorizer.CheckPermission(r.Context(), entity.ImageURL(request.ProjectParam(r), details.image.Fingerprint), entitlement) + if err != nil { + return response.SmartError(err) + } + + return response.EmptySyncResponse + } +} + +func imageAliasAccessHandler(entitlement auth.Entitlement) func(d *Daemon, r *http.Request) response.Response { + return func(d *Daemon, r *http.Request) response.Response { + imageAliasName, err := url.PathUnescape(mux.Vars(r)["name"]) + if err != nil { + return response.SmartError(err) + } + + requestProjectName := request.ProjectParam(r) + var effectiveProjectName string + s := d.State() + err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { + effectiveProjectName, err = projectutils.ImageProject(ctx, tx.Tx(), requestProjectName) + return err + }) + if err != nil && api.StatusErrorCheck(err, http.StatusNotFound) { + return response.NotFound(nil) + } else if err != nil { + return response.SmartError(err) + } + + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) + err = s.Authorizer.CheckPermission(r.Context(), entity.ImageAliasURL(requestProjectName, imageAliasName), entitlement) + if err != nil { + return response.SmartError(err) + } + + return response.EmptySyncResponse + } } /* @@ -1615,16 +1716,9 @@ func imagesGet(d *Daemon, r *http.Request) response.Response { s := d.State() var effectiveProjectName string err := s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { - hasImages, err := dbCluster.ProjectHasImages(ctx, tx.Tx(), projectName) - if err != nil { - return err - } - - if !hasImages { - effectiveProjectName = api.ProjectDefaultName - } - - return nil + var err error + effectiveProjectName, err = projectutils.ImageProject(ctx, tx.Tx(), projectName) + return err }) if err != nil { return response.SmartError(err) @@ -2655,21 +2749,7 @@ func imageDelete(d *Daemon, r *http.Request) response.Response { projectName := request.ProjectParam(r) - fingerprint, err := url.PathUnescape(mux.Vars(r)["fingerprint"]) - if err != nil { - return response.SmartError(err) - } - - var imgID int - var imgInfo *api.Image - - err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - // Use the fingerprint we received in a LIKE query and use the full - // fingerprint we receive from the database in all further queries. - imgID, imgInfo, err = tx.GetImage(ctx, fingerprint, dbCluster.ImageFilter{Project: &projectName}) - - return err - }) + details, err := request.GetCtxValue[imageDetails](r.Context(), ctxImageDetails) if err != nil { return response.SmartError(err) } @@ -2677,7 +2757,7 @@ func imageDelete(d *Daemon, r *http.Request) response.Response { do := func(op *operations.Operation) error { // Lock this operation to ensure that concurrent image operations don't conflict. // Other operations will wait for this one to finish. - unlock, err := imageOperationLock(imgInfo.Fingerprint) + unlock, err := imageOperationLock(details.image.Fingerprint) if err != nil { return err } @@ -2689,7 +2769,7 @@ func imageDelete(d *Daemon, r *http.Request) response.Response { err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { // Check image still exists and another request hasn't removed it since we resolved the image // fingerprint above. - exist, err = tx.ImageExists(ctx, projectName, imgInfo.Fingerprint) + exist, err = tx.ImageExists(ctx, projectName, details.image.Fingerprint) return err }) @@ -2709,13 +2789,13 @@ func imageDelete(d *Daemon, r *http.Request) response.Response { // referenced by other projects. In that case we don't want to // physically delete it just yet, but just to remove the // relevant database entry. - referenced, err = tx.ImageIsReferencedByOtherProjects(ctx, projectName, imgInfo.Fingerprint) + referenced, err = tx.ImageIsReferencedByOtherProjects(ctx, projectName, details.image.Fingerprint) if err != nil { return err } if referenced { - err = tx.DeleteImage(ctx, imgID) + err = tx.DeleteImage(ctx, details.imageID) if err != nil { return fmt.Errorf("Error deleting image info from the database: %w", err) } @@ -2738,7 +2818,7 @@ func imageDelete(d *Daemon, r *http.Request) response.Response { } err = notifier(func(client lxd.InstanceServer) error { - op, err := client.UseProject(projectName).DeleteImage(imgInfo.Fingerprint) + op, err := client.UseProject(projectName).DeleteImage(details.image.Fingerprint) if err != nil { return fmt.Errorf("Failed to request to delete image from peer node: %w", err) } @@ -2760,7 +2840,7 @@ func imageDelete(d *Daemon, r *http.Request) response.Response { err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { // Delete the pool volumes. - poolIDs, err = tx.GetPoolsWithImage(ctx, imgInfo.Fingerprint) + poolIDs, err = tx.GetPoolsWithImage(ctx, details.image.Fingerprint) if err != nil { return err } @@ -2779,14 +2859,14 @@ func imageDelete(d *Daemon, r *http.Request) response.Response { for _, poolName := range poolNames { pool, err := storagePools.LoadByName(s, poolName) if err != nil { - return fmt.Errorf("Error loading storage pool %q to delete image %q: %w", poolName, imgInfo.Fingerprint, err) + return fmt.Errorf("Error loading storage pool %q to delete image %q: %w", poolName, details.image.Fingerprint, err) } // Only perform the deletion of remote volumes on the server handling the request. if !isClusterNotification(r) || !pool.Driver().Info().Remote { - err = pool.DeleteImage(imgInfo.Fingerprint, op) + err = pool.DeleteImage(details.image.Fingerprint, op) if err != nil { - return fmt.Errorf("Error deleting image %q from storage pool %q: %w", imgInfo.Fingerprint, pool.Name(), err) + return fmt.Errorf("Error deleting image %q from storage pool %q: %w", details.image.Fingerprint, pool.Name(), err) } } } @@ -2794,7 +2874,7 @@ func imageDelete(d *Daemon, r *http.Request) response.Response { // Remove the database entry. if !isClusterNotification(r) { err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - return tx.DeleteImage(ctx, imgID) + return tx.DeleteImage(ctx, details.imageID) }) if err != nil { return fmt.Errorf("Error deleting image info from the database: %w", err) @@ -2802,15 +2882,15 @@ func imageDelete(d *Daemon, r *http.Request) response.Response { } // Remove main image file from disk. - imageDeleteFromDisk(imgInfo.Fingerprint) + imageDeleteFromDisk(details.image.Fingerprint) - s.Events.SendLifecycle(projectName, lifecycle.ImageDeleted.Event(imgInfo.Fingerprint, projectName, op.Requestor(), nil)) + s.Events.SendLifecycle(projectName, lifecycle.ImageDeleted.Event(details.image.Fingerprint, projectName, op.Requestor(), nil)) return nil } resources := map[string][]api.URL{} - resources["images"] = []api.URL{*api.NewURL().Path(version.APIVersion, "images", imgInfo.Fingerprint)} + resources["images"] = []api.URL{*api.NewURL().Path(version.APIVersion, "images", details.image.Fingerprint)} op, err := operations.OperationCreate(s, projectName, operations.OperationClassTask, operationtype.ImageDelete, resources, nil, do, nil, nil, r) if err != nil { @@ -3001,7 +3081,13 @@ func imageGet(d *Daemon, r *http.Request) response.Response { // Get the image. We need to do this before the permission check because the URL in the permission check will not // work with partial fingerprints. var info *api.Image + effectiveProjectName := projectName err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { + effectiveProjectName, err = projectutils.ImageProject(ctx, tx.Tx(), projectName) + if err != nil { + return err + } + info, err = doImageGet(ctx, tx, projectName, fingerprint, publicOnly) if err != nil { return err @@ -3040,6 +3126,7 @@ func imageGet(d *Daemon, r *http.Request) response.Response { userCanViewImage = true } else { // Otherwise perform an access check with the full image fingerprint. + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) err = s.Authorizer.CheckPermission(r.Context(), entity.ImageURL(projectName, info.Fingerprint), auth.EntitlementCanView) if err != nil && !auth.IsDeniedError(err) { return response.SmartError(err) @@ -3097,25 +3184,13 @@ func imagePut(d *Daemon, r *http.Request) response.Response { // Get current value projectName := request.ProjectParam(r) - fingerprint, err := url.PathUnescape(mux.Vars(r)["fingerprint"]) - if err != nil { - return response.SmartError(err) - } - - var id int - var info *api.Image - - err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - id, info, err = tx.GetImage(ctx, fingerprint, dbCluster.ImageFilter{Project: &projectName}) - - return err - }) + details, err := request.GetCtxValue[imageDetails](r.Context(), ctxImageDetails) if err != nil { return response.SmartError(err) } // Validate ETag - etag := []any{info.Public, info.AutoUpdate, info.Properties} + etag := []any{details.image.Public, details.image.AutoUpdate, details.image.Properties} err = util.EtagCheck(r, etag) if err != nil { return response.PreconditionFailed(err) @@ -3129,7 +3204,7 @@ func imagePut(d *Daemon, r *http.Request) response.Response { // Get ExpiresAt if !req.ExpiresAt.IsZero() { - info.ExpiresAt = req.ExpiresAt + details.image.ExpiresAt = req.ExpiresAt } // Get profile IDs @@ -3151,7 +3226,7 @@ func imagePut(d *Daemon, r *http.Request) response.Response { profileIDs[i] = profileID } - return tx.UpdateImage(ctx, id, info.Filename, info.Size, req.Public, req.AutoUpdate, info.Architecture, info.CreatedAt, info.ExpiresAt, req.Properties, projectName, profileIDs) + return tx.UpdateImage(ctx, details.imageID, details.image.Filename, details.image.Size, req.Public, req.AutoUpdate, details.image.Architecture, details.image.CreatedAt, details.image.ExpiresAt, req.Properties, projectName, profileIDs) }) if err != nil { if response.IsNotFoundError(err) { @@ -3162,7 +3237,7 @@ func imagePut(d *Daemon, r *http.Request) response.Response { } requestor := request.CreateRequestor(r) - s.Events.SendLifecycle(projectName, lifecycle.ImageUpdated.Event(info.Fingerprint, projectName, requestor, nil)) + s.Events.SendLifecycle(projectName, lifecycle.ImageUpdated.Event(details.image.Fingerprint, projectName, requestor, nil)) return response.EmptySyncResponse } @@ -3206,25 +3281,13 @@ func imagePatch(d *Daemon, r *http.Request) response.Response { // Get current value projectName := request.ProjectParam(r) - fingerprint, err := url.PathUnescape(mux.Vars(r)["fingerprint"]) - if err != nil { - return response.SmartError(err) - } - - var id int - var info *api.Image - - err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - id, info, err = tx.GetImage(ctx, fingerprint, dbCluster.ImageFilter{Project: &projectName}) - - return err - }) + details, err := request.GetCtxValue[imageDetails](r.Context(), ctxImageDetails) if err != nil { return response.SmartError(err) } // Validate ETag - etag := []any{info.Public, info.AutoUpdate, info.Properties} + etag := []any{details.image.Public, details.image.AutoUpdate, details.image.Properties} err = util.EtagCheck(r, etag) if err != nil { return response.PreconditionFailed(err) @@ -3253,37 +3316,38 @@ func imagePatch(d *Daemon, r *http.Request) response.Response { // Get AutoUpdate autoUpdate, err := reqRaw.GetBool("auto_update") if err == nil { - info.AutoUpdate = autoUpdate + details.image.AutoUpdate = autoUpdate } // Get Public public, err := reqRaw.GetBool("public") if err == nil { - info.Public = public + details.image.Public = public } // Get Properties _, ok := reqRaw["properties"] if ok { properties := req.Properties - for k, v := range info.Properties { + for k, v := range details.image.Properties { _, ok := req.Properties[k] if !ok { properties[k] = v } } - info.Properties = properties + + details.image.Properties = properties } err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - return tx.UpdateImage(ctx, id, info.Filename, info.Size, info.Public, info.AutoUpdate, info.Architecture, info.CreatedAt, info.ExpiresAt, info.Properties, "", nil) + return tx.UpdateImage(ctx, details.imageID, details.image.Filename, details.image.Size, details.image.Public, details.image.AutoUpdate, details.image.Architecture, details.image.CreatedAt, details.image.ExpiresAt, details.image.Properties, "", nil) }) if err != nil { return response.SmartError(err) } requestor := request.CreateRequestor(r) - s.Events.SendLifecycle(projectName, lifecycle.ImageUpdated.Event(info.Fingerprint, projectName, requestor, nil)) + s.Events.SendLifecycle(projectName, lifecycle.ImageUpdated.Event(details.image.Fingerprint, projectName, requestor, nil)) return response.EmptySyncResponse } @@ -3468,16 +3532,9 @@ func imageAliasesGet(d *Daemon, r *http.Request) response.Response { projectName := request.ProjectParam(r) var effectiveProjectName string err := s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { - projectHasImages, err := dbCluster.ProjectHasImages(ctx, tx.Tx(), projectName) - if err != nil { - return err - } - - if !projectHasImages { - effectiveProjectName = api.ProjectDefaultName - } - - return nil + var err error + effectiveProjectName, err = projectutils.ImageProject(ctx, tx.Tx(), projectName) + return err }) if err != nil { return response.SmartError(err) @@ -3623,10 +3680,16 @@ func imageAliasGet(d *Daemon, r *http.Request) response.Response { } s := d.State() + var effectiveProjectName string + err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { + effectiveProjectName, err = projectutils.ImageProject(ctx, tx.Tx(), projectName) + return err + }) // Set `userCanViewImageAlias` to true only when the caller is authenticated and can view the alias. // We don't abort the request if this is false because the image alias may be for a public image. var userCanViewImageAlias bool + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) err = s.Authorizer.CheckPermission(r.Context(), entity.ImageAliasURL(projectName, name), auth.EntitlementCanView) if err != nil && !auth.IsDeniedError(err) { return response.SmartError(err) @@ -3635,7 +3698,7 @@ func imageAliasGet(d *Daemon, r *http.Request) response.Response { } var alias api.ImageAliasesEntry - err = d.State().DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { + err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { // If `userCanViewImageAlias` is false, the query will be restricted to public images only. _, alias, err = tx.GetImageAlias(ctx, projectName, name, userCanViewImageAlias) @@ -4054,7 +4117,13 @@ func imageExport(d *Daemon, r *http.Request) response.Response { // Get the image. We need to do this before the permission check because the URL in the permission check will not // work with partial fingerprints. var imgInfo *api.Image + effectiveProjectName := projectName err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { + effectiveProjectName, err = projectutils.ImageProject(ctx, tx.Tx(), projectName) + if err != nil { + return err + } + filter := dbCluster.ImageFilter{Project: &projectName} if publicOnly { filter.Public = &publicOnly @@ -4107,6 +4176,7 @@ func imageExport(d *Daemon, r *http.Request) response.Response { userCanViewImage = true } else { // Otherwise perform an access check with the full image fingerprint. + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) err = s.Authorizer.CheckPermission(r.Context(), entity.ImageURL(projectName, imgInfo.Fingerprint), auth.EntitlementCanView) if err != nil && !auth.IsDeniedError(err) { return response.SmartError(err) @@ -4227,17 +4297,7 @@ func imageExportPost(d *Daemon, r *http.Request) response.Response { s := d.State() projectName := request.ProjectParam(r) - fingerprint, err := url.PathUnescape(mux.Vars(r)["fingerprint"]) - if err != nil { - return response.SmartError(err) - } - - err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - // Check if the image exists - _, _, err = tx.GetImage(ctx, fingerprint, dbCluster.ImageFilter{Project: &projectName}) - - return err - }) + details, err := request.GetCtxValue[imageDetails](r.Context(), ctxImageDetails) if err != nil { return response.SmartError(err) } @@ -4268,8 +4328,8 @@ func imageExportPost(d *Daemon, r *http.Request) response.Response { run := func(op *operations.Operation) error { createArgs := &lxd.ImageCreateArgs{} - imageMetaPath := shared.VarPath("images", fingerprint) - imageRootfsPath := shared.VarPath("images", fingerprint+".rootfs") + imageMetaPath := shared.VarPath("images", details.imageFingerprintPrefix) + imageRootfsPath := shared.VarPath("images", details.imageFingerprintPrefix+".rootfs") metaFile, err := os.Open(imageMetaPath) if err != nil { @@ -4296,7 +4356,7 @@ func imageExportPost(d *Daemon, r *http.Request) response.Response { image := api.ImagesPost{ Filename: createArgs.MetaName, Source: &api.ImagesPostSource{ - Fingerprint: fingerprint, + Fingerprint: details.imageFingerprintPrefix, Secret: req.Secret, Mode: "push", }, @@ -4335,7 +4395,7 @@ func imageExportPost(d *Daemon, r *http.Request) response.Response { return fmt.Errorf("Failed operation %q: %q", opWaitAPI.Status, opWaitAPI.Err) } - s.Events.SendLifecycle(projectName, lifecycle.ImageRetrieved.Event(fingerprint, projectName, op.Requestor(), logger.Ctx{"target": req.Target})) + s.Events.SendLifecycle(projectName, lifecycle.ImageRetrieved.Event(details.imageFingerprintPrefix, projectName, op.Requestor(), logger.Ctx{"target": req.Target})) return nil } @@ -4376,23 +4436,12 @@ func imageSecret(d *Daemon, r *http.Request) response.Response { s := d.State() projectName := request.ProjectParam(r) - fingerprint, err := url.PathUnescape(mux.Vars(r)["fingerprint"]) - if err != nil { - return response.SmartError(err) - } - - var imgInfo *api.Image - - err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - _, imgInfo, err = tx.GetImage(ctx, fingerprint, dbCluster.ImageFilter{Project: &projectName}) - - return err - }) + details, err := request.GetCtxValue[imageDetails](r.Context(), ctxImageDetails) if err != nil { return response.SmartError(err) } - return createTokenResponse(s, r, projectName, imgInfo.Fingerprint, nil) + return createTokenResponse(s, r, projectName, details.image.Fingerprint, nil) } func imageImportFromNode(imagesDir string, client lxd.InstanceServer, fingerprint string) error { @@ -4495,19 +4544,7 @@ func imageRefresh(d *Daemon, r *http.Request) response.Response { s := d.State() projectName := request.ProjectParam(r) - fingerprint, err := url.PathUnescape(mux.Vars(r)["fingerprint"]) - if err != nil { - return response.SmartError(err) - } - - var imageID int - var imageInfo *api.Image - - err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - imageID, imageInfo, err = tx.GetImage(ctx, fingerprint, dbCluster.ImageFilter{Project: &projectName}) - - return err - }) + details, err := request.GetCtxValue[imageDetails](r.Context(), ctxImageDetails) if err != nil { return response.SmartError(err) } @@ -4517,22 +4554,22 @@ func imageRefresh(d *Daemon, r *http.Request) response.Response { var nodes []string err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { - nodes, err = tx.GetNodesWithImageAndAutoUpdate(ctx, fingerprint, true) + nodes, err = tx.GetNodesWithImageAndAutoUpdate(ctx, details.imageFingerprintPrefix, true) return err }) if err != nil { - return fmt.Errorf("Error getting cluster members for refreshing image %q in project %q: %w", fingerprint, projectName, err) + return fmt.Errorf("Error getting cluster members for refreshing image %q in project %q: %w", details.imageFingerprintPrefix, projectName, err) } - newImage, err := autoUpdateImage(s.ShutdownCtx, s, op, imageID, imageInfo, projectName, true) + newImage, err := autoUpdateImage(s.ShutdownCtx, s, op, details.imageID, &details.image, projectName, true) if err != nil { - return fmt.Errorf("Failed to update image %q in project %q: %w", fingerprint, projectName, err) + return fmt.Errorf("Failed to update image %q in project %q: %w", details.imageFingerprintPrefix, projectName, err) } if newImage != nil { if len(nodes) > 1 { - err := distributeImage(s.ShutdownCtx, s, nodes, fingerprint, newImage) + err := distributeImage(s.ShutdownCtx, s, nodes, details.imageFingerprintPrefix, newImage) if err != nil { return fmt.Errorf("Failed to distribute new image %q: %w", newImage.Fingerprint, err) } @@ -4540,10 +4577,10 @@ func imageRefresh(d *Daemon, r *http.Request) response.Response { err = s.DB.Cluster.Transaction(context.TODO(), func(ctx context.Context, tx *db.ClusterTx) error { // Remove the database entry for the image after distributing to cluster members. - return tx.DeleteImage(ctx, imageID) + return tx.DeleteImage(ctx, details.imageID) }) if err != nil { - logger.Error("Error deleting old image from database", logger.Ctx{"err": err, "fingerprint": fingerprint, "ID": imageID}) + logger.Error("Error deleting old image from database", logger.Ctx{"err": err, "fingerprint": details.imageFingerprintPrefix, "ID": details.imageID}) } } From bcb7d4950e4e21a08a1bbe38245992967a1991cb Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 13:27:56 +0100 Subject: [PATCH 085/169] lxd/project: Fix lint errors (revive: confusing-results). Signed-off-by: Mark Laing --- lxd/project/project.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lxd/project/project.go b/lxd/project/project.go index 4c258eb126da..e9259f0e023b 100644 --- a/lxd/project/project.go +++ b/lxd/project/project.go @@ -38,7 +38,7 @@ func DNS(projectName string, instanceName string) string { // name is returned unmodified in the 2nd return value. This is suitable for passing back into Instance(). // Note: This should only be used with Instance names (because they cannot contain the project separator) and this // function relies on this rule as project names can contain the project separator. -func InstanceParts(projectInstanceName string) (string, string) { +func InstanceParts(projectInstanceName string) (projectName string, instanceName string) { i := strings.LastIndex(projectInstanceName, separator) if i < 0 { // This string is not project prefixed or is part of default project. @@ -57,7 +57,7 @@ func StorageVolume(projectName string, storageVolumeName string) string { // StorageVolumeParts takes a project prefixed storage volume name and returns the project and storage volume // name as separate variables. -func StorageVolumeParts(projectStorageVolumeName string) (string, string) { +func StorageVolumeParts(projectStorageVolumeName string) (projectName string, storageVolumeName string) { parts := strings.SplitN(projectStorageVolumeName, "_", 2) // If the given name doesn't contain any project, only return the volume name. From ebaf86ab39c8827e54f888aca08dfce149f00e3a Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 16:14:15 +0100 Subject: [PATCH 086/169] lxd/auth: Add comments to Authorizer interface. Signed-off-by: Mark Laing --- lxd/auth/types.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lxd/auth/types.go b/lxd/auth/types.go index ab6f2d80a033..8ededc2d83a3 100644 --- a/lxd/auth/types.go +++ b/lxd/auth/types.go @@ -34,9 +34,20 @@ type PermissionChecker func(entityURL *api.URL) bool // Authorizer is the primary external API for this package. type Authorizer interface { + // Driver returns the driver name. Driver() string + // CheckPermission checks if the caller has the given entitlement on the entity found at the given URL. + // + // Note: When a project does not have a feature enabled, the given URL should contain the request project, and the + // effective project for the entity should be set in the given context as request.CtxEffectiveProjectName. CheckPermission(ctx context.Context, entityURL *api.URL, entitlement Entitlement) error + + // GetPermissionChecker returns a PermissionChecker for a particular entity.Type. + // + // Note: As with CheckPermission, arguments to the returned PermissionChecker should contain the request project for + // the entity. The effective project for the entity must be set in the request context as request.CtxEffectiveProjectName + // *before* the call to GetPermissionChecker. GetPermissionChecker(ctx context.Context, entitlement Entitlement, entityType entity.Type) (PermissionChecker, error) } From 27c71718a9b237c80d2b8bb9b7e088c088a4e7fd Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 16:16:36 +0100 Subject: [PATCH 087/169] lxd: Always use request project name in authorizer checks. Additionally, ensure that the effective project is always set in the request context before calling `GetPermissionChecker` Signed-off-by: Mark Laing --- lxd/network_acls.go | 11 ++++++----- lxd/network_allocations.go | 15 ++++++++++++--- lxd/network_zones.go | 11 ++++++----- lxd/networks.go | 35 ++++++++++++++++++----------------- lxd/profiles.go | 7 ++++--- lxd/storage_volumes.go | 14 ++++++++++++-- 6 files changed, 58 insertions(+), 35 deletions(-) diff --git a/lxd/network_acls.go b/lxd/network_acls.go index 4edf4a37a542..aea941b34be5 100644 --- a/lxd/network_acls.go +++ b/lxd/network_acls.go @@ -146,7 +146,8 @@ var networkACLLogCmd = APIEndpoint{ func networkACLsGet(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + requestProjectName := request.ProjectParam(r) + effectiveProjectName, _, err := project.NetworkProject(s.DB.Cluster, requestProjectName) if err != nil { return response.SmartError(err) } @@ -159,7 +160,7 @@ func networkACLsGet(d *Daemon, r *http.Request) response.Response { var err error // Get list of Network ACLs. - aclNames, err = tx.GetNetworkACLs(ctx, projectName) + aclNames, err = tx.GetNetworkACLs(ctx, effectiveProjectName) return err }) @@ -167,7 +168,7 @@ func networkACLsGet(d *Daemon, r *http.Request) response.Response { return response.InternalError(err) } - request.SetCtxValue(r, request.CtxEffectiveProjectName, projectName) + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) userHasPermission, err := s.Authorizer.GetPermissionChecker(r.Context(), auth.EntitlementCanView, entity.TypeNetworkACL) if err != nil { return response.SmartError(err) @@ -176,14 +177,14 @@ func networkACLsGet(d *Daemon, r *http.Request) response.Response { resultString := []string{} resultMap := []api.NetworkACL{} for _, aclName := range aclNames { - if !userHasPermission(entity.NetworkACLURL(projectName, aclName)) { + if !userHasPermission(entity.NetworkACLURL(requestProjectName, aclName)) { continue } if !recursion { resultString = append(resultString, fmt.Sprintf("/%s/network-acls/%s", version.APIVersion, aclName)) } else { - netACL, err := acl.LoadByName(s, projectName, aclName) + netACL, err := acl.LoadByName(s, effectiveProjectName, aclName) if err != nil { continue } diff --git a/lxd/network_allocations.go b/lxd/network_allocations.go index e626d00f655a..e62bf8c553ff 100644 --- a/lxd/network_allocations.go +++ b/lxd/network_allocations.go @@ -76,18 +76,20 @@ var networkAllocationsCmd = APIEndpoint{ func networkAllocationsGet(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkProject(d.State().DB.Cluster, request.ProjectParam(r)) + requestProjectName := request.ProjectParam(r) + effectiveProjectName, _, err := project.NetworkProject(d.State().DB.Cluster, requestProjectName) if err != nil { return response.SmartError(err) } + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) allProjects := shared.IsTrue(request.QueryParam(r, "all-projects")) var projectNames []string err = d.db.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { // Figure out the projects to retrieve. if !allProjects { - projectNames = []string{projectName} + projectNames = []string{effectiveProjectName} } else { // Get all project names if no specific project requested. projectNames, err = dbCluster.GetProjectNames(ctx, tx.Tx()) @@ -126,6 +128,13 @@ func networkAllocationsGet(d *Daemon, r *http.Request) response.Response { // Then, get all the networks, their network forwards and their network load balancers. for _, projectName := range projectNames { + // The auth.PermissionChecker expects the url to contain the request project (not the effective project). + // So when getting networks in a single project, ensure we use the request project name. + authCheckProjectName := projectName + if !allProjects { + authCheckProjectName = requestProjectName + } + var networkNames []string err := d.db.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { @@ -141,7 +150,7 @@ func networkAllocationsGet(d *Daemon, r *http.Request) response.Response { // Get all the networks, their attached instances, their network forwards and their network load balancers. for _, networkName := range networkNames { - if !userHasPermission(entity.NetworkURL(projectName, networkName)) { + if !userHasPermission(entity.NetworkURL(authCheckProjectName, networkName)) { continue } diff --git a/lxd/network_zones.go b/lxd/network_zones.go index f1eab4b0b0a9..c8921f067a69 100644 --- a/lxd/network_zones.go +++ b/lxd/network_zones.go @@ -194,7 +194,8 @@ func networkZoneAccessHandler(entitlement auth.Entitlement) func(d *Daemon, r *h func networkZonesGet(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, _, err := project.NetworkZoneProject(s.DB.Cluster, request.ProjectParam(r)) + requestProjectName := request.ProjectParam(r) + effectiveProjectName, _, err := project.NetworkZoneProject(s.DB.Cluster, requestProjectName) if err != nil { return response.SmartError(err) } @@ -205,7 +206,7 @@ func networkZonesGet(d *Daemon, r *http.Request) response.Response { err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { // Get list of Network zones. - zoneNames, err = tx.GetNetworkZonesByProject(ctx, projectName) + zoneNames, err = tx.GetNetworkZonesByProject(ctx, effectiveProjectName) return err }) @@ -213,7 +214,7 @@ func networkZonesGet(d *Daemon, r *http.Request) response.Response { return response.InternalError(err) } - request.SetCtxValue(r, request.CtxEffectiveProjectName, projectName) + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) userHasPermission, err := s.Authorizer.GetPermissionChecker(r.Context(), auth.EntitlementCanView, entity.TypeNetworkZone) if err != nil { return response.InternalError(err) @@ -222,14 +223,14 @@ func networkZonesGet(d *Daemon, r *http.Request) response.Response { resultString := []string{} resultMap := []api.NetworkZone{} for _, zoneName := range zoneNames { - if !userHasPermission(entity.NetworkZoneURL(projectName, zoneName)) { + if !userHasPermission(entity.NetworkZoneURL(requestProjectName, zoneName)) { continue } if !recursion { resultString = append(resultString, api.NewURL().Path(version.APIVersion, "network-zones", zoneName).String()) } else { - netzone, err := zone.LoadByNameAndProject(s, projectName, zoneName) + netzone, err := zone.LoadByNameAndProject(s, effectiveProjectName, zoneName) if err != nil { continue } diff --git a/lxd/networks.go b/lxd/networks.go index 1ebc2fd232a2..7eac1ca082ae 100644 --- a/lxd/networks.go +++ b/lxd/networks.go @@ -227,12 +227,13 @@ func networkAccessHandler(entitlement auth.Entitlement) func(d *Daemon, r *http. func networksGet(d *Daemon, r *http.Request) response.Response { s := d.State() - projectName, reqProject, err := project.NetworkProject(s.DB.Cluster, request.ProjectParam(r)) + requestProjectName := request.ProjectParam(r) + effectiveProjectName, reqProject, err := project.NetworkProject(s.DB.Cluster, requestProjectName) if err != nil { return response.SmartError(err) } - request.SetCtxValue(r, request.CtxEffectiveProjectName, projectName) + request.SetCtxValue(r, request.CtxEffectiveProjectName, effectiveProjectName) recursion := util.IsRecursionRequest(r) @@ -240,7 +241,7 @@ func networksGet(d *Daemon, r *http.Request) response.Response { err = s.DB.Cluster.Transaction(r.Context(), func(ctx context.Context, tx *db.ClusterTx) error { // Get list of managed networks (that may or may not have network interfaces on the host). - networkNames, err = tx.GetNetworks(ctx, projectName) + networkNames, err = tx.GetNetworks(ctx, effectiveProjectName) return err }) @@ -249,7 +250,7 @@ func networksGet(d *Daemon, r *http.Request) response.Response { } // Get list of actual network interfaces on the host as well if the effective project is Default. - if projectName == api.ProjectDefaultName { + if effectiveProjectName == api.ProjectDefaultName { ifaces, err := net.Interfaces() if err != nil { return response.InternalError(err) @@ -276,14 +277,14 @@ func networksGet(d *Daemon, r *http.Request) response.Response { resultString := []string{} resultMap := []api.Network{} for _, networkName := range networkNames { - if !userHasPermission(entity.NetworkURL(projectName, networkName)) { + if !userHasPermission(entity.NetworkURL(requestProjectName, networkName)) { continue } if !recursion { resultString = append(resultString, fmt.Sprintf("/%s/networks/%s", version.APIVersion, networkName)) } else { - net, err := doNetworkGet(s, r, s.ServerClustered, projectName, reqProject.Config, networkName) + net, err := doNetworkGet(s, r, s.ServerClustered, requestProjectName, reqProject.Config, networkName) if err != nil { continue } @@ -853,11 +854,6 @@ func networkGet(d *Daemon, r *http.Request) response.Response { return resp } - effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) - if err != nil { - return response.SmartError(err) - } - details, err := request.GetCtxValue[networkDetails](r.Context(), ctxNetworkDetails) if err != nil { return response.SmartError(err) @@ -868,7 +864,7 @@ func networkGet(d *Daemon, r *http.Request) response.Response { allNodes = true } - n, err := doNetworkGet(s, r, allNodes, effectiveProjectName, details.requestProject.Config, details.networkName) + n, err := doNetworkGet(s, r, allNodes, details.requestProject.Name, details.requestProject.Config, details.networkName) if err != nil { return response.SmartError(err) } @@ -881,20 +877,25 @@ func networkGet(d *Daemon, r *http.Request) response.Response { // doNetworkGet returns information about the specified network. // If the network being requested is a managed network and allNodes is true then node specific config is removed. // Otherwise if allNodes is false then the network's local status is returned. -func doNetworkGet(s *state.State, r *http.Request, allNodes bool, projectName string, reqProjectConfig map[string]string, networkName string) (api.Network, error) { +func doNetworkGet(s *state.State, r *http.Request, allNodes bool, requestProjectName string, reqProjectConfig map[string]string, networkName string) (api.Network, error) { + effectiveProjectName, err := request.GetCtxValue[string](r.Context(), request.CtxEffectiveProjectName) + if err != nil { + return api.Network{}, err + } + // Ignore veth pairs (for performance reasons). if strings.HasPrefix(networkName, "veth") { return api.Network{}, api.StatusErrorf(http.StatusNotFound, "Network not found") } // Get some information. - n, err := network.LoadByName(s, projectName, networkName) + n, err := network.LoadByName(s, effectiveProjectName, networkName) if err != nil && !api.StatusErrorCheck(err, http.StatusNotFound) { return api.Network{}, fmt.Errorf("Failed loading network: %w", err) } // Don't allow retrieving info about the local server interfaces when not using default project. - if projectName != api.ProjectDefaultName && n == nil { + if effectiveProjectName != api.ProjectDefaultName && n == nil { return api.Network{}, api.StatusErrorf(http.StatusNotFound, "Network not found") } @@ -922,7 +923,7 @@ func doNetworkGet(s *state.State, r *http.Request, allNodes bool, projectName st apiNet.Description = n.Description() apiNet.Type = n.Type() - err = s.Authorizer.CheckPermission(r.Context(), entity.NetworkURL(projectName, networkName), auth.EntitlementCanEdit) + err = s.Authorizer.CheckPermission(r.Context(), entity.NetworkURL(requestProjectName, networkName), auth.EntitlementCanEdit) if err != nil && !auth.IsDeniedError(err) { return api.Network{}, err } else if err == nil { @@ -963,7 +964,7 @@ func doNetworkGet(s *state.State, r *http.Request, allNodes bool, projectName st networkID = n.ID() } - usedBy, err := network.UsedBy(s, projectName, networkID, apiNet.Name, apiNet.Type, false) + usedBy, err := network.UsedBy(s, effectiveProjectName, networkID, apiNet.Name, apiNet.Type, false) if err != nil { return api.Network{}, err } diff --git a/lxd/profiles.go b/lxd/profiles.go index 22318f55f538..d2aaa587996e 100644 --- a/lxd/profiles.go +++ b/lxd/profiles.go @@ -203,7 +203,8 @@ func profileAccessHandler(entitlement auth.Entitlement) func(d *Daemon, r *http. func profilesGet(d *Daemon, r *http.Request) response.Response { s := d.State() - p, err := project.ProfileProject(s.DB.Cluster, request.ProjectParam(r)) + requestProjectName := request.ProjectParam(r) + p, err := project.ProfileProject(s.DB.Cluster, requestProjectName) if err != nil { return response.SmartError(err) } @@ -231,7 +232,7 @@ func profilesGet(d *Daemon, r *http.Request) response.Response { if recursion { apiProfiles = make([]*api.Profile, 0, len(profiles)) for _, profile := range profiles { - if !userHasPermission(entity.ProfileURL(p.Name, profile.Name)) { + if !userHasPermission(entity.ProfileURL(requestProjectName, profile.Name)) { continue } @@ -250,7 +251,7 @@ func profilesGet(d *Daemon, r *http.Request) response.Response { } else { profileURLs = make([]string, 0, len(profiles)) for _, profile := range profiles { - profileURL := entity.ProfileURL(p.Name, profile.Name) + profileURL := entity.ProfileURL(requestProjectName, profile.Name) if userHasPermission(profileURL) { profileURLs = append(profileURLs, profileURL.String()) } diff --git a/lxd/storage_volumes.go b/lxd/storage_volumes.go index 4f947bbd0ee0..48f03b5349cc 100644 --- a/lxd/storage_volumes.go +++ b/lxd/storage_volumes.go @@ -798,13 +798,23 @@ func storagePoolVolumesGet(d *Daemon, r *http.Request) response.Response { return response.SmartError(err) } + // The auth.PermissionChecker expects the url to contain the request project (not the effective project). + // So when getting networks in a single project, ensure we use the request project name. + authCheckProject := func(dbProject string) string { + if !allProjects { + return requestProjectName + } + + return dbProject + } + if util.IsRecursionRequest(r) { volumes := make([]*api.StorageVolume, 0, len(dbVolumes)) for _, dbVol := range dbVolumes { vol := &dbVol.StorageVolume volumeName, _, _ := api.GetParentAndSnapshotName(vol.Name) - if !userHasPermission(entity.StorageVolumeURL(vol.Project, vol.Location, dbVol.Pool, dbVol.Type, volumeName)) { + if !userHasPermission(entity.StorageVolumeURL(authCheckProject(vol.Project), vol.Location, dbVol.Pool, dbVol.Type, volumeName)) { continue } @@ -828,7 +838,7 @@ func storagePoolVolumesGet(d *Daemon, r *http.Request) response.Response { for _, dbVol := range dbVolumes { volumeName, _, _ := api.GetParentAndSnapshotName(dbVol.Name) - if !userHasPermission(entity.StorageVolumeURL(dbVol.Project, dbVol.Location, dbVol.Pool, dbVol.Type, volumeName)) { + if !userHasPermission(entity.StorageVolumeURL(authCheckProject(dbVol.Project), dbVol.Location, dbVol.Pool, dbVol.Type, volumeName)) { continue } From 30ee62afd3c312da3f0e0bc1ed9bb7f4c7e6c781 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 16:21:31 +0100 Subject: [PATCH 088/169] lxd/auth/drivers: Remove effective project check from TLS authorizer. The current usage of effective project in the TLS authorizer checks that the project in the given entity URL is the same as the effective project. But since the effective project is always set (for entity type with feature flags), this means we're not checking that the entity is in identities' project list. (This is ok, because the caller cannot list entities in a project that they do not have access to, but is not correct). We now expect that all URLs passed into the PermissionChecker returned by this function will contain the request project, so we can just check it against the project list. Signed-off-by: Mark Laing --- lxd/auth/drivers/tls.go | 8 -------- 1 file changed, 8 deletions(-) diff --git a/lxd/auth/drivers/tls.go b/lxd/auth/drivers/tls.go index 93d74edfae3a..8a25fb61accb 100644 --- a/lxd/auth/drivers/tls.go +++ b/lxd/auth/drivers/tls.go @@ -10,7 +10,6 @@ import ( "github.com/canonical/lxd/lxd/auth" "github.com/canonical/lxd/lxd/identity" - "github.com/canonical/lxd/lxd/request" "github.com/canonical/lxd/shared" "github.com/canonical/lxd/shared/api" "github.com/canonical/lxd/shared/entity" @@ -148,8 +147,6 @@ func (t *tls) GetPermissionChecker(ctx context.Context, entitlement auth.Entitle return allowFunc(false), nil } - effectiveProject, _ := request.GetCtxValue[string](ctx, request.CtxEffectiveProjectName) - // Filter objects by project. return func(entityURL *api.URL) bool { eType, project, _, _, err := entity.ParseURL(entityURL.URL) @@ -164,11 +161,6 @@ func (t *tls) GetPermissionChecker(ctx context.Context, entitlement auth.Entitle return false } - // If an effective project has been set in the request context. We expect all entities to be in that project. - if effectiveProject != "" { - return project == effectiveProject - } - // Otherwise, check if the project is in the list of allowed projects for the entity. return shared.ValueInSlice(project, id.Projects) }, nil From 3ce92c0c6f8051c9d6bccf9f9b4c8965f800f59d Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 16:24:47 +0100 Subject: [PATCH 089/169] lxd/auth/drivers: Handle effective projects in the OpenFGA driver. The OpenFGA driver will not allow "punching through" to the default project. Instead we will re-write the given entity URL to use the effective project when performing the auth check. An administrator can allow individual permissions against resources in the effective project if necessary. Signed-off-by: Mark Laing --- lxd/auth/drivers/openfga.go | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/lxd/auth/drivers/openfga.go b/lxd/auth/drivers/openfga.go index 4002e83f25b4..9fc2679a61b8 100644 --- a/lxd/auth/drivers/openfga.go +++ b/lxd/auth/drivers/openfga.go @@ -19,6 +19,7 @@ import ( "github.com/canonical/lxd/lxd/auth" "github.com/canonical/lxd/lxd/identity" + "github.com/canonical/lxd/lxd/request" "github.com/canonical/lxd/shared" "github.com/canonical/lxd/shared/api" "github.com/canonical/lxd/shared/entity" @@ -175,6 +176,14 @@ func (e *embeddedOpenFGA) CheckPermission(ctx context.Context, entityURL *api.UR return fmt.Errorf("Authorization driver failed to parse entity URL %q: %w", entityURL.String(), err) } + // The project in the given URL may be for a project that does not have a feature enabled, in this case the auth check + // will fail because the resource doesn't actually exist in that project. To correct this, we use the effective project from + // the request context if present. + effectiveProject, _ := request.GetCtxValue[string](ctx, request.CtxEffectiveProjectName) + if effectiveProject != "" { + projectName = effectiveProject + } + // Construct the URL in a standardised form (adding the project parameter if it was not present). entityURL, err = entityType.URL(projectName, location, pathArguments...) if err != nil { @@ -404,6 +413,14 @@ func (e *embeddedOpenFGA) GetPermissionChecker(ctx context.Context, entitlement return false } + // The project in the given URL may be for a project that does not have a feature enabled, in this case the auth check + // will fail because the resource doesn't actually exist in that project. To correct this, we use the effective project from + // the request context if present. + effectiveProject, _ := request.GetCtxValue[string](ctx, request.CtxEffectiveProjectName) + if effectiveProject != "" { + projectName = effectiveProject + } + standardisedEntityURL, err := entityType.URL(projectName, location, pathArguments...) if err != nil { l.Error("Failed to standardise permission checker entity URL", logger.Ctx{"url": entityURL.String(), "err": err}) From 0850ee901439604ce068aaaede98c13ca0b7da17 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Wed, 7 Aug 2024 16:25:33 +0100 Subject: [PATCH 090/169] lxd/auth/drivers: Update comments on Authorizer method implementations. Signed-off-by: Mark Laing --- lxd/auth/drivers/openfga.go | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/lxd/auth/drivers/openfga.go b/lxd/auth/drivers/openfga.go index 9fc2679a61b8..e1b0fa8b213a 100644 --- a/lxd/auth/drivers/openfga.go +++ b/lxd/auth/drivers/openfga.go @@ -113,7 +113,19 @@ func (e *embeddedOpenFGA) load(ctx context.Context, identityCache *identity.Cach } // CheckPermission checks whether the user who sent the request has the given entitlement on the given entity using the -// embedded OpenFGA server. +// embedded OpenFGA server. A http.StatusNotFound error is returned when the entity does not exist, or when the entity +// exists but the caller does not have permission to view it. A http.StatusForbidden error is returned if the caller has +// permission to view the entity, but does not have the given entitlement. +// +// Note: Internally we call (openfgav1.OpenFGAServiceServer).Check to implement this. Since our implementation of +// storage.OpenFGADatastore pulls data directly from the database, we need to be careful about the handling of entities +// contained within projects that do not have features enabled. For example, if the given entity URL is for a network in +// project "foo", but project "foo" does not have `features.networks=true`, then we must not use project "foo" in our +// authorization check because this network does not exist in the database. We will always expect the given entity URL +// to contain the request project name, but we expect that request.CtxEffectiveProjectName will be set in the request +// context. The driver will rewrite the project name with the effective project name for the purpose of the authorization +// check, but will not automatically allow "punching through" to the effective (default) project. An administrator can +// allow specific permissions against those entities. func (e *embeddedOpenFGA) CheckPermission(ctx context.Context, entityURL *api.URL, entitlement auth.Entitlement) error { logCtx := logger.Ctx{"entity_url": entityURL.String(), "entitlement": entitlement} ctx, cancel := context.WithTimeout(ctx, 5*time.Second) @@ -278,7 +290,12 @@ func (e *embeddedOpenFGA) CheckPermission(ctx context.Context, entityURL *api.UR return nil } -// GetPermissionChecker returns a PermissionChecker using the embedded OpenFGA server. +// GetPermissionChecker returns an auth.PermissionChecker using the embedded OpenFGA server. +// +// Note: As with CheckPermission, we need to be careful about the usage of this function for entity types that may not +// be enabled within a project. For these cases request.CtxEffectiveProjectName must be set in the given context before +// this function is called. The returned auth.PermissionChecker will expect entity URLs to contain the request URL. These +// will be re-written to contain the effective project if set, so that they correspond to the list returned by OpenFGA. func (e *embeddedOpenFGA) GetPermissionChecker(ctx context.Context, entitlement auth.Entitlement, entityType entity.Type) (auth.PermissionChecker, error) { logCtx := logger.Ctx{"entity_type": entityType, "entitlement": entitlement} ctx, cancel := context.WithTimeout(ctx, 5*time.Second) From a181704cd4a32272d3955a247fd0fd39b2f393e2 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Thu, 8 Aug 2024 13:18:10 +0100 Subject: [PATCH 091/169] test/includes: Add helper for setting up object storage pools. Signed-off-by: Mark Laing --- test/includes/storage.sh | 53 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 53 insertions(+) diff --git a/test/includes/storage.sh b/test/includes/storage.sh index 9cb4fa98e5ab..9f3f001c8faa 100644 --- a/test/includes/storage.sh +++ b/test/includes/storage.sh @@ -130,3 +130,56 @@ umount_loops() { fi } +create_object_storage_pool() { + poolName="${1}" + lxd_backend=$(storage_backend "$LXD_DIR") + + # Pool cannot already exist. + if lxc storage show "${poolName}"; then + echo "Storage pool pool ${poolName} already exists" + exit 1 + fi + + # Check cephobject.radosgw.endpoint is required for cephobject pools. + if [ "${lxd_backend}" = "ceph" ]; then + lxc storage create "${poolName}" cephobject cephobject.radosgw.endpoint="${LXD_CEPH_CEPHOBJECT_RADOSGW}" + else + + # Create a loop device for dir pools as MinIO doesn't support running on tmpfs (which the test suite can do). + # This is because tmpfs does not support O_direct which MinIO requires. This landed in kernel 6.6 (https://kernelnewbies.org/Linux_6.6#TMPFS). + if [ "${lxd_backend}" = "dir" ]; then + mkdir -p "${TEST_DIR}/s3/${poolName}" + configure_loop_device loop_file_1 loop_device_1 + # shellcheck disable=SC2154 + mkfs.ext4 "${loop_device_1}" + mount "${loop_device_1}" "${TEST_DIR}/s3/${poolName}" + mkdir "${TEST_DIR}/s3/${poolName}/objects" + lxc storage create "${poolName}" dir source="${TEST_DIR}/s3/${poolName}/objects" + # shellcheck disable=SC2154 + echo "${loop_device_1}" > "${TEST_DIR}/s3/${poolName}/dev" + # shellcheck disable=SC2154 + echo "${loop_file_1}" > "${TEST_DIR}/s3/${poolName}/file" + else + lxc storage create "${poolName}" "${lxd_backend}" + fi + + buckets_addr="127.0.0.1:$(local_tcp_port)" + lxc config set core.storage_buckets_address "${buckets_addr}" + fi +} + +delete_object_storage_pool() { + poolName="${1}" + lxd_backend=$(storage_backend "$LXD_DIR") + + lxc storage delete "${poolName}" + if [ "$lxd_backend" = "dir" ]; then + loop_file="$(cat "${TEST_DIR}/s3/${poolName}/file")" + loop_device="$(cat "${TEST_DIR}/s3/${poolName}/dev")" + umount "${TEST_DIR}/s3/${poolName}" + rmdir "${TEST_DIR}/s3/${poolName}" + + # shellcheck disable=SC2154 + deconfigure_loop_device "${loop_file}" "${loop_device}" + fi +} \ No newline at end of file From 3eecce38f3959b8bf8e54374397bbdbf40cd3a1f Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Thu, 8 Aug 2024 13:18:40 +0100 Subject: [PATCH 092/169] test/suites: Use storage pool helper in bucket tests. Signed-off-by: Mark Laing --- test/suites/storage_buckets.sh | 37 +++++----------------------------- 1 file changed, 5 insertions(+), 32 deletions(-) diff --git a/test/suites/storage_buckets.sh b/test/suites/storage_buckets.sh index 483bae4661c2..e779ec7e6b68 100644 --- a/test/suites/storage_buckets.sh +++ b/test/suites/storage_buckets.sh @@ -42,33 +42,16 @@ test_storage_buckets() { return fi - poolName=$(lxc profile device get default root pool) + poolName="s3" bucketPrefix="lxd$$" + create_object_storage_pool "${poolName}" + # Check cephobject.radosgw.endpoint is required for cephobject pools. if [ "$lxd_backend" = "ceph" ]; then - ! lxc storage create s3 cephobject || false - lxc storage create s3 cephobject cephobject.radosgw.endpoint="${LXD_CEPH_CEPHOBJECT_RADOSGW}" - lxc storage show s3 - poolName="s3" s3Endpoint="${LXD_CEPH_CEPHOBJECT_RADOSGW}" else - # Create a loop device for dir pools as MinIO doesn't support running on tmpfs (which the test suite can do). - if [ "$lxd_backend" = "dir" ]; then - configure_loop_device loop_file_1 loop_device_1 - # shellcheck disable=SC2154 - mkfs.ext4 "${loop_device_1}" - mkdir "${TEST_DIR}/${bucketPrefix}" - mount "${loop_device_1}" "${TEST_DIR}/${bucketPrefix}" - losetup -d "${loop_device_1}" - mkdir "${TEST_DIR}/${bucketPrefix}/s3" - lxc storage create s3 dir source="${TEST_DIR}/${bucketPrefix}/s3" - poolName="s3" - fi - - buckets_addr="127.0.0.1:$(local_tcp_port)" - lxc config set core.storage_buckets_address "${buckets_addr}" - s3Endpoint="https://${buckets_addr}" + s3Endpoint="https://$(lxc config get core.storage_buckets_address)" fi # Check bucket name validation. @@ -183,15 +166,5 @@ test_storage_buckets() { ! lxc storage bucket list "${poolName}" | grep -F "${bucketPrefix}.foo" || false ! lxc storage bucket show "${poolName}" "${bucketPrefix}.foo" || false - if [ "$lxd_backend" = "ceph" ] || [ "$lxd_backend" = "dir" ]; then - lxc storage delete "${poolName}" - fi - - if [ "$lxd_backend" = "dir" ]; then - umount "${TEST_DIR}/${bucketPrefix}" - rmdir "${TEST_DIR}/${bucketPrefix}" - - # shellcheck disable=SC2154 - deconfigure_loop_device "${loop_file_1}" "${loop_device_1}" - fi + delete_object_storage_pool "${poolName}" } From 2f9af9f28e45809d4dd59c969668e3f731150b32 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Thu, 8 Aug 2024 13:19:14 +0100 Subject: [PATCH 093/169] test/suites: Improve coverage of TLS restrictions tests. Signed-off-by: Mark Laing --- test/suites/tls_restrictions.sh | 214 ++++++++++++++++++++++++++++++-- 1 file changed, 205 insertions(+), 9 deletions(-) diff --git a/test/suites/tls_restrictions.sh b/test/suites/tls_restrictions.sh index d898d864b078..461a496c7384 100644 --- a/test/suites/tls_restrictions.sh +++ b/test/suites/tls_restrictions.sh @@ -73,9 +73,8 @@ test_tls_restrictions() { lxc_remote image show localhost:testimage --project default # Check we can export the public image: - lxc image export localhost:testimage "${LXD_DIR}/" --project default - [ "${test_image_fingerprint}" = "$(sha256sum "${LXD_DIR}/${test_image_fingerprint}.tar.xz" | cut -d' ' -f1)" ] - rm "${LXD_DIR}/${test_image_fingerprint}.tar.xz" + lxc image export localhost:testimage "${TEST_DIR}/" --project default + [ "${test_image_fingerprint}" = "$(sha256sum "${TEST_DIR}/${test_image_fingerprint}.tar.xz" | cut -d' ' -f1)" ] # While the image is public, copy it to the blah project and create an alias for it. lxc_remote image copy localhost:testimage localhost: --project default --target-project blah @@ -96,43 +95,240 @@ test_tls_restrictions() { # There should now be two volume URLs, one instance, one image, and one profile URL in the used-by list. [ "$(lxc_remote project list localhost: --format csv | cut -d, -f9)" = "5" ] - # Delete resources in project blah so that we can modify project limits. + # Delete resources in project blah so that we can modify project features. lxc_remote delete localhost:blah-instance --project blah lxc_remote storage volume delete "localhost:${pool_name}" blah-volume --project blah - test_image_fingerprint="$(lxc_remote image list localhost: --format csv --columns f --project blah)" lxc_remote image delete "localhost:${test_image_fingerprint}" --project blah # Ensure we can create and view resources that are not enabled for the project (e.g. their effective project is # the default project). - # Networks are disabled when projects are created. + ### IMAGES (initial value is true for new projects) + + # Unset the images feature (the default is false). + lxc project unset blah features.images + + # The test image in the default project should be visible via project blah. + lxc_remote image info "localhost:${test_image_fingerprint}" --project blah + lxc_remote image show "localhost:${test_image_fingerprint}" --project blah + test_image_fingerprint_short="$(echo "${test_image_fingerprint}" | cut -c1-12)" + lxc_remote image list localhost: --project blah | grep -F "${test_image_fingerprint_short}" + + # The restricted client can't view it via project default. + ! lxc_remote image info "localhost:${test_image_fingerprint}" --project default || false + ! lxc_remote image show "localhost:${test_image_fingerprint}" --project default || false + ! lxc_remote image list localhost: --project default | grep -F "${test_image_fingerprint_short}" || false + + # The restricted client can edit the image. + lxc_remote image set-property "localhost:${test_image_fingerprint}" requirements.secureboot true --project blah + lxc_remote image unset-property "localhost:${test_image_fingerprint}" requirements.secureboot --project blah + + # The restricted client can delete the image. + lxc_remote image delete "localhost:${test_image_fingerprint}" --project blah + + # The restricted client can create images. + lxc_remote image import "${TEST_DIR}/${test_image_fingerprint}.tar.xz" localhost: --project blah + + # Clean up + lxc_remote image delete "localhost:${test_image_fingerprint}" --project blah + + + ### NETWORKS (initial value is false in new projects). + + # Create a network in the default project. + networkName="net$$" + lxc network create "${networkName}" --project default + + # The network we created in the default project is visible in project blah. + lxc_remote network show "localhost:${networkName}" --project blah + lxc_remote network list localhost: --project blah | grep -F "${networkName}" + + # The restricted client can't view it via project default. + ! lxc_remote network show "localhost:${networkName}" --project default || false + ! lxc_remote network list localhost: --project default | grep -F "${networkName}" || false + + # The restricted client can edit the network. + lxc_remote network set "localhost:${networkName}" user.foo=bar --project blah + + # The restricted client can delete the network. + lxc_remote network delete "localhost:${networkName}" --project blah + + # Create a network in the blah project. lxc_remote network create localhost:blah-network --project blah + + # Network is visible to restricted client in project blah. lxc_remote network show localhost:blah-network --project blah lxc_remote network list localhost: --project blah | grep blah-network - lxc_remote network rm localhost:blah-network --project blah - # Network zones are disabled when projects are created. + # The network is actually in the default project. + lxc network show blah-network --project default + + # The restricted client can't view it via the default project. + ! lxc_remote network show localhost:blah-network --project default || false + + # The restricted client can delete the network. + lxc_remote network delete localhost:blah-network --project blah + + + ### NETWORK ZONES (initial value is false in new projects). + + # Create a network zone in the default project. + zoneName="zone$$" + lxc network zone create "${zoneName}" --project default + + # The network zone we created in the default project is visible in project blah. + lxc_remote network zone show "localhost:${zoneName}" --project blah + lxc_remote network zone list localhost: --project blah | grep -F "${zoneName}" + + # The restricted client can't view it via project default. + ! lxc_remote network zone show "localhost:${zoneName}" --project default || false + ! lxc_remote network zone list localhost: --project default | grep -F "${zoneName}" || false + + # The restricted client can edit the network zone. + lxc_remote network zone set "localhost:${zoneName}" user.foo=bar --project blah + + # The restricted client can delete the network zone. + lxc_remote network zone delete "localhost:${zoneName}" --project blah + + # Create a network zone in the blah project. lxc_remote network zone create localhost:blah-zone --project blah + + # Network zone is visible to restricted client in project blah. lxc_remote network zone show localhost:blah-zone --project blah lxc_remote network zone list localhost: --project blah | grep blah-zone + + # The network zone is actually in the default project. + lxc network zone show blah-zone --project default + + # The restricted client can't view it via the default project. + ! lxc_remote network zone show localhost:blah-zone --project default || false + + # The restricted client can delete the network zone. lxc_remote network zone delete localhost:blah-zone --project blah + + ### PROFILES (initial value is true for new projects) + # Unset the profiles feature (the default is false). lxc project unset blah features.profiles + + # Create a profile in the default project. + profileName="prof$$" + lxc profile create "${profileName}" --project default + + # The profile we created in the default project is visible in project blah. + lxc_remote profile show "localhost:${profileName}" --project blah + lxc_remote profile list localhost: --project blah | grep -F "${profileName}" + + # The restricted client can't view it via project default. + ! lxc_remote profile show "localhost:${profileName}" --project default || false + ! lxc_remote profile list localhost: --project default | grep -F "${profileName}" || false + + # The restricted client can edit the profile. + lxc_remote profile set "localhost:${profileName}" user.foo=bar --project blah + + # The restricted client can delete the profile. + lxc_remote profile delete "localhost:${profileName}" --project blah + + # Create a profile in the blah project. lxc_remote profile create localhost:blah-profile --project blah + + # Profile is visible to restricted client in project blah. lxc_remote profile show localhost:blah-profile --project blah lxc_remote profile list localhost: --project blah | grep blah-profile + + # The profile is actually in the default project. + lxc profile show blah-profile --project default + + # The restricted client can't view it via the default project. + ! lxc_remote profile show localhost:blah-profile --project default || false + + # The restricted client can delete the profile. lxc_remote profile delete localhost:blah-profile --project blah + + ### STORAGE VOLUMES (initial value is true for new projects) + # Unset the storage volumes feature (the default is false). lxc project unset blah features.storage.volumes + + # Create a storage volume in the default project. + volName="vol$$" + lxc storage volume create "${pool_name}" "${volName}" --project default + + # The storage volume we created in the default project is visible in project blah. + lxc_remote storage volume show "localhost:${pool_name}" "${volName}" --project blah + lxc_remote storage volume list "localhost:${pool_name}" --project blah | grep -F "${volName}" + + # The restricted client can't view it via project default. + ! lxc_remote storage volume show "localhost:${pool_name}" "${volName}" --project default || false + ! lxc_remote storage volume list "localhost:${pool_name}" --project default | grep -F "${volName}" || false + + # The restricted client can edit the storage volume. + lxc_remote storage volume set "localhost:${pool_name}" "${volName}" user.foo=bar --project blah + + # The restricted client can delete the storage volume. + lxc_remote storage volume delete "localhost:${pool_name}" "${volName}" --project blah + + # Create a storage volume in the blah project. lxc_remote storage volume create "localhost:${pool_name}" blah-volume --project blah + + # Storage volume is visible to restricted client in project blah. lxc_remote storage volume show "localhost:${pool_name}" blah-volume --project blah - lxc_remote storage volume list "localhost:${pool_name}" --project blah lxc_remote storage volume list "localhost:${pool_name}" --project blah | grep blah-volume + + # The storage volume is actually in the default project. + lxc storage volume show "${pool_name}" blah-volume --project default + + # The restricted client can't view it via the default project. + ! lxc_remote storage volume show "localhost:${pool_name}" blah-volume --project default || false + + # The restricted client can delete the storage volume. lxc_remote storage volume delete "localhost:${pool_name}" blah-volume --project blah + ### STORAGE BUCKETS (initial value is true for new projects) + create_object_storage_pool s3 + + # Unset the storage buckets feature (the default is false). + lxc project unset blah features.storage.buckets + + # Create a storage bucket in the default project. + bucketName="bucket$$" + lxc storage bucket create s3 "${bucketName}" --project default + + # The storage bucket we created in the default project is visible in project blah. + lxc_remote storage bucket show localhost:s3 "${bucketName}" --project blah + lxc_remote storage bucket list localhost:s3 --project blah | grep -F "${bucketName}" + + # The restricted client can't view it via project default. + ! lxc_remote storage bucket show localhost:s3 "${bucketName}" --project default || false + ! lxc_remote storage bucket list localhost:s3 --project default | grep -F "${bucketName}" || false + + # The restricted client can edit the storage bucket. + lxc_remote storage bucket set localhost:s3 "${bucketName}" user.foo=bar --project blah + + # The restricted client can delete the storage bucket. + lxc_remote storage bucket delete localhost:s3 "${bucketName}" --project blah + + # Create a storage bucket in the blah project. + lxc_remote storage bucket create localhost:s3 blah-bucket --project blah + + # Storage bucket is visible to restricted client in project blah. + lxc_remote storage bucket show localhost:s3 blah-bucket --project blah + lxc_remote storage bucket list localhost:s3 --project blah | grep blah-bucket + + # The storage bucket is actually in the default project. + lxc storage bucket show s3 blah-bucket --project default + + # The restricted client can't view it via the default project. + ! lxc_remote storage bucket show localhost:s3 blah-bucket --project default || false + + # The restricted client can delete the storage bucket. + lxc_remote storage bucket delete localhost:s3 blah-bucket --project blah + # Cleanup + delete_object_storage_pool s3 + rm "${TEST_DIR}/${test_image_fingerprint}.tar.xz" lxc config trust show "${FINGERPRINT}" | sed -e "s/restricted: true/restricted: false/" | lxc config trust edit "${FINGERPRINT}" lxc project delete blah } From 6ebeaa08b23213c7e9b8d9a78ea2140856a485b6 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Thu, 8 Aug 2024 16:29:19 +0100 Subject: [PATCH 094/169] test/suites: Test project feature interaction with fine-grained auth. This commit copies the majority of the updated `tls_restrictions` test and asserts the behaviour of the fine-grained authorization driver. Signed-off-by: Mark Laing --- test/suites/auth.sh | 367 +++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 366 insertions(+), 1 deletion(-) diff --git a/test/suites/auth.sh b/test/suites/auth.sh index f058e9a04c8d..c227c6de1a83 100644 --- a/test/suites/auth.sh +++ b/test/suites/auth.sh @@ -133,6 +133,9 @@ EOF # Perform access checks fine_grained_authorization + # Perform access check compatibility with project feature flags + auth_project_features + # Cleanup lxc auth group delete test-group lxc auth identity-provider-group delete test-idp-group @@ -191,7 +194,7 @@ fine_grained_authorization() { # Change permission to "user" for instance "user-foo" lxc auth group permission add test-group instance user-foo user project=default - # To exec into an instance, the test-group will also need `can_view_events` for the project. + # To exec into an instance, Members of test-group will also need `can_view_events` for the project. # This is because the client uses the events API to figure out when the operation is finished. # Ideally we would use operations for this instead or allow more fine-grained filtering on events. lxc auth group permission add test-group project default can_view_events @@ -444,3 +447,365 @@ user_is_instance_user() { # We can't edit the instance though ! lxc_remote config set "oidc:${instance_name}" user.fizz=buzz || false } + +auth_project_features() { + # test-group must have no permissions to start the test. + [ "$(lxc query /1.0/auth/groups/test-group | jq '.permissions | length')" -eq 0 ] + + # Create project blah + lxc project create blah + + # Validate view with no permissions + [ "$(lxc_remote project list oidc: --format csv | wc -l)" -eq 0 ] + + # Allow operator permissions on project blah + lxc auth group permission add test-group project blah operator + + # Confirm we can still view storage pools + [ "$(lxc_remote storage list oidc: --format csv | wc -l)" = 1 ] + + # Confirm we cannot view storage pool configuration + pool_name="$(lxc_remote storage list oidc: --format csv | cut -d, -f1)" + [ "$(lxc_remote storage get "oidc:${pool_name}" source)" = "" ] + + # Validate restricted view + ! lxc_remote project list oidc: --format csv | grep -w ^default || false + lxc_remote project list oidc: --format csv | grep -w ^blah + + # Validate that the restricted caller cannot edit or delete the project. + ! lxc_remote project set oidc:blah user.foo=bar || false + ! lxc_remote project delete oidc:blah || false + + # Validate restricted caller cannot create projects. + ! lxc_remote project create oidc:blah1 || false + + # Validate restricted caller cannot see resources in projects they do not have access to (the call will not fail, but + # the lists should be empty + [ "$(lxc_remote list oidc: --project default --format csv)" = "" ] + [ "$(lxc_remote profile list oidc: --project default --format csv)" = "" ] + [ "$(lxc_remote network list oidc: --project default --format csv)" = "" ] + [ "$(lxc_remote operation list oidc: --project default --format csv)" = "" ] + [ "$(lxc_remote network zone list oidc: --project default --format csv)" = "" ] + [ "$(lxc_remote storage volume list "oidc:${pool_name}" --project default --format csv)" = "" ] + [ "$(lxc_remote storage bucket list "oidc:${pool_name}" --project default --format csv)" = "" ] + + ### Validate images. + test_image_fingerprint="$(lxc image info testimage --project default | awk '/^Fingerprint/ {print $2}')" + + # We can always list images, but there are no public images in the default project now, so the list should be empty. + [ "$(lxc_remote image list oidc: --project default --format csv)" = "" ] + ! lxc_remote image show oidc:testimage --project default || false + + # Set the image to public and ensure we can view it. + lxc image show testimage --project default | sed -e "s/public: false/public: true/" | lxc image edit testimage --project default + [ "$(lxc_remote image list oidc: --project default --format csv | wc -l)" = 1 ] + lxc_remote image show oidc:testimage --project default + + # Check we can export the public image: + lxc image export oidc:testimage "${TEST_DIR}/" --project default + [ "${test_image_fingerprint}" = "$(sha256sum "${TEST_DIR}/${test_image_fingerprint}.tar.xz" | cut -d' ' -f1)" ] + + # While the image is public, copy it to the blah project and create an alias for it. + lxc_remote image copy oidc:testimage oidc: --project default --target-project blah + lxc_remote image alias create oidc:testimage "${test_image_fingerprint}" --project blah + + # Restore privacy on the test image in the default project. + lxc image show testimage --project default | sed -e "s/public: true/public: false/" | lxc image edit testimage --project default + + # Set up a profile in the blah project. Additionally ensures project operator can edit profiles. + lxc profile show default | lxc_remote profile edit oidc:default --project blah + + # Create an instance (using the test image copied from the default project while it was public). + lxc_remote init testimage oidc:blah-instance --project blah + + # Create a custom volume. + lxc_remote storage volume create "oidc:${pool_name}" blah-volume --project blah + + # There should now be two volume URLs, one instance, one image, and one profile URL in the used-by list. + [ "$(lxc_remote project list oidc: --format csv | cut -d, -f9)" = "5" ] + + # Delete resources in project blah so that we can modify project features. + lxc_remote delete oidc:blah-instance --project blah + lxc_remote storage volume delete "oidc:${pool_name}" blah-volume --project blah + lxc_remote image delete "oidc:${test_image_fingerprint}" --project blah + + # Ensure we can create and view resources that are not enabled for the project (e.g. their effective project is + # the default project). + + ### IMAGES (initial value is true for new projects) + + # Unset the images feature (the default is false). + lxc project unset blah features.images + + # The test image in the default project *not* should be visible by default via project blah. + ! lxc_remote image info "oidc:${test_image_fingerprint}" --project blah || false + ! lxc_remote image show "oidc:${test_image_fingerprint}" --project blah || false + test_image_fingerprint_short="$(echo "${test_image_fingerprint}" | cut -c1-12)" + ! lxc_remote image list oidc: --project blah | grep -F "${test_image_fingerprint_short}" || false + + # Make the images in the default project viewable to members of test-group + lxc auth group permission add test-group project default can_view_images + + # The test image in the default project should now be visible via project blah. + lxc_remote image info "oidc:${test_image_fingerprint}" --project blah + lxc_remote image show "oidc:${test_image_fingerprint}" --project blah + lxc_remote image list oidc: --project blah | grep -F "${test_image_fingerprint_short}" + + # Members of test-group can view it via project default. (This is true even though they do not have can_view on project default). + lxc_remote image info "oidc:${test_image_fingerprint}" --project default + lxc_remote image show "oidc:${test_image_fingerprint}" --project default + lxc_remote image list oidc: --project default | grep -F "${test_image_fingerprint_short}" + + # Members of test-group cannot edit the image. + ! lxc_remote image set-property "oidc:${test_image_fingerprint}" requirements.secureboot true --project blah || false + ! lxc_remote image unset-property "oidc:${test_image_fingerprint}" requirements.secureboot --project blah || false + + # Members of test-group cannot delete the image. + ! lxc_remote image delete "oidc:${test_image_fingerprint}" --project blah || false + + # Delete it anyway to test that we can import a new one. + lxc image delete "${test_image_fingerprint}" --project default + + # Members of test-group can create images. + lxc_remote image import "${TEST_DIR}/${test_image_fingerprint}.tar.xz" oidc: --project blah + lxc_remote image alias create oidc:testimage "${test_image_fingerprint}" --project blah + + # We can view the image we've created via project blah (whose effective project is default) because we've granted the + # group permission to view all images in the default project. + lxc_remote image show "oidc:${test_image_fingerprint}" --project blah + lxc_remote image show "oidc:${test_image_fingerprint}" --project default + + # Image clean up + lxc image delete "${test_image_fingerprint}" --project default + lxc auth group permission remove test-group project default can_view_images + rm "${TEST_DIR}/${test_image_fingerprint}.tar.xz" + + ### NETWORKS (initial value is false in new projects). + + # Create a network in the default project. + networkName="net$$" + lxc network create "${networkName}" --project default + + # The network we created in the default project is not visible in project blah. + ! lxc_remote network show "oidc:${networkName}" --project blah || false + ! lxc_remote network list oidc: --project blah | grep -F "${networkName}" || false + + # Make networks in the default project viewable to members of test-group + lxc auth group permission add test-group project default can_view_networks + + # The network we created in the default project is now visible in project blah. + lxc_remote network show "oidc:${networkName}" --project blah + lxc_remote network list oidc: --project blah | grep -F "${networkName}" + + # Members of test-group can view it via project default. + lxc_remote network show "oidc:${networkName}" --project default + lxc_remote network list oidc: --project default | grep -F "${networkName}" + + # Members of test-group cannot edit the network. + ! lxc_remote network set "oidc:${networkName}" user.foo=bar --project blah || false + + # Members of test-group cannot delete the network. + ! lxc_remote network delete "oidc:${networkName}" --project blah || false + + # Create a network in the blah project. + lxc_remote network create oidc:blah-network --project blah + + # The network is visible only because we have granted view access on networks in the default project. + lxc_remote network show oidc:blah-network --project blah + lxc_remote network list oidc: --project blah | grep blah-network + + # Members of test-group can view it via the default project. + lxc_remote network show oidc:blah-network --project default + + # Members of test-group cannot edit the network. + ! lxc_remote network set oidc:blah-network user.foo=bar --project blah || false + + # Members of test-group cannot delete the network. + ! lxc_remote network delete oidc:blah-network --project blah || false + + # Network clean up + lxc network delete "${networkName}" --project blah + lxc network delete blah-network --project blah + lxc auth group permission remove test-group project default can_view_networks + + ### NETWORK ZONES (initial value is false in new projects). + + # Create a network zone in the default project. + zoneName="zone$$" + lxc network zone create "${zoneName}" --project default + + # The network zone we created in the default project is *not* visible in project blah. + ! lxc_remote network zone show "oidc:${zoneName}" --project blah || false + ! lxc_remote network zone list oidc: --project blah | grep -F "${zoneName}" || false + + # Allow view access to network zones in the default project. + lxc auth group permission add test-group project default can_view_network_zones + + # Members of test-group can now view the network zone via the default project and via the blah project. + lxc_remote network zone show "oidc:${zoneName}" --project default + lxc_remote network zone list oidc: --project default | grep -F "${zoneName}" + lxc_remote network zone show "oidc:${zoneName}" --project blah + lxc_remote network zone list oidc: --project blah | grep -F "${zoneName}" + + # Members of test-group cannot edit the network zone. + ! lxc_remote network zone set "oidc:${zoneName}" user.foo=bar --project blah || false + + # Members of test-group can delete the network zone. + ! lxc_remote network zone delete "oidc:${zoneName}" --project blah || false + + # Create a network zone in the blah project. + lxc_remote network zone create oidc:blah-zone --project blah + + # Network zone is visible to members of test-group in project blah (because they can view network zones in the default project). + lxc_remote network zone show oidc:blah-zone --project blah + lxc_remote network zone list oidc: --project blah | grep blah-zone + lxc_remote network zone show oidc:blah-zone --project default + lxc_remote network zone list oidc: --project default | grep blah-zone + + # Members of test-group cannot delete the network zone. + ! lxc_remote network zone delete oidc:blah-zone --project blah || false + + # Network zone clean up + lxc network zone delete "${zoneName}" --project blah + lxc network zone delete blah-zone --project blah + lxc auth group permission remove test-group project default can_view_network_zones + + ### PROFILES (initial value is true for new projects) + + # Unset the profiles feature (the default is false). + lxc project unset blah features.profiles + + # Create a profile in the default project. + profileName="prof$$" + lxc profile create "${profileName}" --project default + + # The profile we created in the default project is not visible in project blah. + ! lxc_remote profile show "oidc:${profileName}" --project blah || false + ! lxc_remote profile list oidc: --project blah | grep -F "${profileName}" || false + + # Grant members of test-group permission to view profiles in the default project + lxc auth group permission add test-group project default can_view_profiles + + # The profile we just created is now visible via the default project and via the blah project + lxc_remote profile show "oidc:${profileName}" --project default + lxc_remote profile list oidc: --project default | grep -F "${profileName}" + lxc_remote profile show "oidc:${profileName}" --project blah + lxc_remote profile list oidc: --project blah | grep -F "${profileName}" + + # Members of test-group cannot edit the profile. + ! lxc_remote profile set "oidc:${profileName}" user.foo=bar --project blah || false + + # Members of test-group cannot delete the profile. + ! lxc_remote profile delete "oidc:${profileName}" --project blah || false + + # Create a profile in the blah project. + lxc_remote profile create oidc:blah-profile --project blah + + # Profile is visible to members of test-group in project blah and project default. + lxc_remote profile show oidc:blah-profile --project blah + lxc_remote profile list oidc: --project blah | grep blah-profile + lxc_remote profile show oidc:blah-profile --project default + lxc_remote profile list oidc: --project default | grep blah-profile + + # Members of test-group cannot delete the profile. + ! lxc_remote profile delete oidc:blah-profile --project blah || false + + # Profile clean up + lxc profile delete "${profileName}" --project blah + lxc profile delete blah-profile --project blah + lxc auth group permission remove test-group project default can_view_profiles + + ### STORAGE VOLUMES (initial value is true for new projects) + + # Unset the storage volumes feature (the default is false). + lxc project unset blah features.storage.volumes + + # Create a storage volume in the default project. + volName="vol$$" + lxc storage volume create "${pool_name}" "${volName}" --project default + + # The storage volume we created in the default project is not visible in project blah. + ! lxc_remote storage volume show "oidc:${pool_name}" "${volName}" --project blah || false + ! lxc_remote storage volume list "oidc:${pool_name}" --project blah | grep -F "${volName}" || false + + # Grant members of test-group permission to view storage volumes in project default + lxc auth group permission add test-group project default can_view_storage_volumes + + # Members of test-group can't view it via project default and project blah. + lxc_remote storage volume show "oidc:${pool_name}" "${volName}" --project default + lxc_remote storage volume list "oidc:${pool_name}" --project default | grep -F "${volName}" + lxc_remote storage volume show "oidc:${pool_name}" "${volName}" --project blah + lxc_remote storage volume list "oidc:${pool_name}" --project blah | grep -F "${volName}" + + # Members of test-group cannot edit the storage volume. + ! lxc_remote storage volume set "oidc:${pool_name}" "${volName}" user.foo=bar --project blah || false + + # Members of test-group cannot delete the storage volume. + ! lxc_remote storage volume delete "oidc:${pool_name}" "${volName}" --project blah || false + + # Create a storage volume in the blah project. + lxc_remote storage volume create "oidc:${pool_name}" blah-volume --project blah + + # Storage volume is visible to members of test-group in project blah (because they can view volumes in the default project). + lxc_remote storage volume show "oidc:${pool_name}" blah-volume --project blah + lxc_remote storage volume list "oidc:${pool_name}" --project blah | grep blah-volume + lxc_remote storage volume show "oidc:${pool_name}" blah-volume --project default + lxc_remote storage volume list "oidc:${pool_name}" --project default | grep blah-volume + + # Members of test-group cannot delete the storage volume. + ! lxc_remote storage volume delete "oidc:${pool_name}" blah-volume --project blah || false + + # Storage volume clean up + lxc storage volume delete "${pool_name}" "${volName}" + lxc storage volume delete "${pool_name}" blah-volume + lxc auth group permission remove test-group project default can_view_storage_volumes + + ### STORAGE BUCKETS (initial value is true for new projects) + + # Create a storage pool to use with object storage. + create_object_storage_pool s3 + + # Unset the storage buckets feature (the default is false). + lxc project unset blah features.storage.buckets + + # Create a storage bucket in the default project. + bucketName="bucket$$" + lxc storage bucket create s3 "${bucketName}" --project default + + # The storage bucket we created in the default project is not visible in project blah. + ! lxc_remote storage bucket show oidc:s3 "${bucketName}" --project blah || false + ! lxc_remote storage bucket list oidc:s3 --project blah | grep -F "${bucketName}" || false + + # Grant view permission on storage buckets in project default to members of test-group + lxc auth group permission add test-group project default can_view_storage_buckets + + # Members of test-group can now view the bucket via project default and project blah. + lxc_remote storage bucket show oidc:s3 "${bucketName}" --project default + lxc_remote storage bucket list oidc:s3 --project default | grep -F "${bucketName}" + lxc_remote storage bucket show oidc:s3 "${bucketName}" --project blah + lxc_remote storage bucket list oidc:s3 --project blah | grep -F "${bucketName}" + + # Members of test-group cannot edit the storage bucket. + ! lxc_remote storage bucket set oidc:s3 "${bucketName}" user.foo=bar --project blah || false + + # Members of test-group cannot delete the storage bucket. + ! lxc_remote storage bucket delete oidc:s3 "${bucketName}" --project blah || false + + # Create a storage bucket in the blah project. + lxc_remote storage bucket create oidc:s3 blah-bucket --project blah + + # Storage bucket is visible to members of test-group in project blah (because they can view buckets in the default project). + lxc_remote storage bucket show oidc:s3 blah-bucket --project blah + lxc_remote storage bucket list oidc:s3 --project blah | grep blah-bucket + + # Members of test-group cannot delete the storage bucket. + ! lxc_remote storage bucket delete oidc:s3 blah-bucket --project blah || false + + # Cleanup storage buckets + lxc storage bucket delete s3 blah-bucket --project blah + lxc storage bucket delete s3 "${bucketName}" --project blah + delete_object_storage_pool s3 + + # General clean up + lxc project delete blah +} \ No newline at end of file From 651e0e60d7c6b7d42548716f69d9865fa3ee2787 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Thu, 8 Aug 2024 19:34:58 +0100 Subject: [PATCH 095/169] doc/explanation: Add note about authorization and project isolation. Signed-off-by: Mark Laing --- doc/explanation/projects.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/doc/explanation/projects.md b/doc/explanation/projects.md index 65d291b4c362..75d448416b43 100644 --- a/doc/explanation/projects.md +++ b/doc/explanation/projects.md @@ -46,6 +46,15 @@ To edit them, you must remove all instances first. New features that are added in an upgrade are disabled for existing projects. ``` +```{important} +In a multi-tenant environment, unless using {ref}`fine-grained-authorization`, all projects should have all features enabled. +Otherwise, clients with {ref}`restricted-tls-certs` are able to create, edit, and delete resources in the default project. This might affect other tenants. + +For example, if project "foo" is created and `features.networks` is not set to true, then a restricted client certificate with access to "foo" can view, edit, and delete networks in the default project. + +Conversely, if a client's permissions are managed via {ref}`fine-grained-authorization`, resources may be inherited from the default project but access to those resources is not automatically granted. +``` + (projects-confined)= ## Confined projects in a multi-user environment From 4d439051a44e2c192934d41870a33a4d04dff886 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Thu, 22 Aug 2024 11:13:48 +0100 Subject: [PATCH 096/169] lxd/auth/drivers: Fix linter errors (govet: printf). Signed-off-by: Mark Laing --- lxd/auth/drivers/openfga.go | 4 ++-- lxd/auth/drivers/tls.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/auth/drivers/openfga.go b/lxd/auth/drivers/openfga.go index e1b0fa8b213a..1bfef2064955 100644 --- a/lxd/auth/drivers/openfga.go +++ b/lxd/auth/drivers/openfga.go @@ -133,7 +133,7 @@ func (e *embeddedOpenFGA) CheckPermission(ctx context.Context, entityURL *api.UR // Untrusted requests are denied. if !auth.IsTrusted(ctx) { - return api.StatusErrorf(http.StatusForbidden, http.StatusText(http.StatusForbidden)) + return api.StatusErrorf(http.StatusForbidden, "%s", http.StatusText(http.StatusForbidden)) } isRoot, err := auth.IsServerAdmin(ctx, e.identityCache) @@ -284,7 +284,7 @@ func (e *embeddedOpenFGA) CheckPermission(ctx context.Context, entityURL *api.UR l.Info("Access denied", logger.Ctx{"http_code": responseCode}) } - return api.StatusErrorf(responseCode, http.StatusText(responseCode)) + return api.StatusErrorf(responseCode, "%s", http.StatusText(responseCode)) } return nil diff --git a/lxd/auth/drivers/tls.go b/lxd/auth/drivers/tls.go index 8a25fb61accb..237b9d972de8 100644 --- a/lxd/auth/drivers/tls.go +++ b/lxd/auth/drivers/tls.go @@ -43,7 +43,7 @@ func (t *tls) load(ctx context.Context, identityCache *identity.Cache, opts Opts func (t *tls) CheckPermission(ctx context.Context, entityURL *api.URL, entitlement auth.Entitlement) error { // Untrusted requests are denied. if !auth.IsTrusted(ctx) { - return api.StatusErrorf(http.StatusForbidden, http.StatusText(http.StatusForbidden)) + return api.StatusErrorf(http.StatusForbidden, "%s", http.StatusText(http.StatusForbidden)) } isRoot, err := auth.IsServerAdmin(ctx, t.identities) From ecde8f1e7e3f7f8744528653bc06ca5105c25e83 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Thu, 22 Aug 2024 11:14:25 +0100 Subject: [PATCH 097/169] lxd: Fix linter errors (govet: printf). Signed-off-by: Mark Laing --- lxd/storage_volumes.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/storage_volumes.go b/lxd/storage_volumes.go index 48f03b5349cc..b81dcab20c0f 100644 --- a/lxd/storage_volumes.go +++ b/lxd/storage_volumes.go @@ -2701,7 +2701,7 @@ func addStoragePoolVolumeDetailsToRequestContext(s *state.State, r *http.Request // Convert the volume type name to our internal integer representation. volumeType, err := storagePools.VolumeTypeNameToDBType(volumeTypeName) if err != nil { - return api.StatusErrorf(http.StatusBadRequest, err.Error()) + return api.StatusErrorf(http.StatusBadRequest, "Failed to get storage volume type: %w", err) } details.volumeType = volumeType From 081bcbc6b88074326c5e70ca6b1cc9595c7535ed Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Thu, 22 Aug 2024 11:15:23 +0100 Subject: [PATCH 098/169] lxd: Fix linter error (staticcheck: SA1032). Signed-off-by: Mark Laing --- lxd/network_allocations.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/network_allocations.go b/lxd/network_allocations.go index e62bf8c553ff..909e58c6c384 100644 --- a/lxd/network_allocations.go +++ b/lxd/network_allocations.go @@ -176,7 +176,7 @@ func networkAllocationsGet(d *Daemon, r *http.Request) response.Response { } leases, err := n.Leases(projectName, clusterRequest.ClientTypeNormal) - if err != nil && !errors.Is(network.ErrNotImplemented, err) { + if err != nil && !errors.Is(err, network.ErrNotImplemented) { return response.SmartError(fmt.Errorf("Failed getting leases for network %q in project %q: %w", networkName, projectName, err)) } From 86746662082ddcbae689ac8ab22c3066455551f6 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Thu, 22 Aug 2024 11:54:48 +0100 Subject: [PATCH 099/169] lxd: Add comment explaining behaviour of events websocket with effective projects. Signed-off-by: Mark Laing --- lxd/events.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lxd/events.go b/lxd/events.go index f91d08b4faea..1a814b5fd8b0 100644 --- a/lxd/events.go +++ b/lxd/events.go @@ -61,6 +61,14 @@ func eventsSocket(s *state.State, r *http.Request, w http.ResponseWriter) error } } + // Notes on authorization for events: + // - Checks are currently performed at the project level. Fine-grained auth uses `can_view_events` on the project, + // TLS auth checks if a restricted identity has access to the project against which the event is defined. + // - If project "foo" does not have a particular feature enabled, say 'features.networks', if a network is updated + // via project "foo", no events will be emitted in project "foo" relating to the network. They will only be emitted + // in project "default". In order to get all related events, TLS users must be granted access to the default project, + // fine-grained users can be granted `can_view_events` on the default project. Both must call the events API with + // `all-projects=true`. var projectPermissionFunc auth.PermissionChecker if projectName != "" { err := s.Authorizer.CheckPermission(r.Context(), entity.ProjectURL(projectName), auth.EntitlementCanViewEvents) From 6e8609bb373aa6dfd64588b9edd4ca3ba630bc27 Mon Sep 17 00:00:00 2001 From: Wesley Hershberger Date: Thu, 22 Aug 2024 17:10:06 -0500 Subject: [PATCH 100/169] lxd: Fix invalid FileResponse on empty console log `ent` is never populated if the container is running. This was refactored out of a goto in a60b277. Signed-off-by: Wesley Hershberger --- lxd/instance_console.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/instance_console.go b/lxd/instance_console.go index 0f749722d8b3..803a09b36969 100644 --- a/lxd/instance_console.go +++ b/lxd/instance_console.go @@ -631,7 +631,7 @@ func instanceConsoleLogGet(d *Daemon, r *http.Request) response.Response { } if errno == unix.ENODATA { - return response.FileResponse(r, []response.FileResponseEntry{ent}, nil) + return response.FileResponse(r, []response.FileResponseEntry{}, nil) } return response.SmartError(err) From 528be48946667c923dab2998aa66f3f3b73fe98a Mon Sep 17 00:00:00 2001 From: Wesley Hershberger Date: Thu, 22 Aug 2024 17:57:27 -0500 Subject: [PATCH 101/169] lxc/console: Update docstring and output for `--show-log` Implies that --show-log only shows new messages. I view the extra newlines & "Console log:" as unnecessary. Signed-off-by: Wesley Hershberger --- lxc/console.go | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/lxc/console.go b/lxc/console.go index 8c9077bd3c01..a2cc7dde5e14 100644 --- a/lxc/console.go +++ b/lxc/console.go @@ -41,7 +41,7 @@ This command allows you to interact with the boot console of an instance as well as retrieve past log entries from it.`)) cmd.RunE = c.run - cmd.Flags().BoolVar(&c.flagShowLog, "show-log", false, i18n.G("Retrieve the instance's console log")) + cmd.Flags().BoolVar(&c.flagShowLog, "show-log", false, i18n.G("Retrieve the container's console log")) cmd.Flags().StringVarP(&c.flagType, "type", "t", "console", i18n.G("Type of connection to establish: 'console' for serial console, 'vga' for SPICE graphical output")+"``") return cmd @@ -137,7 +137,12 @@ func (c *cmdConsole) run(cmd *cobra.Command, args []string) error { return err } - fmt.Printf("\n"+i18n.G("Console log:")+"\n\n%s\n", string(stuff)) + if len(stuff) > 0 { + fmt.Printf("%s\n", string(stuff)) + } else { + fmt.Println("No new messages") + } + return nil } From ef1e06b321f2d3d3ccf552b322747dee62c50950 Mon Sep 17 00:00:00 2001 From: Wesley Hershberger Date: Fri, 23 Aug 2024 09:59:16 -0500 Subject: [PATCH 102/169] lxc/console: Fix linter errors Signed-off-by: Wesley Hershberger --- lxc/console.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lxc/console.go b/lxc/console.go index a2cc7dde5e14..263fa1cca71e 100644 --- a/lxc/console.go +++ b/lxc/console.go @@ -123,7 +123,7 @@ func (c *cmdConsole) run(cmd *cobra.Command, args []string) error { // Show the current log if requested if c.flagShowLog { if c.flagType != "console" { - return fmt.Errorf(i18n.G("The --show-log flag is only supported for by 'console' output type")) + return fmt.Errorf("%s", i18n.G("The --show-log flag is only supported for by 'console' output type")) } console := &lxd.InstanceConsoleLogArgs{} @@ -212,7 +212,7 @@ func (c *cmdConsole) console(d lxd.InstanceServer, name string) error { close(consoleDisconnect) }() - fmt.Printf(i18n.G("To detach from the console, press: +a q") + "\n\r") + fmt.Printf("%s\n\r", i18n.G("To detach from the console, press: +a q")) // Attach to the instance console op, err := d.ConsoleInstance(name, req, &consoleArgs) From 4a2790998df9af3a2a13a50e911e3fa84de2190a Mon Sep 17 00:00:00 2001 From: Wesley Hershberger Date: Fri, 23 Aug 2024 10:26:02 -0500 Subject: [PATCH 103/169] po: make i18n Signed-off-by: Wesley Hershberger --- po/ar.po | 18 +++++++----------- po/ber.po | 18 +++++++----------- po/bg.po | 18 +++++++----------- po/ca.po | 18 +++++++----------- po/cs.po | 18 +++++++----------- po/de.po | 18 +++++++----------- po/el.po | 18 +++++++----------- po/eo.po | 18 +++++++----------- po/es.po | 21 ++++++++++----------- po/fa.po | 18 +++++++----------- po/fi.po | 18 +++++++----------- po/fr.po | 18 +++++++----------- po/he.po | 18 +++++++----------- po/hi.po | 18 +++++++----------- po/id.po | 18 +++++++----------- po/it.po | 18 +++++++----------- po/ja.po | 22 +++++++++++----------- po/ka.po | 18 +++++++----------- po/ko.po | 18 +++++++----------- po/lxd.pot | 18 +++++++----------- po/mr.po | 18 +++++++----------- po/nb_NO.po | 18 +++++++----------- po/nl.po | 18 +++++++----------- po/pa.po | 18 +++++++----------- po/pl.po | 18 +++++++----------- po/pt.po | 18 +++++++----------- po/pt_BR.po | 21 ++++++++++----------- po/ru.po | 18 +++++++----------- po/si.po | 18 +++++++----------- po/sl.po | 18 +++++++----------- po/sr.po | 18 +++++++----------- po/sv.po | 18 +++++++----------- po/te.po | 18 +++++++----------- po/th.po | 18 +++++++----------- po/tr.po | 18 +++++++----------- po/tzm.po | 18 +++++++----------- po/ug.po | 18 +++++++----------- po/uk.po | 18 +++++++----------- po/zh_Hans.po | 18 +++++++----------- po/zh_Hant.po | 18 +++++++----------- 40 files changed, 290 insertions(+), 440 deletions(-) diff --git a/po/ar.po b/po/ar.po index 628de8f1aab7..6b85c422c807 100644 --- a/po/ar.po +++ b/po/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -762,7 +762,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:383 +#: lxc/console.go:387 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1220,10 +1220,6 @@ msgstr "" msgid "Config parsing error: %s" msgstr "" -#: lxc/console.go:140 -msgid "Console log:" -msgstr "" - #: lxc/storage_volume.go:561 msgid "Content type, block or filesystem" msgstr "" @@ -2260,7 +2256,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:361 +#: lxc/console.go:365 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -3028,7 +3024,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:382 +#: lxc/console.go:386 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -4936,7 +4932,7 @@ msgid "Restrict the certificate to one or more projects" msgstr "" #: lxc/console.go:44 -msgid "Retrieve the instance's console log" +msgid "Retrieve the container's console log" msgstr "" #: lxc/init.go:347 @@ -5948,7 +5944,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:210 +#: lxc/console.go:214 msgid "To detach from the console, press: +a q" msgstr "" @@ -6103,7 +6099,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/ber.po b/po/ber.po index 048b0bb26e3c..7971b74f7af9 100644 --- a/po/ber.po +++ b/po/ber.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Berber +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/bg.po b/po/bg.po index 568e1a31ac37..2d51c4160c89 100644 --- a/po/bg.po +++ b/po/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/ca.po b/po/ca.po index 968617412d3f..a2d3be6e1c94 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Catalan +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/cs.po b/po/cs.po index a4a01eda3c93..46840de4fccc 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Czech +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/de.po b/po/de.po index ca183c3250cd..e08722af094a 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Krombel \n" "Language-Team: German +a q" msgstr "" @@ -6755,7 +6751,7 @@ msgstr "Unbekannter Befehl %s für Abbild" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, fuzzy, c-format msgid "Unknown console type %q" msgstr "Unbekannter Befehl %s für Abbild" diff --git a/po/el.po b/po/el.po index e6d51483efb2..22108f078940 100644 --- a/po/el.po +++ b/po/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Greek +a q" msgstr "" @@ -6202,7 +6198,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/eo.po b/po/eo.po index d3de8c0f09f6..92125e079a24 100644 --- a/po/eo.po +++ b/po/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Esperanto +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/es.po b/po/es.po index 149666aa5489..49412ed1f08e 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2023-06-16 20:55+0000\n" "Last-Translator: Francisco Serrador \n" "Language-Team: Spanish +a q" msgstr "" @@ -6521,7 +6517,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" @@ -8088,6 +8084,9 @@ msgstr "" msgid "yes" msgstr "" +#~ msgid "Console log:" +#~ msgstr "Log de la consola:" + #, fuzzy, c-format #~ msgid "Fingerprint %q not found" #~ msgstr "Huella dactilar: %s" diff --git a/po/fa.po b/po/fa.po index c5b852dc9cbf..3b500c772f74 100644 --- a/po/fa.po +++ b/po/fa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Persian +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/fi.po b/po/fi.po index 44930685ce9b..07ac9b2d89de 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Finnish +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/fr.po b/po/fr.po index 89f1b5e3f2f2..b98fe648ccd7 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Wivik \n" "Language-Team: French +a q" msgstr "" @@ -6896,7 +6892,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/he.po b/po/he.po index 50898a81a7d2..456d1c910f72 100644 --- a/po/he.po +++ b/po/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hebrew +a q" msgstr "" @@ -6107,7 +6103,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/hi.po b/po/hi.po index 228bfb0a17e7..d1fd9320be9e 100644 --- a/po/hi.po +++ b/po/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hindi +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/id.po b/po/id.po index af06755a4b9f..fd7c1b189f32 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/it.po b/po/it.po index 15582c297d2d..83e84130402a 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Luigi Operoso \n" "Language-Team: Italian +a q" msgstr "" @@ -6519,7 +6515,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/ja.po b/po/ja.po index a21b8aad23a9..d5e4c4ed3ac1 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2023-03-10 15:14+0000\n" "Last-Translator: KATOH Yasufumi \n" "Language-Team: Japanese +a q" msgstr "コンソールから切り離すには +a q を押します" @@ -6803,7 +6800,7 @@ msgstr "クライアント %q の未知のチャンネルタイプ: %s" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "未知のカラム名の短縮形です '%c' ('%s' 中)" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "未知のコンソールタイプ %q" @@ -8428,6 +8425,9 @@ msgstr "y" msgid "yes" msgstr "yes" +#~ msgid "Console log:" +#~ msgstr "コンソールログ:" + #, c-format #~ msgid "" #~ "Cannot override config for device %q: Device not found in profile devices" diff --git a/po/ka.po b/po/ka.po index e36946cf40a8..51a7587e95b4 100644 --- a/po/ka.po +++ b/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -762,7 +762,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:383 +#: lxc/console.go:387 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1220,10 +1220,6 @@ msgstr "" msgid "Config parsing error: %s" msgstr "" -#: lxc/console.go:140 -msgid "Console log:" -msgstr "" - #: lxc/storage_volume.go:561 msgid "Content type, block or filesystem" msgstr "" @@ -2260,7 +2256,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:361 +#: lxc/console.go:365 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -3028,7 +3024,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:382 +#: lxc/console.go:386 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -4936,7 +4932,7 @@ msgid "Restrict the certificate to one or more projects" msgstr "" #: lxc/console.go:44 -msgid "Retrieve the instance's console log" +msgid "Retrieve the container's console log" msgstr "" #: lxc/init.go:347 @@ -5948,7 +5944,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:210 +#: lxc/console.go:214 msgid "To detach from the console, press: +a q" msgstr "" @@ -6103,7 +6099,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/ko.po b/po/ko.po index e5a75eb851b4..9d45ffb0809c 100644 --- a/po/ko.po +++ b/po/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/lxd.pot b/po/lxd.pot index 22222a0ebdfb..be58523a4ec4 100644 --- a/po/lxd.pot +++ b/po/lxd.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" - "POT-Creation-Date: 2024-08-23 13:08+0200\n" + "POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -724,7 +724,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:383 +#: lxc/console.go:387 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1141,10 +1141,6 @@ msgstr "" msgid "Config parsing error: %s" msgstr "" -#: lxc/console.go:140 -msgid "Console log:" -msgstr "" - #: lxc/storage_volume.go:561 msgid "Content type, block or filesystem" msgstr "" @@ -2032,7 +2028,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:361 +#: lxc/console.go:365 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2776,7 +2772,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:382 +#: lxc/console.go:386 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -4560,7 +4556,7 @@ msgid "Restrict the certificate to one or more projects" msgstr "" #: lxc/console.go:44 -msgid "Retrieve the instance's console log" +msgid "Retrieve the container's console log" msgstr "" #: lxc/init.go:347 @@ -5526,7 +5522,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:210 +#: lxc/console.go:214 msgid "To detach from the console, press: +a q" msgstr "" @@ -5673,7 +5669,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/mr.po b/po/mr.po index 925894723aa1..0ac1b1950088 100644 --- a/po/mr.po +++ b/po/mr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Marathi +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/nb_NO.po b/po/nb_NO.po index d29683cd6cf1..5455b7b4dd0d 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Norwegian Bokmål +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/nl.po b/po/nl.po index 83fce96aa871..3149f588dfb9 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch +a q" msgstr "" @@ -6330,7 +6326,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/pa.po b/po/pa.po index 47a58ed2b1db..8476fccc939f 100644 --- a/po/pa.po +++ b/po/pa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Punjabi +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/pl.po b/po/pl.po index 7d2ef81f3198..7df6376e9194 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Polish +a q" msgstr "" @@ -6368,7 +6364,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/pt.po b/po/pt.po index 71582411e8b8..45408eb11b54 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -762,7 +762,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:383 +#: lxc/console.go:387 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1220,10 +1220,6 @@ msgstr "" msgid "Config parsing error: %s" msgstr "" -#: lxc/console.go:140 -msgid "Console log:" -msgstr "" - #: lxc/storage_volume.go:561 msgid "Content type, block or filesystem" msgstr "" @@ -2260,7 +2256,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:361 +#: lxc/console.go:365 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -3028,7 +3024,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:382 +#: lxc/console.go:386 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -4936,7 +4932,7 @@ msgid "Restrict the certificate to one or more projects" msgstr "" #: lxc/console.go:44 -msgid "Retrieve the instance's console log" +msgid "Retrieve the container's console log" msgstr "" #: lxc/init.go:347 @@ -5948,7 +5944,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:210 +#: lxc/console.go:214 msgid "To detach from the console, press: +a q" msgstr "" @@ -6103,7 +6099,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index f17f4ea36bf3..c0c68069d95e 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Renato dos Santos \n" "Language-Team: Portuguese (Brazil) +a q" msgstr "" @@ -6617,7 +6613,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" @@ -8120,6 +8116,9 @@ msgstr "" msgid "yes" msgstr "sim" +#~ msgid "Console log:" +#~ msgstr "Log de Console:" + #, fuzzy #~ msgid "The --mode flag can't be used with --storage" #~ msgstr "--refresh só pode ser usado com containers" diff --git a/po/ru.po b/po/ru.po index 9ca1c05db73b..cb4de10b3a9e 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Александр Киль \n" "Language-Team: Russian +a q" msgstr "" @@ -6601,7 +6597,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/si.po b/po/si.po index 9cfdc70dc8d1..d1ecdf52e5a6 100644 --- a/po/si.po +++ b/po/si.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Sinhala +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/sl.po b/po/sl.po index f885e1db7723..fe27352e90ed 100644 --- a/po/sl.po +++ b/po/sl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Slovenian +a q" msgstr "" @@ -6107,7 +6103,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/sr.po b/po/sr.po index 690e8fe34e87..c616bfeeca21 100644 --- a/po/sr.po +++ b/po/sr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian +a q" msgstr "" @@ -6107,7 +6103,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/sv.po b/po/sv.po index 3e28b8949bdc..1e51861b91a9 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Swedish +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/te.po b/po/te.po index fbcdead74135..8898a1129004 100644 --- a/po/te.po +++ b/po/te.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Telugu +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/th.po b/po/th.po index c8cf72f3d5ab..c878d9c1c66e 100644 --- a/po/th.po +++ b/po/th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -762,7 +762,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:383 +#: lxc/console.go:387 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1220,10 +1220,6 @@ msgstr "" msgid "Config parsing error: %s" msgstr "" -#: lxc/console.go:140 -msgid "Console log:" -msgstr "" - #: lxc/storage_volume.go:561 msgid "Content type, block or filesystem" msgstr "" @@ -2260,7 +2256,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:361 +#: lxc/console.go:365 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -3028,7 +3024,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:382 +#: lxc/console.go:386 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -4936,7 +4932,7 @@ msgid "Restrict the certificate to one or more projects" msgstr "" #: lxc/console.go:44 -msgid "Retrieve the instance's console log" +msgid "Retrieve the container's console log" msgstr "" #: lxc/init.go:347 @@ -5948,7 +5944,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:210 +#: lxc/console.go:214 msgid "To detach from the console, press: +a q" msgstr "" @@ -6103,7 +6099,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/tr.po b/po/tr.po index ea2d127c44e0..e50da04c1f79 100644 --- a/po/tr.po +++ b/po/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Turkish +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/tzm.po b/po/tzm.po index 19a44a6cbb2d..1e795557a951 100644 --- a/po/tzm.po +++ b/po/tzm.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Tamazight (Central Atlas) +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/ug.po b/po/ug.po index 5551b8c71f5a..4260b467c30d 100644 --- a/po/ug.po +++ b/po/ug.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Uyghur +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/uk.po b/po/uk.po index 07a1536d38a7..e620da8d3867 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Ukrainian +a q" msgstr "" @@ -6107,7 +6103,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/zh_Hans.po b/po/zh_Hans.po index e45a6f0d2662..5bcdaa808063 100644 --- a/po/zh_Hans.po +++ b/po/zh_Hans.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: 0x0916 \n" "Language-Team: Chinese (Simplified) +a q" msgstr "" @@ -6267,7 +6263,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" diff --git a/po/zh_Hant.po b/po/zh_Hant.po index d5f3a42bebae..a080e3395f70 100644 --- a/po/zh_Hant.po +++ b/po/zh_Hant.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 13:08+0200\n" +"POT-Creation-Date: 2024-08-23 10:25-0500\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Traditional) +a q" msgstr "" @@ -6106,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:159 +#: lxc/console.go:163 #, c-format msgid "Unknown console type %q" msgstr "" From fc5ef4fae6c141971b78a6f2852a3176ecce0318 Mon Sep 17 00:00:00 2001 From: Mark Bolton Date: Fri, 23 Aug 2024 11:03:34 -0700 Subject: [PATCH 104/169] lxd/network: Implement State function for physical network driver Signed-off-by: Mark Bolton --- lxd/network/driver_physical.go | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/lxd/network/driver_physical.go b/lxd/network/driver_physical.go index eb6dc592f294..b2df82732ba0 100644 --- a/lxd/network/driver_physical.go +++ b/lxd/network/driver_physical.go @@ -9,6 +9,7 @@ import ( "github.com/canonical/lxd/lxd/cluster/request" "github.com/canonical/lxd/lxd/db" "github.com/canonical/lxd/lxd/ip" + "github.com/canonical/lxd/lxd/resources" "github.com/canonical/lxd/shared" "github.com/canonical/lxd/shared/api" "github.com/canonical/lxd/shared/logger" @@ -504,3 +505,26 @@ func (n *physical) DHCPv6Subnet() *net.IPNet { return subnet } + +// State returns the api.NetworkState for the network. +func (n *physical) State() (*api.NetworkState, error) { + if !n.IsManaged() { + return resources.GetNetworkState(n.name) + } + + state, err := resources.GetNetworkState(GetHostDevice(n.config["parent"], n.config["vlan"])) + if err != nil { + // If the parent is not found, return a response indicating the network is unavailable. + if api.StatusErrorCheck(err, 404) { + return &api.NetworkState{ + State: "unavailable", + Type: "unknown", + }, nil + } + + // In all other cases, return the original error. + return nil, err + } + + return state, nil +} From a581ba6e64000da2ca38949eaa504109817d971f Mon Sep 17 00:00:00 2001 From: Mark Bolton Date: Fri, 23 Aug 2024 11:19:50 -0700 Subject: [PATCH 105/169] test/suites: Add testing for physical network state get Signed-off-by: Mark Bolton --- test/suites/network.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/test/suites/network.sh b/test/suites/network.sh index c4775267f47e..c99367dafff5 100644 --- a/test/suites/network.sh +++ b/test/suites/network.sh @@ -64,6 +64,22 @@ test_network() { lxc network create lxdt$$ ipv4.address=none ipv6.address=none lxc network delete lxdt$$ + # Check that we can return state for physical networks + ip link add dummy0 type dummy + lxc network create lxdt$$ --type=physical parent=dummy0 + + expected_state=$(lxc network info dummy0 | grep -F "State:") + expected_type=$(lxc network info dummy0 | grep -F "Type:") + lxc network info lxdt$$ | grep -qF "${expected_state}" + lxc network info lxdt$$ | grep -qF "${expected_type}" + + # Delete physical network and check for expected response + ip link delete dummy0 + lxc network info lxdt$$ | grep -qF "State: unavailable" + lxc network info lxdt$$ | grep -qF "Type: unknown" + + lxc network delete lxdt$$ + # Configured bridge with static assignment lxc network create lxdt$$ dns.domain=test dns.mode=managed ipv6.dhcp.stateful=true lxc network attach lxdt$$ nettest eth0 From c96d1bc32f7f9e068696c06a91161424e391c492 Mon Sep 17 00:00:00 2001 From: Kadin Sayani Date: Fri, 23 Aug 2024 20:02:24 +0000 Subject: [PATCH 106/169] tests: Add invalid certificate name tests Signed-off-by: Kadin Sayani --- test/suites/remote.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/test/suites/remote.sh b/test/suites/remote.sh index 2cc5490753c1..f5da23ce0e28 100644 --- a/test/suites/remote.sh +++ b/test/suites/remote.sh @@ -11,6 +11,10 @@ test_remote_url() { lxc_remote remote remove test done + # invalid certificate names returns an error + ! lxc_remote config trust add --name -foo || false + ! lxc_remote config trust add --name fo/o || false + # shellcheck disable=2153 urls="${LXD_DIR}/unix.socket unix:${LXD_DIR}/unix.socket unix://${LXD_DIR}/unix.socket" From 5c916ae2df42fdd04a81c3e9617ffbfb924eeff7 Mon Sep 17 00:00:00 2001 From: Kadin Sayani Date: Fri, 23 Aug 2024 18:26:06 +0000 Subject: [PATCH 107/169] lxd/recover: Add snapshot expiry when recovering instance snapshots Signed-off-by: Kadin Sayani --- lxd/api_internal_recover.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/lxd/api_internal_recover.go b/lxd/api_internal_recover.go index bcd57697fa78..173f1b004bda 100644 --- a/lxd/api_internal_recover.go +++ b/lxd/api_internal_recover.go @@ -574,12 +574,23 @@ func internalRecoverImportInstanceSnapshot(s *state.State, pool storagePools.Poo return nil, err } + snapshotExpiry := snap.Config["snapshots.expiry"] + if snapshotExpiry != "" { + expiry, err := shared.GetExpiry(snap.CreatedAt, snapshotExpiry) + if err != nil { + return nil, err + } + + snap.ExpiresAt = expiry + } + _, snapInstOp, cleanup, err := instance.CreateInternal(s, db.InstanceArgs{ Project: projectName, Architecture: arch, BaseImage: snap.Config["volatile.base_image"], Config: snap.Config, CreationDate: snap.CreatedAt, + ExpiryDate: snap.ExpiresAt, Type: instanceType, Snapshot: true, Devices: deviceConfig.NewDevices(snap.Devices), From c99bcecc1b27c7d5baa89207d2a8c3b5d6ea05a0 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:02:52 +0000 Subject: [PATCH 108/169] build(deps): bump github.com/minio/minio-go/v7 from 7.0.75 to 7.0.76 Bumps [github.com/minio/minio-go/v7](https://github.com/minio/minio-go) from 7.0.75 to 7.0.76. - [Release notes](https://github.com/minio/minio-go/releases) - [Commits](https://github.com/minio/minio-go/compare/v7.0.75...v7.0.76) --- updated-dependencies: - dependency-name: github.com/minio/minio-go/v7 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 4 ++-- go.sum | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 646288a1e92d..e85af10346ae 100644 --- a/go.mod +++ b/go.mod @@ -34,7 +34,7 @@ require ( github.com/mdlayher/netx v0.0.0-20230430222610-7e21880baee8 github.com/mdlayher/vsock v1.2.1 github.com/miekg/dns v1.1.62 - github.com/minio/minio-go/v7 v7.0.75 + github.com/minio/minio-go/v7 v7.0.76 github.com/mitchellh/mapstructure v1.5.0 github.com/oklog/ulid/v2 v2.1.0 github.com/olekukonko/tablewriter v0.0.5 @@ -126,7 +126,7 @@ require ( github.com/prometheus/procfs v0.15.1 // indirect github.com/rivo/uniseg v0.4.7 // indirect github.com/rs/cors v1.11.0 // indirect - github.com/rs/xid v1.5.0 // indirect + github.com/rs/xid v1.6.0 // indirect github.com/russross/blackfriday/v2 v2.1.0 // indirect github.com/sagikazarmark/locafero v0.6.0 // indirect github.com/sagikazarmark/slog-shim v0.1.0 // indirect diff --git a/go.sum b/go.sum index 644b222dbe64..9727d8d46f27 100644 --- a/go.sum +++ b/go.sum @@ -478,8 +478,8 @@ github.com/miekg/dns v1.1.62 h1:cN8OuEF1/x5Rq6Np+h1epln8OiyPWV+lROx9LxcGgIQ= github.com/miekg/dns v1.1.62/go.mod h1:mvDlcItzm+br7MToIKqkglaGhlFMHJ9DTNNWONWXbNQ= github.com/minio/md5-simd v1.1.2 h1:Gdi1DZK69+ZVMoNHRXJyNcxrMA4dSxoYHZSQbirFg34= github.com/minio/md5-simd v1.1.2/go.mod h1:MzdKDxYpY2BT9XQFocsiZf/NKVtR7nkE4RoEpN+20RM= -github.com/minio/minio-go/v7 v7.0.75 h1:0uLrB6u6teY2Jt+cJUVi9cTvDRuBKWSRzSAcznRkwlE= -github.com/minio/minio-go/v7 v7.0.75/go.mod h1:qydcVzV8Hqtj1VtEocfxbmVFa2siu6HGa+LDEPogjD8= +github.com/minio/minio-go/v7 v7.0.76 h1:9nxHH2XDai61cT/EFhyIw/wW4vJfpPNvl7lSFpRt+Ng= +github.com/minio/minio-go/v7 v7.0.76/go.mod h1:AVM3IUN6WwKzmwBxVdjzhH8xq+f57JSbbvzqvUzR6eg= github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= @@ -564,8 +564,8 @@ github.com/rogpeppe/go-internal v1.12.0 h1:exVL4IDcn6na9z1rAb56Vxr+CgyK3nn3O+epU github.com/rogpeppe/go-internal v1.12.0/go.mod h1:E+RYuTGaKKdloAfM02xzb0FW3Paa99yedzYV+kq4uf4= github.com/rs/cors v1.11.0 h1:0B9GE/r9Bc2UxRMMtymBkHTenPkHDv0CW4Y98GBY+po= github.com/rs/cors v1.11.0/go.mod h1:XyqrcTp5zjWr1wsJ8PIRZssZ8b/WMcMf71DJnit4EMU= -github.com/rs/xid v1.5.0 h1:mKX4bl4iPYJtEIxp6CYiUuLQ/8DYMoz0PUdtGgMFRVc= -github.com/rs/xid v1.5.0/go.mod h1:trrq9SKmegXys3aeAKXMUTdJsYXVwGY3RLcfgqegfbg= +github.com/rs/xid v1.6.0 h1:fV591PaemRlL6JfRxGDEPl69wICngIQ3shQtzfy2gxU= +github.com/rs/xid v1.6.0/go.mod h1:7XoLgs4eV+QndskICGsho+ADou8ySMSjJKDIan90Nz0= github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= github.com/russross/blackfriday/v2 v2.1.0 h1:JIOH55/0cWyOuilr9/qlrm0BSXldqnqwMsf35Ld67mk= github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= From 30ae6d81eda00aed09b52de0a55ba3250b87511b Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Aug 2024 11:03:07 +0000 Subject: [PATCH 109/169] build(deps): bump github.com/zitadel/oidc/v3 from 3.27.0 to 3.28.2 Bumps [github.com/zitadel/oidc/v3](https://github.com/zitadel/oidc) from 3.27.0 to 3.28.2. - [Release notes](https://github.com/zitadel/oidc/releases) - [Changelog](https://github.com/zitadel/oidc/blob/main/.releaserc.js) - [Commits](https://github.com/zitadel/oidc/compare/v3.27.0...v3.28.2) --- updated-dependencies: - dependency-name: github.com/zitadel/oidc/v3 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/go.mod b/go.mod index 646288a1e92d..9ed82fbfb601 100644 --- a/go.mod +++ b/go.mod @@ -50,7 +50,7 @@ require ( github.com/stretchr/testify v1.9.0 github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 github.com/vishvananda/netlink v1.2.1-beta.2 - github.com/zitadel/oidc/v3 v3.27.0 + github.com/zitadel/oidc/v3 v3.28.2 go.starlark.net v0.0.0-20240725214946-42030a7cedce go.uber.org/zap v1.27.0 golang.org/x/crypto v0.26.0 diff --git a/go.sum b/go.sum index 644b222dbe64..2818eaa821c2 100644 --- a/go.sum +++ b/go.sum @@ -640,8 +640,8 @@ github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1 github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= github.com/zitadel/logging v0.6.0 h1:t5Nnt//r+m2ZhhoTmoPX+c96pbMarqJvW1Vq6xFTank= github.com/zitadel/logging v0.6.0/go.mod h1:Y4CyAXHpl3Mig6JOszcV5Rqqsojj+3n7y2F591Mp/ow= -github.com/zitadel/oidc/v3 v3.27.0 h1:zeYpyRH0UcgdCjVHUYzSsqf1jbSwVMPVxYKOnRXstgU= -github.com/zitadel/oidc/v3 v3.27.0/go.mod h1:ZwBEqSviCpJVZiYashzo53bEGRGXi7amE5Q8PpQg9IM= +github.com/zitadel/oidc/v3 v3.28.2 h1:poJmUjjJhgSNgfzyVtArnnAlXhXCpefsvEV36rUwM9s= +github.com/zitadel/oidc/v3 v3.28.2/go.mod h1:WmDFu3dZ9YNKrIoZkmxjGG8QyUR4PbbhsVVSY+rpojM= github.com/zitadel/schema v1.3.0 h1:kQ9W9tvIwZICCKWcMvCEweXET1OcOyGEuFbHs4o5kg0= github.com/zitadel/schema v1.3.0/go.mod h1:NptN6mkBDFvERUCvZHlvWmmME+gmZ44xzwRXwhzsbtc= go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= From 8c669437c9fa297bdeb5cef4954db8ba2c8ad7a5 Mon Sep 17 00:00:00 2001 From: Abhiram824 Date: Thu, 11 Apr 2024 22:51:35 -0500 Subject: [PATCH 110/169] lxd: Disable networks during evacuation Signed-off-by: Abhiram824 (cherry picked from commit 7c9e3b00cdf3da04e8dc54dd2b77a982e7b3e613) Signed-off-by: Wesley Hershberger License: Apache-2.0 --- lxd/api_cluster.go | 9 +++++++++ lxd/daemon.go | 11 +++++++---- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/lxd/api_cluster.go b/lxd/api_cluster.go index f89a1c97e641..d4ec1f443404 100644 --- a/lxd/api_cluster.go +++ b/lxd/api_cluster.go @@ -3269,6 +3269,9 @@ func evacuateClusterMember(s *state.State, gateway *cluster.Gateway, r *http.Req return err } + // Stop networks after evacuation. + networkShutdown(s) + revert.Success() return nil } @@ -3439,6 +3442,12 @@ func restoreClusterMember(d *Daemon, r *http.Request) response.Response { metadata := make(map[string]any) + // Restart the networks. + err = networkStartup(d.State()) + if err != nil { + return err + } + // Restart the local instances. for _, inst := range localInstances { // Don't start instances which were stopped by the user. diff --git a/lxd/daemon.go b/lxd/daemon.go index 4ecdac10bf4b..312d672e234f 100644 --- a/lxd/daemon.go +++ b/lxd/daemon.go @@ -1600,10 +1600,13 @@ func (d *Daemon) init() error { }) // Setup the networks. - logger.Infof("Initializing networks") - err = networkStartup(d.State()) - if err != nil { - return err + if !d.db.Cluster.LocalNodeIsEvacuated() { + logger.Infof("Initializing networks") + + err = networkStartup(d.State()) + if err != nil { + return err + } } // Setup tertiary listeners that may use managed network addresses and must be started after networks. From cb7a1147b25b2da8b4c4128ee80d83bfe0374279 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Fri, 19 Jul 2024 14:38:03 -0400 Subject: [PATCH 111/169] lxd/storage/lvm: Properly handle activation during resize MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit LVM resize requires the volume be fully deactivated. For some reason our LVM logic would always fully activate the volume, which is needed for shrinking but was still doing it during growth. Note that this is only needed when not using thin pools so this is likely why this slipped through the cracks. Signed-off-by: Stéphane Graber (cherry picked from commit 64966418de3372ac2c563c58fe56852987b5ad75) Signed-off-by: Wesley Hershberger License: Apache-2.0 --- lxd/storage/drivers/driver_lvm_volumes.go | 43 +++++++++++++++++------ 1 file changed, 33 insertions(+), 10 deletions(-) diff --git a/lxd/storage/drivers/driver_lvm_volumes.go b/lxd/storage/drivers/driver_lvm_volumes.go index bbfbdbabbba2..3faac0bf3a5c 100644 --- a/lxd/storage/drivers/driver_lvm_volumes.go +++ b/lxd/storage/drivers/driver_lvm_volumes.go @@ -449,16 +449,6 @@ func (d *lvm) SetVolumeQuota(vol Volume, size string, allowUnsafeResize bool, op l := d.logger.AddContext(logger.Ctx{"dev": volDevPath, "size": fmt.Sprintf("%db", sizeBytes)}) - // Activate volume if needed. - activated, err := d.activateVolume(vol) - if err != nil { - return err - } - - if activated { - defer func() { _, _ = d.deactivateVolume(vol) }() - } - inUse := vol.MountInUse() // Resize filesystem if needed. @@ -474,6 +464,12 @@ func (d *lvm) SetVolumeQuota(vol Volume, size string, allowUnsafeResize bool, op return ErrInUse // We don't allow online shrinking of filesytem volumes. } + // Activate volume if needed. + _, err := d.activateVolume(vol) + if err != nil { + return err + } + // Shrink filesystem first. // Pass allowUnsafeResize to allow disabling of filesystem resize safety checks. // We do this as a separate step rather than passing -r to lvresize in resizeLogicalVolume @@ -481,6 +477,13 @@ func (d *lvm) SetVolumeQuota(vol Volume, size string, allowUnsafeResize bool, op // otherwise by passing -f to lvresize (required for other reasons) this would then pass // -f onto resize2fs as well. err = shrinkFileSystem(fsType, volDevPath, vol, sizeBytes, allowUnsafeResize) + if err != nil { + _, _ = d.deactivateVolume(vol) + return err + } + + // Deactivate the volume if needed. + _, err = d.deactivateVolume(vol) if err != nil { return err } @@ -499,6 +502,16 @@ func (d *lvm) SetVolumeQuota(vol Volume, size string, allowUnsafeResize bool, op return err } + // Activate the volume if needed. + _, err := d.activateVolume(vol) + if err != nil { + return err + } + + defer func() { + _, _ = d.deactivateVolume(vol) + }() + // Grow the filesystem to fill block device. err = growFileSystem(fsType, volDevPath, vol) if err != nil { @@ -525,6 +538,16 @@ func (d *lvm) SetVolumeQuota(vol Volume, size string, allowUnsafeResize bool, op return err } + // Activate the volume if needed. + _, err := d.activateVolume(vol) + if err != nil { + return err + } + + defer func() { + _, _ = d.deactivateVolume(vol) + }() + // Move the VM GPT alt header to end of disk if needed (not needed in unsafe resize mode as it is // expected the caller will do all necessary post resize actions themselves). if vol.IsVMBlock() && !allowUnsafeResize { From bd22bc0f510653a86bd694738569d27c6a407ae3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Mon, 19 Aug 2024 02:15:16 -0400 Subject: [PATCH 112/169] lxd/storage/lvm: Fix resize logic to conserve LV state MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We want the activation state of the LV to be identical following a resize operation, otherwise we may end up having the caller assume it's still active and end up writing data to a file in /dev rather than to an actual device. This was caught in our daily tests but took a little while to track down. Signed-off-by: Stéphane Graber (cherry picked from commit d8fdc55c664e679eeea94670b02e4d926f6350a3) Signed-off-by: Wesley Hershberger License: Apache-2.0 --- lxd/storage/drivers/driver_lvm_volumes.go | 44 ++++++++++++++--------- 1 file changed, 27 insertions(+), 17 deletions(-) diff --git a/lxd/storage/drivers/driver_lvm_volumes.go b/lxd/storage/drivers/driver_lvm_volumes.go index 3faac0bf3a5c..cf7d4bc73071 100644 --- a/lxd/storage/drivers/driver_lvm_volumes.go +++ b/lxd/storage/drivers/driver_lvm_volumes.go @@ -465,11 +465,17 @@ func (d *lvm) SetVolumeQuota(vol Volume, size string, allowUnsafeResize bool, op } // Activate volume if needed. - _, err := d.activateVolume(vol) + activated, err := d.activateVolume(vol) if err != nil { return err } + if !activated { + defer func() { + _, _ = d.activateVolume(vol) + }() + } + // Shrink filesystem first. // Pass allowUnsafeResize to allow disabling of filesystem resize safety checks. // We do this as a separate step rather than passing -r to lvresize in resizeLogicalVolume @@ -482,7 +488,7 @@ func (d *lvm) SetVolumeQuota(vol Volume, size string, allowUnsafeResize bool, op return err } - // Deactivate the volume if needed. + // Deactivate the volume for resizing. _, err = d.deactivateVolume(vol) if err != nil { return err @@ -502,15 +508,17 @@ func (d *lvm) SetVolumeQuota(vol Volume, size string, allowUnsafeResize bool, op return err } - // Activate the volume if needed. - _, err := d.activateVolume(vol) + // Activate the volume for resizing. + activated, err := d.activateVolume(vol) if err != nil { return err } - defer func() { - _, _ = d.deactivateVolume(vol) - }() + if activated { + defer func() { + _, _ = d.deactivateVolume(vol) + }() + } // Grow the filesystem to fill block device. err = growFileSystem(fsType, volDevPath, vol) @@ -538,19 +546,21 @@ func (d *lvm) SetVolumeQuota(vol Volume, size string, allowUnsafeResize bool, op return err } - // Activate the volume if needed. - _, err := d.activateVolume(vol) - if err != nil { - return err - } - - defer func() { - _, _ = d.deactivateVolume(vol) - }() - // Move the VM GPT alt header to end of disk if needed (not needed in unsafe resize mode as it is // expected the caller will do all necessary post resize actions themselves). if vol.IsVMBlock() && !allowUnsafeResize { + // Activate the volume for resizing. + activated, err := d.activateVolume(vol) + if err != nil { + return err + } + + if activated { + defer func() { + _, _ = d.deactivateVolume(vol) + }() + } + err = d.moveGPTAltHeader(volDevPath) if err != nil { return err From b9b21d20c71060f21c6ed31337781bd8e5f83a63 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 27 Aug 2024 07:29:37 +0000 Subject: [PATCH 113/169] build(deps): bump github.com/vishvananda/netlink Bumps [github.com/vishvananda/netlink](https://github.com/vishvananda/netlink) from 1.2.1-beta.2 to 1.3.0. - [Release notes](https://github.com/vishvananda/netlink/releases) - [Commits](https://github.com/vishvananda/netlink/compare/v1.2.1-beta.2...v1.3.0) --- updated-dependencies: - dependency-name: github.com/vishvananda/netlink dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 9 ++++----- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 9ed82fbfb601..a405b2fb2378 100644 --- a/go.mod +++ b/go.mod @@ -49,7 +49,7 @@ require ( github.com/spf13/cobra v1.8.1 github.com/stretchr/testify v1.9.0 github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 - github.com/vishvananda/netlink v1.2.1-beta.2 + github.com/vishvananda/netlink v1.3.0 github.com/zitadel/oidc/v3 v3.28.2 go.starlark.net v0.0.0-20240725214946-42030a7cedce go.uber.org/zap v1.27.0 diff --git a/go.sum b/go.sum index 2818eaa821c2..c675fcba00d0 100644 --- a/go.sum +++ b/go.sum @@ -625,9 +625,8 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= -github.com/vishvananda/netlink v1.2.1-beta.2 h1:Llsql0lnQEbHj0I1OuKyp8otXp0r3q0mPkuhwHfStVs= -github.com/vishvananda/netlink v1.2.1-beta.2/go.mod h1:twkDnbuQxJYemMlGd4JFIcuhgX83tXhKS2B/PRMpOho= -github.com/vishvananda/netns v0.0.0-20200728191858-db3c7e526aae/go.mod h1:DD4vA1DwXk04H54A1oHXtwZmA0grkVMdPxx/VGLCah0= +github.com/vishvananda/netlink v1.3.0 h1:X7l42GfcV4S6E4vHTsw48qbrV+9PVojNfIhZcwQdrZk= +github.com/vishvananda/netlink v1.3.0/go.mod h1:i6NetklAujEcC6fK0JPjT8qSwWyO0HLn4UKG+hGqeJs= github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8= github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= @@ -835,7 +834,6 @@ golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200217220822-9197077df867/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -844,7 +842,6 @@ golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200728102440-3e129f6d46b1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -871,8 +868,10 @@ golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.6.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.10.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.24.0 h1:Twjiwq9dn6R1fQcyiK+wQyHWfaz/BJB+YIpzU/Cv3Xg= golang.org/x/sys v0.24.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= From 7735522ce21d81bd81022b1c61e0e89ce3396f14 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 10:04:52 +0100 Subject: [PATCH 114/169] shared/api: Handle invalid HTTP status codes. If an empty StatusError is instantiated (or if an unknown HTTP status error is used and the underlying error is nil), the result of `Error()` will be an empty string. Handling this case will make misuse of `StatusError` clearer in logs or API responses. Signed-off-by: Mark Laing --- shared/api/error.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/shared/api/error.go b/shared/api/error.go index edee18d2479e..e70aa89ddd6d 100644 --- a/shared/api/error.go +++ b/shared/api/error.go @@ -26,7 +26,12 @@ func (e StatusError) Error() string { return e.err.Error() } - return http.StatusText(e.status) + statusText := http.StatusText(e.status) + if statusText == "" { + return "Undefined error" + } + + return statusText } // Unwrap implements the xerrors.Wrapper interface for StatusError. From ffc61e93b56ce73e6e41ab230d3fc3f13978eecd Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 10:09:44 +0100 Subject: [PATCH 115/169] shared/api: Add new functions for instantiating a StatusError. The `StatusErrorf` method invokes `fmt.Errorf` which will use reflection to populate a format string. These new methods can be used to avoid this: - `NewGenericStatusError` returns a `StatusError` which will return the generic HTTP status text. - `NewStatusError` returns a `StatusError` with the given message. Signed-off-by: Mark Laing --- shared/api/error.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/shared/api/error.go b/shared/api/error.go index e70aa89ddd6d..c2eb902bfd48 100644 --- a/shared/api/error.go +++ b/shared/api/error.go @@ -6,6 +6,26 @@ import ( "net/http" ) +// NewGenericStatusError returns a new StatusError with the given status code. +// The generic http.StatusText will be used for the error message. +func NewGenericStatusError(status int) StatusError { + return StatusError{ + status: status, + } +} + +// NewStatusError returns a new StatusError with the given message and status code. +func NewStatusError(status int, msg string) StatusError { + if msg == "" { + return NewGenericStatusError(status) + } + + return StatusError{ + status: status, + err: errors.New(msg), + } +} + // StatusErrorf returns a new StatusError containing the specified status and message. func StatusErrorf(status int, format string, a ...any) StatusError { return StatusError{ From b98eea9d4864502ea4b0f00cd212e3740c3a246f Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 10:37:20 +0100 Subject: [PATCH 116/169] lxd/auth/drivers: Use `api.NewGenericStatusError`. Signed-off-by: Mark Laing --- lxd/auth/drivers/openfga.go | 4 ++-- lxd/auth/drivers/tls.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/auth/drivers/openfga.go b/lxd/auth/drivers/openfga.go index 1bfef2064955..c7c31dcbff2e 100644 --- a/lxd/auth/drivers/openfga.go +++ b/lxd/auth/drivers/openfga.go @@ -133,7 +133,7 @@ func (e *embeddedOpenFGA) CheckPermission(ctx context.Context, entityURL *api.UR // Untrusted requests are denied. if !auth.IsTrusted(ctx) { - return api.StatusErrorf(http.StatusForbidden, "%s", http.StatusText(http.StatusForbidden)) + return api.NewGenericStatusError(http.StatusForbidden) } isRoot, err := auth.IsServerAdmin(ctx, e.identityCache) @@ -284,7 +284,7 @@ func (e *embeddedOpenFGA) CheckPermission(ctx context.Context, entityURL *api.UR l.Info("Access denied", logger.Ctx{"http_code": responseCode}) } - return api.StatusErrorf(responseCode, "%s", http.StatusText(responseCode)) + return api.NewGenericStatusError(responseCode) } return nil diff --git a/lxd/auth/drivers/tls.go b/lxd/auth/drivers/tls.go index 237b9d972de8..dc8bcdabaad7 100644 --- a/lxd/auth/drivers/tls.go +++ b/lxd/auth/drivers/tls.go @@ -43,7 +43,7 @@ func (t *tls) load(ctx context.Context, identityCache *identity.Cache, opts Opts func (t *tls) CheckPermission(ctx context.Context, entityURL *api.URL, entitlement auth.Entitlement) error { // Untrusted requests are denied. if !auth.IsTrusted(ctx) { - return api.StatusErrorf(http.StatusForbidden, "%s", http.StatusText(http.StatusForbidden)) + return api.NewGenericStatusError(http.StatusForbidden) } isRoot, err := auth.IsServerAdmin(ctx, t.identities) From e9047d12489e7b47848bfbe3a058068d4c39d670 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 10:38:22 +0100 Subject: [PATCH 117/169] lxd: Wrap status errors in devlxd. Signed-off-by: Mark Laing --- lxd/devlxd.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/devlxd.go b/lxd/devlxd.go index 5940d729cbb6..551a5fba9d1b 100644 --- a/lxd/devlxd.go +++ b/lxd/devlxd.go @@ -249,7 +249,7 @@ func devlxdAPIHandlerFunc(d *Daemon, c instance.Instance, w http.ResponseWriter, err := json.NewDecoder(r.Body).Decode(&req) if err != nil { - return response.DevLxdErrorResponse(api.StatusErrorf(http.StatusBadRequest, err.Error()), c.Type() == instancetype.VM) + return response.DevLxdErrorResponse(api.StatusErrorf(http.StatusBadRequest, "Invalid request body: %w", err), c.Type() == instancetype.VM) } state := api.StatusCodeFromString(req.State) @@ -260,7 +260,7 @@ func devlxdAPIHandlerFunc(d *Daemon, c instance.Instance, w http.ResponseWriter, err = c.VolatileSet(map[string]string{"volatile.last_state.ready": strconv.FormatBool(state == api.Ready)}) if err != nil { - return response.DevLxdErrorResponse(api.StatusErrorf(http.StatusInternalServerError, err.Error()), c.Type() == instancetype.VM) + return response.DevLxdErrorResponse(api.StatusErrorf(http.StatusInternalServerError, "Failed to set instance state: %w", err), c.Type() == instancetype.VM) } if state == api.Ready { @@ -270,7 +270,7 @@ func devlxdAPIHandlerFunc(d *Daemon, c instance.Instance, w http.ResponseWriter, return response.DevLxdResponse(http.StatusOK, "", "raw", c.Type() == instancetype.VM) } - return response.DevLxdErrorResponse(api.StatusErrorf(http.StatusMethodNotAllowed, fmt.Sprintf("method %q not allowed", r.Method)), c.Type() == instancetype.VM) + return response.DevLxdErrorResponse(api.StatusErrorf(http.StatusMethodNotAllowed, "method %q not allowed", r.Method), c.Type() == instancetype.VM) } var devlxdDevicesGet = devLxdHandler{ From 7c0633792ac7413e1096d5b8b67fd62bb68d3eea Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 10:38:40 +0100 Subject: [PATCH 118/169] lxd: Wrap SFTP upgrade error. Signed-off-by: Mark Laing --- lxd/instance_sftp.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/instance_sftp.go b/lxd/instance_sftp.go index 1b57715c14f0..f954dd70efe6 100644 --- a/lxd/instance_sftp.go +++ b/lxd/instance_sftp.go @@ -135,7 +135,7 @@ func (r *sftpServeResponse) Render(w http.ResponseWriter) error { err = response.Upgrade(remoteConn, "sftp") if err != nil { - return api.StatusErrorf(http.StatusInternalServerError, err.Error()) + return api.StatusErrorf(http.StatusInternalServerError, "Failed to upgrade SFTP connection: %w", err) } ctx, cancel := context.WithCancel(r.req.Context()) From e59dc3723d75283a87967be4e9c5abeb1ff6ab01 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 10:39:14 +0100 Subject: [PATCH 119/169] lxd: Wrap project permission errors. Signed-off-by: Mark Laing --- lxd/project/permissions.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lxd/project/permissions.go b/lxd/project/permissions.go index 6f6fbec8f1d2..1859b3c9a164 100644 --- a/lxd/project/permissions.go +++ b/lxd/project/permissions.go @@ -1632,7 +1632,7 @@ func CheckTargetMember(p *api.Project, targetMemberName string, allMembers []db. // If restricted groups are specified then check member is in at least one of them. err := AllowClusterMember(p, &potentialMember) if err != nil { - return nil, api.StatusErrorf(http.StatusForbidden, err.Error()) + return nil, api.StatusErrorf(http.StatusForbidden, "%w", err) } return &potentialMember, nil @@ -1647,7 +1647,7 @@ func CheckTargetGroup(ctx context.Context, tx *db.ClusterTx, p *api.Project, gro // If restricted groups are specified then check the requested group is in the list. err := AllowClusterGroup(p, groupName) if err != nil { - return api.StatusErrorf(http.StatusForbidden, err.Error()) + return api.StatusErrorf(http.StatusForbidden, "%w", err) } // Check if the target group exists. From 44e233560e93a774303a225db7094cdd3929d216 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 10:40:52 +0100 Subject: [PATCH 120/169] lxd/instance/drivers/qmp: Wrap block device removal error. Signed-off-by: Mark Laing --- lxd/instance/drivers/qmp/commands.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lxd/instance/drivers/qmp/commands.go b/lxd/instance/drivers/qmp/commands.go index f90f3e8789f6..333c5e044578 100644 --- a/lxd/instance/drivers/qmp/commands.go +++ b/lxd/instance/drivers/qmp/commands.go @@ -505,7 +505,7 @@ func (m *Monitor) RemoveBlockDevice(blockDevName string) error { err := m.run("blockdev-del", blockDevName, nil) if err != nil { if strings.Contains(err.Error(), "is in use") { - return api.StatusErrorf(http.StatusLocked, err.Error()) + return api.StatusErrorf(http.StatusLocked, "%w", err) } if strings.Contains(err.Error(), "Failed to find") { From 614b310d7a698b2b246ccbd46ea4cb57e64f73ba Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 10:41:50 +0100 Subject: [PATCH 121/169] lxc: Move translations out of format string. Signed-off-by: Mark Laing --- lxc/remote.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/lxc/remote.go b/lxc/remote.go index c1172b229cee..39024aaa448f 100644 --- a/lxc/remote.go +++ b/lxc/remote.go @@ -210,7 +210,7 @@ func (c *cmdRemoteAdd) addRemoteFromToken(addr string, server string, token stri if err != nil { certificate, err = shared.GetRemoteCertificate(addr, c.global.conf.UserAgent) if err != nil { - return api.StatusErrorf(http.StatusServiceUnavailable, i18n.G("Unavailable remote server")+": %w", err) + return api.StatusErrorf(http.StatusServiceUnavailable, "%s: %w", i18n.G("Unavailable remote server"), err) } certDigest := shared.CertFingerprint(certificate) @@ -244,7 +244,7 @@ func (c *cmdRemoteAdd) addRemoteFromToken(addr string, server string, token stri d, err := conf.GetInstanceServer(server) if err != nil { - return api.StatusErrorf(http.StatusServiceUnavailable, i18n.G("Unavailable remote server")+": %w", err) + return api.StatusErrorf(http.StatusServiceUnavailable, "%s: %w", i18n.G("Unavailable remote server"), err) } req := api.CertificatesPost{} From 4e92ded1e92dbad4d433282c68aef58d6c16d990 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 13:18:37 +0100 Subject: [PATCH 122/169] lxc: Fix linter errors (govet: printf). Signed-off-by: Mark Laing --- lxc/remote.go | 31 ++++++++++++++++--------------- 1 file changed, 16 insertions(+), 15 deletions(-) diff --git a/lxc/remote.go b/lxc/remote.go index 39024aaa448f..550d7eeca030 100644 --- a/lxc/remote.go +++ b/lxc/remote.go @@ -3,6 +3,7 @@ package main import ( "crypto/x509" "encoding/pem" + "errors" "fmt" "net" "net/http" @@ -156,7 +157,7 @@ func (c *cmdRemoteAdd) runToken(server string, token string, rawToken *api.Certi conf := c.global.conf if !conf.HasClientCertificate() { - fmt.Fprintf(os.Stderr, i18n.G("Generating a client certificate. This may take a minute...")+"\n") + fmt.Fprint(os.Stderr, i18n.G("Generating a client certificate. This may take a minute...")+"\n") err := conf.GenerateClientCertificate() if err != nil { return err @@ -179,7 +180,7 @@ func (c *cmdRemoteAdd) runToken(server string, token string, rawToken *api.Certi } fmt.Println(i18n.G("All server addresses are unavailable")) - fmt.Printf(i18n.G("Please provide an alternate server address (empty to abort):") + " ") + fmt.Print(i18n.G("Please provide an alternate server address (empty to abort):") + " ") line, err := shared.ReadStdin() if err != nil { @@ -187,7 +188,7 @@ func (c *cmdRemoteAdd) runToken(server string, token string, rawToken *api.Certi } if len(line) == 0 { - return fmt.Errorf(i18n.G("Failed to add remote")) + return errors.New(i18n.G("Failed to add remote")) } err = c.addRemoteFromToken(string(line), server, token, rawToken.Fingerprint) @@ -221,7 +222,7 @@ func (c *cmdRemoteAdd) addRemoteFromToken(addr string, server string, token stri dnam := conf.ConfigPath("servercerts") err := os.MkdirAll(dnam, 0750) if err != nil { - return fmt.Errorf(i18n.G("Could not create server cert dir")) + return errors.New(i18n.G("Could not create server cert dir")) } certf := conf.ServerCertPath(server) @@ -290,12 +291,12 @@ func (c *cmdRemoteAdd) run(cmd *cobra.Command, args []string) error { } if len(addr) == 0 { - return fmt.Errorf(i18n.G("Remote address must not be empty")) + return errors.New(i18n.G("Remote address must not be empty")) } // Validate the server name. if strings.Contains(server, ":") { - return fmt.Errorf(i18n.G("Remote names may not contain colons")) + return errors.New(i18n.G("Remote names may not contain colons")) } // Check for existing remote @@ -332,7 +333,7 @@ func (c *cmdRemoteAdd) run(cmd *cobra.Command, args []string) error { // Fast track simplestreams if c.flagProtocol == "simplestreams" { if remoteURL.Scheme != "https" { - return fmt.Errorf(i18n.G("Only https URLs are supported for simplestreams")) + return errors.New(i18n.G("Only https URLs are supported for simplestreams")) } conf.Remotes[server] = config.Remote{Addr: addr, Public: true, Protocol: c.flagProtocol} @@ -397,7 +398,7 @@ func (c *cmdRemoteAdd) run(cmd *cobra.Command, args []string) error { // adding the remote server. if rScheme != "unix" && !c.flagPublic && (c.flagAuthType == api.AuthenticationMethodTLS || c.flagAuthType == "") { if !conf.HasClientCertificate() { - fmt.Fprintf(os.Stderr, i18n.G("Generating a client certificate. This may take a minute...")+"\n") + fmt.Fprint(os.Stderr, i18n.G("Generating a client certificate. This may take a minute...")+"\n") err = conf.GenerateClientCertificate() if err != nil { return err @@ -451,8 +452,8 @@ func (c *cmdRemoteAdd) run(cmd *cobra.Command, args []string) error { if !c.flagAcceptCert { digest := shared.CertFingerprint(certificate) - fmt.Printf(i18n.G("Certificate fingerprint: %s")+"\n", digest) - fmt.Printf(i18n.G("ok (y/n/[fingerprint])?") + " ") + fmt.Printf("%s: %s\n", i18n.G("Certificate fingerprint"), digest) + fmt.Print(i18n.G("ok (y/n/[fingerprint])?") + " ") line, err := shared.ReadStdin() if err != nil { return err @@ -460,9 +461,9 @@ func (c *cmdRemoteAdd) run(cmd *cobra.Command, args []string) error { if string(line) != digest { if len(line) < 1 || strings.ToLower(string(line[0])) == i18n.G("n") { - return fmt.Errorf(i18n.G("Server certificate NACKed by user")) + return errors.New(i18n.G("Server certificate NACKed by user")) } else if strings.ToLower(string(line[0])) != i18n.G("y") { - return fmt.Errorf(i18n.G("Please type 'y', 'n' or the fingerprint:")) + return errors.New(i18n.G("Please type 'y', 'n' or the fingerprint:")) } } } @@ -470,7 +471,7 @@ func (c *cmdRemoteAdd) run(cmd *cobra.Command, args []string) error { dnam := conf.ConfigPath("servercerts") err := os.MkdirAll(dnam, 0750) if err != nil { - return fmt.Errorf(i18n.G("Could not create server cert dir")) + return errors.New(i18n.G("Could not create server cert dir")) } certf := conf.ServerCertPath(server) @@ -612,7 +613,7 @@ func (c *cmdRemoteAdd) run(cmd *cobra.Command, args []string) error { } if srv.Auth != "trusted" { - return fmt.Errorf(i18n.G("Server doesn't trust us after authentication")) + return errors.New(i18n.G("Server doesn't trust us after authentication")) } if c.flagAuthType == api.AuthenticationMethodTLS { @@ -874,7 +875,7 @@ func (c *cmdRemoteRemove) run(cmd *cobra.Command, args []string) error { } if conf.DefaultRemote == args[0] { - return fmt.Errorf(i18n.G("Can't remove the default remote")) + return errors.New(i18n.G("Can't remove the default remote")) } delete(conf.Remotes, args[0]) From ba484a86056b3be6fb58b4653f993b8783a8d158 Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 13:18:52 +0100 Subject: [PATCH 123/169] i18n: Update translations. Signed-off-by: Mark Laing --- po/ar.po | 165 +++++++++++++++++++++++----------------------- po/ber.po | 165 +++++++++++++++++++++++----------------------- po/bg.po | 165 +++++++++++++++++++++++----------------------- po/ca.po | 165 +++++++++++++++++++++++----------------------- po/cs.po | 165 +++++++++++++++++++++++----------------------- po/de.po | 166 +++++++++++++++++++++++------------------------ po/el.po | 165 +++++++++++++++++++++++----------------------- po/eo.po | 165 +++++++++++++++++++++++----------------------- po/es.po | 166 +++++++++++++++++++++++------------------------ po/fa.po | 165 +++++++++++++++++++++++----------------------- po/fi.po | 165 +++++++++++++++++++++++----------------------- po/fr.po | 166 +++++++++++++++++++++++------------------------ po/he.po | 165 +++++++++++++++++++++++----------------------- po/hi.po | 165 +++++++++++++++++++++++----------------------- po/id.po | 165 +++++++++++++++++++++++----------------------- po/it.po | 170 ++++++++++++++++++++++++------------------------ po/ja.po | 166 +++++++++++++++++++++++------------------------ po/ka.po | 165 +++++++++++++++++++++++----------------------- po/ko.po | 165 +++++++++++++++++++++++----------------------- po/lxd.pot | 157 ++++++++++++++++++++++---------------------- po/mr.po | 165 +++++++++++++++++++++++----------------------- po/nb_NO.po | 165 +++++++++++++++++++++++----------------------- po/nl.po | 165 +++++++++++++++++++++++----------------------- po/pa.po | 165 +++++++++++++++++++++++----------------------- po/pl.po | 165 +++++++++++++++++++++++----------------------- po/pt.po | 165 +++++++++++++++++++++++----------------------- po/pt_BR.po | 166 +++++++++++++++++++++++------------------------ po/ru.po | 176 ++++++++++++++++++++++++-------------------------- po/si.po | 165 +++++++++++++++++++++++----------------------- po/sl.po | 165 +++++++++++++++++++++++----------------------- po/sr.po | 165 +++++++++++++++++++++++----------------------- po/sv.po | 165 +++++++++++++++++++++++----------------------- po/te.po | 165 +++++++++++++++++++++++----------------------- po/th.po | 165 +++++++++++++++++++++++----------------------- po/tr.po | 165 +++++++++++++++++++++++----------------------- po/tzm.po | 165 +++++++++++++++++++++++----------------------- po/ug.po | 165 +++++++++++++++++++++++----------------------- po/uk.po | 165 +++++++++++++++++++++++----------------------- po/zh_Hans.po | 165 +++++++++++++++++++++++----------------------- po/zh_Hant.po | 165 +++++++++++++++++++++++----------------------- 40 files changed, 3286 insertions(+), 3327 deletions(-) diff --git a/po/ar.po b/po/ar.po index 6b85c422c807..0747b7452667 100644 --- a/po/ar.po +++ b/po/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -512,15 +512,15 @@ msgstr "" msgid " " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -553,7 +553,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -561,7 +561,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -631,11 +631,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -702,7 +702,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -739,7 +739,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -762,7 +762,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -810,7 +810,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -833,7 +833,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -988,7 +988,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1054,15 +1054,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1074,7 +1073,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1322,12 +1321,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1366,7 +1365,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1716,9 +1715,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2256,7 +2255,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2271,11 +2270,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2285,7 +2284,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2295,12 +2294,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2325,7 +2324,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2408,7 +2407,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2446,7 +2445,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2466,7 +2465,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2887,7 +2886,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2968,7 +2967,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3024,7 +3023,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3343,7 +3342,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3642,7 +3641,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3985,7 +3984,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4012,7 +4011,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4039,7 +4038,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4241,7 +4240,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4312,11 +4311,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4345,7 +4344,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4357,7 +4356,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4488,7 +4487,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4586,7 +4585,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4677,45 +4676,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4797,7 +4796,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4854,7 +4853,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -4999,7 +4998,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5036,19 +5035,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5255,7 +5254,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5486,7 +5485,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5698,7 +5697,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5944,7 +5943,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6008,7 +6007,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6051,7 +6050,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6079,7 +6078,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6099,7 +6098,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6402,7 +6401,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7051,7 +7050,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7059,7 +7058,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7445,7 +7444,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7457,7 +7456,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7494,7 +7493,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/ber.po b/po/ber.po index 7971b74f7af9..f229664c5008 100644 --- a/po/ber.po +++ b/po/ber.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Berber " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/bg.po b/po/bg.po index 2d51c4160c89..3e7755c991a9 100644 --- a/po/bg.po +++ b/po/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/ca.po b/po/ca.po index a2d3be6e1c94..eefc3329ea3f 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Catalan " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/cs.po b/po/cs.po index 46840de4fccc..31a6a8860b1e 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Czech " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/de.po b/po/de.po index e08722af094a..90123ddb76b6 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Krombel \n" "Language-Team: German " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -820,7 +820,7 @@ msgstr "ALIASES" msgid "ARCHITECTURE" msgstr "ARCHITEKTUR" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -828,7 +828,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "Akzeptiere Zertifikat" @@ -905,11 +905,11 @@ msgstr "" msgid "Add new aliases" msgstr "Aliasse:\n" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "Neue entfernte Server hinzufügen" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -979,7 +979,7 @@ msgstr "Profil %s erstellt\n" msgid "Admin access key: %s" msgstr "Profil %s erstellt\n" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, fuzzy, c-format msgid "Admin password (or token) for %s:" msgstr "Administrator Passwort für %s: " @@ -1018,7 +1018,7 @@ msgstr "Aliasse:\n" msgid "All projects" msgstr "Fehlerhafte Profil URL %s" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -1042,7 +1042,7 @@ msgstr "Architektur: %s\n" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1096,7 +1096,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -1119,7 +1119,7 @@ msgstr "automatisches Update: %s" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 #, fuzzy msgid "Available projects:" msgstr "Fehlerhafte Profil URL %s" @@ -1287,7 +1287,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1357,17 +1357,17 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "Profil %s gelöscht\n" -#: lxc/remote.go:218 +#: lxc/remote.go:455 +#, fuzzy +msgid "Certificate fingerprint" +msgstr "Fingerabdruck des Zertifikats: % x\n" + +#: lxc/remote.go:219 #, c-format msgid "" "Certificate fingerprint mismatch between certificate token and server %q" msgstr "" -#: lxc/remote.go:454 -#, fuzzy, c-format -msgid "Certificate fingerprint: %s" -msgstr "Fingerabdruck des Zertifikats: % x\n" - #: lxc/network.go:893 msgid "Chassis" msgstr "" @@ -1377,7 +1377,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "der Name des Ursprung Containers muss angegeben werden" -#: lxc/remote.go:619 +#: lxc/remote.go:620 #, fuzzy msgid "Client certificate now trusted by server:" msgstr "Gespeichertes Nutzerzertifikat auf dem Server: " @@ -1634,12 +1634,12 @@ msgstr "Fehler: %v\n" msgid "Cores:" msgstr "Fehler: %v\n" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, fuzzy, c-format msgid "Could not close server cert file %q: %w" msgstr "Kann Verzeichnis für Zertifikate auf dem Server nicht erstellen" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "Kann Verzeichnis für Zertifikate auf dem Server nicht erstellen" @@ -1678,7 +1678,7 @@ msgstr "Fingerabdruck des Zertifikats: % x\n" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, fuzzy, c-format msgid "Could not write server cert file %q: %w" msgstr "Kann Verzeichnis für Zertifikate auf dem Server nicht erstellen" @@ -2060,9 +2060,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2645,7 +2645,7 @@ msgstr "kann nicht zum selben Container Namen kopieren" msgid "Failed parsing SSH host key: %w" msgstr "Akzeptiere Zertifikat" -#: lxc/console.go:365 +#: lxc/console.go:366 #, fuzzy, c-format msgid "Failed starting command: %w" msgstr "Akzeptiere Zertifikat" @@ -2660,11 +2660,11 @@ msgstr "Akzeptiere Zertifikat" msgid "Failed to accept incoming connection: %w" msgstr "Akzeptiere Zertifikat" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, fuzzy, c-format msgid "Failed to close server cert file %q: %w" msgstr "Akzeptiere Zertifikat" @@ -2674,7 +2674,7 @@ msgstr "Akzeptiere Zertifikat" msgid "Failed to connect to cluster member: %w" msgstr "kann nicht zum selben Container Namen kopieren" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2684,12 +2684,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "Akzeptiere Zertifikat" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, fuzzy, c-format msgid "Failed to create certificate: %w" msgstr "Akzeptiere Zertifikat" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2714,7 +2714,7 @@ msgstr "Akzeptiere Zertifikat" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, fuzzy, c-format msgid "Failed to write server cert file %q: %w" msgstr "Akzeptiere Zertifikat" @@ -2801,7 +2801,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2839,7 +2839,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2859,7 +2859,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 #, fuzzy msgid "Generating a client certificate. This may take a minute..." msgstr "Generiere Nutzerzertifikat. Dies kann wenige Minuten dauern...\n" @@ -3309,7 +3309,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -3393,7 +3393,7 @@ msgstr "ungültiges Argument %s" msgid "Invalid path %s" msgstr "Ungültiges Ziel %s" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, fuzzy, c-format msgid "Invalid protocol: %s" msgstr "Ungültiges Ziel %s" @@ -3454,7 +3454,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3804,7 +3804,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -4144,7 +4144,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -4517,7 +4517,7 @@ msgstr "der Name des Ursprung Containers muss angegeben werden" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4544,7 +4544,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4571,7 +4571,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4779,7 +4779,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4850,11 +4850,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4884,7 +4884,7 @@ msgstr "kann nicht zum selben Container Namen kopieren" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 #, fuzzy msgid "Please provide an alternate server address (empty to abort):" msgstr "Alternatives config Verzeichnis." @@ -4898,7 +4898,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "der Name des Ursprung Containers muss angegeben werden" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -5034,7 +5034,7 @@ msgstr "Profil %s gelöscht\n" msgid "Project %s renamed to %s" msgstr "Profil %s wurde auf %s angewandt\n" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -5133,7 +5133,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -5230,45 +5230,45 @@ msgstr "Herunterfahren des Containers erzwingen." msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, fuzzy, c-format msgid "Remote %s already exists" msgstr "entfernte Instanz %s existiert bereits" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, fuzzy, c-format msgid "Remote %s doesn't exist" msgstr "entfernte Instanz %s existiert nicht" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, fuzzy, c-format msgid "Remote %s exists as <%s>" msgstr "entfernte Instanz %s existiert als <%s>" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "Entferntes Administrator Passwort" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -5363,7 +5363,7 @@ msgstr "kann nicht zum selben Container Namen kopieren" msgid "Remove profiles from instances" msgstr "kann nicht zum selben Container Namen kopieren" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -5427,7 +5427,7 @@ msgstr "Fehlerhafte Profil URL %s" msgid "Rename projects" msgstr "Fehlerhafte Profil URL %s" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5582,7 +5582,7 @@ msgstr "Entferntes Administrator Passwort" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5619,21 +5619,21 @@ msgstr "Erstellt: %s" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "Server Zertifikat vom Benutzer nicht akzeptiert" -#: lxc/remote.go:615 +#: lxc/remote.go:616 #, fuzzy msgid "Server doesn't trust us after authentication" msgstr "" "Der Server vertraut uns nicht nachdem er unser Zertifikat hinzugefügt hat" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5854,7 +5854,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -6113,7 +6113,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -6337,7 +6337,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -6594,7 +6594,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6658,7 +6658,7 @@ msgstr "kann nicht zum selben Container Namen kopieren" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6702,7 +6702,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6730,7 +6730,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 #, fuzzy msgid "Unavailable remote server" msgstr "Neue entfernte Server hinzufügen" @@ -6751,7 +6751,7 @@ msgstr "Unbekannter Befehl %s für Abbild" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, fuzzy, c-format msgid "Unknown console type %q" msgstr "Unbekannter Befehl %s für Abbild" @@ -7091,7 +7091,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -8356,7 +8356,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/remote.go:88 +#: lxc/remote.go:89 #, fuzzy msgid "[] " msgstr "" @@ -8373,7 +8373,7 @@ msgstr "" "Entfernt einen Container (oder Sicherungspunkt) und alle dazugehörigen\n" "Daten (Konfiguration, Sicherungspunkte, ...).\n" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -8763,7 +8763,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -8775,7 +8775,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -8812,7 +8812,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/el.po b/po/el.po index 22108f078940..d8995e677b67 100644 --- a/po/el.po +++ b/po/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Greek " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -636,11 +636,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -708,7 +708,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -745,7 +745,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -768,7 +768,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -816,7 +816,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -839,7 +839,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -995,7 +995,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1061,15 +1061,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr " Χρήση δικτύου:" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1081,7 +1080,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr " Χρήση δικτύου:" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1329,12 +1328,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1373,7 +1372,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1731,9 +1730,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2281,7 +2280,7 @@ msgstr " Χρήση δικτύου:" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2296,11 +2295,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, fuzzy, c-format msgid "Failed to close server cert file %q: %w" msgstr " Χρήση δικτύου:" @@ -2310,7 +2309,7 @@ msgstr " Χρήση δικτύου:" msgid "Failed to connect to cluster member: %w" msgstr " Χρήση δικτύου:" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2320,12 +2319,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2350,7 +2349,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2433,7 +2432,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2471,7 +2470,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2491,7 +2490,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2925,7 +2924,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -3006,7 +3005,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3062,7 +3061,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3383,7 +3382,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3695,7 +3694,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -4050,7 +4049,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4077,7 +4076,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4104,7 +4103,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4308,7 +4307,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4379,11 +4378,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4412,7 +4411,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4425,7 +4424,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr " Χρήση δικτύου:" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4556,7 +4555,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4654,7 +4653,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4745,45 +4744,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4869,7 +4868,7 @@ msgstr " Χρήση δικτύου:" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4927,7 +4926,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5073,7 +5072,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5110,19 +5109,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5336,7 +5335,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5583,7 +5582,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5796,7 +5795,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -6043,7 +6042,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6107,7 +6106,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6150,7 +6149,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6178,7 +6177,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6198,7 +6197,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6518,7 +6517,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7167,7 +7166,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7175,7 +7174,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7561,7 +7560,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7573,7 +7572,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7610,7 +7609,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/eo.po b/po/eo.po index 92125e079a24..e21f4cfecbaf 100644 --- a/po/eo.po +++ b/po/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Esperanto " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/es.po b/po/es.po index 49412ed1f08e..427b8a35ee85 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2023-06-16 20:55+0000\n" "Last-Translator: Francisco Serrador \n" "Language-Team: Spanish " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -799,7 +799,7 @@ msgstr "ALIASES" msgid "ARCHITECTURE" msgstr "ARQUITECTURA" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -807,7 +807,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "Acepta certificado" @@ -880,11 +880,11 @@ msgstr "" msgid "Add new aliases" msgstr "Aliases:" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -952,7 +952,7 @@ msgstr "Expira: %s" msgid "Admin access key: %s" msgstr "Expira: %s" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, fuzzy, c-format msgid "Admin password (or token) for %s:" msgstr "Contraseña admin para %s: " @@ -989,7 +989,7 @@ msgstr "Aliases:" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -1013,7 +1013,7 @@ msgstr "Arquitectura: %s" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1062,7 +1062,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "Tipo de autenticación %s no está soportada por el servidor" @@ -1085,7 +1085,7 @@ msgstr "Auto actualización: %s" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -1244,7 +1244,7 @@ msgstr "No se puede jalar un directorio sin - recursivo" msgid "Can't read from stdin: %w" msgstr "No se peude leer desde stdin: %s" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1311,17 +1311,17 @@ msgstr "Cacheado: %s" msgid "Certificate add token for %s deleted" msgstr "Perfil %s eliminado" -#: lxc/remote.go:218 +#: lxc/remote.go:455 +#, fuzzy +msgid "Certificate fingerprint" +msgstr "Certificado de la huella digital: %s" + +#: lxc/remote.go:219 #, c-format msgid "" "Certificate fingerprint mismatch between certificate token and server %q" msgstr "" -#: lxc/remote.go:454 -#, c-format -msgid "Certificate fingerprint: %s" -msgstr "Certificado de la huella digital: %s" - #: lxc/network.go:893 msgid "Chassis" msgstr "" @@ -1331,7 +1331,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "Nombre del Miembro del Cluster" -#: lxc/remote.go:619 +#: lxc/remote.go:620 #, fuzzy msgid "Client certificate now trusted by server:" msgstr "Certificado del cliente almacenado en el servidor: " @@ -1584,12 +1584,12 @@ msgstr "Expira: %s" msgid "Cores:" msgstr "Expira: %s" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, fuzzy, c-format msgid "Could not close server cert file %q: %w" msgstr "Certificado de la huella digital: %s" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1628,7 +1628,7 @@ msgstr "Certificado de la huella digital: %s" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, fuzzy, c-format msgid "Could not write server cert file %q: %w" msgstr "Certificado de la huella digital: %s" @@ -1992,9 +1992,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2546,7 +2546,7 @@ msgstr "Nombre del Miembro del Cluster" msgid "Failed parsing SSH host key: %w" msgstr "Acepta certificado" -#: lxc/console.go:365 +#: lxc/console.go:366 #, fuzzy, c-format msgid "Failed starting command: %w" msgstr "Acepta certificado" @@ -2561,11 +2561,11 @@ msgstr "Acepta certificado" msgid "Failed to accept incoming connection: %w" msgstr "Acepta certificado" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, fuzzy, c-format msgid "Failed to close server cert file %q: %w" msgstr "Acepta certificado" @@ -2575,7 +2575,7 @@ msgstr "Acepta certificado" msgid "Failed to connect to cluster member: %w" msgstr "Nombre del Miembro del Cluster" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2585,12 +2585,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "Acepta certificado" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, fuzzy, c-format msgid "Failed to create certificate: %w" msgstr "Acepta certificado" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2615,7 +2615,7 @@ msgstr "Acepta certificado" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, fuzzy, c-format msgid "Failed to write server cert file %q: %w" msgstr "Acepta certificado" @@ -2699,7 +2699,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2737,7 +2737,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2757,7 +2757,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -3199,7 +3199,7 @@ msgstr "Nombre del contenedor es: %s" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -3281,7 +3281,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3338,7 +3338,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3670,7 +3670,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3984,7 +3984,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -4349,7 +4349,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4376,7 +4376,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4403,7 +4403,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4605,7 +4605,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4676,11 +4676,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4709,7 +4709,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4722,7 +4722,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "Nombre del Miembro del Cluster" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4857,7 +4857,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4955,7 +4955,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -5048,46 +5048,46 @@ msgstr "No se puede proveer el nombre del container a la lista" msgid "Refreshing the image: %s" msgstr "Refrescando la imagen: %s" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 #, fuzzy msgid "Remote admin password" msgstr "Contraseña admin para %s: " -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -5174,7 +5174,7 @@ msgstr "Nombre del Miembro del Cluster" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -5233,7 +5233,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5384,7 +5384,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5421,19 +5421,19 @@ msgstr "Creado: %s" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5648,7 +5648,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5896,7 +5896,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -6110,7 +6110,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -6360,7 +6360,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6424,7 +6424,7 @@ msgstr "No se puede proveer el nombre del container a la lista" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6469,7 +6469,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6497,7 +6497,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6517,7 +6517,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6839,7 +6839,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7630,7 +7630,7 @@ msgstr "No se puede proveer el nombre del container a la lista" msgid "[:][] [...]" msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/remote.go:88 +#: lxc/remote.go:89 #, fuzzy msgid "[] " msgstr "No se puede proveer el nombre del container a la lista" @@ -7640,7 +7640,7 @@ msgstr "No se puede proveer el nombre del container a la lista" msgid "[[:]]" msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -8026,7 +8026,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -8038,7 +8038,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -8075,7 +8075,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/fa.po b/po/fa.po index 3b500c772f74..70738b9cb8ad 100644 --- a/po/fa.po +++ b/po/fa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Persian " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/fi.po b/po/fi.po index 07ac9b2d89de..99092189449e 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Finnish " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/fr.po b/po/fr.po index b98fe648ccd7..0dc2be4bbad0 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Wivik \n" "Language-Team: French " msgstr " " -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 #, fuzzy msgid "" msgstr "Serveur distant : %s" -#: lxc/remote.go:938 +#: lxc/remote.go:939 #, fuzzy msgid " " msgstr "Serveur distant : %s" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -817,7 +817,7 @@ msgstr "ALIAS" msgid "ARCHITECTURE" msgstr "ARCHITECTURE" -#: lxc/remote.go:750 +#: lxc/remote.go:751 #, fuzzy msgid "AUTH TYPE" msgstr "TYPE" @@ -826,7 +826,7 @@ msgstr "TYPE" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "Accepter le certificat" @@ -901,11 +901,11 @@ msgstr "" msgid "Add new aliases" msgstr "Alias :" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "Ajouter de nouveaux serveurs distants" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -984,7 +984,7 @@ msgstr "Expire : %s" msgid "Admin access key: %s" msgstr "Expire : %s" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, fuzzy, c-format msgid "Admin password (or token) for %s:" msgstr "Mot de passe administrateur pour %s : " @@ -1022,7 +1022,7 @@ msgstr "Alias :" msgid "All projects" msgstr "Rendre l'image publique" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -1046,7 +1046,7 @@ msgstr "Architecture : %s" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1099,7 +1099,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "Le type d'authentification '%s' n'est pas supporté par le serveur" @@ -1122,7 +1122,7 @@ msgstr "Mise à jour auto. : %s" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 #, fuzzy msgid "Available projects:" msgstr "Rendre l'image publique" @@ -1282,7 +1282,7 @@ msgstr "impossible de récupérer un répertoire sans --recursive" msgid "Can't read from stdin: %w" msgstr "Impossible de lire depuis stdin : %s" -#: lxc/remote.go:877 +#: lxc/remote.go:878 #, fuzzy msgid "Can't remove the default remote" msgstr "impossible de supprimer le serveur distant par défaut" @@ -1351,17 +1351,17 @@ msgstr "Créé : %s" msgid "Certificate add token for %s deleted" msgstr "Le réseau %s a été supprimé" -#: lxc/remote.go:218 +#: lxc/remote.go:455 +#, fuzzy +msgid "Certificate fingerprint" +msgstr "Empreinte du certificat : %s" + +#: lxc/remote.go:219 #, c-format msgid "" "Certificate fingerprint mismatch between certificate token and server %q" msgstr "" -#: lxc/remote.go:454 -#, c-format -msgid "Certificate fingerprint: %s" -msgstr "Empreinte du certificat : %s" - #: lxc/network.go:893 msgid "Chassis" msgstr "" @@ -1371,7 +1371,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/remote.go:619 +#: lxc/remote.go:620 #, fuzzy msgid "Client certificate now trusted by server:" msgstr "Certificat client enregistré sur le serveur : " @@ -1637,12 +1637,12 @@ msgstr "erreur : %v" msgid "Cores:" msgstr "erreur : %v" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, fuzzy, c-format msgid "Could not close server cert file %q: %w" msgstr "Impossible de créer le dossier de stockage des certificats serveurs" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "Impossible de créer le dossier de stockage des certificats serveurs" @@ -1681,7 +1681,7 @@ msgstr "Impossible d'assainir le chemin %s" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, fuzzy, c-format msgid "Could not write server cert file %q: %w" msgstr "Impossible de créer le dossier de stockage des certificats serveurs" @@ -2084,9 +2084,9 @@ msgstr "Récupération de l'image : %s" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2676,7 +2676,7 @@ msgstr "Échec lors de la génération de 'lxc.%s.1': %v" msgid "Failed parsing SSH host key: %w" msgstr "Échec lors de la génération de 'lxc.%s.1': %v" -#: lxc/console.go:365 +#: lxc/console.go:366 #, fuzzy, c-format msgid "Failed starting command: %w" msgstr "Échec lors de la génération de 'lxc.%s.1': %v" @@ -2691,12 +2691,12 @@ msgstr "Échec lors de la génération de 'lxc.%s.1': %v" msgid "Failed to accept incoming connection: %w" msgstr "Échec lors de la génération de 'lxc.1': %v" -#: lxc/remote.go:190 +#: lxc/remote.go:191 #, fuzzy msgid "Failed to add remote" msgstr "Échec lors de la génération de 'lxc.%s.1': %v" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, fuzzy, c-format msgid "Failed to close server cert file %q: %w" msgstr "Échec lors de la génération de 'lxc.%s.1': %v" @@ -2706,7 +2706,7 @@ msgstr "Échec lors de la génération de 'lxc.%s.1': %v" msgid "Failed to connect to cluster member: %w" msgstr "Profil à appliquer au nouveau conteneur" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, fuzzy, c-format msgid "Failed to create %q: %w" msgstr "Échec lors de la génération de 'lxc.%s.1': %v" @@ -2716,12 +2716,12 @@ msgstr "Échec lors de la génération de 'lxc.%s.1': %v" msgid "Failed to create alias %s: %w" msgstr "Échec lors de la génération de 'lxc.%s.1': %v" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, fuzzy, c-format msgid "Failed to create certificate: %w" msgstr "Échec lors de la génération de 'lxc.%s.1': %v" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, fuzzy, c-format msgid "Failed to find project: %w" msgstr "Échec lors de la génération de 'lxc.1': %v" @@ -2746,7 +2746,7 @@ msgstr "Échec lors de la génération de 'lxc.%s.1': %v" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, fuzzy, c-format msgid "Failed to write server cert file %q: %w" msgstr "Échec lors de la génération de 'lxc.%s.1': %v" @@ -2834,7 +2834,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2872,7 +2872,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2892,7 +2892,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "Génération d'un certificat client. Ceci peut prendre une minute…" @@ -3354,7 +3354,7 @@ msgstr "Le nom du conteneur est : %s" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "Schème d'URL invalide \"%s\" in \"%s\"" @@ -3437,7 +3437,7 @@ msgstr "nombre d'arguments incorrect pour la sous-comande" msgid "Invalid path %s" msgstr "Cible invalide %s" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, fuzzy, c-format msgid "Invalid protocol: %s" msgstr "Cible invalide %s" @@ -3495,7 +3495,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3891,7 +3891,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -4225,7 +4225,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -4604,7 +4604,7 @@ msgstr "Vous devez fournir le nom d'un conteneur pour : " #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "NOM" @@ -4631,7 +4631,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "NON" @@ -4659,7 +4659,7 @@ msgstr "" msgid "Name" msgstr "Nom : %s" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4873,7 +4873,7 @@ msgid "Only \"custom\" volumes can be snapshotted" msgstr "" "Seuls les volumes \"personnalisés\" peuvent être attachés aux conteneurs." -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "Seules les URLs https sont supportées par simplestreams" @@ -4949,11 +4949,11 @@ msgstr "PROFILS" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "PROTOCOLE" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "PUBLIC" @@ -4984,7 +4984,7 @@ msgstr "Création du conteneur" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 #, fuzzy msgid "Please provide an alternate server address (empty to abort):" msgstr "Chemin vers un dossier de configuration serveur alternatif" @@ -4998,7 +4998,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -5135,7 +5135,7 @@ msgstr "Profil %s supprimé" msgid "Project %s renamed to %s" msgstr "Profil %s ajouté à %s" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -5233,7 +5233,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "Serveur d'images public" @@ -5333,45 +5333,45 @@ msgstr "Ignorer l'état du conteneur (seulement pour start)" msgid "Refreshing the image: %s" msgstr "Récupération de l'image : %s" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, fuzzy, c-format msgid "Remote %s already exists" msgstr "le serveur distant %s existe déjà" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, fuzzy, c-format msgid "Remote %s doesn't exist" msgstr "le serveur distant %s n'existe pas" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, fuzzy, c-format msgid "Remote %s exists as <%s>" msgstr "le serveur distant %s existe en tant que <%s>" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, fuzzy, c-format msgid "Remote %s is global and cannot be removed" msgstr "le serveur distant %s est statique et ne peut être modifié" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, fuzzy, c-format msgid "Remote %s is static and cannot be modified" msgstr "le serveur distant %s est statique et ne peut être modifié" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "Mot de passe de l'administrateur distant" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 #, fuzzy msgid "Remote trust token" msgstr "Ajouter de nouveaux clients de confiance" @@ -5467,7 +5467,7 @@ msgstr "Création du conteneur" msgid "Remove profiles from instances" msgstr "Création du conteneur" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -5531,7 +5531,7 @@ msgstr "" msgid "Rename projects" msgstr "Créé : %s" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5703,7 +5703,7 @@ msgstr "Mot de passe de l'administrateur distant" msgid "STATE" msgstr "ÉTAT" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "STATIQUE" @@ -5743,21 +5743,21 @@ msgstr "Créé : %s" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "Certificat serveur rejeté par l'utilisateur" -#: lxc/remote.go:615 +#: lxc/remote.go:616 #, fuzzy msgid "Server doesn't trust us after authentication" msgstr "" "Le serveur ne nous fait pas confiance après l'ajout de notre certificat" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "Protocole du serveur (lxd ou simplestreams)" @@ -5980,7 +5980,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -6244,7 +6244,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 #, fuzzy msgid "Show the default remote" msgstr "impossible de supprimer le serveur distant par défaut" @@ -6471,7 +6471,7 @@ msgstr "Swap (pointe)" msgid "Switch the current project" msgstr "impossible de supprimer le serveur distant par défaut" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 #, fuzzy msgid "Switch the default remote" msgstr "impossible de supprimer le serveur distant par défaut" @@ -6732,7 +6732,7 @@ msgstr "Pour attacher un réseau à un conteneur, utiliser : lxc network attach" msgid "To create a new network, use: lxc network create" msgstr "Pour créer un réseau, utiliser : lxc network create" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6798,7 +6798,7 @@ msgstr "Transfert de l'image : %s" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6843,7 +6843,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "DATE DE PUBLICATION" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "URL" @@ -6871,7 +6871,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 #, fuzzy msgid "Unavailable remote server" msgstr "Ajouter de nouveaux serveurs distants" @@ -6892,7 +6892,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -7233,7 +7233,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "OUI" @@ -8609,7 +8609,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/remote.go:88 +#: lxc/remote.go:89 #, fuzzy msgid "[] " msgstr "" @@ -8629,7 +8629,7 @@ msgstr "" "Détruit les conteneurs ou les instantanés ainsi que toute donnée associée " "(configuration, instantanés, …)." -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 #, fuzzy msgid "current" msgstr "Swap (courant)" @@ -9038,7 +9038,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 #, fuzzy msgid "n" msgstr "non" @@ -9051,7 +9051,7 @@ msgstr "" msgid "no" msgstr "non" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -9088,7 +9088,7 @@ msgstr "inaccessible" msgid "used by" msgstr "utilisé par" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "o" diff --git a/po/he.po b/po/he.po index 456d1c910f72..5fa8dd1a34b2 100644 --- a/po/he.po +++ b/po/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hebrew " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -557,7 +557,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -565,7 +565,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -635,11 +635,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -706,7 +706,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -743,7 +743,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -766,7 +766,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -814,7 +814,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -837,7 +837,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -992,7 +992,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1058,15 +1058,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1078,7 +1077,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1326,12 +1325,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1370,7 +1369,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1720,9 +1719,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2260,7 +2259,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2275,11 +2274,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2289,7 +2288,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2299,12 +2298,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2329,7 +2328,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2412,7 +2411,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2450,7 +2449,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2470,7 +2469,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2891,7 +2890,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2972,7 +2971,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3028,7 +3027,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3347,7 +3346,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3646,7 +3645,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3989,7 +3988,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4016,7 +4015,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4043,7 +4042,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4245,7 +4244,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4316,11 +4315,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4349,7 +4348,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4361,7 +4360,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4492,7 +4491,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4590,7 +4589,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4681,45 +4680,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4801,7 +4800,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4858,7 +4857,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5003,7 +5002,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5040,19 +5039,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5259,7 +5258,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5490,7 +5489,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5702,7 +5701,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5948,7 +5947,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6012,7 +6011,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6055,7 +6054,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6083,7 +6082,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6103,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6406,7 +6405,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7055,7 +7054,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7063,7 +7062,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7449,7 +7448,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7461,7 +7460,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7498,7 +7497,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/hi.po b/po/hi.po index d1fd9320be9e..67b0f816629a 100644 --- a/po/hi.po +++ b/po/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hindi " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/id.po b/po/id.po index fd7c1b189f32..d03da99fd2d0 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/it.po b/po/it.po index 83e84130402a..9bcfa77bdc23 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Luigi Operoso \n" "Language-Team: Italian " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -801,7 +801,7 @@ msgstr "ALIAS" msgid "ARCHITECTURE" msgstr "ARCHITETTURA" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -809,7 +809,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "Accetta certificato" @@ -882,11 +882,11 @@ msgstr "" msgid "Add new aliases" msgstr "Aggiungi nuovi alias" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "Aggiungi un nuovo server remoto" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -954,7 +954,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "Password amministratore per %s: " -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, fuzzy, c-format msgid "Admin password (or token) for %s:" msgstr "Password amministratore per %s: " @@ -991,7 +991,7 @@ msgstr "Alias:" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -1015,7 +1015,7 @@ msgstr "Architettura: %s" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1064,7 +1064,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -1087,7 +1087,7 @@ msgstr "Aggiornamento automatico: %s" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -1243,7 +1243,7 @@ msgstr "Impossibile effettuare il pull di una directory senza --recursive" msgid "Can't read from stdin: %w" msgstr "Impossible leggere da stdin: %s" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1309,17 +1309,17 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "Il nome del container è: %s" -#: lxc/remote.go:218 +#: lxc/remote.go:455 +#, fuzzy +msgid "Certificate fingerprint" +msgstr "Creazione del container in corso" + +#: lxc/remote.go:219 #, c-format msgid "" "Certificate fingerprint mismatch between certificate token and server %q" msgstr "" -#: lxc/remote.go:454 -#, c-format -msgid "Certificate fingerprint: %s" -msgstr "" - #: lxc/network.go:893 msgid "Chassis" msgstr "" @@ -1329,7 +1329,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "Il nome del container è: %s" -#: lxc/remote.go:619 +#: lxc/remote.go:620 #, fuzzy msgid "Client certificate now trusted by server:" msgstr "Certificato del client salvato dal server: " @@ -1578,12 +1578,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, fuzzy, c-format msgid "Could not close server cert file %q: %w" msgstr "Certificato del client salvato dal server: " -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1622,7 +1622,7 @@ msgstr "Certificato del client salvato dal server: " msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, fuzzy, c-format msgid "Could not write server cert file %q: %w" msgstr "Certificato del client salvato dal server: " @@ -1987,9 +1987,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2542,7 +2542,7 @@ msgstr "Il nome del container è: %s" msgid "Failed parsing SSH host key: %w" msgstr "Accetta certificato" -#: lxc/console.go:365 +#: lxc/console.go:366 #, fuzzy, c-format msgid "Failed starting command: %w" msgstr "Accetta certificato" @@ -2557,11 +2557,11 @@ msgstr "Accetta certificato" msgid "Failed to accept incoming connection: %w" msgstr "Accetta certificato" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, fuzzy, c-format msgid "Failed to close server cert file %q: %w" msgstr "Accetta certificato" @@ -2571,7 +2571,7 @@ msgstr "Accetta certificato" msgid "Failed to connect to cluster member: %w" msgstr "Il nome del container è: %s" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2581,12 +2581,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "Accetta certificato" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, fuzzy, c-format msgid "Failed to create certificate: %w" msgstr "Accetta certificato" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2611,7 +2611,7 @@ msgstr "Accetta certificato" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, fuzzy, c-format msgid "Failed to write server cert file %q: %w" msgstr "Accetta certificato" @@ -2696,7 +2696,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2734,7 +2734,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2754,7 +2754,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -3191,7 +3191,7 @@ msgstr "Il nome del container è: %s" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -3274,7 +3274,7 @@ msgstr "numero errato di argomenti del sottocomando" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, fuzzy, c-format msgid "Invalid protocol: %s" msgstr "Proprietà errata: %s" @@ -3331,7 +3331,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3664,7 +3664,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3984,7 +3984,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -4347,7 +4347,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4374,7 +4374,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4604,7 +4604,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4675,11 +4675,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4709,7 +4709,7 @@ msgstr "Creazione del container in corso" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4722,7 +4722,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "Il nome del container è: %s" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4855,7 +4855,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4953,7 +4953,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -5047,46 +5047,46 @@ msgstr "Creazione del container in corso" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, fuzzy, c-format msgid "Remote %s already exists" msgstr "il remote %s esiste già" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, fuzzy, c-format msgid "Remote %s doesn't exist" msgstr "il remote %s non esiste" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, fuzzy, c-format msgid "Remote %s exists as <%s>" msgstr "il remote %s esiste come %s" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, fuzzy, c-format msgid "Remote %s is global and cannot be removed" msgstr "il remote %s è statico e non può essere modificato" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, fuzzy, c-format msgid "Remote %s is static and cannot be modified" msgstr "il remote %s è statico e non può essere modificato" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 #, fuzzy msgid "Remote admin password" msgstr "Password amministratore per %s: " -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -5174,7 +5174,7 @@ msgstr "Il nome del container è: %s" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -5233,7 +5233,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5384,7 +5384,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5421,19 +5421,19 @@ msgstr "Aggiornamento automatico: %s" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5646,7 +5646,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5892,7 +5892,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -6108,7 +6108,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -6358,7 +6358,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6422,7 +6422,7 @@ msgstr "Creazione del container in corso" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6466,7 +6466,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6494,7 +6494,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 #, fuzzy msgid "Unavailable remote server" msgstr "Aggiungi un nuovo server remoto" @@ -6515,7 +6515,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6833,7 +6833,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7627,7 +7627,7 @@ msgstr "Creazione del container in corso" msgid "[:][] [...]" msgstr "Creazione del container in corso" -#: lxc/remote.go:88 +#: lxc/remote.go:89 #, fuzzy msgid "[] " msgstr "Creazione del container in corso" @@ -7637,7 +7637,7 @@ msgstr "Creazione del container in corso" msgid "[[:]]" msgstr "Creazione del container in corso" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -8023,7 +8023,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 #, fuzzy msgid "n" msgstr "no" @@ -8036,7 +8036,7 @@ msgstr "" msgid "no" msgstr "no" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -8073,7 +8073,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" @@ -8109,10 +8109,6 @@ msgstr "si" #~ msgid "[[:]] [:][] [< config" #~ msgstr "Creazione del container in corso" -#, fuzzy -#~ msgid "[:] " -#~ msgstr "Creazione del container in corso" - #, fuzzy #~ msgid "[:] " #~ msgstr "Creazione del container in corso" diff --git a/po/ja.po b/po/ja.po index d5e4c4ed3ac1..fee94bc14b41 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2023-03-10 15:14+0000\n" "Last-Translator: KATOH Yasufumi \n" "Language-Team: Japanese " msgid " " msgstr " " -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr " " -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr " " @@ -792,7 +792,7 @@ msgstr "ALIASES" msgid "ARCHITECTURE" msgstr "ARCHITECTURE" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "AUTH TYPE" @@ -800,7 +800,7 @@ msgstr "AUTH TYPE" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "証明書を受け入れます" @@ -872,11 +872,11 @@ msgstr "グループからメンバーを削除します" msgid "Add new aliases" msgstr "新たにエイリアスを追加します" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "新たにリモートサーバを追加します" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -962,7 +962,7 @@ msgstr "アドレス: %s" msgid "Admin access key: %s" msgstr "管理者アクセスキー: %s" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "%s の管理者パスワード(もしくはトークン):" @@ -999,7 +999,7 @@ msgstr "エイリアス:" msgid "All projects" msgstr "すべてのプロジェクト" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "すべてのサーバーアドレスが利用できません" @@ -1023,7 +1023,7 @@ msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" "本当に %s しますか? (対象: クラスターメンバー %q) (yes/no) [default=no]: " -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "どちらもみつかりませんでした。raw SPICE ソケットはこちらにあります:" @@ -1075,7 +1075,7 @@ msgstr "" "このコマンドはインスタンスのブートコンソールに接続できます。\n" "そしてそこから過去のログエントリを取り出すことができます。" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "認証タイプ '%s' はサーバではサポートされていません" @@ -1098,7 +1098,7 @@ msgstr "自動更新: %s" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "利用可能なプロジェクト:" @@ -1256,7 +1256,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "標準入力から読み込めません: %w" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "デフォルトのリモートは削除できません" @@ -1325,18 +1325,18 @@ msgstr "カード: %s (%s)" msgid "Certificate add token for %s deleted" msgstr "%s に対する証明書追加トークンが削除されました" -#: lxc/remote.go:218 +#: lxc/remote.go:455 +#, fuzzy +msgid "Certificate fingerprint" +msgstr "証明書のフィンガープリント: %s" + +#: lxc/remote.go:219 #, c-format msgid "" "Certificate fingerprint mismatch between certificate token and server %q" msgstr "" "証明書のフィンガープリントが証明書トークンとサーバの間で一致しません %q" -#: lxc/remote.go:454 -#, c-format -msgid "Certificate fingerprint: %s" -msgstr "証明書のフィンガープリント: %s" - #: lxc/network.go:893 msgid "Chassis" msgstr "Chassis" @@ -1346,7 +1346,7 @@ msgstr "Chassis" msgid "Client %s certificate add token:" msgstr "クライアント %s の証明書追加トークン:" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "クライアント証明書がサーバに信頼されました:" @@ -1613,12 +1613,12 @@ msgstr "コア %d" msgid "Cores:" msgstr "コア:" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "サーバ証明書ファイル %q をクローズできません: %w" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "サーバ証明書格納用のディレクトリを作成できません" @@ -1657,7 +1657,7 @@ msgstr "秘密鍵ファイル %s をエラーで読み込めません: %v" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "リモート '%s' に対する新しいリモート証明書がエラーで書き込めません: %v" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "サーバ証明書ファイル %q を書き込めません: %w" @@ -2015,9 +2015,9 @@ msgstr "警告を削除します" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2593,7 +2593,7 @@ msgstr "デバイス上書きのためのプロファイル %q のロードに msgid "Failed parsing SSH host key: %w" msgstr "SSH ホスト鍵の読み取りに失敗しました: %w" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "コマンドの実行に失敗しました: %w" @@ -2608,11 +2608,11 @@ msgstr "sshfs の起動に失敗しました: %w" msgid "Failed to accept incoming connection: %w" msgstr "受信接続の受け入れに失敗しました: %w" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "リモートの追加に失敗しました" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "サーバー証明書ファイル %q のクローズに失敗しました: %w" @@ -2622,7 +2622,7 @@ msgstr "サーバー証明書ファイル %q のクローズに失敗しまし msgid "Failed to connect to cluster member: %w" msgstr "クラスタメンバへの接続に失敗しました: %w" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "%q の作成に失敗しました: %w" @@ -2632,12 +2632,12 @@ msgstr "%q の作成に失敗しました: %w" msgid "Failed to create alias %s: %w" msgstr "エイリアス %s の作成に失敗しました: %w" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "証明書の作成に失敗しました: %w" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "プロジェクトが見つけられませんでした: %w" @@ -2662,7 +2662,7 @@ msgstr "エイリアス %s の削除に失敗しました: %w" msgid "Failed to walk path for %s: %s" msgstr "パス %s にアクセスできませんでした: %s" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "サーバー証明書 %q の書き込みに失敗しました: %w" @@ -2761,7 +2761,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2799,7 +2799,7 @@ msgstr "クロック数: %vMhz" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "クロック数: %vMhz (最小: %vMhz, 最大: %vMhz)" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "GLOBAL" @@ -2819,7 +2819,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "すべてのコマンドに対する man ページを作成します" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "クライアント証明書を生成します。1分ぐらいかかります..." @@ -3264,7 +3264,7 @@ msgstr "インスタンス名: %s" msgid "Instance type" msgstr "インスタンスタイプ" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "不正な URL スキーム \"%s\" (\"%s\" 内)" @@ -3353,7 +3353,7 @@ msgstr "引数の数が不正です" msgid "Invalid path %s" msgstr "不正なパス %s" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "不正なプロトコル: %s" @@ -3409,7 +3409,7 @@ msgstr "LOCATION" msgid "LXD - Command line client" msgstr "LXD - コマンドラインクライアント" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" "LXD は spicy か remote-viewer がインストールされている場合は自動的にどちらか" @@ -3856,7 +3856,7 @@ msgstr "" " u - (使用中の)リファレンス数\n" " U - 現在のディスク使用量" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "利用可能なリモートサーバを一覧表示します" @@ -4195,7 +4195,7 @@ msgstr "" "プレフィックスで指定しない限りは、ボリュームに対する操作はすべて \"カスタム" "\" (ユーザが作成した) ボリュームに対して行われます。" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "リモートサーバのリストを管理します" @@ -4561,7 +4561,7 @@ msgstr "インスタンス名を指定する必要があります: " #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "NAME" @@ -4588,7 +4588,7 @@ msgstr "NICs:" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "NO" @@ -4615,7 +4615,7 @@ msgstr "NVRM バージョン: %v" msgid "Name" msgstr "名前" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "このリモートで使うプロジェクト名:" @@ -4820,7 +4820,7 @@ msgstr "\"カスタム\" のボリュームのみがエクスポートできま msgid "Only \"custom\" volumes can be snapshotted" msgstr "\"カスタム\" のボリュームのみがスナップショットを取得できます" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "simplestreams は https の URL のみサポートします" @@ -4891,11 +4891,11 @@ msgstr "PROFILES" msgid "PROJECT" msgstr "PROJECT" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "PROTOCOL" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "PUBLIC" @@ -4924,7 +4924,7 @@ msgstr "インスタンスを一時停止します" msgid "Perform an incremental copy" msgstr "インクリメンタルコピーを実行します" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "別のサーバアドレスを指定してください(空の場合は中止):" @@ -4936,7 +4936,7 @@ msgstr "クライアント名を入力してください: " msgid "Please provide cluster member name: " msgstr "クラスターメンバー名を入力してください: " -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "'y', 'n', フィンガープリントのどれかを入力してください:" @@ -5069,7 +5069,7 @@ msgstr "プロジェクト %s を削除しました" msgid "Project %s renamed to %s" msgstr "プロジェクト名 %s を %s に変更しました" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "リモートで使用するプロジェクト" @@ -5170,7 +5170,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "Public なイメージサーバとして設定します" @@ -5263,45 +5263,45 @@ msgstr "インスタンスの更新中: %s" msgid "Refreshing the image: %s" msgstr "イメージの更新中: %s" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "リモート %s は既に存在します" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "リモート %s は存在しません" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "リモート %s は <%s> として存在します" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "リモート %s は global ですので削除できません" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "リモート %s は static ですので変更できません" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "リモートの管理者パスワード" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "リモート名にコロンを含めることはできません" -#: lxc/remote.go:102 +#: lxc/remote.go:103 #, fuzzy msgid "Remote trust token" msgstr "信頼済みクライアントを削除します" @@ -5387,7 +5387,7 @@ msgstr "ロードバランサーからポートを削除します" msgid "Remove profiles from instances" msgstr "インスタンスからプロファイルを削除します" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "リモートサーバを削除します" @@ -5446,7 +5446,7 @@ msgstr "プロファイル名を変更します" msgid "Rename projects" msgstr "プロジェクト名を変更します" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "リモートサーバ名を変更します" @@ -5600,7 +5600,7 @@ msgstr "SSH クライアントが切断されました %q" msgid "STATE" msgstr "STATE" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "STATIC" @@ -5637,20 +5637,20 @@ msgstr "秘密鍵: %s" msgid "Send a raw query to LXD" msgstr "直接リクエスト (raw query) を LXD に送ります" -#: lxc/remote.go:104 +#: lxc/remote.go:105 #, fuzzy msgid "Server authentication type (tls or oidc)" msgstr "サーバの認証タイプ (tls もしくは candid)" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "ユーザによりサーバ証明書が拒否されました" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "認証後、サーバが我々を信用していません" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "サーバのプロトコル (lxd or simplestreams)" @@ -5915,7 +5915,7 @@ msgstr "" "後方互換性のため、単一の設定を行う場合は次の形式でも設定できます:\n" " lxc storage volume set [:] " -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "リモートの URL を設定します" @@ -6158,7 +6158,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "デフォルトのリモートを表示します" @@ -6370,7 +6370,7 @@ msgstr "Swap (ピーク)" msgid "Switch the current project" msgstr "現在のプロジェクトを切り替えます" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "デフォルトのリモートを切り替えます" @@ -6637,7 +6637,7 @@ msgid "To create a new network, use: lxc network create" msgstr "" "新しいネットワークを作成するには、lxc network create を使用してください" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "コンソールから切り離すには +a q を押します" @@ -6707,7 +6707,7 @@ msgstr "インスタンスを転送中: %s" msgid "Transmit policy" msgstr "通信ポリシー" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, fuzzy, c-format msgid "Trust token for %s: " msgstr "%s:%s のクラスターに join するためのトークンが削除されました" @@ -6752,7 +6752,7 @@ msgstr "UNLIMITED" msgid "UPLOAD DATE" msgstr "UPLOAD DATE" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "URL" @@ -6780,7 +6780,7 @@ msgstr "UUID: %v" msgid "Unable to create a temporary file: %v" msgstr "テンポラリファイルを作成できません: %v" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "リモートサーバーが利用できません" @@ -6800,7 +6800,7 @@ msgstr "クライアント %q の未知のチャンネルタイプ: %s" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "未知のカラム名の短縮形です '%c' ('%s' 中)" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "未知のコンソールタイプ %q" @@ -7122,7 +7122,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "YES" @@ -7803,7 +7803,7 @@ msgstr "[:][] =..." msgid "[:][] [...]" msgstr "[:] [...]" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "[] " @@ -7812,7 +7812,7 @@ msgstr "[] " msgid "[[:]]" msgstr "[:] " -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "現在値" @@ -8365,7 +8365,7 @@ msgstr "" "lxc storage volume import default backup0.tar.gz\n" "\t\tbackup0.tar.gz を使って新しいカスタムボリュームを作成します。" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "n" @@ -8377,7 +8377,7 @@ msgstr "名前" msgid "no" msgstr "no" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "ok (y/n/[fingerprint])?" @@ -8416,7 +8416,7 @@ msgstr "サーバに接続できません" msgid "used by" msgstr "ストレージを使用中の" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "y" diff --git a/po/ka.po b/po/ka.po index 51a7587e95b4..3407554ae96a 100644 --- a/po/ka.po +++ b/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -512,15 +512,15 @@ msgstr "" msgid " " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -553,7 +553,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -561,7 +561,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -631,11 +631,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -702,7 +702,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -739,7 +739,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -762,7 +762,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -810,7 +810,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -833,7 +833,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -988,7 +988,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1054,15 +1054,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1074,7 +1073,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1322,12 +1321,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1366,7 +1365,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1716,9 +1715,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2256,7 +2255,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2271,11 +2270,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2285,7 +2284,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2295,12 +2294,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2325,7 +2324,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2408,7 +2407,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2446,7 +2445,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2466,7 +2465,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2887,7 +2886,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2968,7 +2967,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3024,7 +3023,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3343,7 +3342,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3642,7 +3641,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3985,7 +3984,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4012,7 +4011,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4039,7 +4038,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4241,7 +4240,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4312,11 +4311,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4345,7 +4344,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4357,7 +4356,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4488,7 +4487,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4586,7 +4585,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4677,45 +4676,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4797,7 +4796,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4854,7 +4853,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -4999,7 +4998,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5036,19 +5035,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5255,7 +5254,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5486,7 +5485,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5698,7 +5697,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5944,7 +5943,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6008,7 +6007,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6051,7 +6050,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6079,7 +6078,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6099,7 +6098,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6402,7 +6401,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7051,7 +7050,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7059,7 +7058,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7445,7 +7444,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7457,7 +7456,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7494,7 +7493,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/ko.po b/po/ko.po index 9d45ffb0809c..6e35667a3648 100644 --- a/po/ko.po +++ b/po/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/lxd.pot b/po/lxd.pot index be58523a4ec4..0ecdaf192464 100644 --- a/po/lxd.pot +++ b/po/lxd.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" - "POT-Creation-Date: 2024-08-23 10:25-0500\n" + "POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -482,15 +482,15 @@ msgstr "" msgid " " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -522,7 +522,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -530,7 +530,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -600,11 +600,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "Add new remote servers\n" "\n" "URL for remote resources must be HTTPS (https://).\n" @@ -664,7 +664,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -701,7 +701,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -724,7 +724,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -771,7 +771,7 @@ msgid "Attach to instance consoles\n" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -794,7 +794,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -947,7 +947,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1012,14 +1012,13 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1031,7 +1030,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1236,12 +1235,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1280,7 +1279,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1539,7 +1538,7 @@ msgstr "" msgid "Delete warning" msgstr "" -#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 +#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 msgid "Description" msgstr "" @@ -2028,7 +2027,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2043,11 +2042,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2057,7 +2056,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2067,12 +2066,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2097,7 +2096,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2166,7 +2165,7 @@ msgid "Forcefully removing a server from the cluster should only be done as a "Are you really sure you want to force removing %s? (yes/no): " msgstr "" -#: lxc/alias.go:112 lxc/auth.go:336 lxc/auth.go:769 lxc/auth.go:1696 lxc/cluster.go:124 lxc/cluster.go:881 lxc/cluster_group.go:384 lxc/config_template.go:242 lxc/config_trust.go:352 lxc/config_trust.go:434 lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 lxc/network_forward.go:93 lxc/network_load_balancer.go:97 lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 lxc/storage_volume.go:1446 lxc/warning.go:93 +#: lxc/alias.go:112 lxc/auth.go:336 lxc/auth.go:769 lxc/auth.go:1696 lxc/cluster.go:124 lxc/cluster.go:881 lxc/cluster_group.go:384 lxc/config_template.go:242 lxc/config_trust.go:352 lxc/config_trust.go:434 lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 lxc/network_forward.go:93 lxc/network_load_balancer.go:97 lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2202,7 +2201,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2222,7 +2221,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2640,7 +2639,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2720,7 +2719,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -2772,7 +2771,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3079,7 +3078,7 @@ msgid "List storage volumes\n" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3374,7 +3373,7 @@ msgid "Manage storage volumes\n" "Unless specified through a prefix, all volume operations affect \"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3643,7 +3642,7 @@ msgstr "" msgid "Must supply instance name for: " msgstr "" -#: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -3667,7 +3666,7 @@ msgstr "" msgid "NICs:" msgstr "" -#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -3693,7 +3692,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -3894,7 +3893,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -3965,11 +3964,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -3998,7 +3997,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4010,7 +4009,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4132,7 +4131,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4214,7 +4213,7 @@ msgid "Provide the type of the storage volume if it is not custom.\n" " Removes the snapshot expiration period for a virtual machine \"data\" in pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4305,44 +4304,44 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4424,7 +4423,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4480,7 +4479,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -4622,7 +4621,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -4659,19 +4658,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -4850,7 +4849,7 @@ msgid "Set storage volume configuration keys\n" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5075,7 +5074,7 @@ msgid "Show the current identity\n" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5287,7 +5286,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5522,7 +5521,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -5584,7 +5583,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -5624,7 +5623,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -5650,7 +5649,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -5669,7 +5668,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -5962,7 +5961,7 @@ msgstr "" msgid "Wipe the instance root disk and re-initialize. The original image is used to re-initialize the instance if a different image or --empty is not specified." msgstr "" -#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -6574,7 +6573,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -6582,7 +6581,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -6901,7 +6900,7 @@ msgid "lxc storage volume import default backup0.tar.gz\n" " Create a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -6913,7 +6912,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -6950,7 +6949,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/mr.po b/po/mr.po index 0ac1b1950088..2a5f45bc064a 100644 --- a/po/mr.po +++ b/po/mr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Marathi " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/nb_NO.po b/po/nb_NO.po index 5455b7b4dd0d..52a2e2295940 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Norwegian Bokmål " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/nl.po b/po/nl.po index 3149f588dfb9..6eb0853497ee 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -780,7 +780,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "ARCHITECTUUR" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -788,7 +788,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -858,11 +858,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -929,7 +929,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -966,7 +966,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -989,7 +989,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1037,7 +1037,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -1060,7 +1060,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -1215,7 +1215,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1281,15 +1281,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1301,7 +1300,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1549,12 +1548,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1593,7 +1592,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1943,9 +1942,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2483,7 +2482,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2498,11 +2497,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2512,7 +2511,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2522,12 +2521,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2552,7 +2551,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2635,7 +2634,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2673,7 +2672,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2693,7 +2692,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -3114,7 +3113,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -3195,7 +3194,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3251,7 +3250,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3570,7 +3569,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3869,7 +3868,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -4212,7 +4211,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4239,7 +4238,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4266,7 +4265,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4468,7 +4467,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4539,11 +4538,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4572,7 +4571,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4584,7 +4583,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4715,7 +4714,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4813,7 +4812,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4904,45 +4903,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -5024,7 +5023,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -5081,7 +5080,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5226,7 +5225,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5263,19 +5262,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5482,7 +5481,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5713,7 +5712,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5925,7 +5924,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -6171,7 +6170,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6235,7 +6234,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6278,7 +6277,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6306,7 +6305,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6326,7 +6325,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6629,7 +6628,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7278,7 +7277,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7286,7 +7285,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7672,7 +7671,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7684,7 +7683,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7721,7 +7720,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/pa.po b/po/pa.po index 8476fccc939f..e122ac5c85ea 100644 --- a/po/pa.po +++ b/po/pa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Punjabi " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/pl.po b/po/pl.po index 7df6376e9194..3a8bb6309f90 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Polish " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -818,7 +818,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -826,7 +826,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -896,11 +896,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -967,7 +967,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -1004,7 +1004,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -1027,7 +1027,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1075,7 +1075,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -1098,7 +1098,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -1253,7 +1253,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1319,15 +1319,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1339,7 +1338,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1587,12 +1586,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1631,7 +1630,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1981,9 +1980,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2521,7 +2520,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2536,11 +2535,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2550,7 +2549,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2560,12 +2559,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2590,7 +2589,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2673,7 +2672,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2711,7 +2710,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2731,7 +2730,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -3152,7 +3151,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -3233,7 +3232,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3289,7 +3288,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3608,7 +3607,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3907,7 +3906,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -4250,7 +4249,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4277,7 +4276,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4304,7 +4303,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4506,7 +4505,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4577,11 +4576,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4610,7 +4609,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4622,7 +4621,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4753,7 +4752,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4851,7 +4850,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4942,45 +4941,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -5062,7 +5061,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -5119,7 +5118,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5264,7 +5263,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5301,19 +5300,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5520,7 +5519,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5751,7 +5750,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5963,7 +5962,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -6209,7 +6208,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6273,7 +6272,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6316,7 +6315,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6344,7 +6343,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6364,7 +6363,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6667,7 +6666,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7316,7 +7315,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7324,7 +7323,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7710,7 +7709,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7722,7 +7721,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7759,7 +7758,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/pt.po b/po/pt.po index 45408eb11b54..c205c8c5f3a7 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -512,15 +512,15 @@ msgstr "" msgid " " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -553,7 +553,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -561,7 +561,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -631,11 +631,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -702,7 +702,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -739,7 +739,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -762,7 +762,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -810,7 +810,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -833,7 +833,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -988,7 +988,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1054,15 +1054,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1074,7 +1073,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1322,12 +1321,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1366,7 +1365,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1716,9 +1715,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2256,7 +2255,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2271,11 +2270,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2285,7 +2284,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2295,12 +2294,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2325,7 +2324,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2408,7 +2407,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2446,7 +2445,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2466,7 +2465,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2887,7 +2886,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2968,7 +2967,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3024,7 +3023,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3343,7 +3342,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3642,7 +3641,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3985,7 +3984,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4012,7 +4011,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4039,7 +4038,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4241,7 +4240,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4312,11 +4311,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4345,7 +4344,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4357,7 +4356,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4488,7 +4487,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4586,7 +4585,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4677,45 +4676,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4797,7 +4796,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4854,7 +4853,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -4999,7 +4998,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5036,19 +5035,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5255,7 +5254,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5486,7 +5485,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5698,7 +5697,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5944,7 +5943,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6008,7 +6007,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6051,7 +6050,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6079,7 +6078,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6099,7 +6098,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6402,7 +6401,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7051,7 +7050,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7059,7 +7058,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7445,7 +7444,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7457,7 +7456,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7494,7 +7493,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/pt_BR.po b/po/pt_BR.po index c0c68069d95e..f5c83ca9a64a 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Renato dos Santos \n" "Language-Team: Portuguese (Brazil) " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -815,7 +815,7 @@ msgstr "ALIASES" msgid "ARCHITECTURE" msgstr "ARQUITETURA" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "TIPO DE AUTENTICAÇÃO" @@ -823,7 +823,7 @@ msgstr "TIPO DE AUTENTICAÇÃO" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "Aceitar certificado" @@ -897,11 +897,11 @@ msgstr "" msgid "Add new aliases" msgstr "Adicionar novo aliases" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "Adicionar novos servidores remoto" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -972,7 +972,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "Senha de administrador para %s: " -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, fuzzy, c-format msgid "Admin password (or token) for %s:" msgstr "Senha de administrador para %s: " @@ -1010,7 +1010,7 @@ msgstr "Aliases:" msgid "All projects" msgstr "Criar projetos" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -1034,7 +1034,7 @@ msgstr "Arquitetura: %v" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1088,7 +1088,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "Tipo de autenticação '%s' não suportada pelo servidor" @@ -1111,7 +1111,7 @@ msgstr "Atualização automática: %s" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 #, fuzzy msgid "Available projects:" msgstr "Criar projetos" @@ -1268,7 +1268,7 @@ msgstr "Não pode pegar um diretório sem --recursive" msgid "Can't read from stdin: %w" msgstr "Não é possível ler stdin: %s" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "Não é possível remover o default remoto" @@ -1335,17 +1335,17 @@ msgstr "Em cache: %s" msgid "Certificate add token for %s deleted" msgstr "Clustering ativado" -#: lxc/remote.go:218 +#: lxc/remote.go:455 +#, fuzzy +msgid "Certificate fingerprint" +msgstr "Certificado fingerprint: %s" + +#: lxc/remote.go:219 #, c-format msgid "" "Certificate fingerprint mismatch between certificate token and server %q" msgstr "" -#: lxc/remote.go:454 -#, c-format -msgid "Certificate fingerprint: %s" -msgstr "Certificado fingerprint: %s" - #: lxc/network.go:893 msgid "Chassis" msgstr "" @@ -1355,7 +1355,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "Nome de membro do cluster" -#: lxc/remote.go:619 +#: lxc/remote.go:620 #, fuzzy msgid "Client certificate now trusted by server:" msgstr "Certificado do cliente armazenado no servidor: " @@ -1615,12 +1615,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, fuzzy, c-format msgid "Could not close server cert file %q: %w" msgstr "Impossível criar diretório para certificado do servidor" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "Impossível criar diretório para certificado do servidor" @@ -1659,7 +1659,7 @@ msgstr "Certificado fingerprint: %s" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, fuzzy, c-format msgid "Could not write server cert file %q: %w" msgstr "Impossível criar diretório para certificado do servidor" @@ -2039,9 +2039,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2605,7 +2605,7 @@ msgstr "Nome de membro do cluster" msgid "Failed parsing SSH host key: %w" msgstr "Aceitar certificado" -#: lxc/console.go:365 +#: lxc/console.go:366 #, fuzzy, c-format msgid "Failed starting command: %w" msgstr "Aceitar certificado" @@ -2620,11 +2620,11 @@ msgstr "Aceitar certificado" msgid "Failed to accept incoming connection: %w" msgstr "Aceitar certificado" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, fuzzy, c-format msgid "Failed to close server cert file %q: %w" msgstr "Aceitar certificado" @@ -2634,7 +2634,7 @@ msgstr "Aceitar certificado" msgid "Failed to connect to cluster member: %w" msgstr "Nome de membro do cluster" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2644,12 +2644,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "Aceitar certificado" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, fuzzy, c-format msgid "Failed to create certificate: %w" msgstr "Aceitar certificado" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2674,7 +2674,7 @@ msgstr "Aceitar certificado" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, fuzzy, c-format msgid "Failed to write server cert file %q: %w" msgstr "Aceitar certificado" @@ -2758,7 +2758,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2796,7 +2796,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2816,7 +2816,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -3259,7 +3259,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -3341,7 +3341,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3398,7 +3398,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3726,7 +3726,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -4050,7 +4050,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -4413,7 +4413,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4440,7 +4440,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4467,7 +4467,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4669,7 +4669,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4740,11 +4740,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4773,7 +4773,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4786,7 +4786,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "Nome de membro do cluster" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4922,7 +4922,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -5020,7 +5020,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -5114,46 +5114,46 @@ msgstr "Editar arquivos no container" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 #, fuzzy msgid "Remote admin password" msgstr "Senha de administrador para %s: " -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 #, fuzzy msgid "Remote trust token" msgstr "Adicionar novos clientes confiáveis" @@ -5247,7 +5247,7 @@ msgstr "Adicionar perfis aos containers" msgid "Remove profiles from instances" msgstr "Adicionar perfis aos containers" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -5308,7 +5308,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5463,7 +5463,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5500,19 +5500,19 @@ msgstr "Criado: %s" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5732,7 +5732,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5989,7 +5989,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -6204,7 +6204,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -6456,7 +6456,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6520,7 +6520,7 @@ msgstr "Editar arquivos no container" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6564,7 +6564,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6592,7 +6592,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 #, fuzzy msgid "Unavailable remote server" msgstr "Adicionar novos servidores remoto" @@ -6613,7 +6613,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6942,7 +6942,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7662,7 +7662,7 @@ msgstr "" msgid "[:][] [...]" msgstr "Criar perfis" -#: lxc/remote.go:88 +#: lxc/remote.go:89 #, fuzzy msgid "[] " msgstr "Criar perfis" @@ -7672,7 +7672,7 @@ msgstr "Criar perfis" msgid "[[:]]" msgstr "Editar templates de arquivo do container" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -8058,7 +8058,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -8070,7 +8070,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -8107,7 +8107,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/ru.po b/po/ru.po index cb4de10b3a9e..ca8417e34f83 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Александр Киль \n" "Language-Team: Russian " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -819,7 +819,7 @@ msgstr "ПСЕВДОНИМ" msgid "ARCHITECTURE" msgstr "АРХИТЕКТУРА" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -827,7 +827,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "Принять сертификат" @@ -901,11 +901,11 @@ msgstr "" msgid "Add new aliases" msgstr "Псевдонимы:" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -973,7 +973,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "Пароль администратора для %s: " -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, fuzzy, c-format msgid "Admin password (or token) for %s:" msgstr "Пароль администратора для %s: " @@ -1011,7 +1011,7 @@ msgstr "Псевдонимы:" msgid "All projects" msgstr "Доступные команды:" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -1035,7 +1035,7 @@ msgstr "Архитектура: %v" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -1085,7 +1085,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -1108,7 +1108,7 @@ msgstr "Авто-обновление: %s" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 #, fuzzy msgid "Available projects:" msgstr "Доступные команды:" @@ -1266,7 +1266,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "Невозможно прочитать из стандартного ввода: %s" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1332,15 +1332,18 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr " Использование сети:" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +#, fuzzy +msgid "Certificate fingerprint" msgstr "" +"Изменение состояния одного или нескольких контейнеров %s.\n" +"\n" +"lxc %s [:] [[:]...]%s" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1352,7 +1355,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "Копирование образа: %s" -#: lxc/remote.go:619 +#: lxc/remote.go:620 #, fuzzy msgid "Client certificate now trusted by server:" msgstr "Сертификат клиента хранится на сервере: " @@ -1603,12 +1606,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, fuzzy, c-format msgid "Could not close server cert file %q: %w" msgstr "Не удалось создать каталог сертификата сервера" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "Не удалось создать каталог сертификата сервера" @@ -1647,7 +1650,7 @@ msgstr "Не удалось очистить путь %s" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, fuzzy, c-format msgid "Could not write server cert file %q: %w" msgstr "Не удалось создать каталог сертификата сервера" @@ -2025,9 +2028,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2589,7 +2592,7 @@ msgstr "Копирование образа: %s" msgid "Failed parsing SSH host key: %w" msgstr "Принять сертификат" -#: lxc/console.go:365 +#: lxc/console.go:366 #, fuzzy, c-format msgid "Failed starting command: %w" msgstr "Принять сертификат" @@ -2604,11 +2607,11 @@ msgstr "Принять сертификат" msgid "Failed to accept incoming connection: %w" msgstr "Принять сертификат" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, fuzzy, c-format msgid "Failed to close server cert file %q: %w" msgstr "Принять сертификат" @@ -2618,7 +2621,7 @@ msgstr "Принять сертификат" msgid "Failed to connect to cluster member: %w" msgstr "Копирование образа: %s" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2628,12 +2631,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "Принять сертификат" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, fuzzy, c-format msgid "Failed to create certificate: %w" msgstr "Принять сертификат" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2658,7 +2661,7 @@ msgstr "Принять сертификат" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, fuzzy, c-format msgid "Failed to write server cert file %q: %w" msgstr "Принять сертификат" @@ -2742,7 +2745,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2780,7 +2783,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2800,7 +2803,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -3245,7 +3248,7 @@ msgstr "Имя контейнера: %s" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -3327,7 +3330,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3384,7 +3387,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3720,7 +3723,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -4047,7 +4050,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -4414,7 +4417,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4441,7 +4444,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4468,7 +4471,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4674,7 +4677,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4745,11 +4748,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4778,7 +4781,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4791,7 +4794,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "Копирование образа: %s" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4922,7 +4925,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -5020,7 +5023,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -5115,46 +5118,46 @@ msgstr "Невозможно добавить имя контейнера в с msgid "Refreshing the image: %s" msgstr "Копирование образа: %s" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 #, fuzzy msgid "Remote admin password" msgstr "Пароль администратора для %s: " -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -5242,7 +5245,7 @@ msgstr "Копирование образа: %s" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -5303,7 +5306,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5457,7 +5460,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5494,19 +5497,19 @@ msgstr "Авто-обновление: %s" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5721,7 +5724,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5975,7 +5978,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -6194,7 +6197,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -6441,7 +6444,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6505,7 +6508,7 @@ msgstr "Невозможно добавить имя контейнера в с msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6549,7 +6552,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6577,7 +6580,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6597,7 +6600,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6922,7 +6925,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -8143,7 +8146,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/remote.go:88 +#: lxc/remote.go:89 #, fuzzy msgid "[] " msgstr "" @@ -8159,7 +8162,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -8545,7 +8548,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -8557,7 +8560,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -8594,7 +8597,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" @@ -8645,13 +8648,6 @@ msgstr "да" #~ "\n" #~ "lxc %s [:] [[:]...]%s" -#, fuzzy -#~ msgid "[:] " -#~ msgstr "" -#~ "Изменение состояния одного или нескольких контейнеров %s.\n" -#~ "\n" -#~ "lxc %s [:] [[:]...]%s" - #, fuzzy #~ msgid "[:] " #~ msgstr "" diff --git a/po/si.po b/po/si.po index d1ecdf52e5a6..feece45615be 100644 --- a/po/si.po +++ b/po/si.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Sinhala " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/sl.po b/po/sl.po index fe27352e90ed..462081505f80 100644 --- a/po/sl.po +++ b/po/sl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Slovenian " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -557,7 +557,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -565,7 +565,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -635,11 +635,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -706,7 +706,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -743,7 +743,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -766,7 +766,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -814,7 +814,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -837,7 +837,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -992,7 +992,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1058,15 +1058,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1078,7 +1077,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1326,12 +1325,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1370,7 +1369,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1720,9 +1719,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2260,7 +2259,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2275,11 +2274,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2289,7 +2288,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2299,12 +2298,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2329,7 +2328,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2412,7 +2411,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2450,7 +2449,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2470,7 +2469,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2891,7 +2890,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2972,7 +2971,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3028,7 +3027,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3347,7 +3346,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3646,7 +3645,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3989,7 +3988,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4016,7 +4015,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4043,7 +4042,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4245,7 +4244,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4316,11 +4315,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4349,7 +4348,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4361,7 +4360,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4492,7 +4491,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4590,7 +4589,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4681,45 +4680,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4801,7 +4800,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4858,7 +4857,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5003,7 +5002,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5040,19 +5039,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5259,7 +5258,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5490,7 +5489,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5702,7 +5701,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5948,7 +5947,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6012,7 +6011,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6055,7 +6054,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6083,7 +6082,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6103,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6406,7 +6405,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7055,7 +7054,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7063,7 +7062,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7449,7 +7448,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7461,7 +7460,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7498,7 +7497,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/sr.po b/po/sr.po index c616bfeeca21..aa060d5d2c64 100644 --- a/po/sr.po +++ b/po/sr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -557,7 +557,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -565,7 +565,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -635,11 +635,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -706,7 +706,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -743,7 +743,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -766,7 +766,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -814,7 +814,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -837,7 +837,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -992,7 +992,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1058,15 +1058,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1078,7 +1077,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1326,12 +1325,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1370,7 +1369,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1720,9 +1719,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2260,7 +2259,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2275,11 +2274,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2289,7 +2288,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2299,12 +2298,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2329,7 +2328,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2412,7 +2411,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2450,7 +2449,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2470,7 +2469,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2891,7 +2890,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2972,7 +2971,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3028,7 +3027,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3347,7 +3346,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3646,7 +3645,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3989,7 +3988,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4016,7 +4015,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4043,7 +4042,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4245,7 +4244,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4316,11 +4315,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4349,7 +4348,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4361,7 +4360,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4492,7 +4491,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4590,7 +4589,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4681,45 +4680,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4801,7 +4800,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4858,7 +4857,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5003,7 +5002,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5040,19 +5039,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5259,7 +5258,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5490,7 +5489,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5702,7 +5701,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5948,7 +5947,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6012,7 +6011,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6055,7 +6054,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6083,7 +6082,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6103,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6406,7 +6405,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7055,7 +7054,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7063,7 +7062,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7449,7 +7448,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7461,7 +7460,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7498,7 +7497,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/sv.po b/po/sv.po index 1e51861b91a9..e09498f1ebb8 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Swedish " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/te.po b/po/te.po index 8898a1129004..5c9c6d2aeb62 100644 --- a/po/te.po +++ b/po/te.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Telugu " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/th.po b/po/th.po index c878d9c1c66e..8f8f4c82b1d1 100644 --- a/po/th.po +++ b/po/th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -512,15 +512,15 @@ msgstr "" msgid " " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -553,7 +553,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -561,7 +561,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -631,11 +631,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -702,7 +702,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -739,7 +739,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -762,7 +762,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -810,7 +810,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -833,7 +833,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -988,7 +988,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1054,15 +1054,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1074,7 +1073,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1322,12 +1321,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1366,7 +1365,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1716,9 +1715,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2256,7 +2255,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2271,11 +2270,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2285,7 +2284,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2295,12 +2294,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2325,7 +2324,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2408,7 +2407,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2446,7 +2445,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2466,7 +2465,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2887,7 +2886,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2968,7 +2967,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3024,7 +3023,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3343,7 +3342,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3642,7 +3641,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3985,7 +3984,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4012,7 +4011,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4039,7 +4038,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4241,7 +4240,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4312,11 +4311,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4345,7 +4344,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4357,7 +4356,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4488,7 +4487,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4586,7 +4585,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4677,45 +4676,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4797,7 +4796,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4854,7 +4853,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -4999,7 +4998,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5036,19 +5035,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5255,7 +5254,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5486,7 +5485,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5698,7 +5697,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5944,7 +5943,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6008,7 +6007,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6051,7 +6050,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6079,7 +6078,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6099,7 +6098,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6402,7 +6401,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7051,7 +7050,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7059,7 +7058,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7445,7 +7444,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7457,7 +7456,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7494,7 +7493,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/tr.po b/po/tr.po index e50da04c1f79..808a1ce0e61d 100644 --- a/po/tr.po +++ b/po/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Turkish " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/tzm.po b/po/tzm.po index 1e795557a951..bd121bd96e11 100644 --- a/po/tzm.po +++ b/po/tzm.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Tamazight (Central Atlas) " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/ug.po b/po/ug.po index 4260b467c30d..82a78ce62960 100644 --- a/po/ug.po +++ b/po/ug.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Uyghur " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/uk.po b/po/uk.po index e620da8d3867..d2d1f40e6432 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Ukrainian " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -557,7 +557,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -565,7 +565,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -635,11 +635,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -706,7 +706,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -743,7 +743,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -766,7 +766,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -814,7 +814,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -837,7 +837,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -992,7 +992,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1058,15 +1058,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1078,7 +1077,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1326,12 +1325,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1370,7 +1369,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1720,9 +1719,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2260,7 +2259,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2275,11 +2274,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2289,7 +2288,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2299,12 +2298,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2329,7 +2328,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2412,7 +2411,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2450,7 +2449,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2470,7 +2469,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2891,7 +2890,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2972,7 +2971,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3028,7 +3027,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3347,7 +3346,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3646,7 +3645,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3989,7 +3988,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4016,7 +4015,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4043,7 +4042,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4245,7 +4244,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4316,11 +4315,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4349,7 +4348,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4361,7 +4360,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4492,7 +4491,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4590,7 +4589,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4681,45 +4680,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4801,7 +4800,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4858,7 +4857,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5003,7 +5002,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5040,19 +5039,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5259,7 +5258,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5490,7 +5489,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5702,7 +5701,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5948,7 +5947,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6012,7 +6011,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6055,7 +6054,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6083,7 +6082,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6103,7 +6102,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6406,7 +6405,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7055,7 +7054,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7063,7 +7062,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7449,7 +7448,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7461,7 +7460,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7498,7 +7497,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/zh_Hans.po b/po/zh_Hans.po index 5bcdaa808063..6b2ca0df5b29 100644 --- a/po/zh_Hans.po +++ b/po/zh_Hans.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: 0x0916 \n" "Language-Team: Chinese (Simplified) " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -717,7 +717,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -725,7 +725,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -795,11 +795,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -866,7 +866,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -903,7 +903,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -926,7 +926,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -974,7 +974,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -997,7 +997,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -1152,7 +1152,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1218,15 +1218,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1238,7 +1237,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1486,12 +1485,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1530,7 +1529,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1880,9 +1879,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2420,7 +2419,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2435,11 +2434,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2459,12 +2458,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2489,7 +2488,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2572,7 +2571,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2610,7 +2609,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2630,7 +2629,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -3051,7 +3050,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -3132,7 +3131,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3188,7 +3187,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3507,7 +3506,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3806,7 +3805,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -4149,7 +4148,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4176,7 +4175,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4203,7 +4202,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4405,7 +4404,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4476,11 +4475,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4509,7 +4508,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4521,7 +4520,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4652,7 +4651,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4750,7 +4749,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4841,45 +4840,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4961,7 +4960,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -5018,7 +5017,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5163,7 +5162,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5200,19 +5199,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5419,7 +5418,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5650,7 +5649,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5862,7 +5861,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -6108,7 +6107,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6172,7 +6171,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6215,7 +6214,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6243,7 +6242,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6263,7 +6262,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6566,7 +6565,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7215,7 +7214,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7223,7 +7222,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7609,7 +7608,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7621,7 +7620,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7658,7 +7657,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" diff --git a/po/zh_Hant.po b/po/zh_Hant.po index a080e3395f70..c76080e80834 100644 --- a/po/zh_Hant.po +++ b/po/zh_Hant.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-23 10:25-0500\n" +"POT-Creation-Date: 2024-08-27 13:17+0100\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Traditional) " msgstr "" -#: lxc/remote.go:841 lxc/remote.go:898 +#: lxc/remote.go:842 lxc/remote.go:899 msgid "" msgstr "" -#: lxc/remote.go:938 +#: lxc/remote.go:939 msgid " " msgstr "" -#: lxc/remote.go:768 +#: lxc/remote.go:769 msgid " " msgstr "" @@ -556,7 +556,7 @@ msgstr "" msgid "ARCHITECTURE" msgstr "" -#: lxc/remote.go:750 +#: lxc/remote.go:751 msgid "AUTH TYPE" msgstr "" @@ -564,7 +564,7 @@ msgstr "" msgid "AUTHENTICATION METHOD" msgstr "" -#: lxc/remote.go:100 +#: lxc/remote.go:101 msgid "Accept certificate" msgstr "" @@ -634,11 +634,11 @@ msgstr "" msgid "Add new aliases" msgstr "" -#: lxc/remote.go:89 +#: lxc/remote.go:90 msgid "Add new remote servers" msgstr "" -#: lxc/remote.go:90 +#: lxc/remote.go:91 msgid "" "Add new remote servers\n" "\n" @@ -705,7 +705,7 @@ msgstr "" msgid "Admin access key: %s" msgstr "" -#: lxc/remote.go:580 +#: lxc/remote.go:581 #, c-format msgid "Admin password (or token) for %s:" msgstr "" @@ -742,7 +742,7 @@ msgstr "" msgid "All projects" msgstr "" -#: lxc/remote.go:181 +#: lxc/remote.go:182 msgid "All server addresses are unavailable" msgstr "" @@ -765,7 +765,7 @@ msgstr "" msgid "Are you sure you want to %s cluster member %q? (yes/no) [default=no]: " msgstr "" -#: lxc/console.go:387 +#: lxc/console.go:388 msgid "As neither could be found, the raw SPICE socket can be found at:" msgstr "" @@ -813,7 +813,7 @@ msgid "" "as well as retrieve past log entries from it." msgstr "" -#: lxc/remote.go:551 +#: lxc/remote.go:552 #, c-format msgid "Authentication type '%s' not supported by server" msgstr "" @@ -836,7 +836,7 @@ msgstr "" msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" -#: lxc/remote.go:136 +#: lxc/remote.go:137 msgid "Available projects:" msgstr "" @@ -991,7 +991,7 @@ msgstr "" msgid "Can't read from stdin: %w" msgstr "" -#: lxc/remote.go:877 +#: lxc/remote.go:878 msgid "Can't remove the default remote" msgstr "" @@ -1057,15 +1057,14 @@ msgstr "" msgid "Certificate add token for %s deleted" msgstr "" -#: lxc/remote.go:218 -#, c-format -msgid "" -"Certificate fingerprint mismatch between certificate token and server %q" +#: lxc/remote.go:455 +msgid "Certificate fingerprint" msgstr "" -#: lxc/remote.go:454 +#: lxc/remote.go:219 #, c-format -msgid "Certificate fingerprint: %s" +msgid "" +"Certificate fingerprint mismatch between certificate token and server %q" msgstr "" #: lxc/network.go:893 @@ -1077,7 +1076,7 @@ msgstr "" msgid "Client %s certificate add token:" msgstr "" -#: lxc/remote.go:619 +#: lxc/remote.go:620 msgid "Client certificate now trusted by server:" msgstr "" @@ -1325,12 +1324,12 @@ msgstr "" msgid "Cores:" msgstr "" -#: lxc/remote.go:489 +#: lxc/remote.go:490 #, c-format msgid "Could not close server cert file %q: %w" msgstr "" -#: lxc/remote.go:224 lxc/remote.go:473 +#: lxc/remote.go:225 lxc/remote.go:474 msgid "Could not create server cert dir" msgstr "" @@ -1369,7 +1368,7 @@ msgstr "" msgid "Could not write new remote certificate for remote '%s' with error: %v" msgstr "" -#: lxc/remote.go:484 +#: lxc/remote.go:485 #, c-format msgid "Could not write server cert file %q: %w" msgstr "" @@ -1719,9 +1718,9 @@ msgstr "" #: lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 #: lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 #: lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 -#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:34 lxc/remote.go:90 -#: lxc/remote.go:647 lxc/remote.go:685 lxc/remote.go:771 lxc/remote.go:844 -#: lxc/remote.go:900 lxc/remote.go:940 lxc/rename.go:21 lxc/restore.go:24 +#: lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 +#: lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 +#: lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 @@ -2259,7 +2258,7 @@ msgstr "" msgid "Failed parsing SSH host key: %w" msgstr "" -#: lxc/console.go:365 +#: lxc/console.go:366 #, c-format msgid "Failed starting command: %w" msgstr "" @@ -2274,11 +2273,11 @@ msgstr "" msgid "Failed to accept incoming connection: %w" msgstr "" -#: lxc/remote.go:190 +#: lxc/remote.go:191 msgid "Failed to add remote" msgstr "" -#: lxc/remote.go:241 +#: lxc/remote.go:242 #, c-format msgid "Failed to close server cert file %q: %w" msgstr "" @@ -2288,7 +2287,7 @@ msgstr "" msgid "Failed to connect to cluster member: %w" msgstr "" -#: lxc/remote.go:231 +#: lxc/remote.go:232 #, c-format msgid "Failed to create %q: %w" msgstr "" @@ -2298,12 +2297,12 @@ msgstr "" msgid "Failed to create alias %s: %w" msgstr "" -#: lxc/remote.go:259 +#: lxc/remote.go:260 #, c-format msgid "Failed to create certificate: %w" msgstr "" -#: lxc/remote.go:266 +#: lxc/remote.go:267 #, c-format msgid "Failed to find project: %w" msgstr "" @@ -2328,7 +2327,7 @@ msgstr "" msgid "Failed to walk path for %s: %s" msgstr "" -#: lxc/remote.go:236 +#: lxc/remote.go:237 #, c-format msgid "Failed to write server cert file %q: %w" msgstr "" @@ -2411,7 +2410,7 @@ msgstr "" #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 -#: lxc/project.go:827 lxc/remote.go:689 lxc/storage.go:588 +#: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" @@ -2449,7 +2448,7 @@ msgstr "" msgid "Frequency: %vMhz (min: %vMhz, max: %vMhz)" msgstr "" -#: lxc/remote.go:753 +#: lxc/remote.go:754 msgid "GLOBAL" msgstr "" @@ -2469,7 +2468,7 @@ msgstr "" msgid "Generate manpages for all commands" msgstr "" -#: lxc/remote.go:159 lxc/remote.go:400 +#: lxc/remote.go:160 lxc/remote.go:401 msgid "Generating a client certificate. This may take a minute..." msgstr "" @@ -2890,7 +2889,7 @@ msgstr "" msgid "Instance type" msgstr "" -#: lxc/remote.go:352 +#: lxc/remote.go:353 #, c-format msgid "Invalid URL scheme \"%s\" in \"%s\"" msgstr "" @@ -2971,7 +2970,7 @@ msgstr "" msgid "Invalid path %s" msgstr "" -#: lxc/remote.go:341 +#: lxc/remote.go:342 #, c-format msgid "Invalid protocol: %s" msgstr "" @@ -3027,7 +3026,7 @@ msgstr "" msgid "LXD - Command line client" msgstr "" -#: lxc/console.go:386 +#: lxc/console.go:387 msgid "LXD automatically uses either spicy or remote-viewer when present." msgstr "" @@ -3346,7 +3345,7 @@ msgid "" " U - Current disk usage" msgstr "" -#: lxc/remote.go:684 lxc/remote.go:685 +#: lxc/remote.go:685 lxc/remote.go:686 msgid "List the available remotes" msgstr "" @@ -3645,7 +3644,7 @@ msgid "" "\"custom\" (user created) volumes." msgstr "" -#: lxc/remote.go:33 lxc/remote.go:34 +#: lxc/remote.go:34 lxc/remote.go:35 msgid "Manage the list of remote servers" msgstr "" @@ -3988,7 +3987,7 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:747 lxc/storage.go:638 lxc/storage_bucket.go:506 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 #: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4015,7 +4014,7 @@ msgstr "" #: lxc/network.go:957 lxc/operation.go:154 lxc/project.go:479 #: lxc/project.go:484 lxc/project.go:489 lxc/project.go:494 lxc/project.go:499 -#: lxc/project.go:504 lxc/remote.go:707 lxc/remote.go:712 lxc/remote.go:717 +#: lxc/project.go:504 lxc/remote.go:708 lxc/remote.go:713 lxc/remote.go:718 msgid "NO" msgstr "" @@ -4042,7 +4041,7 @@ msgstr "" msgid "Name" msgstr "" -#: lxc/remote.go:141 +#: lxc/remote.go:142 msgid "Name of the project to use for this remote:" msgstr "" @@ -4244,7 +4243,7 @@ msgstr "" msgid "Only \"custom\" volumes can be snapshotted" msgstr "" -#: lxc/remote.go:335 +#: lxc/remote.go:336 msgid "Only https URLs are supported for simplestreams" msgstr "" @@ -4315,11 +4314,11 @@ msgstr "" msgid "PROJECT" msgstr "" -#: lxc/remote.go:749 +#: lxc/remote.go:750 msgid "PROTOCOL" msgstr "" -#: lxc/image.go:1073 lxc/remote.go:751 +#: lxc/image.go:1073 lxc/remote.go:752 msgid "PUBLIC" msgstr "" @@ -4348,7 +4347,7 @@ msgstr "" msgid "Perform an incremental copy" msgstr "" -#: lxc/remote.go:182 +#: lxc/remote.go:183 msgid "Please provide an alternate server address (empty to abort):" msgstr "" @@ -4360,7 +4359,7 @@ msgstr "" msgid "Please provide cluster member name: " msgstr "" -#: lxc/remote.go:465 +#: lxc/remote.go:466 msgid "Please type 'y', 'n' or the fingerprint:" msgstr "" @@ -4491,7 +4490,7 @@ msgstr "" msgid "Project %s renamed to %s" msgstr "" -#: lxc/remote.go:106 +#: lxc/remote.go:107 msgid "Project to use for the remote" msgstr "" @@ -4589,7 +4588,7 @@ msgid "" "pool \"default\"." msgstr "" -#: lxc/remote.go:105 +#: lxc/remote.go:106 msgid "Public image server" msgstr "" @@ -4680,45 +4679,45 @@ msgstr "" msgid "Refreshing the image: %s" msgstr "" -#: lxc/remote.go:801 +#: lxc/remote.go:802 #, c-format msgid "Remote %s already exists" msgstr "" -#: lxc/project.go:792 lxc/remote.go:792 lxc/remote.go:865 lxc/remote.go:921 -#: lxc/remote.go:961 +#: lxc/project.go:792 lxc/remote.go:793 lxc/remote.go:866 lxc/remote.go:922 +#: lxc/remote.go:962 #, c-format msgid "Remote %s doesn't exist" msgstr "" -#: lxc/remote.go:304 +#: lxc/remote.go:305 #, c-format msgid "Remote %s exists as <%s>" msgstr "" -#: lxc/remote.go:873 +#: lxc/remote.go:874 #, c-format msgid "Remote %s is global and cannot be removed" msgstr "" -#: lxc/remote.go:796 lxc/remote.go:869 lxc/remote.go:965 +#: lxc/remote.go:797 lxc/remote.go:870 lxc/remote.go:966 #, c-format msgid "Remote %s is static and cannot be modified" msgstr "" -#: lxc/remote.go:293 +#: lxc/remote.go:294 msgid "Remote address must not be empty" msgstr "" -#: lxc/remote.go:101 +#: lxc/remote.go:102 msgid "Remote admin password" msgstr "" -#: lxc/remote.go:298 +#: lxc/remote.go:299 msgid "Remote names may not contain colons" msgstr "" -#: lxc/remote.go:102 +#: lxc/remote.go:103 msgid "Remote trust token" msgstr "" @@ -4800,7 +4799,7 @@ msgstr "" msgid "Remove profiles from instances" msgstr "" -#: lxc/remote.go:843 lxc/remote.go:844 +#: lxc/remote.go:844 lxc/remote.go:845 msgid "Remove remotes" msgstr "" @@ -4857,7 +4856,7 @@ msgstr "" msgid "Rename projects" msgstr "" -#: lxc/remote.go:770 lxc/remote.go:771 +#: lxc/remote.go:771 lxc/remote.go:772 msgid "Rename remotes" msgstr "" @@ -5002,7 +5001,7 @@ msgstr "" msgid "STATE" msgstr "" -#: lxc/remote.go:752 +#: lxc/remote.go:753 msgid "STATIC" msgstr "" @@ -5039,19 +5038,19 @@ msgstr "" msgid "Send a raw query to LXD" msgstr "" -#: lxc/remote.go:104 +#: lxc/remote.go:105 msgid "Server authentication type (tls or oidc)" msgstr "" -#: lxc/remote.go:463 +#: lxc/remote.go:464 msgid "Server certificate NACKed by user" msgstr "" -#: lxc/remote.go:615 +#: lxc/remote.go:616 msgid "Server doesn't trust us after authentication" msgstr "" -#: lxc/remote.go:103 +#: lxc/remote.go:104 msgid "Server protocol (lxd or simplestreams)" msgstr "" @@ -5258,7 +5257,7 @@ msgid "" " lxc storage volume set [:] [/] " msgstr "" -#: lxc/remote.go:939 lxc/remote.go:940 +#: lxc/remote.go:940 lxc/remote.go:941 msgid "Set the URL for the remote" msgstr "" @@ -5489,7 +5488,7 @@ msgid "" "that are granted via identity provider group mappings. \n" msgstr "" -#: lxc/remote.go:646 lxc/remote.go:647 +#: lxc/remote.go:647 lxc/remote.go:648 msgid "Show the default remote" msgstr "" @@ -5701,7 +5700,7 @@ msgstr "" msgid "Switch the current project" msgstr "" -#: lxc/remote.go:899 lxc/remote.go:900 +#: lxc/remote.go:900 lxc/remote.go:901 msgid "Switch the default remote" msgstr "" @@ -5947,7 +5946,7 @@ msgstr "" msgid "To create a new network, use: lxc network create" msgstr "" -#: lxc/console.go:214 +#: lxc/console.go:215 msgid "To detach from the console, press: +a q" msgstr "" @@ -6011,7 +6010,7 @@ msgstr "" msgid "Transmit policy" msgstr "" -#: lxc/remote.go:570 +#: lxc/remote.go:571 #, c-format msgid "Trust token for %s: " msgstr "" @@ -6054,7 +6053,7 @@ msgstr "" msgid "UPLOAD DATE" msgstr "" -#: lxc/cluster.go:184 lxc/remote.go:748 +#: lxc/cluster.go:184 lxc/remote.go:749 msgid "URL" msgstr "" @@ -6082,7 +6081,7 @@ msgstr "" msgid "Unable to create a temporary file: %v" msgstr "" -#: lxc/remote.go:213 lxc/remote.go:247 +#: lxc/remote.go:214 lxc/remote.go:248 msgid "Unavailable remote server" msgstr "" @@ -6102,7 +6101,7 @@ msgstr "" msgid "Unknown column shorthand char '%c' in '%s'" msgstr "" -#: lxc/console.go:163 +#: lxc/console.go:164 #, c-format msgid "Unknown console type %q" msgstr "" @@ -6405,7 +6404,7 @@ msgstr "" #: lxc/network.go:959 lxc/operation.go:156 lxc/project.go:481 #: lxc/project.go:486 lxc/project.go:491 lxc/project.go:496 lxc/project.go:501 -#: lxc/project.go:506 lxc/remote.go:709 lxc/remote.go:714 lxc/remote.go:719 +#: lxc/project.go:506 lxc/remote.go:710 lxc/remote.go:715 lxc/remote.go:720 msgid "YES" msgstr "" @@ -7054,7 +7053,7 @@ msgstr "" msgid "[:][] [...]" msgstr "" -#: lxc/remote.go:88 +#: lxc/remote.go:89 msgid "[] " msgstr "" @@ -7062,7 +7061,7 @@ msgstr "" msgid "[[:]]" msgstr "" -#: lxc/project.go:511 lxc/remote.go:738 +#: lxc/project.go:511 lxc/remote.go:739 msgid "current" msgstr "" @@ -7448,7 +7447,7 @@ msgid "" "\t\tCreate a new custom volume using backup0.tar.gz as the source." msgstr "" -#: lxc/remote.go:462 +#: lxc/remote.go:463 msgid "n" msgstr "" @@ -7460,7 +7459,7 @@ msgstr "" msgid "no" msgstr "" -#: lxc/remote.go:455 +#: lxc/remote.go:456 msgid "ok (y/n/[fingerprint])?" msgstr "" @@ -7497,7 +7496,7 @@ msgstr "" msgid "used by" msgstr "" -#: lxc/remote.go:464 +#: lxc/remote.go:465 msgid "y" msgstr "" From da01d419a516c3725fe8035ec9674e9712311d7d Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Tue, 27 Aug 2024 13:52:32 +0100 Subject: [PATCH 124/169] lxd: Remove unused state argument from instancesShutdown Signed-off-by: Thomas Parrott --- lxd/daemon.go | 4 ++-- lxd/instances.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/daemon.go b/lxd/daemon.go index 312d672e234f..4e183f057ae5 100644 --- a/lxd/daemon.go +++ b/lxd/daemon.go @@ -1377,7 +1377,7 @@ func (d *Daemon) init() error { return fmt.Errorf("Failed loading containers to restart: %w", err) } - instancesShutdown(s, instances) + instancesShutdown(instances) instancesStart(s, instances) } @@ -1941,7 +1941,7 @@ func (d *Daemon) Stop(ctx context.Context, sig os.Signal) error { // Full shutdown requested. if sig == unix.SIGPWR { - instancesShutdown(s, instances) + instancesShutdown(instances) logger.Info("Stopping networks") networkShutdown(s) diff --git a/lxd/instances.go b/lxd/instances.go index 9b88268773b7..e36915715b23 100644 --- a/lxd/instances.go +++ b/lxd/instances.go @@ -438,7 +438,7 @@ func instancesOnDisk(s *state.State) ([]instance.Instance, error) { return instances, nil } -func instancesShutdown(s *state.State, instances []instance.Instance) { +func instancesShutdown(instances []instance.Instance) { sort.Sort(instanceStopList(instances)) // Limit shutdown concurrency to number of instances or number of CPU cores (which ever is less). From edd30fbd0990f610436f2b45fc6bd00fd48fe1a7 Mon Sep 17 00:00:00 2001 From: Thomas Parrott Date: Tue, 27 Aug 2024 13:52:57 +0100 Subject: [PATCH 125/169] lxd/storage/drivers/driver/zfs/volumes: Don't use d.state.ShutdownCtx in GetVolumeDiskPath Because otherwise ZFS volumes aren't deactivated during instance shutdown during LXD shutdown because d.state.ShutdownCtx is canceled already. Signed-off-by: Thomas Parrott --- lxd/storage/drivers/driver_zfs_volumes.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/lxd/storage/drivers/driver_zfs_volumes.go b/lxd/storage/drivers/driver_zfs_volumes.go index 4a8c702a9db3..87f12ad60bb3 100644 --- a/lxd/storage/drivers/driver_zfs_volumes.go +++ b/lxd/storage/drivers/driver_zfs_volumes.go @@ -1974,7 +1974,9 @@ func (d *zfs) getVolumeDiskPathFromDataset(dataset string) (string, error) { // GetVolumeDiskPath returns the location of a root disk block device. func (d *zfs) GetVolumeDiskPath(vol Volume) (string, error) { // Wait up to 30 seconds for the device to appear. - ctx, cancel := context.WithTimeout(d.state.ShutdownCtx, 30*time.Second) + // Don't use d.state.ShutdownCtx here as this is used during instance stop during LXD shutdown after it is + // canceled. + ctx, cancel := context.WithTimeout(context.Background(), 30*time.Second) defer cancel() return d.tryGetVolumeDiskPathFromDataset(ctx, d.dataset(vol, false)) From 4226d0af54e4dad0d081bc47df5cc49064d8bbda Mon Sep 17 00:00:00 2001 From: Mark Laing Date: Tue, 27 Aug 2024 15:13:23 +0100 Subject: [PATCH 126/169] doc/reference: Add warning about volatile keys. Signed-off-by: Mark Laing --- doc/reference/instance_options.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/reference/instance_options.md b/doc/reference/instance_options.md index f9610d041ab5..652691b56a08 100644 --- a/doc/reference/instance_options.md +++ b/doc/reference/instance_options.md @@ -369,6 +369,11 @@ The following instance options control the creation and expiry of {ref}`instance The following volatile keys are currently used internally by LXD to store internal data specific to an instance: +```{important} +Setting these `volatile.*` keys might break LXD in non-obvious ways. +Therefore, you should avoid setting any of these keys. +``` + % Include content from [../metadata.txt](../metadata.txt) ```{include} ../metadata.txt :start-after: From 77444fc7a0cc5c70d6ade34578890b277050877c Mon Sep 17 00:00:00 2001 From: Simon Deziel Date: Mon, 26 Aug 2024 17:38:21 -0400 Subject: [PATCH 127/169] doc/guest-os-compatibility: add compatibility matrix with LXD 5.21 Signed-off-by: Simon Deziel --- doc/guest-os-compatibility.md | 68 +++++++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 doc/guest-os-compatibility.md diff --git a/doc/guest-os-compatibility.md b/doc/guest-os-compatibility.md new file mode 100644 index 000000000000..76fc79f0ee23 --- /dev/null +++ b/doc/guest-os-compatibility.md @@ -0,0 +1,68 @@ +(guest-os-compatibility)= +# Guest OS compatibility + +The following operating systems (OS) were tested as virtual machine guest running on top of on LXD `5.21/stable`. + +OS vendor | OS version | OS support | [LXD agent](#lxd-agent) | VirtIO-SCSI | VirtIO-BLK | NVMe | CSM (BIOS) | UEFI | Secure Boot +:--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- | :--- +CentOS | CentOS 6.10 [^1] | EOL | ❌ [^2] | ✅ | ❌ [^7] | 🟢 | ✅ | ❌ | ❌ +CentOS | CentOS 7.9 | EOL | ❌ [^2] | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ +CentOS | CentOS 8.5 | EOL | 🟢 [^3] | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ +CentOS | CentOS 8-Stream | EOL | 🟢 [^3] | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ +CentOS | CentOS 9-Stream | Supported | 🟢 [^3] | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ +Red Hat | RHEL 7.9 | EOL | ❌ [^2] | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ +Red Hat | RHEL 8.10 | Supported | 🟢 [^3] | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ +Red Hat | RHEL 9.4 | Supported | 🟢 [^3] | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ +Windows | Server 2012 | Supported | ➖ | ✅ | 🟢 | ❌ | 🟢 | ✅ | ✅ +Windows | Server 2016 | Supported | ➖ | ✅ | 🟢 | 🟢 [^4] | ❌ [^6] | ✅ | ✅ +Windows | Server 2019 | Supported | ➖ | ✅ | 🟢 | 🟢 | ❌ [^6] | ✅ | ✅ +Windows | Server 2022 | Supported | ➖ | ✅ | 🟢 | 🟢 | ❌ [^6] | ✅ | ✅ +Windows | 10 22H2 | Supported | ➖ | ✅ | 🟢 | 🟢 | ❌ [^6] | ✅ | ✅ +Windows | 11 23H2 [^5] | Supported | ➖ | ✅ | 🟢 | 🟢 | ❌ | ✅ | ✅ + +[^1]: No network support despite having VirtIO-NET module. +[^2]: Support for 9P or `virtiofs` not available. Note: CentOS 7 has a `kernel-plus` kernel with 9P support allowing LXD agent to work (with `selinux=0`). +[^3]: Requires disabling SELinux to allow LXD agent loading `virtiofs` configuration share. +[^4]: NVMe disks are visible but the installer lists all 255 namespaces slowing down the initialization. +[^5]: A virtual TPM is required. +[^6]: The OS installer hangs when booting in CSM/BIOS mode. +[^7]: The OS installer hangs when booting with VirtIO-BLK despite having VirtIO-BLK supported by the kernel. + +Legend: +✅ : recommended +🟢 : supported +➖ : not applicable +❌ : not supported + +## Notes + +### LXD agent + +The LXD agent provides the ability to execute commands inside of the virtual machine guest without relying on traditional access solution like secure shell (SSH) or Remote Desktop Protocol (RDP). This agent is only supported on Linux guests using `systemd`. + +### CSM/BIOS boot + +```bash +lxc config set v1 security.secureboot=false +lxc config set v1 security.csm=true +``` + +### Virtual TPM + +```bash +lxc config device add v1 vtpm tpm path=/dev/tpm0 +``` + +### VirtIO-BLK or NVMe + +```bash +lxc config device override v1 root io.bus=virtio-blk +# or +lxc config device override v1 root io.bus=nvme +``` + +### Disconnect the ISO + +```bash +lxc config device remove v1 iso +``` From 5f2f0ab29a25dbdd6c967505456e149aa6c2b6c6 Mon Sep 17 00:00:00 2001 From: Simon Deziel Date: Tue, 27 Aug 2024 09:03:12 -0400 Subject: [PATCH 128/169] doc/reference: link to guest OS compatibility Signed-off-by: Simon Deziel --- doc/reference/index.md | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/reference/index.md b/doc/reference/index.md index 1a3fdb4c2746..5016cc62da6b 100644 --- a/doc/reference/index.md +++ b/doc/reference/index.md @@ -17,6 +17,7 @@ You should also be aware of the supported architectures, the available image ser /architectures /reference/remote_image_servers /reference/image_format +/guest-os-compatibility Container environment ``` From 618572b71d07e291957025e660682e63f35d723e Mon Sep 17 00:00:00 2001 From: Simon Deziel Date: Tue, 27 Aug 2024 11:01:53 -0400 Subject: [PATCH 129/169] doc: sort custom word list Signed-off-by: Simon Deziel --- doc/.custom_wordlist.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/.custom_wordlist.txt b/doc/.custom_wordlist.txt index 3714e581f865..75f49459bb1d 100644 --- a/doc/.custom_wordlist.txt +++ b/doc/.custom_wordlist.txt @@ -89,10 +89,10 @@ hotplugging HTTPS HWE ICMP -IdP idmap idmapped idmaps +IdP incrementing InfiniBand init @@ -112,9 +112,9 @@ KiB kibi Kibit KVM +LogCLI lookups LoongArch -LogCLI LRU LV LVM @@ -133,8 +133,8 @@ MiB Mibit MicroCeph MicroCloud -MinIO MII +MinIO MITM MTU Mullvad From f6337c08b36bcf3183a520074e2b35d9ce79221c Mon Sep 17 00:00:00 2001 From: Simon Deziel Date: Tue, 27 Aug 2024 11:02:34 -0400 Subject: [PATCH 130/169] doc: add BLK, CSM, EOL, RDP and SELinux to custom word list Signed-off-by: Simon Deziel wip Signed-off-by: Simon Deziel --- doc/.custom_wordlist.txt | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/doc/.custom_wordlist.txt b/doc/.custom_wordlist.txt index 75f49459bb1d..6935b12e4187 100644 --- a/doc/.custom_wordlist.txt +++ b/doc/.custom_wordlist.txt @@ -18,6 +18,7 @@ balancers benchmarking BGP BitLocker +BLK bool bootable BPF @@ -41,6 +42,7 @@ CPUs CRIU CRL cron +CSM CSV CUDA dataset @@ -62,6 +64,7 @@ ECDSA EiB Eibit endian +EOL ES ESA ETag @@ -190,6 +193,7 @@ qgroups RADOS RBAC RBD +RDP README reconfiguring requestor @@ -208,6 +212,7 @@ SDS SDT SeaBIOS Seccomp +SELinux SEV SFTP SHA From ca5ce683eb4cf1deedeb1ee14586cd9f0f3780bd Mon Sep 17 00:00:00 2001 From: Simon Deziel Date: Tue, 27 Aug 2024 15:17:15 -0400 Subject: [PATCH 131/169] lxd/device/device_utils_disk: remove unused IsBlockdev() Signed-off-by: Simon Deziel --- lxd/device/device_utils_disk.go | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/lxd/device/device_utils_disk.go b/lxd/device/device_utils_disk.go index 224e6f817056..ba583048b295 100644 --- a/lxd/device/device_utils_disk.go +++ b/lxd/device/device_utils_disk.go @@ -75,24 +75,6 @@ func BlockFsDetect(dev string) (string, error) { return strings.TrimSpace(out), nil } -// IsBlockdev returns boolean indicating whether device is block type. -func IsBlockdev(path string) bool { - // Get a stat struct from the provided path - stat := unix.Stat_t{} - err := unix.Stat(path, &stat) - if err != nil { - return false - } - - // Check if it's a block device - if stat.Mode&unix.S_IFMT == unix.S_IFBLK { - return true - } - - // Not a device - return false -} - // DiskMount mounts a disk device. func DiskMount(srcPath string, dstPath string, recursive bool, propagation string, mountOptions []string, fsName string) error { var err error From 9d49b927b54bf220817934f20dadb2a14ca4b3a5 Mon Sep 17 00:00:00 2001 From: Kadin Sayani Date: Tue, 27 Aug 2024 19:31:08 +0000 Subject: [PATCH 132/169] tests: Add snapshot expiry date test to test_container_recover() in backup.sh Signed-off-by: Kadin Sayani --- test/suites/backup.sh | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/test/suites/backup.sh b/test/suites/backup.sh index 88d1fd314706..316dcfe4b71d 100644 --- a/test/suites/backup.sh +++ b/test/suites/backup.sh @@ -103,8 +103,10 @@ EOF echo "hello world" | lxc exec c1 --project test -- tee /mnt/test.txt [ "$(lxc exec c1 --project test -- cat /mnt/test.txt)" = "hello world" ] lxc stop -f c1 + lxc config set c1 snapshots.expiry 1d lxc snapshot c1 lxc info c1 + snapshotExpiryDateBefore=$(lxc info c1 | grep -wF "snap0") lxc storage volume snapshot "${poolName}" vol1_test snap0 lxc storage volume show "${poolName}" vol1_test @@ -185,6 +187,10 @@ EOF lxc start c1 lxc exec c1 --project test -- hostname + # Check snapshot expiry date has been restored. + snapshotExpiryDateAfter=$(lxc info c1 | grep -wF "snap0") + [ "$snapshotExpiryDateBefore" = "$snapshotExpiryDateAfter" ] + # Check custom volume accessible. lxc exec c1 --project test -- mount | grep /mnt [ "$(lxc exec c1 --project test -- cat /mnt/test.txt)" = "hello world" ] From 00506bb329a676b9bf319f48b022ac4b4df82447 Mon Sep 17 00:00:00 2001 From: Vishesh Agrawal Date: Fri, 26 Apr 2024 10:40:02 +0200 Subject: [PATCH 133/169] lxc/network_load_balancer: add Example to create Signed-off-by: Vishesh Agrawal (cherry picked from commit 8d9746cdd5c63e071c911caa9fcb49ff96f49277) Signed-off-by: Gabriel Mougard License: Apache-2.0 --- lxc/network_load_balancer.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lxc/network_load_balancer.go b/lxc/network_load_balancer.go index 6413b6224af6..b6b3483da096 100644 --- a/lxc/network_load_balancer.go +++ b/lxc/network_load_balancer.go @@ -236,6 +236,11 @@ func (c *cmdNetworkLoadBalancerCreate) command() *cobra.Command { cmd.Use = usage("create", i18n.G("[:] [] [key=value...]")) cmd.Short = i18n.G("Create new network load balancers") cmd.Long = cli.FormatSection(i18n.G("Description"), i18n.G("Create new network load balancers")) + cmd.Example = cli.FormatSection("", i18n.G(`lxc network load-balancer create n1 127.0.0.1 + +lxc network load-balancer create n1 127.0.0.1 < config.yaml + Create network load-balancer for network n1 with configuration from config.yaml`)) + cmd.RunE = c.run cmd.Flags().StringVar(&c.networkLoadBalancer.flagTarget, "target", "", i18n.G("Cluster member name")+"``") From e52f3cba94bbb662c4a15a9c2167ed8412f90a55 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Mon, 26 Aug 2024 23:29:18 +0200 Subject: [PATCH 134/169] lxc/network_load_balancer: fix go-vet linter Signed-off-by: Gabriel Mougard --- lxc/network_load_balancer.go | 46 ++++++++++++++++++------------------ 1 file changed, 23 insertions(+), 23 deletions(-) diff --git a/lxc/network_load_balancer.go b/lxc/network_load_balancer.go index b6b3483da096..98f3cf420581 100644 --- a/lxc/network_load_balancer.go +++ b/lxc/network_load_balancer.go @@ -120,7 +120,7 @@ func (c *cmdNetworkLoadBalancerList) run(cmd *cobra.Command, args []string) erro resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } loadBalancers, err := resource.server.GetNetworkLoadBalancers(resource.name) @@ -194,11 +194,11 @@ func (c *cmdNetworkLoadBalancerShow) run(cmd *cobra.Command, args []string) erro resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing listen address")) + return errors.New(i18n.G("Missing listen address")) } client := resource.server @@ -263,7 +263,7 @@ func (c *cmdNetworkLoadBalancerCreate) run(cmd *cobra.Command, args []string) er } if networkName == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } transporter, wrapper := newLocationHeaderTransportWrapper() @@ -409,11 +409,11 @@ func (c *cmdNetworkLoadBalancerGet) run(cmd *cobra.Command, args []string) error client := resource.server if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing listen address")) + return errors.New(i18n.G("Missing listen address")) } // Get the current config. @@ -482,11 +482,11 @@ func (c *cmdNetworkLoadBalancerSet) run(cmd *cobra.Command, args []string) error resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing listen address")) + return errors.New(i18n.G("Missing listen address")) } client := resource.server @@ -628,11 +628,11 @@ func (c *cmdNetworkLoadBalancerEdit) run(cmd *cobra.Command, args []string) erro resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing listen address")) + return errors.New(i18n.G("Missing listen address")) } client := resource.server @@ -748,11 +748,11 @@ func (c *cmdNetworkLoadBalancerDelete) run(cmd *cobra.Command, args []string) er resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing listen address")) + return errors.New(i18n.G("Missing listen address")) } client := resource.server @@ -824,11 +824,11 @@ func (c *cmdNetworkLoadBalancerBackend) runAdd(cmd *cobra.Command, args []string resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing listen address")) + return errors.New(i18n.G("Missing listen address")) } client := resource.server @@ -888,11 +888,11 @@ func (c *cmdNetworkLoadBalancerBackend) runRemove(cmd *cobra.Command, args []str resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing listen address")) + return errors.New(i18n.G("Missing listen address")) } client := resource.server @@ -923,7 +923,7 @@ func (c *cmdNetworkLoadBalancerBackend) runRemove(cmd *cobra.Command, args []str } if !removed { - return nil, fmt.Errorf(i18n.G("No matching backend found")) + return nil, errors.New(i18n.G("No matching backend found")) } return newBackends, nil @@ -989,11 +989,11 @@ func (c *cmdNetworkLoadBalancerPort) runAdd(cmd *cobra.Command, args []string) e resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing listen address")) + return errors.New(i18n.G("Missing listen address")) } client := resource.server @@ -1051,11 +1051,11 @@ func (c *cmdNetworkLoadBalancerPort) runRemove(cmd *cobra.Command, args []string resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network name")) + return errors.New(i18n.G("Missing network name")) } if args[1] == "" { - return fmt.Errorf(i18n.G("Missing listen address")) + return errors.New(i18n.G("Missing listen address")) } client := resource.server @@ -1099,7 +1099,7 @@ func (c *cmdNetworkLoadBalancerPort) runRemove(cmd *cobra.Command, args []string for _, port := range ports { if isFilterMatch(&port, filterArgs) { if removed && !c.flagRemoveForce { - return nil, fmt.Errorf(i18n.G("Multiple ports match. Use --force to remove them all")) + return nil, errors.New(i18n.G("Multiple ports match. Use --force to remove them all")) } removed = true @@ -1110,7 +1110,7 @@ func (c *cmdNetworkLoadBalancerPort) runRemove(cmd *cobra.Command, args []string } if !removed { - return nil, fmt.Errorf(i18n.G("No matching port(s) found")) + return nil, errors.New(i18n.G("No matching port(s) found")) } return newPorts, nil From b120ef6bb771259e3ff88842f11eca3f34a821af Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Wed, 28 Aug 2024 07:36:18 +0200 Subject: [PATCH 135/169] i18n: Update translation templates Signed-off-by: Gabriel Mougard --- po/ar.po | 161 +++++++++++++++++++++++++----------------------- po/ber.po | 161 +++++++++++++++++++++++++----------------------- po/bg.po | 161 +++++++++++++++++++++++++----------------------- po/ca.po | 161 +++++++++++++++++++++++++----------------------- po/cs.po | 161 +++++++++++++++++++++++++----------------------- po/de.po | 161 +++++++++++++++++++++++++----------------------- po/el.po | 161 +++++++++++++++++++++++++----------------------- po/eo.po | 161 +++++++++++++++++++++++++----------------------- po/es.po | 161 +++++++++++++++++++++++++----------------------- po/fa.po | 161 +++++++++++++++++++++++++----------------------- po/fi.po | 161 +++++++++++++++++++++++++----------------------- po/fr.po | 161 +++++++++++++++++++++++++----------------------- po/he.po | 161 +++++++++++++++++++++++++----------------------- po/hi.po | 161 +++++++++++++++++++++++++----------------------- po/id.po | 161 +++++++++++++++++++++++++----------------------- po/it.po | 161 +++++++++++++++++++++++++----------------------- po/ja.po | 166 +++++++++++++++++++++++++++----------------------- po/ka.po | 161 +++++++++++++++++++++++++----------------------- po/ko.po | 161 +++++++++++++++++++++++++----------------------- po/lxd.pot | 127 ++++++++++++++++++++------------------ po/mr.po | 161 +++++++++++++++++++++++++----------------------- po/nb_NO.po | 161 +++++++++++++++++++++++++----------------------- po/nl.po | 161 +++++++++++++++++++++++++----------------------- po/pa.po | 161 +++++++++++++++++++++++++----------------------- po/pl.po | 161 +++++++++++++++++++++++++----------------------- po/pt.po | 161 +++++++++++++++++++++++++----------------------- po/pt_BR.po | 161 +++++++++++++++++++++++++----------------------- po/ru.po | 161 +++++++++++++++++++++++++----------------------- po/si.po | 161 +++++++++++++++++++++++++----------------------- po/sl.po | 161 +++++++++++++++++++++++++----------------------- po/sr.po | 161 +++++++++++++++++++++++++----------------------- po/sv.po | 161 +++++++++++++++++++++++++----------------------- po/te.po | 161 +++++++++++++++++++++++++----------------------- po/th.po | 161 +++++++++++++++++++++++++----------------------- po/tr.po | 161 +++++++++++++++++++++++++----------------------- po/tzm.po | 161 +++++++++++++++++++++++++----------------------- po/ug.po | 161 +++++++++++++++++++++++++----------------------- po/uk.po | 161 +++++++++++++++++++++++++----------------------- po/zh_Hans.po | 161 +++++++++++++++++++++++++----------------------- po/zh_Hant.po | 161 +++++++++++++++++++++++++----------------------- 40 files changed, 3387 insertions(+), 3024 deletions(-) diff --git a/po/ar.po b/po/ar.po index 0747b7452667..56915cb9ed78 100644 --- a/po/ar.po +++ b/po/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -278,7 +278,7 @@ msgid "" "### Note that the listen_address and location cannot be changed." msgstr "" -#: lxc/network_load_balancer.go:588 +#: lxc/network_load_balancer.go:593 msgid "" "### This is a YAML representation of the network load balancer.\n" "### Any line starting with a '# will be ignored.\n" @@ -607,11 +607,11 @@ msgstr "" msgid "Add a network zone record entry" msgstr "" -#: lxc/network_load_balancer.go:798 +#: lxc/network_load_balancer.go:803 msgid "Add backend to a load balancer" msgstr "" -#: lxc/network_load_balancer.go:797 +#: lxc/network_load_balancer.go:802 msgid "Add backends to a load balancer" msgstr "" @@ -676,7 +676,7 @@ msgstr "" msgid "Add ports to a forward" msgstr "" -#: lxc/network_load_balancer.go:962 lxc/network_load_balancer.go:963 +#: lxc/network_load_balancer.go:967 lxc/network_load_balancer.go:968 msgid "Add ports to a load balancer" msgstr "" @@ -829,7 +829,7 @@ msgstr "" msgid "Auto update: %s" msgstr "" -#: lxc/network_forward.go:240 lxc/network_load_balancer.go:242 +#: lxc/network_forward.go:240 lxc/network_load_balancer.go:247 msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" @@ -865,7 +865,7 @@ msgid "Bad device override syntax, expecting ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1135,10 +1135,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1174,11 +1174,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1210,7 +1210,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1588,7 +1588,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1672,7 +1672,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1691,12 +1691,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1863,7 +1863,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1954,7 +1954,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2052,7 +2052,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2066,7 +2066,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2371,7 +2371,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2497,7 +2497,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2565,7 +2565,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2729,7 +2729,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2958,7 +2958,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3569,11 +3569,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3780,10 +3780,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3808,11 +3808,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3963,7 +3963,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4107,12 +4107,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4190,11 +4190,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4265,7 +4265,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4331,7 +4331,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4378,7 +4378,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4390,7 +4390,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4398,7 +4398,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4748,7 +4748,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4756,11 +4756,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4788,7 +4788,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5146,11 +5146,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5282,7 +5282,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5330,11 +5330,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5403,7 +5403,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5812,7 +5812,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5911,7 +5911,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5947,7 +5947,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6158,11 +6158,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6214,7 +6214,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6304,7 +6304,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6757,30 +6757,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6792,7 +6792,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7318,6 +7318,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ber.po b/po/ber.po index f229664c5008..45a36e4cd020 100644 --- a/po/ber.po +++ b/po/ber.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Berber ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/bg.po b/po/bg.po index 3e7755c991a9..b732bb10fbf5 100644 --- a/po/bg.po +++ b/po/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ca.po b/po/ca.po index eefc3329ea3f..559c4d80db2a 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Catalan ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/cs.po b/po/cs.po index 31a6a8860b1e..70fe089171e2 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Czech ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/de.po b/po/de.po index 90123ddb76b6..3d27c568823e 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Krombel \n" "Language-Team: German ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1440,10 +1440,10 @@ msgstr "Gerät %s wurde von %s entfernt\n" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1479,11 +1479,11 @@ msgstr "" msgid "Columns" msgstr "Spalten" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1518,7 +1518,7 @@ msgstr "kann nicht zum selben Container Namen kopieren" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1927,7 +1927,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 #, fuzzy msgid "Delete network load balancers" msgstr "Kein Zertifikat für diese Verbindung" @@ -2017,7 +2017,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -2036,12 +2036,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -2222,7 +2222,7 @@ msgstr "Herunterfahren des Containers erzwingen." msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -2324,7 +2324,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "Alternatives config Verzeichnis." -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 #, fuzzy msgid "Edit network load balancer configurations as YAML" msgstr "Alternatives config Verzeichnis." @@ -2429,7 +2429,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2443,7 +2443,7 @@ msgid "Error unsetting properties: %v" msgstr "Fehler beim hinzufügen des Alias %s\n" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2765,7 +2765,7 @@ msgstr "Herunterfahren des Containers erzwingen." msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2894,7 +2894,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 #, fuzzy msgid "Get the key as a network load balancer property" msgstr "Kein Zertifikat für diese Verbindung" @@ -2974,7 +2974,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "Profil %s erstellt\n" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 #, fuzzy msgid "Get values for network load balancer configuration keys" msgstr "Profil %s erstellt\n" @@ -3147,7 +3147,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -3383,7 +3383,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 #, fuzzy msgid "Invalid number of arguments" msgstr "ungültiges Argument %s" @@ -4056,12 +4056,12 @@ msgstr "Kein Zertifikat für diese Verbindung" msgid "Manage network forwards" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 #, fuzzy msgid "Manage network load balancer backends" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 #, fuzzy msgid "Manage network load balancer ports" msgstr "Kein Zertifikat für diese Verbindung" @@ -4296,10 +4296,10 @@ msgstr "Fehlende Zusammenfassung." #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 #, fuzzy msgid "Missing listen address" msgstr "der Name des Ursprung Containers muss angegeben werden" @@ -4327,11 +4327,11 @@ msgstr "Profilname kann nicht geändert werden" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4495,7 +4495,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4640,12 +4640,12 @@ msgstr "Profil %s erstellt\n" msgid "Network forward %s deleted" msgstr "Profil %s gelöscht\n" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, fuzzy, c-format msgid "Network load balancer %s created" msgstr "Profil %s erstellt\n" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, fuzzy, c-format msgid "Network load balancer %s deleted" msgstr "Profil %s gelöscht\n" @@ -4728,11 +4728,11 @@ msgstr "Kein Zertifikat für diese Verbindung" msgid "No device found for this storage volume" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4804,7 +4804,7 @@ msgstr "Profil %s gelöscht\n" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4870,7 +4870,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, fuzzy, c-format msgid "Password for %s: " msgstr "Administrator Passwort für %s: " @@ -4920,7 +4920,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4932,7 +4932,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4940,7 +4940,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -5306,7 +5306,7 @@ msgstr "Profil %s erstellt\n" msgid "Remove aliases" msgstr "Entferntes Administrator Passwort" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -5314,12 +5314,12 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 #, fuzzy msgid "Remove backend from a load balancer" msgstr "der Name des Ursprung Containers muss angegeben werden" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 #, fuzzy msgid "Remove backends from a load balancer" msgstr "der Name des Ursprung Containers muss angegeben werden" @@ -5353,7 +5353,7 @@ msgstr "kann nicht zum selben Container Namen kopieren" msgid "Remove ports from a forward" msgstr "kann nicht zum selben Container Namen kopieren" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 #, fuzzy msgid "Remove ports from a load balancer" msgstr "kann nicht zum selben Container Namen kopieren" @@ -5738,12 +5738,12 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 #, fuzzy msgid "Set network load balancer keys" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5883,7 +5883,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 #, fuzzy msgid "Set the key as a network load balancer property" msgstr "Kein Zertifikat für diese Verbindung" @@ -5938,11 +5938,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -6019,7 +6019,7 @@ msgstr "Profil %s erstellt\n" msgid "Show instance or server information" msgstr "Profil %s erstellt\n" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -6458,7 +6458,7 @@ msgstr "der Name des Ursprung Containers muss angegeben werden" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "der Name des Ursprung Containers muss angegeben werden" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, fuzzy, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "der Name des Ursprung Containers muss angegeben werden" @@ -6560,7 +6560,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6598,7 +6598,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6819,12 +6819,12 @@ msgstr "Profil %s erstellt\n" msgid "Unset network forward keys" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 #, fuzzy msgid "Unset network load balancer configuration keys" msgstr "Profil %s erstellt\n" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 #, fuzzy msgid "Unset network load balancer keys" msgstr "Kein Zertifikat für diese Verbindung" @@ -6885,7 +6885,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 #, fuzzy msgid "Unset the key as a network load balancer property" msgstr "Kein Zertifikat für diese Verbindung" @@ -6985,7 +6985,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -7780,7 +7780,7 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 #, fuzzy msgid "[:] " msgstr "" @@ -7788,7 +7788,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 #, fuzzy msgid "[:] " msgstr "" @@ -7796,7 +7796,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 #, fuzzy msgid "" "[:] " @@ -7807,7 +7807,7 @@ msgstr "" "lxd %s \n" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 #, fuzzy msgid "[:] " msgstr "" @@ -7815,7 +7815,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 #, fuzzy msgid "[:] =..." msgstr "" @@ -7823,7 +7823,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 #, fuzzy msgid "" "[:] " @@ -7839,7 +7839,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 #, fuzzy msgid "[:] [] []" msgstr "" @@ -8637,6 +8637,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/el.po b/po/el.po index d8995e677b67..63f3614a7580 100644 --- a/po/el.po +++ b/po/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Greek ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1142,10 +1142,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1181,11 +1181,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1217,7 +1217,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1599,7 +1599,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 #, fuzzy msgid "Delete network load balancers" msgstr " Χρήση δικτύου:" @@ -1687,7 +1687,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1706,12 +1706,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1882,7 +1882,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1974,7 +1974,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 #, fuzzy msgid "Edit network load balancer configurations as YAML" msgstr " Χρήση δικτύου:" @@ -2077,7 +2077,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2091,7 +2091,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2396,7 +2396,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2523,7 +2523,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 #, fuzzy msgid "Get the key as a network load balancer property" msgstr " Χρήση δικτύου:" @@ -2598,7 +2598,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 #, fuzzy msgid "Get values for network load balancer configuration keys" msgstr " Χρήση δικτύου:" @@ -2767,7 +2767,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2996,7 +2996,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3612,12 +3612,12 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 #, fuzzy msgid "Manage network load balancer backends" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 #, fuzzy msgid "Manage network load balancer ports" msgstr " Χρήση δικτύου:" @@ -3843,10 +3843,10 @@ msgstr " Χρήση δικτύου:" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3871,11 +3871,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4028,7 +4028,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4172,12 +4172,12 @@ msgstr " Χρήση δικτύου:" msgid "Network forward %s deleted" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, fuzzy, c-format msgid "Network load balancer %s created" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, fuzzy, c-format msgid "Network load balancer %s deleted" msgstr " Χρήση δικτύου:" @@ -4257,11 +4257,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4332,7 +4332,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4398,7 +4398,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4446,7 +4446,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4458,7 +4458,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4466,7 +4466,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4817,7 +4817,7 @@ msgstr " Χρήση δικτύου:" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4825,12 +4825,12 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 #, fuzzy msgid "Remove backend from a load balancer" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 #, fuzzy msgid "Remove backends from a load balancer" msgstr " Χρήση δικτύου:" @@ -4859,7 +4859,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 #, fuzzy msgid "Remove ports from a load balancer" msgstr " Χρήση δικτύου:" @@ -5222,12 +5222,12 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 #, fuzzy msgid "Set network load balancer keys" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5364,7 +5364,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 #, fuzzy msgid "Set the key as a network load balancer property" msgstr " Χρήση δικτύου:" @@ -5417,11 +5417,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5492,7 +5492,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5910,7 +5910,7 @@ msgstr " Χρήση δικτύου:" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, fuzzy, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr " Χρήση δικτύου:" @@ -6010,7 +6010,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6046,7 +6046,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6260,12 +6260,12 @@ msgstr " Χρήση δικτύου:" msgid "Unset network forward keys" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 #, fuzzy msgid "Unset network load balancer configuration keys" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 #, fuzzy msgid "Unset network load balancer keys" msgstr " Χρήση δικτύου:" @@ -6324,7 +6324,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr " Χρήση δικτύου:" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 #, fuzzy msgid "Unset the key as a network load balancer property" msgstr " Χρήση δικτύου:" @@ -6420,7 +6420,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6873,30 +6873,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6908,7 +6908,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7434,6 +7434,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/eo.po b/po/eo.po index e21f4cfecbaf..827f841e1d42 100644 --- a/po/eo.po +++ b/po/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Esperanto ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/es.po b/po/es.po index 427b8a35ee85..920912df24aa 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2023-06-16 20:55+0000\n" "Last-Translator: Francisco Serrador \n" "Language-Team: Spanish ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1394,10 +1394,10 @@ msgstr "Perfil %s eliminado de %s" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1433,11 +1433,11 @@ msgstr "" msgid "Columns" msgstr "Columnas" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "Cliente de Linea de Comandos para LXD" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1471,7 +1471,7 @@ msgstr "Perfil para aplicar al nuevo contenedor" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1861,7 +1861,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 #, fuzzy msgid "Delete network load balancers" msgstr "Perfil %s creado" @@ -1949,7 +1949,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1968,12 +1968,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -2143,7 +2143,7 @@ msgstr "No se puede proveer el nombre del container a la lista" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -2236,7 +2236,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 #, fuzzy msgid "Edit network load balancer configurations as YAML" msgstr "Perfil %s creado" @@ -2339,7 +2339,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2353,7 +2353,7 @@ msgid "Error unsetting properties: %v" msgstr "Error actualizando el archivo de plantilla: %s" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2663,7 +2663,7 @@ msgstr "Creando el contenedor" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2791,7 +2791,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "Perfil %s creado" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 #, fuzzy msgid "Get the key as a network load balancer property" msgstr "Nombre del contenedor es: %s" @@ -2866,7 +2866,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "Perfil %s creado" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 #, fuzzy msgid "Get values for network load balancer configuration keys" msgstr "Perfil %s creado" @@ -3038,7 +3038,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -3272,7 +3272,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3902,12 +3902,12 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 #, fuzzy msgid "Manage network load balancer backends" msgstr "Nombre del contenedor es: %s" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 #, fuzzy msgid "Manage network load balancer ports" msgstr "Nombre del contenedor es: %s" @@ -4135,10 +4135,10 @@ msgstr "Nombre del contenedor es: %s" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 #, fuzzy msgid "Missing listen address" msgstr "Nombre del contenedor es: %s" @@ -4165,11 +4165,11 @@ msgstr "Nombre del contenedor es: %s" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4328,7 +4328,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4472,12 +4472,12 @@ msgstr "Perfil %s creado" msgid "Network forward %s deleted" msgstr "Perfil %s eliminado" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, fuzzy, c-format msgid "Network load balancer %s created" msgstr "Perfil %s creado" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, fuzzy, c-format msgid "Network load balancer %s deleted" msgstr "Perfil %s eliminado" @@ -4555,11 +4555,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4630,7 +4630,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4696,7 +4696,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, fuzzy, c-format msgid "Password for %s: " msgstr "Contraseña admin para %s:" @@ -4744,7 +4744,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4756,7 +4756,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4764,7 +4764,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -5123,7 +5123,7 @@ msgstr "Perfil %s creado" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -5131,12 +5131,12 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 #, fuzzy msgid "Remove backend from a load balancer" msgstr "Nombre del Miembro del Cluster" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 #, fuzzy msgid "Remove backends from a load balancer" msgstr "Nombre del Miembro del Cluster" @@ -5165,7 +5165,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 #, fuzzy msgid "Remove ports from a load balancer" msgstr "Nombre del Miembro del Cluster" @@ -5535,12 +5535,12 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 #, fuzzy msgid "Set network load balancer keys" msgstr "Perfil %s creado" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5677,7 +5677,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "Perfil %s creado" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 #, fuzzy msgid "Set the key as a network load balancer property" msgstr "Perfil %s creado" @@ -5730,11 +5730,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5806,7 +5806,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -6227,7 +6227,7 @@ msgstr "Nombre del Miembro del Cluster" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "Nombre del Miembro del Cluster" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, fuzzy, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "Nombre del Miembro del Cluster" @@ -6328,7 +6328,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "El directorio importado no está disponible en esta plataforma" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6364,7 +6364,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6581,12 +6581,12 @@ msgstr "Perfil %s creado" msgid "Unset network forward keys" msgstr "Perfil %s creado" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 #, fuzzy msgid "Unset network load balancer configuration keys" msgstr "Perfil %s creado" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 #, fuzzy msgid "Unset network load balancer keys" msgstr "Perfil %s creado" @@ -6645,7 +6645,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "Perfil %s creado" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 #, fuzzy msgid "Unset the key as a network load balancer property" msgstr "Perfil %s creado" @@ -6742,7 +6742,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -7269,17 +7269,17 @@ msgstr "No se puede proveer el nombre del container a la lista" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 #, fuzzy msgid "" "[:] " @@ -7287,17 +7287,17 @@ msgid "" msgstr "No se puede proveer el nombre del container a la lista" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 #, fuzzy msgid "[:] =..." msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 #, fuzzy msgid "" "[:] " @@ -7310,7 +7310,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 #, fuzzy msgid "[:] [] []" msgstr "No se puede proveer el nombre del container a la lista" @@ -7900,6 +7900,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/fa.po b/po/fa.po index 70738b9cb8ad..47b5606b7195 100644 --- a/po/fa.po +++ b/po/fa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Persian ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/fi.po b/po/fi.po index 99092189449e..5a125e0fba30 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Finnish ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/fr.po b/po/fr.po index 0dc2be4bbad0..d768e1c84576 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Wivik \n" "Language-Team: French ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1434,10 +1434,10 @@ msgstr "Périphérique %s retiré de %s" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1473,11 +1473,11 @@ msgstr "" msgid "Columns" msgstr "Colonnes" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 #, fuzzy msgid "" "Command line client for LXD\n" @@ -1520,7 +1520,7 @@ msgstr "Clé/valeur de configuration à appliquer au nouveau conteneur" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1949,7 +1949,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 #, fuzzy msgid "Delete network load balancers" msgstr "Récupération de l'image : %s" @@ -2041,7 +2041,7 @@ msgstr "Récupération de l'image : %s" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -2060,12 +2060,12 @@ msgstr "Récupération de l'image : %s" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -2241,7 +2241,7 @@ msgstr "Forcer le conteneur à s'arrêter" msgid "Don't require user confirmation for using --force" msgstr "Requérir une confirmation de l'utilisateur" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -2343,7 +2343,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "Clé de configuration invalide" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 #, fuzzy msgid "Edit network load balancer configurations as YAML" msgstr "Clé de configuration invalide" @@ -2449,7 +2449,7 @@ msgstr "Récupération de l'image : %s" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2463,7 +2463,7 @@ msgid "Error unsetting properties: %v" msgstr "Récupération de l'image : %s" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2798,7 +2798,7 @@ msgstr "Forcer le conteneur à s'arrêter" msgid "Force the removal of running instances" msgstr "Forcer la suppression des conteneurs arrêtés" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "Forcer l'utilisation de la socket unix locale" @@ -2926,7 +2926,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "Copie de l'image : %s" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 #, fuzzy msgid "Get the key as a network load balancer property" msgstr "Copie de l'image : %s" @@ -3007,7 +3007,7 @@ msgstr "Clé de configuration invalide" msgid "Get values for network forward configuration keys" msgstr "Clé de configuration invalide" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 #, fuzzy msgid "Get values for network load balancer configuration keys" msgstr "Clé de configuration invalide" @@ -3183,7 +3183,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 #, fuzzy msgid "" "If this is your first time running LXD on this machine, you should also run: " @@ -3427,7 +3427,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 #, fuzzy msgid "Invalid number of arguments" msgstr "nombre d'arguments incorrect pour la sous-comande" @@ -4138,12 +4138,12 @@ msgstr "Copie de l'image : %s" msgid "Manage network forwards" msgstr "Nom du réseau" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 #, fuzzy msgid "Manage network load balancer backends" msgstr "Nom du réseau" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 #, fuzzy msgid "Manage network load balancer ports" msgstr "Copie de l'image : %s" @@ -4379,10 +4379,10 @@ msgstr "Résumé manquant." #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 #, fuzzy msgid "Missing listen address" msgstr "Vous devez fournir le nom d'un conteneur pour : " @@ -4410,11 +4410,11 @@ msgstr "Nom du réseau" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4582,7 +4582,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "Copie de l'image : %s" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4728,12 +4728,12 @@ msgstr "Le réseau %s a été créé" msgid "Network forward %s deleted" msgstr "Le réseau %s a été supprimé" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, fuzzy, c-format msgid "Network load balancer %s created" msgstr "Le réseau %s a été créé" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, fuzzy, c-format msgid "Network load balancer %s deleted" msgstr "Le réseau %s a été supprimé" @@ -4816,11 +4816,11 @@ msgstr "Aucun périphérique existant pour ce réseau" msgid "No device found for this storage volume" msgstr "Aucun périphérique existant pour ce réseau" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4902,7 +4902,7 @@ msgstr "Le réseau %s a été supprimé" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 #, fuzzy msgid "Override the source project" msgstr "impossible de supprimer le serveur distant par défaut" @@ -4970,7 +4970,7 @@ msgstr "Paquets émis" msgid "Partitions:" msgstr "Options :" -#: lxc/main.go:361 +#: lxc/main.go:363 #, fuzzy, c-format msgid "Password for %s: " msgstr "Mot de passe administrateur pour %s : " @@ -5020,7 +5020,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -5033,7 +5033,7 @@ msgstr "Appuyer sur Entrée pour ouvrir à nouveau l'éditeur" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -5041,7 +5041,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -5410,7 +5410,7 @@ msgstr "Clé de configuration invalide" msgid "Remove aliases" msgstr "Mot de passe de l'administrateur distant" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -5418,12 +5418,12 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 #, fuzzy msgid "Remove backend from a load balancer" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 #, fuzzy msgid "Remove backends from a load balancer" msgstr "Vous devez fournir le nom d'un conteneur pour : " @@ -5457,7 +5457,7 @@ msgstr "Création du conteneur" msgid "Remove ports from a forward" msgstr "Création du conteneur" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 #, fuzzy msgid "Remove ports from a load balancer" msgstr "Création du conteneur" @@ -5863,12 +5863,12 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 #, fuzzy msgid "Set network load balancer keys" msgstr "Nom du réseau" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -6009,7 +6009,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "Nom du réseau" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 #, fuzzy msgid "Set the key as a network load balancer property" msgstr "Nom du réseau" @@ -6064,11 +6064,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -6145,7 +6145,7 @@ msgstr "Afficher la configuration étendue" msgid "Show instance or server information" msgstr "Afficher des informations supplémentaires" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 #, fuzzy msgid "Show less common commands" msgstr "Afficher les commandes moins communes" @@ -6597,7 +6597,7 @@ msgstr "Vous devez fournir le nom d'un conteneur pour : " msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, fuzzy, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "Vous devez fournir le nom d'un conteneur pour : " @@ -6698,7 +6698,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "L'importation de répertoire n'est pas disponible sur cette plateforme" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6736,7 +6736,7 @@ msgstr "Pour créer un réseau, utiliser : lxc network create" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 #, fuzzy msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" @@ -6961,12 +6961,12 @@ msgstr "Clé de configuration invalide" msgid "Unset network forward keys" msgstr "Nom du réseau" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 #, fuzzy msgid "Unset network load balancer configuration keys" msgstr "Clé de configuration invalide" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 #, fuzzy msgid "Unset network load balancer keys" msgstr "Nom du réseau" @@ -7029,7 +7029,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "Nom du réseau" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 #, fuzzy msgid "Unset the key as a network load balancer property" msgstr "Nom du réseau" @@ -7129,7 +7129,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -8000,7 +8000,7 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 #, fuzzy msgid "[:] " msgstr "" @@ -8008,7 +8008,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 #, fuzzy msgid "[:] " msgstr "" @@ -8016,7 +8016,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 #, fuzzy msgid "" "[:] " @@ -8027,7 +8027,7 @@ msgstr "" "lxc %s [:] [[:]...]%s" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 #, fuzzy msgid "[:] " msgstr "" @@ -8035,7 +8035,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 #, fuzzy msgid "[:] =..." msgstr "" @@ -8043,7 +8043,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 #, fuzzy msgid "" "[:] " @@ -8059,7 +8059,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 #, fuzzy msgid "[:] [] []" msgstr "" @@ -8912,6 +8912,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/he.po b/po/he.po index 5fa8dd1a34b2..bf7bec99857f 100644 --- a/po/he.po +++ b/po/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hebrew ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1139,10 +1139,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1178,11 +1178,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1214,7 +1214,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1592,7 +1592,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1676,7 +1676,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1695,12 +1695,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1867,7 +1867,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1958,7 +1958,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2056,7 +2056,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2070,7 +2070,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2375,7 +2375,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2501,7 +2501,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2569,7 +2569,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2733,7 +2733,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2962,7 +2962,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3573,11 +3573,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3784,10 +3784,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3812,11 +3812,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3967,7 +3967,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4111,12 +4111,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4194,11 +4194,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4269,7 +4269,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4335,7 +4335,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4382,7 +4382,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4394,7 +4394,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4402,7 +4402,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4752,7 +4752,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4760,11 +4760,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4792,7 +4792,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5150,11 +5150,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5286,7 +5286,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5334,11 +5334,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5407,7 +5407,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5816,7 +5816,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5915,7 +5915,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5951,7 +5951,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6162,11 +6162,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6218,7 +6218,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6308,7 +6308,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6761,30 +6761,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6796,7 +6796,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7322,6 +7322,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/hi.po b/po/hi.po index 67b0f816629a..7aea2a2872cb 100644 --- a/po/hi.po +++ b/po/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hindi ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/id.po b/po/id.po index d03da99fd2d0..8b46cfe8fd79 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/it.po b/po/it.po index 9bcfa77bdc23..dd2bdaeef203 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Luigi Operoso \n" "Language-Team: Italian ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1392,10 +1392,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1431,11 +1431,11 @@ msgstr "" msgid "Columns" msgstr "Colonne" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1467,7 +1467,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1857,7 +1857,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 #, fuzzy msgid "Delete network load balancers" msgstr "Il nome del container è: %s" @@ -1944,7 +1944,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1963,12 +1963,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -2140,7 +2140,7 @@ msgstr "Creazione del container in corso" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -2234,7 +2234,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 #, fuzzy msgid "Edit network load balancer configurations as YAML" msgstr "Il nome del container è: %s" @@ -2336,7 +2336,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2350,7 +2350,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2660,7 +2660,7 @@ msgstr "Creazione del container in corso" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2787,7 +2787,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 #, fuzzy msgid "Get the key as a network load balancer property" msgstr "Creazione del container in corso" @@ -2860,7 +2860,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 #, fuzzy msgid "Get values for network load balancer configuration keys" msgstr "Il nome del container è: %s" @@ -3030,7 +3030,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -3264,7 +3264,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 #, fuzzy msgid "Invalid number of arguments" msgstr "numero errato di argomenti del sottocomando" @@ -3901,12 +3901,12 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 #, fuzzy msgid "Manage network load balancer backends" msgstr "Creazione del container in corso" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 #, fuzzy msgid "Manage network load balancer ports" msgstr "Creazione del container in corso" @@ -4134,10 +4134,10 @@ msgstr "Il nome del container è: %s" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 #, fuzzy msgid "Missing listen address" msgstr "Il nome del container è: %s" @@ -4164,11 +4164,11 @@ msgstr "Il nome del container è: %s" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4326,7 +4326,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4470,12 +4470,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4553,11 +4553,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4629,7 +4629,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4695,7 +4695,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, fuzzy, c-format msgid "Password for %s: " msgstr "Password amministratore per %s: " @@ -4744,7 +4744,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4756,7 +4756,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4764,7 +4764,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -5122,7 +5122,7 @@ msgstr "Il nome del container è: %s" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -5130,12 +5130,12 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 #, fuzzy msgid "Remove backend from a load balancer" msgstr "Il nome del container è: %s" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 #, fuzzy msgid "Remove backends from a load balancer" msgstr "Il nome del container è: %s" @@ -5165,7 +5165,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 #, fuzzy msgid "Remove ports from a load balancer" msgstr "Il nome del container è: %s" @@ -5534,12 +5534,12 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 #, fuzzy msgid "Set network load balancer keys" msgstr "Il nome del container è: %s" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5674,7 +5674,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 #, fuzzy msgid "Set the key as a network load balancer property" msgstr "Il nome del container è: %s" @@ -5726,11 +5726,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5802,7 +5802,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -6225,7 +6225,7 @@ msgstr "Il nome del container è: %s" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "Il nome del container è: %s" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, fuzzy, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "Il nome del container è: %s" @@ -6326,7 +6326,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "Import da directory non disponibile su questa piattaforma" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6362,7 +6362,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6578,12 +6578,12 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 #, fuzzy msgid "Unset network load balancer configuration keys" msgstr "Il nome del container è: %s" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 #, fuzzy msgid "Unset network load balancer keys" msgstr "Il nome del container è: %s" @@ -6640,7 +6640,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 #, fuzzy msgid "Unset the key as a network load balancer property" msgstr "Il nome del container è: %s" @@ -6736,7 +6736,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -7266,17 +7266,17 @@ msgstr "Creazione del container in corso" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 #, fuzzy msgid "" "[:] " @@ -7284,17 +7284,17 @@ msgid "" msgstr "Creazione del container in corso" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 #, fuzzy msgid "[:] =..." msgstr "Creazione del container in corso" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 #, fuzzy msgid "" "[:] " @@ -7307,7 +7307,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 #, fuzzy msgid "[:] [] []" msgstr "Creazione del container in corso" @@ -7897,6 +7897,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ja.po b/po/ja.po index fee94bc14b41..eb05216b226f 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2023-03-10 15:14+0000\n" "Last-Translator: KATOH Yasufumi \n" "Language-Team: Japanese ,=: %s" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1408,10 +1408,10 @@ msgstr "クラスターメンバー %s がグループ %s から削除されま #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1447,11 +1447,11 @@ msgstr "クラスタリングが有効になりました" msgid "Columns" msgstr "カラムレイアウト" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "LXD のコマンドラインクライアント" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1487,7 +1487,7 @@ msgstr "移動先のインスタンスに適用するキー/値の設定" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1888,7 +1888,7 @@ msgstr "ネットワーク ACL を削除します" msgid "Delete network forwards" msgstr "ネットワークフォワードを削除します" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "ネットワークロードバランサーを削除します" @@ -1972,7 +1972,7 @@ msgstr "警告を削除します" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1991,12 +1991,12 @@ msgstr "警告を削除します" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -2169,7 +2169,7 @@ msgstr "すべてのプロジェクトのインスタンスを表示します" msgid "Don't require user confirmation for using --force" msgstr "--force を使う際にユーザーの確認を必要としない" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "進捗情報を表示しません" @@ -2266,7 +2266,7 @@ msgstr "ネットワーク設定をYAMLで編集します" msgid "Edit network forward configurations as YAML" msgstr "ネットワークフォワード設定をYAMLで編集します" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "ネットワークロードバランサー設定をYAMLで編集します" @@ -2375,7 +2375,7 @@ msgstr "イメージの取得中: %s" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2389,7 +2389,7 @@ msgid "Error unsetting properties: %v" msgstr "イメージのプロパティを削除します" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2710,7 +2710,7 @@ msgstr "インスタンスを強制停止します" msgid "Force the removal of running instances" msgstr "稼働中のインスタンスを強制的に削除します" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "強制的にローカルのUNIXソケットを使います" @@ -2854,7 +2854,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "ネットワークフォワードのポートを管理します" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 #, fuzzy msgid "Get the key as a network load balancer property" msgstr "ネットワークロードバランサーのポートを管理します" @@ -2929,7 +2929,7 @@ msgstr "ネットワークの設定値を取得します" msgid "Get values for network forward configuration keys" msgstr "ネットワークフォワードの設定値を取得します" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "ネットワークロードバランサーの設定値を取得します" @@ -3099,7 +3099,7 @@ msgstr "" "存在するスナップショット名の場合は既存のスナップショットを削除したあとに新し" "いスナップショットを作成します" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -3344,7 +3344,7 @@ msgstr "" "新しいスナップショット名が不正です。親のボリュームはソースと同じでなければな" "りません" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "引数の数が不正です" @@ -4118,11 +4118,11 @@ msgstr "ネットワークフォワードのポートを管理します" msgid "Manage network forwards" msgstr "ネットワークフォワードを管理します" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "ネットワークロードバランサーのバックエンドを管理します" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "ネットワークロードバランサーのポートを管理します" @@ -4339,10 +4339,10 @@ msgstr "鍵の名前を指定する必要があります" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "リッスンアドレスを指定する必要があります" @@ -4367,11 +4367,11 @@ msgstr "ネットワーク ACL 名を指定する必要があります" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4538,7 +4538,7 @@ msgstr "コピー/移動元とは異なるプロジェクトに移動します msgid "Moving the storage volume: %s" msgstr "ストレージボリュームの移動中: %s" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" "複数のポートにマッチしました。すべて削除するには --force を指定してください" @@ -4684,12 +4684,12 @@ msgstr "ネットワークフォワード %s を作成しました" msgid "Network forward %s deleted" msgstr "ネットワークフォワード %s を削除しました" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "ネットワークロードバランサー %s を作成しました" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "ネットワークロードバランサー %s を削除しました" @@ -4770,11 +4770,11 @@ msgstr "このネットワークに対するデバイスがありません" msgid "No device found for this storage volume" msgstr "このストレージボリュームに対するデバイスがありません" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "マッチするバックエンドが見つかりません" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "マッチするポートが見つかりません" @@ -4845,7 +4845,7 @@ msgstr "バックグラウンド操作 %s を削除しました" msgid "Optimized Storage" msgstr "最適化されたストレージ" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "プロジェクトを指定します" @@ -4911,7 +4911,7 @@ msgstr "送信パケット" msgid "Partitions:" msgstr "パーティション:" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "%s のパスワード: " @@ -4958,7 +4958,7 @@ msgstr "終了するには ctrl+c を押してください" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4972,7 +4972,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "Pretty レンダリング(--format=pretty の短縮系)" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "ヘルプを表示します" @@ -4980,7 +4980,7 @@ msgstr "ヘルプを表示します" msgid "Print the raw response" msgstr "レスポンスをそのまま表示します" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "バージョン番号を表示します" @@ -5337,7 +5337,7 @@ msgstr "ネットワークゾーンレコードエントリを削除します" msgid "Remove aliases" msgstr "エイリアスを削除します" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "マッチするポートをすべて削除します" @@ -5345,11 +5345,11 @@ msgstr "マッチするポートをすべて削除します" msgid "Remove all rules that match" msgstr "マッチするルールをすべて削除します" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "ロードバランサーからバックエンドを削除します" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "ロードバランサーからバックエンドを削除します" @@ -5379,7 +5379,7 @@ msgstr "グループからメンバーを削除します" msgid "Remove ports from a forward" msgstr "フォワードからポートを削除します" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "ロードバランサーからポートを削除します" @@ -5774,11 +5774,11 @@ msgstr "" "後方互換性のため、単一の設定を行う場合は次の形式でも設定できます:\n" " lxc network set [:] " -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "ネットワークロードバランサーの設定を行います" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5945,7 +5945,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "ネットワークフォワードの設定値を設定します" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 #, fuzzy msgid "Set the key as a network load balancer property" msgstr "ネットワークロードバランサーの設定を行います" @@ -6001,11 +6001,11 @@ msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" "マウントの代わりに address:port で SSH SFTP リスナーをセットアップします" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "デバッグメッセージをすべて表示します" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "詳細な情報を出力します" @@ -6076,7 +6076,7 @@ msgstr "インスタンスもしくはサーバの設定を表示します" msgid "Show instance or server information" msgstr "インスタンスもしくはサーバの情報を表示します" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "全てのコマンドを表示します (主なコマンドだけではなく)" @@ -6491,7 +6491,7 @@ msgstr "設定 %q はクラスタメンバー %q には存在しません" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "設定 %q はクラスタメンバー %q には存在しません" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, fuzzy, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "設定 %q はクラスタメンバー %q には存在しません" @@ -6593,7 +6593,7 @@ msgstr "LXD サーバはすでにクラスターに属しています" msgid "This LXD server is not available on the network" msgstr "この LXD サーバはネットワークから利用できません" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6641,7 +6641,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "コンソールから切り離すには +a q を押します" -#: lxc/main.go:403 +#: lxc/main.go:406 #, fuzzy msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" @@ -6861,11 +6861,11 @@ msgstr "ネットワークフォワードの設定を削除します" msgid "Unset network forward keys" msgstr "ネットワークフォワードの設定を削除します" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "ネットワークロードバランサーの設定を削除します" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "ネットワークロードバランサーの設定を削除します" @@ -6918,7 +6918,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "ネットワークフォワードの設定を削除します" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 #, fuzzy msgid "Unset the key as a network load balancer property" msgstr "ネットワークロードバランサーの設定を削除します" @@ -7020,7 +7020,7 @@ msgstr "" "最適化された形でストレージドライバを使います (同様のプール上にのみリストアで" "きます)" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "サブコマンドを見るには help もしくは --help を使ってください" @@ -7492,15 +7492,15 @@ msgstr "[:] =..." #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "[:] " -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "[:] " -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" @@ -7509,15 +7509,15 @@ msgstr "" "[]" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "[:] " -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "[:] =..." -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -7533,7 +7533,7 @@ msgstr "" "[:] " " []" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "[:] [] []" @@ -8184,6 +8184,20 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +#, fuzzy +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" +"lxc init ubuntu:22.04 u1\n" +"\n" +"lxc init ubuntu:22.04 u1 < config.yaml\n" +" config.yaml の設定を使ってインスタンスを作成します" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ka.po b/po/ka.po index 3407554ae96a..dd474bd4b667 100644 --- a/po/ka.po +++ b/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -278,7 +278,7 @@ msgid "" "### Note that the listen_address and location cannot be changed." msgstr "" -#: lxc/network_load_balancer.go:588 +#: lxc/network_load_balancer.go:593 msgid "" "### This is a YAML representation of the network load balancer.\n" "### Any line starting with a '# will be ignored.\n" @@ -607,11 +607,11 @@ msgstr "" msgid "Add a network zone record entry" msgstr "" -#: lxc/network_load_balancer.go:798 +#: lxc/network_load_balancer.go:803 msgid "Add backend to a load balancer" msgstr "" -#: lxc/network_load_balancer.go:797 +#: lxc/network_load_balancer.go:802 msgid "Add backends to a load balancer" msgstr "" @@ -676,7 +676,7 @@ msgstr "" msgid "Add ports to a forward" msgstr "" -#: lxc/network_load_balancer.go:962 lxc/network_load_balancer.go:963 +#: lxc/network_load_balancer.go:967 lxc/network_load_balancer.go:968 msgid "Add ports to a load balancer" msgstr "" @@ -829,7 +829,7 @@ msgstr "" msgid "Auto update: %s" msgstr "" -#: lxc/network_forward.go:240 lxc/network_load_balancer.go:242 +#: lxc/network_forward.go:240 lxc/network_load_balancer.go:247 msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" @@ -865,7 +865,7 @@ msgid "Bad device override syntax, expecting ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1135,10 +1135,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1174,11 +1174,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1210,7 +1210,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1588,7 +1588,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1672,7 +1672,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1691,12 +1691,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1863,7 +1863,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1954,7 +1954,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2052,7 +2052,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2066,7 +2066,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2371,7 +2371,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2497,7 +2497,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2565,7 +2565,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2729,7 +2729,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2958,7 +2958,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3569,11 +3569,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3780,10 +3780,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3808,11 +3808,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3963,7 +3963,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4107,12 +4107,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4190,11 +4190,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4265,7 +4265,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4331,7 +4331,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4378,7 +4378,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4390,7 +4390,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4398,7 +4398,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4748,7 +4748,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4756,11 +4756,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4788,7 +4788,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5146,11 +5146,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5282,7 +5282,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5330,11 +5330,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5403,7 +5403,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5812,7 +5812,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5911,7 +5911,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5947,7 +5947,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6158,11 +6158,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6214,7 +6214,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6304,7 +6304,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6757,30 +6757,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6792,7 +6792,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7318,6 +7318,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ko.po b/po/ko.po index 6e35667a3648..7a7fb323ef5a 100644 --- a/po/ko.po +++ b/po/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/lxd.pot b/po/lxd.pot index 0ecdaf192464..ff651a2b9f4c 100644 --- a/po/lxd.pot +++ b/po/lxd.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" - "POT-Creation-Date: 2024-08-27 13:17+0100\n" + "POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -259,7 +259,7 @@ msgid "### This is a YAML representation of the network forward.\n" "### Note that the listen_address and location cannot be changed." msgstr "" -#: lxc/network_load_balancer.go:588 +#: lxc/network_load_balancer.go:593 msgid "### This is a YAML representation of the network load balancer.\n" "### Any line starting with a '# will be ignored.\n" "###\n" @@ -576,11 +576,11 @@ msgstr "" msgid "Add a network zone record entry" msgstr "" -#: lxc/network_load_balancer.go:798 +#: lxc/network_load_balancer.go:803 msgid "Add backend to a load balancer" msgstr "" -#: lxc/network_load_balancer.go:797 +#: lxc/network_load_balancer.go:802 msgid "Add backends to a load balancer" msgstr "" @@ -638,7 +638,7 @@ msgstr "" msgid "Add ports to a forward" msgstr "" -#: lxc/network_load_balancer.go:962 lxc/network_load_balancer.go:963 +#: lxc/network_load_balancer.go:967 lxc/network_load_balancer.go:968 msgid "Add ports to a load balancer" msgstr "" @@ -790,7 +790,7 @@ msgstr "" msgid "Auto update: %s" msgstr "" -#: lxc/network_forward.go:240 lxc/network_load_balancer.go:242 +#: lxc/network_forward.go:240 lxc/network_load_balancer.go:247 msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" @@ -825,7 +825,7 @@ msgstr "" msgid "Bad device override syntax, expecting ,=: %s" msgstr "" -#: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 lxc/network_load_balancer.go:296 lxc/network_peer.go:280 lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 lxc/network_load_balancer.go:301 lxc/network_peer.go:280 lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1084,7 +1084,7 @@ msgstr "" msgid "Cluster member %s removed from group %s" msgstr "" -#: lxc/config.go:105 lxc/config.go:389 lxc/config.go:529 lxc/config.go:735 lxc/config.go:858 lxc/copy.go:61 lxc/info.go:44 lxc/init.go:64 lxc/move.go:66 lxc/network.go:300 lxc/network.go:723 lxc/network.go:792 lxc/network.go:1134 lxc/network.go:1219 lxc/network.go:1283 lxc/network_forward.go:174 lxc/network_forward.go:239 lxc/network_forward.go:456 lxc/network_forward.go:579 lxc/network_forward.go:721 lxc/network_forward.go:798 lxc/network_forward.go:864 lxc/network_load_balancer.go:176 lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 lxc/storage_volume.go:560 lxc/storage_volume.go:639 lxc/storage_volume.go:883 lxc/storage_volume.go:1097 lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 lxc/storage_volume.go:1758 lxc/storage_volume.go:1885 lxc/storage_volume.go:2031 lxc/storage_volume.go:2135 lxc/storage_volume.go:2175 lxc/storage_volume.go:2268 lxc/storage_volume.go:2340 lxc/storage_volume.go:2492 +#: lxc/config.go:105 lxc/config.go:389 lxc/config.go:529 lxc/config.go:735 lxc/config.go:858 lxc/copy.go:61 lxc/info.go:44 lxc/init.go:64 lxc/move.go:66 lxc/network.go:300 lxc/network.go:723 lxc/network.go:792 lxc/network.go:1134 lxc/network.go:1219 lxc/network.go:1283 lxc/network_forward.go:174 lxc/network_forward.go:239 lxc/network_forward.go:456 lxc/network_forward.go:579 lxc/network_forward.go:721 lxc/network_forward.go:798 lxc/network_forward.go:864 lxc/network_load_balancer.go:176 lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 lxc/storage_volume.go:560 lxc/storage_volume.go:639 lxc/storage_volume.go:883 lxc/storage_volume.go:1097 lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 lxc/storage_volume.go:1758 lxc/storage_volume.go:1885 lxc/storage_volume.go:2031 lxc/storage_volume.go:2135 lxc/storage_volume.go:2175 lxc/storage_volume.go:2268 lxc/storage_volume.go:2340 lxc/storage_volume.go:2492 msgid "Cluster member name" msgstr "" @@ -1104,11 +1104,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "Command line client for LXD\n" "\n" "All of LXD's features can be driven through the various commands below.\n" @@ -1135,7 +1135,7 @@ msgstr "" msgid "Config key/value to apply to the target instance" msgstr "" -#: lxc/cluster.go:770 lxc/cluster_group.go:339 lxc/config.go:272 lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 lxc/network_acl.go:620 lxc/network_forward.go:685 lxc/network_load_balancer.go:689 lxc/network_peer.go:610 lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 lxc/storage_volume.go:1048 +#: lxc/cluster.go:770 lxc/cluster_group.go:339 lxc/config.go:272 lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 lxc/network_acl.go:620 lxc/network_forward.go:685 lxc/network_load_balancer.go:694 lxc/network_peer.go:610 lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" msgstr "" @@ -1494,7 +1494,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1538,7 +1538,7 @@ msgstr "" msgid "Delete warning" msgstr "" -#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 +#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 msgid "Description" msgstr "" @@ -1657,7 +1657,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1746,7 +1746,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -1837,7 +1837,7 @@ msgstr "" msgid "Error retrieving aliases: %w" msgstr "" -#: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 lxc/network_acl.go:467 lxc/network_forward.go:519 lxc/network_load_balancer.go:522 lxc/network_peer.go:463 lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 +#: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 lxc/network_acl.go:467 lxc/network_forward.go:519 lxc/network_load_balancer.go:527 lxc/network_peer.go:463 lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" msgstr "" @@ -1847,7 +1847,7 @@ msgstr "" msgid "Error unsetting properties: %v" msgstr "" -#: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 lxc/network_forward.go:513 lxc/network_load_balancer.go:516 lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 lxc/storage_volume.go:1979 +#: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 lxc/network_forward.go:513 lxc/network_load_balancer.go:521 lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" msgstr "" @@ -2142,7 +2142,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2253,7 +2253,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2321,7 +2321,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2485,7 +2485,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "If this is your first time running LXD on this machine, you should also run: lxd init" msgstr "" @@ -2710,7 +2710,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3303,11 +3303,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3493,7 +3493,7 @@ msgstr "" msgid "Missing key name" msgstr "" -#: lxc/network_forward.go:199 lxc/network_forward.go:408 lxc/network_forward.go:481 lxc/network_forward.go:627 lxc/network_forward.go:746 lxc/network_forward.go:823 lxc/network_forward.go:889 lxc/network_load_balancer.go:201 lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_forward.go:199 lxc/network_forward.go:408 lxc/network_forward.go:481 lxc/network_forward.go:627 lxc/network_forward.go:746 lxc/network_forward.go:823 lxc/network_forward.go:889 lxc/network_load_balancer.go:201 lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3505,7 +3505,7 @@ msgstr "" msgid "Missing network ACL name" msgstr "" -#: lxc/network.go:159 lxc/network.go:244 lxc/network.go:396 lxc/network.go:446 lxc/network.go:531 lxc/network.go:636 lxc/network.go:747 lxc/network.go:815 lxc/network.go:1030 lxc/network.go:1100 lxc/network.go:1158 lxc/network.go:1242 lxc/network_forward.go:119 lxc/network_forward.go:195 lxc/network_forward.go:259 lxc/network_forward.go:404 lxc/network_forward.go:477 lxc/network_forward.go:623 lxc/network_forward.go:742 lxc/network_forward.go:819 lxc/network_forward.go:885 lxc/network_load_balancer.go:123 lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 lxc/network_peer.go:665 +#: lxc/network.go:159 lxc/network.go:244 lxc/network.go:396 lxc/network.go:446 lxc/network.go:531 lxc/network.go:636 lxc/network.go:747 lxc/network.go:815 lxc/network.go:1030 lxc/network.go:1100 lxc/network.go:1158 lxc/network.go:1242 lxc/network_forward.go:119 lxc/network_forward.go:195 lxc/network_forward.go:259 lxc/network_forward.go:404 lxc/network_forward.go:477 lxc/network_forward.go:623 lxc/network_forward.go:742 lxc/network_forward.go:819 lxc/network_forward.go:885 lxc/network_load_balancer.go:123 lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 lxc/network_peer.go:665 msgid "Missing network name" msgstr "" @@ -3626,7 +3626,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -3761,12 +3761,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -3843,11 +3843,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -3918,7 +3918,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -3984,7 +3984,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4026,7 +4026,7 @@ msgstr "" msgid "Press ctrl+c to finish" msgstr "" -#: lxc/auth.go:301 lxc/auth.go:1055 lxc/auth.go:1661 lxc/cluster.go:771 lxc/cluster_group.go:340 lxc/config.go:273 lxc/config.go:348 lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 lxc/network_acl.go:621 lxc/network_forward.go:686 lxc/network_load_balancer.go:690 lxc/network_peer.go:611 lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 lxc/storage_volume.go:1049 +#: lxc/auth.go:301 lxc/auth.go:1055 lxc/auth.go:1661 lxc/cluster.go:771 lxc/cluster_group.go:340 lxc/config.go:273 lxc/config.go:348 lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 lxc/network_acl.go:621 lxc/network_forward.go:686 lxc/network_load_balancer.go:695 lxc/network_peer.go:611 lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4034,7 +4034,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4042,7 +4042,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4375,7 +4375,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4383,11 +4383,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4415,7 +4415,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -4757,11 +4757,11 @@ msgid "Set network forward keys\n" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "Set network load balancer keys\n" "\n" "For backward compatibility, a single configuration key may still be set with:\n" @@ -4877,7 +4877,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -4925,11 +4925,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -4994,7 +4994,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5396,7 +5396,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5493,7 +5493,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a remote LXD server.\n" "\n" @@ -5525,7 +5525,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" msgstr "" @@ -5728,11 +5728,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -5784,7 +5784,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -5871,7 +5871,7 @@ msgstr "" msgid "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6297,27 +6297,27 @@ msgstr "" msgid "[:] =..." msgstr "" -#: lxc/network_forward.go:169 lxc/network_forward.go:574 lxc/network_forward.go:715 lxc/network_load_balancer.go:171 lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_forward.go:169 lxc/network_forward.go:574 lxc/network_forward.go:715 lxc/network_load_balancer.go:171 lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "[:] []" msgstr "" -#: lxc/network_forward.go:377 lxc/network_forward.go:544 lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_forward.go:377 lxc/network_forward.go:544 lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "[:] [,...]" msgstr "" @@ -6325,7 +6325,7 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -6796,6 +6796,13 @@ msgid "lxc network create foo\n" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "lxc network load-balancer create n1 127.0.0.1\n" + "\n" + "lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" + " Create network load-balancer for network n1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" " Show details on that operation UUID" diff --git a/po/mr.po b/po/mr.po index 2a5f45bc064a..ee00886a1b95 100644 --- a/po/mr.po +++ b/po/mr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Marathi ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/nb_NO.po b/po/nb_NO.po index 52a2e2295940..bf66c03e55a2 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Norwegian Bokmål ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/nl.po b/po/nl.po index 6eb0853497ee..b13fa4c51fc1 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1362,10 +1362,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1401,11 +1401,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1437,7 +1437,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1815,7 +1815,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1899,7 +1899,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1918,12 +1918,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -2090,7 +2090,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -2181,7 +2181,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2279,7 +2279,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2293,7 +2293,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2598,7 +2598,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2724,7 +2724,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2792,7 +2792,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2956,7 +2956,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -3185,7 +3185,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3796,11 +3796,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -4007,10 +4007,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -4035,11 +4035,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4190,7 +4190,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4334,12 +4334,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4417,11 +4417,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4492,7 +4492,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4558,7 +4558,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4605,7 +4605,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4617,7 +4617,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4625,7 +4625,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4975,7 +4975,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4983,11 +4983,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -5015,7 +5015,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5373,11 +5373,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5509,7 +5509,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5557,11 +5557,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5630,7 +5630,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -6039,7 +6039,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -6138,7 +6138,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6174,7 +6174,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6385,11 +6385,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6441,7 +6441,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6531,7 +6531,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6984,30 +6984,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -7019,7 +7019,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7545,6 +7545,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/pa.po b/po/pa.po index e122ac5c85ea..904cedcab82c 100644 --- a/po/pa.po +++ b/po/pa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Punjabi ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/pl.po b/po/pl.po index 3a8bb6309f90..909090076a57 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Polish ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1400,10 +1400,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1439,11 +1439,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1475,7 +1475,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1853,7 +1853,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1937,7 +1937,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1956,12 +1956,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -2128,7 +2128,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -2219,7 +2219,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2317,7 +2317,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2331,7 +2331,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2636,7 +2636,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2762,7 +2762,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2830,7 +2830,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2994,7 +2994,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -3223,7 +3223,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3834,11 +3834,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -4045,10 +4045,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -4073,11 +4073,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4228,7 +4228,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4372,12 +4372,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4455,11 +4455,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4530,7 +4530,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4596,7 +4596,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4643,7 +4643,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4655,7 +4655,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4663,7 +4663,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -5013,7 +5013,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -5021,11 +5021,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -5053,7 +5053,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5411,11 +5411,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5547,7 +5547,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5595,11 +5595,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5668,7 +5668,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -6077,7 +6077,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -6176,7 +6176,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6212,7 +6212,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6423,11 +6423,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6479,7 +6479,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6569,7 +6569,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -7022,30 +7022,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -7057,7 +7057,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7583,6 +7583,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/pt.po b/po/pt.po index c205c8c5f3a7..e87d6286a8a0 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -278,7 +278,7 @@ msgid "" "### Note that the listen_address and location cannot be changed." msgstr "" -#: lxc/network_load_balancer.go:588 +#: lxc/network_load_balancer.go:593 msgid "" "### This is a YAML representation of the network load balancer.\n" "### Any line starting with a '# will be ignored.\n" @@ -607,11 +607,11 @@ msgstr "" msgid "Add a network zone record entry" msgstr "" -#: lxc/network_load_balancer.go:798 +#: lxc/network_load_balancer.go:803 msgid "Add backend to a load balancer" msgstr "" -#: lxc/network_load_balancer.go:797 +#: lxc/network_load_balancer.go:802 msgid "Add backends to a load balancer" msgstr "" @@ -676,7 +676,7 @@ msgstr "" msgid "Add ports to a forward" msgstr "" -#: lxc/network_load_balancer.go:962 lxc/network_load_balancer.go:963 +#: lxc/network_load_balancer.go:967 lxc/network_load_balancer.go:968 msgid "Add ports to a load balancer" msgstr "" @@ -829,7 +829,7 @@ msgstr "" msgid "Auto update: %s" msgstr "" -#: lxc/network_forward.go:240 lxc/network_load_balancer.go:242 +#: lxc/network_forward.go:240 lxc/network_load_balancer.go:247 msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" @@ -865,7 +865,7 @@ msgid "Bad device override syntax, expecting ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1135,10 +1135,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1174,11 +1174,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1210,7 +1210,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1588,7 +1588,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1672,7 +1672,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1691,12 +1691,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1863,7 +1863,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1954,7 +1954,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2052,7 +2052,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2066,7 +2066,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2371,7 +2371,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2497,7 +2497,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2565,7 +2565,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2729,7 +2729,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2958,7 +2958,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3569,11 +3569,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3780,10 +3780,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3808,11 +3808,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3963,7 +3963,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4107,12 +4107,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4190,11 +4190,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4265,7 +4265,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4331,7 +4331,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4378,7 +4378,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4390,7 +4390,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4398,7 +4398,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4748,7 +4748,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4756,11 +4756,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4788,7 +4788,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5146,11 +5146,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5282,7 +5282,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5330,11 +5330,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5403,7 +5403,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5812,7 +5812,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5911,7 +5911,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5947,7 +5947,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6158,11 +6158,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6214,7 +6214,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6304,7 +6304,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6757,30 +6757,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6792,7 +6792,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7318,6 +7318,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/pt_BR.po b/po/pt_BR.po index f5c83ca9a64a..fef5f1f42d6a 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Renato dos Santos \n" "Language-Team: Portuguese (Brazil) ,=: %s" msgstr "Erro de sintaxe, esperado ,=: %s" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1418,10 +1418,10 @@ msgstr "Dispositivo %s removido de %s" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1457,11 +1457,11 @@ msgstr "Clustering ativado" msgid "Columns" msgstr "Colunas" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "Cliente de linha de comando para LXD" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1502,7 +1502,7 @@ msgstr "Configuração chave/valor para aplicar ao novo contêiner" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1907,7 +1907,7 @@ msgstr "Criar novas redes" msgid "Delete network forwards" msgstr "Criar novas redes" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 #, fuzzy msgid "Delete network load balancers" msgstr "Criar novas redes" @@ -1996,7 +1996,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -2015,12 +2015,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -2193,7 +2193,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -2296,7 +2296,7 @@ msgstr "Editar configurações de rede como YAML" msgid "Edit network forward configurations as YAML" msgstr "Editar configurações de rede como YAML" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 #, fuzzy msgid "Edit network load balancer configurations as YAML" msgstr "Editar configurações de rede como YAML" @@ -2401,7 +2401,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2415,7 +2415,7 @@ msgid "Error unsetting properties: %v" msgstr "Editar propriedades da imagem" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2722,7 +2722,7 @@ msgstr "Ignorar o estado do container" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2851,7 +2851,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "Criar novas redes" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 #, fuzzy msgid "Get the key as a network load balancer property" msgstr "Criar novas redes" @@ -2930,7 +2930,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "Editar configurações de perfil como YAML" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 #, fuzzy msgid "Get values for network load balancer configuration keys" msgstr "Editar configurações de perfil como YAML" @@ -3100,7 +3100,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -3332,7 +3332,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3967,12 +3967,12 @@ msgstr "Criar novas redes" msgid "Manage network forwards" msgstr "Criar novas redes" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 #, fuzzy msgid "Manage network load balancer backends" msgstr "Criar novas redes" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 #, fuzzy msgid "Manage network load balancer ports" msgstr "Criar novas redes" @@ -4201,10 +4201,10 @@ msgstr "Nome de membro do cluster" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 #, fuzzy msgid "Missing listen address" msgstr "Nome de membro do cluster" @@ -4231,11 +4231,11 @@ msgstr "Nome de membro do cluster" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4392,7 +4392,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4536,12 +4536,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4619,11 +4619,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4694,7 +4694,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4760,7 +4760,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4808,7 +4808,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4820,7 +4820,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4828,7 +4828,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -5191,7 +5191,7 @@ msgstr "Editar configurações de perfil como YAML" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -5199,12 +5199,12 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 #, fuzzy msgid "Remove backend from a load balancer" msgstr "Nome de membro do cluster" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 #, fuzzy msgid "Remove backends from a load balancer" msgstr "Nome de membro do cluster" @@ -5237,7 +5237,7 @@ msgstr "Adicionar perfis aos containers" msgid "Remove ports from a forward" msgstr "Adicionar perfis aos containers" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 #, fuzzy msgid "Remove ports from a load balancer" msgstr "Adicionar perfis aos containers" @@ -5618,12 +5618,12 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 #, fuzzy msgid "Set network load balancer keys" msgstr "Criar novas redes" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5761,7 +5761,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "Criar novas redes" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 #, fuzzy msgid "Set the key as a network load balancer property" msgstr "Criar novas redes" @@ -5815,11 +5815,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5896,7 +5896,7 @@ msgstr "Editar configurações do container ou do servidor como YAML" msgid "Show instance or server information" msgstr "Editar configurações do container ou do servidor como YAML" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -6323,7 +6323,7 @@ msgstr "Nome de membro do cluster" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "Nome de membro do cluster" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, fuzzy, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "Nome de membro do cluster" @@ -6424,7 +6424,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "A importação de diretório não está disponível nessa plataforma" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6460,7 +6460,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6682,12 +6682,12 @@ msgstr "Editar configurações de perfil como YAML" msgid "Unset network forward keys" msgstr "Criar novas redes" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 #, fuzzy msgid "Unset network load balancer configuration keys" msgstr "Editar configurações de perfil como YAML" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 #, fuzzy msgid "Unset network load balancer keys" msgstr "Criar novas redes" @@ -6747,7 +6747,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "Criar novas redes" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 #, fuzzy msgid "Unset the key as a network load balancer property" msgstr "Criar novas redes" @@ -6845,7 +6845,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -7332,17 +7332,17 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 #, fuzzy msgid "[:] " msgstr "Criar perfis" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 #, fuzzy msgid "[:] " msgstr "Criar perfis" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 #, fuzzy msgid "" "[:] " @@ -7350,17 +7350,17 @@ msgid "" msgstr "Criar perfis" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 #, fuzzy msgid "[:] " msgstr "Criar perfis" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 #, fuzzy msgid "[:] =..." msgstr "Criar perfis" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 #, fuzzy msgid "" "[:] " @@ -7373,7 +7373,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7932,6 +7932,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ru.po b/po/ru.po index ca8417e34f83..4640a6a03902 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Александр Киль \n" "Language-Team: Russian ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1418,10 +1418,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1457,11 +1457,11 @@ msgstr "" msgid "Columns" msgstr "Столбцы" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1493,7 +1493,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1896,7 +1896,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 #, fuzzy msgid "Delete network load balancers" msgstr "Копирование образа: %s" @@ -1985,7 +1985,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -2004,12 +2004,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -2182,7 +2182,7 @@ msgstr "Копирование образа: %s" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -2277,7 +2277,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 #, fuzzy msgid "Edit network load balancer configurations as YAML" msgstr "Копирование образа: %s" @@ -2380,7 +2380,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2394,7 +2394,7 @@ msgid "Error unsetting properties: %v" msgstr "Копирование образа: %s" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2709,7 +2709,7 @@ msgstr "Невозможно добавить имя контейнера в с msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2837,7 +2837,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 #, fuzzy msgid "Get the key as a network load balancer property" msgstr "Копирование образа: %s" @@ -2914,7 +2914,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 #, fuzzy msgid "Get values for network load balancer configuration keys" msgstr "Копирование образа: %s" @@ -3084,7 +3084,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -3321,7 +3321,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3964,12 +3964,12 @@ msgstr "Копирование образа: %s" msgid "Manage network forwards" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 #, fuzzy msgid "Manage network load balancer backends" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 #, fuzzy msgid "Manage network load balancer ports" msgstr "Копирование образа: %s" @@ -4202,10 +4202,10 @@ msgstr "Имя контейнера: %s" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 #, fuzzy msgid "Missing listen address" msgstr "Имя контейнера: %s" @@ -4232,11 +4232,11 @@ msgstr "Имя контейнера: %s" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4396,7 +4396,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "Копирование образа: %s" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4540,12 +4540,12 @@ msgstr " Использование сети:" msgid "Network forward %s deleted" msgstr " Использование сети:" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, fuzzy, c-format msgid "Network load balancer %s created" msgstr " Использование сети:" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, fuzzy, c-format msgid "Network load balancer %s deleted" msgstr " Использование сети:" @@ -4626,11 +4626,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4702,7 +4702,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4768,7 +4768,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, fuzzy, c-format msgid "Password for %s: " msgstr "Пароль администратора для %s: " @@ -4816,7 +4816,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4828,7 +4828,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4836,7 +4836,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -5193,7 +5193,7 @@ msgstr "Копирование образа: %s" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -5201,12 +5201,12 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 #, fuzzy msgid "Remove backend from a load balancer" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 #, fuzzy msgid "Remove backends from a load balancer" msgstr "Копирование образа: %s" @@ -5236,7 +5236,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 #, fuzzy msgid "Remove ports from a load balancer" msgstr "Копирование образа: %s" @@ -5611,12 +5611,12 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 #, fuzzy msgid "Set network load balancer keys" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5753,7 +5753,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 #, fuzzy msgid "Set the key as a network load balancer property" msgstr "Копирование образа: %s" @@ -5808,11 +5808,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5886,7 +5886,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -6312,7 +6312,7 @@ msgstr "Копирование образа: %s" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, fuzzy, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "Копирование образа: %s" @@ -6412,7 +6412,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6448,7 +6448,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6664,12 +6664,12 @@ msgstr "Копирование образа: %s" msgid "Unset network forward keys" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 #, fuzzy msgid "Unset network load balancer configuration keys" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 #, fuzzy msgid "Unset network load balancer keys" msgstr "Копирование образа: %s" @@ -6728,7 +6728,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "Копирование образа: %s" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 #, fuzzy msgid "Unset the key as a network load balancer property" msgstr "Копирование образа: %s" @@ -6828,7 +6828,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -7581,7 +7581,7 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 #, fuzzy msgid "[:] " msgstr "" @@ -7589,7 +7589,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 #, fuzzy msgid "[:] " msgstr "" @@ -7597,7 +7597,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 #, fuzzy msgid "" "[:] " @@ -7608,7 +7608,7 @@ msgstr "" "lxc %s [:] [[:]...]%s" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 #, fuzzy msgid "[:] " msgstr "" @@ -7616,7 +7616,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 #, fuzzy msgid "[:] =..." msgstr "" @@ -7624,7 +7624,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 #, fuzzy msgid "" "[:] " @@ -7640,7 +7640,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 #, fuzzy msgid "[:] [] []" msgstr "" @@ -8422,6 +8422,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/si.po b/po/si.po index feece45615be..542eb47e7610 100644 --- a/po/si.po +++ b/po/si.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Sinhala ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/sl.po b/po/sl.po index 462081505f80..593f5aa54265 100644 --- a/po/sl.po +++ b/po/sl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Slovenian ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1139,10 +1139,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1178,11 +1178,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1214,7 +1214,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1592,7 +1592,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1676,7 +1676,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1695,12 +1695,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1867,7 +1867,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1958,7 +1958,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2056,7 +2056,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2070,7 +2070,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2375,7 +2375,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2501,7 +2501,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2569,7 +2569,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2733,7 +2733,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2962,7 +2962,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3573,11 +3573,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3784,10 +3784,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3812,11 +3812,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3967,7 +3967,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4111,12 +4111,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4194,11 +4194,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4269,7 +4269,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4335,7 +4335,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4382,7 +4382,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4394,7 +4394,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4402,7 +4402,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4752,7 +4752,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4760,11 +4760,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4792,7 +4792,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5150,11 +5150,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5286,7 +5286,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5334,11 +5334,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5407,7 +5407,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5816,7 +5816,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5915,7 +5915,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5951,7 +5951,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6162,11 +6162,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6218,7 +6218,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6308,7 +6308,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6761,30 +6761,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6796,7 +6796,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7322,6 +7322,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/sr.po b/po/sr.po index aa060d5d2c64..190da37c6691 100644 --- a/po/sr.po +++ b/po/sr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1139,10 +1139,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1178,11 +1178,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1214,7 +1214,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1592,7 +1592,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1676,7 +1676,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1695,12 +1695,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1867,7 +1867,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1958,7 +1958,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2056,7 +2056,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2070,7 +2070,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2375,7 +2375,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2501,7 +2501,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2569,7 +2569,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2733,7 +2733,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2962,7 +2962,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3573,11 +3573,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3784,10 +3784,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3812,11 +3812,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3967,7 +3967,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4111,12 +4111,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4194,11 +4194,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4269,7 +4269,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4335,7 +4335,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4382,7 +4382,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4394,7 +4394,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4402,7 +4402,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4752,7 +4752,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4760,11 +4760,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4792,7 +4792,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5150,11 +5150,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5286,7 +5286,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5334,11 +5334,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5407,7 +5407,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5816,7 +5816,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5915,7 +5915,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5951,7 +5951,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6162,11 +6162,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6218,7 +6218,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6308,7 +6308,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6761,30 +6761,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6796,7 +6796,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7322,6 +7322,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/sv.po b/po/sv.po index e09498f1ebb8..37d3245d3b1a 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Swedish ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/te.po b/po/te.po index 5c9c6d2aeb62..71eec3fe94c9 100644 --- a/po/te.po +++ b/po/te.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Telugu ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/th.po b/po/th.po index 8f8f4c82b1d1..e7e54e625fa7 100644 --- a/po/th.po +++ b/po/th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -278,7 +278,7 @@ msgid "" "### Note that the listen_address and location cannot be changed." msgstr "" -#: lxc/network_load_balancer.go:588 +#: lxc/network_load_balancer.go:593 msgid "" "### This is a YAML representation of the network load balancer.\n" "### Any line starting with a '# will be ignored.\n" @@ -607,11 +607,11 @@ msgstr "" msgid "Add a network zone record entry" msgstr "" -#: lxc/network_load_balancer.go:798 +#: lxc/network_load_balancer.go:803 msgid "Add backend to a load balancer" msgstr "" -#: lxc/network_load_balancer.go:797 +#: lxc/network_load_balancer.go:802 msgid "Add backends to a load balancer" msgstr "" @@ -676,7 +676,7 @@ msgstr "" msgid "Add ports to a forward" msgstr "" -#: lxc/network_load_balancer.go:962 lxc/network_load_balancer.go:963 +#: lxc/network_load_balancer.go:967 lxc/network_load_balancer.go:968 msgid "Add ports to a load balancer" msgstr "" @@ -829,7 +829,7 @@ msgstr "" msgid "Auto update: %s" msgstr "" -#: lxc/network_forward.go:240 lxc/network_load_balancer.go:242 +#: lxc/network_forward.go:240 lxc/network_load_balancer.go:247 msgid "Auto-allocate an IPv4 or IPv6 listen address. One of 'ipv4', 'ipv6'." msgstr "" @@ -865,7 +865,7 @@ msgid "Bad device override syntax, expecting ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1135,10 +1135,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1174,11 +1174,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1210,7 +1210,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1588,7 +1588,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1672,7 +1672,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1691,12 +1691,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1863,7 +1863,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1954,7 +1954,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2052,7 +2052,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2066,7 +2066,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2371,7 +2371,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2497,7 +2497,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2565,7 +2565,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2729,7 +2729,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2958,7 +2958,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3569,11 +3569,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3780,10 +3780,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3808,11 +3808,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3963,7 +3963,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4107,12 +4107,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4190,11 +4190,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4265,7 +4265,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4331,7 +4331,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4378,7 +4378,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4390,7 +4390,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4398,7 +4398,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4748,7 +4748,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4756,11 +4756,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4788,7 +4788,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5146,11 +5146,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5282,7 +5282,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5330,11 +5330,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5403,7 +5403,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5812,7 +5812,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5911,7 +5911,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5947,7 +5947,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6158,11 +6158,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6214,7 +6214,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6304,7 +6304,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6757,30 +6757,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6792,7 +6792,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7318,6 +7318,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/tr.po b/po/tr.po index 808a1ce0e61d..4ee3bdf9058e 100644 --- a/po/tr.po +++ b/po/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Turkish ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/tzm.po b/po/tzm.po index bd121bd96e11..71c78d486529 100644 --- a/po/tzm.po +++ b/po/tzm.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Tamazight (Central Atlas) ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ug.po b/po/ug.po index 82a78ce62960..7a1b384b398e 100644 --- a/po/ug.po +++ b/po/ug.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Uyghur ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/uk.po b/po/uk.po index d2d1f40e6432..a0c1fd294d43 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Ukrainian ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1139,10 +1139,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1178,11 +1178,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1214,7 +1214,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1592,7 +1592,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1676,7 +1676,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1695,12 +1695,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1867,7 +1867,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1958,7 +1958,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2056,7 +2056,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2070,7 +2070,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2375,7 +2375,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2501,7 +2501,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2569,7 +2569,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2733,7 +2733,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2962,7 +2962,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3573,11 +3573,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3784,10 +3784,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3812,11 +3812,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3967,7 +3967,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4111,12 +4111,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4194,11 +4194,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4269,7 +4269,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4335,7 +4335,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4382,7 +4382,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4394,7 +4394,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4402,7 +4402,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4752,7 +4752,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4760,11 +4760,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4792,7 +4792,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5150,11 +5150,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5286,7 +5286,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5334,11 +5334,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5407,7 +5407,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5816,7 +5816,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5915,7 +5915,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5951,7 +5951,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6162,11 +6162,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6218,7 +6218,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6308,7 +6308,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6761,30 +6761,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6796,7 +6796,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7322,6 +7322,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/zh_Hans.po b/po/zh_Hans.po index 6b2ca0df5b29..89a1fb342de4 100644 --- a/po/zh_Hans.po +++ b/po/zh_Hans.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: 0x0916 \n" "Language-Team: Chinese (Simplified) ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1299,10 +1299,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1338,11 +1338,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1374,7 +1374,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1752,7 +1752,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1836,7 +1836,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1855,12 +1855,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -2027,7 +2027,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -2118,7 +2118,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2216,7 +2216,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2230,7 +2230,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2535,7 +2535,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2661,7 +2661,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2729,7 +2729,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2893,7 +2893,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -3122,7 +3122,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3733,11 +3733,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3944,10 +3944,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3972,11 +3972,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -4127,7 +4127,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4271,12 +4271,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4354,11 +4354,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4429,7 +4429,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4495,7 +4495,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4542,7 +4542,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4554,7 +4554,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4562,7 +4562,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4912,7 +4912,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4920,11 +4920,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4952,7 +4952,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5310,11 +5310,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5446,7 +5446,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5494,11 +5494,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5567,7 +5567,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5976,7 +5976,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -6075,7 +6075,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -6111,7 +6111,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6322,11 +6322,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6378,7 +6378,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6468,7 +6468,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6921,30 +6921,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6956,7 +6956,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7482,6 +7482,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/zh_Hant.po b/po/zh_Hant.po index c76080e80834..478b69503ef1 100644 --- a/po/zh_Hant.po +++ b/po/zh_Hant.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-27 13:17+0100\n" +"POT-Creation-Date: 2024-08-28 07:36+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Traditional) ,=: %s" msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 -#: lxc/network_load_balancer.go:296 lxc/network_peer.go:280 +#: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 #: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 #, c-format msgid "Bad key/value pair: %s" @@ -1138,10 +1138,10 @@ msgstr "" #: lxc/network_forward.go:456 lxc/network_forward.go:579 #: lxc/network_forward.go:721 lxc/network_forward.go:798 #: lxc/network_forward.go:864 lxc/network_load_balancer.go:176 -#: lxc/network_load_balancer.go:241 lxc/network_load_balancer.go:459 -#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:725 -#: lxc/network_load_balancer.go:801 lxc/network_load_balancer.go:865 -#: lxc/network_load_balancer.go:966 lxc/network_load_balancer.go:1028 +#: lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 +#: lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 +#: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 +#: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 #: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 #: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 @@ -1177,11 +1177,11 @@ msgstr "" msgid "Columns" msgstr "" -#: lxc/main.go:81 +#: lxc/main.go:82 msgid "Command line client for LXD" msgstr "" -#: lxc/main.go:82 +#: lxc/main.go:83 msgid "" "Command line client for LXD\n" "\n" @@ -1213,7 +1213,7 @@ msgstr "" #: lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 -#: lxc/network_load_balancer.go:689 lxc/network_peer.go:610 +#: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 #: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 @@ -1591,7 +1591,7 @@ msgstr "" msgid "Delete network forwards" msgstr "" -#: lxc/network_load_balancer.go:721 lxc/network_load_balancer.go:722 +#: lxc/network_load_balancer.go:726 lxc/network_load_balancer.go:727 msgid "Delete network load balancers" msgstr "" @@ -1675,7 +1675,7 @@ msgstr "" #: lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 #: lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 #: lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 -#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:82 +#: lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 #: lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 #: lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 #: lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 @@ -1694,12 +1694,12 @@ msgstr "" #: lxc/network_forward.go:780 lxc/network_forward.go:795 #: lxc/network_forward.go:860 lxc/network_load_balancer.go:33 #: lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 -#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:383 -#: lxc/network_load_balancer.go:451 lxc/network_load_balancer.go:549 -#: lxc/network_load_balancer.go:579 lxc/network_load_balancer.go:722 -#: lxc/network_load_balancer.go:783 lxc/network_load_balancer.go:798 -#: lxc/network_load_balancer.go:862 lxc/network_load_balancer.go:948 -#: lxc/network_load_balancer.go:963 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 +#: lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 +#: lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 +#: lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 +#: lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 +#: lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 @@ -1866,7 +1866,7 @@ msgstr "" msgid "Don't require user confirmation for using --force" msgstr "" -#: lxc/main.go:99 +#: lxc/main.go:100 msgid "Don't show progress information" msgstr "" @@ -1957,7 +1957,7 @@ msgstr "" msgid "Edit network forward configurations as YAML" msgstr "" -#: lxc/network_load_balancer.go:578 lxc/network_load_balancer.go:579 +#: lxc/network_load_balancer.go:583 lxc/network_load_balancer.go:584 msgid "Edit network load balancer configurations as YAML" msgstr "" @@ -2055,7 +2055,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 -#: lxc/network_load_balancer.go:522 lxc/network_peer.go:463 +#: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 @@ -2069,7 +2069,7 @@ msgid "Error unsetting properties: %v" msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 -#: lxc/network_forward.go:513 lxc/network_load_balancer.go:516 +#: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 @@ -2374,7 +2374,7 @@ msgstr "" msgid "Force the removal of running instances" msgstr "" -#: lxc/main.go:95 +#: lxc/main.go:96 msgid "Force using the local unix socket" msgstr "" @@ -2500,7 +2500,7 @@ msgstr "" msgid "Get the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:386 +#: lxc/network_load_balancer.go:391 msgid "Get the key as a network load balancer property" msgstr "" @@ -2568,7 +2568,7 @@ msgstr "" msgid "Get values for network forward configuration keys" msgstr "" -#: lxc/network_load_balancer.go:382 lxc/network_load_balancer.go:383 +#: lxc/network_load_balancer.go:387 lxc/network_load_balancer.go:388 msgid "Get values for network load balancer configuration keys" msgstr "" @@ -2732,7 +2732,7 @@ msgstr "" msgid "If the snapshot name already exists, delete and create a new one" msgstr "" -#: lxc/main.go:398 +#: lxc/main.go:400 msgid "" "If this is your first time running LXD on this machine, you should also run: " "lxd init" @@ -2961,7 +2961,7 @@ msgstr "" msgid "Invalid new snapshot name, parent volume must be the same as source" msgstr "" -#: lxc/main.go:498 +#: lxc/main.go:502 msgid "Invalid number of arguments" msgstr "" @@ -3572,11 +3572,11 @@ msgstr "" msgid "Manage network forwards" msgstr "" -#: lxc/network_load_balancer.go:782 lxc/network_load_balancer.go:783 +#: lxc/network_load_balancer.go:787 lxc/network_load_balancer.go:788 msgid "Manage network load balancer backends" msgstr "" -#: lxc/network_load_balancer.go:947 lxc/network_load_balancer.go:948 +#: lxc/network_load_balancer.go:952 lxc/network_load_balancer.go:953 msgid "Manage network load balancer ports" msgstr "" @@ -3783,10 +3783,10 @@ msgstr "" #: lxc/network_forward.go:481 lxc/network_forward.go:627 #: lxc/network_forward.go:746 lxc/network_forward.go:823 #: lxc/network_forward.go:889 lxc/network_load_balancer.go:201 -#: lxc/network_load_balancer.go:411 lxc/network_load_balancer.go:484 -#: lxc/network_load_balancer.go:630 lxc/network_load_balancer.go:750 -#: lxc/network_load_balancer.go:826 lxc/network_load_balancer.go:890 -#: lxc/network_load_balancer.go:991 lxc/network_load_balancer.go:1053 +#: lxc/network_load_balancer.go:416 lxc/network_load_balancer.go:489 +#: lxc/network_load_balancer.go:635 lxc/network_load_balancer.go:755 +#: lxc/network_load_balancer.go:831 lxc/network_load_balancer.go:895 +#: lxc/network_load_balancer.go:996 lxc/network_load_balancer.go:1058 msgid "Missing listen address" msgstr "" @@ -3811,11 +3811,11 @@ msgstr "" #: lxc/network_forward.go:477 lxc/network_forward.go:623 #: lxc/network_forward.go:742 lxc/network_forward.go:819 #: lxc/network_forward.go:885 lxc/network_load_balancer.go:123 -#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:261 -#: lxc/network_load_balancer.go:407 lxc/network_load_balancer.go:480 -#: lxc/network_load_balancer.go:626 lxc/network_load_balancer.go:746 -#: lxc/network_load_balancer.go:822 lxc/network_load_balancer.go:886 -#: lxc/network_load_balancer.go:987 lxc/network_load_balancer.go:1049 +#: lxc/network_load_balancer.go:197 lxc/network_load_balancer.go:266 +#: lxc/network_load_balancer.go:412 lxc/network_load_balancer.go:485 +#: lxc/network_load_balancer.go:631 lxc/network_load_balancer.go:751 +#: lxc/network_load_balancer.go:827 lxc/network_load_balancer.go:891 +#: lxc/network_load_balancer.go:992 lxc/network_load_balancer.go:1054 #: lxc/network_peer.go:110 lxc/network_peer.go:180 lxc/network_peer.go:237 #: lxc/network_peer.go:355 lxc/network_peer.go:426 lxc/network_peer.go:556 #: lxc/network_peer.go:665 @@ -3966,7 +3966,7 @@ msgstr "" msgid "Moving the storage volume: %s" msgstr "" -#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1097 +#: lxc/network_forward.go:933 lxc/network_load_balancer.go:1102 msgid "Multiple ports match. Use --force to remove them all" msgstr "" @@ -4110,12 +4110,12 @@ msgstr "" msgid "Network forward %s deleted" msgstr "" -#: lxc/network_load_balancer.go:365 +#: lxc/network_load_balancer.go:370 #, c-format msgid "Network load balancer %s created" msgstr "" -#: lxc/network_load_balancer.go:767 +#: lxc/network_load_balancer.go:772 #, c-format msgid "Network load balancer %s deleted" msgstr "" @@ -4193,11 +4193,11 @@ msgstr "" msgid "No device found for this storage volume" msgstr "" -#: lxc/network_load_balancer.go:921 +#: lxc/network_load_balancer.go:926 msgid "No matching backend found" msgstr "" -#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1108 +#: lxc/network_forward.go:944 lxc/network_load_balancer.go:1113 msgid "No matching port(s) found" msgstr "" @@ -4268,7 +4268,7 @@ msgstr "" msgid "Optimized Storage" msgstr "" -#: lxc/main.go:96 +#: lxc/main.go:97 msgid "Override the source project" msgstr "" @@ -4334,7 +4334,7 @@ msgstr "" msgid "Partitions:" msgstr "" -#: lxc/main.go:361 +#: lxc/main.go:363 #, c-format msgid "Password for %s: " msgstr "" @@ -4381,7 +4381,7 @@ msgstr "" #: lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 -#: lxc/network_load_balancer.go:690 lxc/network_peer.go:611 +#: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 #: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 @@ -4393,7 +4393,7 @@ msgstr "" msgid "Pretty rendering (short for --format=pretty)" msgstr "" -#: lxc/main.go:94 +#: lxc/main.go:95 msgid "Print help" msgstr "" @@ -4401,7 +4401,7 @@ msgstr "" msgid "Print the raw response" msgstr "" -#: lxc/main.go:93 +#: lxc/main.go:94 msgid "Print version number" msgstr "" @@ -4751,7 +4751,7 @@ msgstr "" msgid "Remove aliases" msgstr "" -#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1025 +#: lxc/network_forward.go:861 lxc/network_load_balancer.go:1030 msgid "Remove all ports that match" msgstr "" @@ -4759,11 +4759,11 @@ msgstr "" msgid "Remove all rules that match" msgstr "" -#: lxc/network_load_balancer.go:862 +#: lxc/network_load_balancer.go:867 msgid "Remove backend from a load balancer" msgstr "" -#: lxc/network_load_balancer.go:861 +#: lxc/network_load_balancer.go:866 msgid "Remove backends from a load balancer" msgstr "" @@ -4791,7 +4791,7 @@ msgstr "" msgid "Remove ports from a forward" msgstr "" -#: lxc/network_load_balancer.go:1023 lxc/network_load_balancer.go:1024 +#: lxc/network_load_balancer.go:1028 lxc/network_load_balancer.go:1029 msgid "Remove ports from a load balancer" msgstr "" @@ -5149,11 +5149,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_load_balancer.go:450 +#: lxc/network_load_balancer.go:455 msgid "Set network load balancer keys" msgstr "" -#: lxc/network_load_balancer.go:451 +#: lxc/network_load_balancer.go:456 msgid "" "Set network load balancer keys\n" "\n" @@ -5285,7 +5285,7 @@ msgstr "" msgid "Set the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:458 +#: lxc/network_load_balancer.go:463 msgid "Set the key as a network load balancer property" msgstr "" @@ -5333,11 +5333,11 @@ msgstr "" msgid "Setup SSH SFTP listener on address:port instead of mounting" msgstr "" -#: lxc/main.go:97 +#: lxc/main.go:98 msgid "Show all debug messages" msgstr "" -#: lxc/main.go:98 +#: lxc/main.go:99 msgid "Show all information messages" msgstr "" @@ -5406,7 +5406,7 @@ msgstr "" msgid "Show instance or server information" msgstr "" -#: lxc/main.go:271 lxc/main.go:272 +#: lxc/main.go:272 lxc/main.go:273 msgid "Show less common commands" msgstr "" @@ -5815,7 +5815,7 @@ msgstr "" msgid "The property %q does not exist on the instance snapshot %s/%s: %v" msgstr "" -#: lxc/network_load_balancer.go:424 +#: lxc/network_load_balancer.go:429 #, c-format msgid "The property %q does not exist on the load balancer %q: %v" msgstr "" @@ -5914,7 +5914,7 @@ msgstr "" msgid "This LXD server is not available on the network" msgstr "" -#: lxc/main.go:293 +#: lxc/main.go:294 msgid "" "This client hasn't been configured to use a remote LXD server yet.\n" "As your platform can't run native Linux instances, you must connect to a " @@ -5950,7 +5950,7 @@ msgstr "" msgid "To detach from the console, press: +a q" msgstr "" -#: lxc/main.go:403 +#: lxc/main.go:406 msgid "" "To start your first container, try: lxc launch ubuntu:24.04\n" "Or for a virtual machine: lxc launch ubuntu:24.04 --vm" @@ -6161,11 +6161,11 @@ msgstr "" msgid "Unset network forward keys" msgstr "" -#: lxc/network_load_balancer.go:548 +#: lxc/network_load_balancer.go:553 msgid "Unset network load balancer configuration keys" msgstr "" -#: lxc/network_load_balancer.go:549 +#: lxc/network_load_balancer.go:554 msgid "Unset network load balancer keys" msgstr "" @@ -6217,7 +6217,7 @@ msgstr "" msgid "Unset the key as a network forward property" msgstr "" -#: lxc/network_load_balancer.go:552 +#: lxc/network_load_balancer.go:557 msgid "Unset the key as a network load balancer property" msgstr "" @@ -6307,7 +6307,7 @@ msgid "" "Use storage driver optimized format (can only be restored on a similar pool)" msgstr "" -#: lxc/main.go:100 +#: lxc/main.go:101 msgid "Use with help or --help to view sub-commands" msgstr "" @@ -6760,30 +6760,30 @@ msgstr "" #: lxc/network_forward.go:169 lxc/network_forward.go:574 #: lxc/network_forward.go:715 lxc/network_load_balancer.go:171 -#: lxc/network_load_balancer.go:577 lxc/network_load_balancer.go:719 +#: lxc/network_load_balancer.go:582 lxc/network_load_balancer.go:724 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:860 +#: lxc/network_load_balancer.go:865 msgid "[:] " msgstr "" -#: lxc/network_load_balancer.go:796 +#: lxc/network_load_balancer.go:801 msgid "" "[:] " "[]" msgstr "" #: lxc/network_forward.go:377 lxc/network_forward.go:544 -#: lxc/network_load_balancer.go:381 lxc/network_load_balancer.go:547 +#: lxc/network_load_balancer.go:386 lxc/network_load_balancer.go:552 msgid "[:] " msgstr "" -#: lxc/network_forward.go:446 lxc/network_load_balancer.go:449 +#: lxc/network_forward.go:446 lxc/network_load_balancer.go:454 msgid "[:] =..." msgstr "" -#: lxc/network_load_balancer.go:961 +#: lxc/network_load_balancer.go:966 msgid "" "[:] " "[,...]" @@ -6795,7 +6795,7 @@ msgid "" " []" msgstr "" -#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1022 +#: lxc/network_forward.go:858 lxc/network_load_balancer.go:1027 msgid "[:] [] []" msgstr "" @@ -7321,6 +7321,15 @@ msgid "" " Create a new OVN network called bar using baz as its uplink network" msgstr "" +#: lxc/network_load_balancer.go:239 +msgid "" +"lxc network load-balancer create n1 127.0.0.1\n" +"\n" +"lxc network load-balancer create n1 127.0.0.1 < config.yaml\n" +" Create network load-balancer for network n1 with configuration from " +"config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" From 061d5a8f5cbd479023e9834408dcd7f38c3e8831 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Thu, 6 Jun 2024 17:19:24 +0200 Subject: [PATCH 136/169] add a new dependency for github.com/NVIDIA/nvidia-container-toolkit The new `github.com/NVIDIA/nvidia-container-toolkit` is required because we need to use the `nvcdi` package in order to be able to generate an NVIDIA implementation of a CDI specification. All the devices / mounts discoverability logic is encapsulated in this library. Signed-off-by: Gabriel Mougard --- go.mod | 8 ++++++++ go.sum | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 45 insertions(+) diff --git a/go.mod b/go.mod index d301a9662158..cee807efb2d4 100644 --- a/go.mod +++ b/go.mod @@ -3,6 +3,7 @@ module github.com/canonical/lxd go 1.22.5 require ( + github.com/NVIDIA/nvidia-container-toolkit v1.16.1 github.com/Rican7/retry v0.3.1 github.com/armon/go-proxyproto v0.1.0 github.com/canonical/go-dqlite v1.22.0 @@ -64,9 +65,13 @@ require ( gopkg.in/tomb.v2 v2.0.0-20161208151619-d5d1b5820637 gopkg.in/yaml.v2 v2.4.0 k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 + tags.cncf.io/container-device-interface v0.8.0 + tags.cncf.io/container-device-interface/specs-go v0.8.0 ) require ( + github.com/NVIDIA/go-nvlib v0.6.0 // indirect + github.com/NVIDIA/go-nvml v0.12.4-0 // indirect github.com/antlr4-go/antlr/v4 v4.13.1 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/bmatcuk/doublestar/v4 v4.6.1 // indirect @@ -117,6 +122,8 @@ require ( github.com/muhlemmer/httpforwarded v0.1.0 // indirect github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/natefinch/wrap v0.2.0 // indirect + github.com/opencontainers/runtime-spec v1.2.0 // indirect + github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 // indirect github.com/pelletier/go-toml/v2 v2.2.2 // indirect github.com/pkg/errors v0.9.1 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect @@ -158,4 +165,5 @@ require ( gopkg.in/ini.v1 v1.67.0 // indirect gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect + sigs.k8s.io/yaml v1.4.0 // indirect ) diff --git a/go.sum b/go.sum index 70d8f4673b07..09d2363d8e12 100644 --- a/go.sum +++ b/go.sum @@ -47,6 +47,12 @@ github.com/Masterminds/squirrel v1.5.4 h1:uUcX/aBc8O7Fg9kaISIUsHXdKuqehiXAMQTYX8 github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA400rg+riTZj10= github.com/Microsoft/go-winio v0.6.1 h1:9/kr64B9VUZrLm5YYwbGtUJnMgqWVOdUAXu6Migciow= github.com/Microsoft/go-winio v0.6.1/go.mod h1:LRdKpFKfdobln8UmuiYcKPot9D2v6svN5+sAH+4kjUM= +github.com/NVIDIA/go-nvlib v0.6.0 h1:zAMBzCYT9xeyRQo0tb7HJbStkzajD6e5joyaQqJ2OGU= +github.com/NVIDIA/go-nvlib v0.6.0/go.mod h1:9UrsLGx/q1OrENygXjOuM5Ey5KCtiZhbvBlbUIxtGWY= +github.com/NVIDIA/go-nvml v0.12.4-0 h1:4tkbB3pT1O77JGr0gQ6uD8FrsUPqP1A/EOEm2wI1TUg= +github.com/NVIDIA/go-nvml v0.12.4-0/go.mod h1:8Llmj+1Rr+9VGGwZuRer5N/aCjxGuR5nPb/9ebBiIEQ= +github.com/NVIDIA/nvidia-container-toolkit v1.16.1 h1:PkY6RqYD1wIt1izCvYZ7kr7IitxK8e9+k/prO6b3vD0= +github.com/NVIDIA/nvidia-container-toolkit v1.16.1/go.mod h1:jJXYvHEdqqpDcRXvolaiFCBsgLxvCwmJWSBZM3zQPY8= github.com/Rican7/retry v0.3.0/go.mod h1:CxSDrhAyXmTMeEuRAnArMu1FHu48vtfjLREWqVl7Vw0= github.com/Rican7/retry v0.3.1 h1:scY4IbO8swckzoA/11HgBwaZRJEyY9vaNJshcdhp1Mc= github.com/Rican7/retry v0.3.1/go.mod h1:CxSDrhAyXmTMeEuRAnArMu1FHu48vtfjLREWqVl7Vw0= @@ -63,6 +69,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= +github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM= +github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ= github.com/bmatcuk/doublestar/v4 v4.6.1 h1:FH9SifrbvJhnlQpztAx++wlkk70QBf0iBWDwNy7PA4I= github.com/bmatcuk/doublestar/v4 v4.6.1/go.mod h1:xBQ8jztBU6kakFMg+8WGxn0c6z1fTSPVIjEY1Wr7jzc= github.com/canonical/go-dqlite v1.22.0 h1:DuJmfcREl4gkQJyvZzjl2GHFZROhbPyfdjDRQXpkOyw= @@ -222,6 +230,7 @@ github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/ github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI= github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= @@ -247,6 +256,7 @@ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm4 github.com/google/renameio v1.0.1 h1:Lh/jXZmvZxb0BBeSY5VKEfidcbcbenKjZFzM/q0fSeU= github.com/google/renameio v1.0.1/go.mod h1:t/HQoYBZSsWSNK35C6CO/TpPLDVWvxOHboWUAweKUpk= github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0= github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= @@ -492,11 +502,13 @@ github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/mitchellh/mapstructure v1.5.0 h1:jeMsZIYE/09sWLaz43PL7Gy6RuMjD2eJVyuac5Z2hdY= github.com/mitchellh/mapstructure v1.5.0/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/mndrix/tap-go v0.0.0-20171203230836-629fa407e90b/go.mod h1:pzzDgJWZ34fGzaAZGFW22KVZDfyrYW+QABMrWnJBnSs= github.com/moby/docker-image-spec v1.3.1 h1:jMKff3w6PgbfSa69GfNg+zN/XLhfXJGnEx3Nl2EsFP0= github.com/moby/docker-image-spec v1.3.1/go.mod h1:eKmb5VW8vQEh/BAr2yvVNvuiJuY6UIocYsFu/DxxRpo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/mrunalp/fileutils v0.5.0/go.mod h1:M1WthSahJixYnrXQl/DFQuteStB1weuxD2QJNHXfbSQ= github.com/muhlemmer/gu v0.3.1 h1:7EAqmFrW7n3hETvuAdmFmn4hS8W+z3LgKtrnow+YzNM= github.com/muhlemmer/gu v0.3.1/go.mod h1:YHtHR+gxM+bKEIIs7Hmi9sPT3ZDUvTN/i88wQpZkrdM= github.com/muhlemmer/httpforwarded v0.1.0 h1:x4DLrzXdliq8mprgUMR0olDvHGkou5BJsK/vWUetyzY= @@ -515,6 +527,14 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.0 h1:8SG7/vwALn54lVB/0yZ/MMwhFrPYtpEHQb2IpWsCzug= github.com/opencontainers/image-spec v1.1.0/go.mod h1:W4s4sFTMaBeK1BQLXbG4AdM2szdn85PY75RI83NrTrM= +github.com/opencontainers/runtime-spec v1.0.3-0.20220825212826-86290f6a00fb/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-spec v1.2.0 h1:z97+pHb3uELt/yiAWD691HNHQIF07bE7dzrbT927iTk= +github.com/opencontainers/runtime-spec v1.2.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0= +github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626 h1:DmNGcqH3WDbV5k8OJ+esPWbqUOX5rMLR2PMvziDMJi0= +github.com/opencontainers/runtime-tools v0.9.1-0.20221107090550-2e043c6bd626/go.mod h1:BRHJJd0E+cx42OybVYSgUvZmU0B8P9gZuRXlZUP7TKI= +github.com/opencontainers/selinux v1.9.1/go.mod h1:2i0OySw99QjzBBQByd1Gr9gSjvuho1lHsJxIJ3gGbJI= +github.com/opencontainers/selinux v1.11.0 h1:+5Zbo97w3Lbmb3PeqQtpmTkMwsW5nRI3YaLpt7tQ7oU= +github.com/opencontainers/selinux v1.11.0/go.mod h1:E5dMC3VPuVvVHDYmi78qvhJp8+M586T4DlDRYpFkyec= github.com/openfga/api/proto v0.0.0-20240807201305-c96ec773cae9 h1:Y0fIAHrYECcf5lpa/o1AbH21bS7rsco/FoH4A4NGlZE= github.com/openfga/api/proto v0.0.0-20240807201305-c96ec773cae9/go.mod h1:gil5LBD8tSdFQbUkCQdnXsoeU9kDJdJgbGdHkgJfcd0= github.com/openfga/language/pkg/go v0.2.0-beta.0 h1:dTvgDkQImfNnH1iDvxnUIbz4INvKr4kS46dI12oAEzM= @@ -579,6 +599,7 @@ github.com/sethvargo/go-retry v0.2.4 h1:T+jHEQy/zKJf5s95UkguisicE0zuF9y7+/vgz08O github.com/sethvargo/go-retry v0.2.4/go.mod h1:1afjQuvh7s4gflMObvjLPaWgluLLyhA1wmVZ6KLpICw= github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= +github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/sirupsen/logrus v1.9.3 h1:dueUQJ1C2q9oE3F7wvmSGAaVtTmUizReu6fjN8uqzbQ= github.com/sirupsen/logrus v1.9.3/go.mod h1:naHLuLoDiP4jHNo9R0sCBMtWGeIprob74mVsIT4qYEQ= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= @@ -625,12 +646,20 @@ github.com/subosito/gotenv v1.6.0 h1:9NlTDc1FTs4qu0DDq7AEtTPNw6SVm7uBMsUCUjABIf8 github.com/subosito/gotenv v1.6.0/go.mod h1:Dk4QP5c2W3ibzajGcXpNraDfq2IrhjMIvMSWPKKo0FU= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635 h1:kdXcSzyDtseVEc4yCz2qF8ZrQvIDBJLl4S1c3GCXmoI= github.com/syndtr/gocapability v0.0.0-20200815063812-42c35b437635/go.mod h1:hkRG7XYTFWNJGYcbNJQlaLq0fg1yr4J4t/NcTQtrfww= +github.com/urfave/cli v1.19.1/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/vishvananda/netlink v1.3.0 h1:X7l42GfcV4S6E4vHTsw48qbrV+9PVojNfIhZcwQdrZk= github.com/vishvananda/netlink v1.3.0/go.mod h1:i6NetklAujEcC6fK0JPjT8qSwWyO0HLn4UKG+hGqeJs= github.com/vishvananda/netns v0.0.4 h1:Oeaw1EM2JMxD51g9uhtC0D7erkIjgmj8+JZc26m1YX8= github.com/vishvananda/netns v0.0.4/go.mod h1:SpkAiCQRtJ6TvvxPnOSyH3BMl6unz3xZlaprSwhNNJM= github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= github.com/xdg-go/stringprep v1.0.3/go.mod h1:W3f5j4i+9rC0kuIEJL0ky1VpHXQU3ocBgklLGvcBnW8= +github.com/xeipuuv/gojsonpointer v0.0.0-20180127040702-4e3ac2762d5f/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb h1:zGWFAtiMcyryUHoUjUJX0/lt1H2+i2Ka2n+D3DImSNo= +github.com/xeipuuv/gojsonpointer v0.0.0-20190905194746-02993c407bfb/go.mod h1:N2zxlSyiKSe5eX1tZViRH5QA0qijqEDrYZiPEAiq3wU= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415 h1:EzJWgHovont7NscjpAxXsDA8S8BMYve8Y5+7cuRE7R0= +github.com/xeipuuv/gojsonreference v0.0.0-20180127040603-bd5ef7bd5415/go.mod h1:GwrjFmJcFw6At/Gs6z4yjiIwzuJ1/+UwLxMQDVQXShQ= +github.com/xeipuuv/gojsonschema v1.2.0 h1:LhYJRs+L4fBtjZUfuSZIKGeVu0QRy8e5Xi7D17UxZ74= +github.com/xeipuuv/gojsonschema v1.2.0/go.mod h1:anYRn/JVcOK2ZgGU+IjEV4nwlhoK5sQluxsYJ78Id3Y= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -827,6 +856,8 @@ golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191115151921-52ab43148777/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -1110,3 +1141,9 @@ launchpad.net/xmlpath v0.0.0-20130614043138-000000000004/go.mod h1:vqyExLOM3qBx7 rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= +sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E= +sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY= +tags.cncf.io/container-device-interface v0.8.0 h1:8bCFo/g9WODjWx3m6EYl3GfUG31eKJbaggyBDxEldRc= +tags.cncf.io/container-device-interface v0.8.0/go.mod h1:Apb7N4VdILW0EVdEMRYXIDVRZfNJZ+kmEUss2kRRQ6Y= +tags.cncf.io/container-device-interface/specs-go v0.8.0 h1:QYGFzGxvYK/ZLMrjhvY0RjpUavIn4KcmRmVP/JjdBTA= +tags.cncf.io/container-device-interface/specs-go v0.8.0/go.mod h1:BhJIkjjPh4qpys+qm4DAYtUyryaTDg9zris+AczXyws= From 1b1c20d60efad7aee47b6ffa844f1c7f7aab4869 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Thu, 6 Jun 2024 17:20:42 +0200 Subject: [PATCH 137/169] lxd/device/cdi: Introduce base CDI types and `ToCDI` Signed-off-by: Gabriel Mougard --- lxd/device/cdi/id.go | 104 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 104 insertions(+) create mode 100644 lxd/device/cdi/id.go diff --git a/lxd/device/cdi/id.go b/lxd/device/cdi/id.go new file mode 100644 index 000000000000..7c956cdb9fee --- /dev/null +++ b/lxd/device/cdi/id.go @@ -0,0 +1,104 @@ +package cdi + +import ( + "fmt" + + "tags.cncf.io/container-device-interface/pkg/parser" +) + +// Vendor represents the compatible CDI vendor. +type Vendor string + +const ( + // NVIDIA represents the Nvidia CDI vendor. + NVIDIA Vendor = "nvidia.com" +) + +// ToVendor converts a string to a CDI vendor. +func ToVendor(vendor string) (Vendor, error) { + switch vendor { + case string(NVIDIA): + return NVIDIA, nil + default: + return "", fmt.Errorf("Invalid CDI vendor (%q)", vendor) + } +} + +// Class represents the compatible CDI class. +type Class string + +const ( + // GPU is a single discrete GPU. + GPU Class = "gpu" + // IGPU is an integrated GPU. + IGPU Class = "igpu" + // MIG is a single MIG compatible GPU. + MIG Class = "mig" +) + +// ToClass converts a string to a CDI class. +func ToClass(c string) (Class, error) { + switch c { + case string(GPU): + return GPU, nil + case string(IGPU): + return IGPU, nil + case string(MIG): + return MIG, nil + default: + return "", fmt.Errorf("Invalid CDI class (%q)", c) + } +} + +// ID represents a Container Device Interface (CDI) identifier. +// +// +------------+-------+------------------------------------------+ +// | Vendor | Class | Name | +// +---------------------------------------------------------------+ +// | nvidia.com | gpu | [dev_idx], [dev_uuid] or `all` | +// | | mig | [dev_idx]:[mig_idx], [dev_uuid] or `all` | +// | | igpu | [dev_idx], [dev_uuid] or `all` | +// +------------+-------+------------------------------------------+ +// +// Examples: +// - nvidia.com/gpu=0 +// - nvidia.com/gpu=d1f1c76e-7a72-487e-b121-e6d2e5555dc8 +// - nvidia.com/gpu=all +// - nvidia.com/mig=0:1 +// - nvidia.com/igpu=0 +type ID struct { + Vendor Vendor + Class Class + Name string +} + +// String returns the string representation of the ID. +func (id ID) String() string { + return fmt.Sprintf("%s/%s=%s", id.Vendor, id.Class, id.Name) +} + +// Empty returns true if the ID is empty. +func (id ID) Empty() bool { + return id.Vendor == "" && id.Class == "" && id.Name == "" +} + +// ToCDI converts a string identifier to a CDI ID. +func ToCDI(id string) (ID, error) { + vendor, class, name, err := parser.ParseQualifiedName(id) + if err != nil { + // The ID is not a valid CDI qualified name but it could be a valid DRM device ID. + return ID{}, nil + } + + vendorType, err := ToVendor(vendor) + if err != nil { + return ID{}, err + } + + classType, err := ToClass(class) + if err != nil { + return ID{}, err + } + + return ID{Vendor: vendorType, Class: classType, Name: name}, nil +} From 8548e7cfb6d92cce1864f87273c1a2a68dd6abd7 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Fri, 26 Jul 2024 14:09:47 +0200 Subject: [PATCH 138/169] lxd/device/cdi: Add unit tests for the CDI identifier parser Signed-off-by: Gabriel Mougard --- lxd/device/cdi/id_test.go | 117 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 lxd/device/cdi/id_test.go diff --git a/lxd/device/cdi/id_test.go b/lxd/device/cdi/id_test.go new file mode 100644 index 000000000000..658ff04dc156 --- /dev/null +++ b/lxd/device/cdi/id_test.go @@ -0,0 +1,117 @@ +package cdi + +import ( + "reflect" + "testing" +) + +func TestToVendor(t *testing.T) { + tests := []struct { + name string + input string + want Vendor + wantErr bool + }{ + {"Valid Nvidia", "nvidia.com", NVIDIA, false}, + {"Invalid vendor", "amd.com", "", true}, + {"Empty string", "", "", true}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := ToVendor(tt.input) + if (err != nil) != tt.wantErr { + t.Errorf("ToVendor() error = %v, wantErr %v", err, tt.wantErr) + return + } + + if got != tt.want { + t.Errorf("ToVendor() = %v, want %v", got, tt.want) + } + }) + } +} + +func TestToClass(t *testing.T) { + tests := []struct { + name string + input string + want Class + wantErr bool + }{ + {"Valid GPU", "gpu", GPU, false}, + {"Valid IGPU", "igpu", IGPU, false}, + {"Valid MIG", "mig", MIG, false}, + {"Invalid class", "cpu", "", true}, + {"Empty string", "", "", true}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := ToClass(tt.input) + if (err != nil) != tt.wantErr { + t.Errorf("ToClass() error = %v, wantErr %v", err, tt.wantErr) + return + } + + if got != tt.want { + t.Errorf("ToClass() = %v, want %v", got, tt.want) + } + }) + } +} + +func TestIDEmpty(t *testing.T) { + tests := []struct { + name string + id ID + want bool + }{ + {"Empty ID", ID{}, true}, + {"Non-empty ID", ID{Vendor: NVIDIA, Class: GPU, Name: "0"}, false}, + {"Partial ID", ID{Vendor: NVIDIA}, false}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got := tt.id.Empty() + if got != tt.want { + t.Errorf("ID.Empty() = %v, want %v", got, tt.want) + } + }) + } +} + +func TestToCDI(t *testing.T) { + tests := []struct { + name string + input string + want ID + wantErr bool + }{ + {"Valid GPU", "nvidia.com/gpu=0", ID{Vendor: NVIDIA, Class: GPU, Name: "0"}, false}, + {"Valid GPU all", "nvidia.com/gpu=all", ID{Vendor: NVIDIA, Class: GPU, Name: "all"}, false}, + {"Valid MIG", "nvidia.com/mig=0:1", ID{Vendor: NVIDIA, Class: MIG, Name: "0:1"}, false}, + {"Valid IGPU", "nvidia.com/igpu=0", ID{Vendor: NVIDIA, Class: IGPU, Name: "0"}, false}, + {"Valid GPU with UUID", "nvidia.com/gpu=GPU-8da9a1ee-3495-a369-a73a-b9d8ffbc1220", ID{Vendor: NVIDIA, Class: GPU, Name: "GPU-8da9a1ee-3495-a369-a73a-b9d8ffbc1220"}, false}, + {"Valid MIG with UUID", "nvidia.com/mig=MIG-8da9a1ee-3495-a369-a73a-b9d8ffbc1220", ID{Vendor: NVIDIA, Class: MIG, Name: "MIG-8da9a1ee-3495-a369-a73a-b9d8ffbc1220"}, false}, + {"Invalid vendor", "amd.com/gpu=0", ID{}, true}, + {"Invalid class", "nvidia.com/cpu=0", ID{}, true}, + {"Valid MIG format (all MIG indexes in device)", "nvidia.com/mig=0", ID{Vendor: NVIDIA, Class: MIG, Name: "0"}, false}, + {"Non-CDI format", "not-a-cdi-format", ID{}, false}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := ToCDI(tt.input) + if (err != nil) != tt.wantErr { + t.Errorf("ToCDI() error = %v, wantErr %v", err, tt.wantErr) + return + } + + if !reflect.DeepEqual(got, tt.want) { + t.Errorf("ToCDI() = %v, want %v", got, tt.want) + } + }) + } +} From 59fdc8fec8422a3c9c007886000ede2d351c1028 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Thu, 20 Jun 2024 13:54:51 +0200 Subject: [PATCH 139/169] lxd/device/cdi: Introduce a `CDILogger` type In order to log the internal discovery operations of the CDI library, we created a `CDILogger` type reusing the existing LXD's shared logger , but with slightly modified method prototypes to comply with the CDI logger interface. Signed-off-by: Gabriel Mougard --- lxd/device/cdi/log.go | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 lxd/device/cdi/log.go diff --git a/lxd/device/cdi/log.go b/lxd/device/cdi/log.go new file mode 100644 index 000000000000..1a2f58697c97 --- /dev/null +++ b/lxd/device/cdi/log.go @@ -0,0 +1,52 @@ +package cdi + +import ( + "fmt" + + "github.com/canonical/lxd/shared/logger" +) + +// CDILogger reuses LXD's shared logger to log the internal operations of the CDI spec generator. +type CDILogger struct { + lxdLogger logger.Logger +} + +// NewCDILogger creates a new CDI logger from a LXD logger instance. +func NewCDILogger(l logger.Logger) *CDILogger { + return &CDILogger{lxdLogger: l} +} + +// Info logs a message (with optional context) at the INFO log level. +func (l *CDILogger) Info(args ...any) { + l.lxdLogger.Info(fmt.Sprint(args...)) +} + +// Infof logs at the INFO log level using a standard printf format string. +func (l *CDILogger) Infof(format string, args ...any) { + l.lxdLogger.Info(fmt.Sprintf(format, args...)) +} + +// Warning logs a message (with optional context) at the WARNING log level. +func (l *CDILogger) Warning(args ...any) { + l.lxdLogger.Warn(fmt.Sprint(args...)) +} + +// Warningf logs at the WARNING log level using a standard printf format string. +func (l *CDILogger) Warningf(format string, args ...any) { + l.lxdLogger.Warn(fmt.Sprintf(format, args...)) +} + +// Errorf logs at the ERROR log level using a standard printf format string. +func (l *CDILogger) Errorf(format string, args ...any) { + l.lxdLogger.Error(fmt.Sprintf(format, args...)) +} + +// Debugf logs at the DEBUG log level using a standard printf format string. +func (l *CDILogger) Debugf(format string, args ...any) { + l.lxdLogger.Debug(fmt.Sprintf(format, args...)) +} + +// Tracef logs at the TRACE log level using a standard printf format string. +func (l *CDILogger) Tracef(format string, args ...any) { + l.lxdLogger.Trace(fmt.Sprintf(format, args...)) +} From ba948c579d2a0ef7f98620852805c8191602cb61 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Thu, 6 Jun 2024 17:41:18 +0200 Subject: [PATCH 140/169] lxd/device/cdi: Add the NVIDIA CDI spec generator Signed-off-by: Gabriel Mougard --- lxd/device/cdi/spec.go | 117 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 lxd/device/cdi/spec.go diff --git a/lxd/device/cdi/spec.go b/lxd/device/cdi/spec.go new file mode 100644 index 000000000000..539ffb1f5bc1 --- /dev/null +++ b/lxd/device/cdi/spec.go @@ -0,0 +1,117 @@ +package cdi + +import ( + "fmt" + "os" + "os/exec" + "path/filepath" + "strings" + + "github.com/NVIDIA/nvidia-container-toolkit/pkg/nvcdi" + "tags.cncf.io/container-device-interface/specs-go" + + "github.com/canonical/lxd/lxd/instance" + "github.com/canonical/lxd/shared" + "github.com/canonical/lxd/shared/logger" +) + +const ( + // defaultNvidiaTegraMountSpecPath is default location of CSV files that define the modifications required to the OCI spec. + defaultNvidiaTegraMountSpecPath = "/etc/nvidia-container-runtime/host-files-for-container.d" +) + +// defaultNvidiaTegraCSVFiles returns the default CSV files for the Nvidia Tegra platform. +func defaultNvidiaTegraCSVFiles(rootPath string) []string { + files := []string{ + "devices.csv", + "drivers.csv", + "l4t.csv", + } + + paths := make([]string, 0, len(files)) + for _, file := range files { + paths = append(paths, filepath.Join(rootPath, defaultNvidiaTegraMountSpecPath, file)) + } + + return paths +} + +// generateNvidiaSpec generates a CDI spec for an Nvidia vendor. +func generateNvidiaSpec(cdiID ID, inst instance.Instance) (*specs.Spec, error) { + l := logger.AddContext(logger.Ctx{"instanceName": inst.Name(), "projectName": inst.Project().Name, "cdiID": cdiID.String()}) + mode := nvcdi.ModeAuto + if cdiID.Class == IGPU { + mode = nvcdi.ModeCSV + } + + indexDeviceNamer, err := nvcdi.NewDeviceNamer(nvcdi.DeviceNameStrategyIndex) + if err != nil { + return nil, fmt.Errorf("Failed to create device namer with index strategy: %w", err) + } + + uuidDeviceNamer, err := nvcdi.NewDeviceNamer(nvcdi.DeviceNameStrategyUUID) + if err != nil { + return nil, fmt.Errorf("Failed to create device namer with uuid strategy: %w", err) + } + + nvidiaCTKPath, err := exec.LookPath("nvidia-ctk") + if err != nil { + return nil, fmt.Errorf("Failed to find the nvidia-ctk binary: %w", err) + } + + rootPath := "" + if shared.InSnap() { + rootPath = "/var/lib/snapd/hostfs" + } + + cdilib, err := nvcdi.New( + nvcdi.WithDeviceNamers(indexDeviceNamer, uuidDeviceNamer), + nvcdi.WithLogger(NewCDILogger(l)), + nvcdi.WithDriverRoot(rootPath), + nvcdi.WithDevRoot(rootPath), + nvcdi.WithNVIDIACDIHookPath(nvidiaCTKPath), + nvcdi.WithMode(mode), + nvcdi.WithCSVFiles(defaultNvidiaTegraCSVFiles(rootPath)), + ) + if err != nil { + return nil, fmt.Errorf("Failed to create CDI library: %w", err) + } + + specIface, err := cdilib.GetSpec() + if err != nil { + return nil, fmt.Errorf("Failed to get CDI spec interface: %w", err) + } + + spec := specIface.Raw() + if spec == nil { + return nil, fmt.Errorf("CDI spec is nil") + } + + // The spec definition can be quite large so we log it to a file. + specPath := filepath.Join(inst.LogPath(), fmt.Sprintf("nvidia_cdi_spec.%s.log", strings.ReplaceAll(cdiID.String(), "/", "_"))) + specFile, err := os.Create(specPath) + if err != nil { + l.Warn("Failed to create a log file to hold a CDI spec", logger.Ctx{"specPath": specPath, "error": err}) + return spec, nil + } + + defer specFile.Close() + + _, err = specFile.WriteString(logger.Pretty(spec)) + if err != nil { + return nil, fmt.Errorf("Failed to write spec to %q: %v", specPath, err) + } + + l.Debug("CDI spec has been successfully generated", logger.Ctx{"specPath": specPath}) + return spec, nil +} + +// generateSpec generates a CDI spec for the given CDI ID. +func generateSpec(cdiID ID, inst instance.Instance) (*specs.Spec, error) { + switch cdiID.Vendor { + case NVIDIA: + return generateNvidiaSpec(cdiID, inst) + default: + return nil, fmt.Errorf("Unsupported CDI vendor (%q) for the spec generation", cdiID.Vendor) + } +} From 58c7a88fc807d759f3686fe94c1644914a4f0bee Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Thu, 6 Jun 2024 17:42:34 +0200 Subject: [PATCH 141/169] lxd/device/cdi: Add base CDI Hook types Signed-off-by: Gabriel Mougard --- lxd/device/cdi/hooks.go | 44 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 lxd/device/cdi/hooks.go diff --git a/lxd/device/cdi/hooks.go b/lxd/device/cdi/hooks.go new file mode 100644 index 000000000000..bfd0e33cf75a --- /dev/null +++ b/lxd/device/cdi/hooks.go @@ -0,0 +1,44 @@ +package cdi + +const ( + // CDIHookDefinitionKey is used to reference a CDI hook definition in a run config as a file path. + // A CDI hook definition is a simple way to represent the symlinks to be created and the folder entries to add to the ld cache. + // This resource file is to be read and processed by LXD's `callhook` program. + CDIHookDefinitionKey = "cdiHookDefinitionKey" + // CDIHooksFileSuffix is the suffix for the file that contains the CDI hooks. + CDIHooksFileSuffix = "_cdi_hooks.json" + // CDIConfigDevicesFileSuffix is the suffix for the file that contains the CDI config devices. + CDIConfigDevicesFileSuffix = "_cdi_config_devices.json" + // CDIUnixPrefix is the prefix used for creating unix char devices + // (e.g. cdi.unix..). + CDIUnixPrefix = "cdi.unix" + // CDIDiskPrefix is the prefix used for creating bind mounts (or 'disk' devices) + // representing user space files required for a CDI passthrough + // (e.g. cdi.disk..). + CDIDiskPrefix = "cdi.disk" +) + +// SymlinkEntry represents a symlink entry. +type SymlinkEntry struct { + Target string `json:"target" yaml:"target"` + Link string `json:"link" yaml:"link"` +} + +// Hooks represents all the hook instructions that can be executed by +// `lxd-cdi-hook`. +type Hooks struct { + // ContainerRootFS is the path to the container's root filesystem. + ContainerRootFS string `json:"container_rootfs" yaml:"container_rootfs"` + // LdCacheUpdates is a list of entries to update the ld cache. + LDCacheUpdates []string `json:"ld_cache_updates" yaml:"ld_cache_updates"` + // SymLinks is a list of entries to create a symlink. + Symlinks []SymlinkEntry `json:"symlinks" yaml:"symlinks"` +} + +// ConfigDevices represents devices and mounts that need to be configured from a CDI specification. +type ConfigDevices struct { + // UnixCharDevs is a slice of unix-char device configuration. + UnixCharDevs []map[string]string `json:"unix_char_devs" yaml:"unix_char_devs"` + // BindMounts is a slice of mount configuration. + BindMounts []map[string]string `json:"bind_mounts" yaml:"bind_mounts"` +} From da314e64d5df91c64806cd4a496d76a8fda2ed09 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Thu, 6 Jun 2024 17:44:49 +0200 Subject: [PATCH 142/169] lxd/device/gpu: Augment the capabilities of the `id` GPU option to support CDI naming for `phyical` gputype Signed-off-by: Gabriel Mougard --- lxd/device/gpu.go | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/lxd/device/gpu.go b/lxd/device/gpu.go index 96ffdd7b652e..5ce602372eae 100644 --- a/lxd/device/gpu.go +++ b/lxd/device/gpu.go @@ -35,7 +35,19 @@ func gpuValidationRules(requiredFields []string, optionalFields []string) map[st // type: string // shortdesc: Product ID of the parent GPU device "productid": validate.Optional(validate.IsDeviceID), - // lxdmeta:generate(entities=device-gpu-{physical+mdev+mig}; group=device-conf; key=id) + // lxdmeta:generate(entities=device-gpu-physical; group=device-conf; key=id) + // The ID can either be the DRM card ID of the GPU device (container or VM) or a fully-qualified Container Device Interface (CDI) name (container only). + // Here are some examples of fully-qualified CDI names: + // + // - `nvidia.com/gpu=0`: Instructs LXD to operate a discrete GPU (dGPU) pass-through of brand NVIDIA with the first discovered GPU on your system. You can use the `nvidia-smi` tool on your host to find out which identifier to use. + // - `nvidia.com/gpu=1833c8b5-9aa0-5382-b784-68b7e77eb185`: Instructs LXD to operate a discrete GPU (dGPU) pass-through of brand NVIDIA with a given GPU unique identifier. This identifier should also appear with `nvidia-smi -L`. + // - `nvidia.com/igpu=all`: Instructs LXD to pass all the host integrated GPUs (iGPU) of brand NVIDIA. The concept of an index does not currently map to iGPUs. It is possible to list them with the `nvidia-smi -L` command. A special `nvgpu` mention should appear in the generated list to indicate a device to be an iGPU. + // - `nvidia.com/gpu=all`: Instructs LXD to pass all the host GPUs of brand NVIDIA through to the container. + // --- + // type: string + // shortdesc: ID of the GPU device + + // lxdmeta:generate(entities=device-gpu-{mdev+mig}; group=device-conf; key=id) // // --- // type: string From 41b88404d3e51719d4ebb98778ab2746739dc354 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Mon, 29 Jul 2024 19:59:50 +0200 Subject: [PATCH 143/169] lxd/device/cdi: Add CDI translation logic (OCI spec -> unix device + mounts) logic Signed-off-by: Gabriel Mougard --- lxd/device/cdi/configure.go | 339 ++++++++++++++++++++++++++++++++++++ 1 file changed, 339 insertions(+) create mode 100644 lxd/device/cdi/configure.go diff --git a/lxd/device/cdi/configure.go b/lxd/device/cdi/configure.go new file mode 100644 index 000000000000..8308f630e350 --- /dev/null +++ b/lxd/device/cdi/configure.go @@ -0,0 +1,339 @@ +package cdi + +import ( + "encoding/json" + "fmt" + "os" + "path/filepath" + "strings" + + "golang.org/x/sys/unix" + "tags.cncf.io/container-device-interface/specs-go" + + "github.com/canonical/lxd/lxd/instance" + "github.com/canonical/lxd/shared" + "github.com/canonical/lxd/shared/logger" +) + +// specDevToNativeDev builds a list of unix-char devices to be created from a CDI spec. +func specDevToNativeDev(configDevices *ConfigDevices, d specs.DeviceNode) error { + if d.Path == "" { + return fmt.Errorf("Device path is empty in the CDI device node: %v", d) + } + + hostPath := d.HostPath + if hostPath == "" { + hostPath = d.Path // When the hostPath is empty, the path is the device path in the container. + } + + if d.Major == 0 || d.Minor == 0 { + stat := unix.Stat_t{} + err := unix.Stat(hostPath, &stat) + if err != nil { + return err + } + + d.Major = int64(unix.Major(uint64(stat.Rdev))) + d.Minor = int64(unix.Minor(uint64(stat.Rdev))) + } + + configDevices.UnixCharDevs = append(configDevices.UnixCharDevs, map[string]string{"type": "unix-char", "source": hostPath, "path": d.Path, "major": fmt.Sprintf("%d", d.Major), "minor": fmt.Sprintf("%d", d.Minor)}) + return nil +} + +// specMountToNativeDev builds a list of disk mounts to be created from a CDI spec. +func specMountToNativeDev(configDevices *ConfigDevices, cdiID ID, mounts []*specs.Mount) ([]SymlinkEntry, error) { + if len(mounts) == 0 { + return nil, fmt.Errorf("CDI mounts are empty") + } + + indirectSymlinks := make([]SymlinkEntry, 0) + var chosenOpts []string + + rootPath := "" + if shared.InSnap() { + rootPath = "/var/lib/snapd/hostfs" + } + + for _, mount := range mounts { + if mount.HostPath == "" || mount.ContainerPath == "" { + return nil, fmt.Errorf("The hostPath or containerPath is empty in the CDI mount: %v", *mount) + } + + chosenOpts = []string{} + for _, opt := range mount.Options { + if !shared.ValueInSlice(opt, chosenOpts) { + chosenOpts = append(chosenOpts, opt) + } + } + + chosenOptsStr := strings.Join(chosenOpts, ",") + + // mount.HostPath can be a symbolic link, so we need to evaluate it + evaluatedHostPath, err := filepath.EvalSymlinks(mount.HostPath) + if err != nil { + return nil, err + } + + if evaluatedHostPath != mount.HostPath && mount.ContainerPath == strings.TrimPrefix(mount.HostPath, rootPath) { + indirectSymlinks = append(indirectSymlinks, SymlinkEntry{Target: strings.TrimPrefix(evaluatedHostPath, rootPath), Link: mount.ContainerPath}) + mount.ContainerPath = strings.TrimPrefix(evaluatedHostPath, rootPath) + } + + configDevices.BindMounts = append( + configDevices.BindMounts, + map[string]string{ + "type": "disk", + "source": evaluatedHostPath, + "path": mount.ContainerPath, + "raw.mount.options": chosenOptsStr, + }, + ) + } + + // If the user desires to run a nested docker container inside a LXD container, + // the Tegra CSV files also need to be mounted so that the NVIDIA docker runtime + // can be auto-enabled as 'csv' mode. + if cdiID.Vendor == NVIDIA && cdiID.Class == IGPU { + tegraCSVFilesCandidates := defaultNvidiaTegraCSVFiles(rootPath) + tegraCSVFiles := make([]string, 0) + for _, candidate := range tegraCSVFilesCandidates { + _, err := os.Stat(candidate) + if err == nil { + tegraCSVFiles = append(tegraCSVFiles, candidate) + } else if os.IsNotExist(err) { + continue + } else { + return nil, err + } + } + + if len(tegraCSVFiles) == 0 { + return nil, fmt.Errorf("No CSV files detected for Tegra iGPU") + } + + for _, tegraFile := range tegraCSVFiles { + configDevices.BindMounts = append( + configDevices.BindMounts, + map[string]string{ + "type": "disk", + "source": tegraFile, + "path": strings.TrimPrefix(tegraFile, rootPath), + "readonly": "true", + }, + ) + } + } + + return indirectSymlinks, nil +} + +// specHookToLXDCDIHook will translate a hook from a CDI spec into an entry in a `Hooks`. +// Some CDI hooks are not relevant for LXD and will be ignored. +func specHookToLXDCDIHook(hook *specs.Hook, hooks *Hooks, l logger.Logger) error { + if hook == nil { + l.Warn("CDI hook is nil") + return nil + } + + rootPath := "" + if shared.InSnap() { + rootPath = "/var/lib/snapd/hostfs" + } + + if len(hook.Args) < 3 { + return fmt.Errorf("Not enough arguments for CDI hook: %v", hook.Args) + } + + processCreateSymlinksHook := func(args []string) error { + // The list of arguments is either + // `--link :: --link :: ...` + // or `--link=:: --link=:: ...` + // and we need to handle both cases as they are both valid. + var targetWithLink string + for i := 0; i < len(args); i += 1 { + if args[i] == "--link" { + continue + } + + if strings.Contains(args[i], "=") { + // We can assume the arg is `--link=::` + splitted := strings.Split(args[i], "=") + if len(splitted) != 2 { + return fmt.Errorf("Invalid symlink arg %q", args[i]) + } + + targetWithLink = splitted[1] + } else { + // We can assume the arg is `::` + targetWithLink = args[i] + } + + entry := strings.Split(targetWithLink, "::") + if len(entry) != 2 { + return fmt.Errorf("Invalid symlink entry %q", targetWithLink) + } + + // `Link` is always an absolute path and `Target` (a `Link` points to a `Target`) is relative + // to the `Link` location in the CDI spec. A resolving operation will be needed to have the absolute + // path of the `Target` + hooks.Symlinks = append(hooks.Symlinks, SymlinkEntry{Target: strings.TrimPrefix(entry[0], rootPath), Link: strings.TrimPrefix(entry[1], rootPath)}) + } + + return nil + } + + processUpdateLdcacheHook := func(args []string) error { + // As above, the list of arguments is either + // `--folder --folder ...` + // or `--folder= --folder= ...` + // and we need to handle both cases as they are both valid. + var folder string + for i := 0; i < len(args); i += 1 { + if args[i] == "--folder" { + continue + } + + if strings.Contains(args[i], "=") { + // We can assume the arg is `--folder=` + splitted := strings.Split(args[i], "=") + if len(splitted) != 2 { + return fmt.Errorf("Invalid CDI folder arg %q", args[i]) + } + + folder = splitted[1] + } else { + // We can assume the arg is `` + folder = args[i] + } + + hooks.LDCacheUpdates = append(hooks.LDCacheUpdates, folder) + } + + return nil + } + + processHooks := map[string]func([]string) error{ + "create-symlinks": processCreateSymlinksHook, + "update-ldcache": processUpdateLdcacheHook, + } + + for i, arg := range hook.Args { + process, supported := processHooks[arg] + if supported { + if len(hook.Args) > i+1 { + // We pass in only the arguments, + // not the hook name which is not relevant in the process functions + return process(hook.Args[i+1:]) + } + } + } + + return nil +} + +// applyContainerEdits updates the configDevices and the hooks with CDI "container edits" +// (edits are user space libraries to mount and char device to pass to the container). +func applyContainerEdits(edits specs.ContainerEdits, configDevices *ConfigDevices, hooks *Hooks, existingMounts []*specs.Mount, l logger.Logger) ([]*specs.Mount, error) { + for _, d := range edits.DeviceNodes { + if d == nil { + l.Warn("One CDI DeviceNode is nil") + continue + } + + err := specDevToNativeDev(configDevices, *d) + if err != nil { + return nil, err + } + } + + for _, hook := range edits.Hooks { + err := specHookToLXDCDIHook(hook, hooks, l) + if err != nil { + return nil, err + } + } + + return append(existingMounts, edits.Mounts...), nil +} + +// GenerateFromCDI does several things: +// +// 1. It generates a CDI specification from a CDI ID and an instance. +// According the the specified 'vendor', 'class' and 'name' (this assembled triplet is called a fully-qualified CDI ID. We'll just call it ID in the context of this package), the CDI specification is generated. +// The CDI specification is a JSON-like format. It is divided into two parts: the 'specific device' configuration and the 'general device' configuration. +// - The 'specific device' configuration: this is a list of 'container edits' that can be added to the container runtime. +// According to the CDI ID (vendor, class, name), we only select the 'container edits' that matches the CDI ID. +// The 'container edits' are a list of device nodes, hooks and mounts that must be added to the container runtime. +// - The 'general device' configuration: this is a single 'container edits' entry runtime that must be passed to the container runtime in ant case. Which unix char devices need to be passed +// (e.g, special GPU memory controller device, etc.)? Which user space libraries need to be mounted (e.g, CUDA libraries for NVIDIA, etc.)? +// Which hooks need to be executed (e.g, symlinks to create, folder entries to add to ldcache, etc.))? +// In our case, these edits will be interpreted either as disk or unix char mounts passed to the container. +// The hooks will be centralized in a single resource file that will be read and executed as a LXC `lxc.hook.mount` hook, +// through LXD's `callhook` command. +// 2. We first process the 'specific device' configuration: we convert this information into a map of devices +// (keyed by their path given in the spec, it mapped to a map of device properties). We also collect the specific mounts (but we do not process them yet) and hooks. +// 3. We then process the 'general device' configuration in the same fashion. +// 4. Now we process all the mounts we collected from the spec in order to turn them into disk devices. +// This operations generate a side effect: it generates a list of indirect symlinks (see `specMountToNativeDev`) +// 5. Merge all the hooks (direct + indirect) into a single list of hooks. +func GenerateFromCDI(inst instance.Instance, cdiID ID, l logger.Logger) (*ConfigDevices, *Hooks, error) { + // 1. Generate the CDI specification + spec, err := generateSpec(cdiID, inst) + if err != nil { + return nil, nil, fmt.Errorf("Failed to generate CDI spec: %w", err) + } + + // Initialize the hooks as empty + hooks := &Hooks{ContainerRootFS: inst.RootfsPath()} + mounts := make([]*specs.Mount, 0) + configDevices := &ConfigDevices{UnixCharDevs: make([]map[string]string, 0), BindMounts: make([]map[string]string, 0)} + + // 2. Process the specific device configuration + for _, device := range spec.Devices { + if device.Name == cdiID.Name { + mounts, err = applyContainerEdits(device.ContainerEdits, configDevices, hooks, mounts, l) + if err != nil { + return nil, nil, err + } + + break + } + } + + // 3. Process general device configuration + mounts, err = applyContainerEdits(spec.ContainerEdits, configDevices, hooks, mounts, l) + if err != nil { + return nil, nil, err + } + + // 4. Process the mounts + indirectSymlinks, err := specMountToNativeDev(configDevices, cdiID, mounts) + if err != nil { + return nil, nil, err + } + + // 5. merge the indirectSymlinks to the list of symlinks to be create in the hooks + hooks.Symlinks = append(hooks.Symlinks, indirectSymlinks...) + return configDevices, hooks, nil +} + +// ReloadConfigDevicesFromDisk reads the paths to the CDI configuration devices file from the disk. +// This is useful in order to cache the CDI configuration devices file so that wee don't have to re-generate a CDI spec whhen stopping the container. +func ReloadConfigDevicesFromDisk(pathsToConfigDevicesFilePath string) (ConfigDevices, error) { + // Load the config devices file from the disk + pathsToCDIConfigDevicesFile, err := os.Open(pathsToConfigDevicesFilePath) + if err != nil { + return ConfigDevices{}, fmt.Errorf("Failed to open the paths to CDI conf file at %q: %w", pathsToConfigDevicesFilePath, err) + } + + defer pathsToCDIConfigDevicesFile.Close() + + configDevices := &ConfigDevices{} + err = json.NewDecoder(pathsToCDIConfigDevicesFile).Decode(configDevices) + if err != nil { + return ConfigDevices{}, fmt.Errorf("Failed to decode the paths to CDI conf file at %q: %w", pathsToConfigDevicesFilePath, err) + } + + return *configDevices, nil +} From 582127ecfeb23ea9c611790a69786f8c1df2c1fd Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Tue, 6 Aug 2024 18:42:56 +0200 Subject: [PATCH 144/169] lxd/device/gpu_physical: more explicit output values for `deviceNumStringToUint32` Signed-off-by: Gabriel Mougard --- lxd/device/gpu_physical.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/lxd/device/gpu_physical.go b/lxd/device/gpu_physical.go index 58302aeeb496..92d859f428d2 100644 --- a/lxd/device/gpu_physical.go +++ b/lxd/device/gpu_physical.go @@ -396,21 +396,21 @@ func (d *gpuPhysical) postStop() error { // deviceNumStringToUint32 converts a device number string (major:minor) into separare major and // minor uint32s. -func (d *gpuPhysical) deviceNumStringToUint32(devNum string) (uint32, uint32, error) { +func (d *gpuPhysical) deviceNumStringToUint32(devNum string) (major uint32, minor uint32, err error) { devParts := strings.SplitN(devNum, ":", 2) tmp, err := strconv.ParseUint(devParts[0], 10, 32) if err != nil { return 0, 0, err } - major := uint32(tmp) + major = uint32(tmp) tmp, err = strconv.ParseUint(devParts[1], 10, 32) if err != nil { return 0, 0, err } - minor := uint32(tmp) + minor = uint32(tmp) return major, minor, nil } From e6944c44bacd9080a3fe7c2ddb45788a95a1570c Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Mon, 29 Jul 2024 20:00:34 +0200 Subject: [PATCH 145/169] lxd/device/gpu_physical: Configure a GPU (physical) if CDI detected Signed-off-by: Gabriel Mougard --- lxd/device/gpu_physical.go | 309 ++++++++++++++++++++++++++++++++++++- 1 file changed, 305 insertions(+), 4 deletions(-) diff --git a/lxd/device/gpu_physical.go b/lxd/device/gpu_physical.go index 92d859f428d2..3348a5700cbd 100644 --- a/lxd/device/gpu_physical.go +++ b/lxd/device/gpu_physical.go @@ -1,6 +1,7 @@ package device import ( + "encoding/json" "fmt" "os" "path/filepath" @@ -10,11 +11,14 @@ import ( "golang.org/x/sys/unix" + "github.com/canonical/lxd/lxd/device/cdi" deviceConfig "github.com/canonical/lxd/lxd/device/config" pcidev "github.com/canonical/lxd/lxd/device/pci" + "github.com/canonical/lxd/lxd/idmap" "github.com/canonical/lxd/lxd/instance" "github.com/canonical/lxd/lxd/instance/instancetype" "github.com/canonical/lxd/lxd/resources" + "github.com/canonical/lxd/lxd/storage/filesystem" "github.com/canonical/lxd/lxd/util" "github.com/canonical/lxd/shared" ) @@ -98,10 +102,227 @@ func (d *gpuPhysical) Start() (*deviceConfig.RunConfig, error) { return d.startContainer() } +// startCDIDevices starts all the devices given in a CDI specification: +// * `unix-char` (representing the card and non-card devices) +// * `disk` (representing the mounts)). +func (d *gpuPhysical) startCDIDevices(configDevices cdi.ConfigDevices, runConf *deviceConfig.RunConfig) error { + srcFDHandlers := make([]*os.File, 0) + defer func() { + for _, f := range srcFDHandlers { + _ = f.Close() + } + }() + + for _, conf := range configDevices.UnixCharDevs { + if conf["source"] == "" { + return fmt.Errorf("The source of the unix-char device %v used for CDI is empty", conf) + } + + if conf["major"] == "" || conf["minor"] == "" { + return fmt.Errorf("The major or minor of the unix-char device %v used for CDI is empty", conf) + } + + major, err := strconv.ParseUint(conf["major"], 10, 32) + if err != nil { + return fmt.Errorf("Failed to parse major number %q when starting CDI device: %w", conf["major"], err) + } + + minor, err := strconv.ParseUint(conf["minor"], 10, 32) + if err != nil { + return fmt.Errorf("Failed to parse minor number %q when starting CDI device: %w", conf["minor"], err) + } + + // Here putting a `cdi.CDIUnixPrefix` prefix with 'd.name' as a device name will create an directory entry like: + // /devices//.. + // 'unixDeviceSetupCharNum' is already checking for dupe entries so we have no validation to do here. + err = unixDeviceSetupCharNum(d.state, d.inst.DevicesPath(), cdi.CDIUnixPrefix, d.name, conf, uint32(major), uint32(minor), conf["path"], false, runConf) + if err != nil { + return err + } + } + + // Create the devices directory if missing. + if !shared.PathExists(d.inst.DevicesPath()) { + err := os.Mkdir(d.inst.DevicesPath(), 0711) + if err != nil { + return err + } + } + + for _, conf := range configDevices.BindMounts { + if conf["source"] == "" { + return fmt.Errorf("The source of the disk device %v used for CDI is empty", conf) + } + + srcPath := shared.HostPath(conf["source"]) + destPath := conf["path"] + relativeDestPath := strings.TrimPrefix(destPath, "/") + + // This time, the created path will be like: + // /devices//.. + deviceName := filesystem.PathNameEncode(deviceJoinPath(cdi.CDIDiskPrefix, d.name, relativeDestPath)) + devPath := filepath.Join(d.inst.DevicesPath(), deviceName) + + ownerShift := deviceConfig.MountOwnerShiftNone + if idmap.CanIdmapMount(devPath, "") { + ownerShift = deviceConfig.MountOwnerShiftDynamic + } + + options := []string{"bind"} + mntOptions := shared.SplitNTrimSpace(conf["raw.mount.options"], ",", -1, true) + fsName := "none" + + fileInfo, err := os.Stat(srcPath) + if err != nil { + return fmt.Errorf("Failed accessing source path %q: %w", srcPath, err) + } + + fileMode := fileInfo.Mode() + isFile := false + if !fileMode.IsDir() { + isFile = true + } + + f, err := os.OpenFile(srcPath, unix.O_PATH|unix.O_CLOEXEC, 0) + if err != nil { + return fmt.Errorf("Failed opening source path %q: %w", srcPath, err) + } + + srcPath = fmt.Sprintf("/proc/self/fd/%d", f.Fd()) + srcFDHandlers = append(srcFDHandlers, f) + + // Clean any existing entry. + if shared.PathExists(devPath) { + err := os.Remove(devPath) + if err != nil { + return err + } + } + + // Create the mount point. + if isFile { + f, err := os.Create(devPath) + if err != nil { + return err + } + + srcFDHandlers = append(srcFDHandlers, f) + } else { + err := os.Mkdir(devPath, 0700) + if err != nil { + return err + } + } + + // Mount the fs. + err = DiskMount(srcPath, devPath, false, "", mntOptions, fsName) + if err != nil { + return err + } + + if isFile { + options = append(options, "create=file") + } else { + options = append(options, "create=dir") + } + + runConf.Mounts = append(runConf.Mounts, deviceConfig.MountEntryItem{ + DevName: deviceName, + DevPath: devPath, + TargetPath: relativeDestPath, + FSType: "none", + Opts: options, + OwnerShift: ownerShift, + }) + + runConf.PostHooks = append(runConf.PostHooks, func() error { + err := unix.Unmount(devPath, unix.MNT_DETACH) + if err != nil { + return err + } + + return nil + }) + } + + // Serialize the config devices inside the devices directory. + f, err := os.Create(d.generateCDIConfigDevicesFilePath()) + if err != nil { + return fmt.Errorf("Could not create the CDI config devices file: %w", err) + } + + defer f.Close() + err = json.NewEncoder(f).Encode(configDevices) + if err != nil { + return fmt.Errorf("Could not write to the CDI config devices file: %w", err) + } + + return nil +} + +func (d *gpuPhysical) generateCDIHooksFilePath() string { + return filepath.Join(d.inst.DevicesPath(), fmt.Sprintf("%s%s", d.name, cdi.CDIHooksFileSuffix)) +} + +func (d *gpuPhysical) generateCDIConfigDevicesFilePath() string { + return filepath.Join(d.inst.DevicesPath(), fmt.Sprintf("%s%s", d.name, cdi.CDIConfigDevicesFileSuffix)) +} + // startContainer detects the requested GPU devices and sets up unix-char devices. // Returns RunConfig populated with mount info required to pass the unix-char devices into the container. func (d *gpuPhysical) startContainer() (*deviceConfig.RunConfig, error) { runConf := deviceConfig.RunConfig{} + if d.config["id"] != "" { + // Check if the id of the device match a CDI format. + cdiID, err := cdi.ToCDI(d.config["id"]) + if err != nil { + return nil, err + } + + // The cdiID can be empty if the provided ID doesn't conform to the CDI (Container Device Interface) format, + // and this will not be treated as an error, as we allow the program to continue processing. + // The ID might still be valid in other contexts, such as a DRM card ID. + // This flexibility allows for both CDI-compliant device specifications and legacy device identifiers. + if !cdiID.Empty() { + if cdiID.Class == cdi.MIG { + return nil, fmt.Errorf(`MIG GPU notation detected for a "physical" gputype device. Choose a "mig" gputype device instead.`) + } + + configDevices, hooks, err := cdi.GenerateFromCDI(d.inst, cdiID, d.logger) + if err != nil { + return nil, err + } + + // Start the devices needed by the CDI specification. + err = d.startCDIDevices(*configDevices, &runConf) + if err != nil { + return nil, err + } + + // Persist the hooks to be run on a `lxc.hook.mount` LXC hook. + hooksFile := d.generateCDIHooksFilePath() + f, err := os.Create(hooksFile) + if err != nil { + return nil, fmt.Errorf("Could not create the CDI hooks file: %w", err) + } + + defer f.Close() + err = json.NewEncoder(f).Encode(hooks) + if err != nil { + return nil, fmt.Errorf("Could not write to the CDI hooks file: %w", err) + } + + runConf.GPUDevice = append(runConf.GPUDevice, + []deviceConfig.RunConfigItem{ + {Key: cdi.CDIHookDefinitionKey, Value: filepath.Base(hooksFile)}, + }...) + + return &runConf, nil + } + } + + // If we use a non-CDI approach, we proceeds with the normal GPU detection approach using the provided DRM card id + // or PCI-e bus address. gpus, err := resources.GetGPU() if err != nil { return nil, err @@ -342,6 +563,41 @@ func (d *gpuPhysical) pciDeviceDriverOverrideIOMMU(pciDev pcidev.Device, driverO return nil } +// stopCDIDevices reads the configDevices and remove potential unix device and unmounts disk mounts. +func (d *gpuPhysical) stopCDIDevices(configDevices cdi.ConfigDevices, runConf *deviceConfig.RunConfig) error { + // Remove ALL the underlying unix-char dev entries created when the CDI device started. + err := unixDeviceRemove(d.inst.DevicesPath(), cdi.CDIUnixPrefix, d.name, "", runConf) + if err != nil { + return err + } + + for _, conf := range configDevices.BindMounts { + relativeDestPath := strings.TrimPrefix(conf["path"], "/") + devPath := filepath.Join(d.inst.DevicesPath(), filesystem.PathNameEncode(deviceJoinPath(cdi.CDIDiskPrefix, d.name, relativeDestPath))) + runConf.PostHooks = append(runConf.PostHooks, func() error { + // Clean any existing device mount entry. Should occur first before custom volume unmounts. + err := DiskMountClear(devPath) + if err != nil { + return err + } + + return nil + }) + + // The disk device doesn't exist do nothing. + if !shared.PathExists(devPath) { + return nil + } + + // Request an unmount of the device inside the instance. + runConf.Mounts = append(runConf.Mounts, deviceConfig.MountEntryItem{ + TargetPath: relativeDestPath, + }) + } + + return nil +} + // Stop is run when the device is removed from the instance. func (d *gpuPhysical) Stop() (*deviceConfig.RunConfig, error) { runConf := deviceConfig.RunConfig{ @@ -349,7 +605,28 @@ func (d *gpuPhysical) Stop() (*deviceConfig.RunConfig, error) { } if d.inst.Type() == instancetype.Container { - err := unixDeviceRemove(d.inst.DevicesPath(), "unix", d.name, "", &runConf) + cdiID, err := cdi.ToCDI(d.config["id"]) + if err != nil { + return nil, err + } + + if !cdiID.Empty() { + // This is more efficient than GenerateFromCDI as we don't need to re-generate a CDI specification to parse it again. + configDevices, err := cdi.ReloadConfigDevicesFromDisk(d.generateCDIConfigDevicesFilePath()) + if err != nil { + return nil, err + } + + err = d.stopCDIDevices(configDevices, &runConf) + if err != nil { + return nil, err + } + + return &runConf, nil + } + + // In case of an 'id' not being CDI-compliant (e.g, a legacy DRM card id), we remove unix devices only as usual. + err = unixDeviceRemove(d.inst.DevicesPath(), "unix", d.name, "", &runConf) if err != nil { return nil, err } @@ -371,11 +648,35 @@ func (d *gpuPhysical) postStop() error { v := d.volatileGet() if d.inst.Type() == instancetype.Container { - // Remove host files for this device. - err := unixDeviceDeleteFiles(d.state, d.inst.DevicesPath(), "unix", d.name, "") + cdiID, err := cdi.ToCDI(d.config["id"]) if err != nil { - return fmt.Errorf("Failed to delete files for device '%s': %w", d.name, err) + return err } + + if !cdiID.Empty() { + err = unixDeviceDeleteFiles(d.state, d.inst.DevicesPath(), cdi.CDIUnixPrefix, d.name, "") + if err != nil { + return fmt.Errorf("Failed to delete files for CDI device '%s': %w", d.name, err) + } + + // Also remove the JSON files that were used to store the CDI related information. + err = os.Remove(d.generateCDIHooksFilePath()) + if err != nil { + return fmt.Errorf("Failed to delete CDI hooks file for device %q: %w", d.name, err) + } + + err = os.Remove(d.generateCDIConfigDevicesFilePath()) + if err != nil { + return fmt.Errorf("Failed to delete CDI paths to conf file for device %q: %w", d.name, err) + } + } else { + err = unixDeviceDeleteFiles(d.state, d.inst.DevicesPath(), "unix", d.name, "") + if err != nil { + return fmt.Errorf("Failed to delete files for device %q: %w", d.name, err) + } + } + + return err } // If VM physical pass through, unbind from vfio-pci and bind back to host driver. From 37b4cd360cefe49644afde039356468eba8e8a28 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Wed, 7 Aug 2024 16:11:45 +0200 Subject: [PATCH 146/169] lxd/instance/drivers: Make `removeUnixDevices` a driver_common function Signed-off-by: Gabriel Mougard --- lxd/instance/drivers/driver_common.go | 32 +++++++++++++++++++++++++++ lxd/instance/drivers/driver_lxc.go | 30 ------------------------- lxd/instance/drivers/driver_qemu.go | 29 ------------------------ 3 files changed, 32 insertions(+), 59 deletions(-) diff --git a/lxd/instance/drivers/driver_common.go b/lxd/instance/drivers/driver_common.go index 540357150f3f..8476e564c5ea 100644 --- a/lxd/instance/drivers/driver_common.go +++ b/lxd/instance/drivers/driver_common.go @@ -5,6 +5,7 @@ import ( "errors" "fmt" "net/http" + "os" "path/filepath" "sort" "strconv" @@ -1670,3 +1671,34 @@ func (d *common) deleteSnapshots(deleteFunc func(snapInst instance.Instance) err return nil } + +// removeUnixDevices reads the devices path and remove all unix devices. +func (d *common) removeUnixDevices() error { + // Check that we indeed have devices to remove + if !shared.PathExists(d.DevicesPath()) { + return nil + } + + // Load the directory listing + dents, err := os.ReadDir(d.DevicesPath()) + if err != nil { + return err + } + + // Go through all the unix devices + for _, f := range dents { + // Skip non-Unix devices + if !strings.HasPrefix(f.Name(), "forkmknod.unix.") && !strings.HasPrefix(f.Name(), "unix.") && !strings.HasPrefix(f.Name(), device.IBDevPrefix) { + continue + } + + // Remove the entry + devicePath := filepath.Join(d.DevicesPath(), f.Name()) + err := os.Remove(devicePath) + if err != nil { + d.logger.Error("Failed removing unix device", logger.Ctx{"err": err, "path": devicePath}) + } + } + + return nil +} diff --git a/lxd/instance/drivers/driver_lxc.go b/lxd/instance/drivers/driver_lxc.go index b6a582d79951..588d89584446 100644 --- a/lxd/instance/drivers/driver_lxc.go +++ b/lxd/instance/drivers/driver_lxc.go @@ -7859,36 +7859,6 @@ func (d *lxc) InsertSeccompUnixDevice(prefix string, m deviceConfig.Device, pid return d.insertMountLXD(devPath, tgtPath, "none", unix.MS_BIND, pid, idmap.IdmapStorageNone) } -func (d *lxc) removeUnixDevices() error { - // Check that we indeed have devices to remove - if !shared.PathExists(d.DevicesPath()) { - return nil - } - - // Load the directory listing - dents, err := os.ReadDir(d.DevicesPath()) - if err != nil { - return err - } - - // Go through all the unix devices - for _, f := range dents { - // Skip non-Unix devices - if !strings.HasPrefix(f.Name(), "forkmknod.unix.") && !strings.HasPrefix(f.Name(), "unix.") && !strings.HasPrefix(f.Name(), "infiniband.unix.") { - continue - } - - // Remove the entry - devicePath := filepath.Join(d.DevicesPath(), f.Name()) - err := os.Remove(devicePath) - if err != nil { - d.logger.Error("Failed removing unix device", logger.Ctx{"err": err, "path": devicePath}) - } - } - - return nil -} - // FillNetworkDevice takes a nic or infiniband device type and enriches it with automatically // generated name and hwaddr properties if these are missing from the device. func (d *lxc) FillNetworkDevice(name string, m deviceConfig.Device) (deviceConfig.Device, error) { diff --git a/lxd/instance/drivers/driver_qemu.go b/lxd/instance/drivers/driver_qemu.go index 13180586f140..c96630458e8d 100644 --- a/lxd/instance/drivers/driver_qemu.go +++ b/lxd/instance/drivers/driver_qemu.go @@ -5940,35 +5940,6 @@ func (d *qemu) updateMemoryLimit(newLimit string) error { return fmt.Errorf("Failed setting memory to %dMiB (currently %dMiB) as it was taking too long", newSizeMB, curSizeMB) } -func (d *qemu) removeUnixDevices() error { - // Check that we indeed have devices to remove. - if !shared.PathExists(d.DevicesPath()) { - return nil - } - - // Load the directory listing. - dents, err := os.ReadDir(d.DevicesPath()) - if err != nil { - return err - } - - for _, f := range dents { - // Skip non-Unix devices. - if !strings.HasPrefix(f.Name(), "forkmknod.unix.") && !strings.HasPrefix(f.Name(), "unix.") && !strings.HasPrefix(f.Name(), "infiniband.unix.") { - continue - } - - // Remove the entry - devicePath := filepath.Join(d.DevicesPath(), f.Name()) - err := os.Remove(devicePath) - if err != nil { - d.logger.Error("Failed removing unix device", logger.Ctx{"err": err, "path": devicePath}) - } - } - - return nil -} - func (d *qemu) removeDiskDevices() error { // Check that we indeed have devices to remove. if !shared.PathExists(d.DevicesPath()) { From 650879b1ba98e7ba6c6e2d44c0d52dba717c95d2 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Thu, 6 Jun 2024 17:50:33 +0200 Subject: [PATCH 147/169] lxd/instance/drivers/driver_lxc: Configure LXC to use LXD's `startmountns` callhook if CDI devices have been configured Signed-off-by: Gabriel Mougard --- lxd/instance/drivers/driver_lxc.go | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/lxd/instance/drivers/driver_lxc.go b/lxd/instance/drivers/driver_lxc.go index 588d89584446..f5e07f3b17ae 100644 --- a/lxd/instance/drivers/driver_lxc.go +++ b/lxd/instance/drivers/driver_lxc.go @@ -41,6 +41,7 @@ import ( "github.com/canonical/lxd/lxd/db/cluster" "github.com/canonical/lxd/lxd/db/operationtype" "github.com/canonical/lxd/lxd/device" + "github.com/canonical/lxd/lxd/device/cdi" deviceConfig "github.com/canonical/lxd/lxd/device/config" "github.com/canonical/lxd/lxd/device/nictype" "github.com/canonical/lxd/lxd/idmap" @@ -2053,6 +2054,7 @@ func (d *lxc) startCommon() (string, []func() error, error) { // Create the devices nicID := -1 nvidiaDevices := []string{} + cdiConfigFiles := []string{} sortedDevices := d.expandedDevices.Sorted() startDevices := make([]device.Device, 0, len(sortedDevices)) @@ -2223,6 +2225,10 @@ func (d *lxc) startCommon() (string, []func() error, error) { if entry.Key == device.GPUNvidiaDeviceKey { nvidiaDevices = append(nvidiaDevices, entry.Value) } + + if entry.Key == cdi.CDIHookDefinitionKey { + cdiConfigFiles = append(cdiConfigFiles, entry.Value) + } } } } @@ -2235,6 +2241,13 @@ func (d *lxc) startCommon() (string, []func() error, error) { } } + if len(cdiConfigFiles) > 0 { + err = lxcSetConfigItem(cc, "lxc.hook.mount", fmt.Sprintf("%s callhook %s %s %s startmountns --devicesRootFolder %s %s", d.state.OS.ExecPath, shared.VarPath(""), strconv.Quote(d.Project().Name), strconv.Quote(d.Name()), d.DevicesPath(), strings.Join(cdiConfigFiles, " "))) + if err != nil { + return "", nil, fmt.Errorf("Unable to set the startmountns callhook to process CDI hooks files (%q) for instance %q in project %q: %w", strings.Join(cdiConfigFiles, ","), d.Name(), d.Project().Name, err) + } + } + // Load the LXC raw config. err = d.loadRawLXCConfig(cc) if err != nil { From 1ce19732220e4a1a1d8f3b01f510041a8677c734 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Sun, 28 Jul 2024 18:27:11 +0200 Subject: [PATCH 148/169] lxd: Setup the `startmountns` callhook command to react to `lxc.hook.mount` for executing the CDI hooks Signed-off-by: Gabriel Mougard --- lxd/main_callhook.go | 200 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 198 insertions(+), 2 deletions(-) diff --git a/lxd/main_callhook.go b/lxd/main_callhook.go index 8c3de078b949..e0b5e955e67c 100644 --- a/lxd/main_callhook.go +++ b/lxd/main_callhook.go @@ -1,21 +1,29 @@ package main import ( + "bufio" + "encoding/json" + "errors" "fmt" "net/url" "os" + "os/exec" "path/filepath" + "strings" "time" "github.com/spf13/cobra" "github.com/canonical/lxd/client" + "github.com/canonical/lxd/lxd/device/cdi" ) type cmdCallhook struct { - global *cmdGlobal + global *cmdGlobal + devicesRootFolder string } +// Command returns a cobra command for `lxd callhook`. func (c *cmdCallhook) Command() *cobra.Command { cmd := &cobra.Command{} cmd.Use = "callhook [| ] " @@ -24,14 +32,175 @@ func (c *cmdCallhook) Command() *cobra.Command { Call container lifecycle hook in LXD This internal command notifies LXD about a container lifecycle event - (start, stopns, stop, restart) and blocks until LXD has processed it. + (start, startmountns, stopns, stop, restart) and blocks until LXD has processed it. ` cmd.RunE = c.Run cmd.Hidden = true + // devicesRootFolder is used to specify where to look for CDI config device files. + cmd.Flags().StringVar(&c.devicesRootFolder, "devicesRootFolder", "", "Root folder for CDI devices") + return cmd } +// resolveTargetRelativeToLink converts a target relative to a link path into an absolute path. +func resolveTargetRelativeToLink(link string, target string) (string, error) { + if !filepath.IsAbs(link) { + return "", fmt.Errorf("The link must be an absolute path: %q (target: %q)", link, target) + } + + if filepath.IsAbs(target) { + return target, nil + } + + linkDir := filepath.Dir(link) + absTarget := filepath.Join(linkDir, target) + cleanPath := filepath.Clean(absTarget) + absPath, err := filepath.Abs(cleanPath) + if err != nil { + return "", err + } + + return absPath, nil +} + +// customCDILinkerConfFile is the name of the linker conf file we will write to +// inside the container. The `00-lxdcdi` prefix is chosen to ensure that these libraries have +// a higher precedence than other libraries on the system. +var customCDILinkerConfFile = "00-lxdcdi.conf" + +// applyCDIHooksToContainer is called before the container has started but after the container namespace has been setup, +// and is used whenever CDI devices are added to a container and where symlinks and linker cache entries need to be created. +// These entries are listed in a 'CDI hooks file' located at `hooksFilePath`. +func applyCDIHooksToContainer(devicesRootFolder string, hooksFilePath string) error { + hookFile, err := os.Open(filepath.Join(devicesRootFolder, hooksFilePath)) + if err != nil { + return fmt.Errorf("Failed to open the CDI hooks file at %q: %w", hooksFilePath, err) + } + + defer hookFile.Close() + + hooks := &cdi.Hooks{} + err = json.NewDecoder(hookFile).Decode(hooks) + if err != nil { + return fmt.Errorf("Failed to decode the CDI hooks file at %q: %w\n", hooksFilePath, err) + } + + fmt.Println("CDI Hooks file loaded:") + prettyHooks, err := json.MarshalIndent(hooks, "", " ") + if err != nil { + return err + } + + containerRootFSMount := os.Getenv("LXC_ROOTFS_MOUNT") + if containerRootFSMount == "" { + return fmt.Errorf("LXC_ROOTFS_MOUNT is empty") + } + + fmt.Println(string(prettyHooks)) + + // Creating the symlinks + for _, symlink := range hooks.Symlinks { + // Resolve hook link from target + absTarget, err := resolveTargetRelativeToLink(symlink.Link, symlink.Target) + if err != nil { + return fmt.Errorf("Failed to resolve a CDI symlink: %w\n", err) + } + + // Try to create the directory if it doesn't exist + err = os.MkdirAll(filepath.Dir(filepath.Join(containerRootFSMount, symlink.Link)), 0755) + if err != nil { + return fmt.Errorf("Failed to create the directory for the CDI symlink: %w\n", err) + } + + // Create the symlink + err = os.Symlink(absTarget, filepath.Join(containerRootFSMount, symlink.Link)) + if err != nil { + if !os.IsExist(err) { + return fmt.Errorf("Failed to create the CDI symlink: %w\n", err) + } + + fmt.Printf("Symlink not created because link %q already exists for target %q\n", symlink.Link, absTarget) + } + } + + // Updating the linker cache + l := len(hooks.LDCacheUpdates) + if l > 0 { + ldConfFilePath := fmt.Sprintf("%s/etc/ld.so.conf.d/%s", containerRootFSMount, customCDILinkerConfFile) + _, err = os.Stat(ldConfFilePath) + if err == nil { + // The file already exists. Read it first, analyze its entries + // and add the ones that are not already there. + ldConfFile, err := os.OpenFile(ldConfFilePath, os.O_APPEND|os.O_RDWR, 0644) + if err != nil { + return fmt.Errorf("Failed to open the ld.so.conf file at %q: %w\n", ldConfFilePath, err) + } + + existingLinkerEntries := make(map[string]bool) + scanner := bufio.NewScanner(ldConfFile) + for scanner.Scan() { + existingLinkerEntries[strings.TrimSpace(scanner.Text())] = true + } + + fmt.Printf("Existing linker entries: %v\n", existingLinkerEntries) + for _, update := range hooks.LDCacheUpdates { + if !existingLinkerEntries[update] { + fmt.Printf("Adding linker entry: %s\n", update) + _, err = fmt.Fprintln(ldConfFile, update) + if err != nil { + ldConfFile.Close() + return fmt.Errorf("Failed to write to the linker conf file at %q: %w\n", ldConfFilePath, err) + } + + existingLinkerEntries[update] = true + } + } + + ldConfFile.Close() + } else if errors.Is(err, os.ErrNotExist) { + // The file does not exist. We simply create it with our entries. + ldConfFile, err := os.OpenFile(ldConfFilePath, os.O_CREATE|os.O_WRONLY, 0644) + if err != nil { + return fmt.Errorf("Failed to create the linker conf file at %q: %w\n", ldConfFilePath, err) + } + + for _, update := range hooks.LDCacheUpdates { + fmt.Printf("Adding linker entry: %s\n", update) + _, err = fmt.Fprintln(ldConfFile, update) + if err != nil { + ldConfFile.Close() + return fmt.Errorf("Failed to write to the linker conf file at %q: %w\n", ldConfFilePath, err) + } + } + + ldConfFile.Close() + } else { + return fmt.Errorf("Could not stat the linker conf file to add CDI linker entries at %q: %w\n", ldConfFilePath, err) + } + } + + // Then remove the linker cache and regenerate it + linkerCachePath := filepath.Join(containerRootFSMount, "/etc/ld.so.cache") + err = os.Remove(linkerCachePath) + if err != nil { + if !os.IsNotExist(err) { + return fmt.Errorf("Failed to remove the ld.so.cache file: %w\n", err) + } + + fmt.Printf("Linker cache not found in %q, skipping removal\n", linkerCachePath) + } + + // Run `ldconfig` on the HOST (but targeting the container rootFS) to reduce the risk of running untrusted code in the container. + err = exec.Command("/sbin/ldconfig", "-r", containerRootFSMount).Run() + if err != nil { + return fmt.Errorf("Failed to run ldconfig in the container rootfs: %w\n", err) + } + + return nil +} + +// Run executes the `lxd callhook` command. func (c *cmdCallhook) Run(cmd *cobra.Command, args []string) error { // Quick checks. if len(args) < 2 { @@ -49,6 +218,7 @@ func (c *cmdCallhook) Run(cmd *cobra.Command, args []string) error { var projectName string var instanceRef string var hook string + var cdiHooksFiles []string // Used for startmountns hook only. if len(args) == 3 { instanceRef = args[1] @@ -57,6 +227,12 @@ func (c *cmdCallhook) Run(cmd *cobra.Command, args []string) error { projectName = args[1] instanceRef = args[2] hook = args[3] + } else if len(args) >= 5 { + projectName = args[1] + instanceRef = args[2] + hook = args[3] + cdiHooksFiles = make([]string, len(args[4:])) + copy(cdiHooksFiles, args[4:]) } target := "" @@ -66,6 +242,26 @@ func (c *cmdCallhook) Run(cmd *cobra.Command, args []string) error { return fmt.Errorf("This must be run as root") } + if hook == "startmountns" { + if len(cdiHooksFiles) == 0 { + return fmt.Errorf("Missing required CDI hooks files argument") + } + + if c.devicesRootFolder == "" { + return fmt.Errorf("Missing required --devicesRootFolder flag") + } + + var err error + for _, cdiHooksFile := range cdiHooksFiles { + err = applyCDIHooksToContainer(c.devicesRootFolder, cdiHooksFile) + if err != nil { + return err + } + } + + return nil + } + // Connect to LXD. socket := os.Getenv("LXD_SOCKET") if socket == "" { From db5ee3e3c82f48d9ca3202ad5975c283379b461d Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Wed, 7 Aug 2024 13:36:38 +0200 Subject: [PATCH 149/169] lxd: Remove useless `break` statement in main_callhook command In a select statement, only one case is executed when a channel operation succeeds so once a case is selected and its associated code block is executed, the select statement automatically terminates (there's no fall-through behavior like in a switch statement). So when the response case is selected (i.e., a value is received from the channel), the code inside that case is executed, and then the select statement naturally completes. The break statement here doesn't break out of any additional loop or switch statement; it's just breaking out of the select, which would happen anyway. Signed-off-by: Gabriel Mougard --- lxd/main_callhook.go | 1 - 1 file changed, 1 deletion(-) diff --git a/lxd/main_callhook.go b/lxd/main_callhook.go index e0b5e955e67c..c9a8a3ef712a 100644 --- a/lxd/main_callhook.go +++ b/lxd/main_callhook.go @@ -311,7 +311,6 @@ func (c *cmdCallhook) Run(cmd *cobra.Command, args []string) error { return err } - break case <-time.After(30 * time.Second): return fmt.Errorf("Hook didn't finish within 30s") } From 37302501f315e5488f2dbb3c82ec73006be5b7d6 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Thu, 6 Jun 2024 18:46:54 +0200 Subject: [PATCH 150/169] lxd-metadata: update metadata Signed-off-by: Gabriel Mougard --- doc/metadata.txt | 8 +++++++- lxd/metadata/configuration.json | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/doc/metadata.txt b/doc/metadata.txt index a17e5b63f031..0ab9c296d8fa 100644 --- a/doc/metadata.txt +++ b/doc/metadata.txt @@ -275,9 +275,15 @@ You can omit the `MIG-` prefix when specifying this option. ``` ```{config:option} id device-gpu-physical-device-conf -:shortdesc: "DRM card ID of the GPU device" +:shortdesc: "ID of the GPU device" :type: "string" +The ID can either be the DRM card ID of the GPU device (container or VM) or a fully-qualified Container Device Interface (CDI) name (container only). +Here are some examples of fully-qualified CDI names: +- `nvidia.com/gpu=0`: Instructs LXD to operate a discrete GPU (dGPU) pass-through of brand NVIDIA with the first discovered GPU on your system. You can use the `nvidia-smi` tool on your host to find out which identifier to use. +- `nvidia.com/gpu=1833c8b5-9aa0-5382-b784-68b7e77eb185`: Instructs LXD to operate a discrete GPU (dGPU) pass-through of brand NVIDIA with a given GPU unique identifier. This identifier should also appear with `nvidia-smi -L`. +- `nvidia.com/igpu=all`: Instructs LXD to pass all the host integrated GPUs (iGPU) of brand NVIDIA. The concept of an index does not currently map to iGPUs. It is possible to list them with the `nvidia-smi -L` command. A special `nvgpu` mention should appear in the generated list to indicate a device to be an iGPU. +- `nvidia.com/gpu=all`: Instructs LXD to pass all the host GPUs of brand NVIDIA through to the container. ``` ```{config:option} mode device-gpu-physical-device-conf diff --git a/lxd/metadata/configuration.json b/lxd/metadata/configuration.json index 878454680d28..08e7027199e9 100644 --- a/lxd/metadata/configuration.json +++ b/lxd/metadata/configuration.json @@ -315,8 +315,8 @@ }, { "id": { - "longdesc": "", - "shortdesc": "DRM card ID of the GPU device", + "longdesc": "The ID can either be the DRM card ID of the GPU device (container or VM) or a fully-qualified Container Device Interface (CDI) name (container only).\nHere are some examples of fully-qualified CDI names:\n\n- `nvidia.com/gpu=0`: Instructs LXD to operate a discrete GPU (dGPU) pass-through of brand NVIDIA with the first discovered GPU on your system. You can use the `nvidia-smi` tool on your host to find out which identifier to use.\n- `nvidia.com/gpu=1833c8b5-9aa0-5382-b784-68b7e77eb185`: Instructs LXD to operate a discrete GPU (dGPU) pass-through of brand NVIDIA with a given GPU unique identifier. This identifier should also appear with `nvidia-smi -L`.\n- `nvidia.com/igpu=all`: Instructs LXD to pass all the host integrated GPUs (iGPU) of brand NVIDIA. The concept of an index does not currently map to iGPUs. It is possible to list them with the `nvidia-smi -L` command. A special `nvgpu` mention should appear in the generated list to indicate a device to be an iGPU.\n- `nvidia.com/gpu=all`: Instructs LXD to pass all the host GPUs of brand NVIDIA through to the container.", + "shortdesc": "ID of the GPU device", "type": "string" } }, From 2421c341e07f5219c45c130de3959f814fbcf733 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Fri, 21 Jun 2024 11:29:18 +0200 Subject: [PATCH 151/169] doc: Add documentation on how to add a GPU with CDI mode Signed-off-by: Gabriel Mougard --- doc/.custom_wordlist.txt | 12 ++ .../container_gpu_passthrough_with_docker.md | 152 ++++++++++++++++++ doc/instances.md | 10 ++ doc/reference/devices_gpu.md | 16 ++ 4 files changed, 190 insertions(+) create mode 100644 doc/howto/container_gpu_passthrough_with_docker.md diff --git a/doc/.custom_wordlist.txt b/doc/.custom_wordlist.txt index 6935b12e4187..6055125ae8c8 100644 --- a/doc/.custom_wordlist.txt +++ b/doc/.custom_wordlist.txt @@ -25,6 +25,7 @@ BPF Btrfs bugfix bugfixes +CDI CentOS Ceph CephFS @@ -46,6 +47,7 @@ CSM CSV CUDA dataset +dGPU DCO dereferenced DHCP @@ -96,6 +98,8 @@ idmap idmapped idmaps IdP +iGPU +iGPUs incrementing InfiniBand init @@ -139,6 +143,7 @@ MicroCloud MII MinIO MITM +MNIST MTU Mullvad multicast @@ -152,7 +157,10 @@ NIC NICs NUMA NVMe +NVML NVRAM +NVIDIA +OCI OData OIDC OpenFGA @@ -207,6 +215,7 @@ SATA scalable scriptlet SDC +SDK SDN SDS SDT @@ -223,6 +232,7 @@ SKBPRIO SLAAC SMTP Snapcraft +SoC Solaris SPAs SPL @@ -256,6 +266,8 @@ sysfs syslog Tbit TCP +TensorRT +Tegra TiB Tibit TinyPNG diff --git a/doc/howto/container_gpu_passthrough_with_docker.md b/doc/howto/container_gpu_passthrough_with_docker.md new file mode 100644 index 000000000000..313bee27cdf3 --- /dev/null +++ b/doc/howto/container_gpu_passthrough_with_docker.md @@ -0,0 +1,152 @@ +(container-gpu-passthrough-with-docker)= +# How to pass an NVIDIA GPU to a container + +If you have an NVIDIA GPU (either discrete (dGPU) or integrated (iGPU)) and you want to pass the runtime libraries and configuration installed on your host to your container, you should add a {ref}`LXD GPU device `. +Consider the following scenario: + +Your host is an NVIDIA single board computer that has a Tegra SoC with an iGPU, and you have the Tegra SDK installed on the host. You want to create a LXD container and run an application inside the container using the iGPU as a compute backend. You want to run this application inside a Docker container (or another OCI-compliant runtime). +To achieve this, complete the following steps: + +1. Running a Docker container inside a LXD container can potentially consume a lot of disk space if the outer container is not well configured. Here are two options you can use to optimize the consumed disk space: + + - Either you create a BTRFS storage pool to back the LXD container so that the Docker image later used does not use the VFS storage driver which is very space inefficient, then you initialize the LXD container with {config:option}`instance-security:security.nesting` enabled (needed for running a Docker container inside a LXD container) and using the BTRFS storage pool: + + lxc storage create p1 btrfs size=15GiB + lxc init ubuntu:24.04 t1 --config security.nesting=true -s p1 + + - Or you use the `overlayFS` storage driver in Docker but you need to specify the following syscall interceptions, still with the {config:option}`instance-security:security.nesting` enabled: + + lxc init ubuntu:24.04 t1 --config security.nesting=true --config security.syscalls.intercept.mknod=true --config security.syscalls.intercept.setxattr=true + +1. Add the GPU device to your container: + + - If you want to do an iGPU pass-through: + + lxc config device add t1 igpu0 gpu gputype=physical id=nvidia.com/igpu=0 + + - If you want to do a dGPU pass-through: + + lxc config device add t1 gpu0 gpu gputype=physical id=nvidia.com/gpu=0 + +After adding the device, let's try to run a basic [MNIST](https://en.wikipedia.org/wiki/MNIST_database) inference job inside our LXD container. + +1. Create a `cloud-init` script that installs the Docker runtime, the [NVIDIA Container Toolkit](https://github.com/NVIDIA/nvidia-container-toolkit), and a script to run a test [TensorRT](https://github.com/NVIDIA/TensorRT) workload: + + #cloud-config + package_update: true + write_files: + # `run_tensorrt.sh` compiles samples TensorRT applications and run the the `sample_onnx_mnist` program which loads an ONNX model into the TensorRT inference server and execute a digit recognition job. + - path: /root/run_tensorrt.sh + permissions: "0755" + owner: root:root + content: | + #!/bin/bash + echo "OS release,Kernel version" + (. /etc/os-release; echo "${PRETTY_NAME}"; uname -r) | paste -s -d, + echo + nvidia-smi -q + echo + exec bash -o pipefail -c " + cd /workspace/tensorrt/samples + make -j4 + cd /workspace/tensorrt/bin + ./sample_onnx_mnist + retstatus=\${PIPESTATUS[0]} + echo \"Test exited with status code: \${retstatus}\" >&2 + exit \${retstatus} + " + runcmd: + # Install Docker to run the AI workload + - curl -fsSL https://get.docker.com -o install-docker.sh + - sh install-docker.sh --version 24.0 + # The following installs the NVIDIA container toolkit + # as explained in the official doc website: https://docs.nvidia.com/datacenter/cloud-native/container-toolkit/latest/install-guide.html#installing-with-apt + - curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | gpg + --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg + - curl -fsSL https://nvidia.github.io/libnvidia-container/stable/deb/nvidia-container-toolkit.list | sed -e 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' -e '/experimental/ s/^#//g' | tee /etc/apt/sources.list.d/nvidia-container-toolkit.list + # Now that an new apt source/key was added, update the package definitions. + - apt-get update + # Install NVIDIA container toolkit + - DEBIAN_FRONTEND=noninteractive apt-get install -y nvidia-container-toolkit + # Ultimately, we need to tell Docker, our container runtime, to use `nvidia-ctk` as a runtime. + - nvidia-ctk runtime configure --runtime=docker + --config=/etc/docker/daemon.json + - systemctl restart docker + +1. Apply this `cloud-init` setup to your instance: + + lxc config set t1 cloud-init.user-data - < cloud-init.yml + +1. Start the instance: + + lxc start t1 + +1. Wait for the `cloud-init` process to finish: + + lxc exec t1 -- cloud-init status --wait + +1. Once `cloud-init` is finished, open a shell in the instance: + + lxc exec t1 -- bash + +1. Edit the NVIDIA container runtime to avoid using `cgroups`: + + sudo nvidia-ctk config --in-place --set nvidia-container-cli.no-cgroups + +1. If you use an iGPU and your NVIDIA container runtime is not automatically enabled with CSV mode (needed for NVIDIA Tegra board), enable it manually: + + sudo nvidia-ctk config --in-place --set nvidia-container-runtime.mode=csv + +1. Now, run the inference workload with Docker: + + - If you set up a dGPU pass-through: + + docker run --gpus all --runtime nvidia --rm -v $(pwd):/sh_input nvcr.io/nvidia/tensorrt:24.02-py3 bash /sh_input/run_tensorrt.sh + + - If you set up an iGPU pass-through: + + docker run --gpus all --runtime nvidia --rm -v $(pwd):/sh_input nvcr.io/nvidia/tensorrt:24.02-py3-igpu bash /sh_input/run_tensorrt.sh + + In the end you should see something like: + + @@@@@@@@@@@@@@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@@@@@@@@@@@@@ + @@@@@@@@@@= ++++#++=*@@@@@ + @@@@@@@@#. *@@@@@ + @@@@@@@@= *@@@@@ + @@@@@@@@. .. ...****%@@@@@ + @@@@@@@@: .%@@#@@@@@@@@@@@@@ + @@@@@@@% -@@@@@@@@@@@@@@@@@ + @@@@@@@% -@@*@@@*@@@@@@@@@@ + @@@@@@@# :#- ::. ::=@@@@@@@ + @@@@@@@- -@@@@@@ + @@@@@@%. *@@@@@ + @@@@@@# :==*+== *@@@@@ + @@@@@@%---%%@@@@@@@. *@@@@@ + @@@@@@@@@@@@@@@@@@@+ *@@@@@ + @@@@@@@@@@@@@@@@@@@= *@@@@@ + @@@@@@@@@@@@@@@@@@* *@@@@@ + @@@@@%+%@@@@@@@@%. .%@@@@@ + @@@@@* .******= -@@@@@@@ + @@@@@* .#@@@@@@@ + @@@@@* =%@@@@@@@@ + @@@@@@%#+++= =@@@@@@@@@@ + @@@@@@@@@@@@@@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@@@@@@@@@@@@@ + @@@@@@@@@@@@@@@@@@@@@@@@@@@@ + + [07/31/2024-13:19:21] [I] Output: + [07/31/2024-13:19:21] [I] Prob 0 0.0000 Class 0: + [07/31/2024-13:19:21] [I] Prob 1 0.0000 Class 1: + [07/31/2024-13:19:21] [I] Prob 2 0.0000 Class 2: + [07/31/2024-13:19:21] [I] Prob 3 0.0000 Class 3: + [07/31/2024-13:19:21] [I] Prob 4 0.0000 Class 4: + [07/31/2024-13:19:21] [I] Prob 5 1.0000 Class 5: ********** + [07/31/2024-13:19:21] [I] Prob 6 0.0000 Class 6: + [07/31/2024-13:19:21] [I] Prob 7 0.0000 Class 7: + [07/31/2024-13:19:21] [I] Prob 8 0.0000 Class 8: + [07/31/2024-13:19:21] [I] Prob 9 0.0000 Class 9: + [07/31/2024-13:19:21] [I] + &&&& PASSED TensorRT.sample_onnx_mnist [TensorRT v8603] # ./sample_onnx_mnist diff --git a/doc/instances.md b/doc/instances.md index 402281d3cf31..f729aa0eb72c 100644 --- a/doc/instances.md +++ b/doc/instances.md @@ -57,6 +57,16 @@ How to import instances: :diataxis:Migrate from LXC ``` +```{only} diataxis +How to pass an NVIDIA GPU to a container with a Docker workload: +``` + +```{filtered-toctree} +:titlesonly: + +:diataxis:Pass NVIDIA GPUs +``` + ## Related topics ```{only} diataxis diff --git a/doc/reference/devices_gpu.md b/doc/reference/devices_gpu.md index c044dcc56236..4337ff091053 100644 --- a/doc/reference/devices_gpu.md +++ b/doc/reference/devices_gpu.md @@ -53,6 +53,22 @@ Add a specific GPU from the host system as a `physical` GPU device to an instanc See {ref}`instances-configure-devices` for more information. +#### CDI mode + +Add a specific GPU from the host system as a `physical` GPU device to an instance using the [Container Device Interface](https://github.com/cncf-tags/container-device-interface) (CDI) notation through a fully-qualified CDI name: + + lxc config device add gpu gputype=physical id= + +For example, add the first available NVIDIA discrete GPU on your system: + + lxc config device add gpu gputype=physical id=nvidia.com/gpu=0 + +If your machine has an NVIDIA iGPU (integrated GPU) located at index 0, you can add it like this: + + lxc config device add gpu gputype=physical id=nvidia.com/igpu=0 + +For a complete example on how to use a GPU CDI pass-through, see {ref}`container-gpu-passthrough-with-docker`. + (gpu-mdev)= ## `gputype`: `mdev` From 5099236f0248b15af557a937b887c0a8b84fe0c4 Mon Sep 17 00:00:00 2001 From: Din Music Date: Wed, 28 Aug 2024 09:07:22 +0000 Subject: [PATCH 152/169] api/shared/instance: Fix json and yaml key name for source disk size Signed-off-by: Din Music --- shared/api/instance.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/shared/api/instance.go b/shared/api/instance.go index 2b3429373c63..966cd6e0aa8e 100644 --- a/shared/api/instance.go +++ b/shared/api/instance.go @@ -430,7 +430,7 @@ type InstanceSource struct { // Example: 12345 // // API extension: instance_import_conversion - SourceDiskSize int64 `json:"sourceDiskSize" yaml:"sourceDiskSize"` + SourceDiskSize int64 `json:"source_disk_size" yaml:"source_disk_size"` // Optional list of options that are used during image conversion (for conversion). // Example: ["format"] From a2ebf5b5cb2714295e626bc77d53bfa13191f51d Mon Sep 17 00:00:00 2001 From: Din Music Date: Wed, 28 Aug 2024 09:08:10 +0000 Subject: [PATCH 153/169] doc: Update api definition Signed-off-by: Din Music --- doc/rest-api.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/rest-api.yaml b/doc/rest-api.yaml index 9565ceb4ba8e..1ee504c1b50b 100644 --- a/doc/rest-api.yaml +++ b/doc/rest-api.yaml @@ -2378,7 +2378,7 @@ definitions: example: foo/snap0 type: string x-go-name: Source - sourceDiskSize: + source_disk_size: description: |- Source disk size in bytes used to set the instance's volume size to accommodate the transferred root disk. This value is ignored if the root disk device has a size explicitly configured (for conversion). From 7ab0a26428590a4d4689b90e8ab95b1523bcc8c5 Mon Sep 17 00:00:00 2001 From: Alexander Mikhalitsyn Date: Wed, 28 Aug 2024 11:11:45 +0200 Subject: [PATCH 154/169] lxd/apparmor/instance_lxc: allow procfs for unprivileged containers A new AppArmor includes security fixes and our ruleset become stricter, while the source code remains unchanged. procfs was always available for unprivileged containers because of AppArmor bugs like [1]. Let's now allow it back by explicit rule. [1] https://bugs.launchpad.net/apparmor/+bug/1597017 Signed-off-by: Alexander Mikhalitsyn --- lxd/apparmor/instance_lxc.go | 1 + 1 file changed, 1 insertion(+) diff --git a/lxd/apparmor/instance_lxc.go b/lxd/apparmor/instance_lxc.go index c158e650d582..b9a93adff690 100644 --- a/lxd/apparmor/instance_lxc.go +++ b/lxd/apparmor/instance_lxc.go @@ -505,6 +505,7 @@ profile "{{ .name }}" flags=(attach_disconnected,mediate_deleted) { pivot_root, mount fstype=devpts, + mount fstype=proc, # Allow unlimited modification of mount propagation mount options=(rw,slave) -> /{,**}, From af91f3fc3eb3c63aaee64364084bd0d19e9a43ae Mon Sep 17 00:00:00 2001 From: Alexander Mikhalitsyn Date: Wed, 28 Aug 2024 11:23:07 +0200 Subject: [PATCH 155/169] lxd/apparmor: allow signals receiving This is a workaround for AppArmor 4.0+ and new unconfined profile feature. It was found [1] that the new unconfined profile mode is not fully permissive. Some things are forbidden for no reason. We need this change to prevent breakage of LXD when we eventually enable a new unconfined mode for lxd-support plug in snapd. This change is absolutely safe in general and there is no reason to put it under "if" condition. [2] [1] https://bugs.launchpad.net/apparmor/+bug/2077413 [2] https://gitlab.com/apparmor/apparmor/-/merge_requests/1310 Signed-off-by: Alexander Mikhalitsyn --- lxd/apparmor/instance_forkproxy.go | 3 +++ lxd/apparmor/instance_qemu.go | 3 +++ lxd/apparmor/network_dnsmasq.go | 3 +++ lxd/apparmor/network_forkdns.go | 3 +++ lxd/apparmor/pyuefivars.go | 3 +++ lxd/apparmor/qemuimg.go | 3 +++ lxd/apparmor/rsync.go | 3 +++ 7 files changed, 21 insertions(+) diff --git a/lxd/apparmor/instance_forkproxy.go b/lxd/apparmor/instance_forkproxy.go index 72bdc4b8f6fb..919a34537990 100644 --- a/lxd/apparmor/instance_forkproxy.go +++ b/lxd/apparmor/instance_forkproxy.go @@ -24,6 +24,9 @@ var forkproxyProfileTpl = template.Must(template.New("forkproxyProfile").Parse(` profile "{{ .name }}" flags=(attach_disconnected,mediate_deleted) { #include + # Allow processes to send us signals by default + signal (receive), + # Capabilities capability chown, capability dac_read_search, diff --git a/lxd/apparmor/instance_qemu.go b/lxd/apparmor/instance_qemu.go index ae7d2916c3db..1d7b9bed5073 100644 --- a/lxd/apparmor/instance_qemu.go +++ b/lxd/apparmor/instance_qemu.go @@ -10,6 +10,9 @@ profile "{{ .name }}" flags=(attach_disconnected,mediate_deleted) { #include #include + # Allow processes to send us signals by default + signal (receive), + capability dac_override, capability dac_read_search, capability ipc_lock, diff --git a/lxd/apparmor/network_dnsmasq.go b/lxd/apparmor/network_dnsmasq.go index 90da44c238a9..dfc64087606f 100644 --- a/lxd/apparmor/network_dnsmasq.go +++ b/lxd/apparmor/network_dnsmasq.go @@ -14,6 +14,9 @@ profile "{{ .name }}" flags=(attach_disconnected,mediate_deleted) { #include #include + # Allow processes to send us signals by default + signal (receive), + # Capabilities capability chown, capability net_bind_service, diff --git a/lxd/apparmor/network_forkdns.go b/lxd/apparmor/network_forkdns.go index 7388cf7b3d43..45e14d88329d 100644 --- a/lxd/apparmor/network_forkdns.go +++ b/lxd/apparmor/network_forkdns.go @@ -15,6 +15,9 @@ var forkdnsProfileTpl = template.Must(template.New("forkdnsProfile").Parse(`#inc profile "{{ .name }}" flags=(attach_disconnected,mediate_deleted) { #include + # Allow processes to send us signals by default + signal (receive), + # Network access network inet dgram, network inet6 dgram, diff --git a/lxd/apparmor/pyuefivars.go b/lxd/apparmor/pyuefivars.go index 957dbc43712b..1a04b14a07aa 100644 --- a/lxd/apparmor/pyuefivars.go +++ b/lxd/apparmor/pyuefivars.go @@ -19,6 +19,9 @@ var pythonUEFIVarsProfileTpl = template.Must(template.New("pythonUEFIVarsProfile profile "{{ .name }}" flags=(attach_disconnected,mediate_deleted) { #include + # Allow processes to send us signals by default + signal (receive), + # Python locations /usr/bin/python* mixr, /bin**/*.py r, diff --git a/lxd/apparmor/qemuimg.go b/lxd/apparmor/qemuimg.go index bf357ec14103..d3abc8b826d8 100644 --- a/lxd/apparmor/qemuimg.go +++ b/lxd/apparmor/qemuimg.go @@ -22,6 +22,9 @@ var qemuImgProfileTpl = template.Must(template.New("qemuImgProfile").Parse(`#inc profile "{{ .name }}" flags=(attach_disconnected,mediate_deleted) { #include + # Allow processes to send us signals by default + signal (receive), + capability dac_override, capability dac_read_search, capability ipc_lock, diff --git a/lxd/apparmor/rsync.go b/lxd/apparmor/rsync.go index 346551dfee31..2f4786ebcea1 100644 --- a/lxd/apparmor/rsync.go +++ b/lxd/apparmor/rsync.go @@ -19,6 +19,9 @@ var rsyncProfileTpl = template.Must(template.New("rsyncProfile").Parse(`#include profile "{{ .name }}" flags=(attach_disconnected,mediate_deleted) { #include + # Allow processes to send us signals by default + signal (receive), + capability chown, capability dac_override, capability dac_read_search, From 8740fa542e52fb289b1c658082ef9b169a70162e Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Wed, 28 Aug 2024 15:29:15 +0200 Subject: [PATCH 156/169] lxd/device/cdi: no NVIDIA with CDI for `armhf` Signed-off-by: Gabriel Mougard --- lxd/device/cdi/spec.go | 2 ++ lxd/device/cdi/spec_unsupported.go | 14 ++++++++++++++ 2 files changed, 16 insertions(+) create mode 100644 lxd/device/cdi/spec_unsupported.go diff --git a/lxd/device/cdi/spec.go b/lxd/device/cdi/spec.go index 539ffb1f5bc1..43da955b0f09 100644 --- a/lxd/device/cdi/spec.go +++ b/lxd/device/cdi/spec.go @@ -1,3 +1,5 @@ +//go:build !armhf && !arm && !arm32 + package cdi import ( diff --git a/lxd/device/cdi/spec_unsupported.go b/lxd/device/cdi/spec_unsupported.go new file mode 100644 index 000000000000..10185d102c3f --- /dev/null +++ b/lxd/device/cdi/spec_unsupported.go @@ -0,0 +1,14 @@ +//go:build armhf || arm || arm32 + +package cdi + +import ( + "fmt" + + "github.com/canonical/lxd/lxd/instance" + "tags.cncf.io/container-device-interface/specs-go" +) + +func generateSpec(cdiID ID, inst instance.Instance) (*specs.Spec, error) { + return nil, fmt.Errorf("NVIDIA CDI operations not supported on this platform") +} From 4770d012c03529a20145bf5affe1525361c88605 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Wed, 28 Aug 2024 15:33:03 +0200 Subject: [PATCH 157/169] doc: update doc to include no CDI for `armhf` Signed-off-by: Gabriel Mougard --- doc/reference/devices_gpu.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/doc/reference/devices_gpu.md b/doc/reference/devices_gpu.md index 4337ff091053..374e82b0edbf 100644 --- a/doc/reference/devices_gpu.md +++ b/doc/reference/devices_gpu.md @@ -55,6 +55,10 @@ See {ref}`instances-configure-devices` for more information. #### CDI mode +```{note} +The CDI mode is currently not supported on `armhf` architectures. +``` + Add a specific GPU from the host system as a `physical` GPU device to an instance using the [Container Device Interface](https://github.com/cncf-tags/container-device-interface) (CDI) notation through a fully-qualified CDI name: lxc config device add gpu gputype=physical id= From 4f928a7187526cd3412efef47ef589254d831c81 Mon Sep 17 00:00:00 2001 From: Vishesh Agrawal Date: Fri, 3 May 2024 20:07:35 +0200 Subject: [PATCH 158/169] lxc/storage_bucket: Add example for storage bucket create lxc storage bucket create already has support for creation from a yaml configuration file, but the same wasn't printed in the usage information of the command. This commit updates `lxc storage bucket create` to include an example. Signed-off-by: Vishesh Agrawal (cherry picked from commit 930f00892116ef9baec537884d45abbed0f09c49) Signed-off-by: Gabriel Mougard License: Apache-2.0 --- lxc/storage_bucket.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lxc/storage_bucket.go b/lxc/storage_bucket.go index 4d7da196d0e8..3a8582877831 100644 --- a/lxc/storage_bucket.go +++ b/lxc/storage_bucket.go @@ -81,6 +81,11 @@ func (c *cmdStorageBucketCreate) command() *cobra.Command { cmd.Use = usage("create", i18n.G("[:] [key=value...]")) cmd.Short = i18n.G("Create new custom storage buckets") cmd.Long = cli.FormatSection(i18n.G("Description"), i18n.G(`Create new custom storage buckets`)) + cmd.Example = cli.FormatSection("", i18n.G(`lxc storage bucket create p1 b01 + Create a new storage bucket name b01 in storage pool p1 + +lxc storage bucket create p1 b01 < config.yaml + Create a new storage bucket name b01 in storage pool p1 using the content of config.yaml`)) cmd.Flags().StringVar(&c.storageBucket.flagTarget, "target", "", i18n.G("Cluster member name")+"``") cmd.RunE = c.run From de9adff882b823810b4d775340f6288309d378a0 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Wed, 28 Aug 2024 17:34:15 +0200 Subject: [PATCH 159/169] i18n: Update translation templates Signed-off-by: Gabriel Mougard --- po/ar.po | 182 ++++++++++++++++++++++++++------------------------ po/ber.po | 182 ++++++++++++++++++++++++++------------------------ po/bg.po | 182 ++++++++++++++++++++++++++------------------------ po/ca.po | 182 ++++++++++++++++++++++++++------------------------ po/cs.po | 182 ++++++++++++++++++++++++++------------------------ po/de.po | 182 ++++++++++++++++++++++++++------------------------ po/el.po | 182 ++++++++++++++++++++++++++------------------------ po/eo.po | 182 ++++++++++++++++++++++++++------------------------ po/es.po | 182 ++++++++++++++++++++++++++------------------------ po/fa.po | 182 ++++++++++++++++++++++++++------------------------ po/fi.po | 182 ++++++++++++++++++++++++++------------------------ po/fr.po | 182 ++++++++++++++++++++++++++------------------------ po/he.po | 182 ++++++++++++++++++++++++++------------------------ po/hi.po | 182 ++++++++++++++++++++++++++------------------------ po/id.po | 182 ++++++++++++++++++++++++++------------------------ po/it.po | 182 ++++++++++++++++++++++++++------------------------ po/ja.po | 182 ++++++++++++++++++++++++++------------------------ po/ka.po | 182 ++++++++++++++++++++++++++------------------------ po/ko.po | 182 ++++++++++++++++++++++++++------------------------ po/lxd.pot | 120 +++++++++++++++++---------------- po/mr.po | 182 ++++++++++++++++++++++++++------------------------ po/nb_NO.po | 182 ++++++++++++++++++++++++++------------------------ po/nl.po | 182 ++++++++++++++++++++++++++------------------------ po/pa.po | 182 ++++++++++++++++++++++++++------------------------ po/pl.po | 182 ++++++++++++++++++++++++++------------------------ po/pt.po | 182 ++++++++++++++++++++++++++------------------------ po/pt_BR.po | 182 ++++++++++++++++++++++++++------------------------ po/ru.po | 182 ++++++++++++++++++++++++++------------------------ po/si.po | 182 ++++++++++++++++++++++++++------------------------ po/sl.po | 182 ++++++++++++++++++++++++++------------------------ po/sr.po | 182 ++++++++++++++++++++++++++------------------------ po/sv.po | 182 ++++++++++++++++++++++++++------------------------ po/te.po | 182 ++++++++++++++++++++++++++------------------------ po/th.po | 182 ++++++++++++++++++++++++++------------------------ po/tr.po | 182 ++++++++++++++++++++++++++------------------------ po/tzm.po | 182 ++++++++++++++++++++++++++------------------------ po/ug.po | 182 ++++++++++++++++++++++++++------------------------ po/uk.po | 182 ++++++++++++++++++++++++++------------------------ po/zh_Hans.po | 182 ++++++++++++++++++++++++++------------------------ po/zh_Hant.po | 182 ++++++++++++++++++++++++++------------------------ 40 files changed, 3808 insertions(+), 3410 deletions(-) diff --git a/po/ar.po b/po/ar.po index 56915cb9ed78..15bf517504b1 100644 --- a/po/ar.po +++ b/po/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -565,11 +565,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -697,7 +697,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -707,7 +707,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -866,7 +866,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1140,13 +1140,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1212,8 +1212,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1422,7 +1422,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1511,7 +1511,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1576,7 +1576,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1616,7 +1616,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1721,13 +1721,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1978,11 +1978,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2054,7 +2054,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2069,7 +2069,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2408,7 +2408,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2525,7 +2525,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2589,7 +2589,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3015,7 +3015,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3310,11 +3310,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3609,11 +3609,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3722,12 +3722,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3771,8 +3771,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3837,13 +3837,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3984,8 +3984,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4380,8 +4380,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4633,7 +4633,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4947,7 +4947,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5022,11 +5022,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5215,11 +5215,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5310,7 +5310,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5455,11 +5455,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5609,22 +5609,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5857,7 +5857,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6190,7 +6190,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6242,7 +6242,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6843,7 +6843,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6851,18 +6851,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7405,19 +7405,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7427,14 +7437,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/ber.po b/po/ber.po index 45a36e4cd020..8826c9a187df 100644 --- a/po/ber.po +++ b/po/ber.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Berber :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/bg.po b/po/bg.po index b732bb10fbf5..5470b7c7b9b1 100644 --- a/po/bg.po +++ b/po/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/ca.po b/po/ca.po index 559c4d80db2a..142094c8feac 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Catalan :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/cs.po b/po/cs.po index 70fe089171e2..a4036a53f7a5 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Czech =2 && n<=4) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -700,7 +700,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -710,7 +710,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -869,7 +869,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1143,13 +1143,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1215,8 +1215,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1425,7 +1425,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1514,7 +1514,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1579,7 +1579,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1619,7 +1619,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1724,13 +1724,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1981,11 +1981,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2057,7 +2057,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2072,7 +2072,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2411,7 +2411,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2528,7 +2528,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2592,7 +2592,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3018,7 +3018,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3313,11 +3313,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3612,11 +3612,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3725,12 +3725,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3774,8 +3774,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3840,13 +3840,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3987,8 +3987,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4383,8 +4383,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4636,7 +4636,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4950,7 +4950,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5025,11 +5025,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5218,11 +5218,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/de.po b/po/de.po index 3d27c568823e..49338ae3a66d 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Krombel \n" "Language-Team: German :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 #, fuzzy msgid "Set storage bucket configuration keys" msgstr "Profil %s erstellt\n" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5915,7 +5915,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 #, fuzzy msgid "Set the key as a storage bucket property" msgstr "Anhalten des Containers fehlgeschlagen!" @@ -6079,12 +6079,12 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 #, fuzzy msgid "Show storage bucket configurations" msgstr "Profil %s erstellt\n" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 #, fuzzy msgid "Show storage bucket key configurations" msgstr "Profil %s erstellt\n" @@ -6245,22 +6245,22 @@ msgstr "Anhalten des Containers fehlgeschlagen!" msgid "Stopping the instance failed: %s" msgstr "Anhalten des Containers fehlgeschlagen!" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, fuzzy, c-format msgid "Storage bucket %s created" msgstr "Profil %s erstellt\n" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, fuzzy, c-format msgid "Storage bucket %s deleted" msgstr "Profil %s gelöscht\n" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, fuzzy, c-format msgid "Storage bucket key %s added" msgstr "Profil %s erstellt\n" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, fuzzy, c-format msgid "Storage bucket key %s removed" msgstr "Profil %s erstellt\n" @@ -6503,7 +6503,7 @@ msgstr "der Name des Ursprung Containers muss angegeben werden" msgid "The property %q does not exist on the project %q: %v" msgstr "der Name des Ursprung Containers muss angegeben werden" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, fuzzy, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "der Name des Ursprung Containers muss angegeben werden" @@ -6858,7 +6858,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "Profil %s erstellt\n" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 #, fuzzy msgid "Unset storage bucket configuration keys" msgstr "Alternatives config Verzeichnis." @@ -6918,7 +6918,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 #, fuzzy msgid "Unset the key as a storage bucket property" msgstr "Anhalten des Containers fehlgeschlagen!" @@ -7938,7 +7938,7 @@ msgstr "" "lxd %s \n" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 #, fuzzy msgid "[:]" msgstr "" @@ -7954,8 +7954,8 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 #, fuzzy msgid "[:] " msgstr "" @@ -7963,9 +7963,9 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 #, fuzzy msgid "[:] " msgstr "" @@ -7973,7 +7973,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 #, fuzzy msgid "[:] =..." msgstr "" @@ -8724,19 +8724,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -8746,14 +8756,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/el.po b/po/el.po index 63f3614a7580..b515b4e66f8a 100644 --- a/po/el.po +++ b/po/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Greek :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 #, fuzzy msgid "Set storage bucket configuration keys" msgstr " Χρήση δικτύου:" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5396,7 +5396,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 #, fuzzy msgid "Set the key as a storage bucket property" msgstr " Χρήση δικτύου:" @@ -5550,12 +5550,12 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 #, fuzzy msgid "Show storage bucket configurations" msgstr " Χρήση δικτύου:" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 #, fuzzy msgid "Show storage bucket key configurations" msgstr " Χρήση δικτύου:" @@ -5707,22 +5707,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, fuzzy, c-format msgid "Storage bucket %s created" msgstr " Χρήση δικτύου:" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, fuzzy, c-format msgid "Storage bucket %s deleted" msgstr " Χρήση δικτύου:" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5955,7 +5955,7 @@ msgstr " Χρήση δικτύου:" msgid "The property %q does not exist on the project %q: %v" msgstr " Χρήση δικτύου:" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, fuzzy, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr " Χρήση δικτύου:" @@ -6298,7 +6298,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 #, fuzzy msgid "Unset storage bucket configuration keys" msgstr " Χρήση δικτύου:" @@ -6357,7 +6357,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 #, fuzzy msgid "Unset the key as a storage bucket property" msgstr " Χρήση δικτύου:" @@ -6959,7 +6959,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6967,18 +6967,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7521,19 +7521,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7543,14 +7553,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/eo.po b/po/eo.po index 827f841e1d42..80b0ac5cdd6a 100644 --- a/po/eo.po +++ b/po/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Esperanto :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/es.po b/po/es.po index 920912df24aa..dad74b50c2ba 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2023-06-16 20:55+0000\n" "Last-Translator: Francisco Serrador \n" "Language-Team: Spanish :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 #, fuzzy msgid "Set storage bucket configuration keys" msgstr "Perfil %s creado" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5709,7 +5709,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 #, fuzzy msgid "Set the key as a storage bucket property" msgstr "Nombre del contenedor es: %s" @@ -5864,12 +5864,12 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 #, fuzzy msgid "Show storage bucket configurations" msgstr "Perfil %s creado" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 #, fuzzy msgid "Show storage bucket key configurations" msgstr "Perfil %s creado" @@ -6022,22 +6022,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "Copiando la imagen: %s" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, fuzzy, c-format msgid "Storage bucket %s created" msgstr "Perfil %s creado" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, fuzzy, c-format msgid "Storage bucket %s deleted" msgstr "Perfil %s eliminado" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6272,7 +6272,7 @@ msgstr "Nombre del Miembro del Cluster" msgid "The property %q does not exist on the project %q: %v" msgstr "Nombre del Miembro del Cluster" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, fuzzy, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "Nombre del Miembro del Cluster" @@ -6619,7 +6619,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 #, fuzzy msgid "Unset storage bucket configuration keys" msgstr "Perfil %s creado" @@ -6678,7 +6678,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 #, fuzzy msgid "Unset the key as a storage bucket property" msgstr "Perfil %s creado" @@ -7373,7 +7373,7 @@ msgid "[:]" msgstr "No se puede proveer el nombre del container a la lista" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 #, fuzzy msgid "[:]" msgstr "No se puede proveer el nombre del container a la lista" @@ -7383,20 +7383,20 @@ msgstr "No se puede proveer el nombre del container a la lista" msgid "[:] []" msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 #, fuzzy msgid "[:] =..." msgstr "No se puede proveer el nombre del container a la lista" @@ -7987,19 +7987,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -8009,14 +8019,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/fa.po b/po/fa.po index 47b5606b7195..8fea98448560 100644 --- a/po/fa.po +++ b/po/fa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Persian 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -700,7 +700,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -710,7 +710,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -869,7 +869,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1143,13 +1143,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1215,8 +1215,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1425,7 +1425,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1514,7 +1514,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1579,7 +1579,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1619,7 +1619,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1724,13 +1724,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1981,11 +1981,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2057,7 +2057,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2072,7 +2072,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2411,7 +2411,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2528,7 +2528,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2592,7 +2592,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3018,7 +3018,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3313,11 +3313,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3612,11 +3612,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3725,12 +3725,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3774,8 +3774,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3840,13 +3840,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3987,8 +3987,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4383,8 +4383,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4636,7 +4636,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4950,7 +4950,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5025,11 +5025,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5218,11 +5218,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/fi.po b/po/fi.po index 5a125e0fba30..e70e22aa3d95 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Finnish :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/fr.po b/po/fr.po index d768e1c84576..093bbbe31c33 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Wivik \n" "Language-Team: French 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 #, fuzzy msgid "" "### This is a YAML representation of a storage bucket.\n" @@ -830,11 +830,11 @@ msgstr "" msgid "Accept certificate" msgstr "Accepter le certificat" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, fuzzy, c-format msgid "Access key: %s" msgstr "Expire : %s" @@ -979,7 +979,7 @@ msgstr "Création du conteneur" msgid "Address: %s" msgstr "Expire : %s" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, fuzzy, c-format msgid "Admin access key: %s" msgstr "Expire : %s" @@ -989,7 +989,7 @@ msgstr "Expire : %s" msgid "Admin password (or token) for %s:" msgstr "Mot de passe administrateur pour %s : " -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, fuzzy, c-format msgid "Admin secret key: %s" msgstr "Créé : %s" @@ -1157,7 +1157,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1439,13 +1439,13 @@ msgstr "Périphérique %s retiré de %s" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1522,8 +1522,8 @@ msgstr "Clé/valeur de configuration à appliquer au nouveau conteneur" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1761,7 +1761,7 @@ msgstr "" msgid "Create instances from images" msgstr "Création du conteneur" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 #, fuzzy msgid "Create key for a storage bucket" msgstr "Copie de l'image : %s" @@ -1864,7 +1864,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "DESCRIPTION" @@ -1936,7 +1936,7 @@ msgstr "L'arrêt du conteneur a échoué !" msgid "Delete instances and snapshots" msgstr "Forcer le conteneur à s'arrêter" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 #, fuzzy msgid "Delete key from a storage bucket" msgstr "Copie de l'image : %s" @@ -1982,7 +1982,7 @@ msgstr "" msgid "Delete projects" msgstr "Récupération de l'image : %s" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 #, fuzzy msgid "Delete storage buckets" msgstr "Copie de l'image : %s" @@ -2090,13 +2090,13 @@ msgstr "Récupération de l'image : %s" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -2372,12 +2372,12 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "Clé de configuration invalide" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 #, fuzzy msgid "Edit storage bucket configurations as YAML" msgstr "Clé de configuration invalide" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2451,7 +2451,7 @@ msgstr "Récupération de l'image : %s" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, fuzzy, c-format msgid "Error setting properties: %v" @@ -2466,7 +2466,7 @@ msgstr "Récupération de l'image : %s" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2835,7 +2835,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2958,7 +2958,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 #, fuzzy msgid "Get the key as a storage bucket property" msgstr "Copie de l'image : %s" @@ -3037,7 +3037,7 @@ msgstr "Clé de configuration invalide" msgid "Get values for project configuration keys" msgstr "Clé de configuration invalide" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 #, fuzzy msgid "Get values for storage bucket configuration keys" msgstr "Clé de configuration invalide" @@ -3487,7 +3487,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3856,12 +3856,12 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 #, fuzzy msgid "List storage bucket keys" msgstr "Copie de l'image : %s" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 #, fuzzy msgid "List storage buckets" msgstr "Copie de l'image : %s" @@ -4187,12 +4187,12 @@ msgstr "" msgid "Manage projects" msgstr "Rendre l'image publique" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 #, fuzzy msgid "Manage storage bucket keys" msgstr "Copie de l'image : %s" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 #, fuzzy msgid "Manage storage bucket keys." msgstr "Copie de l'image : %s" @@ -4311,12 +4311,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 #, fuzzy msgid "Missing bucket name" msgstr "Résumé manquant." @@ -4369,8 +4369,8 @@ msgstr "Vous devez fournir le nom d'un conteneur pour : " msgid "Missing instance name" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 #, fuzzy msgid "Missing key name" msgstr "Résumé manquant." @@ -4443,13 +4443,13 @@ msgid "Missing peer name" msgstr "Résumé manquant." #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4604,8 +4604,8 @@ msgstr "Vous devez fournir le nom d'un conteneur pour : " #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "NOM" @@ -5022,8 +5022,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 #, fuzzy msgid "Press enter to open the editor again or ctrl+c to abort change" @@ -5285,7 +5285,7 @@ msgstr "" msgid "RESOURCE" msgstr "SOURCE" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -5651,7 +5651,7 @@ msgstr "Vous devez fournir le nom d'un conteneur pour : " msgid "Revoke cluster member join token" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5730,11 +5730,11 @@ msgstr "ENSEMBLE DE STOCKAGE" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, fuzzy, c-format msgid "Secret key: %s" msgstr "Créé : %s" @@ -5938,12 +5938,12 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 #, fuzzy msgid "Set storage bucket configuration keys" msgstr "Clé de configuration invalide" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -6041,7 +6041,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 #, fuzzy msgid "Set the key as a storage bucket property" msgstr "Copie de l'image : %s" @@ -6210,12 +6210,12 @@ msgstr "Afficher la configuration étendue" msgid "Show project options" msgstr "Afficher la configuration étendue" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 #, fuzzy msgid "Show storage bucket configurations" msgstr "Afficher la configuration étendue" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 #, fuzzy msgid "Show storage bucket key configurations" msgstr "Afficher la configuration étendue" @@ -6379,22 +6379,22 @@ msgstr "L'arrêt du conteneur a échoué !" msgid "Stopping the instance failed: %s" msgstr "L'arrêt du conteneur a échoué !" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, fuzzy, c-format msgid "Storage bucket %s created" msgstr "Profil %s créé" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, fuzzy, c-format msgid "Storage bucket %s deleted" msgstr "Profil %s supprimé" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, fuzzy, c-format msgid "Storage bucket key %s added" msgstr "Profil %s créé" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, fuzzy, c-format msgid "Storage bucket key %s removed" msgstr "Profil %s créé" @@ -6642,7 +6642,7 @@ msgstr "Vous devez fournir le nom d'un conteneur pour : " msgid "The property %q does not exist on the project %q: %v" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, fuzzy, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "Vous devez fournir le nom d'un conteneur pour : " @@ -7001,7 +7001,7 @@ msgstr "Clé de configuration invalide" msgid "Unset project configuration keys" msgstr "Clé de configuration invalide" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 #, fuzzy msgid "Unset storage bucket configuration keys" msgstr "Clé de configuration invalide" @@ -7062,7 +7062,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 #, fuzzy msgid "Unset the key as a storage bucket property" msgstr "Copie de l'image : %s" @@ -8158,7 +8158,7 @@ msgstr "" "lxc %s [:] [[:]...]%s" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 #, fuzzy msgid "[:]" msgstr "" @@ -8174,8 +8174,8 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 #, fuzzy msgid "[:] " msgstr "" @@ -8183,9 +8183,9 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 #, fuzzy msgid "[:] " msgstr "" @@ -8193,7 +8193,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 #, fuzzy msgid "[:] =..." msgstr "" @@ -8999,19 +8999,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -9021,14 +9031,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/he.po b/po/he.po index bf7bec99857f..0a72590ab08e 100644 --- a/po/he.po +++ b/po/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hebrew :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5459,11 +5459,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5613,22 +5613,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5861,7 +5861,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6847,7 +6847,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6855,18 +6855,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7409,19 +7409,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7431,14 +7441,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/hi.po b/po/hi.po index 7aea2a2872cb..cabbfb3d671f 100644 --- a/po/hi.po +++ b/po/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hindi 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -700,7 +700,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -710,7 +710,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -869,7 +869,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1143,13 +1143,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1215,8 +1215,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1425,7 +1425,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1514,7 +1514,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1579,7 +1579,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1619,7 +1619,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1724,13 +1724,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1981,11 +1981,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2057,7 +2057,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2072,7 +2072,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2411,7 +2411,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2528,7 +2528,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2592,7 +2592,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3018,7 +3018,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3313,11 +3313,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3612,11 +3612,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3725,12 +3725,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3774,8 +3774,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3840,13 +3840,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3987,8 +3987,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4383,8 +4383,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4636,7 +4636,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4950,7 +4950,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5025,11 +5025,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5218,11 +5218,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/id.po b/po/id.po index 8b46cfe8fd79..4b09404abb4a 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/it.po b/po/it.po index dd2bdaeef203..2d6463de8a61 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Luigi Operoso \n" "Language-Team: Italian :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 #, fuzzy msgid "Set storage bucket configuration keys" msgstr "Il nome del container è: %s" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5705,7 +5705,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 #, fuzzy msgid "Set the key as a storage bucket property" msgstr "Creazione del container in corso" @@ -5860,12 +5860,12 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 #, fuzzy msgid "Show storage bucket configurations" msgstr "Il nome del container è: %s" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 #, fuzzy msgid "Show storage bucket key configurations" msgstr "Il nome del container è: %s" @@ -6019,22 +6019,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "errore di processamento degli alias %s\n" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6270,7 +6270,7 @@ msgstr "Il nome del container è: %s" msgid "The property %q does not exist on the project %q: %v" msgstr "Il nome del container è: %s" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, fuzzy, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "Il nome del container è: %s" @@ -6615,7 +6615,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 #, fuzzy msgid "Unset storage bucket configuration keys" msgstr "Il nome del container è: %s" @@ -6671,7 +6671,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 #, fuzzy msgid "Unset the key as a storage bucket property" msgstr "Il nome del container è: %s" @@ -7370,7 +7370,7 @@ msgid "[:]" msgstr "Creazione del container in corso" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 #, fuzzy msgid "[:]" msgstr "Creazione del container in corso" @@ -7380,20 +7380,20 @@ msgstr "Creazione del container in corso" msgid "[:] []" msgstr "Creazione del container in corso" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 #, fuzzy msgid "[:] =..." msgstr "Creazione del container in corso" @@ -7984,19 +7984,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -8006,14 +8016,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/ja.po b/po/ja.po index eb05216b226f..f20d9b91a570 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2023-03-10 15:14+0000\n" "Last-Translator: KATOH Yasufumi \n" "Language-Team: Japanese :] " -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "ストレージバケットの設定項目を設定します" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5977,7 +5977,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 #, fuzzy msgid "Set the key as a storage bucket property" msgstr "ストレージバケットに対する鍵を作成します" @@ -6128,11 +6128,11 @@ msgstr "プロファイルの設定を表示します" msgid "Show project options" msgstr "プロジェクトの設定を表示します" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "ストレージバケットの設定を表示する" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "ストレージバケットの鍵の設定を表示する" @@ -6282,22 +6282,22 @@ msgstr "インスタンスの停止に失敗しました!" msgid "Stopping the instance failed: %s" msgstr "インスタンスの停止に失敗しました: %s" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "ストレージバケット %s を作成しました" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "ストレージバケット %s を削除しました" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "ストレージバケットの鍵 %s を作成しました" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "ストレージバケットの鍵 %s を削除しました" @@ -6536,7 +6536,7 @@ msgstr "設定 %q はクラスタメンバー %q には存在しません" msgid "The property %q does not exist on the project %q: %v" msgstr "設定 %q はクラスタメンバー %q には存在しません" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, fuzzy, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "設定 %q はクラスタメンバー %q には存在しません" @@ -6893,7 +6893,7 @@ msgstr "プロファイルの設定を削除します" msgid "Unset project configuration keys" msgstr "プロジェクトの設定を削除します" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "ストレージバケットの設定を削除します" @@ -6951,7 +6951,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 #, fuzzy msgid "Unset the key as a storage bucket property" msgstr "ストレージバケットに対する鍵を作成します" @@ -7587,7 +7587,7 @@ msgid "[:]" msgstr "[:]" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "[:]" @@ -7595,18 +7595,18 @@ msgstr "[:]" msgid "[:] []" msgstr "[:] []" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "[:] " -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "[:] " -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "[:] =..." @@ -8318,7 +8318,17 @@ msgstr "" "lxc restore u1 snap0\n" " スナップショットからリストアします。" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." @@ -8326,7 +8336,7 @@ msgstr "" "lxc storage bucket edit [:] < bucket.yaml\n" " bucket.yaml の内容でストレージバケットを更新します。" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." @@ -8334,7 +8344,7 @@ msgstr "" "lxc storage bucket edit [:] < key.yaml\n" " key.yaml の内容でストレージバケットの鍵を更新します。" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -8344,7 +8354,7 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " @@ -8354,7 +8364,7 @@ msgstr "" " \"default\" プール内の \"data\" という名前のバケットに対する \"foo\" とい" "う名前のバケットの鍵のプロパティを表示します。" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/ka.po b/po/ka.po index dd474bd4b667..fd2db5b407e4 100644 --- a/po/ka.po +++ b/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -565,11 +565,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -697,7 +697,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -707,7 +707,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -866,7 +866,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1140,13 +1140,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1212,8 +1212,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1422,7 +1422,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1511,7 +1511,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1576,7 +1576,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1616,7 +1616,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1721,13 +1721,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1978,11 +1978,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2054,7 +2054,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2069,7 +2069,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2408,7 +2408,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2525,7 +2525,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2589,7 +2589,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3015,7 +3015,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3310,11 +3310,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3609,11 +3609,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3722,12 +3722,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3771,8 +3771,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3837,13 +3837,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3984,8 +3984,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4380,8 +4380,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4633,7 +4633,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4947,7 +4947,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5022,11 +5022,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5215,11 +5215,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5310,7 +5310,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5455,11 +5455,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5609,22 +5609,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5857,7 +5857,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6190,7 +6190,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6242,7 +6242,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6843,7 +6843,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6851,18 +6851,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7405,19 +7405,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7427,14 +7437,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/ko.po b/po/ko.po index 7a7fb323ef5a..536f2b20734f 100644 --- a/po/ko.po +++ b/po/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/lxd.pot b/po/lxd.pot index ff651a2b9f4c..87fe7d60d952 100644 --- a/po/lxd.pot +++ b/po/lxd.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" - "POT-Creation-Date: 2024-08-28 07:36+0200\n" + "POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -16,7 +16,7 @@ msgstr "Project-Id-Version: lxd\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" "###\n" @@ -534,11 +534,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -659,7 +659,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -669,7 +669,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -825,7 +825,7 @@ msgstr "" msgid "Bad device override syntax, expecting ,=: %s" msgstr "" -#: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 lxc/network_load_balancer.go:301 lxc/network_peer.go:280 lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 lxc/network_load_balancer.go:301 lxc/network_peer.go:280 lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1084,7 +1084,7 @@ msgstr "" msgid "Cluster member %s removed from group %s" msgstr "" -#: lxc/config.go:105 lxc/config.go:389 lxc/config.go:529 lxc/config.go:735 lxc/config.go:858 lxc/copy.go:61 lxc/info.go:44 lxc/init.go:64 lxc/move.go:66 lxc/network.go:300 lxc/network.go:723 lxc/network.go:792 lxc/network.go:1134 lxc/network.go:1219 lxc/network.go:1283 lxc/network_forward.go:174 lxc/network_forward.go:239 lxc/network_forward.go:456 lxc/network_forward.go:579 lxc/network_forward.go:721 lxc/network_forward.go:798 lxc/network_forward.go:864 lxc/network_load_balancer.go:176 lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 lxc/storage_volume.go:560 lxc/storage_volume.go:639 lxc/storage_volume.go:883 lxc/storage_volume.go:1097 lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 lxc/storage_volume.go:1758 lxc/storage_volume.go:1885 lxc/storage_volume.go:2031 lxc/storage_volume.go:2135 lxc/storage_volume.go:2175 lxc/storage_volume.go:2268 lxc/storage_volume.go:2340 lxc/storage_volume.go:2492 +#: lxc/config.go:105 lxc/config.go:389 lxc/config.go:529 lxc/config.go:735 lxc/config.go:858 lxc/copy.go:61 lxc/info.go:44 lxc/init.go:64 lxc/move.go:66 lxc/network.go:300 lxc/network.go:723 lxc/network.go:792 lxc/network.go:1134 lxc/network.go:1219 lxc/network.go:1283 lxc/network_forward.go:174 lxc/network_forward.go:239 lxc/network_forward.go:456 lxc/network_forward.go:579 lxc/network_forward.go:721 lxc/network_forward.go:798 lxc/network_forward.go:864 lxc/network_load_balancer.go:176 lxc/network_load_balancer.go:246 lxc/network_load_balancer.go:464 lxc/network_load_balancer.go:587 lxc/network_load_balancer.go:730 lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 lxc/storage_volume.go:560 lxc/storage_volume.go:639 lxc/storage_volume.go:883 lxc/storage_volume.go:1097 lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 lxc/storage_volume.go:1758 lxc/storage_volume.go:1885 lxc/storage_volume.go:2031 lxc/storage_volume.go:2135 lxc/storage_volume.go:2175 lxc/storage_volume.go:2268 lxc/storage_volume.go:2340 lxc/storage_volume.go:2492 msgid "Cluster member name" msgstr "" @@ -1135,7 +1135,7 @@ msgstr "" msgid "Config key/value to apply to the target instance" msgstr "" -#: lxc/cluster.go:770 lxc/cluster_group.go:339 lxc/config.go:272 lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 lxc/network_acl.go:620 lxc/network_forward.go:685 lxc/network_load_balancer.go:694 lxc/network_peer.go:610 lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 lxc/storage_volume.go:1048 +#: lxc/cluster.go:770 lxc/cluster_group.go:339 lxc/config.go:272 lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 lxc/network_acl.go:620 lxc/network_forward.go:685 lxc/network_load_balancer.go:694 lxc/network_peer.go:610 lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" msgstr "" @@ -1335,7 +1335,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1418,7 +1418,7 @@ msgstr "" msgid "DEFAULT TARGET ADDRESS" msgstr "" -#: lxc/auth.go:376 lxc/cluster.go:188 lxc/cluster_group.go:438 lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 lxc/network_acl.go:148 lxc/network_forward.go:149 lxc/network_load_balancer.go:152 lxc/network_peer.go:140 lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 lxc/storage_volume.go:1562 +#: lxc/auth.go:376 lxc/cluster.go:188 lxc/cluster_group.go:438 lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 lxc/network_acl.go:148 lxc/network_forward.go:149 lxc/network_load_balancer.go:152 lxc/network_peer.go:140 lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1482,7 +1482,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1522,7 +1522,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1538,7 +1538,7 @@ msgstr "" msgid "Delete warning" msgstr "" -#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 +#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 msgid "Description" msgstr "" @@ -1770,11 +1770,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -1837,7 +1837,7 @@ msgstr "" msgid "Error retrieving aliases: %w" msgstr "" -#: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 lxc/network_acl.go:467 lxc/network_forward.go:519 lxc/network_load_balancer.go:527 lxc/network_peer.go:463 lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 +#: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 lxc/network_acl.go:467 lxc/network_forward.go:519 lxc/network_load_balancer.go:527 lxc/network_peer.go:463 lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" msgstr "" @@ -1847,7 +1847,7 @@ msgstr "" msgid "Error unsetting properties: %v" msgstr "" -#: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 lxc/network_forward.go:513 lxc/network_load_balancer.go:521 lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 lxc/storage_volume.go:1979 +#: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 lxc/network_forward.go:513 lxc/network_load_balancer.go:521 lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" msgstr "" @@ -2165,7 +2165,7 @@ msgid "Forcefully removing a server from the cluster should only be done as a "Are you really sure you want to force removing %s? (yes/no): " msgstr "" -#: lxc/alias.go:112 lxc/auth.go:336 lxc/auth.go:769 lxc/auth.go:1696 lxc/cluster.go:124 lxc/cluster.go:881 lxc/cluster_group.go:384 lxc/config_template.go:242 lxc/config_trust.go:352 lxc/config_trust.go:434 lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 lxc/network_forward.go:93 lxc/network_load_balancer.go:97 lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 lxc/storage_volume.go:1446 lxc/warning.go:93 +#: lxc/alias.go:112 lxc/auth.go:336 lxc/auth.go:769 lxc/auth.go:1696 lxc/cluster.go:124 lxc/cluster.go:881 lxc/cluster_group.go:384 lxc/config_template.go:242 lxc/config_trust.go:352 lxc/config_trust.go:434 lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 lxc/network_forward.go:93 lxc/network_load_balancer.go:97 lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2281,7 +2281,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2345,7 +2345,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -2763,7 +2763,7 @@ msgstr "" msgid "LISTEN ADDRESS" msgstr "" -#: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 lxc/network_load_balancer.go:157 lxc/operation.go:177 lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 lxc/network_load_balancer.go:157 lxc/operation.go:177 lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3047,11 +3047,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3343,11 +3343,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3453,7 +3453,7 @@ msgstr "" msgid "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3489,7 +3489,7 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3521,7 +3521,7 @@ msgstr "" msgid "Missing peer name" msgstr "" -#: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 lxc/storage_volume.go:287 lxc/storage_volume.go:583 lxc/storage_volume.go:660 lxc/storage_volume.go:735 lxc/storage_volume.go:817 lxc/storage_volume.go:919 lxc/storage_volume.go:1120 lxc/storage_volume.go:1780 lxc/storage_volume.go:1907 lxc/storage_volume.go:2053 lxc/storage_volume.go:2195 lxc/storage_volume.go:2290 +#: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 lxc/storage_volume.go:287 lxc/storage_volume.go:583 lxc/storage_volume.go:660 lxc/storage_volume.go:735 lxc/storage_volume.go:817 lxc/storage_volume.go:919 lxc/storage_volume.go:1120 lxc/storage_volume.go:1780 lxc/storage_volume.go:1907 lxc/storage_volume.go:2053 lxc/storage_volume.go:2195 lxc/storage_volume.go:2290 msgid "Missing pool name" msgstr "" @@ -3642,7 +3642,7 @@ msgstr "" msgid "Must supply instance name for: " msgstr "" -#: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4026,7 +4026,7 @@ msgstr "" msgid "Press ctrl+c to finish" msgstr "" -#: lxc/auth.go:301 lxc/auth.go:1055 lxc/auth.go:1661 lxc/cluster.go:771 lxc/cluster_group.go:340 lxc/config.go:273 lxc/config.go:348 lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 lxc/network_acl.go:621 lxc/network_forward.go:686 lxc/network_load_balancer.go:695 lxc/network_peer.go:611 lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 lxc/storage_volume.go:1049 +#: lxc/auth.go:301 lxc/auth.go:1055 lxc/auth.go:1661 lxc/cluster.go:771 lxc/cluster_group.go:340 lxc/config.go:273 lxc/config.go:348 lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 lxc/network_acl.go:621 lxc/network_forward.go:686 lxc/network_load_balancer.go:695 lxc/network_peer.go:611 lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4261,7 +4261,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4571,7 +4571,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -4645,11 +4645,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -4816,11 +4816,11 @@ msgid "Set project configuration keys\n" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "Set storage bucket configuration keys\n" "\n" "For backward compatibility, a single configuration key may still be set with:\n" @@ -4905,7 +4905,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5046,11 +5046,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5198,22 +5198,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5441,7 +5441,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -5760,7 +5760,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -5812,7 +5812,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6373,7 +6373,7 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 lxc/storage_bucket.go:449 +#: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6381,15 +6381,15 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -6869,17 +6869,25 @@ msgid "lxc snapshot u1 snap0\n" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "lxc storage bucket create p1 b01\n" + " Create a new storage bucket name b01 in storage pool p1\n" + "\n" + "lxc storage bucket create p1 b01 < config.yaml\n" + " Create a new storage bucket name b01 in storage pool p1 using the content of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "lxc storage bucket key create p1 b01 k1\n" " Create a key called k1 for the bucket b01 in the pool p1.\n" "\n" @@ -6887,12 +6895,12 @@ msgid "lxc storage bucket key create p1 b01 k1\n" " Create a key called k1 for the bucket b01 in the pool p1 using the content of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" pool." msgstr "" diff --git a/po/mr.po b/po/mr.po index ee00886a1b95..418de896062e 100644 --- a/po/mr.po +++ b/po/mr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Marathi :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/nb_NO.po b/po/nb_NO.po index bf66c03e55a2..6cd013f4ab0b 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Norwegian Bokmål :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/nl.po b/po/nl.po index b13fa4c51fc1..add048bab4ac 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5537,7 +5537,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5682,11 +5682,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5836,22 +5836,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6084,7 +6084,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6417,7 +6417,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6469,7 +6469,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -7070,7 +7070,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -7078,18 +7078,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7632,19 +7632,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7654,14 +7664,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/pa.po b/po/pa.po index 904cedcab82c..266e25a28558 100644 --- a/po/pa.po +++ b/po/pa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Punjabi 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -700,7 +700,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -710,7 +710,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -869,7 +869,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1143,13 +1143,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1215,8 +1215,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1425,7 +1425,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1514,7 +1514,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1579,7 +1579,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1619,7 +1619,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1724,13 +1724,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1981,11 +1981,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2057,7 +2057,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2072,7 +2072,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2411,7 +2411,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2528,7 +2528,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2592,7 +2592,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3018,7 +3018,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3313,11 +3313,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3612,11 +3612,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3725,12 +3725,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3774,8 +3774,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3840,13 +3840,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3987,8 +3987,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4383,8 +4383,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4636,7 +4636,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4950,7 +4950,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5025,11 +5025,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5218,11 +5218,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/pl.po b/po/pl.po index 909090076a57..3b84b3304d77 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Polish =20) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 #, fuzzy msgid "" "### This is a YAML representation of a storage bucket.\n" @@ -830,11 +830,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -962,7 +962,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -972,7 +972,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -1131,7 +1131,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1405,13 +1405,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1477,8 +1477,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1687,7 +1687,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1776,7 +1776,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1841,7 +1841,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1881,7 +1881,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1986,13 +1986,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -2243,11 +2243,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2319,7 +2319,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2334,7 +2334,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2673,7 +2673,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2790,7 +2790,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2854,7 +2854,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3280,7 +3280,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3575,11 +3575,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3874,11 +3874,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3987,12 +3987,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -4036,8 +4036,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -4102,13 +4102,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4249,8 +4249,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4645,8 +4645,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4898,7 +4898,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -5212,7 +5212,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5287,11 +5287,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5480,11 +5480,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5575,7 +5575,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5720,11 +5720,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5874,22 +5874,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6122,7 +6122,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6455,7 +6455,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6507,7 +6507,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -7108,7 +7108,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -7116,18 +7116,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7670,19 +7670,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7692,14 +7702,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/pt.po b/po/pt.po index e87d6286a8a0..8684db5f5fc7 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -565,11 +565,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -697,7 +697,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -707,7 +707,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -866,7 +866,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1140,13 +1140,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1212,8 +1212,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1422,7 +1422,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1511,7 +1511,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1576,7 +1576,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1616,7 +1616,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1721,13 +1721,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1978,11 +1978,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2054,7 +2054,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2069,7 +2069,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2408,7 +2408,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2525,7 +2525,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2589,7 +2589,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3015,7 +3015,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3310,11 +3310,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3609,11 +3609,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3722,12 +3722,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3771,8 +3771,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3837,13 +3837,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3984,8 +3984,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4380,8 +4380,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4633,7 +4633,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4947,7 +4947,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5022,11 +5022,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5215,11 +5215,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5310,7 +5310,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5455,11 +5455,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5609,22 +5609,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5857,7 +5857,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6190,7 +6190,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6242,7 +6242,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6843,7 +6843,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6851,18 +6851,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7405,19 +7405,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7427,14 +7437,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/pt_BR.po b/po/pt_BR.po index fef5f1f42d6a..33fddb7e7b98 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Renato dos Santos \n" "Language-Team: Portuguese (Brazil) 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 #, fuzzy msgid "" "### This is a YAML representation of a storage bucket.\n" @@ -827,11 +827,11 @@ msgstr "" msgid "Accept certificate" msgstr "Aceitar certificado" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -967,7 +967,7 @@ msgstr "Adicionar perfis aos containers" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, fuzzy, c-format msgid "Admin access key: %s" msgstr "Senha de administrador para %s: " @@ -977,7 +977,7 @@ msgstr "Senha de administrador para %s: " msgid "Admin password (or token) for %s:" msgstr "Senha de administrador para %s: " -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, fuzzy, c-format msgid "Admin secret key: %s" msgstr "Criado: %s" @@ -1145,7 +1145,7 @@ msgstr "Erro de sintaxe, esperado ,=: %s" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "par de chave/valor inválido %s" @@ -1423,13 +1423,13 @@ msgstr "Dispositivo %s removido de %s" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1504,8 +1504,8 @@ msgstr "Configuração chave/valor para aplicar ao novo contêiner" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1724,7 +1724,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1822,7 +1822,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1893,7 +1893,7 @@ msgstr "Editar templates de arquivo do container" msgid "Delete instances and snapshots" msgstr "Apagar nomes alternativos da imagem" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1939,7 +1939,7 @@ msgstr "" msgid "Delete projects" msgstr "Apagar projetos" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 #, fuzzy msgid "Delete storage buckets" msgstr "Apagar projetos" @@ -2045,13 +2045,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -2325,12 +2325,12 @@ msgstr "Editar configurações de perfil como YAML" msgid "Edit project configurations as YAML" msgstr "Editar configurações de perfil como YAML" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 #, fuzzy msgid "Edit storage bucket configurations as YAML" msgstr "Editar configurações de perfil como YAML" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2403,7 +2403,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, fuzzy, c-format msgid "Error setting properties: %v" @@ -2418,7 +2418,7 @@ msgstr "Editar propriedades da imagem" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2759,7 +2759,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2883,7 +2883,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 #, fuzzy msgid "Get the key as a storage bucket property" msgstr "Editar configurações de perfil como YAML" @@ -2959,7 +2959,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "Editar configurações de perfil como YAML" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 #, fuzzy msgid "Get values for storage bucket configuration keys" msgstr "Editar configurações de perfil como YAML" @@ -3390,7 +3390,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3694,11 +3694,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -4015,12 +4015,12 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 #, fuzzy msgid "Manage storage bucket keys" msgstr "Criar novas redes" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -4134,12 +4134,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 #, fuzzy msgid "Missing bucket name" msgstr "Nome de membro do cluster" @@ -4191,8 +4191,8 @@ msgstr "Nome de membro do cluster" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 #, fuzzy msgid "Missing key name" msgstr "Nome de membro do cluster" @@ -4263,13 +4263,13 @@ msgid "Missing peer name" msgstr "Nome de membro do cluster" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4413,8 +4413,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4810,8 +4810,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -5069,7 +5069,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -5411,7 +5411,7 @@ msgstr "Nome de membro do cluster" msgid "Revoke cluster member join token" msgstr "Nome de membro do cluster" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5487,11 +5487,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, fuzzy, c-format msgid "Secret key: %s" msgstr "Criado: %s" @@ -5692,12 +5692,12 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 #, fuzzy msgid "Set storage bucket configuration keys" msgstr "Editar configurações de perfil como YAML" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5793,7 +5793,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 #, fuzzy msgid "Set the key as a storage bucket property" msgstr "Criar novas redes" @@ -5956,12 +5956,12 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 #, fuzzy msgid "Show storage bucket configurations" msgstr "Editar configurações do container ou do servidor como YAML" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 #, fuzzy msgid "Show storage bucket key configurations" msgstr "Editar configurações do container ou do servidor como YAML" @@ -6115,22 +6115,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "Copiar a imagem: %s" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, fuzzy, c-format msgid "Storage bucket %s created" msgstr "Clustering ativado" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, fuzzy, c-format msgid "Storage bucket %s deleted" msgstr "Clustering ativado" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6368,7 +6368,7 @@ msgstr "Nome de membro do cluster" msgid "The property %q does not exist on the project %q: %v" msgstr "Nome de membro do cluster" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, fuzzy, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "Nome de membro do cluster" @@ -6721,7 +6721,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "Editar configurações de perfil como YAML" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 #, fuzzy msgid "Unset storage bucket configuration keys" msgstr "Editar configurações de perfil como YAML" @@ -6780,7 +6780,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 #, fuzzy msgid "Unset the key as a storage bucket property" msgstr "Editar configurações de perfil como YAML" @@ -7430,7 +7430,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -7439,20 +7439,20 @@ msgstr "" msgid "[:] []" msgstr "Criar perfis" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 #, fuzzy msgid "[:] " msgstr "Criar perfis" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 #, fuzzy msgid "[:] " msgstr "Editar templates de arquivo do container" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 #, fuzzy msgid "[:] =..." msgstr "Editar templates de arquivo do container" @@ -8019,19 +8019,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -8041,14 +8051,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/ru.po b/po/ru.po index 4640a6a03902..e5d833a8a685 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Александр Киль \n" "Language-Team: Russian =20) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 #, fuzzy msgid "" "### This is a YAML representation of a storage bucket.\n" @@ -831,11 +831,11 @@ msgstr "" msgid "Accept certificate" msgstr "Принять сертификат" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -968,7 +968,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, fuzzy, c-format msgid "Admin access key: %s" msgstr "Пароль администратора для %s: " @@ -978,7 +978,7 @@ msgstr "Пароль администратора для %s: " msgid "Admin password (or token) for %s:" msgstr "Пароль администратора для %s: " -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, fuzzy, c-format msgid "Admin secret key: %s" msgstr "Авто-обновление: %s" @@ -1142,7 +1142,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1423,13 +1423,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1495,8 +1495,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1713,7 +1713,7 @@ msgstr "" msgid "Create instances from images" msgstr "Невозможно добавить имя контейнера в список" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 #, fuzzy msgid "Create key for a storage bucket" msgstr "Копирование образа: %s" @@ -1814,7 +1814,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1883,7 +1883,7 @@ msgstr "Невозможно добавить имя контейнера в с msgid "Delete instances and snapshots" msgstr "Невозможно добавить имя контейнера в список" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 #, fuzzy msgid "Delete key from a storage bucket" msgstr "Копирование образа: %s" @@ -1927,7 +1927,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 #, fuzzy msgid "Delete storage buckets" msgstr "Копирование образа: %s" @@ -2034,13 +2034,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -2305,12 +2305,12 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 #, fuzzy msgid "Edit storage bucket configurations as YAML" msgstr "Копирование образа: %s" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2382,7 +2382,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, fuzzy, c-format msgid "Error setting properties: %v" @@ -2397,7 +2397,7 @@ msgstr "Копирование образа: %s" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2746,7 +2746,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2869,7 +2869,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 #, fuzzy msgid "Get the key as a storage bucket property" msgstr "Копирование образа: %s" @@ -2942,7 +2942,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 #, fuzzy msgid "Get values for storage bucket configuration keys" msgstr "Копирование образа: %s" @@ -3379,7 +3379,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3688,12 +3688,12 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 #, fuzzy msgid "List storage bucket keys" msgstr "Копирование образа: %s" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 #, fuzzy msgid "List storage buckets" msgstr "Копирование образа: %s" @@ -4012,12 +4012,12 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 #, fuzzy msgid "Manage storage bucket keys" msgstr "Копирование образа: %s" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 #, fuzzy msgid "Manage storage bucket keys." msgstr "Копирование образа: %s" @@ -4135,12 +4135,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 #, fuzzy msgid "Missing bucket name" msgstr "Имя контейнера: %s" @@ -4192,8 +4192,8 @@ msgstr "Копирование образа: %s" msgid "Missing instance name" msgstr "Имя контейнера: %s" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 #, fuzzy msgid "Missing key name" msgstr "Имя контейнера: %s" @@ -4264,13 +4264,13 @@ msgid "Missing peer name" msgstr "Имя контейнера: %s" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -4417,8 +4417,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4818,8 +4818,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -5071,7 +5071,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -5408,7 +5408,7 @@ msgstr "Копирование образа: %s" msgid "Revoke cluster member join token" msgstr "Копирование образа: %s" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5484,11 +5484,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, fuzzy, c-format msgid "Secret key: %s" msgstr "Авто-обновление: %s" @@ -5684,12 +5684,12 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 #, fuzzy msgid "Set storage bucket configuration keys" msgstr "Копирование образа: %s" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5785,7 +5785,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 #, fuzzy msgid "Set the key as a storage bucket property" msgstr "Копирование образа: %s" @@ -5945,12 +5945,12 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 #, fuzzy msgid "Show storage bucket configurations" msgstr "Копирование образа: %s" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 #, fuzzy msgid "Show storage bucket key configurations" msgstr "Копирование образа: %s" @@ -6108,22 +6108,22 @@ msgstr "Невозможно добавить имя контейнера в с msgid "Stopping the instance failed: %s" msgstr "Невозможно добавить имя контейнера в список" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, fuzzy, c-format msgid "Storage bucket %s created" msgstr " Использование сети:" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, fuzzy, c-format msgid "Storage bucket %s deleted" msgstr " Использование сети:" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6357,7 +6357,7 @@ msgstr "Копирование образа: %s" msgid "The property %q does not exist on the project %q: %v" msgstr "Копирование образа: %s" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, fuzzy, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "Копирование образа: %s" @@ -6702,7 +6702,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 #, fuzzy msgid "Unset storage bucket configuration keys" msgstr "Копирование образа: %s" @@ -6761,7 +6761,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 #, fuzzy msgid "Unset the key as a storage bucket property" msgstr "Копирование образа: %s" @@ -7739,7 +7739,7 @@ msgstr "" "lxc %s [:] [[:]...]%s" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 #, fuzzy msgid "[:]" msgstr "" @@ -7755,8 +7755,8 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 #, fuzzy msgid "[:] " msgstr "" @@ -7764,9 +7764,9 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 #, fuzzy msgid "[:] " msgstr "" @@ -7774,7 +7774,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 #, fuzzy msgid "[:] =..." msgstr "" @@ -8509,19 +8509,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -8531,14 +8541,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/si.po b/po/si.po index 542eb47e7610..8d93c1803175 100644 --- a/po/si.po +++ b/po/si.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Sinhala 1;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -700,7 +700,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -710,7 +710,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -869,7 +869,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1143,13 +1143,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1215,8 +1215,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1425,7 +1425,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1514,7 +1514,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1579,7 +1579,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1619,7 +1619,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1724,13 +1724,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1981,11 +1981,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2057,7 +2057,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2072,7 +2072,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2411,7 +2411,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2528,7 +2528,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2592,7 +2592,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3018,7 +3018,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3313,11 +3313,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3612,11 +3612,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3725,12 +3725,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3774,8 +3774,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3840,13 +3840,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3987,8 +3987,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4383,8 +4383,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4636,7 +4636,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4950,7 +4950,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5025,11 +5025,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5218,11 +5218,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/sl.po b/po/sl.po index 593f5aa54265..baa47d256cf6 100644 --- a/po/sl.po +++ b/po/sl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Slovenian :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5459,11 +5459,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5613,22 +5613,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5861,7 +5861,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6847,7 +6847,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6855,18 +6855,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7409,19 +7409,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7431,14 +7441,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/sr.po b/po/sr.po index 190da37c6691..358329a9a851 100644 --- a/po/sr.po +++ b/po/sr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian =20) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -569,11 +569,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -701,7 +701,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -711,7 +711,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -870,7 +870,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1144,13 +1144,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1216,8 +1216,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1426,7 +1426,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1515,7 +1515,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1580,7 +1580,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1620,7 +1620,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1725,13 +1725,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1982,11 +1982,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2058,7 +2058,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2073,7 +2073,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2412,7 +2412,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2529,7 +2529,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2593,7 +2593,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3019,7 +3019,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3314,11 +3314,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3613,11 +3613,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3726,12 +3726,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3775,8 +3775,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3841,13 +3841,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3988,8 +3988,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4384,8 +4384,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4637,7 +4637,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4951,7 +4951,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5026,11 +5026,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5219,11 +5219,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5459,11 +5459,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5613,22 +5613,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5861,7 +5861,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6847,7 +6847,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6855,18 +6855,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7409,19 +7409,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7431,14 +7441,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/sv.po b/po/sv.po index 37d3245d3b1a..d67ef69969b3 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Swedish :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/te.po b/po/te.po index 71eec3fe94c9..ef47cc9d265f 100644 --- a/po/te.po +++ b/po/te.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Telugu :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/th.po b/po/th.po index e7e54e625fa7..0fd3ffdd3448 100644 --- a/po/th.po +++ b/po/th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -16,7 +16,7 @@ msgstr "" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -565,11 +565,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -697,7 +697,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -707,7 +707,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -866,7 +866,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1140,13 +1140,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1212,8 +1212,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1422,7 +1422,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1511,7 +1511,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1576,7 +1576,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1616,7 +1616,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1721,13 +1721,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1978,11 +1978,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2054,7 +2054,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2069,7 +2069,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2408,7 +2408,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2525,7 +2525,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2589,7 +2589,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3015,7 +3015,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3310,11 +3310,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3609,11 +3609,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3722,12 +3722,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3771,8 +3771,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3837,13 +3837,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3984,8 +3984,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4380,8 +4380,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4633,7 +4633,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4947,7 +4947,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5022,11 +5022,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5215,11 +5215,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5310,7 +5310,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5455,11 +5455,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5609,22 +5609,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5857,7 +5857,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6190,7 +6190,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6242,7 +6242,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6843,7 +6843,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6851,18 +6851,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7405,19 +7405,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7427,14 +7437,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/tr.po b/po/tr.po index 4ee3bdf9058e..170a14039ede 100644 --- a/po/tr.po +++ b/po/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Turkish :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/tzm.po b/po/tzm.po index 71c78d486529..9d57a1ad47d2 100644 --- a/po/tzm.po +++ b/po/tzm.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Tamazight (Central Atlas) = 2 && (n < 11 || n > 99);\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -568,11 +568,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -700,7 +700,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -710,7 +710,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -869,7 +869,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1143,13 +1143,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1215,8 +1215,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1425,7 +1425,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1514,7 +1514,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1579,7 +1579,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1619,7 +1619,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1724,13 +1724,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1981,11 +1981,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2057,7 +2057,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2072,7 +2072,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2411,7 +2411,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2528,7 +2528,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2592,7 +2592,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3018,7 +3018,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3313,11 +3313,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3612,11 +3612,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3725,12 +3725,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3774,8 +3774,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3840,13 +3840,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3987,8 +3987,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4383,8 +4383,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4636,7 +4636,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4950,7 +4950,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5025,11 +5025,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5218,11 +5218,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/ug.po b/po/ug.po index 7a1b384b398e..856decfc0a60 100644 --- a/po/ug.po +++ b/po/ug.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Uyghur :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/uk.po b/po/uk.po index a0c1fd294d43..c26aff879cd2 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Ukrainian =20) ? 1 : 2;\n" "X-Generator: Weblate 4.12-dev\n" -#: lxc/storage_bucket.go:255 lxc/storage_bucket.go:1028 +#: lxc/storage_bucket.go:260 lxc/storage_bucket.go:1033 msgid "" "### This is a YAML representation of a storage bucket.\n" "### Any line starting with a '# will be ignored.\n" @@ -569,11 +569,11 @@ msgstr "" msgid "Accept certificate" msgstr "" -#: lxc/storage_bucket.go:858 +#: lxc/storage_bucket.go:863 msgid "Access key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:936 +#: lxc/storage_bucket.go:941 #, c-format msgid "Access key: %s" msgstr "" @@ -701,7 +701,7 @@ msgstr "" msgid "Address: %s" msgstr "" -#: lxc/storage_bucket.go:164 +#: lxc/storage_bucket.go:169 #, c-format msgid "Admin access key: %s" msgstr "" @@ -711,7 +711,7 @@ msgstr "" msgid "Admin password (or token) for %s:" msgstr "" -#: lxc/storage_bucket.go:165 +#: lxc/storage_bucket.go:170 #, c-format msgid "Admin secret key: %s" msgstr "" @@ -870,7 +870,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:136 +#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1144,13 +1144,13 @@ msgstr "" #: lxc/network_load_balancer.go:806 lxc/network_load_balancer.go:870 #: lxc/network_load_balancer.go:971 lxc/network_load_balancer.go:1033 #: lxc/storage.go:99 lxc/storage.go:347 lxc/storage.go:418 lxc/storage.go:671 -#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:85 -#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:248 -#: lxc/storage_bucket.go:379 lxc/storage_bucket.go:536 -#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:695 -#: lxc/storage_bucket.go:770 lxc/storage_bucket.go:856 -#: lxc/storage_bucket.go:956 lxc/storage_bucket.go:1021 -#: lxc/storage_bucket.go:1157 lxc/storage_volume.go:358 +#: lxc/storage.go:765 lxc/storage.go:850 lxc/storage_bucket.go:90 +#: lxc/storage_bucket.go:190 lxc/storage_bucket.go:253 +#: lxc/storage_bucket.go:384 lxc/storage_bucket.go:541 +#: lxc/storage_bucket.go:634 lxc/storage_bucket.go:700 +#: lxc/storage_bucket.go:775 lxc/storage_bucket.go:861 +#: lxc/storage_bucket.go:961 lxc/storage_bucket.go:1026 +#: lxc/storage_bucket.go:1162 lxc/storage_volume.go:358 #: lxc/storage_volume.go:560 lxc/storage_volume.go:639 #: lxc/storage_volume.go:883 lxc/storage_volume.go:1097 #: lxc/storage_volume.go:1210 lxc/storage_volume.go:1678 @@ -1216,8 +1216,8 @@ msgstr "" #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 #: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 -#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:343 -#: lxc/storage_bucket.go:1120 lxc/storage_volume.go:1016 +#: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 +#: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" @@ -1426,7 +1426,7 @@ msgstr "" msgid "Create instances from images" msgstr "" -#: lxc/storage_bucket.go:846 lxc/storage_bucket.go:847 +#: lxc/storage_bucket.go:851 lxc/storage_bucket.go:852 msgid "Create key for a storage bucket" msgstr "" @@ -1515,7 +1515,7 @@ msgstr "" #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 #: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 -#: lxc/storage_bucket.go:507 lxc/storage_bucket.go:827 +#: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1580,7 +1580,7 @@ msgstr "" msgid "Delete instances and snapshots" msgstr "" -#: lxc/storage_bucket.go:952 lxc/storage_bucket.go:953 +#: lxc/storage_bucket.go:957 lxc/storage_bucket.go:958 msgid "Delete key from a storage bucket" msgstr "" @@ -1620,7 +1620,7 @@ msgstr "" msgid "Delete projects" msgstr "" -#: lxc/storage_bucket.go:182 lxc/storage_bucket.go:183 +#: lxc/storage_bucket.go:187 lxc/storage_bucket.go:188 msgid "Delete storage buckets" msgstr "" @@ -1725,13 +1725,13 @@ msgstr "" #: lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 #: lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 #: lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 -#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:183 -#: lxc/storage_bucket.go:244 lxc/storage_bucket.go:377 -#: lxc/storage_bucket.go:453 lxc/storage_bucket.go:530 -#: lxc/storage_bucket.go:624 lxc/storage_bucket.go:693 -#: lxc/storage_bucket.go:727 lxc/storage_bucket.go:768 -#: lxc/storage_bucket.go:847 lxc/storage_bucket.go:953 -#: lxc/storage_bucket.go:1017 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 +#: lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 +#: lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 +#: lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 +#: lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 +#: lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 +#: lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 #: lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 #: lxc/storage_volume.go:354 lxc/storage_volume.go:557 #: lxc/storage_volume.go:636 lxc/storage_volume.go:711 @@ -1982,11 +1982,11 @@ msgstr "" msgid "Edit project configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:243 lxc/storage_bucket.go:244 +#: lxc/storage_bucket.go:248 lxc/storage_bucket.go:249 msgid "Edit storage bucket configurations as YAML" msgstr "" -#: lxc/storage_bucket.go:1016 lxc/storage_bucket.go:1017 +#: lxc/storage_bucket.go:1021 lxc/storage_bucket.go:1022 msgid "Edit storage bucket key as YAML" msgstr "" @@ -2058,7 +2058,7 @@ msgstr "" #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 #: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 -#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:597 +#: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" @@ -2073,7 +2073,7 @@ msgstr "" #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 #: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 -#: lxc/storage_bucket.go:591 lxc/storage_volume.go:1941 +#: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" @@ -2412,7 +2412,7 @@ msgstr "" #: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 -#: lxc/storage_bucket.go:454 lxc/storage_bucket.go:769 +#: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 #: lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2529,7 +2529,7 @@ msgstr "" msgid "Get the key as a project property" msgstr "" -#: lxc/storage_bucket.go:380 +#: lxc/storage_bucket.go:385 msgid "Get the key as a storage bucket property" msgstr "" @@ -2593,7 +2593,7 @@ msgstr "" msgid "Get values for project configuration keys" msgstr "" -#: lxc/storage_bucket.go:376 lxc/storage_bucket.go:377 +#: lxc/storage_bucket.go:381 lxc/storage_bucket.go:382 msgid "Get values for storage bucket configuration keys" msgstr "" @@ -3019,7 +3019,7 @@ msgstr "" #: lxc/list.go:597 lxc/network.go:1059 lxc/network_forward.go:155 #: lxc/network_load_balancer.go:157 lxc/operation.go:177 -#: lxc/storage_bucket.go:511 lxc/storage_volume.go:1569 lxc/warning.go:220 +#: lxc/storage_bucket.go:516 lxc/storage_volume.go:1569 lxc/warning.go:220 msgid "LOCATION" msgstr "" @@ -3314,11 +3314,11 @@ msgstr "" msgid "List projects" msgstr "" -#: lxc/storage_bucket.go:766 lxc/storage_bucket.go:768 +#: lxc/storage_bucket.go:771 lxc/storage_bucket.go:773 msgid "List storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:451 lxc/storage_bucket.go:453 +#: lxc/storage_bucket.go:456 lxc/storage_bucket.go:458 msgid "List storage buckets" msgstr "" @@ -3613,11 +3613,11 @@ msgstr "" msgid "Manage projects" msgstr "" -#: lxc/storage_bucket.go:726 +#: lxc/storage_bucket.go:731 msgid "Manage storage bucket keys" msgstr "" -#: lxc/storage_bucket.go:727 +#: lxc/storage_bucket.go:732 msgid "Manage storage bucket keys." msgstr "" @@ -3726,12 +3726,12 @@ msgid "" "Minimum level for log messages (only available when using pretty format)" msgstr "" -#: lxc/storage_bucket.go:111 lxc/storage_bucket.go:211 -#: lxc/storage_bucket.go:287 lxc/storage_bucket.go:406 -#: lxc/storage_bucket.go:563 lxc/storage_bucket.go:655 -#: lxc/storage_bucket.go:797 lxc/storage_bucket.go:884 -#: lxc/storage_bucket.go:981 lxc/storage_bucket.go:1060 -#: lxc/storage_bucket.go:1183 +#: lxc/storage_bucket.go:116 lxc/storage_bucket.go:216 +#: lxc/storage_bucket.go:292 lxc/storage_bucket.go:411 +#: lxc/storage_bucket.go:568 lxc/storage_bucket.go:660 +#: lxc/storage_bucket.go:802 lxc/storage_bucket.go:889 +#: lxc/storage_bucket.go:986 lxc/storage_bucket.go:1065 +#: lxc/storage_bucket.go:1188 msgid "Missing bucket name" msgstr "" @@ -3775,8 +3775,8 @@ msgstr "" msgid "Missing instance name" msgstr "" -#: lxc/storage_bucket.go:888 lxc/storage_bucket.go:985 -#: lxc/storage_bucket.go:1064 lxc/storage_bucket.go:1187 +#: lxc/storage_bucket.go:893 lxc/storage_bucket.go:990 +#: lxc/storage_bucket.go:1069 lxc/storage_bucket.go:1192 msgid "Missing key name" msgstr "" @@ -3841,13 +3841,13 @@ msgid "Missing peer name" msgstr "" #: lxc/storage.go:194 lxc/storage.go:264 lxc/storage.go:370 lxc/storage.go:440 -#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:107 -#: lxc/storage_bucket.go:207 lxc/storage_bucket.go:283 -#: lxc/storage_bucket.go:402 lxc/storage_bucket.go:477 -#: lxc/storage_bucket.go:559 lxc/storage_bucket.go:651 -#: lxc/storage_bucket.go:793 lxc/storage_bucket.go:880 -#: lxc/storage_bucket.go:977 lxc/storage_bucket.go:1056 -#: lxc/storage_bucket.go:1179 lxc/storage_volume.go:189 +#: lxc/storage.go:695 lxc/storage.go:793 lxc/storage_bucket.go:112 +#: lxc/storage_bucket.go:212 lxc/storage_bucket.go:288 +#: lxc/storage_bucket.go:407 lxc/storage_bucket.go:482 +#: lxc/storage_bucket.go:564 lxc/storage_bucket.go:656 +#: lxc/storage_bucket.go:798 lxc/storage_bucket.go:885 +#: lxc/storage_bucket.go:982 lxc/storage_bucket.go:1061 +#: lxc/storage_bucket.go:1184 lxc/storage_volume.go:189 #: lxc/storage_volume.go:287 lxc/storage_volume.go:583 #: lxc/storage_volume.go:660 lxc/storage_volume.go:735 #: lxc/storage_volume.go:817 lxc/storage_volume.go:919 @@ -3988,8 +3988,8 @@ msgstr "" #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 #: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 #: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 -#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:506 -#: lxc/storage_bucket.go:826 lxc/storage_volume.go:1561 +#: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 +#: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -4384,8 +4384,8 @@ msgstr "" #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 #: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 -#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:344 -#: lxc/storage_bucket.go:1121 lxc/storage_volume.go:1017 +#: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 +#: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4637,7 +4637,7 @@ msgstr "" msgid "RESOURCE" msgstr "" -#: lxc/storage_bucket.go:828 +#: lxc/storage_bucket.go:833 msgid "ROLE" msgstr "" @@ -4951,7 +4951,7 @@ msgstr "" msgid "Revoke cluster member join token" msgstr "" -#: lxc/storage_bucket.go:857 +#: lxc/storage_bucket.go:862 msgid "Role (admin or read-only)" msgstr "" @@ -5026,11 +5026,11 @@ msgstr "" msgid "STP" msgstr "" -#: lxc/storage_bucket.go:859 +#: lxc/storage_bucket.go:864 msgid "Secret key (auto-generated if empty)" msgstr "" -#: lxc/storage_bucket.go:937 +#: lxc/storage_bucket.go:942 #, c-format msgid "Secret key: %s" msgstr "" @@ -5219,11 +5219,11 @@ msgid "" " lxc project set [:] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5314,7 +5314,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5459,11 +5459,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5613,22 +5613,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5861,7 +5861,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6194,7 +6194,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6246,7 +6246,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6847,7 +6847,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6855,18 +6855,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7409,19 +7409,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7431,14 +7441,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/zh_Hans.po b/po/zh_Hans.po index 89a1fb342de4..e70907512428 100644 --- a/po/zh_Hans.po +++ b/po/zh_Hans.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: 0x0916 \n" "Language-Team: Chinese (Simplified) :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5474,7 +5474,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5619,11 +5619,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5773,22 +5773,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -6021,7 +6021,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6354,7 +6354,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6406,7 +6406,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -7007,7 +7007,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -7015,18 +7015,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7569,19 +7569,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7591,14 +7601,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " diff --git a/po/zh_Hant.po b/po/zh_Hant.po index 478b69503ef1..afea373742f0 100644 --- a/po/zh_Hant.po +++ b/po/zh_Hant.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 07:36+0200\n" +"POT-Creation-Date: 2024-08-28 17:34+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Traditional) :] " msgstr "" -#: lxc/storage_bucket.go:529 +#: lxc/storage_bucket.go:534 msgid "Set storage bucket configuration keys" msgstr "" -#: lxc/storage_bucket.go:530 +#: lxc/storage_bucket.go:535 msgid "" "Set storage bucket configuration keys\n" "\n" @@ -5313,7 +5313,7 @@ msgstr "" msgid "Set the key as a project property" msgstr "" -#: lxc/storage_bucket.go:537 +#: lxc/storage_bucket.go:542 msgid "Set the key as a storage bucket property" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Show project options" msgstr "" -#: lxc/storage_bucket.go:623 lxc/storage_bucket.go:624 +#: lxc/storage_bucket.go:628 lxc/storage_bucket.go:629 msgid "Show storage bucket configurations" msgstr "" -#: lxc/storage_bucket.go:1151 lxc/storage_bucket.go:1152 +#: lxc/storage_bucket.go:1156 lxc/storage_bucket.go:1157 msgid "Show storage bucket key configurations" msgstr "" @@ -5612,22 +5612,22 @@ msgstr "" msgid "Stopping the instance failed: %s" msgstr "" -#: lxc/storage_bucket.go:161 +#: lxc/storage_bucket.go:166 #, c-format msgid "Storage bucket %s created" msgstr "" -#: lxc/storage_bucket.go:228 +#: lxc/storage_bucket.go:233 #, c-format msgid "Storage bucket %s deleted" msgstr "" -#: lxc/storage_bucket.go:935 +#: lxc/storage_bucket.go:940 #, c-format msgid "Storage bucket key %s added" msgstr "" -#: lxc/storage_bucket.go:1001 +#: lxc/storage_bucket.go:1006 #, c-format msgid "Storage bucket key %s removed" msgstr "" @@ -5860,7 +5860,7 @@ msgstr "" msgid "The property %q does not exist on the project %q: %v" msgstr "" -#: lxc/storage_bucket.go:426 +#: lxc/storage_bucket.go:431 #, c-format msgid "The property %q does not exist on the storage bucket %q: %v" msgstr "" @@ -6193,7 +6193,7 @@ msgstr "" msgid "Unset project configuration keys" msgstr "" -#: lxc/storage_bucket.go:692 lxc/storage_bucket.go:693 +#: lxc/storage_bucket.go:697 lxc/storage_bucket.go:698 msgid "Unset storage bucket configuration keys" msgstr "" @@ -6245,7 +6245,7 @@ msgstr "" msgid "Unset the key as a project property" msgstr "" -#: lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:701 msgid "Unset the key as a storage bucket property" msgstr "" @@ -6846,7 +6846,7 @@ msgid "[:]" msgstr "" #: lxc/storage.go:167 lxc/storage.go:218 lxc/storage.go:412 lxc/storage.go:759 -#: lxc/storage_bucket.go:449 +#: lxc/storage_bucket.go:454 msgid "[:]" msgstr "" @@ -6854,18 +6854,18 @@ msgstr "" msgid "[:] []" msgstr "" -#: lxc/storage_bucket.go:180 lxc/storage_bucket.go:242 -#: lxc/storage_bucket.go:622 lxc/storage_bucket.go:764 +#: lxc/storage_bucket.go:185 lxc/storage_bucket.go:247 +#: lxc/storage_bucket.go:627 lxc/storage_bucket.go:769 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:375 lxc/storage_bucket.go:691 -#: lxc/storage_bucket.go:845 lxc/storage_bucket.go:951 -#: lxc/storage_bucket.go:1015 lxc/storage_bucket.go:1150 +#: lxc/storage_bucket.go:380 lxc/storage_bucket.go:696 +#: lxc/storage_bucket.go:850 lxc/storage_bucket.go:956 +#: lxc/storage_bucket.go:1020 lxc/storage_bucket.go:1155 msgid "[:] " msgstr "" -#: lxc/storage_bucket.go:528 +#: lxc/storage_bucket.go:533 msgid "[:] =..." msgstr "" @@ -7408,19 +7408,29 @@ msgid "" " Restore the snapshot." msgstr "" -#: lxc/storage_bucket.go:245 +#: lxc/storage_bucket.go:84 +msgid "" +"lxc storage bucket create p1 b01\n" +"\tCreate a new storage bucket name b01 in storage pool p1\n" +"\n" +"lxc storage bucket create p1 b01 < config.yaml\n" +"\tCreate a new storage bucket name b01 in storage pool p1 using the content " +"of config.yaml" +msgstr "" + +#: lxc/storage_bucket.go:250 msgid "" "lxc storage bucket edit [:] < bucket.yaml\n" " Update a storage bucket using the content of bucket.yaml." msgstr "" -#: lxc/storage_bucket.go:1018 +#: lxc/storage_bucket.go:1023 msgid "" "lxc storage bucket edit [:] < key.yaml\n" " Update a storage bucket key using the content of key.yaml." msgstr "" -#: lxc/storage_bucket.go:848 +#: lxc/storage_bucket.go:853 msgid "" "lxc storage bucket key create p1 b01 k1\n" "\tCreate a key called k1 for the bucket b01 in the pool p1.\n" @@ -7430,14 +7440,14 @@ msgid "" "of config.yaml." msgstr "" -#: lxc/storage_bucket.go:1153 +#: lxc/storage_bucket.go:1158 msgid "" "lxc storage bucket key show default data foo\n" " Will show the properties of a bucket key called \"foo\" for a bucket " "called \"data\" in the \"default\" pool." msgstr "" -#: lxc/storage_bucket.go:625 +#: lxc/storage_bucket.go:630 msgid "" "lxc storage bucket show default data\n" " Will show the properties of a bucket called \"data\" in the \"default\" " From 433a23164c25cef60a4350e336d0e01a0d9b562b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Fri, 26 Jul 2024 18:40:07 -0400 Subject: [PATCH 160/169] client: Report source errors too on copy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber (cherry picked from commit 47310d37446077f9606705a6736952fae1ae5869) Signed-off-by: Mark Bolton License: Apache-2.0 --- client/lxd_instances.go | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/client/lxd_instances.go b/client/lxd_instances.go index b67be32eac69..f40129160109 100644 --- a/client/lxd_instances.go +++ b/client/lxd_instances.go @@ -723,6 +723,9 @@ func (r *ProtocolLXD) tryCreateInstance(req api.InstancesPost, urls []string, op operation := req.Source.Operation // Forward targetOp to remote op + chConnect := make(chan error, 1) + chWait := make(chan error, 1) + go func() { success := false var errors []remoteOperationResult @@ -762,13 +765,35 @@ func (r *ProtocolLXD) tryCreateInstance(req api.InstancesPost, urls []string, op break } - if !success { - rop.err = remoteOperationError("Failed instance creation", errors) + if success { + chConnect <- nil + close(chConnect) + } else { + chConnect <- remoteOperationError("Failed instance creation", errors) + close(chConnect) + if op != nil { _ = op.Cancel() } } + }() + + if op != nil { + go func() { + chWait <- op.Wait() + close(chWait) + }() + } + + go func() { + var err error + + select { + case err = <-chConnect: + case err = <-chWait: + } + rop.err = err close(rop.chDone) }() From ba28f05a3afc8436e7de0ebbe33904153eba44f5 Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Wed, 28 Aug 2024 23:04:24 +0200 Subject: [PATCH 161/169] lxd/device/cdi: add no-op `defaultNvidiaTegraCSVFiles` for armhf Signed-off-by: Gabriel Mougard --- lxd/device/cdi/spec_unsupported.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lxd/device/cdi/spec_unsupported.go b/lxd/device/cdi/spec_unsupported.go index 10185d102c3f..c267fa9598ab 100644 --- a/lxd/device/cdi/spec_unsupported.go +++ b/lxd/device/cdi/spec_unsupported.go @@ -9,6 +9,10 @@ import ( "tags.cncf.io/container-device-interface/specs-go" ) +func defaultNvidiaTegraCSVFiles(rootPath string) []string { + return []string{} +} + func generateSpec(cdiID ID, inst instance.Instance) (*specs.Spec, error) { return nil, fmt.Errorf("NVIDIA CDI operations not supported on this platform") } From ea8f9d35639909b6bb66276f7d7d95729d5ef929 Mon Sep 17 00:00:00 2001 From: Simon Deziel Date: Wed, 28 Aug 2024 17:10:22 -0400 Subject: [PATCH 162/169] doc/guest-os-compatibility: add SUSE 12 and 15 Signed-off-by: Simon Deziel --- doc/guest-os-compatibility.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/guest-os-compatibility.md b/doc/guest-os-compatibility.md index 76fc79f0ee23..11db5c86e2f7 100644 --- a/doc/guest-os-compatibility.md +++ b/doc/guest-os-compatibility.md @@ -13,6 +13,8 @@ CentOS | CentOS 9-Stream | Supported | 🟢 [^3] | ✅ Red Hat | RHEL 7.9 | EOL | ❌ [^2] | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ Red Hat | RHEL 8.10 | Supported | 🟢 [^3] | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ Red Hat | RHEL 9.4 | Supported | 🟢 [^3] | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ +SUSE | SLES 12 SP5 | Supported | ✅ | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ +SUSE | SLES 15 SP6 | Supported | ✅ | ✅ | 🟢 | 🟢 | 🟢 | ✅ | ✅ Windows | Server 2012 | Supported | ➖ | ✅ | 🟢 | ❌ | 🟢 | ✅ | ✅ Windows | Server 2016 | Supported | ➖ | ✅ | 🟢 | 🟢 [^4] | ❌ [^6] | ✅ | ✅ Windows | Server 2019 | Supported | ➖ | ✅ | 🟢 | 🟢 | ❌ [^6] | ✅ | ✅ From 398d6aeb5eabd03b6dc238ca21da77774e8e1270 Mon Sep 17 00:00:00 2001 From: Mark Bolton Date: Wed, 28 Aug 2024 14:15:25 -0700 Subject: [PATCH 163/169] client: Fix potential panic-causing type assertions Signed-off-by: Mark Bolton --- client/lxd_instances.go | 88 +++++++++++++++++++++++++++++++++-------- 1 file changed, 72 insertions(+), 16 deletions(-) diff --git a/client/lxd_instances.go b/client/lxd_instances.go index f40129160109..ef1a84226231 100644 --- a/client/lxd_instances.go +++ b/client/lxd_instances.go @@ -978,7 +978,12 @@ func (r *ProtocolLXD) CopyInstance(source InstanceServer, instance api.Instance, targetSecrets := map[string]string{} for k, v := range opAPI.Metadata { - targetSecrets[k] = v.(string) + vStr, ok := v.(string) + if !ok { + continue + } + + targetSecrets[k] = vStr } // Prepare the source request @@ -1006,7 +1011,12 @@ func (r *ProtocolLXD) CopyInstance(source InstanceServer, instance api.Instance, sourceSecrets := map[string]string{} for k, v := range opAPI.Metadata { - sourceSecrets[k] = v.(string) + vStr, ok := v.(string) + if !ok { + continue + } + + sourceSecrets[k] = vStr } // Relay mode migration @@ -1026,7 +1036,12 @@ func (r *ProtocolLXD) CopyInstance(source InstanceServer, instance api.Instance, // Extract the websockets targetSecrets := map[string]string{} for k, v := range targetOpAPI.Metadata { - targetSecrets[k] = v.(string) + vStr, ok := v.(string) + if !ok { + continue + } + + targetSecrets[k] = vStr } // Launch the relay @@ -1268,9 +1283,16 @@ func (r *ProtocolLXD) ExecInstance(instanceName string, exec api.InstanceExecPos value, ok := opAPI.Metadata["fds"] if ok { - values := value.(map[string]any) - for k, v := range values { - fds[k] = v.(string) + values, ok := value.(map[string]any) + if ok { + for k, v := range values { + vStr, ok := v.(string) + if !ok { + continue + } + + fds[k] = vStr + } } } @@ -1285,7 +1307,12 @@ func (r *ProtocolLXD) ExecInstance(instanceName string, exec api.InstanceExecPos outputs, ok := opAPI.Metadata["output"].(map[string]any) if ok { for k, v := range outputs { - outputFiles[k] = v.(string) + vStr, ok := v.(string) + if !ok { + continue + } + + outputFiles[k] = vStr } } @@ -2017,7 +2044,12 @@ func (r *ProtocolLXD) CopyInstanceSnapshot(source InstanceServer, instanceName s targetSecrets := map[string]string{} for k, v := range opAPI.Metadata { - targetSecrets[k] = v.(string) + vStr, ok := v.(string) + if !ok { + continue + } + + targetSecrets[k] = vStr } // Prepare the source request @@ -2045,7 +2077,12 @@ func (r *ProtocolLXD) CopyInstanceSnapshot(source InstanceServer, instanceName s sourceSecrets := map[string]string{} for k, v := range opAPI.Metadata { - sourceSecrets[k] = v.(string) + vStr, ok := v.(string) + if !ok { + continue + } + + sourceSecrets[k] = vStr } // Relay mode migration @@ -2065,7 +2102,12 @@ func (r *ProtocolLXD) CopyInstanceSnapshot(source InstanceServer, instanceName s // Extract the websockets targetSecrets := map[string]string{} for k, v := range targetOpAPI.Metadata { - targetSecrets[k] = v.(string) + vStr, ok := v.(string) + if !ok { + continue + } + + targetSecrets[k] = vStr } // Launch the relay @@ -2621,9 +2663,16 @@ func (r *ProtocolLXD) ConsoleInstance(instanceName string, console api.InstanceC value, ok := opAPI.Metadata["fds"] if ok { - values := value.(map[string]any) - for k, v := range values { - fds[k] = v.(string) + values, ok := value.(map[string]any) + if ok { + for k, v := range values { + vStr, ok := v.(string) + if !ok { + continue + } + + fds[k] = vStr + } } } @@ -2713,9 +2762,16 @@ func (r *ProtocolLXD) ConsoleInstanceDynamic(instanceName string, console api.In value, ok := opAPI.Metadata["fds"] if ok { - values := value.(map[string]any) - for k, v := range values { - fds[k] = v.(string) + values, ok := value.(map[string]any) + if ok { + for k, v := range values { + vStr, ok := v.(string) + if !ok { + continue + } + + fds[k] = vStr + } } } From 4018acd77a5429cc81be2012460fae26d1a94bac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?St=C3=A9phane=20Graber?= Date: Tue, 20 Aug 2024 16:22:33 -0400 Subject: [PATCH 164/169] lxd/storage_volumes_state: Handle unsupported response from drivers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Stéphane Graber (cherry picked from commit 4f5efd6132a263fe56e98ad1262a70159f8f8934) Signed-off-by: Wesley Hershberger License: Apache-2.0 --- lxd/storage_volumes_state.go | 24 ++++++++++++++---------- 1 file changed, 14 insertions(+), 10 deletions(-) diff --git a/lxd/storage_volumes_state.go b/lxd/storage_volumes_state.go index 8cb9fa5849e8..fed51b2a55a6 100644 --- a/lxd/storage_volumes_state.go +++ b/lxd/storage_volumes_state.go @@ -15,6 +15,7 @@ import ( "github.com/canonical/lxd/lxd/request" "github.com/canonical/lxd/lxd/response" storagePools "github.com/canonical/lxd/lxd/storage" + storageDrivers "github.com/canonical/lxd/lxd/storage/drivers" "github.com/canonical/lxd/shared" "github.com/canonical/lxd/shared/api" "github.com/canonical/lxd/shared/entity" @@ -121,7 +122,7 @@ func storagePoolVolumeTypeStateGet(d *Daemon, r *http.Request) response.Response if volumeType == cluster.StoragePoolVolumeTypeCustom { // Custom volumes. usage, err = pool.GetCustomVolumeUsage(projectName, volumeName) - if err != nil { + if err != nil && err != storageDrivers.ErrNotSupported { return response.SmartError(err) } } else { @@ -141,23 +142,26 @@ func storagePoolVolumeTypeStateGet(d *Daemon, r *http.Request) response.Response } usage, err = pool.GetInstanceUsage(inst) - if err != nil { + if err != nil && err != storageDrivers.ErrNotSupported { return response.SmartError(err) } } // Prepare the state struct. state := api.StorageVolumeState{} - state.Usage = &api.StorageVolumeStateUsage{} - // Only fill 'used' field if receiving a valid value. - if usage.Used >= 0 { - state.Usage.Used = uint64(usage.Used) - } + if usage != nil { + state.Usage = &api.StorageVolumeStateUsage{} - // Only fill 'total' field if receiving a valid value. - if usage.Total >= 0 { - state.Usage.Total = usage.Total + // Only fill 'used' field if receiving a valid value. + if usage.Used >= 0 { + state.Usage.Used = uint64(usage.Used) + } + + // Only fill 'total' field if receiving a valid value. + if usage.Total >= 0 { + state.Usage.Total = usage.Total + } } return response.SyncResponse(true, state) From 0f8a34491b7f5f23cbb6bbfd102e01dde589ed41 Mon Sep 17 00:00:00 2001 From: Vishesh Agrawal Date: Fri, 26 Apr 2024 11:01:15 +0200 Subject: [PATCH 165/169] lxc/network_zone: Add example for create command Signed-off-by: Vishesh Agrawal (cherry picked from commit 7455f5aee63045fcd3a28f73aaf7ea5f5561ec14) Signed-off-by: Gabriel Mougard License: Apache-2.0 --- lxc/network_zone.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lxc/network_zone.go b/lxc/network_zone.go index d8a55951d05a..43f393138348 100644 --- a/lxc/network_zone.go +++ b/lxc/network_zone.go @@ -269,6 +269,10 @@ func (c *cmdNetworkZoneCreate) command() *cobra.Command { cmd.Use = usage("create", i18n.G("[:] [key=value...]")) cmd.Short = i18n.G("Create new network zones") cmd.Long = cli.FormatSection(i18n.G("Description"), i18n.G("Create new network zones")) + cmd.Example = cli.FormatSection("", i18n.G(`lxc network zone create z1 + +lxc network zone create z1 < config.yaml + Create network zone z1 with configuration from config.yaml`)) cmd.RunE = c.run From e17f26dfa24d9bce050962c0100597a46f09b60c Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Mon, 26 Aug 2024 23:35:04 +0200 Subject: [PATCH 166/169] lxc/network_zone: fix go-vet linter errors Signed-off-by: Gabriel Mougard --- lxc/network_zone.go | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/lxc/network_zone.go b/lxc/network_zone.go index 43f393138348..2d34108f70c8 100644 --- a/lxc/network_zone.go +++ b/lxc/network_zone.go @@ -1,6 +1,7 @@ package main import ( + "errors" "fmt" "io" "os" @@ -112,7 +113,7 @@ func (c *cmdNetworkZoneList) run(cmd *cobra.Command, args []string) error { // List the networks. if resource.name != "" { - return fmt.Errorf(i18n.G("Filtering isn't supported yet")) + return errors.New(i18n.G("Filtering isn't supported yet")) } zones, err := resource.server.GetNetworkZones() @@ -175,7 +176,7 @@ func (c *cmdNetworkZoneShow) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // Show the network zone config. @@ -231,7 +232,7 @@ func (c *cmdNetworkZoneGet) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } resp, _, err := resource.server.GetNetworkZone(resource.name) @@ -295,7 +296,7 @@ func (c *cmdNetworkZoneCreate) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // If stdin isn't a terminal, read yaml from it. @@ -383,7 +384,7 @@ func (c *cmdNetworkZoneSet) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // Get the network zone. @@ -504,7 +505,7 @@ func (c *cmdNetworkZoneEdit) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // If stdin isn't a terminal, read text from it @@ -607,7 +608,7 @@ func (c *cmdNetworkZoneDelete) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // Delete the network zone. @@ -713,7 +714,7 @@ func (c *cmdNetworkZoneRecordList) run(cmd *cobra.Command, args []string) error resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // List the records. @@ -781,7 +782,7 @@ func (c *cmdNetworkZoneRecordShow) run(cmd *cobra.Command, args []string) error resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // Show the network zone config. @@ -834,7 +835,7 @@ func (c *cmdNetworkZoneRecordGet) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone record name")) + return errors.New(i18n.G("Missing network zone record name")) } resp, _, err := resource.server.GetNetworkZoneRecord(resource.name, args[1]) @@ -893,7 +894,7 @@ func (c *cmdNetworkZoneRecordCreate) run(cmd *cobra.Command, args []string) erro resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // If stdin isn't a terminal, read yaml from it. @@ -977,7 +978,7 @@ func (c *cmdNetworkZoneRecordSet) run(cmd *cobra.Command, args []string) error { resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // Get the network zone. @@ -1096,7 +1097,7 @@ func (c *cmdNetworkZoneRecordEdit) run(cmd *cobra.Command, args []string) error resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone record name")) + return errors.New(i18n.G("Missing network zone record name")) } // If stdin isn't a terminal, read text from it @@ -1198,7 +1199,7 @@ func (c *cmdNetworkZoneRecordDelete) run(cmd *cobra.Command, args []string) erro resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // Delete the network zone. @@ -1263,7 +1264,7 @@ func (c *cmdNetworkZoneRecordEntry) runAdd(cmd *cobra.Command, args []string) er resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // Get the network record. @@ -1308,7 +1309,7 @@ func (c *cmdNetworkZoneRecordEntry) runRemove(cmd *cobra.Command, args []string) resource := resources[0] if resource.name == "" { - return fmt.Errorf(i18n.G("Missing network zone name")) + return errors.New(i18n.G("Missing network zone name")) } // Get the network zone record. @@ -1328,7 +1329,7 @@ func (c *cmdNetworkZoneRecordEntry) runRemove(cmd *cobra.Command, args []string) } if !found { - return fmt.Errorf(i18n.G("Couldn't find a matching entry")) + return errors.New(i18n.G("Couldn't find a matching entry")) } return resource.server.UpdateNetworkZoneRecord(resource.name, args[1], netRecord.Writable(), etag) From dc3a29a7011fd0fab29a48345c0a6eea5b3b4efc Mon Sep 17 00:00:00 2001 From: Gabriel Mougard Date: Thu, 29 Aug 2024 11:48:32 +0200 Subject: [PATCH 167/169] i18n: Update translation templates Signed-off-by: Gabriel Mougard --- po/ar.po | 166 +++++++++++++++++++++++++----------------------- po/ber.po | 166 +++++++++++++++++++++++++----------------------- po/bg.po | 166 +++++++++++++++++++++++++----------------------- po/ca.po | 166 +++++++++++++++++++++++++----------------------- po/cs.po | 166 +++++++++++++++++++++++++----------------------- po/de.po | 166 +++++++++++++++++++++++++----------------------- po/el.po | 166 +++++++++++++++++++++++++----------------------- po/eo.po | 166 +++++++++++++++++++++++++----------------------- po/es.po | 166 +++++++++++++++++++++++++----------------------- po/fa.po | 166 +++++++++++++++++++++++++----------------------- po/fi.po | 166 +++++++++++++++++++++++++----------------------- po/fr.po | 166 +++++++++++++++++++++++++----------------------- po/he.po | 166 +++++++++++++++++++++++++----------------------- po/hi.po | 166 +++++++++++++++++++++++++----------------------- po/id.po | 166 +++++++++++++++++++++++++----------------------- po/it.po | 166 +++++++++++++++++++++++++----------------------- po/ja.po | 171 +++++++++++++++++++++++++++----------------------- po/ka.po | 166 +++++++++++++++++++++++++----------------------- po/ko.po | 166 +++++++++++++++++++++++++----------------------- po/lxd.pot | 143 +++++++++++++++++++++-------------------- po/mr.po | 166 +++++++++++++++++++++++++----------------------- po/nb_NO.po | 166 +++++++++++++++++++++++++----------------------- po/nl.po | 166 +++++++++++++++++++++++++----------------------- po/pa.po | 166 +++++++++++++++++++++++++----------------------- po/pl.po | 166 +++++++++++++++++++++++++----------------------- po/pt.po | 166 +++++++++++++++++++++++++----------------------- po/pt_BR.po | 166 +++++++++++++++++++++++++----------------------- po/ru.po | 166 +++++++++++++++++++++++++----------------------- po/si.po | 166 +++++++++++++++++++++++++----------------------- po/sl.po | 166 +++++++++++++++++++++++++----------------------- po/sr.po | 166 +++++++++++++++++++++++++----------------------- po/sv.po | 166 +++++++++++++++++++++++++----------------------- po/te.po | 166 +++++++++++++++++++++++++----------------------- po/th.po | 166 +++++++++++++++++++++++++----------------------- po/tr.po | 166 +++++++++++++++++++++++++----------------------- po/tzm.po | 166 +++++++++++++++++++++++++----------------------- po/ug.po | 166 +++++++++++++++++++++++++----------------------- po/uk.po | 166 +++++++++++++++++++++++++----------------------- po/zh_Hans.po | 166 +++++++++++++++++++++++++----------------------- po/zh_Hant.po | 166 +++++++++++++++++++++++++----------------------- 40 files changed, 3473 insertions(+), 3149 deletions(-) diff --git a/po/ar.po b/po/ar.po index 15bf517504b1..4708080d29cc 100644 --- a/po/ar.po +++ b/po/ar.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -319,7 +319,7 @@ msgid "" "cannot be changed." msgstr "" -#: lxc/network_zone.go:1066 +#: lxc/network_zone.go:1071 msgid "" "### This is a YAML representation of the network zone record.\n" "### Any line starting with a '# will be ignored.\n" @@ -333,7 +333,7 @@ msgid "" "### user.foo: bah\n" msgstr "" -#: lxc/network_zone.go:473 +#: lxc/network_zone.go:478 msgid "" "### This is a YAML representation of the network zone.\n" "### Any line starting with a '# will be ignored.\n" @@ -603,7 +603,7 @@ msgstr "" msgid "Add a group to an identity provider group" msgstr "" -#: lxc/network_zone.go:1239 +#: lxc/network_zone.go:1244 msgid "Add a network zone record entry" msgstr "" @@ -615,7 +615,7 @@ msgstr "" msgid "Add backends to a load balancer" msgstr "" -#: lxc/network_zone.go:1240 +#: lxc/network_zone.go:1245 msgid "Add entries to a network zone record" msgstr "" @@ -866,7 +866,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 +#: lxc/network_zone.go:329 lxc/network_zone.go:927 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1211,7 +1211,7 @@ msgstr "" #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 -#: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 +#: lxc/network_zone.go:556 lxc/network_zone.go:1148 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 #: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 @@ -1370,7 +1370,7 @@ msgstr "" msgid "Could not write server cert file %q: %w" msgstr "" -#: lxc/network_zone.go:1327 +#: lxc/network_zone.go:1332 msgid "Couldn't find a matching entry" msgstr "" @@ -1454,11 +1454,11 @@ msgstr "" msgid "Create new network peering" msgstr "" -#: lxc/network_zone.go:869 lxc/network_zone.go:870 +#: lxc/network_zone.go:874 lxc/network_zone.go:875 msgid "Create new network zone record" msgstr "" -#: lxc/network_zone.go:270 lxc/network_zone.go:271 +#: lxc/network_zone.go:271 lxc/network_zone.go:272 msgid "Create new network zones" msgstr "" @@ -1509,7 +1509,7 @@ msgstr "" #: lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 #: lxc/network_acl.go:148 lxc/network_forward.go:149 #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 -#: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 +#: lxc/network_zone.go:140 lxc/network_zone.go:747 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 #: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 @@ -1596,11 +1596,11 @@ msgstr "" msgid "Delete network peerings" msgstr "" -#: lxc/network_zone.go:1175 lxc/network_zone.go:1176 +#: lxc/network_zone.go:1180 lxc/network_zone.go:1181 msgid "Delete network zone record" msgstr "" -#: lxc/network_zone.go:583 lxc/network_zone.go:584 +#: lxc/network_zone.go:588 lxc/network_zone.go:589 msgid "Delete network zones" msgstr "" @@ -1700,13 +1700,13 @@ msgstr "" #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 -#: lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 -#: lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 -#: lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 -#: lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 -#: lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 -#: lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 -#: lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 +#: lxc/network_zone.go:29 lxc/network_zone.go:86 lxc/network_zone.go:157 +#: lxc/network_zone.go:212 lxc/network_zone.go:272 lxc/network_zone.go:359 +#: lxc/network_zone.go:439 lxc/network_zone.go:470 lxc/network_zone.go:589 +#: lxc/network_zone.go:637 lxc/network_zone.go:694 lxc/network_zone.go:764 +#: lxc/network_zone.go:816 lxc/network_zone.go:875 lxc/network_zone.go:957 +#: lxc/network_zone.go:1033 lxc/network_zone.go:1063 lxc/network_zone.go:1181 +#: lxc/network_zone.go:1230 lxc/network_zone.go:1245 lxc/network_zone.go:1291 #: lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 #: lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 #: lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 @@ -1876,7 +1876,7 @@ msgstr "" msgid "Driver: %v (%v)" msgstr "" -#: lxc/network_zone.go:743 +#: lxc/network_zone.go:748 msgid "ENTRIES" msgstr "" @@ -1962,11 +1962,11 @@ msgstr "" msgid "Edit network peer configurations as YAML" msgstr "" -#: lxc/network_zone.go:464 lxc/network_zone.go:465 +#: lxc/network_zone.go:469 lxc/network_zone.go:470 msgid "Edit network zone configurations as YAML" msgstr "" -#: lxc/network_zone.go:1057 lxc/network_zone.go:1058 +#: lxc/network_zone.go:1062 lxc/network_zone.go:1063 msgid "Edit network zone record configurations as YAML" msgstr "" @@ -2023,7 +2023,7 @@ msgid "" " for the address if not yet set." msgstr "" -#: lxc/network_zone.go:1242 +#: lxc/network_zone.go:1247 msgid "Entry TTL" msgstr "" @@ -2053,7 +2053,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 -#: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 +#: lxc/network_zone.go:414 lxc/network_zone.go:1008 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format @@ -2067,7 +2067,7 @@ msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 -#: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 +#: lxc/network_peer.go:457 lxc/network_zone.go:408 lxc/network_zone.go:1002 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 @@ -2333,7 +2333,7 @@ msgstr "" msgid "Fast mode (same as --columns=nsacPt)" msgstr "" -#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:115 +#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:116 #: lxc/operation.go:136 msgid "Filtering isn't supported yet" msgstr "" @@ -2405,7 +2405,7 @@ msgstr "" #: lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 #: lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 -#: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 +#: lxc/network_peer.go:84 lxc/network_zone.go:89 lxc/network_zone.go:697 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 @@ -2509,11 +2509,11 @@ msgstr "" msgid "Get the key as a network property" msgstr "" -#: lxc/network_zone.go:214 +#: lxc/network_zone.go:215 msgid "Get the key as a network zone property" msgstr "" -#: lxc/network_zone.go:814 +#: lxc/network_zone.go:819 msgid "Get the key as a network zone record property" msgstr "" @@ -2573,11 +2573,11 @@ msgstr "" msgid "Get values for network peer configuration keys" msgstr "" -#: lxc/network_zone.go:210 lxc/network_zone.go:211 +#: lxc/network_zone.go:211 lxc/network_zone.go:212 msgid "Get values for network zone configuration keys" msgstr "" -#: lxc/network_zone.go:810 lxc/network_zone.go:811 +#: lxc/network_zone.go:815 lxc/network_zone.go:816 msgid "Get values for network zone record configuration keys" msgstr "" @@ -3113,15 +3113,15 @@ msgstr "" msgid "List available network peers" msgstr "" -#: lxc/network_zone.go:85 +#: lxc/network_zone.go:86 msgid "List available network zone" msgstr "" -#: lxc/network_zone.go:688 lxc/network_zone.go:689 +#: lxc/network_zone.go:693 lxc/network_zone.go:694 msgid "List available network zone records" msgstr "" -#: lxc/network_zone.go:84 +#: lxc/network_zone.go:85 msgid "List available network zoneS" msgstr "" @@ -3585,15 +3585,15 @@ msgstr "" msgid "Manage network peerings" msgstr "" -#: lxc/network_zone.go:1224 lxc/network_zone.go:1225 +#: lxc/network_zone.go:1229 lxc/network_zone.go:1230 msgid "Manage network zone record entries" msgstr "" -#: lxc/network_zone.go:631 lxc/network_zone.go:632 +#: lxc/network_zone.go:636 lxc/network_zone.go:637 msgid "Manage network zone records" msgstr "" -#: lxc/network_zone.go:27 lxc/network_zone.go:28 +#: lxc/network_zone.go:28 lxc/network_zone.go:29 msgid "Manage network zones" msgstr "" @@ -3819,15 +3819,15 @@ msgstr "" msgid "Missing network name" msgstr "" -#: lxc/network_zone.go:178 lxc/network_zone.go:234 lxc/network_zone.go:294 -#: lxc/network_zone.go:382 lxc/network_zone.go:503 lxc/network_zone.go:606 -#: lxc/network_zone.go:712 lxc/network_zone.go:780 lxc/network_zone.go:892 -#: lxc/network_zone.go:976 lxc/network_zone.go:1197 lxc/network_zone.go:1262 -#: lxc/network_zone.go:1307 +#: lxc/network_zone.go:179 lxc/network_zone.go:235 lxc/network_zone.go:299 +#: lxc/network_zone.go:387 lxc/network_zone.go:508 lxc/network_zone.go:611 +#: lxc/network_zone.go:717 lxc/network_zone.go:785 lxc/network_zone.go:897 +#: lxc/network_zone.go:981 lxc/network_zone.go:1202 lxc/network_zone.go:1267 +#: lxc/network_zone.go:1312 msgid "Missing network zone name" msgstr "" -#: lxc/network_zone.go:833 lxc/network_zone.go:1095 +#: lxc/network_zone.go:838 lxc/network_zone.go:1100 msgid "Missing network zone record name" msgstr "" @@ -3982,8 +3982,8 @@ msgstr "" #: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 #: lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 -#: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 -#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 +#: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:139 +#: lxc/network_zone.go:746 lxc/profile.go:677 lxc/project.go:521 #: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 #: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" @@ -4087,12 +4087,12 @@ msgstr "" msgid "Network ACL %s renamed to %s" msgstr "" -#: lxc/network_zone.go:336 +#: lxc/network_zone.go:341 #, c-format msgid "Network Zone %s created" msgstr "" -#: lxc/network_zone.go:616 +#: lxc/network_zone.go:621 #, c-format msgid "Network Zone %s deleted" msgstr "" @@ -4150,12 +4150,12 @@ msgstr "" msgid "Network usage:" msgstr "" -#: lxc/network_zone.go:934 +#: lxc/network_zone.go:939 #, c-format msgid "Network zone record %s created" msgstr "" -#: lxc/network_zone.go:1207 +#: lxc/network_zone.go:1212 #, c-format msgid "Network zone record %s deleted" msgstr "" @@ -4379,7 +4379,7 @@ msgstr "" #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 -#: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 +#: lxc/network_zone.go:557 lxc/network_zone.go:1149 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 #: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 @@ -4740,7 +4740,7 @@ msgstr "" msgid "Remove a member from the cluster" msgstr "" -#: lxc/network_zone.go:1285 +#: lxc/network_zone.go:1290 msgid "Remove a network zone record entry" msgstr "" @@ -4764,7 +4764,7 @@ msgstr "" msgid "Remove backends from a load balancer" msgstr "" -#: lxc/network_zone.go:1286 +#: lxc/network_zone.go:1291 msgid "Remove entries from a network zone record" msgstr "" @@ -5172,11 +5172,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5185,7 +5185,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5294,11 +5294,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5435,15 +5435,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5837,12 +5837,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6059,7 +6059,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6174,11 +6174,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6226,11 +6226,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6436,7 +6436,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6499,19 +6499,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7006,27 +7006,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7327,6 +7327,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ber.po b/po/ber.po index 8826c9a187df..896f1718b67e 100644 --- a/po/ber.po +++ b/po/ber.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Berber :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/bg.po b/po/bg.po index 5470b7c7b9b1..c41c3498b689 100644 --- a/po/bg.po +++ b/po/bg.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Bulgarian :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ca.po b/po/ca.po index 142094c8feac..7b4c5517ba25 100644 --- a/po/ca.po +++ b/po/ca.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Catalan :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/cs.po b/po/cs.po index a4036a53f7a5..4f2fcf60d3a2 100644 --- a/po/cs.po +++ b/po/cs.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Czech :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/de.po b/po/de.po index 49338ae3a66d..1691899d51ab 100644 --- a/po/de.po +++ b/po/de.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Krombel \n" "Language-Team: German :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 #, fuzzy msgid "Set network zone configuration keys" msgstr "Profil %s erstellt\n" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5780,7 +5780,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 #, fuzzy msgid "Set network zone record configuration keys" msgstr "Profil %s erstellt\n" @@ -5897,12 +5897,12 @@ msgstr "Kein Zertifikat für diese Verbindung" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 #, fuzzy msgid "Set the key as a network zone property" msgstr "Anhalten des Containers fehlgeschlagen!" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 #, fuzzy msgid "Set the key as a network zone record property" msgstr "Profil %s erstellt\n" @@ -6056,17 +6056,17 @@ msgstr "Profil %s erstellt\n" msgid "Show network peer configurations" msgstr "Profil %s erstellt\n" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 #, fuzzy msgid "Show network zone configurations" msgstr "Profil %s erstellt\n" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 #, fuzzy msgid "Show network zone record configuration" msgstr "Profil %s erstellt\n" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 #, fuzzy msgid "Show network zone record configurations" msgstr "Profil %s erstellt\n" @@ -6483,12 +6483,12 @@ msgstr "der Name des Ursprung Containers muss angegeben werden" msgid "The property %q does not exist on the network peer %q: %v" msgstr "der Name des Ursprung Containers muss angegeben werden" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, fuzzy, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "der Name des Ursprung Containers muss angegeben werden" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, fuzzy, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "der Name des Ursprung Containers muss angegeben werden" @@ -6711,7 +6711,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6839,12 +6839,12 @@ msgstr "Profil %s erstellt\n" msgid "Unset network peer keys" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 #, fuzzy msgid "Unset network zone configuration keys" msgstr "Profil %s erstellt\n" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 #, fuzzy msgid "Unset network zone record configuration keys" msgstr "Profil %s erstellt\n" @@ -6900,12 +6900,12 @@ msgstr "Kein Zertifikat für diese Verbindung" msgid "Unset the key as a network property" msgstr "Kein Zertifikat für diese Verbindung" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 #, fuzzy msgid "Unset the key as a network zone property" msgstr "Anhalten des Containers fehlgeschlagen!" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 #, fuzzy msgid "Unset the key as a network zone record property" msgstr "Profil %s erstellt\n" @@ -7138,7 +7138,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 #, fuzzy @@ -7261,7 +7261,7 @@ msgstr "" "Entfernt einen Container (oder Sicherungspunkt) und alle dazugehörigen\n" "Daten (Konfiguration, Sicherungspunkte, ...).\n" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 #, fuzzy msgid "[:]" msgstr "" @@ -7269,7 +7269,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 #, fuzzy msgid "[:] " msgstr "" @@ -7277,7 +7277,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 #, fuzzy msgid "[:] =..." msgstr "" @@ -7285,7 +7285,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 #, fuzzy msgid "[:] [key=value...]" msgstr "" @@ -8266,7 +8266,7 @@ msgstr "" "Entfernt einen Container (oder Sicherungspunkt) und alle dazugehörigen\n" "Daten (Konfiguration, Sicherungspunkte, ...).\n" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 #, fuzzy msgid "[:]" msgstr "" @@ -8274,7 +8274,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 #, fuzzy msgid "[:] " msgstr "" @@ -8282,7 +8282,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 #, fuzzy msgid "[:] " msgstr "" @@ -8290,7 +8290,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 #, fuzzy msgid "[:] =..." msgstr "" @@ -8298,7 +8298,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 #, fuzzy msgid "[:] " msgstr "" @@ -8306,7 +8306,7 @@ msgstr "" "\n" "lxd %s \n" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 #, fuzzy msgid "[:] [key=value...]" msgstr "" @@ -8646,6 +8646,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/el.po b/po/el.po index b515b4e66f8a..86a6529d15c9 100644 --- a/po/el.po +++ b/po/el.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Greek :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 #, fuzzy msgid "Set network zone configuration keys" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5264,7 +5264,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 #, fuzzy msgid "Set network zone record configuration keys" msgstr " Χρήση δικτύου:" @@ -5378,12 +5378,12 @@ msgstr " Χρήση δικτύου:" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 #, fuzzy msgid "Set the key as a network zone property" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 #, fuzzy msgid "Set the key as a network zone record property" msgstr " Χρήση δικτύου:" @@ -5527,17 +5527,17 @@ msgstr " Χρήση δικτύου:" msgid "Show network peer configurations" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 #, fuzzy msgid "Show network zone configurations" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 #, fuzzy msgid "Show network zone record configuration" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 #, fuzzy msgid "Show network zone record configurations" msgstr " Χρήση δικτύου:" @@ -5935,12 +5935,12 @@ msgstr " Χρήση δικτύου:" msgid "The property %q does not exist on the network peer %q: %v" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, fuzzy, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, fuzzy, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr " Χρήση δικτύου:" @@ -6158,7 +6158,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6280,12 +6280,12 @@ msgstr " Χρήση δικτύου:" msgid "Unset network peer keys" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 #, fuzzy msgid "Unset network zone configuration keys" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 #, fuzzy msgid "Unset network zone record configuration keys" msgstr " Χρήση δικτύου:" @@ -6339,12 +6339,12 @@ msgstr " Χρήση δικτύου:" msgid "Unset the key as a network property" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 #, fuzzy msgid "Unset the key as a network zone property" msgstr " Χρήση δικτύου:" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 #, fuzzy msgid "Unset the key as a network zone record property" msgstr " Χρήση δικτύου:" @@ -6552,7 +6552,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6615,19 +6615,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7122,27 +7122,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7443,6 +7443,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/eo.po b/po/eo.po index 80b0ac5cdd6a..e22db43a1ecd 100644 --- a/po/eo.po +++ b/po/eo.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Esperanto :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/es.po b/po/es.po index dad74b50c2ba..5ac4e9d0b53a 100644 --- a/po/es.po +++ b/po/es.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2023-06-16 20:55+0000\n" "Last-Translator: Francisco Serrador \n" "Language-Team: Spanish :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 #, fuzzy msgid "Set network zone configuration keys" msgstr "Perfil %s creado" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5577,7 +5577,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 #, fuzzy msgid "Set network zone record configuration keys" msgstr "Perfil %s creado" @@ -5691,12 +5691,12 @@ msgstr "Perfil %s creado" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 #, fuzzy msgid "Set the key as a network zone property" msgstr "Perfil %s creado" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 #, fuzzy msgid "Set the key as a network zone record property" msgstr "Perfil %s creado" @@ -5841,17 +5841,17 @@ msgstr "Perfil %s creado" msgid "Show network peer configurations" msgstr "Perfil %s creado" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 #, fuzzy msgid "Show network zone configurations" msgstr "Perfil %s creado" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 #, fuzzy msgid "Show network zone record configuration" msgstr "Perfil %s creado" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 #, fuzzy msgid "Show network zone record configurations" msgstr "Perfil %s creado" @@ -6252,12 +6252,12 @@ msgstr "Nombre del Miembro del Cluster" msgid "The property %q does not exist on the network peer %q: %v" msgstr "Nombre del Miembro del Cluster" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, fuzzy, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "Nombre del Miembro del Cluster" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, fuzzy, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "Nombre del Miembro del Cluster" @@ -6478,7 +6478,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6601,12 +6601,12 @@ msgstr "Perfil %s creado" msgid "Unset network peer keys" msgstr "Perfil %s creado" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 #, fuzzy msgid "Unset network zone configuration keys" msgstr "Perfil %s creado" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 #, fuzzy msgid "Unset network zone record configuration keys" msgstr "Perfil %s creado" @@ -6660,12 +6660,12 @@ msgstr "Perfil %s creado" msgid "Unset the key as a network property" msgstr "Perfil %s creado" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 #, fuzzy msgid "Unset the key as a network zone property" msgstr "Perfil %s creado" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 #, fuzzy msgid "Unset the key as a network zone record property" msgstr "Perfil %s creado" @@ -6876,7 +6876,7 @@ msgstr "No se puede proveer el nombre del container a la lista" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 #, fuzzy @@ -6953,22 +6953,22 @@ msgstr "No se puede proveer el nombre del container a la lista" msgid "[:]" msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 #, fuzzy msgid "[:]" msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 #, fuzzy msgid "[:] =..." msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 #, fuzzy msgid "[:] [key=value...]" msgstr "No se puede proveer el nombre del container a la lista" @@ -7575,32 +7575,32 @@ msgstr "No se puede proveer el nombre del container a la lista" msgid "[:]" msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 #, fuzzy msgid "[:]" msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 #, fuzzy msgid "[:] =..." msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 #, fuzzy msgid "[:] " msgstr "No se puede proveer el nombre del container a la lista" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 #, fuzzy msgid "[:] [key=value...]" msgstr "No se puede proveer el nombre del container a la lista" @@ -7909,6 +7909,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/fa.po b/po/fa.po index 8fea98448560..759401001d82 100644 --- a/po/fa.po +++ b/po/fa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Persian :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/fi.po b/po/fi.po index e70e22aa3d95..2c8d55f20c45 100644 --- a/po/fi.po +++ b/po/fi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Finnish :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/fr.po b/po/fr.po index 093bbbe31c33..41c4539fa8c9 100644 --- a/po/fr.po +++ b/po/fr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Wivik \n" "Language-Team: French :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 #, fuzzy msgid "Set network zone configuration keys" msgstr "Clé de configuration invalide" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5905,7 +5905,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 #, fuzzy msgid "Set network zone record configuration keys" msgstr "Clé de configuration invalide" @@ -6023,12 +6023,12 @@ msgstr "Nom du réseau" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 #, fuzzy msgid "Set the key as a network zone property" msgstr "Copie de l'image : %s" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 #, fuzzy msgid "Set the key as a network zone record property" msgstr "Clé de configuration invalide" @@ -6185,17 +6185,17 @@ msgstr "Afficher la configuration étendue" msgid "Show network peer configurations" msgstr "Afficher la configuration étendue" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 #, fuzzy msgid "Show network zone configurations" msgstr "Afficher la configuration étendue" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 #, fuzzy msgid "Show network zone record configuration" msgstr "Afficher la configuration étendue" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 #, fuzzy msgid "Show network zone record configurations" msgstr "Afficher la configuration étendue" @@ -6622,12 +6622,12 @@ msgstr "Vous devez fournir le nom d'un conteneur pour : " msgid "The property %q does not exist on the network peer %q: %v" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, fuzzy, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "Vous devez fournir le nom d'un conteneur pour : " -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, fuzzy, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "Vous devez fournir le nom d'un conteneur pour : " @@ -6852,7 +6852,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "UTILISÉ PAR" @@ -6981,12 +6981,12 @@ msgstr "Clé de configuration invalide" msgid "Unset network peer keys" msgstr "Nom du réseau" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 #, fuzzy msgid "Unset network zone configuration keys" msgstr "Clé de configuration invalide" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 #, fuzzy msgid "Unset network zone record configuration keys" msgstr "Clé de configuration invalide" @@ -7044,12 +7044,12 @@ msgstr "Nom du réseau" msgid "Unset the key as a network property" msgstr "Nom du réseau" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 #, fuzzy msgid "Unset the key as a network zone property" msgstr "Copie de l'image : %s" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 #, fuzzy msgid "Unset the key as a network zone record property" msgstr "Clé de configuration invalide" @@ -7280,7 +7280,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 #, fuzzy @@ -7409,7 +7409,7 @@ msgstr "" "Détruit les conteneurs ou les instantanés ainsi que toute donnée associée " "(configuration, instantanés, …)." -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 #, fuzzy msgid "[:]" msgstr "" @@ -7417,7 +7417,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 #, fuzzy msgid "[:] " msgstr "" @@ -7425,7 +7425,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 #, fuzzy msgid "[:] =..." msgstr "" @@ -7433,7 +7433,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 #, fuzzy msgid "[:] [key=value...]" msgstr "" @@ -8513,7 +8513,7 @@ msgstr "" "Détruit les conteneurs ou les instantanés ainsi que toute donnée associée " "(configuration, instantanés, …)." -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 #, fuzzy msgid "[:]" msgstr "" @@ -8521,7 +8521,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 #, fuzzy msgid "[:] " msgstr "" @@ -8529,7 +8529,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 #, fuzzy msgid "[:] " msgstr "" @@ -8537,7 +8537,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 #, fuzzy msgid "[:] =..." msgstr "" @@ -8545,7 +8545,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 #, fuzzy msgid "[:] " msgstr "" @@ -8553,7 +8553,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 #, fuzzy msgid "[:] [key=value...]" msgstr "" @@ -8921,6 +8921,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/he.po b/po/he.po index 0a72590ab08e..cec594cb9894 100644 --- a/po/he.po +++ b/po/he.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hebrew :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5189,7 +5189,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5298,11 +5298,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5439,15 +5439,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5841,12 +5841,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6063,7 +6063,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6178,11 +6178,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6230,11 +6230,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6440,7 +6440,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6503,19 +6503,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7010,27 +7010,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7331,6 +7331,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/hi.po b/po/hi.po index cabbfb3d671f..9e643e4cdf9d 100644 --- a/po/hi.po +++ b/po/hi.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Hindi :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/id.po b/po/id.po index 4b09404abb4a..2807b87928c9 100644 --- a/po/id.po +++ b/po/id.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Indonesian :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/it.po b/po/it.po index 2d6463de8a61..6ca267883887 100644 --- a/po/it.po +++ b/po/it.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Luigi Operoso \n" "Language-Team: Italian :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 #, fuzzy msgid "Set network zone configuration keys" msgstr "Il nome del container è: %s" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5575,7 +5575,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 #, fuzzy msgid "Set network zone record configuration keys" msgstr "Il nome del container è: %s" @@ -5687,12 +5687,12 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 #, fuzzy msgid "Set the key as a network zone property" msgstr "Creazione del container in corso" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 #, fuzzy msgid "Set the key as a network zone record property" msgstr "Il nome del container è: %s" @@ -5837,17 +5837,17 @@ msgstr "Il nome del container è: %s" msgid "Show network peer configurations" msgstr "Il nome del container è: %s" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 #, fuzzy msgid "Show network zone configurations" msgstr "Il nome del container è: %s" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 #, fuzzy msgid "Show network zone record configuration" msgstr "Il nome del container è: %s" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 #, fuzzy msgid "Show network zone record configurations" msgstr "Il nome del container è: %s" @@ -6250,12 +6250,12 @@ msgstr "Il nome del container è: %s" msgid "The property %q does not exist on the network peer %q: %v" msgstr "Il nome del container è: %s" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, fuzzy, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "Il nome del container è: %s" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, fuzzy, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "Il nome del container è: %s" @@ -6475,7 +6475,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6597,12 +6597,12 @@ msgstr "Il nome del container è: %s" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 #, fuzzy msgid "Unset network zone configuration keys" msgstr "Il nome del container è: %s" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 #, fuzzy msgid "Unset network zone record configuration keys" msgstr "Il nome del container è: %s" @@ -6653,12 +6653,12 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 #, fuzzy msgid "Unset the key as a network zone property" msgstr "Creazione del container in corso" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 #, fuzzy msgid "Unset the key as a network zone record property" msgstr "Il nome del container è: %s" @@ -6873,7 +6873,7 @@ msgstr "Creazione del container in corso" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 #, fuzzy @@ -6950,22 +6950,22 @@ msgstr "Creazione del container in corso" msgid "[:]" msgstr "Creazione del container in corso" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 #, fuzzy msgid "[:]" msgstr "Creazione del container in corso" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 #, fuzzy msgid "[:] =..." msgstr "Creazione del container in corso" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 #, fuzzy msgid "[:] [key=value...]" msgstr "Creazione del container in corso" @@ -7572,32 +7572,32 @@ msgstr "Creazione del container in corso" msgid "[:]" msgstr "Creazione del container in corso" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 #, fuzzy msgid "[:]" msgstr "Creazione del container in corso" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 #, fuzzy msgid "[:] =..." msgstr "Creazione del container in corso" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 #, fuzzy msgid "[:] " msgstr "Creazione del container in corso" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 #, fuzzy msgid "[:] [key=value...]" msgstr "Creazione del container in corso" @@ -7906,6 +7906,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ja.po b/po/ja.po index f20d9b91a570..0c8b5c93fc50 100644 --- a/po/ja.po +++ b/po/ja.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: LXD\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2023-03-10 15:14+0000\n" "Last-Translator: KATOH Yasufumi \n" "Language-Team: Japanese :] " -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "ネットワークゾーンの設定を行います" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5825,7 +5825,7 @@ msgstr "" "後方互換性のため、単一の設定を行う場合は次の形式でも設定できます:\n" " lxc network set [:] " -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "ネットワークゾーンレコードの設定を行います" @@ -5959,12 +5959,12 @@ msgstr "ネットワークピアの設定を行います" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 #, fuzzy msgid "Set the key as a network zone property" msgstr "新たにネットワークゾーンレコードを作成します" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 #, fuzzy msgid "Set the key as a network zone record property" msgstr "ネットワークゾーンレコードエントリを削除します" @@ -6108,15 +6108,15 @@ msgstr "ネットワークロードバランサーの設定を表示します" msgid "Show network peer configurations" msgstr "ネットワークピアの設定を表示します" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "ネットワークゾーンの設定を表示します" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "ネットワークゾーンレコードの設定を表示します" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "ネットワークゾーンレコードの設定を表示します" @@ -6516,12 +6516,12 @@ msgstr "設定 %q はクラスタメンバー %q には存在しません" msgid "The property %q does not exist on the network peer %q: %v" msgstr "設定 %q はクラスタメンバー %q には存在しません" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, fuzzy, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "設定 %q はクラスタメンバー %q には存在しません" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, fuzzy, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "設定 %q はクラスタメンバー %q には存在しません" @@ -6761,7 +6761,7 @@ msgid "USAGE" msgstr "USAGE" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "USED BY" @@ -6877,11 +6877,11 @@ msgstr "ネットワークピアの設定を削除します" msgid "Unset network peer keys" msgstr "ネットワークピアの設定を削除します" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "ネットワークゾーンの設定を削除します" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "ネットワークゾーンレコードの設定を削除します" @@ -6933,12 +6933,12 @@ msgstr "ネットワークピアの設定を削除します" msgid "Unset the key as a network property" msgstr "ネットワークピアの設定を削除します" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 #, fuzzy msgid "Unset the key as a network zone property" msgstr "新たにネットワークゾーンレコードを作成します" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 #, fuzzy msgid "Unset the key as a network zone record property" msgstr "ネットワークゾーンレコードエントリを削除します" @@ -7160,7 +7160,7 @@ msgstr "[] [] []" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -7223,19 +7223,19 @@ msgstr "[:] [key=value...]" msgid "[:]" msgstr "[:]" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "[:]" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "[:] " -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "[:] =..." -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "[:] [key=value...]" @@ -7758,27 +7758,27 @@ msgstr "[:][/] [[:]]" msgid "[:]" msgstr "[:]" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "[:]" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "[:] " -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "[:] " -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "[:] =..." -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "[:] " -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "[:] [key=value...]" @@ -8198,6 +8198,19 @@ msgstr "" "lxc init ubuntu:22.04 u1 < config.yaml\n" " config.yaml の設定を使ってインスタンスを作成します" +#: lxc/network_zone.go:273 +#, fuzzy +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" +"lxc init ubuntu:22.04 u1\n" +"\n" +"lxc init ubuntu:22.04 u1 < config.yaml\n" +" config.yaml の設定を使ってインスタンスを作成します" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ka.po b/po/ka.po index fd2db5b407e4..b19d1a5b3f1b 100644 --- a/po/ka.po +++ b/po/ka.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -319,7 +319,7 @@ msgid "" "cannot be changed." msgstr "" -#: lxc/network_zone.go:1066 +#: lxc/network_zone.go:1071 msgid "" "### This is a YAML representation of the network zone record.\n" "### Any line starting with a '# will be ignored.\n" @@ -333,7 +333,7 @@ msgid "" "### user.foo: bah\n" msgstr "" -#: lxc/network_zone.go:473 +#: lxc/network_zone.go:478 msgid "" "### This is a YAML representation of the network zone.\n" "### Any line starting with a '# will be ignored.\n" @@ -603,7 +603,7 @@ msgstr "" msgid "Add a group to an identity provider group" msgstr "" -#: lxc/network_zone.go:1239 +#: lxc/network_zone.go:1244 msgid "Add a network zone record entry" msgstr "" @@ -615,7 +615,7 @@ msgstr "" msgid "Add backends to a load balancer" msgstr "" -#: lxc/network_zone.go:1240 +#: lxc/network_zone.go:1245 msgid "Add entries to a network zone record" msgstr "" @@ -866,7 +866,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 +#: lxc/network_zone.go:329 lxc/network_zone.go:927 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1211,7 +1211,7 @@ msgstr "" #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 -#: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 +#: lxc/network_zone.go:556 lxc/network_zone.go:1148 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 #: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 @@ -1370,7 +1370,7 @@ msgstr "" msgid "Could not write server cert file %q: %w" msgstr "" -#: lxc/network_zone.go:1327 +#: lxc/network_zone.go:1332 msgid "Couldn't find a matching entry" msgstr "" @@ -1454,11 +1454,11 @@ msgstr "" msgid "Create new network peering" msgstr "" -#: lxc/network_zone.go:869 lxc/network_zone.go:870 +#: lxc/network_zone.go:874 lxc/network_zone.go:875 msgid "Create new network zone record" msgstr "" -#: lxc/network_zone.go:270 lxc/network_zone.go:271 +#: lxc/network_zone.go:271 lxc/network_zone.go:272 msgid "Create new network zones" msgstr "" @@ -1509,7 +1509,7 @@ msgstr "" #: lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 #: lxc/network_acl.go:148 lxc/network_forward.go:149 #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 -#: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 +#: lxc/network_zone.go:140 lxc/network_zone.go:747 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 #: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 @@ -1596,11 +1596,11 @@ msgstr "" msgid "Delete network peerings" msgstr "" -#: lxc/network_zone.go:1175 lxc/network_zone.go:1176 +#: lxc/network_zone.go:1180 lxc/network_zone.go:1181 msgid "Delete network zone record" msgstr "" -#: lxc/network_zone.go:583 lxc/network_zone.go:584 +#: lxc/network_zone.go:588 lxc/network_zone.go:589 msgid "Delete network zones" msgstr "" @@ -1700,13 +1700,13 @@ msgstr "" #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 -#: lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 -#: lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 -#: lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 -#: lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 -#: lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 -#: lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 -#: lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 +#: lxc/network_zone.go:29 lxc/network_zone.go:86 lxc/network_zone.go:157 +#: lxc/network_zone.go:212 lxc/network_zone.go:272 lxc/network_zone.go:359 +#: lxc/network_zone.go:439 lxc/network_zone.go:470 lxc/network_zone.go:589 +#: lxc/network_zone.go:637 lxc/network_zone.go:694 lxc/network_zone.go:764 +#: lxc/network_zone.go:816 lxc/network_zone.go:875 lxc/network_zone.go:957 +#: lxc/network_zone.go:1033 lxc/network_zone.go:1063 lxc/network_zone.go:1181 +#: lxc/network_zone.go:1230 lxc/network_zone.go:1245 lxc/network_zone.go:1291 #: lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 #: lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 #: lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 @@ -1876,7 +1876,7 @@ msgstr "" msgid "Driver: %v (%v)" msgstr "" -#: lxc/network_zone.go:743 +#: lxc/network_zone.go:748 msgid "ENTRIES" msgstr "" @@ -1962,11 +1962,11 @@ msgstr "" msgid "Edit network peer configurations as YAML" msgstr "" -#: lxc/network_zone.go:464 lxc/network_zone.go:465 +#: lxc/network_zone.go:469 lxc/network_zone.go:470 msgid "Edit network zone configurations as YAML" msgstr "" -#: lxc/network_zone.go:1057 lxc/network_zone.go:1058 +#: lxc/network_zone.go:1062 lxc/network_zone.go:1063 msgid "Edit network zone record configurations as YAML" msgstr "" @@ -2023,7 +2023,7 @@ msgid "" " for the address if not yet set." msgstr "" -#: lxc/network_zone.go:1242 +#: lxc/network_zone.go:1247 msgid "Entry TTL" msgstr "" @@ -2053,7 +2053,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 -#: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 +#: lxc/network_zone.go:414 lxc/network_zone.go:1008 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format @@ -2067,7 +2067,7 @@ msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 -#: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 +#: lxc/network_peer.go:457 lxc/network_zone.go:408 lxc/network_zone.go:1002 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 @@ -2333,7 +2333,7 @@ msgstr "" msgid "Fast mode (same as --columns=nsacPt)" msgstr "" -#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:115 +#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:116 #: lxc/operation.go:136 msgid "Filtering isn't supported yet" msgstr "" @@ -2405,7 +2405,7 @@ msgstr "" #: lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 #: lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 -#: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 +#: lxc/network_peer.go:84 lxc/network_zone.go:89 lxc/network_zone.go:697 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 @@ -2509,11 +2509,11 @@ msgstr "" msgid "Get the key as a network property" msgstr "" -#: lxc/network_zone.go:214 +#: lxc/network_zone.go:215 msgid "Get the key as a network zone property" msgstr "" -#: lxc/network_zone.go:814 +#: lxc/network_zone.go:819 msgid "Get the key as a network zone record property" msgstr "" @@ -2573,11 +2573,11 @@ msgstr "" msgid "Get values for network peer configuration keys" msgstr "" -#: lxc/network_zone.go:210 lxc/network_zone.go:211 +#: lxc/network_zone.go:211 lxc/network_zone.go:212 msgid "Get values for network zone configuration keys" msgstr "" -#: lxc/network_zone.go:810 lxc/network_zone.go:811 +#: lxc/network_zone.go:815 lxc/network_zone.go:816 msgid "Get values for network zone record configuration keys" msgstr "" @@ -3113,15 +3113,15 @@ msgstr "" msgid "List available network peers" msgstr "" -#: lxc/network_zone.go:85 +#: lxc/network_zone.go:86 msgid "List available network zone" msgstr "" -#: lxc/network_zone.go:688 lxc/network_zone.go:689 +#: lxc/network_zone.go:693 lxc/network_zone.go:694 msgid "List available network zone records" msgstr "" -#: lxc/network_zone.go:84 +#: lxc/network_zone.go:85 msgid "List available network zoneS" msgstr "" @@ -3585,15 +3585,15 @@ msgstr "" msgid "Manage network peerings" msgstr "" -#: lxc/network_zone.go:1224 lxc/network_zone.go:1225 +#: lxc/network_zone.go:1229 lxc/network_zone.go:1230 msgid "Manage network zone record entries" msgstr "" -#: lxc/network_zone.go:631 lxc/network_zone.go:632 +#: lxc/network_zone.go:636 lxc/network_zone.go:637 msgid "Manage network zone records" msgstr "" -#: lxc/network_zone.go:27 lxc/network_zone.go:28 +#: lxc/network_zone.go:28 lxc/network_zone.go:29 msgid "Manage network zones" msgstr "" @@ -3819,15 +3819,15 @@ msgstr "" msgid "Missing network name" msgstr "" -#: lxc/network_zone.go:178 lxc/network_zone.go:234 lxc/network_zone.go:294 -#: lxc/network_zone.go:382 lxc/network_zone.go:503 lxc/network_zone.go:606 -#: lxc/network_zone.go:712 lxc/network_zone.go:780 lxc/network_zone.go:892 -#: lxc/network_zone.go:976 lxc/network_zone.go:1197 lxc/network_zone.go:1262 -#: lxc/network_zone.go:1307 +#: lxc/network_zone.go:179 lxc/network_zone.go:235 lxc/network_zone.go:299 +#: lxc/network_zone.go:387 lxc/network_zone.go:508 lxc/network_zone.go:611 +#: lxc/network_zone.go:717 lxc/network_zone.go:785 lxc/network_zone.go:897 +#: lxc/network_zone.go:981 lxc/network_zone.go:1202 lxc/network_zone.go:1267 +#: lxc/network_zone.go:1312 msgid "Missing network zone name" msgstr "" -#: lxc/network_zone.go:833 lxc/network_zone.go:1095 +#: lxc/network_zone.go:838 lxc/network_zone.go:1100 msgid "Missing network zone record name" msgstr "" @@ -3982,8 +3982,8 @@ msgstr "" #: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 #: lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 -#: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 -#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 +#: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:139 +#: lxc/network_zone.go:746 lxc/profile.go:677 lxc/project.go:521 #: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 #: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" @@ -4087,12 +4087,12 @@ msgstr "" msgid "Network ACL %s renamed to %s" msgstr "" -#: lxc/network_zone.go:336 +#: lxc/network_zone.go:341 #, c-format msgid "Network Zone %s created" msgstr "" -#: lxc/network_zone.go:616 +#: lxc/network_zone.go:621 #, c-format msgid "Network Zone %s deleted" msgstr "" @@ -4150,12 +4150,12 @@ msgstr "" msgid "Network usage:" msgstr "" -#: lxc/network_zone.go:934 +#: lxc/network_zone.go:939 #, c-format msgid "Network zone record %s created" msgstr "" -#: lxc/network_zone.go:1207 +#: lxc/network_zone.go:1212 #, c-format msgid "Network zone record %s deleted" msgstr "" @@ -4379,7 +4379,7 @@ msgstr "" #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 -#: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 +#: lxc/network_zone.go:557 lxc/network_zone.go:1149 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 #: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 @@ -4740,7 +4740,7 @@ msgstr "" msgid "Remove a member from the cluster" msgstr "" -#: lxc/network_zone.go:1285 +#: lxc/network_zone.go:1290 msgid "Remove a network zone record entry" msgstr "" @@ -4764,7 +4764,7 @@ msgstr "" msgid "Remove backends from a load balancer" msgstr "" -#: lxc/network_zone.go:1286 +#: lxc/network_zone.go:1291 msgid "Remove entries from a network zone record" msgstr "" @@ -5172,11 +5172,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5185,7 +5185,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5294,11 +5294,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5435,15 +5435,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5837,12 +5837,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6059,7 +6059,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6174,11 +6174,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6226,11 +6226,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6436,7 +6436,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6499,19 +6499,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7006,27 +7006,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7327,6 +7327,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ko.po b/po/ko.po index 536f2b20734f..5e7e7ee5e4cb 100644 --- a/po/ko.po +++ b/po/ko.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Korean :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/lxd.pot b/po/lxd.pot index 87fe7d60d952..b65921d2b6f1 100644 --- a/po/lxd.pot +++ b/po/lxd.pot @@ -7,7 +7,7 @@ msgid "" msgstr "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" - "POT-Creation-Date: 2024-08-28 17:34+0200\n" + "POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -296,7 +296,7 @@ msgid "### This is a YAML representation of the network peer.\n" "### Note that the name, target_project, target_network and status fields cannot be changed." msgstr "" -#: lxc/network_zone.go:1066 +#: lxc/network_zone.go:1071 msgid "### This is a YAML representation of the network zone record.\n" "### Any line starting with a '# will be ignored.\n" "###\n" @@ -309,7 +309,7 @@ msgid "### This is a YAML representation of the network zone record.\n" "### user.foo: bah\n" msgstr "" -#: lxc/network_zone.go:473 +#: lxc/network_zone.go:478 msgid "### This is a YAML representation of the network zone.\n" "### Any line starting with a '# will be ignored.\n" "###\n" @@ -572,7 +572,7 @@ msgstr "" msgid "Add a group to an identity provider group" msgstr "" -#: lxc/network_zone.go:1239 +#: lxc/network_zone.go:1244 msgid "Add a network zone record entry" msgstr "" @@ -584,7 +584,7 @@ msgstr "" msgid "Add backends to a load balancer" msgstr "" -#: lxc/network_zone.go:1240 +#: lxc/network_zone.go:1245 msgid "Add entries to a network zone record" msgstr "" @@ -825,7 +825,7 @@ msgstr "" msgid "Bad device override syntax, expecting ,=: %s" msgstr "" -#: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 lxc/network_load_balancer.go:301 lxc/network_peer.go:280 lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 +#: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 lxc/network_load_balancer.go:301 lxc/network_peer.go:280 lxc/network_zone.go:329 lxc/network_zone.go:927 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1135,7 +1135,7 @@ msgstr "" msgid "Config key/value to apply to the target instance" msgstr "" -#: lxc/cluster.go:770 lxc/cluster_group.go:339 lxc/config.go:272 lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 lxc/network_acl.go:620 lxc/network_forward.go:685 lxc/network_load_balancer.go:694 lxc/network_peer.go:610 lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 lxc/storage_volume.go:1048 +#: lxc/cluster.go:770 lxc/cluster_group.go:339 lxc/config.go:272 lxc/config.go:347 lxc/config.go:1274 lxc/config_metadata.go:147 lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 lxc/network_acl.go:620 lxc/network_forward.go:685 lxc/network_load_balancer.go:694 lxc/network_peer.go:610 lxc/network_zone.go:556 lxc/network_zone.go:1148 lxc/profile.go:538 lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 lxc/storage_volume.go:1048 #, c-format msgid "Config parsing error: %s" msgstr "" @@ -1284,7 +1284,7 @@ msgstr "" msgid "Could not write server cert file %q: %w" msgstr "" -#: lxc/network_zone.go:1327 +#: lxc/network_zone.go:1332 msgid "Couldn't find a matching entry" msgstr "" @@ -1367,11 +1367,11 @@ msgstr "" msgid "Create new network peering" msgstr "" -#: lxc/network_zone.go:869 lxc/network_zone.go:870 +#: lxc/network_zone.go:874 lxc/network_zone.go:875 msgid "Create new network zone record" msgstr "" -#: lxc/network_zone.go:270 lxc/network_zone.go:271 +#: lxc/network_zone.go:271 lxc/network_zone.go:272 msgid "Create new network zones" msgstr "" @@ -1418,7 +1418,7 @@ msgstr "" msgid "DEFAULT TARGET ADDRESS" msgstr "" -#: lxc/auth.go:376 lxc/cluster.go:188 lxc/cluster_group.go:438 lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 lxc/network_acl.go:148 lxc/network_forward.go:149 lxc/network_load_balancer.go:152 lxc/network_peer.go:140 lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 lxc/storage_volume.go:1562 +#: lxc/auth.go:376 lxc/cluster.go:188 lxc/cluster_group.go:438 lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 lxc/network_acl.go:148 lxc/network_forward.go:149 lxc/network_load_balancer.go:152 lxc/network_peer.go:140 lxc/network_zone.go:140 lxc/network_zone.go:747 lxc/operation.go:172 lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 lxc/storage_volume.go:1562 msgid "DESCRIPTION" msgstr "" @@ -1502,11 +1502,11 @@ msgstr "" msgid "Delete network peerings" msgstr "" -#: lxc/network_zone.go:1175 lxc/network_zone.go:1176 +#: lxc/network_zone.go:1180 lxc/network_zone.go:1181 msgid "Delete network zone record" msgstr "" -#: lxc/network_zone.go:583 lxc/network_zone.go:584 +#: lxc/network_zone.go:588 lxc/network_zone.go:589 msgid "Delete network zones" msgstr "" @@ -1538,7 +1538,7 @@ msgstr "" msgid "Delete warning" msgstr "" -#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 +#: lxc/action.go:32 lxc/action.go:53 lxc/action.go:75 lxc/action.go:98 lxc/alias.go:23 lxc/alias.go:60 lxc/alias.go:110 lxc/alias.go:159 lxc/alias.go:214 lxc/auth.go:30 lxc/auth.go:59 lxc/auth.go:98 lxc/auth.go:152 lxc/auth.go:201 lxc/auth.go:332 lxc/auth.go:392 lxc/auth.go:441 lxc/auth.go:493 lxc/auth.go:516 lxc/auth.go:575 lxc/auth.go:731 lxc/auth.go:765 lxc/auth.go:832 lxc/auth.go:895 lxc/auth.go:956 lxc/auth.go:1084 lxc/auth.go:1107 lxc/auth.go:1165 lxc/auth.go:1234 lxc/auth.go:1256 lxc/auth.go:1434 lxc/auth.go:1472 lxc/auth.go:1524 lxc/auth.go:1573 lxc/auth.go:1692 lxc/auth.go:1752 lxc/auth.go:1801 lxc/auth.go:1852 lxc/auth.go:1875 lxc/auth.go:1928 lxc/cluster.go:29 lxc/cluster.go:122 lxc/cluster.go:206 lxc/cluster.go:255 lxc/cluster.go:306 lxc/cluster.go:367 lxc/cluster.go:439 lxc/cluster.go:471 lxc/cluster.go:521 lxc/cluster.go:604 lxc/cluster.go:689 lxc/cluster.go:804 lxc/cluster.go:880 lxc/cluster.go:982 lxc/cluster.go:1061 lxc/cluster.go:1168 lxc/cluster.go:1190 lxc/cluster_group.go:30 lxc/cluster_group.go:84 lxc/cluster_group.go:157 lxc/cluster_group.go:214 lxc/cluster_group.go:266 lxc/cluster_group.go:382 lxc/cluster_group.go:456 lxc/cluster_group.go:529 lxc/cluster_group.go:577 lxc/cluster_group.go:631 lxc/cluster_role.go:23 lxc/cluster_role.go:50 lxc/cluster_role.go:106 lxc/config.go:32 lxc/config.go:99 lxc/config.go:384 lxc/config.go:517 lxc/config.go:731 lxc/config.go:855 lxc/config.go:890 lxc/config.go:930 lxc/config.go:985 lxc/config.go:1076 lxc/config.go:1107 lxc/config.go:1161 lxc/config_device.go:24 lxc/config_device.go:78 lxc/config_device.go:208 lxc/config_device.go:285 lxc/config_device.go:356 lxc/config_device.go:450 lxc/config_device.go:548 lxc/config_device.go:555 lxc/config_device.go:668 lxc/config_device.go:741 lxc/config_metadata.go:27 lxc/config_metadata.go:55 lxc/config_metadata.go:180 lxc/config_template.go:27 lxc/config_template.go:67 lxc/config_template.go:110 lxc/config_template.go:152 lxc/config_template.go:240 lxc/config_template.go:300 lxc/config_trust.go:34 lxc/config_trust.go:87 lxc/config_trust.go:236 lxc/config_trust.go:350 lxc/config_trust.go:432 lxc/config_trust.go:534 lxc/config_trust.go:580 lxc/config_trust.go:651 lxc/console.go:37 lxc/copy.go:41 lxc/delete.go:31 lxc/exec.go:41 lxc/export.go:32 lxc/file.go:83 lxc/file.go:123 lxc/file.go:172 lxc/file.go:242 lxc/file.go:467 lxc/file.go:986 lxc/image.go:37 lxc/image.go:158 lxc/image.go:324 lxc/image.go:379 lxc/image.go:500 lxc/image.go:664 lxc/image.go:901 lxc/image.go:1035 lxc/image.go:1354 lxc/image.go:1441 lxc/image.go:1499 lxc/image.go:1550 lxc/image.go:1605 lxc/image_alias.go:24 lxc/image_alias.go:60 lxc/image_alias.go:107 lxc/image_alias.go:152 lxc/image_alias.go:255 lxc/import.go:29 lxc/info.go:32 lxc/init.go:43 lxc/launch.go:24 lxc/list.go:48 lxc/main.go:83 lxc/manpage.go:22 lxc/monitor.go:33 lxc/move.go:37 lxc/network.go:32 lxc/network.go:135 lxc/network.go:220 lxc/network.go:293 lxc/network.go:372 lxc/network.go:422 lxc/network.go:507 lxc/network.go:592 lxc/network.go:720 lxc/network.go:789 lxc/network.go:912 lxc/network.go:1005 lxc/network.go:1076 lxc/network.go:1128 lxc/network.go:1216 lxc/network.go:1280 lxc/network_acl.go:29 lxc/network_acl.go:94 lxc/network_acl.go:165 lxc/network_acl.go:218 lxc/network_acl.go:266 lxc/network_acl.go:327 lxc/network_acl.go:412 lxc/network_acl.go:492 lxc/network_acl.go:522 lxc/network_acl.go:653 lxc/network_acl.go:702 lxc/network_acl.go:751 lxc/network_acl.go:766 lxc/network_acl.go:887 lxc/network_allocations.go:51 lxc/network_forward.go:33 lxc/network_forward.go:90 lxc/network_forward.go:171 lxc/network_forward.go:236 lxc/network_forward.go:379 lxc/network_forward.go:448 lxc/network_forward.go:546 lxc/network_forward.go:576 lxc/network_forward.go:718 lxc/network_forward.go:780 lxc/network_forward.go:795 lxc/network_forward.go:860 lxc/network_load_balancer.go:33 lxc/network_load_balancer.go:94 lxc/network_load_balancer.go:173 lxc/network_load_balancer.go:238 lxc/network_load_balancer.go:388 lxc/network_load_balancer.go:456 lxc/network_load_balancer.go:554 lxc/network_load_balancer.go:584 lxc/network_load_balancer.go:727 lxc/network_load_balancer.go:788 lxc/network_load_balancer.go:803 lxc/network_load_balancer.go:867 lxc/network_load_balancer.go:953 lxc/network_load_balancer.go:968 lxc/network_load_balancer.go:1029 lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 lxc/network_zone.go:29 lxc/network_zone.go:86 lxc/network_zone.go:157 lxc/network_zone.go:212 lxc/network_zone.go:272 lxc/network_zone.go:359 lxc/network_zone.go:439 lxc/network_zone.go:470 lxc/network_zone.go:589 lxc/network_zone.go:637 lxc/network_zone.go:694 lxc/network_zone.go:764 lxc/network_zone.go:816 lxc/network_zone.go:875 lxc/network_zone.go:957 lxc/network_zone.go:1033 lxc/network_zone.go:1063 lxc/network_zone.go:1181 lxc/network_zone.go:1230 lxc/network_zone.go:1245 lxc/network_zone.go:1291 lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 lxc/profile.go:572 lxc/profile.go:633 lxc/profile.go:694 lxc/profile.go:770 lxc/profile.go:822 lxc/profile.go:898 lxc/profile.go:954 lxc/project.go:29 lxc/project.go:93 lxc/project.go:181 lxc/project.go:244 lxc/project.go:372 lxc/project.go:433 lxc/project.go:546 lxc/project.go:603 lxc/project.go:682 lxc/project.go:713 lxc/project.go:766 lxc/project.go:825 lxc/publish.go:33 lxc/query.go:34 lxc/rebuild.go:27 lxc/remote.go:35 lxc/remote.go:91 lxc/remote.go:648 lxc/remote.go:686 lxc/remote.go:772 lxc/remote.go:845 lxc/remote.go:901 lxc/remote.go:941 lxc/rename.go:21 lxc/restore.go:24 lxc/snapshot.go:28 lxc/storage.go:33 lxc/storage.go:96 lxc/storage.go:170 lxc/storage.go:220 lxc/storage.go:344 lxc/storage.go:414 lxc/storage.go:586 lxc/storage.go:665 lxc/storage.go:761 lxc/storage.go:847 lxc/storage_bucket.go:29 lxc/storage_bucket.go:83 lxc/storage_bucket.go:188 lxc/storage_bucket.go:249 lxc/storage_bucket.go:382 lxc/storage_bucket.go:458 lxc/storage_bucket.go:535 lxc/storage_bucket.go:629 lxc/storage_bucket.go:698 lxc/storage_bucket.go:732 lxc/storage_bucket.go:773 lxc/storage_bucket.go:852 lxc/storage_bucket.go:958 lxc/storage_bucket.go:1022 lxc/storage_bucket.go:1157 lxc/storage_volume.go:43 lxc/storage_volume.go:165 lxc/storage_volume.go:263 lxc/storage_volume.go:354 lxc/storage_volume.go:557 lxc/storage_volume.go:636 lxc/storage_volume.go:711 lxc/storage_volume.go:793 lxc/storage_volume.go:874 lxc/storage_volume.go:1083 lxc/storage_volume.go:1198 lxc/storage_volume.go:1345 lxc/storage_volume.go:1429 lxc/storage_volume.go:1674 lxc/storage_volume.go:1755 lxc/storage_volume.go:1870 lxc/storage_volume.go:2014 lxc/storage_volume.go:2123 lxc/storage_volume.go:2169 lxc/storage_volume.go:2266 lxc/storage_volume.go:2333 lxc/storage_volume.go:2487 lxc/version.go:22 lxc/warning.go:29 lxc/warning.go:71 lxc/warning.go:262 lxc/warning.go:303 lxc/warning.go:357 msgid "Description" msgstr "" @@ -1670,7 +1670,7 @@ msgstr "" msgid "Driver: %v (%v)" msgstr "" -#: lxc/network_zone.go:743 +#: lxc/network_zone.go:748 msgid "ENTRIES" msgstr "" @@ -1754,11 +1754,11 @@ msgstr "" msgid "Edit network peer configurations as YAML" msgstr "" -#: lxc/network_zone.go:464 lxc/network_zone.go:465 +#: lxc/network_zone.go:469 lxc/network_zone.go:470 msgid "Edit network zone configurations as YAML" msgstr "" -#: lxc/network_zone.go:1057 lxc/network_zone.go:1058 +#: lxc/network_zone.go:1062 lxc/network_zone.go:1063 msgid "Edit network zone record configurations as YAML" msgstr "" @@ -1810,7 +1810,7 @@ msgid "Enable clustering on a single non-clustered LXD server\n" " for the address if not yet set." msgstr "" -#: lxc/network_zone.go:1242 +#: lxc/network_zone.go:1247 msgid "Entry TTL" msgstr "" @@ -1837,7 +1837,7 @@ msgstr "" msgid "Error retrieving aliases: %w" msgstr "" -#: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 lxc/network_acl.go:467 lxc/network_forward.go:519 lxc/network_load_balancer.go:527 lxc/network_peer.go:463 lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 +#: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 lxc/network_acl.go:467 lxc/network_forward.go:519 lxc/network_load_balancer.go:527 lxc/network_peer.go:463 lxc/network_zone.go:414 lxc/network_zone.go:1008 lxc/profile.go:876 lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format msgid "Error setting properties: %v" msgstr "" @@ -1847,7 +1847,7 @@ msgstr "" msgid "Error unsetting properties: %v" msgstr "" -#: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 lxc/network_forward.go:513 lxc/network_load_balancer.go:521 lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 lxc/storage_volume.go:1979 +#: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 lxc/network_forward.go:513 lxc/network_load_balancer.go:521 lxc/network_peer.go:457 lxc/network_zone.go:408 lxc/network_zone.go:1002 lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 lxc/storage_volume.go:1979 #, c-format msgid "Error unsetting property: %v" msgstr "" @@ -2105,7 +2105,7 @@ msgstr "" msgid "Fast mode (same as --columns=nsacPt)" msgstr "" -#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:115 lxc/operation.go:136 +#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:116 lxc/operation.go:136 msgid "Filtering isn't supported yet" msgstr "" @@ -2165,7 +2165,7 @@ msgid "Forcefully removing a server from the cluster should only be done as a "Are you really sure you want to force removing %s? (yes/no): " msgstr "" -#: lxc/alias.go:112 lxc/auth.go:336 lxc/auth.go:769 lxc/auth.go:1696 lxc/cluster.go:124 lxc/cluster.go:881 lxc/cluster_group.go:384 lxc/config_template.go:242 lxc/config_trust.go:352 lxc/config_trust.go:434 lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 lxc/network_forward.go:93 lxc/network_load_balancer.go:97 lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 lxc/storage_volume.go:1446 lxc/warning.go:93 +#: lxc/alias.go:112 lxc/auth.go:336 lxc/auth.go:769 lxc/auth.go:1696 lxc/cluster.go:124 lxc/cluster.go:881 lxc/cluster_group.go:384 lxc/config_template.go:242 lxc/config_trust.go:352 lxc/config_trust.go:434 lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 lxc/network_forward.go:93 lxc/network_load_balancer.go:97 lxc/network_peer.go:84 lxc/network_zone.go:89 lxc/network_zone.go:697 lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 lxc/storage_volume.go:1446 lxc/warning.go:93 msgid "Format (csv|json|table|yaml|compact)" msgstr "" @@ -2265,11 +2265,11 @@ msgstr "" msgid "Get the key as a network property" msgstr "" -#: lxc/network_zone.go:214 +#: lxc/network_zone.go:215 msgid "Get the key as a network zone property" msgstr "" -#: lxc/network_zone.go:814 +#: lxc/network_zone.go:819 msgid "Get the key as a network zone record property" msgstr "" @@ -2329,11 +2329,11 @@ msgstr "" msgid "Get values for network peer configuration keys" msgstr "" -#: lxc/network_zone.go:210 lxc/network_zone.go:211 +#: lxc/network_zone.go:211 lxc/network_zone.go:212 msgid "Get values for network zone configuration keys" msgstr "" -#: lxc/network_zone.go:810 lxc/network_zone.go:811 +#: lxc/network_zone.go:815 lxc/network_zone.go:816 msgid "Get values for network zone record configuration keys" msgstr "" @@ -2860,15 +2860,15 @@ msgstr "" msgid "List available network peers" msgstr "" -#: lxc/network_zone.go:85 +#: lxc/network_zone.go:86 msgid "List available network zone" msgstr "" -#: lxc/network_zone.go:688 lxc/network_zone.go:689 +#: lxc/network_zone.go:693 lxc/network_zone.go:694 msgid "List available network zone records" msgstr "" -#: lxc/network_zone.go:84 +#: lxc/network_zone.go:85 msgid "List available network zoneS" msgstr "" @@ -3319,15 +3319,15 @@ msgstr "" msgid "Manage network peerings" msgstr "" -#: lxc/network_zone.go:1224 lxc/network_zone.go:1225 +#: lxc/network_zone.go:1229 lxc/network_zone.go:1230 msgid "Manage network zone record entries" msgstr "" -#: lxc/network_zone.go:631 lxc/network_zone.go:632 +#: lxc/network_zone.go:636 lxc/network_zone.go:637 msgid "Manage network zone records" msgstr "" -#: lxc/network_zone.go:27 lxc/network_zone.go:28 +#: lxc/network_zone.go:28 lxc/network_zone.go:29 msgid "Manage network zones" msgstr "" @@ -3509,11 +3509,11 @@ msgstr "" msgid "Missing network name" msgstr "" -#: lxc/network_zone.go:178 lxc/network_zone.go:234 lxc/network_zone.go:294 lxc/network_zone.go:382 lxc/network_zone.go:503 lxc/network_zone.go:606 lxc/network_zone.go:712 lxc/network_zone.go:780 lxc/network_zone.go:892 lxc/network_zone.go:976 lxc/network_zone.go:1197 lxc/network_zone.go:1262 lxc/network_zone.go:1307 +#: lxc/network_zone.go:179 lxc/network_zone.go:235 lxc/network_zone.go:299 lxc/network_zone.go:387 lxc/network_zone.go:508 lxc/network_zone.go:611 lxc/network_zone.go:717 lxc/network_zone.go:785 lxc/network_zone.go:897 lxc/network_zone.go:981 lxc/network_zone.go:1202 lxc/network_zone.go:1267 lxc/network_zone.go:1312 msgid "Missing network zone name" msgstr "" -#: lxc/network_zone.go:833 lxc/network_zone.go:1095 +#: lxc/network_zone.go:838 lxc/network_zone.go:1100 msgid "Missing network zone record name" msgstr "" @@ -3642,7 +3642,7 @@ msgstr "" msgid "Must supply instance name for: " msgstr "" -#: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 +#: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:139 lxc/network_zone.go:746 lxc/profile.go:677 lxc/project.go:521 lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" msgstr "" @@ -3741,12 +3741,12 @@ msgstr "" msgid "Network ACL %s renamed to %s" msgstr "" -#: lxc/network_zone.go:336 +#: lxc/network_zone.go:341 #, c-format msgid "Network Zone %s created" msgstr "" -#: lxc/network_zone.go:616 +#: lxc/network_zone.go:621 #, c-format msgid "Network Zone %s deleted" msgstr "" @@ -3803,12 +3803,12 @@ msgstr "" msgid "Network usage:" msgstr "" -#: lxc/network_zone.go:934 +#: lxc/network_zone.go:939 #, c-format msgid "Network zone record %s created" msgstr "" -#: lxc/network_zone.go:1207 +#: lxc/network_zone.go:1212 #, c-format msgid "Network zone record %s deleted" msgstr "" @@ -4026,7 +4026,7 @@ msgstr "" msgid "Press ctrl+c to finish" msgstr "" -#: lxc/auth.go:301 lxc/auth.go:1055 lxc/auth.go:1661 lxc/cluster.go:771 lxc/cluster_group.go:340 lxc/config.go:273 lxc/config.go:348 lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 lxc/network_acl.go:621 lxc/network_forward.go:686 lxc/network_load_balancer.go:695 lxc/network_peer.go:611 lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 lxc/storage_volume.go:1049 +#: lxc/auth.go:301 lxc/auth.go:1055 lxc/auth.go:1661 lxc/cluster.go:771 lxc/cluster_group.go:340 lxc/config.go:273 lxc/config.go:348 lxc/config.go:1275 lxc/config_metadata.go:148 lxc/config_template.go:206 lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 lxc/network_acl.go:621 lxc/network_forward.go:686 lxc/network_load_balancer.go:695 lxc/network_peer.go:611 lxc/network_zone.go:557 lxc/network_zone.go:1149 lxc/profile.go:539 lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 lxc/storage_volume.go:1049 msgid "Press enter to open the editor again or ctrl+c to abort change" msgstr "" @@ -4367,7 +4367,7 @@ msgstr "" msgid "Remove a member from the cluster" msgstr "" -#: lxc/network_zone.go:1285 +#: lxc/network_zone.go:1290 msgid "Remove a network zone record entry" msgstr "" @@ -4391,7 +4391,7 @@ msgstr "" msgid "Remove backends from a load balancer" msgstr "" -#: lxc/network_zone.go:1286 +#: lxc/network_zone.go:1291 msgid "Remove entries from a network zone record" msgstr "" @@ -4779,18 +4779,18 @@ msgid "Set network peer keys\n" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "Set network zone configuration keys\n" "\n" "For backward compatibility, a single configuration key may still be set with:\n" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -4889,11 +4889,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5026,15 +5026,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5421,12 +5421,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -5631,7 +5631,7 @@ msgstr "" msgid "USAGE" msgstr "" -#: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 lxc/storage.go:647 lxc/storage_volume.go:1564 +#: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -5744,11 +5744,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -5796,11 +5796,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -5993,7 +5993,7 @@ msgstr "" msgid "[] [] []" msgstr "" -#: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 +#: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" msgstr "" @@ -6053,19 +6053,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -6529,27 +6529,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -6803,6 +6803,13 @@ msgid "lxc network load-balancer create n1 127.0.0.1\n" " Create network load-balancer for network n1 with configuration from config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "lxc network zone create z1\n" + "\n" + "lxc network zone create z1 < config.yaml\n" + " Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" " Show details on that operation UUID" diff --git a/po/mr.po b/po/mr.po index 418de896062e..36a593ad5022 100644 --- a/po/mr.po +++ b/po/mr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Marathi :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/nb_NO.po b/po/nb_NO.po index 6cd013f4ab0b..04992b08c303 100644 --- a/po/nb_NO.po +++ b/po/nb_NO.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Norwegian Bokmål :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/nl.po b/po/nl.po index add048bab4ac..a919471cfca5 100644 --- a/po/nl.po +++ b/po/nl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Heimen Stoffels \n" "Language-Team: Dutch :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5412,7 +5412,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5521,11 +5521,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5662,15 +5662,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -6064,12 +6064,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6286,7 +6286,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6401,11 +6401,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6453,11 +6453,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6663,7 +6663,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6726,19 +6726,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7233,27 +7233,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7554,6 +7554,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/pa.po b/po/pa.po index 266e25a28558..5345ed61b8f3 100644 --- a/po/pa.po +++ b/po/pa.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Punjabi :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/pl.po b/po/pl.po index 3b84b3304d77..f8e51ef3246d 100644 --- a/po/pl.po +++ b/po/pl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Polish :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5450,7 +5450,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5559,11 +5559,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5700,15 +5700,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -6102,12 +6102,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6324,7 +6324,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6439,11 +6439,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6491,11 +6491,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6701,7 +6701,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6764,19 +6764,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7271,27 +7271,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7592,6 +7592,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/pt.po b/po/pt.po index 8684db5f5fc7..a4a3aca32851 100644 --- a/po/pt.po +++ b/po/pt.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -319,7 +319,7 @@ msgid "" "cannot be changed." msgstr "" -#: lxc/network_zone.go:1066 +#: lxc/network_zone.go:1071 msgid "" "### This is a YAML representation of the network zone record.\n" "### Any line starting with a '# will be ignored.\n" @@ -333,7 +333,7 @@ msgid "" "### user.foo: bah\n" msgstr "" -#: lxc/network_zone.go:473 +#: lxc/network_zone.go:478 msgid "" "### This is a YAML representation of the network zone.\n" "### Any line starting with a '# will be ignored.\n" @@ -603,7 +603,7 @@ msgstr "" msgid "Add a group to an identity provider group" msgstr "" -#: lxc/network_zone.go:1239 +#: lxc/network_zone.go:1244 msgid "Add a network zone record entry" msgstr "" @@ -615,7 +615,7 @@ msgstr "" msgid "Add backends to a load balancer" msgstr "" -#: lxc/network_zone.go:1240 +#: lxc/network_zone.go:1245 msgid "Add entries to a network zone record" msgstr "" @@ -866,7 +866,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 +#: lxc/network_zone.go:329 lxc/network_zone.go:927 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1211,7 +1211,7 @@ msgstr "" #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 -#: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 +#: lxc/network_zone.go:556 lxc/network_zone.go:1148 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 #: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 @@ -1370,7 +1370,7 @@ msgstr "" msgid "Could not write server cert file %q: %w" msgstr "" -#: lxc/network_zone.go:1327 +#: lxc/network_zone.go:1332 msgid "Couldn't find a matching entry" msgstr "" @@ -1454,11 +1454,11 @@ msgstr "" msgid "Create new network peering" msgstr "" -#: lxc/network_zone.go:869 lxc/network_zone.go:870 +#: lxc/network_zone.go:874 lxc/network_zone.go:875 msgid "Create new network zone record" msgstr "" -#: lxc/network_zone.go:270 lxc/network_zone.go:271 +#: lxc/network_zone.go:271 lxc/network_zone.go:272 msgid "Create new network zones" msgstr "" @@ -1509,7 +1509,7 @@ msgstr "" #: lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 #: lxc/network_acl.go:148 lxc/network_forward.go:149 #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 -#: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 +#: lxc/network_zone.go:140 lxc/network_zone.go:747 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 #: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 @@ -1596,11 +1596,11 @@ msgstr "" msgid "Delete network peerings" msgstr "" -#: lxc/network_zone.go:1175 lxc/network_zone.go:1176 +#: lxc/network_zone.go:1180 lxc/network_zone.go:1181 msgid "Delete network zone record" msgstr "" -#: lxc/network_zone.go:583 lxc/network_zone.go:584 +#: lxc/network_zone.go:588 lxc/network_zone.go:589 msgid "Delete network zones" msgstr "" @@ -1700,13 +1700,13 @@ msgstr "" #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 -#: lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 -#: lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 -#: lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 -#: lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 -#: lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 -#: lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 -#: lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 +#: lxc/network_zone.go:29 lxc/network_zone.go:86 lxc/network_zone.go:157 +#: lxc/network_zone.go:212 lxc/network_zone.go:272 lxc/network_zone.go:359 +#: lxc/network_zone.go:439 lxc/network_zone.go:470 lxc/network_zone.go:589 +#: lxc/network_zone.go:637 lxc/network_zone.go:694 lxc/network_zone.go:764 +#: lxc/network_zone.go:816 lxc/network_zone.go:875 lxc/network_zone.go:957 +#: lxc/network_zone.go:1033 lxc/network_zone.go:1063 lxc/network_zone.go:1181 +#: lxc/network_zone.go:1230 lxc/network_zone.go:1245 lxc/network_zone.go:1291 #: lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 #: lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 #: lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 @@ -1876,7 +1876,7 @@ msgstr "" msgid "Driver: %v (%v)" msgstr "" -#: lxc/network_zone.go:743 +#: lxc/network_zone.go:748 msgid "ENTRIES" msgstr "" @@ -1962,11 +1962,11 @@ msgstr "" msgid "Edit network peer configurations as YAML" msgstr "" -#: lxc/network_zone.go:464 lxc/network_zone.go:465 +#: lxc/network_zone.go:469 lxc/network_zone.go:470 msgid "Edit network zone configurations as YAML" msgstr "" -#: lxc/network_zone.go:1057 lxc/network_zone.go:1058 +#: lxc/network_zone.go:1062 lxc/network_zone.go:1063 msgid "Edit network zone record configurations as YAML" msgstr "" @@ -2023,7 +2023,7 @@ msgid "" " for the address if not yet set." msgstr "" -#: lxc/network_zone.go:1242 +#: lxc/network_zone.go:1247 msgid "Entry TTL" msgstr "" @@ -2053,7 +2053,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 -#: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 +#: lxc/network_zone.go:414 lxc/network_zone.go:1008 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format @@ -2067,7 +2067,7 @@ msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 -#: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 +#: lxc/network_peer.go:457 lxc/network_zone.go:408 lxc/network_zone.go:1002 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 @@ -2333,7 +2333,7 @@ msgstr "" msgid "Fast mode (same as --columns=nsacPt)" msgstr "" -#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:115 +#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:116 #: lxc/operation.go:136 msgid "Filtering isn't supported yet" msgstr "" @@ -2405,7 +2405,7 @@ msgstr "" #: lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 #: lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 -#: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 +#: lxc/network_peer.go:84 lxc/network_zone.go:89 lxc/network_zone.go:697 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 @@ -2509,11 +2509,11 @@ msgstr "" msgid "Get the key as a network property" msgstr "" -#: lxc/network_zone.go:214 +#: lxc/network_zone.go:215 msgid "Get the key as a network zone property" msgstr "" -#: lxc/network_zone.go:814 +#: lxc/network_zone.go:819 msgid "Get the key as a network zone record property" msgstr "" @@ -2573,11 +2573,11 @@ msgstr "" msgid "Get values for network peer configuration keys" msgstr "" -#: lxc/network_zone.go:210 lxc/network_zone.go:211 +#: lxc/network_zone.go:211 lxc/network_zone.go:212 msgid "Get values for network zone configuration keys" msgstr "" -#: lxc/network_zone.go:810 lxc/network_zone.go:811 +#: lxc/network_zone.go:815 lxc/network_zone.go:816 msgid "Get values for network zone record configuration keys" msgstr "" @@ -3113,15 +3113,15 @@ msgstr "" msgid "List available network peers" msgstr "" -#: lxc/network_zone.go:85 +#: lxc/network_zone.go:86 msgid "List available network zone" msgstr "" -#: lxc/network_zone.go:688 lxc/network_zone.go:689 +#: lxc/network_zone.go:693 lxc/network_zone.go:694 msgid "List available network zone records" msgstr "" -#: lxc/network_zone.go:84 +#: lxc/network_zone.go:85 msgid "List available network zoneS" msgstr "" @@ -3585,15 +3585,15 @@ msgstr "" msgid "Manage network peerings" msgstr "" -#: lxc/network_zone.go:1224 lxc/network_zone.go:1225 +#: lxc/network_zone.go:1229 lxc/network_zone.go:1230 msgid "Manage network zone record entries" msgstr "" -#: lxc/network_zone.go:631 lxc/network_zone.go:632 +#: lxc/network_zone.go:636 lxc/network_zone.go:637 msgid "Manage network zone records" msgstr "" -#: lxc/network_zone.go:27 lxc/network_zone.go:28 +#: lxc/network_zone.go:28 lxc/network_zone.go:29 msgid "Manage network zones" msgstr "" @@ -3819,15 +3819,15 @@ msgstr "" msgid "Missing network name" msgstr "" -#: lxc/network_zone.go:178 lxc/network_zone.go:234 lxc/network_zone.go:294 -#: lxc/network_zone.go:382 lxc/network_zone.go:503 lxc/network_zone.go:606 -#: lxc/network_zone.go:712 lxc/network_zone.go:780 lxc/network_zone.go:892 -#: lxc/network_zone.go:976 lxc/network_zone.go:1197 lxc/network_zone.go:1262 -#: lxc/network_zone.go:1307 +#: lxc/network_zone.go:179 lxc/network_zone.go:235 lxc/network_zone.go:299 +#: lxc/network_zone.go:387 lxc/network_zone.go:508 lxc/network_zone.go:611 +#: lxc/network_zone.go:717 lxc/network_zone.go:785 lxc/network_zone.go:897 +#: lxc/network_zone.go:981 lxc/network_zone.go:1202 lxc/network_zone.go:1267 +#: lxc/network_zone.go:1312 msgid "Missing network zone name" msgstr "" -#: lxc/network_zone.go:833 lxc/network_zone.go:1095 +#: lxc/network_zone.go:838 lxc/network_zone.go:1100 msgid "Missing network zone record name" msgstr "" @@ -3982,8 +3982,8 @@ msgstr "" #: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 #: lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 -#: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 -#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 +#: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:139 +#: lxc/network_zone.go:746 lxc/profile.go:677 lxc/project.go:521 #: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 #: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" @@ -4087,12 +4087,12 @@ msgstr "" msgid "Network ACL %s renamed to %s" msgstr "" -#: lxc/network_zone.go:336 +#: lxc/network_zone.go:341 #, c-format msgid "Network Zone %s created" msgstr "" -#: lxc/network_zone.go:616 +#: lxc/network_zone.go:621 #, c-format msgid "Network Zone %s deleted" msgstr "" @@ -4150,12 +4150,12 @@ msgstr "" msgid "Network usage:" msgstr "" -#: lxc/network_zone.go:934 +#: lxc/network_zone.go:939 #, c-format msgid "Network zone record %s created" msgstr "" -#: lxc/network_zone.go:1207 +#: lxc/network_zone.go:1212 #, c-format msgid "Network zone record %s deleted" msgstr "" @@ -4379,7 +4379,7 @@ msgstr "" #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 -#: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 +#: lxc/network_zone.go:557 lxc/network_zone.go:1149 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 #: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 @@ -4740,7 +4740,7 @@ msgstr "" msgid "Remove a member from the cluster" msgstr "" -#: lxc/network_zone.go:1285 +#: lxc/network_zone.go:1290 msgid "Remove a network zone record entry" msgstr "" @@ -4764,7 +4764,7 @@ msgstr "" msgid "Remove backends from a load balancer" msgstr "" -#: lxc/network_zone.go:1286 +#: lxc/network_zone.go:1291 msgid "Remove entries from a network zone record" msgstr "" @@ -5172,11 +5172,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5185,7 +5185,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5294,11 +5294,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5435,15 +5435,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5837,12 +5837,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6059,7 +6059,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6174,11 +6174,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6226,11 +6226,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6436,7 +6436,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6499,19 +6499,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7006,27 +7006,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7327,6 +7327,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/pt_BR.po b/po/pt_BR.po index 33fddb7e7b98..68ddfcfc254a 100644 --- a/po/pt_BR.po +++ b/po/pt_BR.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:08+0000\n" "Last-Translator: Renato dos Santos \n" "Language-Team: Portuguese (Brazil) ,=: %s" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 +#: lxc/network_zone.go:329 lxc/network_zone.go:927 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "par de chave/valor inválido %s" @@ -1503,7 +1503,7 @@ msgstr "Configuração chave/valor para aplicar ao novo contêiner" #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 -#: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 +#: lxc/network_zone.go:556 lxc/network_zone.go:1148 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 #: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 @@ -1664,7 +1664,7 @@ msgstr "" msgid "Could not write server cert file %q: %w" msgstr "Impossível criar diretório para certificado do servidor" -#: lxc/network_zone.go:1327 +#: lxc/network_zone.go:1332 msgid "Couldn't find a matching entry" msgstr "" @@ -1762,12 +1762,12 @@ msgstr "Criar novas redes" msgid "Create new network peering" msgstr "Criar novas redes" -#: lxc/network_zone.go:869 lxc/network_zone.go:870 +#: lxc/network_zone.go:874 lxc/network_zone.go:875 #, fuzzy msgid "Create new network zone record" msgstr "Criar novas redes" -#: lxc/network_zone.go:270 lxc/network_zone.go:271 +#: lxc/network_zone.go:271 lxc/network_zone.go:272 #, fuzzy msgid "Create new network zones" msgstr "Criar novas redes" @@ -1820,7 +1820,7 @@ msgstr "" #: lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 #: lxc/network_acl.go:148 lxc/network_forward.go:149 #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 -#: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 +#: lxc/network_zone.go:140 lxc/network_zone.go:747 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 #: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 @@ -1917,12 +1917,12 @@ msgstr "Criar novas redes" msgid "Delete network peerings" msgstr "Criar novas redes" -#: lxc/network_zone.go:1175 lxc/network_zone.go:1176 +#: lxc/network_zone.go:1180 lxc/network_zone.go:1181 #, fuzzy msgid "Delete network zone record" msgstr "Criar novas redes" -#: lxc/network_zone.go:583 lxc/network_zone.go:584 +#: lxc/network_zone.go:588 lxc/network_zone.go:589 #, fuzzy msgid "Delete network zones" msgstr "Criar novas redes" @@ -2024,13 +2024,13 @@ msgstr "" #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 -#: lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 -#: lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 -#: lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 -#: lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 -#: lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 -#: lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 -#: lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 +#: lxc/network_zone.go:29 lxc/network_zone.go:86 lxc/network_zone.go:157 +#: lxc/network_zone.go:212 lxc/network_zone.go:272 lxc/network_zone.go:359 +#: lxc/network_zone.go:439 lxc/network_zone.go:470 lxc/network_zone.go:589 +#: lxc/network_zone.go:637 lxc/network_zone.go:694 lxc/network_zone.go:764 +#: lxc/network_zone.go:816 lxc/network_zone.go:875 lxc/network_zone.go:957 +#: lxc/network_zone.go:1033 lxc/network_zone.go:1063 lxc/network_zone.go:1181 +#: lxc/network_zone.go:1230 lxc/network_zone.go:1245 lxc/network_zone.go:1291 #: lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 #: lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 #: lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 @@ -2206,7 +2206,7 @@ msgstr "" msgid "Driver: %v (%v)" msgstr "" -#: lxc/network_zone.go:743 +#: lxc/network_zone.go:748 msgid "ENTRIES" msgstr "" @@ -2306,12 +2306,12 @@ msgstr "Editar configurações de rede como YAML" msgid "Edit network peer configurations as YAML" msgstr "Editar configurações de rede como YAML" -#: lxc/network_zone.go:464 lxc/network_zone.go:465 +#: lxc/network_zone.go:469 lxc/network_zone.go:470 #, fuzzy msgid "Edit network zone configurations as YAML" msgstr "Editar configurações de rede como YAML" -#: lxc/network_zone.go:1057 lxc/network_zone.go:1058 +#: lxc/network_zone.go:1062 lxc/network_zone.go:1063 #, fuzzy msgid "Edit network zone record configurations as YAML" msgstr "Editar configurações de rede como YAML" @@ -2372,7 +2372,7 @@ msgid "" " for the address if not yet set." msgstr "" -#: lxc/network_zone.go:1242 +#: lxc/network_zone.go:1247 msgid "Entry TTL" msgstr "" @@ -2402,7 +2402,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 -#: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 +#: lxc/network_zone.go:414 lxc/network_zone.go:1008 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, fuzzy, c-format @@ -2416,7 +2416,7 @@ msgstr "Editar propriedades da imagem" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 -#: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 +#: lxc/network_peer.go:457 lxc/network_zone.go:408 lxc/network_zone.go:1002 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 @@ -2683,7 +2683,7 @@ msgstr "Aceitar certificado" msgid "Fast mode (same as --columns=nsacPt)" msgstr "" -#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:115 +#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:116 #: lxc/operation.go:136 msgid "Filtering isn't supported yet" msgstr "" @@ -2756,7 +2756,7 @@ msgstr "" #: lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 #: lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 -#: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 +#: lxc/network_peer.go:84 lxc/network_zone.go:89 lxc/network_zone.go:697 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 @@ -2865,12 +2865,12 @@ msgstr "Criar novas redes" msgid "Get the key as a network property" msgstr "" -#: lxc/network_zone.go:214 +#: lxc/network_zone.go:215 #, fuzzy msgid "Get the key as a network zone property" msgstr "Criar novas redes" -#: lxc/network_zone.go:814 +#: lxc/network_zone.go:819 #, fuzzy msgid "Get the key as a network zone record property" msgstr "Editar configurações de perfil como YAML" @@ -2940,12 +2940,12 @@ msgstr "Editar configurações de perfil como YAML" msgid "Get values for network peer configuration keys" msgstr "Editar configurações de perfil como YAML" -#: lxc/network_zone.go:210 lxc/network_zone.go:211 +#: lxc/network_zone.go:211 lxc/network_zone.go:212 #, fuzzy msgid "Get values for network zone configuration keys" msgstr "Editar configurações de perfil como YAML" -#: lxc/network_zone.go:810 lxc/network_zone.go:811 +#: lxc/network_zone.go:815 lxc/network_zone.go:816 #, fuzzy msgid "Get values for network zone record configuration keys" msgstr "Editar configurações de perfil como YAML" @@ -3493,16 +3493,16 @@ msgstr "Criar novas redes" msgid "List available network peers" msgstr "" -#: lxc/network_zone.go:85 +#: lxc/network_zone.go:86 msgid "List available network zone" msgstr "" -#: lxc/network_zone.go:688 lxc/network_zone.go:689 +#: lxc/network_zone.go:693 lxc/network_zone.go:694 #, fuzzy msgid "List available network zone records" msgstr "Criar novas redes" -#: lxc/network_zone.go:84 +#: lxc/network_zone.go:85 msgid "List available network zoneS" msgstr "" @@ -3987,17 +3987,17 @@ msgstr "Criar novas redes" msgid "Manage network peerings" msgstr "Criar novas redes" -#: lxc/network_zone.go:1224 lxc/network_zone.go:1225 +#: lxc/network_zone.go:1229 lxc/network_zone.go:1230 #, fuzzy msgid "Manage network zone record entries" msgstr "Criar novas redes" -#: lxc/network_zone.go:631 lxc/network_zone.go:632 +#: lxc/network_zone.go:636 lxc/network_zone.go:637 #, fuzzy msgid "Manage network zone records" msgstr "Criar novas redes" -#: lxc/network_zone.go:27 lxc/network_zone.go:28 +#: lxc/network_zone.go:28 lxc/network_zone.go:29 #, fuzzy msgid "Manage network zones" msgstr "Criar novas redes" @@ -4242,16 +4242,16 @@ msgstr "Nome de membro do cluster" msgid "Missing network name" msgstr "" -#: lxc/network_zone.go:178 lxc/network_zone.go:234 lxc/network_zone.go:294 -#: lxc/network_zone.go:382 lxc/network_zone.go:503 lxc/network_zone.go:606 -#: lxc/network_zone.go:712 lxc/network_zone.go:780 lxc/network_zone.go:892 -#: lxc/network_zone.go:976 lxc/network_zone.go:1197 lxc/network_zone.go:1262 -#: lxc/network_zone.go:1307 +#: lxc/network_zone.go:179 lxc/network_zone.go:235 lxc/network_zone.go:299 +#: lxc/network_zone.go:387 lxc/network_zone.go:508 lxc/network_zone.go:611 +#: lxc/network_zone.go:717 lxc/network_zone.go:785 lxc/network_zone.go:897 +#: lxc/network_zone.go:981 lxc/network_zone.go:1202 lxc/network_zone.go:1267 +#: lxc/network_zone.go:1312 #, fuzzy msgid "Missing network zone name" msgstr "Nome de membro do cluster" -#: lxc/network_zone.go:833 lxc/network_zone.go:1095 +#: lxc/network_zone.go:838 lxc/network_zone.go:1100 #, fuzzy msgid "Missing network zone record name" msgstr "Nome de membro do cluster" @@ -4411,8 +4411,8 @@ msgstr "" #: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 #: lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 -#: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 -#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 +#: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:139 +#: lxc/network_zone.go:746 lxc/profile.go:677 lxc/project.go:521 #: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 #: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" @@ -4516,12 +4516,12 @@ msgstr "" msgid "Network ACL %s renamed to %s" msgstr "" -#: lxc/network_zone.go:336 +#: lxc/network_zone.go:341 #, c-format msgid "Network Zone %s created" msgstr "" -#: lxc/network_zone.go:616 +#: lxc/network_zone.go:621 #, c-format msgid "Network Zone %s deleted" msgstr "" @@ -4579,12 +4579,12 @@ msgstr "" msgid "Network usage:" msgstr "" -#: lxc/network_zone.go:934 +#: lxc/network_zone.go:939 #, c-format msgid "Network zone record %s created" msgstr "" -#: lxc/network_zone.go:1207 +#: lxc/network_zone.go:1212 #, c-format msgid "Network zone record %s deleted" msgstr "" @@ -4809,7 +4809,7 @@ msgstr "" #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 -#: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 +#: lxc/network_zone.go:557 lxc/network_zone.go:1149 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 #: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 @@ -5182,7 +5182,7 @@ msgstr "Adicionar perfis aos containers" msgid "Remove a member from the cluster" msgstr "" -#: lxc/network_zone.go:1285 +#: lxc/network_zone.go:1290 #, fuzzy msgid "Remove a network zone record entry" msgstr "Editar configurações de perfil como YAML" @@ -5209,7 +5209,7 @@ msgstr "Nome de membro do cluster" msgid "Remove backends from a load balancer" msgstr "Nome de membro do cluster" -#: lxc/network_zone.go:1286 +#: lxc/network_zone.go:1291 #, fuzzy msgid "Remove entries from a network zone record" msgstr "Adicionar perfis aos containers" @@ -5646,12 +5646,12 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 #, fuzzy msgid "Set network zone configuration keys" msgstr "Editar configurações de perfil como YAML" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5660,7 +5660,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 #, fuzzy msgid "Set network zone record configuration keys" msgstr "Editar configurações de perfil como YAML" @@ -5775,12 +5775,12 @@ msgstr "Criar novas redes" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 #, fuzzy msgid "Set the key as a network zone property" msgstr "Criar novas redes" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 #, fuzzy msgid "Set the key as a network zone record property" msgstr "Editar configurações de perfil como YAML" @@ -5933,17 +5933,17 @@ msgstr "Editar configurações do container ou do servidor como YAML" msgid "Show network peer configurations" msgstr "Editar configurações do container ou do servidor como YAML" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 #, fuzzy msgid "Show network zone configurations" msgstr "Editar configurações do container ou do servidor como YAML" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 #, fuzzy msgid "Show network zone record configuration" msgstr "Editar configurações do container ou do servidor como YAML" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 #, fuzzy msgid "Show network zone record configurations" msgstr "Editar configurações do container ou do servidor como YAML" @@ -6348,12 +6348,12 @@ msgstr "Nome de membro do cluster" msgid "The property %q does not exist on the network peer %q: %v" msgstr "Nome de membro do cluster" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, fuzzy, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "Nome de membro do cluster" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, fuzzy, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "Nome de membro do cluster" @@ -6573,7 +6573,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6702,12 +6702,12 @@ msgstr "Editar configurações de perfil como YAML" msgid "Unset network peer keys" msgstr "Criar novas redes" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 #, fuzzy msgid "Unset network zone configuration keys" msgstr "Editar configurações de perfil como YAML" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 #, fuzzy msgid "Unset network zone record configuration keys" msgstr "Editar configurações de perfil como YAML" @@ -6762,12 +6762,12 @@ msgstr "Criar novas redes" msgid "Unset the key as a network property" msgstr "Criar novas redes" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 #, fuzzy msgid "Unset the key as a network zone property" msgstr "Criar novas redes" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 #, fuzzy msgid "Unset the key as a network zone record property" msgstr "Editar configurações de perfil como YAML" @@ -6978,7 +6978,7 @@ msgstr "Criar perfis" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -7050,22 +7050,22 @@ msgstr "Editar templates de arquivo do container" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 #, fuzzy msgid "[:]" msgstr "Criar perfis" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 #, fuzzy msgid "[:] " msgstr "Editar templates de arquivo do container" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 #, fuzzy msgid "[:] =..." msgstr "Editar templates de arquivo do container" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 #, fuzzy msgid "[:] [key=value...]" msgstr "Editar templates de arquivo do container" @@ -7611,32 +7611,32 @@ msgstr "Criar perfis" msgid "[:]" msgstr "Criar perfis" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 #, fuzzy msgid "[:]" msgstr "Criar perfis" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 #, fuzzy msgid "[:] " msgstr "Editar templates de arquivo do container" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 #, fuzzy msgid "[:] " msgstr "Editar templates de arquivo do container" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 #, fuzzy msgid "[:] =..." msgstr "Editar templates de arquivo do container" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 #, fuzzy msgid "[:] " msgstr "Editar templates de arquivo do container" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 #, fuzzy msgid "[:] [key=value...]" msgstr "Editar templates de arquivo do container" @@ -7941,6 +7941,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ru.po b/po/ru.po index e5d833a8a685..d7de582e4c23 100644 --- a/po/ru.po +++ b/po/ru.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:06+0000\n" "Last-Translator: Александр Киль \n" "Language-Team: Russian :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 #, fuzzy msgid "Set network zone configuration keys" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5653,7 +5653,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 #, fuzzy msgid "Set network zone record configuration keys" msgstr "Копирование образа: %s" @@ -5767,12 +5767,12 @@ msgstr "Копирование образа: %s" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 #, fuzzy msgid "Set the key as a network zone property" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 #, fuzzy msgid "Set the key as a network zone record property" msgstr "Копирование образа: %s" @@ -5922,17 +5922,17 @@ msgstr "Копирование образа: %s" msgid "Show network peer configurations" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 #, fuzzy msgid "Show network zone configurations" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 #, fuzzy msgid "Show network zone record configuration" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 #, fuzzy msgid "Show network zone record configurations" msgstr "Копирование образа: %s" @@ -6337,12 +6337,12 @@ msgstr "Копирование образа: %s" msgid "The property %q does not exist on the network peer %q: %v" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, fuzzy, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, fuzzy, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "Копирование образа: %s" @@ -6561,7 +6561,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6684,12 +6684,12 @@ msgstr "Копирование образа: %s" msgid "Unset network peer keys" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 #, fuzzy msgid "Unset network zone configuration keys" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 #, fuzzy msgid "Unset network zone record configuration keys" msgstr "Копирование образа: %s" @@ -6743,12 +6743,12 @@ msgstr "Копирование образа: %s" msgid "Unset the key as a network property" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 #, fuzzy msgid "Unset the key as a network zone property" msgstr "Копирование образа: %s" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 #, fuzzy msgid "Unset the key as a network zone record property" msgstr "Копирование образа: %s" @@ -6968,7 +6968,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 #, fuzzy @@ -7087,7 +7087,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 #, fuzzy msgid "[:]" msgstr "" @@ -7095,7 +7095,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 #, fuzzy msgid "[:] " msgstr "" @@ -7103,7 +7103,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 #, fuzzy msgid "[:] =..." msgstr "" @@ -7111,7 +7111,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 #, fuzzy msgid "[:] [key=value...]" msgstr "" @@ -8058,7 +8058,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 #, fuzzy msgid "[:]" msgstr "" @@ -8066,7 +8066,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 #, fuzzy msgid "[:] " msgstr "" @@ -8074,7 +8074,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 #, fuzzy msgid "[:] " msgstr "" @@ -8082,7 +8082,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 #, fuzzy msgid "[:] =..." msgstr "" @@ -8090,7 +8090,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 #, fuzzy msgid "[:] " msgstr "" @@ -8098,7 +8098,7 @@ msgstr "" "\n" "lxc %s [:] [[:]...]%s" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 #, fuzzy msgid "[:] [key=value...]" msgstr "" @@ -8431,6 +8431,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/si.po b/po/si.po index 8d93c1803175..750cc7af98ab 100644 --- a/po/si.po +++ b/po/si.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Sinhala :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/sl.po b/po/sl.po index baa47d256cf6..2f1918ae5d5f 100644 --- a/po/sl.po +++ b/po/sl.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Slovenian :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5189,7 +5189,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5298,11 +5298,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5439,15 +5439,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5841,12 +5841,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6063,7 +6063,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6178,11 +6178,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6230,11 +6230,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6440,7 +6440,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6503,19 +6503,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7010,27 +7010,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7331,6 +7331,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/sr.po b/po/sr.po index 358329a9a851..f117093ec10d 100644 --- a/po/sr.po +++ b/po/sr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Serbian :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5189,7 +5189,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5298,11 +5298,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5439,15 +5439,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5841,12 +5841,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6063,7 +6063,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6178,11 +6178,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6230,11 +6230,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6440,7 +6440,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6503,19 +6503,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7010,27 +7010,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7331,6 +7331,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/sv.po b/po/sv.po index d67ef69969b3..5e67138bee51 100644 --- a/po/sv.po +++ b/po/sv.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Swedish :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/te.po b/po/te.po index ef47cc9d265f..95e3cfd70fd9 100644 --- a/po/te.po +++ b/po/te.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Telugu :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/th.po b/po/th.po index 0fd3ffdd3448..60551e3d6682 100644 --- a/po/th.po +++ b/po/th.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" @@ -319,7 +319,7 @@ msgid "" "cannot be changed." msgstr "" -#: lxc/network_zone.go:1066 +#: lxc/network_zone.go:1071 msgid "" "### This is a YAML representation of the network zone record.\n" "### Any line starting with a '# will be ignored.\n" @@ -333,7 +333,7 @@ msgid "" "### user.foo: bah\n" msgstr "" -#: lxc/network_zone.go:473 +#: lxc/network_zone.go:478 msgid "" "### This is a YAML representation of the network zone.\n" "### Any line starting with a '# will be ignored.\n" @@ -603,7 +603,7 @@ msgstr "" msgid "Add a group to an identity provider group" msgstr "" -#: lxc/network_zone.go:1239 +#: lxc/network_zone.go:1244 msgid "Add a network zone record entry" msgstr "" @@ -615,7 +615,7 @@ msgstr "" msgid "Add backends to a load balancer" msgstr "" -#: lxc/network_zone.go:1240 +#: lxc/network_zone.go:1245 msgid "Add entries to a network zone record" msgstr "" @@ -866,7 +866,7 @@ msgstr "" #: lxc/network.go:333 lxc/network_acl.go:382 lxc/network_forward.go:293 #: lxc/network_load_balancer.go:301 lxc/network_peer.go:280 -#: lxc/network_zone.go:324 lxc/network_zone.go:922 lxc/storage_bucket.go:141 +#: lxc/network_zone.go:329 lxc/network_zone.go:927 lxc/storage_bucket.go:141 #, c-format msgid "Bad key/value pair: %s" msgstr "" @@ -1211,7 +1211,7 @@ msgstr "" #: lxc/config_trust.go:314 lxc/image.go:466 lxc/network.go:686 #: lxc/network_acl.go:620 lxc/network_forward.go:685 #: lxc/network_load_balancer.go:694 lxc/network_peer.go:610 -#: lxc/network_zone.go:551 lxc/network_zone.go:1143 lxc/profile.go:538 +#: lxc/network_zone.go:556 lxc/network_zone.go:1148 lxc/profile.go:538 #: lxc/project.go:338 lxc/storage.go:310 lxc/storage_bucket.go:348 #: lxc/storage_bucket.go:1125 lxc/storage_volume.go:1016 #: lxc/storage_volume.go:1048 @@ -1370,7 +1370,7 @@ msgstr "" msgid "Could not write server cert file %q: %w" msgstr "" -#: lxc/network_zone.go:1327 +#: lxc/network_zone.go:1332 msgid "Couldn't find a matching entry" msgstr "" @@ -1454,11 +1454,11 @@ msgstr "" msgid "Create new network peering" msgstr "" -#: lxc/network_zone.go:869 lxc/network_zone.go:870 +#: lxc/network_zone.go:874 lxc/network_zone.go:875 msgid "Create new network zone record" msgstr "" -#: lxc/network_zone.go:270 lxc/network_zone.go:271 +#: lxc/network_zone.go:271 lxc/network_zone.go:272 msgid "Create new network zones" msgstr "" @@ -1509,7 +1509,7 @@ msgstr "" #: lxc/image.go:1074 lxc/image_alias.go:237 lxc/list.go:556 lxc/network.go:985 #: lxc/network_acl.go:148 lxc/network_forward.go:149 #: lxc/network_load_balancer.go:152 lxc/network_peer.go:140 -#: lxc/network_zone.go:139 lxc/network_zone.go:742 lxc/operation.go:172 +#: lxc/network_zone.go:140 lxc/network_zone.go:747 lxc/operation.go:172 #: lxc/profile.go:678 lxc/project.go:528 lxc/storage.go:646 #: lxc/storage_bucket.go:512 lxc/storage_bucket.go:832 #: lxc/storage_volume.go:1562 @@ -1596,11 +1596,11 @@ msgstr "" msgid "Delete network peerings" msgstr "" -#: lxc/network_zone.go:1175 lxc/network_zone.go:1176 +#: lxc/network_zone.go:1180 lxc/network_zone.go:1181 msgid "Delete network zone record" msgstr "" -#: lxc/network_zone.go:583 lxc/network_zone.go:584 +#: lxc/network_zone.go:588 lxc/network_zone.go:589 msgid "Delete network zones" msgstr "" @@ -1700,13 +1700,13 @@ msgstr "" #: lxc/network_peer.go:28 lxc/network_peer.go:81 lxc/network_peer.go:158 #: lxc/network_peer.go:215 lxc/network_peer.go:331 lxc/network_peer.go:399 #: lxc/network_peer.go:488 lxc/network_peer.go:518 lxc/network_peer.go:643 -#: lxc/network_zone.go:28 lxc/network_zone.go:85 lxc/network_zone.go:156 -#: lxc/network_zone.go:211 lxc/network_zone.go:271 lxc/network_zone.go:354 -#: lxc/network_zone.go:434 lxc/network_zone.go:465 lxc/network_zone.go:584 -#: lxc/network_zone.go:632 lxc/network_zone.go:689 lxc/network_zone.go:759 -#: lxc/network_zone.go:811 lxc/network_zone.go:870 lxc/network_zone.go:952 -#: lxc/network_zone.go:1028 lxc/network_zone.go:1058 lxc/network_zone.go:1176 -#: lxc/network_zone.go:1225 lxc/network_zone.go:1240 lxc/network_zone.go:1286 +#: lxc/network_zone.go:29 lxc/network_zone.go:86 lxc/network_zone.go:157 +#: lxc/network_zone.go:212 lxc/network_zone.go:272 lxc/network_zone.go:359 +#: lxc/network_zone.go:439 lxc/network_zone.go:470 lxc/network_zone.go:589 +#: lxc/network_zone.go:637 lxc/network_zone.go:694 lxc/network_zone.go:764 +#: lxc/network_zone.go:816 lxc/network_zone.go:875 lxc/network_zone.go:957 +#: lxc/network_zone.go:1033 lxc/network_zone.go:1063 lxc/network_zone.go:1181 +#: lxc/network_zone.go:1230 lxc/network_zone.go:1245 lxc/network_zone.go:1291 #: lxc/operation.go:24 lxc/operation.go:56 lxc/operation.go:106 #: lxc/operation.go:193 lxc/profile.go:29 lxc/profile.go:104 lxc/profile.go:167 #: lxc/profile.go:250 lxc/profile.go:320 lxc/profile.go:394 lxc/profile.go:444 @@ -1876,7 +1876,7 @@ msgstr "" msgid "Driver: %v (%v)" msgstr "" -#: lxc/network_zone.go:743 +#: lxc/network_zone.go:748 msgid "ENTRIES" msgstr "" @@ -1962,11 +1962,11 @@ msgstr "" msgid "Edit network peer configurations as YAML" msgstr "" -#: lxc/network_zone.go:464 lxc/network_zone.go:465 +#: lxc/network_zone.go:469 lxc/network_zone.go:470 msgid "Edit network zone configurations as YAML" msgstr "" -#: lxc/network_zone.go:1057 lxc/network_zone.go:1058 +#: lxc/network_zone.go:1062 lxc/network_zone.go:1063 msgid "Edit network zone record configurations as YAML" msgstr "" @@ -2023,7 +2023,7 @@ msgid "" " for the address if not yet set." msgstr "" -#: lxc/network_zone.go:1242 +#: lxc/network_zone.go:1247 msgid "Entry TTL" msgstr "" @@ -2053,7 +2053,7 @@ msgstr "" #: lxc/cluster.go:414 lxc/config.go:621 lxc/config.go:653 lxc/network.go:1194 #: lxc/network_acl.go:467 lxc/network_forward.go:519 #: lxc/network_load_balancer.go:527 lxc/network_peer.go:463 -#: lxc/network_zone.go:409 lxc/network_zone.go:1003 lxc/profile.go:876 +#: lxc/network_zone.go:414 lxc/network_zone.go:1008 lxc/profile.go:876 #: lxc/project.go:657 lxc/storage.go:727 lxc/storage_bucket.go:602 #: lxc/storage_volume.go:1947 lxc/storage_volume.go:1985 #, c-format @@ -2067,7 +2067,7 @@ msgstr "" #: lxc/cluster.go:408 lxc/network.go:1188 lxc/network_acl.go:461 #: lxc/network_forward.go:513 lxc/network_load_balancer.go:521 -#: lxc/network_peer.go:457 lxc/network_zone.go:403 lxc/network_zone.go:997 +#: lxc/network_peer.go:457 lxc/network_zone.go:408 lxc/network_zone.go:1002 #: lxc/profile.go:870 lxc/project.go:651 lxc/storage.go:721 #: lxc/storage_bucket.go:596 lxc/storage_volume.go:1941 #: lxc/storage_volume.go:1979 @@ -2333,7 +2333,7 @@ msgstr "" msgid "Fast mode (same as --columns=nsacPt)" msgstr "" -#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:115 +#: lxc/network.go:943 lxc/network_acl.go:124 lxc/network_zone.go:116 #: lxc/operation.go:136 msgid "Filtering isn't supported yet" msgstr "" @@ -2405,7 +2405,7 @@ msgstr "" #: lxc/image.go:1061 lxc/image_alias.go:157 lxc/list.go:132 lxc/network.go:916 #: lxc/network.go:1007 lxc/network_acl.go:97 lxc/network_allocations.go:57 #: lxc/network_forward.go:93 lxc/network_load_balancer.go:97 -#: lxc/network_peer.go:84 lxc/network_zone.go:88 lxc/network_zone.go:692 +#: lxc/network_peer.go:84 lxc/network_zone.go:89 lxc/network_zone.go:697 #: lxc/operation.go:108 lxc/profile.go:637 lxc/project.go:435 #: lxc/project.go:827 lxc/remote.go:690 lxc/storage.go:588 #: lxc/storage_bucket.go:459 lxc/storage_bucket.go:774 @@ -2509,11 +2509,11 @@ msgstr "" msgid "Get the key as a network property" msgstr "" -#: lxc/network_zone.go:214 +#: lxc/network_zone.go:215 msgid "Get the key as a network zone property" msgstr "" -#: lxc/network_zone.go:814 +#: lxc/network_zone.go:819 msgid "Get the key as a network zone record property" msgstr "" @@ -2573,11 +2573,11 @@ msgstr "" msgid "Get values for network peer configuration keys" msgstr "" -#: lxc/network_zone.go:210 lxc/network_zone.go:211 +#: lxc/network_zone.go:211 lxc/network_zone.go:212 msgid "Get values for network zone configuration keys" msgstr "" -#: lxc/network_zone.go:810 lxc/network_zone.go:811 +#: lxc/network_zone.go:815 lxc/network_zone.go:816 msgid "Get values for network zone record configuration keys" msgstr "" @@ -3113,15 +3113,15 @@ msgstr "" msgid "List available network peers" msgstr "" -#: lxc/network_zone.go:85 +#: lxc/network_zone.go:86 msgid "List available network zone" msgstr "" -#: lxc/network_zone.go:688 lxc/network_zone.go:689 +#: lxc/network_zone.go:693 lxc/network_zone.go:694 msgid "List available network zone records" msgstr "" -#: lxc/network_zone.go:84 +#: lxc/network_zone.go:85 msgid "List available network zoneS" msgstr "" @@ -3585,15 +3585,15 @@ msgstr "" msgid "Manage network peerings" msgstr "" -#: lxc/network_zone.go:1224 lxc/network_zone.go:1225 +#: lxc/network_zone.go:1229 lxc/network_zone.go:1230 msgid "Manage network zone record entries" msgstr "" -#: lxc/network_zone.go:631 lxc/network_zone.go:632 +#: lxc/network_zone.go:636 lxc/network_zone.go:637 msgid "Manage network zone records" msgstr "" -#: lxc/network_zone.go:27 lxc/network_zone.go:28 +#: lxc/network_zone.go:28 lxc/network_zone.go:29 msgid "Manage network zones" msgstr "" @@ -3819,15 +3819,15 @@ msgstr "" msgid "Missing network name" msgstr "" -#: lxc/network_zone.go:178 lxc/network_zone.go:234 lxc/network_zone.go:294 -#: lxc/network_zone.go:382 lxc/network_zone.go:503 lxc/network_zone.go:606 -#: lxc/network_zone.go:712 lxc/network_zone.go:780 lxc/network_zone.go:892 -#: lxc/network_zone.go:976 lxc/network_zone.go:1197 lxc/network_zone.go:1262 -#: lxc/network_zone.go:1307 +#: lxc/network_zone.go:179 lxc/network_zone.go:235 lxc/network_zone.go:299 +#: lxc/network_zone.go:387 lxc/network_zone.go:508 lxc/network_zone.go:611 +#: lxc/network_zone.go:717 lxc/network_zone.go:785 lxc/network_zone.go:897 +#: lxc/network_zone.go:981 lxc/network_zone.go:1202 lxc/network_zone.go:1267 +#: lxc/network_zone.go:1312 msgid "Missing network zone name" msgstr "" -#: lxc/network_zone.go:833 lxc/network_zone.go:1095 +#: lxc/network_zone.go:838 lxc/network_zone.go:1100 msgid "Missing network zone record name" msgstr "" @@ -3982,8 +3982,8 @@ msgstr "" #: lxc/auth.go:375 lxc/auth.go:815 lxc/auth.go:1735 lxc/cluster.go:183 #: lxc/cluster.go:964 lxc/cluster_group.go:437 lxc/config_trust.go:409 #: lxc/config_trust.go:514 lxc/list.go:564 lxc/network.go:980 -#: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:138 -#: lxc/network_zone.go:741 lxc/profile.go:677 lxc/project.go:521 +#: lxc/network_acl.go:147 lxc/network_peer.go:139 lxc/network_zone.go:139 +#: lxc/network_zone.go:746 lxc/profile.go:677 lxc/project.go:521 #: lxc/remote.go:748 lxc/storage.go:638 lxc/storage_bucket.go:511 #: lxc/storage_bucket.go:831 lxc/storage_volume.go:1561 msgid "NAME" @@ -4087,12 +4087,12 @@ msgstr "" msgid "Network ACL %s renamed to %s" msgstr "" -#: lxc/network_zone.go:336 +#: lxc/network_zone.go:341 #, c-format msgid "Network Zone %s created" msgstr "" -#: lxc/network_zone.go:616 +#: lxc/network_zone.go:621 #, c-format msgid "Network Zone %s deleted" msgstr "" @@ -4150,12 +4150,12 @@ msgstr "" msgid "Network usage:" msgstr "" -#: lxc/network_zone.go:934 +#: lxc/network_zone.go:939 #, c-format msgid "Network zone record %s created" msgstr "" -#: lxc/network_zone.go:1207 +#: lxc/network_zone.go:1212 #, c-format msgid "Network zone record %s deleted" msgstr "" @@ -4379,7 +4379,7 @@ msgstr "" #: lxc/config_trust.go:315 lxc/image.go:467 lxc/network.go:687 #: lxc/network_acl.go:621 lxc/network_forward.go:686 #: lxc/network_load_balancer.go:695 lxc/network_peer.go:611 -#: lxc/network_zone.go:552 lxc/network_zone.go:1144 lxc/profile.go:539 +#: lxc/network_zone.go:557 lxc/network_zone.go:1149 lxc/profile.go:539 #: lxc/project.go:339 lxc/storage.go:311 lxc/storage_bucket.go:349 #: lxc/storage_bucket.go:1126 lxc/storage_volume.go:1017 #: lxc/storage_volume.go:1049 @@ -4740,7 +4740,7 @@ msgstr "" msgid "Remove a member from the cluster" msgstr "" -#: lxc/network_zone.go:1285 +#: lxc/network_zone.go:1290 msgid "Remove a network zone record entry" msgstr "" @@ -4764,7 +4764,7 @@ msgstr "" msgid "Remove backends from a load balancer" msgstr "" -#: lxc/network_zone.go:1286 +#: lxc/network_zone.go:1291 msgid "Remove entries from a network zone record" msgstr "" @@ -5172,11 +5172,11 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5185,7 +5185,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5294,11 +5294,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5435,15 +5435,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5837,12 +5837,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6059,7 +6059,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6174,11 +6174,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6226,11 +6226,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6436,7 +6436,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6499,19 +6499,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7006,27 +7006,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7327,6 +7327,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/tr.po b/po/tr.po index 170a14039ede..9ab0f5e6497a 100644 --- a/po/tr.po +++ b/po/tr.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Turkish :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/tzm.po b/po/tzm.po index 9d57a1ad47d2..a1e5e1c96ade 100644 --- a/po/tzm.po +++ b/po/tzm.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Tamazight (Central Atlas) :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/ug.po b/po/ug.po index 856decfc0a60..c249de1e6b05 100644 --- a/po/ug.po +++ b/po/ug.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:10+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Uyghur :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/uk.po b/po/uk.po index c26aff879cd2..0e3eff97dc0a 100644 --- a/po/uk.po +++ b/po/uk.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:09+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Ukrainian :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5189,7 +5189,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5298,11 +5298,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5439,15 +5439,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5841,12 +5841,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6063,7 +6063,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6178,11 +6178,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6230,11 +6230,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6440,7 +6440,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6503,19 +6503,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7010,27 +7010,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7331,6 +7331,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/zh_Hans.po b/po/zh_Hans.po index e70907512428..4488165be270 100644 --- a/po/zh_Hans.po +++ b/po/zh_Hans.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:07+0000\n" "Last-Translator: 0x0916 \n" "Language-Team: Chinese (Simplified) :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5349,7 +5349,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5458,11 +5458,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5599,15 +5599,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -6001,12 +6001,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6223,7 +6223,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6338,11 +6338,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6390,11 +6390,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6600,7 +6600,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6663,19 +6663,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7170,27 +7170,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7491,6 +7491,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" diff --git a/po/zh_Hant.po b/po/zh_Hant.po index afea373742f0..c7ad5867923d 100644 --- a/po/zh_Hant.po +++ b/po/zh_Hant.po @@ -7,7 +7,7 @@ msgid "" msgstr "" "Project-Id-Version: lxd\n" "Report-Msgid-Bugs-To: lxd@lists.canonical.com\n" -"POT-Creation-Date: 2024-08-28 17:34+0200\n" +"POT-Creation-Date: 2024-08-29 11:48+0200\n" "PO-Revision-Date: 2022-03-10 15:11+0000\n" "Last-Translator: Anonymous \n" "Language-Team: Chinese (Traditional) :] " msgstr "" -#: lxc/network_zone.go:353 +#: lxc/network_zone.go:358 msgid "Set network zone configuration keys" msgstr "" -#: lxc/network_zone.go:354 +#: lxc/network_zone.go:359 msgid "" "Set network zone configuration keys\n" "\n" @@ -5188,7 +5188,7 @@ msgid "" " lxc network set [:] " msgstr "" -#: lxc/network_zone.go:951 lxc/network_zone.go:952 +#: lxc/network_zone.go:956 lxc/network_zone.go:957 msgid "Set network zone record configuration keys" msgstr "" @@ -5297,11 +5297,11 @@ msgstr "" msgid "Set the key as a network property" msgstr "" -#: lxc/network_zone.go:361 +#: lxc/network_zone.go:366 msgid "Set the key as a network zone property" msgstr "" -#: lxc/network_zone.go:957 +#: lxc/network_zone.go:962 msgid "Set the key as a network zone record property" msgstr "" @@ -5438,15 +5438,15 @@ msgstr "" msgid "Show network peer configurations" msgstr "" -#: lxc/network_zone.go:155 lxc/network_zone.go:156 +#: lxc/network_zone.go:156 lxc/network_zone.go:157 msgid "Show network zone configurations" msgstr "" -#: lxc/network_zone.go:758 +#: lxc/network_zone.go:763 msgid "Show network zone record configuration" msgstr "" -#: lxc/network_zone.go:759 +#: lxc/network_zone.go:764 msgid "Show network zone record configurations" msgstr "" @@ -5840,12 +5840,12 @@ msgstr "" msgid "The property %q does not exist on the network peer %q: %v" msgstr "" -#: lxc/network_zone.go:246 +#: lxc/network_zone.go:247 #, c-format msgid "The property %q does not exist on the network zone %q: %v" msgstr "" -#: lxc/network_zone.go:845 +#: lxc/network_zone.go:850 #, c-format msgid "The property %q does not exist on the network zone record %q: %v" msgstr "" @@ -6062,7 +6062,7 @@ msgid "USAGE" msgstr "" #: lxc/network.go:986 lxc/network_acl.go:149 lxc/network_allocations.go:24 -#: lxc/network_zone.go:140 lxc/profile.go:679 lxc/project.go:529 +#: lxc/network_zone.go:141 lxc/profile.go:679 lxc/project.go:529 #: lxc/storage.go:647 lxc/storage_volume.go:1564 msgid "USED BY" msgstr "" @@ -6177,11 +6177,11 @@ msgstr "" msgid "Unset network peer keys" msgstr "" -#: lxc/network_zone.go:433 lxc/network_zone.go:434 +#: lxc/network_zone.go:438 lxc/network_zone.go:439 msgid "Unset network zone configuration keys" msgstr "" -#: lxc/network_zone.go:1027 lxc/network_zone.go:1028 +#: lxc/network_zone.go:1032 lxc/network_zone.go:1033 msgid "Unset network zone record configuration keys" msgstr "" @@ -6229,11 +6229,11 @@ msgstr "" msgid "Unset the key as a network property" msgstr "" -#: lxc/network_zone.go:437 +#: lxc/network_zone.go:442 msgid "Unset the key as a network zone property" msgstr "" -#: lxc/network_zone.go:1031 +#: lxc/network_zone.go:1036 msgid "Unset the key as a network zone record property" msgstr "" @@ -6439,7 +6439,7 @@ msgstr "" #: lxc/auth.go:329 lxc/auth.go:762 lxc/auth.go:893 lxc/auth.go:1689 #: lxc/cluster.go:119 lxc/cluster.go:878 lxc/cluster_group.go:379 #: lxc/config_trust.go:347 lxc/config_trust.go:430 lxc/monitor.go:31 -#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:82 +#: lxc/network.go:909 lxc/network_acl.go:91 lxc/network_zone.go:83 #: lxc/operation.go:103 lxc/profile.go:630 lxc/project.go:430 #: lxc/storage.go:583 lxc/version.go:20 lxc/warning.go:68 msgid "[:]" @@ -6502,19 +6502,19 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:154 lxc/network_zone.go:463 lxc/network_zone.go:581 +#: lxc/network_zone.go:155 lxc/network_zone.go:468 lxc/network_zone.go:586 msgid "[:]" msgstr "" -#: lxc/network_zone.go:209 lxc/network_zone.go:432 +#: lxc/network_zone.go:210 lxc/network_zone.go:437 msgid "[:] " msgstr "" -#: lxc/network_zone.go:352 +#: lxc/network_zone.go:357 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:269 +#: lxc/network_zone.go:270 msgid "[:] [key=value...]" msgstr "" @@ -7009,27 +7009,27 @@ msgstr "" msgid "[:]" msgstr "" -#: lxc/network_zone.go:686 +#: lxc/network_zone.go:691 msgid "[:]" msgstr "" -#: lxc/network_zone.go:757 lxc/network_zone.go:1056 lxc/network_zone.go:1173 +#: lxc/network_zone.go:762 lxc/network_zone.go:1061 lxc/network_zone.go:1178 msgid "[:] " msgstr "" -#: lxc/network_zone.go:809 lxc/network_zone.go:1026 +#: lxc/network_zone.go:814 lxc/network_zone.go:1031 msgid "[:] " msgstr "" -#: lxc/network_zone.go:950 +#: lxc/network_zone.go:955 msgid "[:] =..." msgstr "" -#: lxc/network_zone.go:1238 lxc/network_zone.go:1284 +#: lxc/network_zone.go:1243 lxc/network_zone.go:1289 msgid "[:] " msgstr "" -#: lxc/network_zone.go:868 +#: lxc/network_zone.go:873 msgid "[:] [key=value...]" msgstr "" @@ -7330,6 +7330,14 @@ msgid "" "config.yaml" msgstr "" +#: lxc/network_zone.go:273 +msgid "" +"lxc network zone create z1\n" +"\n" +"lxc network zone create z1 < config.yaml\n" +" Create network zone z1 with configuration from config.yaml" +msgstr "" + #: lxc/operation.go:195 msgid "" "lxc operation show 344a79e4-d88a-45bf-9c39-c72c26f6ab8a\n" From aebc412682916842c6be51ecff33c40d2d1fbb79 Mon Sep 17 00:00:00 2001 From: Alexander Mikhalitsyn Date: Thu, 29 Aug 2024 14:38:08 +0200 Subject: [PATCH 168/169] lxd/apparmor/instance_lxc: allow sysfs for unprivileged containers A new AppArmor includes security fixes and our ruleset become stricter, while the source code remains unchanged. sysfs was always available for unprivileged containers because of AppArmor bugs like [1]. Let's now allow it back by explicit rule. [1] https://bugs.launchpad.net/apparmor/+bug/1597017 Signed-off-by: Alexander Mikhalitsyn --- lxd/apparmor/instance_lxc.go | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/lxd/apparmor/instance_lxc.go b/lxd/apparmor/instance_lxc.go index b9a93adff690..1a08ac7ed882 100644 --- a/lxd/apparmor/instance_lxc.go +++ b/lxd/apparmor/instance_lxc.go @@ -504,8 +504,13 @@ profile "{{ .name }}" flags=(attach_disconnected,mediate_deleted) { ### Configuration: unprivileged containers pivot_root, + # We need to allow all these filesystems because they were allowed + # for years as a result of a https://bugs.launchpad.net/apparmor/+bug/1597017 + # Now, when AppArmor is fixed, we start to get complaints that things which + # were working before stopped to work now. mount fstype=devpts, mount fstype=proc, + mount fstype=sysfs, # Allow unlimited modification of mount propagation mount options=(rw,slave) -> /{,**}, From f6ea5dbc6ec9c412dc839925e177a03e599afa02 Mon Sep 17 00:00:00 2001 From: Simon Deziel Date: Thu, 29 Aug 2024 08:41:39 -0400 Subject: [PATCH 169/169] doc: add SLES to custom word list Signed-off-by: Simon Deziel --- doc/.custom_wordlist.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/doc/.custom_wordlist.txt b/doc/.custom_wordlist.txt index 6055125ae8c8..87da125cd098 100644 --- a/doc/.custom_wordlist.txt +++ b/doc/.custom_wordlist.txt @@ -230,6 +230,7 @@ SIGTERM simplestreams SKBPRIO SLAAC +SLES SMTP Snapcraft SoC