@@ -15,32 +15,14 @@ import (
1515)
1616
1717func init () {
18- Register ("openSUSE " , & RegisteredProvisioner {
19- New : NewOpenSUSEProvisioner ,
18+ Register ("SUSE " , & RegisteredProvisioner {
19+ New : NewSUSEProvisioner ,
2020 })
21- Register ("SUSE Linux Enterprise Desktop" , & RegisteredProvisioner {
22- New : NewSLEDProvisioner ,
23- })
24- Register ("SUSE Linux Enterprise Server" , & RegisteredProvisioner {
25- New : NewSLESProvisioner ,
26- })
27- }
28-
29- func NewSLEDProvisioner (d drivers.Driver ) Provisioner {
30- return & SUSEProvisioner {
31- NewSystemdProvisioner ("sled" , d ),
32- }
3321}
3422
35- func NewSLESProvisioner (d drivers.Driver ) Provisioner {
23+ func NewSUSEProvisioner (d drivers.Driver ) Provisioner {
3624 return & SUSEProvisioner {
37- NewSystemdProvisioner ("sles" , d ),
38- }
39- }
40-
41- func NewOpenSUSEProvisioner (d drivers.Driver ) Provisioner {
42- return & SUSEProvisioner {
43- NewSystemdProvisioner ("openSUSE" , d ),
25+ NewSystemdProvisioner ("SUSE" , d ),
4426 }
4527}
4628
@@ -49,11 +31,17 @@ type SUSEProvisioner struct {
4931}
5032
5133func (provisioner * SUSEProvisioner ) CompatibleWithHost () bool {
52- return strings .ToLower (provisioner .OsReleaseInfo .ID ) == strings .ToLower (provisioner .OsReleaseID )
34+ ids := strings .Split (provisioner .OsReleaseInfo .IDLike , " " )
35+ for _ , id := range ids {
36+ if id == "suse" {
37+ return true
38+ }
39+ }
40+ return false
5341}
5442
5543func (provisioner * SUSEProvisioner ) String () string {
56- return "openSUSE "
44+ return "SUSE "
5745}
5846
5947func (provisioner * SUSEProvisioner ) Package (name string , action pkgaction.PackageAction ) error {
@@ -135,7 +123,7 @@ func (provisioner *SUSEProvisioner) Provision(swarmOptions swarm.Options, authOp
135123 return err
136124 }
137125
138- if strings .ToLower (provisioner .OsReleaseInfo .ID ) != "opensuse" {
126+ if ! strings .HasPrefix ( strings . ToLower (provisioner .OsReleaseInfo .ID ), "opensuse" ) {
139127 // This is a SLE machine, enable the containers module to have access
140128 // to the docker packages
141129 if _ , err := provisioner .SSHCommand ("sudo -E SUSEConnect -p sle-module-containers/12/$(uname -m) -r ''" ); err != nil {
@@ -157,10 +145,10 @@ func (provisioner *SUSEProvisioner) Provision(swarmOptions swarm.Options, authOp
157145 return err
158146 }
159147
160- // create symlinks for containerd, containerd-shim and runc.
148+ // create symlinks for containerd, containerd-shim and optional runc.
161149 // We have to do that because machine overrides the openSUSE systemd
162150 // unit of docker
163- if _ , err := provisioner .SSHCommand ("sudo -E ln -sf /usr/sbin/runc /usr/sbin/docker-runc" ); err != nil {
151+ if _ , err := provisioner .SSHCommand ("yes no | sudo -E ln -si /usr/sbin/runc /usr/sbin/docker-runc" ); err != nil {
164152 return err
165153 }
166154 if _ , err := provisioner .SSHCommand ("sudo -E ln -sf /usr/sbin/containerd /usr/sbin/docker-containerd" ); err != nil {
0 commit comments