def METHOD_NAME(
    minion_id,
    country="US",
    state="Utah",
    locality="Salt Lake City",
    organization="Salted",
    expiration_days="365",
):
    """
    Generate the keys to be used by libvirt hypervisors, this routine gens
    the keys and applies them to the pillar for the hypervisor minions
    """
    key_dir = os.path.join(__opts__["pki_dir"], "libvirt")
    if not os.path.isdir(key_dir):
        os.makedirs(key_dir)
    cakey = os.path.join(key_dir, "cakey.pem")
    cacert = os.path.join(key_dir, "cacert.pem")
    cainfo = os.path.join(key_dir, "ca.info")
    if not os.path.isfile(cainfo):
        with salt.utils.files.fopen(cainfo, "w+") as fp_:
            fp_.write("cn = salted\nca\ncert_signing_key")
    if not os.path.isfile(cakey):
        proc = subprocess.run(
            ["certtool", "--generate-privkey"],
            stdout=subprocess.PIPE,
            universal_newlines=True,
            check=True,
        )
        with salt.utils.files.fopen(cakey, "w") as wfh:
            wfh.write(proc.stdout)
    if not os.path.isfile(cacert):
        subprocess.call(
            [
                "certtool",
                "--generate-self-signed",
                "--load-privkey",
                cakey,
                "--template",
                cainfo,
                "--outfile",
                cacert,
            ]
        )
    sub_dir = os.path.join(key_dir, minion_id)
    if not os.path.isdir(sub_dir):
        os.makedirs(sub_dir)
    priv = os.path.join(sub_dir, "serverkey.pem")
    cert = os.path.join(sub_dir, "servercert.pem")
    srvinfo = os.path.join(sub_dir, "server.info")
    cpriv = os.path.join(sub_dir, "clientkey.pem")
    ccert = os.path.join(sub_dir, "clientcert.pem")
    clientinfo = os.path.join(sub_dir, "client.info")
    if not os.path.isfile(srvinfo):
        with salt.utils.files.fopen(srvinfo, "w+") as fp_:
            infodat = salt.utils.stringutils.to_str(
                "organization = salted\ncn = {}\ntls_www_server"
                "\nencryption_key\nsigning_key"
                "\ndigitalSignature\nexpiration_days = {}".format(
                    __grains__["fqdn"], expiration_days
                )
            )
            fp_.write(infodat)
    if not os.path.isfile(priv):
        proc = subprocess.run(
            ["certtool", "--generate-privkey"],
            stdout=subprocess.PIPE,
            universal_newlines=True,
            check=True,
        )
        with salt.utils.files.fopen(priv, "w") as wfh:
            wfh.write(proc.stdout)
    if not os.path.isfile(cert):
        subprocess.call(
            [
                "certtool",
                "--generate-certificate",
                "--load-privkey",
                priv,
                "--load-ca-certificate",
                cacert,
                "--load-ca-privkey",
                cakey,
                "--template",
                srvinfo,
                "--outfile",
                cert,
            ]
        )
    if not os.path.isfile(clientinfo):
        with salt.utils.files.fopen(clientinfo, "w+") as fp_:
            infodat = salt.utils.stringutils.to_str(
                "country = {}\nstate = {}\nlocality = {}\n"
                "organization = {}\ncn = {}\n"
                "tls_www_client\nencryption_key\nsigning_key\n"
                "digitalSignature".format(
                    country, state, locality, organization, __grains__["fqdn"]
                )
            )
            fp_.write(infodat)
    if not os.path.isfile(cpriv):
        proc = subprocess.run(
            ["certtool", "--generate-privkey"],
            stdout=subprocess.PIPE,
            universal_newlines=True,
            check=True,
        )
        with salt.utils.files.fopen(cpriv, "w") as wfh:
            wfh.write(proc.stdout)
    if not os.path.isfile(ccert):
        subprocess.call(
            [
                "certtool",
                "--generate-certificate",
                "--load-privkey",
                cpriv,
                "--load-ca-certificate",
                cacert,
                "--load-ca-privkey",
                cakey,
                "--template",
                clientinfo,
                "--outfile",
                ccert,
            ]
        )