Skip to content

Commit

Permalink
Add 'successor' field to InstanceType (linode#348)
Browse files Browse the repository at this point in the history
* adding successor

* fixibg fixtures

* Revert "fixibg fixtures"

This reverts commit d11dc4d.
  • Loading branch information
amisiorek-akamai authored Jul 24, 2023
1 parent 73b69a0 commit 4479637
Show file tree
Hide file tree
Showing 3 changed files with 92 additions and 73 deletions.
4 changes: 2 additions & 2 deletions test/integration/fixtures/TestType_GetFound.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ interactions:
url: https://api.linode.com/v4beta/linode/types/g6-standard-1
method: GET
response:
body: '{"id": "g6-standard-1", "label": "Linode 2GB", "price": {"hourly": 0.015,
"monthly": 10.0}, "addons": {"backups": {"price": {"hourly": 0.004, "monthly":
body: '{"id": "g6-standard-1", "label": "Linode 2GB", "price": {"hourly": 0.018,
"monthly": 12.0}, "addons": {"backups": {"price": {"hourly": 0.004, "monthly":
2.5}}}, "memory": 2048, "disk": 51200, "transfer": 2000, "vcpus": 1, "gpus":
0, "network_out": 2000, "class": "standard", "successor": null}'
headers:
Expand Down
160 changes: 89 additions & 71 deletions test/integration/fixtures/TestTypes_List.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -18,50 +18,50 @@ interactions:
0.0075, "monthly": 5.0}, "addons": {"backups": {"price": {"hourly": 0.003, "monthly":
2.0}}}, "memory": 1024, "disk": 25600, "transfer": 1000, "vcpus": 1, "gpus":
0, "network_out": 1000, "class": "nanode", "successor": null}, {"id": "g6-standard-1",
"label": "Linode 2GB", "price": {"hourly": 0.015, "monthly": 10.0}, "addons":
"label": "Linode 2GB", "price": {"hourly": 0.018, "monthly": 12.0}, "addons":
{"backups": {"price": {"hourly": 0.004, "monthly": 2.5}}}, "memory": 2048, "disk":
51200, "transfer": 2000, "vcpus": 1, "gpus": 0, "network_out": 2000, "class":
"standard", "successor": null}, {"id": "g6-standard-2", "label": "Linode 4GB",
"price": {"hourly": 0.03, "monthly": 20.0}, "addons": {"backups": {"price":
"price": {"hourly": 0.036, "monthly": 24.0}, "addons": {"backups": {"price":
{"hourly": 0.008, "monthly": 5.0}}}, "memory": 4096, "disk": 81920, "transfer":
4000, "vcpus": 2, "gpus": 0, "network_out": 4000, "class": "standard", "successor":
null}, {"id": "g6-standard-4", "label": "Linode 8GB", "price": {"hourly": 0.06,
"monthly": 40.0}, "addons": {"backups": {"price": {"hourly": 0.015, "monthly":
null}, {"id": "g6-standard-4", "label": "Linode 8GB", "price": {"hourly": 0.072,
"monthly": 48.0}, "addons": {"backups": {"price": {"hourly": 0.015, "monthly":
10.0}}}, "memory": 8192, "disk": 163840, "transfer": 5000, "vcpus": 4, "gpus":
0, "network_out": 5000, "class": "standard", "successor": null}, {"id": "g6-standard-6",
"label": "Linode 16GB", "price": {"hourly": 0.12, "monthly": 80.0}, "addons":
"label": "Linode 16GB", "price": {"hourly": 0.144, "monthly": 96.0}, "addons":
{"backups": {"price": {"hourly": 0.03, "monthly": 20.0}}}, "memory": 16384,
"disk": 327680, "transfer": 8000, "vcpus": 6, "gpus": 0, "network_out": 6000,
"class": "standard", "successor": null}, {"id": "g6-standard-8", "label": "Linode
32GB", "price": {"hourly": 0.24, "monthly": 160.0}, "addons": {"backups": {"price":
32GB", "price": {"hourly": 0.288, "monthly": 192.0}, "addons": {"backups": {"price":
{"hourly": 0.06, "monthly": 40.0}}}, "memory": 32768, "disk": 655360, "transfer":
16000, "vcpus": 8, "gpus": 0, "network_out": 7000, "class": "standard", "successor":
null}, {"id": "g6-standard-16", "label": "Linode 64GB", "price": {"hourly":
0.48, "monthly": 320.0}, "addons": {"backups": {"price": {"hourly": 0.12, "monthly":
0.576, "monthly": 384.0}, "addons": {"backups": {"price": {"hourly": 0.12, "monthly":
80.0}}}, "memory": 65536, "disk": 1310720, "transfer": 20000, "vcpus": 16, "gpus":
0, "network_out": 9000, "class": "standard", "successor": null}, {"id": "g6-standard-20",
"label": "Linode 96GB", "price": {"hourly": 0.72, "monthly": 480.0}, "addons":
"label": "Linode 96GB", "price": {"hourly": 0.864, "monthly": 576.0}, "addons":
{"backups": {"price": {"hourly": 0.18, "monthly": 120.0}}}, "memory": 98304,
"disk": 1966080, "transfer": 20000, "vcpus": 20, "gpus": 0, "network_out": 10000,
"class": "standard", "successor": null}, {"id": "g6-standard-24", "label": "Linode
128GB", "price": {"hourly": 0.96, "monthly": 640.0}, "addons": {"backups": {"price":
{"hourly": 0.24, "monthly": 160.0}}}, "memory": 131072, "disk": 2621440, "transfer":
20000, "vcpus": 24, "gpus": 0, "network_out": 11000, "class": "standard", "successor":
null}, {"id": "g6-standard-32", "label": "Linode 192GB", "price": {"hourly":
1.44, "monthly": 960.0}, "addons": {"backups": {"price": {"hourly": 0.36, "monthly":
240.0}}}, "memory": 196608, "disk": 3932160, "transfer": 20000, "vcpus": 32,
"gpus": 0, "network_out": 12000, "class": "standard", "successor": null}, {"id":
"g7-highmem-1", "label": "Linode 24GB", "price": {"hourly": 0.09, "monthly":
60.0}, "addons": {"backups": {"price": {"hourly": 0.0075, "monthly": 5.0}}},
"memory": 24576, "disk": 20480, "transfer": 5000, "vcpus": 2, "gpus": 0, "network_out":
5000, "class": "highmem", "successor": null}, {"id": "g7-highmem-2", "label":
"Linode 48GB", "price": {"hourly": 0.18, "monthly": 120.0}, "addons": {"backups":
{"price": {"hourly": 0.015, "monthly": 10.0}}}, "memory": 49152, "disk": 40960,
"transfer": 6000, "vcpus": 2, "gpus": 0, "network_out": 6000, "class": "highmem",
"successor": null}, {"id": "g7-highmem-4", "label": "Linode 90GB", "price":
{"hourly": 0.36, "monthly": 240.0}, "addons": {"backups": {"price": {"hourly":
0.03, "monthly": 20.0}}}, "memory": 92160, "disk": 92160, "transfer": 7000,
"vcpus": 4, "gpus": 0, "network_out": 7000, "class": "highmem", "successor":
128GB", "price": {"hourly": 1.152, "monthly": 768.0}, "addons": {"backups":
{"price": {"hourly": 0.24, "monthly": 160.0}}}, "memory": 131072, "disk": 2621440,
"transfer": 20000, "vcpus": 24, "gpus": 0, "network_out": 11000, "class": "standard",
"successor": null}, {"id": "g6-standard-32", "label": "Linode 192GB", "price":
{"hourly": 1.728, "monthly": 1152.0}, "addons": {"backups": {"price": {"hourly":
0.36, "monthly": 240.0}}}, "memory": 196608, "disk": 3932160, "transfer": 20000,
"vcpus": 32, "gpus": 0, "network_out": 12000, "class": "standard", "successor":
null}, {"id": "g7-highmem-1", "label": "Linode 24GB", "price": {"hourly": 0.09,
"monthly": 60.0}, "addons": {"backups": {"price": {"hourly": 0.0075, "monthly":
5.0}}}, "memory": 24576, "disk": 20480, "transfer": 5000, "vcpus": 2, "gpus":
0, "network_out": 5000, "class": "highmem", "successor": null}, {"id": "g7-highmem-2",
"label": "Linode 48GB", "price": {"hourly": 0.18, "monthly": 120.0}, "addons":
{"backups": {"price": {"hourly": 0.015, "monthly": 10.0}}}, "memory": 49152,
"disk": 40960, "transfer": 6000, "vcpus": 2, "gpus": 0, "network_out": 6000,
"class": "highmem", "successor": null}, {"id": "g7-highmem-4", "label": "Linode
90GB", "price": {"hourly": 0.36, "monthly": 240.0}, "addons": {"backups": {"price":
{"hourly": 0.03, "monthly": 20.0}}}, "memory": 92160, "disk": 92160, "transfer":
7000, "vcpus": 4, "gpus": 0, "network_out": 7000, "class": "highmem", "successor":
null}, {"id": "g7-highmem-8", "label": "Linode 150GB", "price": {"hourly": 0.72,
"monthly": 480.0}, "addons": {"backups": {"price": {"hourly": 0.06, "monthly":
40.0}}}, "memory": 153600, "disk": 204800, "transfer": 8000, "vcpus": 8, "gpus":
Expand All @@ -70,72 +70,90 @@ interactions:
{"backups": {"price": {"hourly": 0.12, "monthly": 80.0}}}, "memory": 307200,
"disk": 348160, "transfer": 9000, "vcpus": 16, "gpus": 0, "network_out": 9000,
"class": "highmem", "successor": null}, {"id": "g6-dedicated-2", "label": "Dedicated
4GB", "price": {"hourly": 0.045, "monthly": 30.0}, "addons": {"backups": {"price":
4GB", "price": {"hourly": 0.054, "monthly": 36.0}, "addons": {"backups": {"price":
{"hourly": 0.008, "monthly": 5.0}}}, "memory": 4096, "disk": 81920, "transfer":
4000, "vcpus": 2, "gpus": 0, "network_out": 4000, "class": "dedicated", "successor":
null}, {"id": "g6-dedicated-4", "label": "Dedicated 8GB", "price": {"hourly":
0.09, "monthly": 60.0}, "addons": {"backups": {"price": {"hourly": 0.015, "monthly":
0.108, "monthly": 72.0}, "addons": {"backups": {"price": {"hourly": 0.015, "monthly":
10.0}}}, "memory": 8192, "disk": 163840, "transfer": 5000, "vcpus": 4, "gpus":
0, "network_out": 5000, "class": "dedicated", "successor": null}, {"id": "g6-dedicated-8",
"label": "Dedicated 16GB", "price": {"hourly": 0.18, "monthly": 120.0}, "addons":
"label": "Dedicated 16GB", "price": {"hourly": 0.216, "monthly": 144.0}, "addons":
{"backups": {"price": {"hourly": 0.03, "monthly": 20.0}}}, "memory": 16384,
"disk": 327680, "transfer": 6000, "vcpus": 8, "gpus": 0, "network_out": 6000,
"class": "dedicated", "successor": null}, {"id": "g6-dedicated-16", "label":
"Dedicated 32GB", "price": {"hourly": 0.36, "monthly": 240.0}, "addons": {"backups":
"Dedicated 32GB", "price": {"hourly": 0.432, "monthly": 288.0}, "addons": {"backups":
{"price": {"hourly": 0.06, "monthly": 40.0}}}, "memory": 32768, "disk": 655360,
"transfer": 7000, "vcpus": 16, "gpus": 0, "network_out": 7000, "class": "dedicated",
"successor": null}, {"id": "g6-dedicated-32", "label": "Dedicated 64GB", "price":
{"hourly": 0.72, "monthly": 480.0}, "addons": {"backups": {"price": {"hourly":
{"hourly": 0.864, "monthly": 576.0}, "addons": {"backups": {"price": {"hourly":
0.12, "monthly": 80.0}}}, "memory": 65536, "disk": 1310720, "transfer": 8000,
"vcpus": 32, "gpus": 0, "network_out": 8000, "class": "dedicated", "successor":
null}, {"id": "g6-dedicated-48", "label": "Dedicated 96GB", "price": {"hourly":
1.08, "monthly": 720.0}, "addons": {"backups": {"price": {"hourly": 0.18, "monthly":
1.296, "monthly": 864.0}, "addons": {"backups": {"price": {"hourly": 0.18, "monthly":
120.0}}}, "memory": 98304, "disk": 1966080, "transfer": 9000, "vcpus": 48, "gpus":
0, "network_out": 9000, "class": "dedicated", "successor": null}, {"id": "g6-dedicated-50",
"label": "Dedicated 128GB", "price": {"hourly": 1.44, "monthly": 960.0}, "addons":
"label": "Dedicated 128GB", "price": {"hourly": 1.728, "monthly": 1152.0}, "addons":
{"backups": {"price": {"hourly": 0.24, "monthly": 160.0}}}, "memory": 131072,
"disk": 2560000, "transfer": 10000, "vcpus": 50, "gpus": 0, "network_out": 10000,
"class": "dedicated", "successor": null}, {"id": "g6-dedicated-56", "label":
"Dedicated 256GB", "price": {"hourly": 2.88, "monthly": 1920.0}, "addons": {"backups":
"Dedicated 256GB", "price": {"hourly": 3.456, "monthly": 2304.0}, "addons":
{"backups": {"price": {"hourly": 0.3, "monthly": 200.0}}}, "memory": 262144,
"disk": 5120000, "transfer": 11000, "vcpus": 56, "gpus": 0, "network_out": 11000,
"class": "dedicated", "successor": null}, {"id": "g6-dedicated-64", "label":
"Dedicated 512GB", "price": {"hourly": 6.912, "monthly": 4608.0}, "addons":
{"backups": {"price": {"hourly": 0.36, "monthly": 240.0}}}, "memory": 524288,
"disk": 7372800, "transfer": 12000, "vcpus": 64, "gpus": 0, "network_out": 12000,
"class": "dedicated", "successor": null}, {"id": "g1-gpu-rtx6000-1", "label":
"Dedicated 32GB + RTX6000 GPU x1", "price": {"hourly": 1.5, "monthly": 1000.0},
"addons": {"backups": {"price": {"hourly": 0.06, "monthly": 40.0}}}, "memory":
32768, "disk": 655360, "transfer": 16000, "vcpus": 8, "gpus": 1, "network_out":
10000, "class": "gpu", "successor": null}, {"id": "g1-gpu-rtx6000-2", "label":
"Dedicated 64GB + RTX6000 GPU x2", "price": {"hourly": 3.0, "monthly": 2000.0},
"addons": {"backups": {"price": {"hourly": 0.12, "monthly": 80.0}}}, "memory":
65536, "disk": 1310720, "transfer": 20000, "vcpus": 16, "gpus": 2, "network_out":
10000, "class": "gpu", "successor": null}, {"id": "g1-gpu-rtx6000-3", "label":
"Dedicated 96GB + RTX6000 GPU x3", "price": {"hourly": 4.5, "monthly": 3000.0},
"addons": {"backups": {"price": {"hourly": 0.18, "monthly": 120.0}}}, "memory":
98304, "disk": 1966080, "transfer": 20000, "vcpus": 20, "gpus": 3, "network_out":
10000, "class": "gpu", "successor": null}, {"id": "g1-gpu-rtx6000-4", "label":
"Dedicated 128GB + RTX6000 GPU x4", "price": {"hourly": 6.0, "monthly": 4000.0},
"addons": {"backups": {"price": {"hourly": 0.24, "monthly": 160.0}}}, "memory":
131072, "disk": 2621440, "transfer": 20000, "vcpus": 24, "gpus": 4, "network_out":
10000, "class": "gpu", "successor": null}, {"id": "g7-premium-2", "label": "Premium
4GB", "price": {"hourly": 0.0645, "monthly": 43.0}, "addons": {"backups": {"price":
{"hourly": 0.008, "monthly": 5.0}}}, "memory": 4096, "disk": 81920, "transfer":
4000, "vcpus": 2, "gpus": 0, "network_out": 4000, "class": "premium", "successor":
null}, {"id": "g7-premium-4", "label": "Premium 8GB", "price": {"hourly": 0.129,
"monthly": 86.0}, "addons": {"backups": {"price": {"hourly": 0.015, "monthly":
10.0}}}, "memory": 8192, "disk": 163840, "transfer": 5000, "vcpus": 4, "gpus":
0, "network_out": 5000, "class": "premium", "successor": null}, {"id": "g7-premium-8",
"label": "Premium 16GB", "price": {"hourly": 0.2595, "monthly": 173.0}, "addons":
{"backups": {"price": {"hourly": 0.03, "monthly": 20.0}}}, "memory": 16384,
"disk": 327680, "transfer": 6000, "vcpus": 8, "gpus": 0, "network_out": 6000,
"class": "premium", "successor": null}, {"id": "g7-premium-16", "label": "Premium
32GB", "price": {"hourly": 0.519, "monthly": 346.0}, "addons": {"backups": {"price":
{"hourly": 0.06, "monthly": 40.0}}}, "memory": 32768, "disk": 655360, "transfer":
7000, "vcpus": 16, "gpus": 0, "network_out": 7000, "class": "premium", "successor":
null}, {"id": "g7-premium-32", "label": "Premium 64GB", "price": {"hourly":
1.0365, "monthly": 691.0}, "addons": {"backups": {"price": {"hourly": 0.12,
"monthly": 80.0}}}, "memory": 65536, "disk": 1310720, "transfer": 8000, "vcpus":
32, "gpus": 0, "network_out": 8000, "class": "premium", "successor": null},
{"id": "g7-premium-48", "label": "Premium 96GB", "price": {"hourly": 1.5555,
"monthly": 1037.0}, "addons": {"backups": {"price": {"hourly": 0.18, "monthly":
120.0}}}, "memory": 98304, "disk": 1966080, "transfer": 9000, "vcpus": 48, "gpus":
0, "network_out": 9000, "class": "premium", "successor": null}, {"id": "g7-premium-50",
"label": "Premium 128GB", "price": {"hourly": 2.073, "monthly": 1382.0}, "addons":
{"backups": {"price": {"hourly": 0.24, "monthly": 160.0}}}, "memory": 131072,
"disk": 2560000, "transfer": 10000, "vcpus": 50, "gpus": 0, "network_out": 10000,
"class": "premium", "successor": null}, {"id": "g7-premium-56", "label": "Premium
256GB", "price": {"hourly": 4.1475, "monthly": 2765.0}, "addons": {"backups":
{"price": {"hourly": 0.3, "monthly": 200.0}}}, "memory": 262144, "disk": 5120000,
"transfer": 11000, "vcpus": 56, "gpus": 0, "network_out": 11000, "class": "dedicated",
"successor": null}, {"id": "g6-dedicated-64", "label": "Dedicated 512GB", "price":
{"hourly": 5.76, "monthly": 3840.0}, "addons": {"backups": {"price": {"hourly":
"transfer": 11000, "vcpus": 56, "gpus": 0, "network_out": 11000, "class": "premium",
"successor": null}, {"id": "g7-premium-64", "label": "Premium 512GB", "price":
{"hourly": 8.295, "monthly": 5530.0}, "addons": {"backups": {"price": {"hourly":
0.36, "monthly": 240.0}}}, "memory": 524288, "disk": 7372800, "transfer": 12000,
"vcpus": 64, "gpus": 0, "network_out": 12000, "class": "dedicated", "successor":
null}, {"id": "g1-gpu-rtx6000-1", "label": "Dedicated 32GB + RTX6000 GPU x1",
"price": {"hourly": 1.5, "monthly": 1000.0}, "addons": {"backups": {"price":
{"hourly": 0.06, "monthly": 40.0}}}, "memory": 32768, "disk": 655360, "transfer":
16000, "vcpus": 8, "gpus": 1, "network_out": 10000, "class": "gpu", "successor":
null}, {"id": "g1-gpu-rtx6000-2", "label": "Dedicated 64GB + RTX6000 GPU x2",
"price": {"hourly": 3.0, "monthly": 2000.0}, "addons": {"backups": {"price":
{"hourly": 0.12, "monthly": 80.0}}}, "memory": 65536, "disk": 1310720, "transfer":
20000, "vcpus": 16, "gpus": 2, "network_out": 10000, "class": "gpu", "successor":
null}, {"id": "g1-gpu-rtx6000-3", "label": "Dedicated 96GB + RTX6000 GPU x3",
"price": {"hourly": 4.5, "monthly": 3000.0}, "addons": {"backups": {"price":
{"hourly": 0.18, "monthly": 120.0}}}, "memory": 98304, "disk": 1966080, "transfer":
20000, "vcpus": 20, "gpus": 3, "network_out": 10000, "class": "gpu", "successor":
null}, {"id": "g1-gpu-rtx6000-4", "label": "Dedicated 128GB + RTX6000 GPU x4",
"price": {"hourly": 6.0, "monthly": 4000.0}, "addons": {"backups": {"price":
{"hourly": 0.24, "monthly": 160.0}}}, "memory": 131072, "disk": 2621440, "transfer":
20000, "vcpus": 24, "gpus": 4, "network_out": 10000, "class": "gpu", "successor":
null}, {"id": "g1-metal-b1", "label": "Bare Metal - Tier B Level 1", "price":
{"hourly": 0.05, "monthly": 30.0}, "addons": {"backups": {"price": {"hourly":
null, "monthly": null}}}, "memory": 8192, "disk": 262144, "transfer": 10000,
"vcpus": 8, "gpus": 0, "network_out": 6000, "class": "metal", "successor": null},
{"id": "g1-metal-b2", "label": "Bare Metal - Tier B Level 2", "price": {"hourly":
0.06, "monthly": 40.0}, "addons": {"backups": {"price": {"hourly": null, "monthly":
null}}}, "memory": 16384, "disk": 524288, "transfer": 10000, "vcpus": 16, "gpus":
0, "network_out": 6000, "class": "metal", "successor": null}, {"id": "g1-metal-c1",
"label": "Bare Metal - Tier C Level 1", "price": {"hourly": 0.09, "monthly":
60.0}, "addons": {"backups": {"price": {"hourly": null, "monthly": null}}},
"memory": 32768, "disk": 983040, "transfer": 10000, "vcpus": 16, "gpus": 0,
"network_out": 6000, "class": "metal", "successor": null}, {"id": "g1-metal-c2",
"label": "Bare Metal - Tier C Level 2", "price": {"hourly": 0.12, "monthly":
80.0}, "addons": {"backups": {"price": {"hourly": null, "monthly": null}}},
"memory": 65536, "disk": 983040, "transfer": 10000, "vcpus": 32, "gpus": 0,
"network_out": 6000, "class": "metal", "successor": null}], "page": 1, "pages":
1, "results": 32}'
"vcpus": 64, "gpus": 0, "network_out": 12000, "class": "premium", "successor":
null}], "page": 1, "pages": 1, "results": 37}'
headers:
Access-Control-Allow-Credentials:
- "true"
Expand Down
1 change: 1 addition & 0 deletions types.go
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ type LinodeType struct {
Transfer int `json:"transfer"`
VCPUs int `json:"vcpus"`
GPUs int `json:"gpus"`
Successor string `json:"successor"`
}

// LinodePrice represents a linode type price object
Expand Down

0 comments on commit 4479637

Please sign in to comment.