Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion installer/pkg/config-generator/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,12 @@ go_library(
"generator.go",
"ignition.go",
"tls.go",
"utils.go",
],
importpath = "github.com/openshift/installer/installer/pkg/config-generator",
visibility = ["//visibility:public"],
deps = [
"//installer/pkg/config:go_default_library",
"//installer/pkg/copy:go_default_library",
"//installer/pkg/tls:go_default_library",
"//vendor/github.com/apparentlymart/go-cidr/cidr:go_default_library",
"//vendor/github.com/coreos/ignition/config/v2_2:go_default_library",
Expand Down
7 changes: 4 additions & 3 deletions installer/pkg/config-generator/tls.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import (
"path/filepath"
"time"

"github.com/openshift/installer/installer/pkg/copy"
"github.com/openshift/installer/installer/pkg/tls"
)

Expand Down Expand Up @@ -123,7 +124,7 @@ func (c *ConfigGenerator) GenerateTLSConfig(clusterDir string) error {
}

// Ingress certs
if copyFile(kubeCACertPath, ingressCACertPath); err != nil {
if copy.Copy(kubeCACertPath, ingressCACertPath); err != nil {
return fmt.Errorf("failed to import kube CA cert into ingress-ca.crt: %v", err)
}

Expand Down Expand Up @@ -274,12 +275,12 @@ func generateRootCert(clusterDir string) (cert *x509.Certificate, key *rsa.Priva
// getCertFiles copies the given cert/key files into the generated folder and returns their contents
func getCertFiles(clusterDir string, certPath string, keyPath string) (*x509.Certificate, *rsa.PrivateKey, error) {
keyDst := filepath.Join(clusterDir, rootCAKeyPath)
if err := copyFile(keyPath, keyDst); err != nil {
if err := copy.Copy(keyPath, keyDst); err != nil {
return nil, nil, fmt.Errorf("failed to write file: %v", err)
}

certDst := filepath.Join(clusterDir, rootCACertPath)
if err := copyFile(certPath, certDst); err != nil {
if err := copy.Copy(certPath, certDst); err != nil {
return nil, nil, fmt.Errorf("failed to write file: %v", err)
}
// content validation occurs in pkg/config/validate.go
Expand Down
21 changes: 0 additions & 21 deletions installer/pkg/config-generator/utils.go

This file was deleted.

19 changes: 19 additions & 0 deletions installer/pkg/copy/BUILD.bazel
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")

go_library(
name = "go_default_library",
srcs = [
"copy.go",
],
importpath = "github.com/openshift/installer/installer/pkg/copy",
visibility = ["//visibility:public"],
)

go_test(
name = "go_default_test",
size = "small",
srcs = [
"copy_test.go",
],
embed = [":go_default_library"],
)
26 changes: 26 additions & 0 deletions installer/pkg/copy/copy.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
// Package copy supports copying a file to another path.
package copy

import (
"io"
"os"
)

// Copy creates a new file at toFilePath with with mode 0666 (before
// umask) and the same content as fromFilePath.
func Copy(fromFilePath, toFilePath string) error {
from, err := os.Open(fromFilePath)
if err != nil {
return err
}
defer from.Close()

to, err := os.OpenFile(toFilePath, os.O_WRONLY|os.O_CREATE, 0666)
if err != nil {
return err
}
defer to.Close()

_, err = io.Copy(to, from)
return err
}
38 changes: 38 additions & 0 deletions installer/pkg/copy/copy_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package copy

import (
"io/ioutil"
"os"
"path/filepath"
"testing"
)

func TestCopyFile(t *testing.T) {
dir, err := ioutil.TempDir("", "workflow-test-")
if err != nil {
t.Error(err)
}
defer os.RemoveAll(dir)

sourcePath := filepath.Join(dir, "source")
sourceContent := []byte("Hello, World!\n")
err = ioutil.WriteFile(sourcePath, sourceContent, 0600)
if err != nil {
t.Error(err)
}

targetPath := filepath.Join(dir, "target")
err = Copy(sourcePath, targetPath)
if err != nil {
t.Error(err)
}

targetContent, err := ioutil.ReadFile(targetPath)
if err != nil {
t.Error(err)
}

if string(targetContent) != string(sourceContent) {
t.Errorf("target %q != source %q", string(targetContent), string(sourceContent))
}
}
1 change: 1 addition & 0 deletions installer/pkg/workflow/BUILD.bazel
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ go_library(
deps = [
"//installer/pkg/config:go_default_library",
"//installer/pkg/config-generator:go_default_library",
"//installer/pkg/copy:go_default_library",
"//vendor/gopkg.in/yaml.v2:go_default_library",
],
)
Expand Down
3 changes: 2 additions & 1 deletion installer/pkg/workflow/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ import (

"github.com/openshift/installer/installer/pkg/config"
configgenerator "github.com/openshift/installer/installer/pkg/config-generator"
"github.com/openshift/installer/installer/pkg/copy"
)

const (
Expand Down Expand Up @@ -104,7 +105,7 @@ func prepareWorspaceStep(m *metadata) error {

// put config file under the clusterDir folder
configFilePath := filepath.Join(clusterDir, configFileName)
if err := copyFile(m.configFilePath, configFilePath); err != nil {
if err := copy.Copy(m.configFilePath, configFilePath); err != nil {
return fmt.Errorf("failed to create cluster config at %q: %v", clusterDir, err)
}

Expand Down
18 changes: 0 additions & 18 deletions installer/pkg/workflow/utils.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ package workflow
import (
"errors"
"fmt"
"io"
"io/ioutil"
"os"
"path"
Expand All @@ -30,23 +29,6 @@ const (
topologyStep = "topology"
)

func copyFile(fromFilePath, toFilePath string) error {
from, err := os.Open(fromFilePath)
if err != nil {
return err
}
defer from.Close()

to, err := os.OpenFile(toFilePath, os.O_RDWR|os.O_CREATE, 0666)
if err != nil {
return err
}
defer to.Close()

_, err = io.Copy(to, from)
return err
}

// returns the directory containing templates for a given step. If platform is
// specified, it looks for a subdirectory with platform first, falling back if
// there are no platform-specific templates for that step
Expand Down