Skip to content

Commit 358add9

Browse files
Merge pull request #1600 from caberos/issue1587
Add a warning if user orders in a POD that is being closed
2 parents d81e6d0 + 39f82b1 commit 358add9

File tree

5 files changed

+33
-10
lines changed

5 files changed

+33
-10
lines changed

SoftLayer/CLI/hardware/create.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@
4141
def cli(env, **args):
4242
"""Order/create a dedicated server."""
4343
mgr = SoftLayer.HardwareManager(env.client)
44+
network = SoftLayer.NetworkManager(env.client)
45+
46+
pods = network.get_closed_pods()
47+
closure = []
4448

4549
# Get the SSH keys
4650
ssh_keys = []
@@ -99,6 +103,10 @@ def cli(env, **args):
99103
return
100104

101105
if do_create:
106+
for pod in pods:
107+
if args.get('datacenter') in str(pod['name']):
108+
closure.append(pod['name'])
109+
click.secho(click.style('Warning: Closed soon: %s' % (', '.join(closure)), fg='yellow'))
102110
if not (env.skip_confirmations or formatting.confirm(
103111
"This action will incur charges on your account. Continue?")):
104112
raise exceptions.CLIAbort('Aborting dedicated server order.')

SoftLayer/CLI/order/place.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
from SoftLayer.CLI import environment
99
from SoftLayer.CLI import exceptions
1010
from SoftLayer.CLI import formatting
11+
from SoftLayer.managers import NetworkManager
1112
from SoftLayer.managers import ordering
1213

1314
COLUMNS = ['keyName',
@@ -64,6 +65,10 @@ def cli(env, package_keyname, location, preset, verify, billing, complex_type,
6465
6566
"""
6667
manager = ordering.OrderingManager(env.client)
68+
network = NetworkManager(env.client)
69+
70+
pods = network.get_closed_pods()
71+
closure = []
6772

6873
if extras:
6974
try:
@@ -90,6 +95,9 @@ def cli(env, package_keyname, location, preset, verify, billing, complex_type,
9095
])
9196

9297
else:
98+
for pod in pods:
99+
closure.append(pod['name'])
100+
click.secho(click.style('Warning: Closed soon: %s' % (', '.join(closure)), fg='yellow'))
93101
if not (env.skip_confirmations or formatting.confirm(
94102
"This action will incur charges on your account. Continue?")):
95103
raise exceptions.CLIAbort("Aborting order.")

SoftLayer/CLI/virt/create.py

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -218,8 +218,16 @@ def cli(env, **args):
218218
create_args = _parse_create_args(env.client, args)
219219
test = args.get('test', False)
220220
do_create = not (args.get('export') or test)
221+
network = SoftLayer.NetworkManager(env.client)
222+
223+
pods = network.get_closed_pods()
224+
closure = []
221225

222226
if do_create:
227+
for pod in pods:
228+
if args.get('datacenter') in str(pod['name']):
229+
closure.append(pod['name'])
230+
click.secho(click.style('Warning: Closed soon: %s' % (', '.join(closure)), fg='yellow'))
223231
if not (env.skip_confirmations or formatting.confirm(
224232
"This action will incur charges on your account. Continue?")):
225233
raise exceptions.CLIAbort('Aborting virtual server order.')

tests/CLI/modules/order_tests.py

Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,9 @@ def test_place(self):
141141

142142
self.assert_no_fail(result)
143143
self.assert_called_with('SoftLayer_Product_Order', 'placeOrder')
144-
self.assertEqual({'id': 1234,
145-
'created': order_date,
146-
'status': 'APPROVED'},
147-
json.loads(result.output))
144+
self.assertEqual('Warning: Closed soon: ams01.pod01, wdc07.pod01, TEST00.pod2\n'
145+
'{\n "id": 1234,\n "created": "2017-04-04 07:39:20",\n "status": "APPROVED"\n}\n',
146+
str(result.output))
148147

149148
def test_place_with_quantity(self):
150149
order_date = '2017-04-04 07:39:20'
@@ -162,10 +161,9 @@ def test_place_with_quantity(self):
162161

163162
self.assert_no_fail(result)
164163
self.assert_called_with('SoftLayer_Product_Order', 'placeOrder')
165-
self.assertEqual({'id': 1234,
166-
'created': order_date,
167-
'status': 'APPROVED'},
168-
json.loads(result.output))
164+
self.assertEqual('Warning: Closed soon: ams01.pod01, wdc07.pod01, TEST00.pod2\n'
165+
'{\n "id": 1234,\n "created": "2017-04-04 07:39:20",\n "status": "APPROVED"\n}\n',
166+
str(result.output))
169167

170168
def test_place_extras_parameter_fail(self):
171169
result = self.run_command(['-y', 'order', 'place', 'package', 'DALLAS13', 'ITEM1',

tests/CLI/modules/server_tests.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -397,8 +397,9 @@ def test_create_server(self, order_mock):
397397
])
398398

399399
self.assert_no_fail(result)
400-
self.assertEqual(json.loads(result.output),
401-
{'id': 98765, 'created': '2013-08-02 15:23:47'})
400+
self.assertEqual(
401+
str(result.output),
402+
'Warning: Closed soon: TEST00.pod2\n{\n "id": 98765,\n "created": "2013-08-02 15:23:47"\n}\n')
402403

403404
@mock.patch('SoftLayer.CLI.template.export_to_template')
404405
def test_create_server_with_export(self, export_mock):

0 commit comments

Comments
 (0)