1
0
mirror of https://github.com/lxc/go-lxc.git synced 2026-02-05 15:47:17 +01:00

Merge pull request #170 from stgraber/v2

container: Better handle lxc_start
This commit is contained in:
Serge Hallyn
2024-06-06 15:02:41 -05:00
committed by GitHub
5 changed files with 35 additions and 17 deletions

View File

@@ -27,7 +27,15 @@ jobs:
- name: Install dependencies - name: Install dependencies
run: | run: |
sudo add-apt-repository ppa:ubuntu-lxc/daily -y sudo add-apt-repository ppa:ubuntu-lxc/daily -y
sudo apt-get install -qq apparmor lxc lxc-dev pkg-config uidmap busybox libdbus-1-dev libseccomp-dev libcap-dev libselinux-dev sudo apt-get install -qq apparmor lxc lxc-dev pkg-config uidmap busybox libdbus-1-dev libseccomp-dev libcap-dev libselinux-dev nftables iptables
- name: Reset all firewalling
run: |
sudo iptables -F
sudo iptables -P INPUT ACCEPT
sudo iptables -P OUTPUT ACCEPT
sudo iptables -P FORWARD ACCEPT
sudo nft flush ruleset
- name: Setup test environment - name: Setup test environment
run: | run: |

View File

@@ -647,9 +647,16 @@ func (c *Container) StartWithArgs(args []string) error {
return err return err
} }
if !bool(C.go_lxc_start(c.container, 0, makeNullTerminatedArgs(args))) { if args != nil {
return ErrStartFailed if !bool(C.go_lxc_start(c.container, 0, makeNullTerminatedArgs(args))) {
return ErrStartFailed
}
} else {
if !bool(C.go_lxc_start(c.container, 0, nil)) {
return ErrStartFailed
}
} }
return nil return nil
} }
@@ -667,8 +674,14 @@ func (c *Container) StartExecute(args []string) error {
return err return err
} }
if !bool(C.go_lxc_start(c.container, 1, makeNullTerminatedArgs(args))) { if args != nil {
return ErrStartFailed if !bool(C.go_lxc_start(c.container, 1, makeNullTerminatedArgs(args))) {
return ErrStartFailed
}
} else {
if !bool(C.go_lxc_start(c.container, 1, nil)) {
return ErrStartFailed
}
} }
return nil return nil

2
go.mod
View File

@@ -2,4 +2,4 @@ module github.com/lxc/go-lxc
go 1.20 go 1.20
require golang.org/x/sys v0.12.0 require golang.org/x/sys v0.21.0

4
go.sum
View File

@@ -1,2 +1,2 @@
golang.org/x/sys v0.12.0 h1:CM0HF96J0hcLAwsHPJZjfdNzs0gftsLfgKt57wWHJ0o= golang.org/x/sys v0.21.0 h1:rF+pYz3DAGSQAxAu1CbC7catZg4ebC4UIeIhKxBZvws=
golang.org/x/sys v0.12.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.21.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=

View File

@@ -42,11 +42,6 @@ func unprivileged() bool {
return os.Geteuid() != 0 return os.Geteuid() != 0
} }
func travis() bool {
// https://docs.travis-ci.com/user/environment-variables/#default-environment-variables
return os.Getenv("TRAVIS") == "true"
}
func supported(moduleName string) bool { func supported(moduleName string) bool {
if _, err := os.Stat("/sys/module/" + moduleName); err != nil { if _, err := os.Stat("/sys/module/" + moduleName); err != nil {
return false return false
@@ -1411,22 +1406,24 @@ func TestIPv4Addresses(t *testing.T) {
} }
defer c.Release() defer c.Release()
// Wait for IP configuration.
time.Sleep(5 * time.Second)
if _, err := c.IPv4Addresses(); err != nil { if _, err := c.IPv4Addresses(); err != nil {
t.Errorf(err.Error()) t.Errorf(err.Error())
} }
} }
func TestIPv6Addresses(t *testing.T) { func TestIPv6Addresses(t *testing.T) {
if !ipv6() {
t.Skip("skipping test since lxc bridge does not have ipv6 address")
}
c, err := NewContainer(ContainerName()) c, err := NewContainer(ContainerName())
if err != nil { if err != nil {
t.Errorf(err.Error()) t.Errorf(err.Error())
} }
defer c.Release() defer c.Release()
// Wait for IP configuration.
time.Sleep(5 * time.Second)
if _, err := c.IPv6Addresses(); err != nil { if _, err := c.IPv6Addresses(); err != nil {
t.Errorf(err.Error()) t.Errorf(err.Error())
} }