code: def edit(self, hardware_id, userdata=None, hostname=None, domain=None,
               notes=None, tags=None):
          
  
          obj = {}
          if userdata:
              self.hardware.setUserMetadata([userdata], id=hardware_id)
  
          if tags is not None:
              self.hardware.setTags(tags, id=hardware_id)
  
          if hostname:
              obj['hostname'] = hostname
  
          if domain:
              obj['domain'] = domain
  
          if notes:
              obj['notes'] = notes
  
          if not obj:
              return True
  
          return self.hardware.editObject(obj, id=hardware_id)
docs: Edit hostname, domain name, notes, user data of the hardware.
  
          Parameters set to None will be ignored and not attempted to be updated.
  
          :param integer hardware_id: the instance ID to edit
          :param string userdata: user data on the hardware to edit.
                                  If none exist it will be created
          :param string hostname: valid hostname
          :param string domain: valid domain name
          :param string notes: notes about this particular hardware
          :param string tags: tags to set on the hardware as a comma separated
                              list. Use the empty string to remove all tags.
  
          Example::
  
              # Change the hostname on instance 12345 to 'something'
              result = mgr.edit(hardware_id=12345 , hostname="something")
              #result will be True or an Exception