Skip to content

Commit 104f13f

Browse files
committed
Merge pull request softlayer#359 from sudorandom/vs-createObjects
Adds ability to create multiple virtual servers in one call/order
2 parents 22635de + 3e8bc26 commit 104f13f

3 files changed

Lines changed: 25 additions & 4 deletions

File tree

SoftLayer/managers/vs.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -445,17 +445,24 @@ def create_instance(self, **kwargs):
445445
this VS placed.
446446
:param int private_vlan: The ID of the public VLAN on which you want
447447
this VS placed.
448-
:param bool bare_metal: Flag to indicate if this is a bare metal server
449-
or a dedicated server (default).
450448
:param list disks: A list of disk capacities for this server.
451449
:param string post_uri: The URI of the post-install script to run
452450
after reload
453451
:param bool private: If true, the VS will be provisioned only with
454452
access to the private network. Defaults to false
455453
:param list ssh_keys: The SSH keys to add to the root user
454+
:param int nic_speed: The port speed to set
456455
"""
457-
create_options = self._generate_create_dict(**kwargs)
458-
return self.guest.createObject(create_options)
456+
return self.guest.createObject(self._generate_create_dict(**kwargs))
457+
458+
def create_instances(self, config_list):
459+
""" Creates multiple virtual server instances
460+
461+
This takes a list of dictionaries using the same arguments as
462+
create_instance().
463+
"""
464+
return self.guest.createObjects([self._generate_create_dict(**kwargs)
465+
for kwargs in config_list])
459466

460467
def change_port_speed(self, instance_id, public, speed):
461468
""" Allows you to change the port speed of a virtual server's NICs.

SoftLayer/testing/fixtures/Virtual_Guest.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,6 +218,7 @@
218218
setPrivateNetworkInterfaceSpeed = True
219219
setPublicNetworkInterfaceSpeed = True
220220
createObject = getObject
221+
createObjects = True
221222
generateOrderTemplate = {}
222223
setUserMetadata = ['meta']
223224
reloadOperatingSystem = 'OK'

SoftLayer/tests/managers/vs_tests.py

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,19 @@ def test_create_instance(self, create_dict):
142142
self.client['Virtual_Guest'].createObject.assert_called_once_with(
143143
{'test': 1, 'verify': 1})
144144

145+
def test_create_instances(self):
146+
self.vs.create_instances([{'cpus': 1,
147+
'memory': 1024,
148+
'hostname': 'server',
149+
'domain': 'example.com'}])
150+
self.client['Virtual_Guest'].createObjects.assert_called_once_with([
151+
{'domain': 'example.com',
152+
'hourlyBillingFlag': True,
153+
'localDiskFlag': True,
154+
'maxMemory': 1024, 'hostname':
155+
'server',
156+
'startCpus': 1}])
157+
145158
def test_generate_os_and_image(self):
146159
self.assertRaises(
147160
ValueError,

0 commit comments

Comments
 (0)