mirror of https://github.com/docker/docs.git
Adding Oracle Enterprise Linux provisioner
Fixes #1361 Fixes #3164 Corrected copy/paste typo in libmachine/provision/fedora_test.go Preserve environment when performing yum update for proxy settings. Signed-off-by: Eric A. Zarko <eric.zarko@oracle.com>
This commit is contained in:
parent
5b4159d0d8
commit
6c47f4d8e2
|
|
@ -9,7 +9,7 @@ func TestFedoraGenerateYumRepoList(t *testing.T) {
|
||||||
info := &OsRelease{
|
info := &OsRelease{
|
||||||
ID: "fedora",
|
ID: "fedora",
|
||||||
}
|
}
|
||||||
p := NewCentosProvisioner(nil)
|
p := NewFedoraProvisioner(nil)
|
||||||
p.SetOsReleaseInfo(info)
|
p.SetOsReleaseInfo(info)
|
||||||
|
|
||||||
buf, err := generateYumRepoList(p)
|
buf, err := generateYumRepoList(p)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
package provision
|
||||||
|
|
||||||
|
import (
|
||||||
|
"github.com/docker/machine/libmachine/drivers"
|
||||||
|
)
|
||||||
|
|
||||||
|
func init() {
|
||||||
|
Register("OracleLinux", &RegisteredProvisioner{
|
||||||
|
New: NewOracleLinuxProvisioner,
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
func NewOracleLinuxProvisioner(d drivers.Driver) Provisioner {
|
||||||
|
return &OracleLinuxProvisioner{
|
||||||
|
NewRedHatProvisioner("ol", d),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type OracleLinuxProvisioner struct {
|
||||||
|
*RedHatProvisioner
|
||||||
|
}
|
||||||
|
|
||||||
|
func (provisioner *OracleLinuxProvisioner) String() string {
|
||||||
|
return "ol"
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,29 @@
|
||||||
|
package provision
|
||||||
|
|
||||||
|
import (
|
||||||
|
"regexp"
|
||||||
|
"testing"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestOracleLinuxGenerateYumRepoList(t *testing.T) {
|
||||||
|
info := &OsRelease{
|
||||||
|
ID: "ol",
|
||||||
|
Version: "7.2",
|
||||||
|
}
|
||||||
|
p := NewOracleLinuxProvisioner(nil)
|
||||||
|
p.SetOsReleaseInfo(info)
|
||||||
|
|
||||||
|
buf, err := generateYumRepoList(p)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
m, err := regexp.MatchString(".*oraclelinux/7.*", buf.String())
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
|
||||||
|
if !m {
|
||||||
|
t.Fatalf("expected match for oraclelinux/7")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -4,6 +4,7 @@ import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"regexp"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
"github.com/docker/machine/libmachine/auth"
|
"github.com/docker/machine/libmachine/auth"
|
||||||
|
|
@ -39,6 +40,8 @@ LimitNPROC=1048576
|
||||||
LimitCORE=infinity
|
LimitCORE=infinity
|
||||||
Environment={{range .EngineOptions.Env}}{{ printf "%q" . }} {{end}}
|
Environment={{range .EngineOptions.Env}}{{ printf "%q" . }} {{end}}
|
||||||
`
|
`
|
||||||
|
|
||||||
|
majorVersionRE = regexp.MustCompile(`^(\d+)(\..*)?`)
|
||||||
)
|
)
|
||||||
|
|
||||||
type PackageListInfo struct {
|
type PackageListInfo struct {
|
||||||
|
|
@ -168,7 +171,7 @@ func (provisioner *RedHatProvisioner) Provision(swarmOptions swarm.Options, auth
|
||||||
}
|
}
|
||||||
|
|
||||||
// update OS -- this is needed for libdevicemapper and the docker install
|
// update OS -- this is needed for libdevicemapper and the docker install
|
||||||
if _, err := provisioner.SSHCommand("sudo yum -y update"); err != nil {
|
if _, err := provisioner.SSHCommand("sudo -E yum -y update"); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -246,6 +249,13 @@ func generateYumRepoList(provisioner Provisioner) (*bytes.Buffer, error) {
|
||||||
case "fedora":
|
case "fedora":
|
||||||
packageListInfo.OsRelease = "fedora"
|
packageListInfo.OsRelease = "fedora"
|
||||||
packageListInfo.OsReleaseVersion = "22"
|
packageListInfo.OsReleaseVersion = "22"
|
||||||
|
case "ol":
|
||||||
|
packageListInfo.OsRelease = "oraclelinux"
|
||||||
|
v := majorVersionRE.FindStringSubmatch(releaseInfo.Version)
|
||||||
|
if v == nil {
|
||||||
|
return nil, fmt.Errorf("unable to determine major version of %s", releaseInfo.Version)
|
||||||
|
}
|
||||||
|
packageListInfo.OsReleaseVersion = v[1]
|
||||||
default:
|
default:
|
||||||
return nil, ErrUnknownYumOsRelease
|
return nil, ErrUnknownYumOsRelease
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue