docs: def guest_authorize_iucv_client(self, userid, client=None):
          """Punch a script that used to set the authorized client userid in vm
          If the guest is in log off status, the change will take effect when
          the guest start up at first time.
          If the guest is in active status, power off and power on are needed
          for the change to take effect.
  
          :param str guest: the user id of the vm
          :param str client: the user id of the client that can communicate to
                 guest using IUCV"""
  
          client = client or zvmutils.get_smt_userid()
  
          iucv_path = "/tmp/" + userid
          if not os.path.exists(iucv_path):
              os.makedirs(iucv_path)
          iucv_auth_file = iucv_path + "/iucvauth.sh"
          zvmutils.generate_iucv_authfile(iucv_auth_file, client)
  
          try:
              requestData = "ChangeVM " + userid + " punchfile " + \
                  iucv_auth_file + " --class x"
              self._request(requestData)
          except exception.SDKSMTRequestFailed as err:
              msg = ("Failed to punch IUCV auth file 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(iucv_path)