diff --git a/cmd/control/preload.go b/cmd/control/preload.go index 89ca83fa..8455ae35 100644 --- a/cmd/control/preload.go +++ b/cmd/control/preload.go @@ -14,6 +14,8 @@ import ( "github.com/codegangsta/cli" dockerClient "github.com/docker/engine-api/client" + "github.com/docker/engine-api/types" + "github.com/rancher/os/config" "github.com/rancher/os/docker" "github.com/rancher/os/log" ) @@ -90,10 +92,17 @@ func PreloadImages(clientFactory func() (dockerClient.APIClient, error), imagesD clientInitialized = true } - log.Infof("Loading image %s", filename) - if _, err = client.ImageLoad(context.Background(), imageReader, false); err != nil { + var imageLoadResponse types.ImageLoadResponse + if imageLoadResponse, err = client.ImageLoad(context.Background(), imageReader, false); err != nil { return err } + cfg := config.LoadConfig() + if cfg.Rancher.PreloadWait { + if _, err := ioutil.ReadAll(imageLoadResponse.Body); err != nil { + return err + } + } + log.Infof("Finished to load image %s", filename) log.Infof("Creating done stamp file for image %s", filename) diff --git a/config/schema.go b/config/schema.go index da3ab128..a147fd4d 100644 --- a/config/schema.go +++ b/config/schema.go @@ -55,7 +55,8 @@ var schema = `{ "sysctl": {"type": "object"}, "restart_services": {"type": "array"}, "hypervisor_service": {"type": "boolean"}, - "shutdown_timeout": {"type": "integer"} + "shutdown_timeout": {"type": "integer"}, + "preload_wait": {"type": "boolean"} } }, diff --git a/config/types.go b/config/types.go index 117e62b2..1b1fc8f6 100755 --- a/config/types.go +++ b/config/types.go @@ -137,6 +137,7 @@ type RancherConfig struct { RestartServices []string `yaml:"restart_services,omitempty"` HypervisorService bool `yaml:"hypervisor_service,omitempty"` ShutdownTimeout int `yaml:"shutdown_timeout,omitempty"` + PreloadWait bool `yaml:"preload_wait,omitempty"` } type UpgradeConfig struct { diff --git a/scripts/schema.json b/scripts/schema.json index 9ca50a2f..4e5e6cc3 100644 --- a/scripts/schema.json +++ b/scripts/schema.json @@ -53,7 +53,8 @@ "sysctl": {"type": "object"}, "restart_services": {"type": "array"}, "hypervisor_service": {"type": "boolean"}, - "shutdown_timeout": {"type": "integer"} + "shutdown_timeout": {"type": "integer"}, + "preload_wait": {"type": "boolean"} } },