mirror of
https://github.com/moby/moby.git
synced 2022-11-09 12:21:53 -05:00
Cleanup daemon.LoadBusybox() to use the API instead of client
Signed-off-by: Daniel Nephin <dnephin@docker.com>
This commit is contained in:
parent
381a1c0a5a
commit
98a4613017
3 changed files with 26 additions and 30 deletions
|
@ -33,6 +33,7 @@ import (
|
|||
)
|
||||
|
||||
type testingT interface {
|
||||
require.TestingT
|
||||
logT
|
||||
Fatalf(string, ...interface{})
|
||||
}
|
||||
|
@ -329,9 +330,7 @@ func (d *Daemon) StartWithLogFile(out *os.File, providedArgs ...string) error {
|
|||
// then save the busybox image from the main daemon and load it into this Daemon instance.
|
||||
func (d *Daemon) StartWithBusybox(t testingT, arg ...string) {
|
||||
d.Start(t, arg...)
|
||||
if err := d.LoadBusybox(); err != nil {
|
||||
t.Fatalf("Error loading busybox image to current daemon: %s\n%v", d.id, err)
|
||||
}
|
||||
d.LoadBusybox(t)
|
||||
}
|
||||
|
||||
// Kill will send a SIGKILL to the daemon
|
||||
|
@ -493,27 +492,24 @@ func (d *Daemon) handleUserns() {
|
|||
}
|
||||
}
|
||||
|
||||
// LoadBusybox will load the stored busybox into a newly started daemon
|
||||
func (d *Daemon) LoadBusybox() error {
|
||||
bb := filepath.Join(d.Folder, "busybox.tar")
|
||||
if _, err := os.Stat(bb); err != nil {
|
||||
if !os.IsNotExist(err) {
|
||||
return errors.Errorf("unexpected error on busybox.tar stat: %v", err)
|
||||
}
|
||||
// saving busybox image from main daemon
|
||||
if out, err := exec.Command(d.dockerBinary, "save", "--output", bb, "busybox:latest").CombinedOutput(); err != nil {
|
||||
imagesOut, _ := exec.Command(d.dockerBinary, "images", "--format", "{{ .Repository }}:{{ .Tag }}").CombinedOutput()
|
||||
return errors.Errorf("could not save busybox image: %s\n%s", string(out), strings.TrimSpace(string(imagesOut)))
|
||||
}
|
||||
}
|
||||
// loading busybox image to this daemon
|
||||
if out, err := d.Cmd("load", "--input", bb); err != nil {
|
||||
return errors.Errorf("could not load busybox image: %s", out)
|
||||
}
|
||||
if err := os.Remove(bb); err != nil {
|
||||
return err
|
||||
}
|
||||
return nil
|
||||
// LoadBusybox image into the daemon
|
||||
func (d *Daemon) LoadBusybox(t testingT) {
|
||||
clientHost, err := client.NewEnvClient()
|
||||
require.NoError(t, err, "failed to create client")
|
||||
defer clientHost.Close()
|
||||
|
||||
ctx := context.Background()
|
||||
reader, err := clientHost.ImageSave(ctx, []string{"busybox:latest"})
|
||||
require.NoError(t, err, "failed to download busybox")
|
||||
defer reader.Close()
|
||||
|
||||
client, err := d.NewClient()
|
||||
require.NoError(t, err, "failed to create client")
|
||||
defer client.Close()
|
||||
|
||||
resp, err := client.ImageLoad(ctx, reader, true)
|
||||
require.NoError(t, err, "failed to load busybox")
|
||||
defer resp.Body.Close()
|
||||
}
|
||||
|
||||
func (d *Daemon) queryRootDir() (string, error) {
|
||||
|
|
|
@ -53,7 +53,7 @@ func (s *DockerAuthzV2Suite) TestAuthZPluginAllowNonVolumeRequest(c *check.C) {
|
|||
// start the daemon with the plugin and load busybox, --net=none build fails otherwise
|
||||
// because it needs to pull busybox
|
||||
s.d.Restart(c, "--authorization-plugin="+authzPluginNameWithTag)
|
||||
c.Assert(s.d.LoadBusybox(), check.IsNil)
|
||||
s.d.LoadBusybox(c)
|
||||
|
||||
// defer disabling the plugin
|
||||
defer func() {
|
||||
|
@ -83,7 +83,7 @@ func (s *DockerAuthzV2Suite) TestAuthZPluginDisable(c *check.C) {
|
|||
// start the daemon with the plugin and load busybox, --net=none build fails otherwise
|
||||
// because it needs to pull busybox
|
||||
s.d.Restart(c, "--authorization-plugin="+authzPluginNameWithTag)
|
||||
c.Assert(s.d.LoadBusybox(), check.IsNil)
|
||||
s.d.LoadBusybox(c)
|
||||
|
||||
// defer removing the plugin
|
||||
defer func() {
|
||||
|
|
|
@ -209,7 +209,7 @@ func (s *DockerAuthzSuite) TestAuthZPluginAllowRequest(c *check.C) {
|
|||
s.d.Start(c, "--authorization-plugin="+testAuthZPlugin)
|
||||
s.ctrl.reqRes.Allow = true
|
||||
s.ctrl.resRes.Allow = true
|
||||
c.Assert(s.d.LoadBusybox(), check.IsNil)
|
||||
s.d.LoadBusybox(c)
|
||||
|
||||
// Ensure command successful
|
||||
out, err := s.d.Cmd("run", "-d", "busybox", "top")
|
||||
|
@ -322,7 +322,7 @@ func (s *DockerAuthzSuite) TestAuthZPluginAllowEventStream(c *check.C) {
|
|||
s.d.Start(c, "--authorization-plugin="+testAuthZPlugin)
|
||||
s.ctrl.reqRes.Allow = true
|
||||
s.ctrl.resRes.Allow = true
|
||||
c.Assert(s.d.LoadBusybox(), check.IsNil)
|
||||
s.d.LoadBusybox(c)
|
||||
|
||||
startTime := strconv.FormatInt(daemonTime(c).Unix(), 10)
|
||||
// Add another command to to enable event pipelining
|
||||
|
@ -418,7 +418,7 @@ func (s *DockerAuthzSuite) TestAuthZPluginEnsureLoadImportWorking(c *check.C) {
|
|||
s.d.Start(c, "--authorization-plugin="+testAuthZPlugin, "--authorization-plugin="+testAuthZPlugin)
|
||||
s.ctrl.reqRes.Allow = true
|
||||
s.ctrl.resRes.Allow = true
|
||||
c.Assert(s.d.LoadBusybox(), check.IsNil)
|
||||
s.d.LoadBusybox(c)
|
||||
|
||||
tmp, err := ioutil.TempDir("", "test-authz-load-import")
|
||||
c.Assert(err, check.IsNil)
|
||||
|
@ -445,7 +445,7 @@ func (s *DockerAuthzSuite) TestAuthZPluginHeader(c *check.C) {
|
|||
s.d.Start(c, "--debug", "--authorization-plugin="+testAuthZPlugin)
|
||||
s.ctrl.reqRes.Allow = true
|
||||
s.ctrl.resRes.Allow = true
|
||||
c.Assert(s.d.LoadBusybox(), check.IsNil)
|
||||
s.d.LoadBusybox(c)
|
||||
|
||||
daemonURL, err := url.Parse(s.d.Sock())
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue