func (c *Config) SaveVimClient(client *govmomi.Client) error {
	if !c.Persist {
		return nil
	}

	p, err := c.vimSessionFile()
	if err != nil {
		return err
	}

	log.Printf("[DEBUG] Will persist SOAP client session data to %q", p)
	err = os.MkdirAll(filepath.Dir(p), 0700)
	if err != nil {
		return err
	}

	f, err := os.OpenFile(p, os.O_CREATE|os.O_WRONLY, 0600)
	if err != nil {
		return err
	}

	defer func() {
		if err = f.Close(); err != nil {
			log.Printf("[DEBUG] Error closing SOAP client session file %q: %s", p, err)
		}
	}()

	err = json.NewEncoder(f).Encode(client.Client)
	if err != nil {
		return err
	}

	return nil
}
func (c *Config) SaveVimClient(client *govmomi.Client) error {
	if !c.Persist {
		return nil
	}

	p, err := c.vimSessionFile()
	if err != nil {
		return err
	}

	log.Printf("[DEBUG] Will persist SOAP client session data to %q", p)
	err = os.MkdirAll(filepath.Dir(p), 0700)
	if err != nil {
		return err
	}

	f, err := os.OpenFile(p, os.O_CREATE|os.O_WRONLY, 0600)
	if err != nil {
		return err
	}

	defer func() {
		if err = f.Close(); err != nil {
			log.Printf("[DEBUG] Error closing SOAP client session file %q: %s", p, err)
		}
	}()

	err = json.NewEncoder(f).Encode(client.Client)
	if err != nil {
		return err
	}

	return nil
}
func ( c * Config ) SaveVimClient ( client * govmomi . Client ) error { if ! c . Persist { return nil } p , err := c . vimSessionFile ( ) if err != nil { return err } log . Printf ( " " , p ) err = os . MkdirAll ( filepath . Dir ( p ) , 0700 ) if err != nil { return err } f , err := os . OpenFile ( p , os . O_CREATE | os . O_WRONLY , 0600 ) if err != nil { return err } defer func ( ) { if err = f . Close ( ) ; err != nil { log . Printf ( " " , p , err ) } } ( ) err = json . NewEncoder ( f ) . Encode ( client . Client ) if err != nil { return err } return nil }
// SaveVimClient saves a client to the supplied path. This facilitates re-use of
// the session at a later date.
//
// Note the logic in this function has been largely adapted from govc and is
// designed to be compatible with it.
SaveVimClient saves a client to the supplied path . This facilitates re - use of the session at a later date . Note the logic in this function has been largely adapted from govc and is designed to be compatible with it .