Skip to content

Commit bcd52a6

Browse files
caberoscaberos
authored andcommitted
fix the team code review comments
1 parent 1417c26 commit bcd52a6

File tree

4 files changed

+50
-44
lines changed

4 files changed

+50
-44
lines changed

SoftLayer/CLI/licenses/cancel.py

Lines changed: 5 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,19 @@
1-
"""Cancel a vwmare licenses."""
1+
"""Cancel a license."""
22
# :licenses: MIT, see LICENSE for more details.
33

44
import click
5-
from SoftLayer import utils
5+
import SoftLayer
66

77
from SoftLayer.CLI import environment
8-
from SoftLayer.CLI import exceptions
9-
from SoftLayer.managers.license import LicensesManager
108

119

1210
@click.command()
1311
@click.argument('key')
1412
@click.option('--immediate', is_flag=True, help='Immediate cancellation')
1513
@environment.pass_env
1614
def cli(env, key, immediate):
17-
"""Cancel VMware licenses."""
15+
"""Cancel a license."""
1816

19-
if not immediate:
20-
immediate = False
21-
vm_ware_find = False
22-
licenses = LicensesManager(env.client)
17+
licenses = SoftLayer.LicensesManager(env.client)
2318

24-
vm_ware_licenses = licenses.get_all_objects()
25-
26-
for vm_ware in vm_ware_licenses:
27-
if vm_ware.get('key') == key:
28-
vm_ware_find = True
29-
licenses.cancel_item(utils.lookup(vm_ware, 'billingItem', 'id'),
30-
immediate,
31-
'Cancel by cli command',
32-
'Cancel by cli command')
33-
break
34-
35-
if not vm_ware_find:
36-
raise exceptions.CLIAbort(
37-
"The VMware not found, try whit another key")
19+
env.fout(licenses.cancel_item(key, immediate))

SoftLayer/CLI/licenses/create.py

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,28 +2,29 @@
22
# :licenses: MIT, see LICENSE for more details.
33

44
import click
5-
from SoftLayer.managers import ordering
5+
6+
import SoftLayer
67

78
from SoftLayer.CLI import environment
89
from SoftLayer.CLI import formatting
910

1011

1112
@click.command()
12-
@click.option('--key', '-k', required=True, prompt=True, help="The License Key for this specific Account License.")
13+
@click.option('--key', '-k', required=True, prompt=True,
14+
help="The VMware License Key. "
15+
"To get could use the product_package::getItems id=301 with name Software License Package"
16+
"E.g VMWARE_VSAN_ENTERPRISE_TIER_III_65_124_TB_6_X_2")
1317
@click.option('--datacenter', '-d', required=True, prompt=True, help="Datacenter shortname")
1418
@environment.pass_env
1519
def cli(env, key, datacenter):
16-
"""Order/create a Vm licenses instance."""
20+
"""Order/Create License."""
1721

18-
complex_type = 'SoftLayer_Container_Product_Order_Software_License'
1922
item_package = [key]
2023

21-
ordering_manager = ordering.OrderingManager(env.client)
22-
result = ordering_manager.place_order(package_keyname='SOFTWARE_LICENSE_PACKAGE',
23-
location=datacenter,
24-
item_keynames=item_package,
25-
complex_type=complex_type,
26-
hourly=False)
24+
licenses = SoftLayer.LicensesManager(env.client)
25+
26+
result = licenses.create(datacenter, item_package)
27+
2728
table = formatting.KeyValueTable(['name', 'value'])
2829
table.align['name'] = 'r'
2930
table.align['value'] = 'l'

SoftLayer/managers/__init__.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
from SoftLayer.managers.hardware import HardwareManager
1818
from SoftLayer.managers.image import ImageManager
1919
from SoftLayer.managers.ipsec import IPSECManager
20+
from SoftLayer.managers.license import LicensesManager
2021
from SoftLayer.managers.load_balancer import LoadBalancerManager
2122
from SoftLayer.managers.metadata import MetadataManager
2223
from SoftLayer.managers.network import NetworkManager
@@ -43,6 +44,7 @@
4344
'HardwareManager',
4445
'ImageManager',
4546
'IPSECManager',
47+
'LicensesManager',
4648
'LoadBalancerManager',
4749
'MetadataManager',
4850
'NetworkManager',

SoftLayer/managers/license.py

Lines changed: 32 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,35 +6,56 @@
66
:license: MIT, see LICENSE for more details.
77
"""
88

9-
109
# pylint: disable=too-many-public-methods
10+
from SoftLayer.CLI import exceptions
11+
from SoftLayer.managers import ordering
12+
from SoftLayer import utils
1113

1214

1315
class LicensesManager(object):
14-
"""Manages account lincese."""
16+
"""Manages account license."""
1517

1618
def __init__(self, client):
1719
self.client = client
1820

1921
def get_all_objects(self):
20-
"""Show the all VM ware licenses of account.
22+
"""Show the all VMware licenses of an account.
2123
2224
"""
2325
_mask = '''softwareDescription,billingItem'''
2426

2527
return self.client.call('SoftLayer_Software_AccountLicense',
2628
'getAllObjects', mask=_mask)
2729

28-
def cancel_item(self, identifier, cancel_immediately,
29-
reason_cancel, customer_note):
30+
def cancel_item(self, key, cancel_immediately=False):
3031
"""Cancel a billing item immediately, deleting all its data.
3132
3233
:param integer identifier: the instance ID to cancel
3334
:param string reason_cancel: reason cancel
3435
"""
35-
return self.client.call('SoftLayer_Billing_Item', 'cancelItem',
36-
cancel_immediately,
37-
True,
38-
reason_cancel,
39-
customer_note,
40-
id=identifier)
36+
vm_ware_licenses = self.get_all_objects()
37+
vm_ware_find = False
38+
for vm_ware in vm_ware_licenses:
39+
if vm_ware.get('key') == key:
40+
vm_ware_find = True
41+
self.client.call('SoftLayer_Billing_Item', 'cancelItem',
42+
cancel_immediately,
43+
True,
44+
'Cancel by cli command',
45+
'Cancel by cli command',
46+
id=utils.lookup(vm_ware, 'billingItem', 'id'))
47+
48+
if not vm_ware_find:
49+
raise exceptions.CLIAbort(
50+
"Unable to find license key: {}".format(key))
51+
return vm_ware_find
52+
53+
def create(self, datacenter, item_package):
54+
55+
complex_type = 'SoftLayer_Container_Product_Order_Software_License'
56+
ordering_manager = ordering.OrderingManager(self.client)
57+
return ordering_manager.place_order(package_keyname='SOFTWARE_LICENSE_PACKAGE',
58+
location=datacenter,
59+
item_keynames=item_package,
60+
complex_type=complex_type,
61+
hourly=False)

0 commit comments

Comments
 (0)