Skip to content

Commit 182f7b3

Browse files
Merge pull request #1901 from caberos/issue1900
add a new option on account orders
2 parents 73ad86d + ed61836 commit 182f7b3

File tree

5 files changed

+56
-2
lines changed

5 files changed

+56
-2
lines changed

SoftLayer/CLI/account/orders.py

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10,16 +10,34 @@
1010
from SoftLayer import utils
1111

1212

13+
def upgrade_table(upgrades):
14+
"""Formats a table for upgrade orders"""
15+
table = formatting.Table(['Id', 'Maintance window', 'Status', 'Created Date',
16+
'Case'], title="Upgrade orders")
17+
table.align['Subject'] = 'l'
18+
table.align['Impacted Resources'] = 'l'
19+
for upgrade in upgrades:
20+
table.add_row([upgrade.get('id'),
21+
upgrade.get('maintenanceStartTimeUtc'),
22+
upgrade.get('statusId'),
23+
upgrade.get('createDate'),
24+
upgrade.get('ticketId') or '--'])
25+
return table
26+
27+
1328
@click.command(cls=SLCommand)
1429
@click.option('--limit', '-l',
1530
help='How many results to get in one api call',
16-
default=50,
31+
default=100,
1732
show_default=True)
33+
@click.option('--upgrades', is_flag=True, default=False,
34+
help="Show upgrades orders.")
1835
@environment.pass_env
19-
def cli(env, limit):
36+
def cli(env, limit, upgrades):
2037
"""Lists account orders. Use `slcli order lookup <ID>` to find more details about a specific order."""
2138
manager = AccountManager(env.client)
2239
orders = manager.get_account_all_billing_orders(limit)
40+
upgrade = manager.get_account_upgrade_orders(limit)
2341

2442
order_table = formatting.Table(['Id', 'State', 'User', 'Date', 'Amount', 'Item'],
2543
title="orders")
@@ -34,3 +52,5 @@ def cli(env, limit):
3452
order_table.add_row([order['id'], order['status'], order['userRecord']['username'], create_date,
3553
order['orderTotalAmount'], utils.trim_to(' '.join(map(str, items)), 50)])
3654
env.fout(order_table)
55+
if upgrades:
56+
env.fout(upgrade_table(upgrade))

SoftLayer/fixtures/SoftLayer_Account.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1480,3 +1480,24 @@
14801480
"name": "GettestProv12345",
14811481
"uri": "http://test.com"
14821482
}]
1483+
1484+
getUpgradeRequests = [{
1485+
"createDate": "2023-03-01T19:39:51-06:00",
1486+
"id": 3237486,
1487+
"maintenanceStartTimeUtc": "2023-03-01T19:39:51-06:00",
1488+
"modifyDate": "2023-03-01T19:39:53-06:00",
1489+
"orderId": 103127604,
1490+
"statusId": 3,
1491+
"ticketId": 152510472,
1492+
"userId": 167758
1493+
},
1494+
{
1495+
"createDate": "2023-02-27T19:41:26-06:00",
1496+
"id": 3229998,
1497+
"maintenanceStartTimeUtc": "2023-02-27T19:41:26-06:00",
1498+
"modifyDate": "2023-02-27T19:41:29-06:00",
1499+
"orderId": 103029352,
1500+
"statusId": 3,
1501+
"ticketId": 152452042,
1502+
"userId": 167758
1503+
}]

SoftLayer/managers/account.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -416,3 +416,7 @@ def delete_provisioning(self, identifier):
416416
Returns: boolean
417417
"""
418418
return self.client.call("SoftLayer_Provisioning_Hook", "deleteObject", id=identifier)
419+
420+
def get_account_upgrade_orders(self, limit=100):
421+
"""Gets upgrade order list"""
422+
return self.client.call('SoftLayer_Account', 'getUpgradeRequests', limit=limit)

tests/CLI/modules/account_tests.py

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -174,3 +174,8 @@ def test_delete_provisioning_hook(self):
174174
result = self.run_command(['account', 'hook-delete', '123456'])
175175
self.assert_no_fail(result)
176176
self.assert_called_with('SoftLayer_Provisioning_Hook', 'deleteObject')
177+
178+
def test_order_upgrade(self):
179+
result = self.run_command(['account', 'orders', '--upgrades'])
180+
self.assert_no_fail(result)
181+
self.assert_called_with('SoftLayer_Account', 'getUpgradeRequests')

tests/managers/account_tests.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -188,3 +188,7 @@ def test_create_provisioning_scripts(self):
188188
def test_delete_provisioning_scripts(self):
189189
self.manager.delete_provisioning(123456)
190190
self.assert_called_with("SoftLayer_Provisioning_Hook", "deleteObject")
191+
192+
def test_get_upgrades_orders(self):
193+
self.manager.get_account_upgrade_orders()
194+
self.assert_called_with("SoftLayer_Account", "getUpgradeRequests")

0 commit comments

Comments
 (0)