Skip to content

Commit d05b13d

Browse files
Merge pull request #1599 from caberos/issue1598
Add an orderBy filter to slcli vlan list
2 parents 1f0bf76 + 6e4e568 commit d05b13d

2 files changed

Lines changed: 13 additions & 7 deletions

File tree

SoftLayer/managers/network.py

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -506,7 +506,7 @@ def list_subnets(self, identifier=None, datacenter=None, version=0,
506506
kwargs['iter'] = True
507507
return self.client.call('Account', 'getSubnets', **kwargs)
508508

509-
def list_vlans(self, datacenter=None, vlan_number=None, name=None, **kwargs):
509+
def list_vlans(self, datacenter=None, vlan_number=None, name=None, limit=100, **kwargs):
510510
"""Display a list of all VLANs on the account.
511511
512512
This provides a quick overview of all VLANs including information about
@@ -523,6 +523,8 @@ def list_vlans(self, datacenter=None, vlan_number=None, name=None, **kwargs):
523523
"""
524524
_filter = utils.NestedDict(kwargs.get('filter') or {})
525525

526+
_filter['networkVlans']['id'] = utils.query_filter_orderby()
527+
526528
if vlan_number:
527529
_filter['networkVlans']['vlanNumber'] = (
528530
utils.query_filter(vlan_number))
@@ -540,7 +542,10 @@ def list_vlans(self, datacenter=None, vlan_number=None, name=None, **kwargs):
540542
kwargs['mask'] = DEFAULT_VLAN_MASK
541543

542544
kwargs['iter'] = True
543-
return self.account.getNetworkVlans(**kwargs)
545+
if limit > 0:
546+
return self.account.getNetworkVlans(mask=kwargs['mask'], filter=_filter.to_dict(), limit=limit)
547+
else:
548+
return self.account.getNetworkVlans(mask=kwargs['mask'], filter=_filter.to_dict(), iter=True)
544549

545550
def list_securitygroups(self, **kwargs):
546551
"""List security groups."""

tests/managers/network_tests.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -360,13 +360,14 @@ def test_list_vlans_with_filters(self):
360360
self.assertEqual(result, fixtures.SoftLayer_Account.getNetworkVlans)
361361
_filter = {
362362
'networkVlans': {
363-
'primaryRouter': {
364-
'datacenter': {
365-
'name': {'operation': '_= dal00'}},
366-
},
363+
'id': {
364+
'operation': 'orderBy',
365+
'options': [
366+
{'name': 'sort', 'value': ['ASC']}]},
367367
'vlanNumber': {'operation': 5},
368368
'name': {'operation': '_= primary-vlan'},
369-
},
369+
'primaryRouter': {
370+
'datacenter': {'name': {'operation': '_= dal00'}}}}
370371
}
371372
self.assert_called_with('SoftLayer_Account', 'getNetworkVlans',
372373
filter=_filter)

0 commit comments

Comments
 (0)