docs: def vm_registered(vm_name, datacenter, placement, vm_file, power_on=False):
      '''
      Registers a virtual machine if the machine files are available on
      the main datastore.
      '''
      result = {'name': vm_name,
                'result': None,
                'changes': {},
                'comment': ''}
  
      vmx_path = '{0}{1}'.format(vm_file.folderPath, vm_file.file[0].path)
      log.trace('Registering virtual machine with vmx file: %s', vmx_path)
      service_instance = __salt__['vsphere.get_service_instance_via_proxy']()
      try:
          __salt__['vsphere.register_vm'](vm_name, datacenter,
                                          placement, vmx_path,
                                          service_instance=service_instance)
      except salt.exceptions.VMwareMultipleObjectsError as exc:
          log.error('Error: %s', exc)
          if service_instance:
              __salt__['vsphere.disconnect'](service_instance)
          result.update({'result': False,
                         'comment': six.text_type(exc)})
          return result
      except salt.exceptions.VMwareVmRegisterError as exc:
          log.error('Error: %s', exc)
          if service_instance:
              __salt__['vsphere.disconnect'](service_instance)
          result.update({'result': False,
                         'comment': six.text_type(exc)})
          return result
  
      if power_on:
          try:
              __salt__['vsphere.power_on_vm'](vm_name, datacenter,
                                              service_instance=service_instance)
          except salt.exceptions.VMwarePowerOnError as exc:
              log.error('Error: %s', exc)
              if service_instance:
                  __salt__['vsphere.disconnect'](service_instance)
              result.update({
                  'result': False,
                  'comment': six.text_type(exc)})
              return result
      __salt__['vsphere.disconnect'](service_instance)
      result.update({'result': True,
                     'changes': {'name': vm_name, 'power_on': power_on},
                     'comment': 'Virtual machine '
                                '{0} registered successfully'.format(vm_name)})
  
      return result