docs: def set_hostname(self, userid, hostname, os_version):
          """Punch a script that used to set the hostname of the guest.
  
          :param str guest: the user id of the guest
          :param str hostname: the hostname of the guest
          :param str os_version: version of guest operation system
          """
          tmp_path = self._pathutils.get_guest_temp_path(userid)
          if not os.path.exists(tmp_path):
              os.makedirs(tmp_path)
          tmp_file = tmp_path + '/hostname.sh'
  
          lnxdist = self._dist_manager.get_linux_dist(os_version)()
          lines = lnxdist.generate_set_hostname_script(hostname)
          with open(tmp_file, 'w') as f:
              f.writelines(lines)
  
          requestData = "ChangeVM " + userid + " punchfile " + \
                              tmp_file + " --class x"
          LOG.debug("Punch script to guest %s to set hostname" % userid)
  
          try:
              self._smtclient._request(requestData)
          except exception.SDKSMTRequestFailed as err:
              msg = ("Failed to punch set_hostname script to userid '%s'. SMT "
                     "error: %s" % (userid, err.format_message()))
              LOG.error(msg)
              raise exception.SDKSMTRequestFailed(err.results, msg)
          finally:
              self._pathutils.clean_temp_folder(tmp_path)