Skip to content

Commit a4a9a0e

Browse files
committed
Merge branch 'release-v5.5.2'
2 parents 200c493 + 6443899 commit a4a9a0e

File tree

5 files changed

+58
-10
lines changed

5 files changed

+58
-10
lines changed

netfoundry/ctl.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -671,7 +671,7 @@ def use_network(organization: object, network: str=None, group: str=None, operat
671671
existing_networks = network_group.networks_by_name()
672672
else:
673673
existing_networks = organization.get_networks_by_organization()
674-
cli.log.error("need --network to configure a network")
674+
cli.log.error("need 'nfctl --network NETWORK' or 'nfctl config general.network=NETWORK' to configure a network")
675675
exit(1)
676676
if group:
677677
network_group = use_network_group(organization=organization, group=group)

netfoundry/network.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -482,7 +482,7 @@ def get_resources(self, type: str, accept: str=None, deleted: bool=False, **kwar
482482
params = {
483483
"networkId": self.id,
484484
"page": 0,
485-
"size": 100,
485+
"size": 1000,
486486
}
487487
# if type == "services":
488488
# params["beta"] = ''

netfoundry/network_group.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import json
44
import logging
55

6-
from .utility import RESOURCES, STATUS_CODES, Utility, eprint, http, is_uuidv4
6+
from .utility import RESOURCES, STATUS_CODES, Utility, http, is_uuidv4
77

88
utility = Utility()
99

@@ -129,7 +129,7 @@ def get_controller_data_centers(self):
129129
all_data_centers = json.loads(response.text)['_embedded']['dataCenters']
130130
aws_data_centers = [dc for dc in all_data_centers if dc['provider'] == "AWS"]
131131
except ValueError as e:
132-
eprint('ERROR getting data centers')
132+
logging.error('failed to find data centers')
133133
raise(e)
134134
else:
135135
raise Exception(
@@ -161,7 +161,7 @@ def get_product_metadata(self, is_active: bool=True):
161161
try:
162162
product_metadata = json.loads(response.text)
163163
except ValueError as e:
164-
eprint('ERROR getting product metadata')
164+
logging.error('failed to find product metadata')
165165
raise(e)
166166
else:
167167
raise Exception(

netfoundry/organization.py

Lines changed: 51 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -623,7 +623,10 @@ def get_network_groups_by_organization(self, **kwargs):
623623
624624
:param str kwargs: filter results by any supported query param
625625
"""
626-
params = dict()
626+
params = {
627+
'size': 1000,
628+
'page': 0
629+
}
627630
for param in kwargs.keys():
628631
params[param] = kwargs[param]
629632
try:
@@ -642,10 +645,10 @@ def get_network_groups_by_organization(self, **kwargs):
642645

643646
if response_code == STATUS_CODES.codes.OK: # HTTP 200
644647
try:
645-
network_groups = json.loads(response.text)['_embedded']['organizations']
646-
except ValueError as e:
648+
response_object = response.json()
649+
except ValueError:
647650
logging.error('failed loading list of network groups as object')
648-
raise(e)
651+
raise ValueError("response is not JSON")
649652
else:
650653
raise Exception(
651654
'ERROR: got unexpected HTTP code {:s} ({:d}) and response {:s}'.format(
@@ -654,6 +657,50 @@ def get_network_groups_by_organization(self, **kwargs):
654657
response.text
655658
)
656659
)
660+
661+
total_pages = response_object['page']['totalPages']
662+
total_elements = response_object['page']['totalElements']
663+
# if there are no resources
664+
if total_elements == 0:
665+
return([])
666+
else:
667+
network_groups = response_object['_embedded'][RESOURCES['network-groups']['embedded']]
668+
669+
# if there is one page of resources
670+
if total_pages == 1:
671+
return network_groups
672+
# if there are multiple pages of resources
673+
else:
674+
# append the remaining pages of resources
675+
for page in range(1,total_pages+1): # +1 to work around 1-base bug in MOP-17890
676+
try:
677+
params["page"] = page
678+
response = http.get(
679+
self.audience+'rest/v1/network-groups',
680+
proxies=self.proxies,
681+
verify=self.verify,
682+
headers=headers,
683+
params=params
684+
)
685+
response_code = response.status_code
686+
except:
687+
raise
688+
if response_code == STATUS_CODES.codes.OK: # HTTP 200
689+
try:
690+
response_object = response.json()
691+
network_groups.extend(response_object['_embedded'][RESOURCES['network-groups']['embedded']])
692+
except ValueError:
693+
logging.error('failed loading list of network groups as object')
694+
raise ValueError("response is not JSON")
695+
else:
696+
raise Exception(
697+
'ERROR: got unexpected HTTP code {:s} ({:d}) and response {:s}'.format(
698+
STATUS_CODES._codes[response_code][0].upper(),
699+
response_code,
700+
response.text
701+
)
702+
)
703+
657704
return(network_groups)
658705

659706
network_groups = get_network_groups_by_organization

setup.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,8 @@
3030
'milc >= 1.6',
3131
'pyyaml >= 5.4',
3232
'platformdirs >= 2.4',
33-
'tabulate >= 0.8'
33+
'tabulate >= 0.8',
34+
'packaging >= 20.9'
3435
]
3536
)
3637

0 commit comments

Comments
 (0)