Skip to content

Commit

Permalink
Issue minishift#1408 Using a global cache for all profiles
Browse files Browse the repository at this point in the history
  • Loading branch information
hferentschik committed Nov 29, 2017
1 parent 72e4705 commit 2ea68ff
Show file tree
Hide file tree
Showing 38 changed files with 138 additions and 92 deletions.
3 changes: 2 additions & 1 deletion cmd/minishift/cmd/addon/addon_apply.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"github.com/docker/machine/libmachine"
"github.com/docker/machine/libmachine/provision"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/constants"
"github.com/minishift/minishift/pkg/minishift/clusterup"
minishiftConfig "github.com/minishift/minishift/pkg/minishift/config"
Expand Down Expand Up @@ -58,7 +59,7 @@ func runApplyAddon(cmd *cobra.Command, args []string) {
}
}

api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand Down
3 changes: 2 additions & 1 deletion cmd/minishift/cmd/addon/addon_remove.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"github.com/docker/machine/libmachine"
"github.com/docker/machine/libmachine/provision"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/constants"
"github.com/minishift/minishift/pkg/minishift/clusterup"
minishiftConfig "github.com/minishift/minishift/pkg/minishift/config"
Expand Down Expand Up @@ -61,7 +62,7 @@ func runRemoveAddon(cmd *cobra.Command, args []string) {
}
}

api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand Down
3 changes: 3 additions & 0 deletions cmd/minishift/cmd/config/set_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ limitations under the License.
package config

import (
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/constants"
"io/ioutil"
"os"
Expand All @@ -36,6 +37,8 @@ func TestModifyData(t *testing.T) {
if err != nil {
t.Error()
}
state.InstanceDirs = state.NewMinishiftDirs(testDir)

constants.ConfigFile = filepath.Join(testDir, "config.json")
defer os.RemoveAll(testDir)

Expand Down
4 changes: 2 additions & 2 deletions cmd/minishift/cmd/config/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,8 +24,8 @@ import (

"github.com/docker/machine/libmachine"

"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/cluster"
"github.com/minishift/minishift/pkg/minikube/constants"
)

// Runs all the validation or callback functions and collects errors
Expand Down Expand Up @@ -90,7 +90,7 @@ func SetSlice(m MinishiftConfig, name string, val string) error {
}

func RequiresRestartMsg(name string, value string) error {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

_, err := cluster.CheckIfApiExistsAndLoad(api)
Expand Down
3 changes: 2 additions & 1 deletion cmd/minishift/cmd/console.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"os"

"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/cluster"
"github.com/minishift/minishift/pkg/minikube/constants"
"github.com/minishift/minishift/pkg/util/os/atexit"
Expand All @@ -44,7 +45,7 @@ var consoleCmd = &cobra.Command{
Short: "Opens or displays the OpenShift Web Console URL.",
Long: `Opens the OpenShift Web Console URL in the default browser or displays it to the console.`,
Run: func(cmd *cobra.Command, args []string) {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

if consoleURLMode {
Expand Down
5 changes: 3 additions & 2 deletions cmd/minishift/cmd/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"github.com/docker/machine/libmachine"
registrationUtil "github.com/minishift/minishift/cmd/minishift/cmd/registration"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/cluster"
"github.com/minishift/minishift/pkg/minikube/constants"
minishiftConfig "github.com/minishift/minishift/pkg/minishift/config"
Expand All @@ -46,7 +47,7 @@ var (
)

func runDelete(cmd *cobra.Command, args []string) {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand All @@ -59,7 +60,7 @@ func runDelete(cmd *cobra.Command, args []string) {
}

if clearCache {
cachePath := constants.MakeMiniPath("cache")
cachePath := state.InstanceDirs.Cache
err := os.RemoveAll(cachePath)
if err != nil {
atexit.ExitWithMessage(1, fmt.Sprintf("Error deleting Minishift cache: %v", err))
Expand Down
3 changes: 2 additions & 1 deletion cmd/minishift/cmd/env.go
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ import (

"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/cluster"
"github.com/minishift/minishift/pkg/util/os/atexit"
"github.com/minishift/minishift/pkg/util/shell"
Expand Down Expand Up @@ -144,7 +145,7 @@ var dockerEnvCmd = &cobra.Command{
Long: `Sets Docker environment variables, similar to '$(docker-machine env)'.`,
Run: func(cmd *cobra.Command, args []string) {

api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand Down
3 changes: 2 additions & 1 deletion cmd/minishift/cmd/hostfolder/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ package hostfolder
import (
"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/constants"
hostfolderActions "github.com/minishift/minishift/pkg/minishift/hostfolder"
"github.com/minishift/minishift/pkg/util/os/atexit"
Expand All @@ -30,7 +31,7 @@ var hostfolderListCmd = &cobra.Command{
Short: "Lists the defined host folders.",
Long: `Lists an overview of the defined host folders that can be mounted to a running OpenShift cluster.`,
Run: func(cmd *cobra.Command, args []string) {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand Down
3 changes: 2 additions & 1 deletion cmd/minishift/cmd/hostfolder/mount.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (

"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/constants"
hostfolderActions "github.com/minishift/minishift/pkg/minishift/hostfolder"
"github.com/minishift/minishift/pkg/util/os/atexit"
Expand All @@ -36,7 +37,7 @@ var hostfolderMountCmd = &cobra.Command{
Short: "Mounts the specified host folder to the running OpenShift cluster.",
Long: `Mounts the specified host folder to the running OpenShift cluster. You can set the 'all' flag to mount all of the defined host folders.`,
Run: func(cmd *cobra.Command, args []string) {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand Down
3 changes: 2 additions & 1 deletion cmd/minishift/cmd/hostfolder/umount.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (

"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/constants"
hostfolderActions "github.com/minishift/minishift/pkg/minishift/hostfolder"
"github.com/minishift/minishift/pkg/util/os/atexit"
Expand All @@ -36,7 +37,7 @@ var hostfolderUmountCmd = &cobra.Command{
atexit.ExitWithMessage(1, "Usage: minishift hostfolder umount HOSTFOLDER_NAME")
}

api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand Down
7 changes: 3 additions & 4 deletions cmd/minishift/cmd/image/export.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import (
"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/cmd/minishift/cmd/config"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/cluster"
"github.com/minishift/minishift/pkg/minikube/constants"
"github.com/minishift/minishift/pkg/minishift/docker/image"
Expand All @@ -44,16 +45,14 @@ var (
Long: "Exports the specified container images.",
Run: exportImage,
}

CacheDir = []string{"cache", "images"}
)

const (
noDockerDaemonImages = "There are currently no images in the Docker daemon which can be exported."
)

func exportImage(cmd *cobra.Command, args []string) {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand Down Expand Up @@ -92,7 +91,7 @@ func exportImage(cmd *cobra.Command, args []string) {
}

imageCacheConfig := &image.ImageCacheConfig{
HostCacheDir: constants.MakeMiniPath(CacheDir...),
HostCacheDir: state.InstanceDirs.ImageCache,
CachedImages: normalizedImageNames,
Out: out,
ImageMissStrategy: image.Pull,
Expand Down
7 changes: 4 additions & 3 deletions cmd/minishift/cmd/image/import.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ import (
"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/cmd/minishift/cmd/config"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/cluster"
"github.com/minishift/minishift/pkg/minikube/constants"
"github.com/minishift/minishift/pkg/minishift/docker/image"
Expand All @@ -47,7 +48,7 @@ const (
)

func importImage(cmd *cobra.Command, args []string) {
cacheDir := constants.MakeMiniPath(CacheDir...)
cacheDir := state.InstanceDirs.ImageCache
var images []string
if importAll {
images = getCachedImages(cacheDir)
Expand All @@ -65,7 +66,7 @@ func importImage(cmd *cobra.Command, args []string) {
atexit.ExitWithMessage(0, msg)
}

api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand All @@ -88,7 +89,7 @@ func importImage(cmd *cobra.Command, args []string) {
}

imageCacheConfig := &image.ImageCacheConfig{
HostCacheDir: constants.MakeMiniPath(CacheDir...),
HostCacheDir: state.InstanceDirs.ImageCache,
CachedImages: images,
Out: os.Stdout,
ImageMissStrategy: image.Skip,
Expand Down
6 changes: 3 additions & 3 deletions cmd/minishift/cmd/image/list.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ package image
import (
"fmt"
"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/pkg/minikube/constants"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minishift/profile"
"github.com/spf13/cobra"
)
Expand All @@ -36,7 +36,7 @@ var (
)

func listImages(cmd *cobra.Command, args []string) {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

if dockerDaemonImages {
Expand All @@ -47,7 +47,7 @@ func listImages(cmd *cobra.Command, args []string) {
}

func listCachedImages() {
cacheDir := constants.MakeMiniPath(CacheDir...)
cacheDir := state.InstanceDirs.ImageCache
cachedImages := getCachedImages(cacheDir)
if len(cachedImages) == 0 {
fmt.Println(fmt.Sprintf("There are no images cached for profile '%s' in '%s'", profile.GetActiveProfile(), cacheDir))
Expand Down
3 changes: 2 additions & 1 deletion cmd/minishift/cmd/image/util.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import (
"github.com/containers/image/docker/reference"
"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/cluster"
"github.com/minishift/minishift/pkg/minikube/constants"
"github.com/minishift/minishift/pkg/minishift/docker/image"
Expand All @@ -30,7 +31,7 @@ import (
)

func getCachedImages(cacheDir string) []string {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

handler, err := image.NewLocalOnlyOciImageHandler()
Expand Down
3 changes: 2 additions & 1 deletion cmd/minishift/cmd/ip.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/pkg/minikube/constants"

"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/util/os/atexit"
"github.com/spf13/cobra"
)
Expand All @@ -32,7 +33,7 @@ var ipCmd = &cobra.Command{
Short: "Gets the IP address of the running cluster.",
Long: `Gets the IP address of the running cluster and prints it to standard output.`,
Run: func(cmd *cobra.Command, args []string) {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()
host, err := api.Load(constants.MachineName)
if err != nil {
Expand Down
4 changes: 2 additions & 2 deletions cmd/minishift/cmd/logs.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,8 +21,8 @@ import (
"os"

"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/cluster"
"github.com/minishift/minishift/pkg/minikube/constants"
"github.com/minishift/minishift/pkg/util/os/atexit"
"github.com/spf13/cobra"
)
Expand All @@ -37,7 +37,7 @@ var logsCmd = &cobra.Command{
Short: "Gets the logs of the running OpenShift cluster.",
Long: `Gets the logs of the running OpenShift cluster. The logs do not contain information about your application code.`,
Run: func(cmd *cobra.Command, args []string) {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()
s, err := cluster.GetHostLogs(api, follow)
if err != nil {
Expand Down
5 changes: 3 additions & 2 deletions cmd/minishift/cmd/oc_env.go
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ import (
"github.com/docker/machine/libmachine"
configCmd "github.com/minishift/minishift/cmd/minishift/cmd/config"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minishift/cache"
"github.com/minishift/minishift/pkg/minishift/clusterup"
"github.com/minishift/minishift/pkg/minishift/config"
Expand Down Expand Up @@ -79,7 +80,7 @@ var ocEnvCmd = &cobra.Command{
atexit.ExitWithMessage(1, "Cannot find the OpenShift client binary.\nMake sure that OpenShift was provisioned successfully.")
}

api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand Down Expand Up @@ -120,7 +121,7 @@ func getOcPath() string {
ocVersion := clusterup.DetermineOcVersion(requestedOpenShiftVersion)
ocBinary := cache.Oc{
OpenShiftVersion: ocVersion,
MinishiftCacheDir: filepath.Join(constants.Minipath, "cache"),
MinishiftCacheDir: state.InstanceDirs.Cache,
}
return filepath.Join(ocBinary.GetCacheFilepath(), constants.OC_BINARY_NAME)
}
3 changes: 2 additions & 1 deletion cmd/minishift/cmd/openshift/registry.go
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ import (
"github.com/docker/machine/libmachine"
"github.com/minishift/minishift/cmd/minishift/cmd/addon"
"github.com/minishift/minishift/cmd/minishift/cmd/util"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/constants"
"github.com/minishift/minishift/pkg/minishift/openshift"
"github.com/minishift/minishift/pkg/util/os/atexit"
Expand All @@ -35,7 +36,7 @@ var registryCmd = &cobra.Command{
Run: func(cmd *cobra.Command, args []string) {

//Check if Minishift VM is running
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

util.ExitIfUndefined(api, constants.MachineName)
Expand Down
4 changes: 2 additions & 2 deletions cmd/minishift/cmd/openshift/restart.go
Original file line number Diff line number Diff line change
Expand Up @@ -23,8 +23,8 @@ import (

"github.com/docker/machine/libmachine"
"github.com/docker/machine/libmachine/provision"
"github.com/minishift/minishift/cmd/minishift/state"
"github.com/minishift/minishift/pkg/minikube/cluster"
"github.com/minishift/minishift/pkg/minikube/constants"
"github.com/minishift/minishift/pkg/minishift/docker"
"github.com/minishift/minishift/pkg/minishift/openshift"
"github.com/minishift/minishift/pkg/util/os/atexit"
Expand All @@ -42,7 +42,7 @@ func init() {
}

func runRestart(cmd *cobra.Command, args []string) {
api := libmachine.NewClient(constants.Minipath, constants.MakeMiniPath("certs"))
api := libmachine.NewClient(state.InstanceDirs.Home, state.InstanceDirs.Certs)
defer api.Close()

host, err := cluster.CheckIfApiExistsAndLoad(api)
Expand Down
Loading

0 comments on commit 2ea68ff

Please sign in to comment.