From 2ccf7727a6c06214956b7067e7932015bcdfb5a5 Mon Sep 17 00:00:00 2001 From: Stephen Finucane Date: Thu, 11 Mar 2021 15:53:39 +0000 Subject: [PATCH] compute: Remove 'file://' prefix from '--block-device' There are a couple of other (networking-related) options which accept paths, none of which insist on a URI-style path. Let's just drop this bit of complexity before we release the feature. Change-Id: Ia7f781d82f3f4695b49b55a39abbb6e582cd879c Signed-off-by: Stephen Finucane --- openstackclient/compute/v2/server.py | 13 +++++-------- .../tests/unit/compute/v2/test_server.py | 2 +- 2 files changed, 6 insertions(+), 9 deletions(-) diff --git a/openstackclient/compute/v2/server.py b/openstackclient/compute/v2/server.py index cd6e2c9165..b81d2a181c 100644 --- a/openstackclient/compute/v2/server.py +++ b/openstackclient/compute/v2/server.py @@ -21,7 +21,6 @@ import io import json import logging import os -import urllib.parse from cliff import columns as cliff_columns import iso8601 @@ -774,9 +773,8 @@ class BDMAction(parseractions.MultiKeyValueAction): if getattr(namespace, self.dest, None) is None: setattr(namespace, self.dest, []) - if values.startswith('file://'): - path = urllib.parse.urlparse(values).path - with open(path) as fh: + if os.path.exists(values): + with open(values) as fh: data = json.load(fh) # Validate the keys - other validation is left to later @@ -898,10 +896,9 @@ class CreateServer(command.ShowOne): default=[], help=_( 'Create a block device on the server.\n' - 'Either a URI-style path (\'file:\\\\{path}\') to a JSON file ' - 'or a CSV-serialized string describing the block device ' - 'mapping.\n' - 'The following keys are accepted:\n' + 'Either a path to a JSON file or a CSV-serialized string ' + 'describing the block device mapping.\n' + 'The following keys are accepted for both:\n' 'uuid=: UUID of the volume, snapshot or ID ' '(required if using source image, snapshot or volume),\n' 'source_type=: source type ' diff --git a/openstackclient/tests/unit/compute/v2/test_server.py b/openstackclient/tests/unit/compute/v2/test_server.py index 775ad0d911..c6dff5a8a2 100644 --- a/openstackclient/tests/unit/compute/v2/test_server.py +++ b/openstackclient/tests/unit/compute/v2/test_server.py @@ -2197,7 +2197,7 @@ class TestServerCreate(TestServer): arglist = [ '--image', 'image1', '--flavor', self.flavor.id, - '--block-device', f'file://{fp.name}', + '--block-device', fp.name, self.new_server.name, ] verifylist = [