Merge "Add Neutron support"
This commit is contained in:
commit
d62f206a7a
troveclient
@ -89,10 +89,12 @@ class InstancesTest(testtools.TestCase):
|
||||
return path, body, inst
|
||||
|
||||
self.instances._create = mock.Mock(side_effect=side_effect_func)
|
||||
nics = [{'net-id': '000'}]
|
||||
p, b, i = self.instances.create("test-name", 103, "test-volume",
|
||||
['db1', 'db2'], ['u1', 'u2'],
|
||||
datastore="datastore",
|
||||
datastore_version="datastore-version")
|
||||
datastore_version="datastore-version",
|
||||
nics=nics)
|
||||
self.assertEqual("/instances", p)
|
||||
self.assertEqual("instance", i)
|
||||
self.assertEqual(['db1', 'db2'], b["instance"]["databases"])
|
||||
@ -102,6 +104,7 @@ class InstancesTest(testtools.TestCase):
|
||||
self.assertEqual("datastore", b["instance"]["datastore"]["type"])
|
||||
self.assertEqual("datastore-version",
|
||||
b["instance"]["datastore"]["version"])
|
||||
self.assertEqual(nics, b["instance"]["nics"])
|
||||
self.assertEqual(103, b["instance"]["flavorRef"])
|
||||
|
||||
def test_list(self):
|
||||
|
@ -55,7 +55,7 @@ class Instances(base.ManagerWithFind):
|
||||
|
||||
def create(self, name, flavor_id, volume=None, databases=None, users=None,
|
||||
restorePoint=None, availability_zone=None, datastore=None,
|
||||
datastore_version=None):
|
||||
datastore_version=None, nics=None):
|
||||
"""
|
||||
Create (boot) a new instance.
|
||||
"""
|
||||
@ -80,6 +80,8 @@ class Instances(base.ManagerWithFind):
|
||||
datastore_obj["version"] = datastore_version
|
||||
if datastore_obj:
|
||||
body["instance"]["datastore"] = datastore_obj
|
||||
if nics:
|
||||
body["instance"]["nics"] = nics
|
||||
|
||||
return self._create("/instances", body, "instance")
|
||||
|
||||
|
@ -172,6 +172,18 @@ def do_delete(cs, args):
|
||||
metavar='<datastore_version>',
|
||||
default=None,
|
||||
help='A datastore version name or UUID')
|
||||
@utils.arg('--nic',
|
||||
metavar="<net-id=net-uuid,v4-fixed-ip=ip-addr,port-id=port-uuid>",
|
||||
action='append',
|
||||
dest='nics',
|
||||
default=[],
|
||||
help="Create a NIC on the instance. "
|
||||
"Specify option multiple times to create multiple NICs. "
|
||||
"net-id: attach NIC to network with this UUID "
|
||||
"(required if no port-id), "
|
||||
"v4-fixed-ip: IPv4 fixed address for NIC (optional), "
|
||||
"port-id: attach NIC to port with this UUID "
|
||||
"(required if no net-id)")
|
||||
@utils.service_type('database')
|
||||
def do_create(cs, args):
|
||||
"""Creates a new instance."""
|
||||
@ -184,6 +196,17 @@ def do_create(cs, args):
|
||||
databases = [{'name': value} for value in args.databases]
|
||||
users = [{'name': n, 'password': p} for (n, p) in
|
||||
[z.split(':')[:2] for z in args.users]]
|
||||
nics = []
|
||||
for nic_str in args.nics:
|
||||
nic_info = dict([(k, v) for (k, v) in [z.split("=", 1)[:2] for z in
|
||||
nic_str.split(",")]])
|
||||
if not (nic_info.get('net-id') or nic_info.get('port-id')):
|
||||
err_msg = ("Invalid nic argument '%s'. Nic arguments must be of "
|
||||
"the form --nic <net-id=net-uuid,v4-fixed-ip=ip-addr,"
|
||||
"port-id=port-uuid>, with at minimum net-id or port-id "
|
||||
"specified." % nic_str)
|
||||
raise exceptions.CommandError(err_msg)
|
||||
nics.append(nic_info)
|
||||
instance = cs.instances.create(args.name,
|
||||
args.flavor_id,
|
||||
volume=volume,
|
||||
@ -192,7 +215,8 @@ def do_create(cs, args):
|
||||
restorePoint=restore_point,
|
||||
availability_zone=args.availability_zone,
|
||||
datastore=args.datastore,
|
||||
datastore_version=args.datastore_version)
|
||||
datastore_version=args.datastore_version,
|
||||
nics=nics)
|
||||
instance._info['flavor'] = instance.flavor['id']
|
||||
if hasattr(instance, 'volume'):
|
||||
instance._info['volume'] = instance.volume['size']
|
||||
|
Loading…
x
Reference in New Issue
Block a user