code: func newControllerNode(cfg VSphereConfig) (*VSphere, error) {
  	vs, err := buildVSphereFromConfig(cfg)
  	if err != nil {
  		return nil, err
  	}
  	vs.hostName, err = os.Hostname()
  	if err != nil {
  		klog.Errorf("Failed to get hostname. err: %+v", err)
  		return nil, err
  	}
  	if cfg.Global.VMUUID != "" {
  		vs.vmUUID = cfg.Global.VMUUID
  	} else {
  		vs.vmUUID, err = getVMUUID()
  		if err != nil {
  			klog.Errorf("Failed to get uuid. err: %+v", err)
  			return nil, err
  		}
  	}
  	runtime.SetFinalizer(vs, logout)
  	return vs, nil
  }
docs: // Creates new Controller node interface and returns