summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Watkins <oddbloke@ubuntu.com>2019-12-18 16:22:02 -0500
committerGitHub <noreply@github.com>2019-12-18 16:22:02 -0500
commit8116493950e7c47af0ce66fc1bb5d799ce5e477a (patch)
tree7ab8d13664dbe9190e9ddd535bcd97d17c0442d9
parentd6fed57d82ac1dfa40dcdf166b0986f1c4321163 (diff)
downloadvyos-cloud-init-8116493950e7c47af0ce66fc1bb5d799ce5e477a.tar.gz
vyos-cloud-init-8116493950e7c47af0ce66fc1bb5d799ce5e477a.zip
cloud-init: fix capitalisation of SSH (#126)
* cc_ssh: fix capitalisation of SSH * doc: fix capitalisation of SSH * cc_keys_to_console: fix capitalisation of SSH * ssh_util: fix capitalisation of SSH * DataSourceIBMCloud: fix capitalisation of SSH * DataSourceAzure: fix capitalisation of SSH * cs_utils: fix capitalisation of SSH * distros/__init__: fix capitalisation of SSH * cc_set_passwords: fix capitalisation of SSH * cc_ssh_import_id: fix capitalisation of SSH * cc_users_groups: fix capitalisation of SSH * cc_ssh_authkey_fingerprints: fix capitalisation of SSH
-rw-r--r--cloudinit/config/cc_keys_to_console.py6
-rwxr-xr-xcloudinit/config/cc_set_passwords.py6
-rwxr-xr-xcloudinit/config/cc_ssh.py12
-rwxr-xr-xcloudinit/config/cc_ssh_authkey_fingerprints.py6
-rwxr-xr-xcloudinit/config/cc_ssh_import_id.py8
-rw-r--r--cloudinit/config/cc_users_groups.py6
-rw-r--r--cloudinit/config/tests/test_set_passwords.py4
-rw-r--r--cloudinit/cs_utils.py2
-rwxr-xr-xcloudinit/distros/__init__.py4
-rwxr-xr-xcloudinit/sources/DataSourceAzure.py6
-rw-r--r--cloudinit/sources/DataSourceIBMCloud.py2
-rw-r--r--cloudinit/ssh_util.py8
-rw-r--r--doc/examples/cloud-config-ssh-keys.txt4
-rw-r--r--doc/rtd/topics/datasources.rst2
-rw-r--r--doc/rtd/topics/datasources/cloudstack.rst2
-rw-r--r--doc/rtd/topics/examples.rst2
-rw-r--r--doc/rtd/topics/format.rst2
-rw-r--r--doc/rtd/topics/instancedata.rst2
-rw-r--r--tests/unittests/test_distros/test_create_users.py2
19 files changed, 42 insertions, 44 deletions
diff --git a/cloudinit/config/cc_keys_to_console.py b/cloudinit/config/cc_keys_to_console.py
index 8f8735ce..3d2ded3d 100644
--- a/cloudinit/config/cc_keys_to_console.py
+++ b/cloudinit/config/cc_keys_to_console.py
@@ -9,10 +9,10 @@
"""
Keys to Console
---------------
-**Summary:** control which ssh keys may be written to console
+**Summary:** control which SSH keys may be written to console
-For security reasons it may be desirable not to write ssh fingerprints and keys
-to the console. To avoid the fingerprint of types of ssh keys being written to
+For security reasons it may be desirable not to write SSH fingerprints and keys
+to the console. To avoid the fingerprint of types of SSH keys being written to
console the ``ssh_fp_console_blacklist`` config key can be used. By default all
types of keys will have their fingerprints written to console. To avoid keys
of a key type being written to console the ``ssh_key_console_blacklist`` config
diff --git a/cloudinit/config/cc_set_passwords.py b/cloudinit/config/cc_set_passwords.py
index c3c5b0ff..e3b39d8b 100755
--- a/cloudinit/config/cc_set_passwords.py
+++ b/cloudinit/config/cc_set_passwords.py
@@ -112,7 +112,7 @@ def handle_ssh_pwauth(pw_auth, service_cmd=None, service_name="ssh"):
elif util.is_false(pw_auth):
cfg_val = 'no'
else:
- bmsg = "Leaving ssh config '%s' unchanged." % cfg_name
+ bmsg = "Leaving SSH config '%s' unchanged." % cfg_name
if pw_auth is None or pw_auth.lower() == 'unchanged':
LOG.debug("%s ssh_pwauth=%s", bmsg, pw_auth)
else:
@@ -121,7 +121,7 @@ def handle_ssh_pwauth(pw_auth, service_cmd=None, service_name="ssh"):
updated = update_ssh_config({cfg_name: cfg_val})
if not updated:
- LOG.debug("No need to restart ssh service, %s not updated.", cfg_name)
+ LOG.debug("No need to restart SSH service, %s not updated.", cfg_name)
return
if 'systemctl' in service_cmd:
@@ -129,7 +129,7 @@ def handle_ssh_pwauth(pw_auth, service_cmd=None, service_name="ssh"):
else:
cmd = list(service_cmd) + [service_name, "restart"]
util.subp(cmd)
- LOG.debug("Restarted the ssh daemon.")
+ LOG.debug("Restarted the SSH daemon.")
def handle(_name, cfg, cloud, log, args):
diff --git a/cloudinit/config/cc_ssh.py b/cloudinit/config/cc_ssh.py
index bb26fb2b..163cce99 100755
--- a/cloudinit/config/cc_ssh.py
+++ b/cloudinit/config/cc_ssh.py
@@ -9,9 +9,9 @@
"""
SSH
---
-**Summary:** configure ssh and ssh keys (host and authorized)
+**Summary:** configure SSH and SSH keys (host and authorized)
-This module handles most configuration for ssh and both host and authorized ssh
+This module handles most configuration for SSH and both host and authorized SSH
keys.
Authorized Keys
@@ -24,7 +24,7 @@ account's home directory. Authorized keys for the default user defined in
should be specified as a list of public keys.
.. note::
- see the ``cc_set_passwords`` module documentation to enable/disable ssh
+ see the ``cc_set_passwords`` module documentation to enable/disable SSH
password authentication
Root login can be enabled/disabled using the ``disable_root`` config key. Root
@@ -39,7 +39,7 @@ Host Keys
^^^^^^^^^
Host keys are for authenticating a specific instance. Many images have default
-host ssh keys, which can be removed using ``ssh_deletekeys``. This prevents
+host SSH keys, which can be removed using ``ssh_deletekeys``. This prevents
re-use of a private host key from an image on multiple machines. Since
removing default host keys is usually the desired behavior this option is
enabled by default.
@@ -225,7 +225,7 @@ def handle(_name, cfg, cloud, log, _args):
if util.get_cfg_option_bool(cfg, 'allow_public_ssh_keys', True):
keys = cloud.get_public_ssh_keys() or []
else:
- log.debug('Skipping import of publish ssh keys per '
+ log.debug('Skipping import of publish SSH keys per '
'config setting: allow_public_ssh_keys=False')
if "ssh_authorized_keys" in cfg:
@@ -234,7 +234,7 @@ def handle(_name, cfg, cloud, log, _args):
apply_credentials(keys, user, disable_root, disable_root_opts)
except Exception:
- util.logexc(log, "Applying ssh credentials failed!")
+ util.logexc(log, "Applying SSH credentials failed!")
def apply_credentials(keys, user, disable_root, disable_root_opts):
diff --git a/cloudinit/config/cc_ssh_authkey_fingerprints.py b/cloudinit/config/cc_ssh_authkey_fingerprints.py
index 98b0e665..dcf86fdc 100755
--- a/cloudinit/config/cc_ssh_authkey_fingerprints.py
+++ b/cloudinit/config/cc_ssh_authkey_fingerprints.py
@@ -7,7 +7,7 @@
"""
SSH Authkey Fingerprints
------------------------
-**Summary:** log fingerprints of user ssh keys
+**Summary:** log fingerprints of user SSH keys
Write fingerprints of authorized keys for each user to log. This is enabled by
default, but can be disabled using ``no_ssh_fingerprints``. The hash type for
@@ -68,7 +68,7 @@ def _is_printable_key(entry):
def _pprint_key_entries(user, key_fn, key_entries, hash_meth='md5',
prefix='ci-info: '):
if not key_entries:
- message = ("%sno authorized ssh keys fingerprints found for user %s.\n"
+ message = ("%sno authorized SSH keys fingerprints found for user %s.\n"
% (prefix, user))
util.multi_log(message)
return
@@ -98,7 +98,7 @@ def _pprint_key_entries(user, key_fn, key_entries, hash_meth='md5',
def handle(name, cfg, cloud, log, _args):
if util.is_true(cfg.get('no_ssh_fingerprints', False)):
log.debug(("Skipping module named %s, "
- "logging of ssh fingerprints disabled"), name)
+ "logging of SSH fingerprints disabled"), name)
return
hash_meth = util.get_cfg_option_str(cfg, "authkey_hash", "md5")
diff --git a/cloudinit/config/cc_ssh_import_id.py b/cloudinit/config/cc_ssh_import_id.py
index 6b46dafe..63f87298 100755
--- a/cloudinit/config/cc_ssh_import_id.py
+++ b/cloudinit/config/cc_ssh_import_id.py
@@ -9,9 +9,9 @@
"""
SSH Import Id
-------------
-**Summary:** import ssh id
+**Summary:** import SSH id
-This module imports ssh keys from either a public keyserver, usually launchpad
+This module imports SSH keys from either a public keyserver, usually launchpad
or github using ``ssh-import-id``. Keys are referenced by the username they are
associated with on the keyserver. The keyserver can be specified by prepending
either ``lp:`` for launchpad or ``gh:`` for github to the username.
@@ -98,12 +98,12 @@ def import_ssh_ids(ids, user, log):
raise exc
cmd = ["sudo", "-Hu", user, "ssh-import-id"] + ids
- log.debug("Importing ssh ids for user %s.", user)
+ log.debug("Importing SSH ids for user %s.", user)
try:
util.subp(cmd, capture=False)
except util.ProcessExecutionError as exc:
- util.logexc(log, "Failed to run command to import %s ssh ids", user)
+ util.logexc(log, "Failed to run command to import %s SSH ids", user)
raise exc
# vi: ts=4 expandtab
diff --git a/cloudinit/config/cc_users_groups.py b/cloudinit/config/cc_users_groups.py
index c32a743a..13764e60 100644
--- a/cloudinit/config/cc_users_groups.py
+++ b/cloudinit/config/cc_users_groups.py
@@ -51,14 +51,14 @@ config keys for an entry in ``users`` are as follows:
a Snappy user through ``snap create-user``. If an Ubuntu SSO account is
associated with the address, username and SSH keys will be requested from
there. Default: none
- - ``ssh_authorized_keys``: Optional. List of ssh keys to add to user's
+ - ``ssh_authorized_keys``: Optional. List of SSH keys to add to user's
authkeys file. Default: none. This key can not be combined with
``ssh_redirect_user``.
- ``ssh_import_id``: Optional. SSH id to import for user. Default: none.
This key can not be combined with ``ssh_redirect_user``.
- ``ssh_redirect_user``: Optional. Boolean set to true to disable SSH
- logins for this user. When specified, all cloud meta-data public ssh
- keys will be set up in a disabled state for this username. Any ssh login
+ logins for this user. When specified, all cloud meta-data public SSH
+ keys will be set up in a disabled state for this username. Any SSH login
as this username will timeout and prompt with a message to login instead
as the configured <default_username> for this instance. Default: false.
This key can not be combined with ``ssh_import_id`` or
diff --git a/cloudinit/config/tests/test_set_passwords.py b/cloudinit/config/tests/test_set_passwords.py
index 639fb9ea..85e2f1fe 100644
--- a/cloudinit/config/tests/test_set_passwords.py
+++ b/cloudinit/config/tests/test_set_passwords.py
@@ -45,7 +45,7 @@ class TestHandleSshPwauth(CiTestCase):
"""If config is not updated, then no system restart should be done."""
setpass.handle_ssh_pwauth(True)
m_subp.assert_not_called()
- self.assertIn("No need to restart ssh", self.logs.getvalue())
+ self.assertIn("No need to restart SSH", self.logs.getvalue())
@mock.patch(MODPATH + "update_ssh_config", return_value=True)
@mock.patch(MODPATH + "util.subp")
@@ -80,7 +80,7 @@ class TestSetPasswordsHandle(CiTestCase):
setpass.handle(
'IGNORED', cfg={}, cloud=cloud, log=self.logger, args=[])
self.assertEqual(
- "DEBUG: Leaving ssh config 'PasswordAuthentication' unchanged. "
+ "DEBUG: Leaving SSH config 'PasswordAuthentication' unchanged. "
'ssh_pwauth=None\n',
self.logs.getvalue())
diff --git a/cloudinit/cs_utils.py b/cloudinit/cs_utils.py
index 51c09582..8bac9c44 100644
--- a/cloudinit/cs_utils.py
+++ b/cloudinit/cs_utils.py
@@ -14,7 +14,7 @@ Having the server definition accessible by the VM can ve useful in various
ways. For example it is possible to easily determine from within the VM,
which network interfaces are connected to public and which to private network.
Another use is to pass some data to initial VM setup scripts, like setting the
-hostname to the VM name or passing ssh public keys through server meta.
+hostname to the VM name or passing SSH public keys through server meta.
For more information take a look at the Server Context section of CloudSigma
API Docs: http://cloudsigma-docs.readthedocs.org/en/latest/server_context.html
diff --git a/cloudinit/distros/__init__.py b/cloudinit/distros/__init__.py
index 2b559fe6..6d69e6ca 100755
--- a/cloudinit/distros/__init__.py
+++ b/cloudinit/distros/__init__.py
@@ -385,7 +385,7 @@ class Distro(object):
Add a user to the system using standard GNU tools
"""
# XXX need to make add_user idempotent somehow as we
- # still want to add groups or modify ssh keys on pre-existing
+ # still want to add groups or modify SSH keys on pre-existing
# users in the image.
if util.is_user(name):
LOG.info("User %s already exists, skipping.", name)
@@ -561,7 +561,7 @@ class Distro(object):
cloud_keys = kwargs.get('cloud_public_ssh_keys', [])
if not cloud_keys:
LOG.warning(
- 'Unable to disable ssh logins for %s given'
+ 'Unable to disable SSH logins for %s given'
' ssh_redirect_user: %s. No cloud public-keys present.',
name, kwargs['ssh_redirect_user'])
else:
diff --git a/cloudinit/sources/DataSourceAzure.py b/cloudinit/sources/DataSourceAzure.py
index 24f448c5..61ec522a 100755
--- a/cloudinit/sources/DataSourceAzure.py
+++ b/cloudinit/sources/DataSourceAzure.py
@@ -355,16 +355,16 @@ class DataSourceAzure(sources.DataSource):
for pk in self.cfg.get('_pubkeys', []):
if pk.get('value', None):
key_value = pk['value']
- LOG.debug("ssh authentication: using value from fabric")
+ LOG.debug("SSH authentication: using value from fabric")
else:
bname = str(pk['fingerprint'] + ".crt")
fp_files += [os.path.join(ddir, bname)]
- LOG.debug("ssh authentication: "
+ LOG.debug("SSH authentication: "
"using fingerprint from fabric")
with events.ReportEventStack(
name="waiting-for-ssh-public-key",
- description="wait for agents to retrieve ssh keys",
+ description="wait for agents to retrieve SSH keys",
parent=azure_ds_reporter):
# wait very long for public SSH keys to arrive
# https://bugs.launchpad.net/cloud-init/+bug/1717611
diff --git a/cloudinit/sources/DataSourceIBMCloud.py b/cloudinit/sources/DataSourceIBMCloud.py
index 21e6ae6b..e0c714e8 100644
--- a/cloudinit/sources/DataSourceIBMCloud.py
+++ b/cloudinit/sources/DataSourceIBMCloud.py
@@ -83,7 +83,7 @@ creates 6 boot scenarios.
There is no information available to identify this scenario.
- The user will be able to ssh in as as root with their public keys that
+ The user will be able to SSH in as as root with their public keys that
have been installed into /root/ssh/.authorized_keys
during the provisioning stage.
diff --git a/cloudinit/ssh_util.py b/cloudinit/ssh_util.py
index bcb23a5a..c3a9b5b7 100644
--- a/cloudinit/ssh_util.py
+++ b/cloudinit/ssh_util.py
@@ -17,7 +17,7 @@ LOG = logging.getLogger(__name__)
# See: man sshd_config
DEF_SSHD_CFG = "/etc/ssh/sshd_config"
-# taken from openssh source openssh-7.3p1/sshkey.c:
+# taken from OpenSSH source openssh-7.3p1/sshkey.c:
# static const struct keytype keytypes[] = { ... }
VALID_KEY_TYPES = (
"dsa",
@@ -207,7 +207,7 @@ def update_authorized_keys(old_entries, keys):
def users_ssh_info(username):
pw_ent = pwd.getpwnam(username)
if not pw_ent or not pw_ent.pw_dir:
- raise RuntimeError("Unable to get ssh info for user %r" % (username))
+ raise RuntimeError("Unable to get SSH info for user %r" % (username))
return (os.path.join(pw_ent.pw_dir, '.ssh'), pw_ent)
@@ -245,7 +245,7 @@ def extract_authorized_keys(username, sshd_cfg_file=DEF_SSHD_CFG):
except (IOError, OSError):
# Give up and use a default key filename
auth_key_fns[0] = default_authorizedkeys_file
- util.logexc(LOG, "Failed extracting 'AuthorizedKeysFile' in ssh "
+ util.logexc(LOG, "Failed extracting 'AuthorizedKeysFile' in SSH "
"config from %r, using 'AuthorizedKeysFile' file "
"%r instead", DEF_SSHD_CFG, auth_key_fns[0])
@@ -349,7 +349,7 @@ def update_ssh_config(updates, fname=DEF_SSHD_CFG):
def update_ssh_config_lines(lines, updates):
- """Update the ssh config lines per updates.
+ """Update the SSH config lines per updates.
@param lines: array of SshdConfigLine. This array is updated in place.
@param updates: dictionary of desired values {Option: value}
diff --git a/doc/examples/cloud-config-ssh-keys.txt b/doc/examples/cloud-config-ssh-keys.txt
index 235a114f..aad8b683 100644
--- a/doc/examples/cloud-config-ssh-keys.txt
+++ b/doc/examples/cloud-config-ssh-keys.txt
@@ -6,7 +6,7 @@ ssh_authorized_keys:
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAGEA3FSyQwBI6Z+nCSjUUk8EEAnnkhXlukKoUPND/RRClWz2s5TCzIkd3Ou5+Cyz71X0XmazM3l5WgeErvtIwQMyT1KjNoMhoJMrJnWqQPOt5Q8zWd9qG7PBl9+eiH5qV7NZ mykey@host
- ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEA3I7VUf2l5gSn5uavROsc5HRDpZdQueUq5ozemNSj8T7enqKHOEaFoU2VoPgGEWC9RyzSQVeyD6s7APMcE82EtmW4skVEgEGSbDc1pvxzxtchBj78hJP6Cf5TCMFSXw+Fz5rF1dR23QDbN1mkHs7adr8GW4kSWqU7Q7NDwfIrJJtO7Hi42GyXtvEONHbiRPOe8stqUly7MvUoN+5kfjBM8Qqpfl2+FNhTYWpMfYdPUnE7u536WqzFmsaqJctz3gBxH9Ex7dFtrxR4qiqEr9Qtlu3xGn7Bw07/+i1D+ey3ONkZLN+LQ714cgj8fRS4Hj29SCmXp5Kt5/82cD/VN3NtHw== smoser@brickies
-# Send pre-generated ssh private keys to the server
+# Send pre-generated SSH private keys to the server
# If these are present, they will be written to /etc/ssh and
# new random keys will not be generated
# in addition to 'rsa' and 'dsa' as shown below, 'ecdsa' is also supported
@@ -42,5 +42,3 @@ ssh_keys:
-----END DSA PRIVATE KEY-----
dsa_public: ssh-dss AAAAB3NzaC1kc3MAAACBAM/Ycu7ulMTEvz1RLIzTbrhELJZf8Iwua6TFfQl1ubb1rHwUElOkus7xMhdVjms8AmbV1Meem7ImE69T0bszy09QAG3NImHgZVIeXBoJ/JzByku/1NcOBYilKP7oSIcLJpGUHX8IGn1GJoH7XRBwVub6Vqm4RP78C7q9IOn0hG2VAAAAFQCDEfCrnL1GGzhCPsr/uS1vbt8/wQAAAIEAjSrok/4m8mbBkVp4IwxXFdRuqJKSj8/WWxos00Ednn/ww5QibysHYULrOKJ1+54mmpMyp5CZICUQELCfCt5ScZ9GsqgmnI80Q1h3Xkwbo3kn7PzWwRwcV6muvJn4PcZ71WM+rdN/c2EorAINDTbjRo97NueM94WbiYdtjHFxn0YAAACAXmLIFSQgiAPu459rCKxT46tHJtM0QfnNiEnQLbFluefZ/yiI4DI38UzTCOXLhUA7ybmZha+D/csj15Y9/BNFuO7unzVhikCQV9DTeXX46pG4s1o23JKC/QaYWNMZ7kTRv+wWow9MhGiVdML4ZN4XnifuO5krqAybngIy66PMEoQ= smoser@localhost
-
-
diff --git a/doc/rtd/topics/datasources.rst b/doc/rtd/topics/datasources.rst
index 0b3a385e..3d026143 100644
--- a/doc/rtd/topics/datasources.rst
+++ b/doc/rtd/topics/datasources.rst
@@ -140,7 +140,7 @@ The current interface that a datasource object must provide is the following:
# because cloud-config content would be handled elsewhere
def get_config_obj(self)
- #returns a list of public ssh keys
+ # returns a list of public SSH keys
def get_public_ssh_keys(self)
# translates a device 'short' name into the actual physical device
diff --git a/doc/rtd/topics/datasources/cloudstack.rst b/doc/rtd/topics/datasources/cloudstack.rst
index 95b95874..da183226 100644
--- a/doc/rtd/topics/datasources/cloudstack.rst
+++ b/doc/rtd/topics/datasources/cloudstack.rst
@@ -4,7 +4,7 @@ CloudStack
==========
`Apache CloudStack`_ expose user-data, meta-data, user password and account
-sshkey thru the Virtual-Router. The datasource obtains the VR address via
+SSH key thru the Virtual-Router. The datasource obtains the VR address via
dhcp lease information given to the instance.
For more details on meta-data and user-data,
refer the `CloudStack Administrator Guide`_.
diff --git a/doc/rtd/topics/examples.rst b/doc/rtd/topics/examples.rst
index 94e6ed18..81860f85 100644
--- a/doc/rtd/topics/examples.rst
+++ b/doc/rtd/topics/examples.rst
@@ -128,7 +128,7 @@ Reboot/poweroff when finished
:language: yaml
:linenos:
-Configure instances ssh-keys
+Configure instances SSH keys
============================
.. literalinclude:: ../../examples/cloud-config-ssh-keys.txt
diff --git a/doc/rtd/topics/format.rst b/doc/rtd/topics/format.rst
index a6e9b44e..2b60bdd3 100644
--- a/doc/rtd/topics/format.rst
+++ b/doc/rtd/topics/format.rst
@@ -113,7 +113,7 @@ These things include:
- apt upgrade should be run on first boot
- a different apt mirror should be used
- additional apt sources should be added
-- certain ssh keys should be imported
+- certain SSH keys should be imported
- *and many more...*
.. note::
diff --git a/doc/rtd/topics/instancedata.rst b/doc/rtd/topics/instancedata.rst
index c17d0a0e..e7dd0d62 100644
--- a/doc/rtd/topics/instancedata.rst
+++ b/doc/rtd/topics/instancedata.rst
@@ -165,7 +165,7 @@ Examples output:
v1.public_ssh_keys
------------------
-A list of ssh keys provided to the instance by the datasource metadata.
+A list of SSH keys provided to the instance by the datasource metadata.
Examples output:
diff --git a/tests/unittests/test_distros/test_create_users.py b/tests/unittests/test_distros/test_create_users.py
index 40624952..ef11784d 100644
--- a/tests/unittests/test_distros/test_create_users.py
+++ b/tests/unittests/test_distros/test_create_users.py
@@ -206,7 +206,7 @@ class TestCreateUser(CiTestCase):
user = 'foouser'
self.dist.create_user(user, ssh_redirect_user='someuser')
self.assertIn(
- 'WARNING: Unable to disable ssh logins for foouser given '
+ 'WARNING: Unable to disable SSH logins for foouser given '
'ssh_redirect_user: someuser. No cloud public-keys present.\n',
self.logs.getvalue())
m_setup_user_keys.assert_not_called()