Skip to content

Commit 627c78a

Browse files
Merge pull request #1263 from caberos/issue1257new
add the redundant/degraded option
2 parents 097adc8 + 89e873b commit 627c78a

File tree

4 files changed

+30
-16
lines changed

4 files changed

+30
-16
lines changed

SoftLayer/CLI/hardware/edit.py

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,10 @@
2222
help="Public port speed. -1 is best speed available")
2323
@click.option('--private-speed', default=None, type=click.Choice(['0', '10', '100', '1000', '10000', '-1']),
2424
help="Private port speed. -1 is best speed available")
25+
@click.option('--redundant', is_flag=True, default=False, help="The desired state of redundancy for the interface(s)")
26+
@click.option('--degraded', is_flag=True, default=False, help="The desired state of degraded for the interface(s)")
2527
@environment.pass_env
26-
def cli(env, identifier, domain, userfile, tag, hostname, userdata, public_speed, private_speed):
28+
def cli(env, identifier, domain, userfile, tag, hostname, userdata, public_speed, private_speed, redundant, degraded):
2729
"""Edit hardware details."""
2830

2931
if userdata and userfile:
@@ -51,7 +53,17 @@ def cli(env, identifier, domain, userfile, tag, hostname, userdata, public_speed
5153
raise exceptions.CLIAbort("Failed to update hardware")
5254

5355
if public_speed is not None:
54-
mgr.change_port_speed(hw_id, True, int(public_speed))
56+
if redundant:
57+
mgr.change_port_speed(hw_id, True, int(public_speed), 'redundant')
58+
if degraded:
59+
mgr.change_port_speed(hw_id, True, int(public_speed), 'degraded')
60+
if not redundant and not degraded:
61+
raise exceptions.CLIAbort("Failed to update hardwar")
5562

5663
if private_speed is not None:
57-
mgr.change_port_speed(hw_id, False, int(private_speed))
64+
if redundant:
65+
mgr.change_port_speed(hw_id, False, int(private_speed), 'redundant')
66+
if degraded:
67+
mgr.change_port_speed(hw_id, False, int(private_speed), 'degraded')
68+
if not redundant and not degraded:
69+
raise exceptions.CLIAbort("Failed to update hardware")

SoftLayer/managers/hardware.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -297,7 +297,7 @@ def rescue(self, hardware_id):
297297
"""
298298
return self.hardware.bootToRescueLayer(id=hardware_id)
299299

300-
def change_port_speed(self, hardware_id, public, speed):
300+
def change_port_speed(self, hardware_id, public, speed, redundant=None):
301301
"""Allows you to change the port speed of a server's NICs.
302302
303303
:param int hardware_id: The ID of the server
@@ -319,11 +319,11 @@ def change_port_speed(self, hardware_id, public, speed):
319319
if public:
320320
return self.client.call('Hardware_Server',
321321
'setPublicNetworkInterfaceSpeed',
322-
speed, id=hardware_id)
322+
[speed, redundant], id=hardware_id)
323323
else:
324324
return self.client.call('Hardware_Server',
325325
'setPrivateNetworkInterfaceSpeed',
326-
speed, id=hardware_id)
326+
[speed, redundant], id=hardware_id)
327327

328328
def place_order(self, **kwargs):
329329
"""Places an order for a piece of hardware.

tests/CLI/modules/server_tests.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -526,7 +526,9 @@ def test_edit(self):
526526
'--tag=dev',
527527
'--tag=green',
528528
'--public-speed=10',
529+
'--redundant',
529530
'--private-speed=100',
531+
'--degraded',
530532
'100'])
531533

532534
self.assert_no_fail(result)
@@ -544,12 +546,12 @@ def test_edit(self):
544546
)
545547
self.assert_called_with(
546548
'SoftLayer_Hardware_Server', 'setPublicNetworkInterfaceSpeed',
547-
args=(10,),
549+
args=([10, 'redundant'],),
548550
identifier=100,
549551
)
550552
self.assert_called_with(
551553
'SoftLayer_Hardware_Server', 'setPrivateNetworkInterfaceSpeed',
552-
args=(100,),
554+
args=([100, 'degraded'],),
553555
identifier=100,
554556
)
555557

tests/managers/hardware_tests.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -335,20 +335,20 @@ def test_cancel_running_transaction(self):
335335
12345)
336336

337337
def test_change_port_speed_public(self):
338-
self.hardware.change_port_speed(2, True, 100)
338+
self.hardware.change_port_speed(2, True, 100, 'degraded')
339339

340340
self.assert_called_with('SoftLayer_Hardware_Server',
341341
'setPublicNetworkInterfaceSpeed',
342342
identifier=2,
343-
args=(100,))
343+
args=([100, 'degraded'],))
344344

345345
def test_change_port_speed_private(self):
346-
self.hardware.change_port_speed(2, False, 10)
346+
self.hardware.change_port_speed(2, False, 10, 'redundant')
347347

348348
self.assert_called_with('SoftLayer_Hardware_Server',
349349
'setPrivateNetworkInterfaceSpeed',
350350
identifier=2,
351-
args=(10,))
351+
args=([10, 'redundant'],))
352352

353353
def test_edit_meta(self):
354354
# Test editing user data
@@ -374,10 +374,10 @@ def test_edit(self):
374374
self.assert_called_with('SoftLayer_Hardware_Server',
375375
'editObject',
376376
args=({
377-
'hostname': 'new-host',
378-
'domain': 'new.sftlyr.ws',
379-
'notes': 'random notes',
380-
},),
377+
'hostname': 'new-host',
378+
'domain': 'new.sftlyr.ws',
379+
'notes': 'random notes',
380+
},),
381381
identifier=100)
382382

383383
def test_rescue(self):

0 commit comments

Comments
 (0)