Merge "Limit hint/nic parsing to one split on '='"
This commit is contained in:
commit
997a472983
|
@ -91,14 +91,14 @@ def _boot(cs, args, reservation_id=None, min_count=None, max_count=None):
|
|||
for nic_str in args.nics:
|
||||
nic_info = {"net-id": "", "v4-fixed-ip": ""}
|
||||
for kv_str in nic_str.split(","):
|
||||
k, v = kv_str.split("=")
|
||||
k, v = kv_str.split("=", 1)
|
||||
nic_info[k] = v
|
||||
nics.append(nic_info)
|
||||
|
||||
hints = {}
|
||||
if args.scheduler_hints:
|
||||
hint_set = [dict({hint[0]: hint[1]}) for hint in \
|
||||
[hint_set.split('=') for hint_set in args.scheduler_hints]]
|
||||
parsed_hints = [hint.split('=', 1) for hint in args.scheduler_hints]
|
||||
hint_set = [dict({hint[0]: hint[1]}) for hint in parsed_hints]
|
||||
for hint in hint_set:
|
||||
hints.update(hint.items())
|
||||
else:
|
||||
|
|
|
@ -204,7 +204,7 @@ class FakeHTTPClient(base_client.HTTPClient):
|
|||
]})
|
||||
|
||||
def post_servers(self, body, **kw):
|
||||
assert body.keys() == ['server']
|
||||
assert set(body.keys()) <= set(['server', 'os:scheduler_hints'])
|
||||
fakes.assert_has_keys(body['server'],
|
||||
required=['name', 'imageRef', 'flavorRef'],
|
||||
optional=['metadata', 'personality'])
|
||||
|
|
|
@ -81,7 +81,8 @@ class ShellTest(utils.TestCase):
|
|||
}},
|
||||
)
|
||||
|
||||
self.run_command('boot --image 1 --flavor 1 --meta foo=bar'
|
||||
def test_boot_metadata(self):
|
||||
self.run_command('boot --image 1 --flavor 1 --meta foo=bar=pants'
|
||||
' --meta spam=eggs some-server ')
|
||||
self.assert_called_anytime(
|
||||
'POST', '/servers',
|
||||
|
@ -89,12 +90,48 @@ class ShellTest(utils.TestCase):
|
|||
'flavorRef': '1',
|
||||
'name': 'some-server',
|
||||
'imageRef': '1',
|
||||
'metadata': {'foo': 'bar', 'spam': 'eggs'},
|
||||
'metadata': {'foo': 'bar=pants', 'spam': 'eggs'},
|
||||
'min_count': 1,
|
||||
'max_count': 1,
|
||||
}},
|
||||
)
|
||||
|
||||
def test_boot_hints(self):
|
||||
self.run_command('boot --image 1 --flavor 1 --hint a=b=c some-server ')
|
||||
self.assert_called_anytime(
|
||||
'POST', '/servers',
|
||||
{
|
||||
'server': {
|
||||
'flavorRef': '1',
|
||||
'name': 'some-server',
|
||||
'imageRef': '1',
|
||||
'min_count': 1,
|
||||
'max_count': 1,
|
||||
},
|
||||
'os:scheduler_hints': {'a': 'b=c'},
|
||||
},
|
||||
)
|
||||
|
||||
def test_boot_nics(self):
|
||||
cmd = ('boot --image 1 --flavor 1 '
|
||||
'--nic net-id=a=c,v4-fixed-ip=10.0.0.1 some-server')
|
||||
self.run_command(cmd)
|
||||
self.assert_called_anytime(
|
||||
'POST', '/servers',
|
||||
{
|
||||
'server': {
|
||||
'flavorRef': '1',
|
||||
'name': 'some-server',
|
||||
'imageRef': '1',
|
||||
'min_count': 1,
|
||||
'max_count': 1,
|
||||
'networks': [
|
||||
{'uuid': 'a=c', 'fixed_ip': '10.0.0.1'},
|
||||
],
|
||||
},
|
||||
},
|
||||
)
|
||||
|
||||
def test_boot_files(self):
|
||||
testfile = os.path.join(os.path.dirname(__file__), 'testfile.txt')
|
||||
expected_file_data = open(testfile).read().encode('base64')
|
||||
|
|
Loading…
Reference in New Issue