mirror of https://github.com/docker/docs.git
				
				
				
			Add extra logging to VirtualBox driver
Signed-off-by: Nathan LeClaire <nathan.leclaire@gmail.com>
This commit is contained in:
		
							parent
							
								
									352d28220c
								
							
						
					
					
						commit
						54bda622d3
					
				| 
						 | 
				
			
			@ -661,6 +661,9 @@ func (d *Driver) generateDiskImage(size int) error {
 | 
			
		|||
 | 
			
		||||
	// magicString first so the automount script knows to format the disk
 | 
			
		||||
	file := &tar.Header{Name: magicString, Size: int64(len(magicString))}
 | 
			
		||||
 | 
			
		||||
	log.Debug("Writing magic tar header")
 | 
			
		||||
 | 
			
		||||
	if err := tw.WriteHeader(file); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
| 
						 | 
				
			
			@ -672,6 +675,9 @@ func (d *Driver) generateDiskImage(size int) error {
 | 
			
		|||
	if err := tw.WriteHeader(file); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Debug("Writing SSH key tar header")
 | 
			
		||||
 | 
			
		||||
	pubKey, err := ioutil.ReadFile(d.publicSSHKeyPath())
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
| 
						 | 
				
			
			@ -694,6 +700,9 @@ func (d *Driver) generateDiskImage(size int) error {
 | 
			
		|||
		return err
 | 
			
		||||
	}
 | 
			
		||||
	raw := bytes.NewReader(buf.Bytes())
 | 
			
		||||
 | 
			
		||||
	log.Debug("Calling inner createDiskImage")
 | 
			
		||||
 | 
			
		||||
	return createDiskImage(d.diskPath(), size, raw)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -765,6 +774,8 @@ func createDiskImage(dest string, size int, r io.Reader) error {
 | 
			
		|||
	cmd := exec.Command(vboxManageCmd, "convertfromraw", "stdin", dest,
 | 
			
		||||
		fmt.Sprintf("%d", sizeBytes), "--format", "VMDK")
 | 
			
		||||
 | 
			
		||||
	log.Debug(cmd)
 | 
			
		||||
 | 
			
		||||
	if os.Getenv("MACHINE_DEBUG") != "" {
 | 
			
		||||
		cmd.Stdout = os.Stdout
 | 
			
		||||
		cmd.Stderr = os.Stderr
 | 
			
		||||
| 
						 | 
				
			
			@ -774,15 +785,22 @@ func createDiskImage(dest string, size int, r io.Reader) error {
 | 
			
		|||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Debug("Starting command")
 | 
			
		||||
 | 
			
		||||
	if err := cmd.Start(); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Debug("Copying to stdin")
 | 
			
		||||
 | 
			
		||||
	n, err := io.Copy(stdin, r)
 | 
			
		||||
	if err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Debug("Filling zeroes")
 | 
			
		||||
 | 
			
		||||
	// The total number of bytes written to stdin must match sizeBytes, or
 | 
			
		||||
	// VBoxManage.exe on Windows will fail. Fill remaining with zeros.
 | 
			
		||||
	if left := sizeBytes - n; left > 0 {
 | 
			
		||||
| 
						 | 
				
			
			@ -791,11 +809,15 @@ func createDiskImage(dest string, size int, r io.Reader) error {
 | 
			
		|||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Debug("Closing STDIN")
 | 
			
		||||
 | 
			
		||||
	// cmd won't exit until the stdin is closed.
 | 
			
		||||
	if err := stdin.Close(); err != nil {
 | 
			
		||||
		return err
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	log.Debug("Waiting on cmd")
 | 
			
		||||
 | 
			
		||||
	return cmd.Wait()
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue