Skip to content

Commit 88dd41a

Browse files
author
Antti Myyrä
committed
feat(server): Support listing server plans, as requested in #121
1 parent 0404dcc commit 88dd41a

File tree

3 files changed

+252
-0
lines changed

3 files changed

+252
-0
lines changed

test/json_data/plan.json

Lines changed: 238 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,238 @@
1+
{
2+
"plans" : {
3+
"plan" : [
4+
{
5+
"core_number" : 1,
6+
"memory_amount" : 2048,
7+
"name" : "1xCPU-2GB",
8+
"public_traffic_out" : 2048,
9+
"storage_size" : 50,
10+
"storage_tier" : "maxiops"
11+
},
12+
{
13+
"core_number" : 1,
14+
"memory_amount" : 1024,
15+
"name" : "1xCPU-1GB",
16+
"public_traffic_out" : 1024,
17+
"storage_size" : 25,
18+
"storage_tier" : "maxiops"
19+
},
20+
{
21+
"core_number" : 2,
22+
"memory_amount" : 4096,
23+
"name" : "2xCPU-4GB",
24+
"public_traffic_out" : 4096,
25+
"storage_size" : 80,
26+
"storage_tier" : "maxiops"
27+
},
28+
{
29+
"core_number" : 2,
30+
"memory_amount" : 16384,
31+
"name" : "HIMEM-2xCPU-16GB",
32+
"public_traffic_out" : 2048,
33+
"storage_size" : 100,
34+
"storage_tier" : "maxiops"
35+
},
36+
{
37+
"core_number" : 2,
38+
"memory_amount" : 8192,
39+
"name" : "HIMEM-2xCPU-8GB",
40+
"public_traffic_out" : 2048,
41+
"storage_size" : 100,
42+
"storage_tier" : "maxiops"
43+
},
44+
{
45+
"core_number" : 4,
46+
"memory_amount" : 65536,
47+
"name" : "HIMEM-4xCPU-64GB",
48+
"public_traffic_out" : 4096,
49+
"storage_size" : 200,
50+
"storage_tier" : "maxiops"
51+
},
52+
{
53+
"core_number" : 4,
54+
"memory_amount" : 32768,
55+
"name" : "HIMEM-4xCPU-32GB",
56+
"public_traffic_out" : 4096,
57+
"storage_size" : 100,
58+
"storage_tier" : "maxiops"
59+
},
60+
{
61+
"core_number" : 4,
62+
"memory_amount" : 8192,
63+
"name" : "4xCPU-8GB",
64+
"public_traffic_out" : 5120,
65+
"storage_size" : 160,
66+
"storage_tier" : "maxiops"
67+
},
68+
{
69+
"core_number" : 6,
70+
"memory_amount" : 131072,
71+
"name" : "HIMEM-6xCPU-128GB",
72+
"public_traffic_out" : 6144,
73+
"storage_size" : 300,
74+
"storage_tier" : "maxiops"
75+
},
76+
{
77+
"core_number" : 6,
78+
"memory_amount" : 16384,
79+
"name" : "6xCPU-16GB",
80+
"public_traffic_out" : 6144,
81+
"storage_size" : 320,
82+
"storage_tier" : "maxiops"
83+
},
84+
{
85+
"core_number" : 8,
86+
"memory_amount" : 16384,
87+
"name" : "HICPU-8xCPU-16GB",
88+
"public_traffic_out" : 4096,
89+
"storage_size" : 200,
90+
"storage_tier" : "maxiops"
91+
},
92+
{
93+
"core_number" : 8,
94+
"memory_amount" : 12288,
95+
"name" : "HICPU-8xCPU-12GB",
96+
"public_traffic_out" : 4096,
97+
"storage_size" : 100,
98+
"storage_tier" : "maxiops"
99+
},
100+
{
101+
"core_number" : 8,
102+
"memory_amount" : 32768,
103+
"name" : "8xCPU-32GB",
104+
"public_traffic_out" : 7168,
105+
"storage_size" : 640,
106+
"storage_tier" : "maxiops"
107+
},
108+
{
109+
"core_number" : 8,
110+
"memory_amount" : 196608,
111+
"name" : "HIMEM-8xCPU-192GB",
112+
"public_traffic_out" : 8192,
113+
"storage_size" : 400,
114+
"storage_tier" : "maxiops"
115+
},
116+
{
117+
"core_number" : 12,
118+
"memory_amount" : 49152,
119+
"name" : "12xCPU-48GB",
120+
"public_traffic_out" : 9216,
121+
"storage_size" : 960,
122+
"storage_tier" : "maxiops"
123+
},
124+
{
125+
"core_number" : 12,
126+
"memory_amount" : 262144,
127+
"name" : "HIMEM-12xCPU-256GB",
128+
"public_traffic_out" : 10240,
129+
"storage_size" : 500,
130+
"storage_tier" : "maxiops"
131+
},
132+
{
133+
"core_number" : 16,
134+
"memory_amount" : 24576,
135+
"name" : "HICPU-16xCPU-24GB",
136+
"public_traffic_out" : 5120,
137+
"storage_size" : 100,
138+
"storage_tier" : "maxiops"
139+
},
140+
{
141+
"core_number" : 16,
142+
"memory_amount" : 65536,
143+
"name" : "16xCPU-64GB",
144+
"public_traffic_out" : 10240,
145+
"storage_size" : 1280,
146+
"storage_tier" : "maxiops"
147+
},
148+
{
149+
"core_number" : 16,
150+
"memory_amount" : 393216,
151+
"name" : "HIMEM-16xCPU-384GB",
152+
"public_traffic_out" : 12288,
153+
"storage_size" : 600,
154+
"storage_tier" : "maxiops"
155+
},
156+
{
157+
"core_number" : 16,
158+
"memory_amount" : 32768,
159+
"name" : "HICPU-16xCPU-32GB",
160+
"public_traffic_out" : 5120,
161+
"storage_size" : 200,
162+
"storage_tier" : "maxiops"
163+
},
164+
{
165+
"core_number" : 24,
166+
"memory_amount" : 98304,
167+
"name" : "24xCPU-96GB",
168+
"public_traffic_out" : 12288,
169+
"storage_size" : 1920,
170+
"storage_tier" : "maxiops"
171+
},
172+
{
173+
"core_number" : 32,
174+
"memory_amount" : 49152,
175+
"name" : "HICPU-32xCPU-48GB",
176+
"public_traffic_out" : 6144,
177+
"storage_size" : 200,
178+
"storage_tier" : "maxiops"
179+
},
180+
{
181+
"core_number" : 32,
182+
"memory_amount" : 65536,
183+
"name" : "HICPU-32xCPU-64GB",
184+
"public_traffic_out" : 6144,
185+
"storage_size" : 300,
186+
"storage_tier" : "maxiops"
187+
},
188+
{
189+
"core_number" : 32,
190+
"memory_amount" : 131072,
191+
"name" : "32xCPU-128GB",
192+
"public_traffic_out" : 24576,
193+
"storage_size" : 2048,
194+
"storage_tier" : "maxiops"
195+
},
196+
{
197+
"core_number" : 38,
198+
"memory_amount" : 196608,
199+
"name" : "38xCPU-192GB",
200+
"public_traffic_out" : 24576,
201+
"storage_size" : 2048,
202+
"storage_tier" : "maxiops"
203+
},
204+
{
205+
"core_number" : 48,
206+
"memory_amount" : 262144,
207+
"name" : "48xCPU-256GB",
208+
"public_traffic_out" : 24576,
209+
"storage_size" : 2048,
210+
"storage_tier" : "maxiops"
211+
},
212+
{
213+
"core_number" : 64,
214+
"memory_amount" : 98304,
215+
"name" : "HICPU-64xCPU-96GB",
216+
"public_traffic_out" : 7168,
217+
"storage_size" : 200,
218+
"storage_tier" : "maxiops"
219+
},
220+
{
221+
"core_number" : 64,
222+
"memory_amount" : 393216,
223+
"name" : "64xCPU-384GB",
224+
"public_traffic_out" : 24576,
225+
"storage_size" : 2048,
226+
"storage_tier" : "maxiops"
227+
},
228+
{
229+
"core_number" : 64,
230+
"memory_amount" : 131072,
231+
"name" : "HICPU-64xCPU-128GB",
232+
"public_traffic_out" : 7168,
233+
"storage_size" : 300,
234+
"storage_tier" : "maxiops"
235+
}
236+
]
237+
}
238+
}

test/test_cloud_manager.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,3 +34,10 @@ def test_get_timezones(self, manager):
3434

3535
res = manager.get_timezones()
3636
assert json.loads(data) == res
37+
38+
@responses.activate
39+
def test_get_plans(self, manager):
40+
data = Mock.mock_get("plan")
41+
42+
res = manager.get_server_plans()
43+
assert json.loads(data) == res

upcloud_api/cloud_manager/__init__.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,3 +82,10 @@ def get_server_sizes(self):
8282
Returns a list of available server configurations.
8383
"""
8484
return self.api.get_request('/server_size')
85+
86+
def get_server_plans(self):
87+
"""
88+
Returns a list of available server plans
89+
:return:
90+
"""
91+
return self.api.get_request('/plan')

0 commit comments

Comments
 (0)