@@ -16,7 +16,7 @@ class IPAddress(UpCloudResource):
1616
1717 The only updateable field is the ptr_record.
1818
19- Note that all of the fields are not always available depending on the API call,
19+ Note that all of the fields are not always available depending on the API call,
2020 consult the official API docs for details.
2121 """
2222
@@ -26,7 +26,7 @@ class IPAddress(UpCloudResource):
2626 'family' : 'IPv4' ,
2727 'part_of_plan' : None ,
2828 'ptr_record' : None ,
29- 'server' : None ,
29+ 'server' : None
3030 }
3131
3232 def save (self ):
@@ -51,7 +51,7 @@ def __str__(self):
5151 return self .address
5252
5353 @staticmethod
54- def _create_ip_address_objs (ip_addresses , cloud_manager ):
54+ def _create_ip_address_objs (ip_addresses , cloud_manager , ignore_ips_without_server = False ):
5555 """
5656 Create IPAddress objects from API response data.
5757 Also associates CloudManager with the objects.
@@ -65,7 +65,14 @@ def _create_ip_address_objs(ip_addresses, cloud_manager):
6565 if 'ip_address' in ip_addresses :
6666 ip_addresses = ip_addresses ['ip_address' ]
6767
68+ filtered_ip_addresses = [] if ignore_ips_without_server else ip_addresses
69+
70+ if ignore_ips_without_server :
71+ for ip_addr in ip_addresses :
72+ if ip_addr .get ('server' ):
73+ filtered_ip_addresses .append (ip_addr )
74+
6875 return [
6976 IPAddress (cloud_manager = cloud_manager , ** ip_addr )
70- for ip_addr in ip_addresses
77+ for ip_addr in filtered_ip_addresses
7178 ]
0 commit comments