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{
|
||||
ID: "fedora",
|
||||
}
|
||||
p := NewCentosProvisioner(nil)
|
||||
p := NewFedoraProvisioner(nil)
|
||||
p.SetOsReleaseInfo(info)
|
||||
|
||||
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"
|
||||
"errors"
|
||||
"fmt"
|
||||
"regexp"
|
||||
"text/template"
|
||||
|
||||
"github.com/docker/machine/libmachine/auth"
|
||||
|
|
@ -39,6 +40,8 @@ LimitNPROC=1048576
|
|||
LimitCORE=infinity
|
||||
Environment={{range .EngineOptions.Env}}{{ printf "%q" . }} {{end}}
|
||||
`
|
||||
|
||||
majorVersionRE = regexp.MustCompile(`^(\d+)(\..*)?`)
|
||||
)
|
||||
|
||||
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
|
||||
if _, err := provisioner.SSHCommand("sudo yum -y update"); err != nil {
|
||||
if _, err := provisioner.SSHCommand("sudo -E yum -y update"); err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
|
|
@ -246,6 +249,13 @@ func generateYumRepoList(provisioner Provisioner) (*bytes.Buffer, error) {
|
|||
case "fedora":
|
||||
packageListInfo.OsRelease = "fedora"
|
||||
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:
|
||||
return nil, ErrUnknownYumOsRelease
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue