mirror of
https://github.com/lxc/incus
synced 2026-08-02 05:26:46 +00:00
Merge pull request #2774 from stgraber/main
Various fixes for Incus 6.20
This commit is contained in:
commit
7ce80205e7
@ -845,7 +845,7 @@ func (c *cmdFilePush) Run(cmd *cobra.Command, args []string) error {
|
||||
} else {
|
||||
file, err = os.Open(f)
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf(i18n.G("Failed to open source file %q: %v"), f, err)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -70,7 +70,7 @@ func sftpCreateFile(sftpConn *sftp.Client, targetPath string, args incus.Instanc
|
||||
case "file":
|
||||
file, err := sftpConn.OpenFile(targetPath, os.O_WRONLY|os.O_CREATE|os.O_TRUNC)
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf(i18n.G("Failed to open target file %q: %w"), targetPath, err)
|
||||
}
|
||||
|
||||
defer func() { _ = file.Close() }()
|
||||
@ -296,7 +296,7 @@ func sftpRecursivePushFile(sftpConn *sftp.Client, source string, target string,
|
||||
// File handling
|
||||
f, err := os.Open(p)
|
||||
if err != nil {
|
||||
return err
|
||||
return fmt.Errorf(i18n.G("Failed to open source file %q: %v"), p, err)
|
||||
}
|
||||
|
||||
defer func() { _ = f.Close() }()
|
||||
|
||||
@ -18,10 +18,12 @@ import (
|
||||
clusterRequest "github.com/lxc/incus/v6/internal/server/cluster/request"
|
||||
"github.com/lxc/incus/v6/internal/server/db"
|
||||
"github.com/lxc/incus/v6/internal/server/instance"
|
||||
"github.com/lxc/incus/v6/internal/server/project"
|
||||
"github.com/lxc/incus/v6/internal/server/request"
|
||||
"github.com/lxc/incus/v6/internal/server/response"
|
||||
storagePools "github.com/lxc/incus/v6/internal/server/storage"
|
||||
"github.com/lxc/incus/v6/internal/server/storage/s3"
|
||||
"github.com/lxc/incus/v6/internal/server/storage/s3/miniod"
|
||||
"github.com/lxc/incus/v6/shared/api"
|
||||
"github.com/lxc/incus/v6/shared/logger"
|
||||
"github.com/lxc/incus/v6/shared/util"
|
||||
@ -264,20 +266,26 @@ func storageBucketsServer(d *Daemon) *http.Server {
|
||||
return
|
||||
}
|
||||
|
||||
pool, err := storagePools.LoadByName(s, bucket.PoolName)
|
||||
if err != nil {
|
||||
errResult := s3.Error{Code: s3.ErrorCodeInternalError, Message: err.Error()}
|
||||
errResult.Response(w)
|
||||
// Fast path.
|
||||
minioProc, err := miniod.Get(project.StorageVolume(bucket.Project, bucket.Name))
|
||||
if minioProc == nil || err != nil {
|
||||
// Slow path.
|
||||
logger.Errorf("auth slow")
|
||||
pool, err := storagePools.LoadByName(s, bucket.PoolName)
|
||||
if err != nil {
|
||||
errResult := s3.Error{Code: s3.ErrorCodeInternalError, Message: err.Error()}
|
||||
errResult.Response(w)
|
||||
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
minioProc, err := pool.ActivateBucket(bucket.Project, bucket.Name, nil)
|
||||
if err != nil {
|
||||
errResult := s3.Error{Code: s3.ErrorCodeInternalError, Message: err.Error()}
|
||||
errResult.Response(w)
|
||||
minioProc, err = pool.ActivateBucket(bucket.Project, bucket.Name, nil)
|
||||
if err != nil {
|
||||
errResult := s3.Error{Code: s3.ErrorCodeInternalError, Message: err.Error()}
|
||||
errResult.Response(w)
|
||||
|
||||
return
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
u := minioProc.URL()
|
||||
@ -344,20 +352,26 @@ func storageBucketsServer(d *Daemon) *http.Server {
|
||||
return
|
||||
}
|
||||
|
||||
pool, err := storagePools.LoadByName(s, bucket.PoolName)
|
||||
if err != nil {
|
||||
errResult := s3.Error{Code: s3.ErrorCodeInternalError, Message: err.Error()}
|
||||
errResult.Response(w)
|
||||
// Fast path.
|
||||
minioProc, err := miniod.Get(project.StorageVolume(bucket.Project, bucket.Name))
|
||||
if minioProc == nil || err != nil {
|
||||
// Slow path.
|
||||
logger.Errorf("anon slow")
|
||||
pool, err := storagePools.LoadByName(s, bucket.PoolName)
|
||||
if err != nil {
|
||||
errResult := s3.Error{Code: s3.ErrorCodeInternalError, Message: err.Error()}
|
||||
errResult.Response(w)
|
||||
|
||||
return
|
||||
}
|
||||
return
|
||||
}
|
||||
|
||||
minioProc, err := pool.ActivateBucket(bucket.Project, bucket.Name, nil)
|
||||
if err != nil {
|
||||
errResult := s3.Error{Code: s3.ErrorCodeInternalError, Message: err.Error()}
|
||||
errResult.Response(w)
|
||||
minioProc, err = pool.ActivateBucket(bucket.Project, bucket.Name, nil)
|
||||
if err != nil {
|
||||
errResult := s3.Error{Code: s3.ErrorCodeInternalError, Message: err.Error()}
|
||||
errResult.Response(w)
|
||||
|
||||
return
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
u := minioProc.URL()
|
||||
|
||||
@ -31,9 +31,11 @@ This authorization method is highly granular.
|
||||
For example, it can be used to restrict user access to a single instance.
|
||||
|
||||
To use OpenFGA for authorization, you must configure and run an OpenFGA server yourself.
|
||||
To enable this authorization method in Incus, set the [`openfga.*`](server-options-openfga) server configuration options.
|
||||
Incus will connect to the OpenFGA server, write the {ref}`openfga-model`, and query this server for authorization for all subsequent requests.
|
||||
|
||||
To enable this authorization method in Incus, set the [`openfga.*`](server-options-openfga) server configuration options.
|
||||
Both `openfga.api.url` and `openfga.api.token` must be set in order to enable OpenFGA. `openfga.store.id` is optional, Incus will generate a new store if not specified.
|
||||
|
||||
(openfga-model)=
|
||||
### OpenFGA model
|
||||
|
||||
|
||||
@ -129,12 +129,6 @@ Enable IPv4 forwarding
|
||||
Incus bridge networks enable this setting normally.
|
||||
However, if Incus starts after Docker, then Docker will already have modified the global FORWARD policy.
|
||||
|
||||
```{warning}
|
||||
Enabling IPv4 forwarding can cause your Docker container ports to be reachable from any machine on your local network.
|
||||
Depending on your environment, this might be undesirable.
|
||||
See [local network container access issue](https://github.com/moby/moby/issues/14041) for more information.
|
||||
```
|
||||
|
||||
To enable IPv4 forwarding before Docker starts, ensure that the following `sysctl` setting is enabled:
|
||||
|
||||
net.ipv4.conf.all.forwarding=1
|
||||
|
||||
6
go.mod
6
go.mod
@ -28,7 +28,7 @@ require (
|
||||
github.com/jochenvg/go-udev v0.0.0-20240801134859-b65ed646224b
|
||||
github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51
|
||||
github.com/lxc/go-lxc v0.0.0-20240606200241-27b3d116511f
|
||||
github.com/lxc/incus-os/incus-osd v0.0.0-20251214161835-4ccb835533a9
|
||||
github.com/lxc/incus-os/incus-osd v0.0.0-20251218211512-30e9f64eb91b
|
||||
github.com/mattn/go-colorable v0.1.14
|
||||
github.com/mattn/go-sqlite3 v1.14.32
|
||||
github.com/mdlayher/arp v0.0.0-20220512170110-6706a2966875
|
||||
@ -44,7 +44,7 @@ require (
|
||||
github.com/openfga/go-sdk v0.7.3
|
||||
github.com/osrg/gobgp/v3 v3.37.0
|
||||
github.com/ovn-kubernetes/libovsdb v0.8.1
|
||||
github.com/pierrec/lz4/v4 v4.1.22
|
||||
github.com/pierrec/lz4/v4 v4.1.23
|
||||
github.com/pkg/sftp v1.13.10
|
||||
github.com/pkg/xattr v0.4.12
|
||||
github.com/shirou/gopsutil/v4 v4.25.11
|
||||
@ -65,7 +65,7 @@ require (
|
||||
golang.org/x/tools v0.40.0
|
||||
google.golang.org/protobuf v1.36.11
|
||||
gopkg.in/yaml.v2 v2.4.0
|
||||
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4
|
||||
k8s.io/utils v0.0.0-20251218160917-61b37f7a4624
|
||||
software.sslmate.com/src/go-pkcs12 v0.6.0
|
||||
)
|
||||
|
||||
|
||||
14
go.sum
14
go.sum
@ -359,8 +359,8 @@ github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3 h1:PwQumkgq4/acIi
|
||||
github.com/lufia/plan9stats v0.0.0-20251013123823-9fd1530e3ec3/go.mod h1:autxFIvghDt3jPTLoqZ9OZ7s9qTGNAWmYCjVFWPX/zg=
|
||||
github.com/lxc/go-lxc v0.0.0-20240606200241-27b3d116511f h1:KnZqnn4R9Ae+jOK7DwacF1CnWEBMSwoXh44owa6j6k4=
|
||||
github.com/lxc/go-lxc v0.0.0-20240606200241-27b3d116511f/go.mod h1:3UTWXVcHfgxE7JM4ZUnsy6bDA8L1vuzwJbJRF6dlB90=
|
||||
github.com/lxc/incus-os/incus-osd v0.0.0-20251214161835-4ccb835533a9 h1:KqkDoboTSap+45qapJ79hBFl/Q+yEIC1Xmk2ec5xsvk=
|
||||
github.com/lxc/incus-os/incus-osd v0.0.0-20251214161835-4ccb835533a9/go.mod h1:Qlo0FoofzFoBzsX13wkrm9Mf6Ri+gAl/mCtXrXFwcqU=
|
||||
github.com/lxc/incus-os/incus-osd v0.0.0-20251218211512-30e9f64eb91b h1:C90OBrUIm0rF0/j5Pt1npAhniYzbU9mjT2qqH8MUbns=
|
||||
github.com/lxc/incus-os/incus-osd v0.0.0-20251218211512-30e9f64eb91b/go.mod h1:3N+YX6pJCi+K8xkXc/9MW+NMvIkJ24JvTQIi28ctoGs=
|
||||
github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60=
|
||||
github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU=
|
||||
github.com/mattn/go-colorable v0.1.1/go.mod h1:FuOcm+DKB9mbwrcAfNl7/TZVBZ6rcnceauSikq3lYCQ=
|
||||
@ -446,8 +446,6 @@ github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJw
|
||||
github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M=
|
||||
github.com/opencontainers/runtime-spec v1.3.0 h1:YZupQUdctfhpZy3TM39nN9Ika5CBWT5diQ8ibYCRkxg=
|
||||
github.com/opencontainers/runtime-spec v1.3.0/go.mod h1:jwyrGlmzljRJv/Fgzds9SsS/C5hL+LL3ko9hs6T5lQ0=
|
||||
github.com/opencontainers/umoci v0.6.0 h1:Dsm4beJpglN5y2E2EUSZZcNey4Ml4+nKepvwLQwgIec=
|
||||
github.com/opencontainers/umoci v0.6.0/go.mod h1:2DS3cxVN9pRJGYaCK5mnmmwVKV5vd9r6HIYAV0IvdbI=
|
||||
github.com/opencontainers/umoci v0.6.1-0.20251213054154-70fc5ee1f4df h1:9hvwN64VeuL1L0Jgp8bxTPmd5IZQoHmeXGWrVqsEhN0=
|
||||
github.com/opencontainers/umoci v0.6.1-0.20251213054154-70fc5ee1f4df/go.mod h1:s6d/s4QJAZTF92hEU6ozuHjE0+VRc6kVe1QIWfvL7KY=
|
||||
github.com/openfga/go-sdk v0.7.3 h1:BrYmJyIdicVeKzoycCFT0vzf0oz4luWrwoPIJdF6Wgo=
|
||||
@ -464,8 +462,8 @@ github.com/peterh/liner v1.2.1/go.mod h1:CRroGNssyjTd/qIG2FyxByd2S8JEAZXBl4qUrZf
|
||||
github.com/philhofer/fwd v1.2.0 h1:e6DnBTl7vGY+Gz322/ASL4Gyp1FspeMvx1RNDoToZuM=
|
||||
github.com/philhofer/fwd v1.2.0/go.mod h1:RqIHx9QI14HlwKwm98g9Re5prTQ6LdeRQn+gXJFxsJM=
|
||||
github.com/pierrec/lz4/v4 v4.1.18/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
|
||||
github.com/pierrec/lz4/v4 v4.1.22 h1:cKFw6uJDK+/gfw5BcDL0JL5aBsAFdsIT18eRtLj7VIU=
|
||||
github.com/pierrec/lz4/v4 v4.1.22/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
|
||||
github.com/pierrec/lz4/v4 v4.1.23 h1:oJE7T90aYBGtFNrI8+KbETnPymobAhzRrR8Mu8n1yfU=
|
||||
github.com/pierrec/lz4/v4 v4.1.23/go.mod h1:EoQMVJgeeEOMsCqCzqFm2O0cJvljX2nGZjcRIPL34O4=
|
||||
github.com/pkg/diff v0.0.0-20200914180035-5b29258ca4f7/go.mod h1:zO8QMzTeZd5cpnIkz/Gn6iK0jDfGicM1nynOkkPIl28=
|
||||
github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
|
||||
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
|
||||
@ -1016,8 +1014,8 @@ honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWh
|
||||
honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg=
|
||||
honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k=
|
||||
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4 h1:SjGebBtkBqHFOli+05xYbK8YF1Dzkbzn+gDM4X9T4Ck=
|
||||
k8s.io/utils v0.0.0-20251002143259-bc988d571ff4/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
|
||||
k8s.io/utils v0.0.0-20251218160917-61b37f7a4624 h1:wadElzGW3vTZ1Et18CImPEErLaXvMSU5369b0to32+0=
|
||||
k8s.io/utils v0.0.0-20251218160917-61b37f7a4624/go.mod h1:xDxuJ0whA3d0I4mf/C4ppKHxXynQ+fxnkmQH0vTHnuk=
|
||||
moul.io/http2curl/v2 v2.3.0 h1:9r3JfDzWPcbIklMOs2TnIFzDYvfAZvjeavG6EzP7jYs=
|
||||
moul.io/http2curl/v2 v2.3.0/go.mod h1:RW4hyBjTWSYDOxapodpNEtX0g5Eb16sxklBqmd2RHcE=
|
||||
rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8=
|
||||
|
||||
@ -17,6 +17,7 @@ import (
|
||||
"github.com/lxc/incus/v6/internal/iprange"
|
||||
ovnNB "github.com/lxc/incus/v6/internal/server/network/ovn/schema/ovn-nb"
|
||||
ovnSB "github.com/lxc/incus/v6/internal/server/network/ovn/schema/ovn-sb"
|
||||
localUtil "github.com/lxc/incus/v6/internal/server/util"
|
||||
"github.com/lxc/incus/v6/shared/util"
|
||||
)
|
||||
|
||||
@ -2140,6 +2141,7 @@ func (o *NB) UpdateLogicalSwitchPortDNS(ctx context.Context, switchName OVNSwitc
|
||||
}
|
||||
|
||||
dnsIPsStr.WriteString(dnsIP.String())
|
||||
dnsRecord.Records[strings.TrimSuffix(localUtil.ReverseDNS(dnsIP), ".")] = strings.ToLower(dnsName)
|
||||
}
|
||||
|
||||
dnsRecord.Records[strings.ToLower(dnsName)] = dnsIPsStr.String()
|
||||
|
||||
@ -435,8 +435,8 @@ func (d *zone) Content() (*strings.Builder, error) {
|
||||
includeV6 := includeNAT || util.IsFalseOrEmpty(netConfig["ipv6.nat"])
|
||||
|
||||
// Check if dealing with a reverse zone.
|
||||
isReverse4 := strings.HasSuffix(d.info.Name, ip4Arpa)
|
||||
isReverse6 := strings.HasSuffix(d.info.Name, ip6Arpa)
|
||||
isReverse4 := strings.HasSuffix(d.info.Name, localUtil.IPv4Arpa)
|
||||
isReverse6 := strings.HasSuffix(d.info.Name, localUtil.IPv6Arpa)
|
||||
isReverse := isReverse4 || isReverse6
|
||||
|
||||
genRecord := func(name string, ip net.IP) map[string]string {
|
||||
@ -473,7 +473,7 @@ func (d *zone) Content() (*strings.Builder, error) {
|
||||
}
|
||||
|
||||
// Get the ARPA record.
|
||||
reverseAddr := reverse(ip)
|
||||
reverseAddr := localUtil.ReverseDNS(ip)
|
||||
if reverseAddr == "" {
|
||||
return nil
|
||||
}
|
||||
|
||||
@ -2702,6 +2702,10 @@ func (b *backend) BackupInstance(inst instance.Instance, tarWriter *instancewrit
|
||||
return err
|
||||
}
|
||||
|
||||
defer func() {
|
||||
_ = b.UpdateInstanceBackupFile(inst, true, nil)
|
||||
}()
|
||||
|
||||
var snapNames []string
|
||||
if snapshots {
|
||||
// Get snapshots in age order, oldest first, and pass names to storage driver.
|
||||
|
||||
@ -418,22 +418,7 @@ func (d *linstor) CreateVolumeFromCopy(vol Volume, srcVol Volume, copySnapshots
|
||||
}
|
||||
|
||||
if len(srcSnapshots) > 0 {
|
||||
l.Debug("Snapshots copying required. Falling back to generic copy implementation")
|
||||
// Ensure the mount path for ISO volumes is created when using the generic
|
||||
// copy implementation. This is needed because genericVFSCopyVolume treats
|
||||
// ISO volumes like filesystem volumes when performing the copy. This implies
|
||||
// that the mount path for the volume must exist before the copying starts.
|
||||
if srcVol.contentType == ContentTypeISO {
|
||||
err := srcVol.EnsureMountPath(false)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
rev.Add(func() { _ = os.Remove(vol.MountPath()) })
|
||||
}
|
||||
|
||||
// TODO: support optimized copying with snapshots
|
||||
return genericVFSCopyVolume(d, nil, vol, srcVol, srcSnapshots, false, allowInconsistent, op)
|
||||
return errors.New("Linstor doesn't currently support copying volumes with their snapshots")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,28 +1,31 @@
|
||||
package zone
|
||||
package util
|
||||
|
||||
import (
|
||||
"net"
|
||||
)
|
||||
|
||||
// Zone suffixes.
|
||||
var (
|
||||
ip4Arpa = ".in-addr.arpa"
|
||||
ip6Arpa = ".ip6.arpa"
|
||||
const (
|
||||
// IPv4Arpa represents the IPv4 reverse DNS suffix.
|
||||
IPv4Arpa = ".in-addr.arpa"
|
||||
|
||||
// IPv6Arpa represents the IPv6 reverse DNS suffix.
|
||||
IPv6Arpa = ".ip6.arpa"
|
||||
)
|
||||
|
||||
// reverse takes an IPv4 or IPv6 address and returns the matching ARPA record.
|
||||
func reverse(ip net.IP) (arpa string) {
|
||||
// ReverseDNS takes an IPv4 or IPv6 address and returns the matching ARPA record.
|
||||
func ReverseDNS(ip net.IP) (arpa string) {
|
||||
if ip == nil {
|
||||
return ""
|
||||
}
|
||||
|
||||
// Deal with IPv4.
|
||||
if ip.To4() != nil {
|
||||
return uitoa(uint(ip[15])) + "." + uitoa(uint(ip[14])) + "." + uitoa(uint(ip[13])) + "." + uitoa(uint(ip[12])) + ip4Arpa + "."
|
||||
return uitoa(uint(ip[15])) + "." + uitoa(uint(ip[14])) + "." + uitoa(uint(ip[13])) + "." + uitoa(uint(ip[12])) + IPv4Arpa + "."
|
||||
}
|
||||
|
||||
// Deal with IPv6.
|
||||
buf := make([]byte, 0, len(ip)*4+len(ip6Arpa))
|
||||
buf := make([]byte, 0, len(ip)*4+len(IPv6Arpa))
|
||||
|
||||
// Add it, in reverse, to the buffer.
|
||||
for i := len(ip) - 1; i >= 0; i-- {
|
||||
@ -34,7 +37,7 @@ func reverse(ip net.IP) (arpa string) {
|
||||
}
|
||||
|
||||
// Add the suffix.
|
||||
buf = append(buf, ip6Arpa[1:]+"."...)
|
||||
buf = append(buf, IPv6Arpa[1:]+"."...)
|
||||
return string(buf)
|
||||
}
|
||||
|
||||
12
po/de.po
12
po/de.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: LXD\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 03:44+0000\n"
|
||||
"Last-Translator: Dklfajsjfi49wefklsf32 "
|
||||
"<nlincus@users.noreply.hosted.weblate.org>\n"
|
||||
@ -3510,6 +3510,16 @@ msgstr "Akzeptiere Zertifikat"
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr "Akzeptiere Zertifikat"
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr "Akzeptiere Zertifikat"
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/es.po
12
po/es.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: lxd\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 04:04+0000\n"
|
||||
"Last-Translator: Jorge Teixeira <hey@teixe.es>\n"
|
||||
"Language-Team: Spanish <https://hosted.weblate.org/projects/incus/cli/es/>\n"
|
||||
@ -3317,6 +3317,16 @@ msgstr "Acepta certificado"
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr "Acepta certificado"
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr "Acepta certificado"
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/fr.po
12
po/fr.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: LXD\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 04:18+0000\n"
|
||||
"Last-Translator: Varlorg <varlorg@gmail.com>\n"
|
||||
"Language-Team: French <https://hosted.weblate.org/projects/incus/cli/fr/>\n"
|
||||
@ -3538,6 +3538,16 @@ msgstr "Échec de la mise en écoute des demandes de connexion : %w"
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr "Échec du chargement de la configuration : %s"
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr "Échec de la fermeture du fichier de certificat du serveur %q : %w"
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr "Échec de la fermeture du fichier de certificat du serveur %q : %w"
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/id.po
12
po/id.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: incus\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 05:19+0000\n"
|
||||
"Last-Translator: Andika Triwidada <andika@gmail.com>\n"
|
||||
"Language-Team: Indonesian <https://hosted.weblate.org/projects/incus/cli/id/"
|
||||
@ -2985,6 +2985,16 @@ msgstr ""
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/incus.pot
12
po/incus.pot
@ -7,7 +7,7 @@
|
||||
msgid ""
|
||||
msgstr "Project-Id-Version: incus\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||
@ -2615,6 +2615,16 @@ msgstr ""
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/it.po
12
po/it.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: lxd\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 04:26+0000\n"
|
||||
"Last-Translator: Alberto Donato <alberto.donato@gmail.com>\n"
|
||||
"Language-Team: Italian <https://hosted.weblate.org/projects/incus/cli/it/>\n"
|
||||
@ -3308,6 +3308,16 @@ msgstr "Accetta certificato"
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr "Accetta certificato"
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr "Accetta certificato"
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/ja.po
12
po/ja.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: LXD\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-12-14 16:01+0000\n"
|
||||
"Last-Translator: KATOH Yasufumi <karma@jazz.email.ne.jp>\n"
|
||||
"Language-Team: Japanese <https://hosted.weblate.org/projects/incus/cli/ja/>\n"
|
||||
@ -3359,6 +3359,16 @@ msgstr "コネクションのリッスンに失敗しました: %w"
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr "設定のロードに失敗しました: %s"
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr "サーバー証明書ファイル %q のクローズに失敗しました: %w"
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr "サーバー証明書ファイル %q のクローズに失敗しました: %w"
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/nb_NO.po
12
po/nb_NO.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: incus\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 05:18+0000\n"
|
||||
"Last-Translator: Daniel Dybing <daniel.dybing@gmail.com>\n"
|
||||
"Language-Team: Norwegian Bokmål <https://hosted.weblate.org/projects/incus/"
|
||||
@ -2979,6 +2979,16 @@ msgstr ""
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/nl.po
12
po/nl.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: lxd\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 04:29+0000\n"
|
||||
"Last-Translator: Dklfajsjfi49wefklsf32 "
|
||||
"<nlincus@users.noreply.hosted.weblate.org>\n"
|
||||
@ -3293,6 +3293,16 @@ msgstr ""
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/pt.po
12
po/pt.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: incus\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-12-18 19:00+0000\n"
|
||||
"Last-Translator: Américo Monteiro <a_monteiro@gmx.com>\n"
|
||||
"Language-Team: Portuguese <https://hosted.weblate.org/projects/incus/cli/pt/"
|
||||
@ -3418,6 +3418,16 @@ msgstr "Falhou ao escutar por ligação: %w"
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr "Falhou ao carregar configuração: %s"
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr "Falhou ao fechar ficheiro de certificado de servidor %q: %w"
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr "Falhou ao fechar ficheiro de certificado de servidor %q: %w"
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/pt_BR.po
12
po/pt_BR.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: lxd\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 04:53+0000\n"
|
||||
"Last-Translator: Paulo Coghi <paulo@coghi.com.br>\n"
|
||||
"Language-Team: Portuguese (Brazil) <https://hosted.weblate.org/projects/"
|
||||
@ -3355,6 +3355,16 @@ msgstr "Aceitar certificado"
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr "Aceitar certificado"
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr "Aceitar certificado"
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/ru.po
12
po/ru.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: lxd\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 05:14+0000\n"
|
||||
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
||||
"Language-Team: Russian <https://hosted.weblate.org/projects/incus/cli/ru/>\n"
|
||||
@ -3352,6 +3352,16 @@ msgstr "Принять сертификат"
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr "Принять сертификат"
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr "Принять сертификат"
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/sv.po
12
po/sv.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: incus\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-12-07 15:00+0000\n"
|
||||
"Last-Translator: Daniel Nylander <daniel@danielnylander.se>\n"
|
||||
"Language-Team: Swedish <https://hosted.weblate.org/projects/incus/cli/sv/>\n"
|
||||
@ -3373,6 +3373,16 @@ msgstr "Misslyckades med att lyssna efter anslutning: %w"
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr "Konfigurationen kunde inte läsas in: %s"
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr "Det gick inte att stänga servercertifikatfilen %q: %w"
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr "Det gick inte att stänga servercertifikatfilen %q: %w"
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
12
po/ta.po
12
po/ta.po
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: incus\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 05:21+0000\n"
|
||||
"Last-Translator: Anonymous <noreply@weblate.org>\n"
|
||||
"Language-Team: Tamil <https://hosted.weblate.org/projects/incus/cli/ta/>\n"
|
||||
@ -2969,6 +2969,16 @@ msgstr ""
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: lxd\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-12-11 16:00+0000\n"
|
||||
"Last-Translator: yooadmin <yooadmin@163.com>\n"
|
||||
"Language-Team: Chinese (Simplified Han script) <https://hosted.weblate.org/"
|
||||
@ -3340,6 +3340,16 @@ msgstr "监听连接失败:%w"
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr "加载配置失败:%s"
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr "关闭服务器证书文件 %q 失败:%w"
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, fuzzy, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr "关闭服务器证书文件 %q 失败:%w"
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
@ -7,7 +7,7 @@ msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: incus\n"
|
||||
"Report-Msgid-Bugs-To: lxc-devel@lists.linuxcontainers.org\n"
|
||||
"POT-Creation-Date: 2025-12-18 23:24-0500\n"
|
||||
"POT-Creation-Date: 2025-12-19 03:30-0500\n"
|
||||
"PO-Revision-Date: 2025-10-21 05:20+0000\n"
|
||||
"Last-Translator: pesder <j_h_liau@yahoo.com.tw>\n"
|
||||
"Language-Team: Chinese (Traditional Han script) <https://hosted.weblate.org/"
|
||||
@ -2970,6 +2970,16 @@ msgstr ""
|
||||
msgid "Failed to load configuration: %s"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/file.go:848 cmd/incus/utils_sftp.go:299
|
||||
#, c-format
|
||||
msgid "Failed to open source file %q: %v"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/utils_sftp.go:73
|
||||
#, c-format
|
||||
msgid "Failed to open target file %q: %w"
|
||||
msgstr ""
|
||||
|
||||
#: cmd/incus/admin_sql.go:128
|
||||
#, c-format
|
||||
msgid "Failed to parse dump response: %w"
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
test_incremental_copy() {
|
||||
# shellcheck disable=2153
|
||||
[ "${INCUS_BACKEND}" = "linstor" ] && echo "==> SKIP: Linstor can't currently handle copies with snapshots" && return
|
||||
|
||||
ensure_import_testimage
|
||||
ensure_has_localhost_remote "${INCUS_ADDR}"
|
||||
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
test_migration() {
|
||||
# shellcheck disable=2153
|
||||
[ "${INCUS_BACKEND}" = "linstor" ] && echo "==> SKIP: Linstor can't currently handle copies with snapshots" && return
|
||||
|
||||
# setup a second Incus
|
||||
# shellcheck disable=2039,3043
|
||||
local INCUS2_DIR INCUS2_ADDR incus_backend
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
test_snapshots() {
|
||||
# shellcheck disable=2153
|
||||
[ "${INCUS_BACKEND}" = "linstor" ] && echo "==> SKIP: Linstor can't currently handle copies with snapshots" && return
|
||||
|
||||
snapshots
|
||||
|
||||
if [ "$(storage_backend "$INCUS_DIR")" = "lvm" ]; then
|
||||
@ -97,6 +100,7 @@ snapshots() {
|
||||
}
|
||||
|
||||
test_snap_restore() {
|
||||
[ "${INCUS_BACKEND}" = "linstor" ] && echo "==> SKIP: Linstor can't currently handle copies with snapshots" && return
|
||||
snap_restore
|
||||
|
||||
if [ "$(storage_backend "$INCUS_DIR")" = "lvm" ]; then
|
||||
@ -315,6 +319,9 @@ restore_and_compare_fs() {
|
||||
}
|
||||
|
||||
test_snap_expiry() {
|
||||
# shellcheck disable=2153
|
||||
[ "${INCUS_BACKEND}" = "linstor" ] && echo "==> SKIP: Linstor can't currently handle copies with snapshots" && return
|
||||
|
||||
# shellcheck disable=2039,3043
|
||||
local incus_backend
|
||||
incus_backend=$(storage_backend "$INCUS_DIR")
|
||||
@ -341,6 +348,9 @@ test_snap_expiry() {
|
||||
}
|
||||
|
||||
test_snap_schedule() {
|
||||
# shellcheck disable=2153
|
||||
[ "${INCUS_BACKEND}" = "linstor" ] && echo "==> SKIP: Linstor can't currently handle copies with snapshots" && return
|
||||
|
||||
# shellcheck disable=2039,3043
|
||||
local incus_backend
|
||||
incus_backend=$(storage_backend "$INCUS_DIR")
|
||||
|
||||
@ -1,4 +1,7 @@
|
||||
test_storage_local_volume_handling() {
|
||||
# shellcheck disable=2153
|
||||
[ "${INCUS_BACKEND}" = "linstor" ] && echo "==> SKIP: Linstor can't currently handle copies with snapshots" && return
|
||||
|
||||
ensure_import_testimage
|
||||
|
||||
# shellcheck disable=2039,3043
|
||||
|
||||
Loading…
Reference in New Issue
Block a user