Update zero metadata API and tests
Signed-off-by: Slawomir Jankowski <slawomir.jankowski@intel.com>
This commit is contained in:
parent
c2c1d9eb4c
commit
7a9405a58e
@ -153,9 +153,9 @@ def print_version(output_format: OutputFormat = None, shortcut: bool = False):
|
||||
return output
|
||||
|
||||
|
||||
def zero_metadata(cache_dev: Device, shortcut: bool = False):
|
||||
def zero_metadata(cache_dev: Device, force: bool = False, shortcut: bool = False):
|
||||
output = TestRun.executor.run(
|
||||
zero_metadata_cmd(cache_dev=cache_dev.path, shortcut=shortcut))
|
||||
zero_metadata_cmd(cache_dev=cache_dev.path, force=force, shortcut=shortcut))
|
||||
if output.exit_code != 0:
|
||||
raise CmdException("Failed to wipe metadata.", output)
|
||||
return output
|
||||
|
@ -115,9 +115,11 @@ def print_statistics_cmd(cache_id: str, core_id: str = None, per_io_class: bool
|
||||
return casadm_bin + command
|
||||
|
||||
|
||||
def zero_metadata_cmd(cache_dev: str, shortcut: bool):
|
||||
def zero_metadata_cmd(cache_dev: str, force: bool = False, shortcut: bool = False):
|
||||
command = " --zero-metadata"
|
||||
command += (" -d " if shortcut else " --device ") + cache_dev
|
||||
if force:
|
||||
command += (" -f" if shortcut else " --force")
|
||||
return casadm_bin + command
|
||||
|
||||
|
||||
|
@ -254,6 +254,7 @@ zero_metadata_help = [
|
||||
r"Clear metadata from caching device",
|
||||
r"Options that are valid with --zero-metadata are:",
|
||||
r"-d --device \<DEVICE\> Path to device on which metadata would be cleared"
|
||||
r"-f --force Ignore potential dirty data on cache device"
|
||||
]
|
||||
|
||||
unrecognized_stderr = [
|
||||
|
@ -120,6 +120,14 @@ def test_user_cli():
|
||||
except CmdException:
|
||||
TestRun.LOGGER.info("Non-root user cannot remove core.")
|
||||
|
||||
with TestRun.step("Try to zero metadata."):
|
||||
try:
|
||||
output = run_as_other_user(cli.zero_metadata_cmd(str(cache_dev)), user_name)
|
||||
if output.exit_code == 0:
|
||||
TestRun.LOGGER.error("Zeroing metadata should fail!")
|
||||
except CmdException:
|
||||
TestRun.LOGGER.info("Non-root user cannot zero metadata.")
|
||||
|
||||
with TestRun.step("Try to list caches."):
|
||||
try:
|
||||
output = run_as_other_user(cli.list_cmd(), user_name)
|
||||
@ -344,6 +352,13 @@ def test_user_cli():
|
||||
except CmdException:
|
||||
TestRun.LOGGER.error("Non-root sudoer user should be able to remove core from cache.")
|
||||
|
||||
with TestRun.step("Try to zero metadata with 'sudo'."):
|
||||
try:
|
||||
run_as_other_user(cli.zero_metadata_cmd(str(cache_dev)),
|
||||
user_name, True)
|
||||
except CmdException:
|
||||
TestRun.LOGGER.error("Non-root sudoer user should be able to zero metadata.")
|
||||
|
||||
with TestRun.step("Try to print help for casadm with 'sudo'."):
|
||||
try:
|
||||
run_as_other_user(cli.help_cmd(), user_name, True)
|
||||
|
Loading…
Reference in New Issue
Block a user