python3-cyberfusion-external-providers-ip-ranges 2.1.2__tar.gz → 2.3__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (11) hide show
  1. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/PKG-INFO +1 -1
  2. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/pyproject.toml +1 -1
  3. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/src/cyberfusion/ExternalProvidersIPRanges/__init__.py +35 -2
  4. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/src/python3_cyberfusion_external_providers_ip_ranges.egg-info/PKG-INFO +1 -1
  5. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/README.md +0 -0
  6. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/setup.cfg +0 -0
  7. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/src/python3_cyberfusion_external_providers_ip_ranges.egg-info/SOURCES.txt +0 -0
  8. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/src/python3_cyberfusion_external_providers_ip_ranges.egg-info/dependency_links.txt +0 -0
  9. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/src/python3_cyberfusion_external_providers_ip_ranges.egg-info/entry_points.txt +0 -0
  10. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/src/python3_cyberfusion_external_providers_ip_ranges.egg-info/requires.txt +0 -0
  11. {python3_cyberfusion_external_providers_ip_ranges-2.1.2 → python3_cyberfusion_external_providers_ip_ranges-2.3}/src/python3_cyberfusion_external_providers_ip_ranges.egg-info/top_level.txt +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python3-cyberfusion-external-providers-ip-ranges
3
- Version: 2.1.2
3
+ Version: 2.3
4
4
  Summary: Scripts to add IP ranges of external providers to ferm.
5
5
  Author-email: Cyberfusion <support@cyberfusion.io>
6
6
  Project-URL: Source, https://github.com/CyberfusionIO/python3-cyberfusion-external-providers-ip-ranges
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "python3-cyberfusion-external-providers-ip-ranges"
7
- version = "2.1.2"
7
+ version = "2.3"
8
8
  description = "Scripts to add IP ranges of external providers to ferm."
9
9
  readme = "README.md"
10
10
  authors = [
@@ -61,6 +61,32 @@ class AtlassianIPRangeHandler(ExternalProviderIPRangeHandlerInterface):
61
61
  return result
62
62
 
63
63
 
64
+ class AWSIPRangeHandler(ExternalProviderIPRangeHandlerInterface):
65
+ """Class for external provider IP range handler."""
66
+
67
+ @property
68
+ def name(self) -> str:
69
+ """Get external provider name."""
70
+ return "aws"
71
+
72
+ @property
73
+ def ip_ranges(self) -> List[str]:
74
+ """Get IP ranges."""
75
+ result = []
76
+
77
+ request = requests.get("https://ip-ranges.amazonaws.com/ip-ranges.json")
78
+ request.raise_for_status()
79
+ data = request.json()
80
+
81
+ for item in data["prefixes"]:
82
+ result.append(item["ip_prefix"])
83
+
84
+ for item in data["ipv6_prefixes"]:
85
+ result.append(item["ipv6_prefix"])
86
+
87
+ return result
88
+
89
+
64
90
  class GoogleCloudIPRangeHandler(ExternalProviderIPRangeHandlerInterface):
65
91
  """Class for external provider IP range handler."""
66
92
 
@@ -100,11 +126,17 @@ class BuddyIPRangeHandler(ExternalProviderIPRangeHandlerInterface):
100
126
  """Get IP ranges."""
101
127
  result = []
102
128
 
129
+ ip_ranges = []
130
+
103
131
  request = requests.get("https://buddy.works/api/ips")
104
132
  request.raise_for_status()
105
- data = request.json()
133
+ ip_ranges.extend(request.json()["runners"])
134
+
135
+ request = requests.get("https://buddy.works/api/ips/eu")
136
+ request.raise_for_status()
137
+ ip_ranges.extend(request.json()["runners"])
106
138
 
107
- for item in data["runners"] + data["vms"]:
139
+ for item in ip_ranges:
108
140
  result.append(item)
109
141
 
110
142
  return result
@@ -123,6 +155,7 @@ def main() -> None:
123
155
  BuddyIPRangeHandler(),
124
156
  GoogleCloudIPRangeHandler(),
125
157
  AtlassianIPRangeHandler(),
158
+ AWSIPRangeHandler(),
126
159
  ]
127
160
 
128
161
  for handler in handlers:
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: python3-cyberfusion-external-providers-ip-ranges
3
- Version: 2.1.2
3
+ Version: 2.3
4
4
  Summary: Scripts to add IP ranges of external providers to ferm.
5
5
  Author-email: Cyberfusion <support@cyberfusion.io>
6
6
  Project-URL: Source, https://github.com/CyberfusionIO/python3-cyberfusion-external-providers-ip-ranges