blob: 9200dd972097dd79cc4e267efdc60ffb970decd2 [file] [log] [blame]
package instances
import (
"fmt"
"github.com/rackspace/gophercloud"
"github.com/rackspace/gophercloud/openstack/db/v1/datastores"
"github.com/rackspace/gophercloud/openstack/db/v1/flavors"
os "github.com/rackspace/gophercloud/openstack/db/v1/instances"
)
const instance = `
{
"created": "2014-02-13T21:47:13",
"datastore": {
"type": "mysql",
"version": "5.6"
},
"flavor": {
"id": "1",
"links": [
{
"href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1",
"rel": "self"
},
{
"href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1",
"rel": "bookmark"
}
]
},
"links": [
{
"href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1",
"rel": "self"
}
],
"hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.rackspaceclouddb.com",
"id": "{instanceID}",
"name": "json_rack_instance",
"status": "BUILD",
"updated": "2014-02-13T21:47:13",
"volume": {
"size": 2
}
}
`
var createReq = `
{
"instance": {
"databases": [
{
"character_set": "utf8",
"collate": "utf8_general_ci",
"name": "sampledb"
},
{
"name": "nextround"
}
],
"flavorRef": "1",
"name": "json_rack_instance",
"users": [
{
"databases": [
{
"name": "sampledb"
}
],
"name": "demouser",
"password": "demopassword"
}
],
"volume": {
"size": 2
},
"restorePoint": {
"backupRef": "1234567890"
}
}
}
`
var createReplicaReq = `
{
"instance": {
"volume": {
"size": 1
},
"flavorRef": "9",
"name": "t2s1_ALT_GUEST",
"replica_of": "6bdca2fc-418e-40bd-a595-62abda61862d"
}
}
`
var createReplicaResp = `
{
"instance": {
"status": "BUILD",
"updated": "2014-10-14T18:42:15",
"name": "t2s1_ALT_GUEST",
"links": [
{
"href": "https://ord.databases.api.rackspacecloud.com/v1.0/5919009/instances/8367c312-7c40-4a66-aab1-5767478914fc",
"rel": "self"
},
{
"href": "https://ord.databases.api.rackspacecloud.com/instances/8367c312-7c40-4a66-aab1-5767478914fc",
"rel": "bookmark"
}
],
"created": "2014-10-14T18:42:15",
"id": "8367c312-7c40-4a66-aab1-5767478914fc",
"volume": {
"size": 1
},
"flavor": {
"id": "9"
},
"datastore": {
"version": "5.6",
"type": "mysql"
},
"replica_of": {
"id": "6bdca2fc-418e-40bd-a595-62abda61862d"
}
}
}
`
var listReplicasResp = `
{
"instances": [
{
"status": "ACTIVE",
"name": "t1s1_ALT_GUEST",
"links": [
{
"href": "https://ord.databases.api.rackspacecloud.com/v1.0/1234/instances/3c691f06-bf9a-4618-b7ec-2817ce0cf254",
"rel": "self"
},
{
"href": "https://ord.databases.api.rackspacecloud.com/instances/3c691f06-bf9a-4618-b7ec-2817ce0cf254",
"rel": "bookmark"
}
],
"ip": [
"10.0.0.3"
],
"id": "3c691f06-bf9a-4618-b7ec-2817ce0cf254",
"volume": {
"size": 1
},
"flavor": {
"id": "9"
},
"datastore": {
"version": "5.6",
"type": "mysql"
},
"replica_of": {
"id": "8b499b45-52d6-402d-b398-f9d8f279c69a"
}
}
]
}
`
var getReplicaResp = `
{
"instance": {
"status": "ACTIVE",
"updated": "2014-09-26T19:15:57",
"name": "t1_ALT_GUEST",
"created": "2014-09-26T19:15:50",
"ip": [
"10.0.0.2"
],
"replicas": [
{
"id": "3c691f06-bf9a-4618-b7ec-2817ce0cf254"
}
],
"id": "8b499b45-52d6-402d-b398-f9d8f279c69a",
"volume": {
"used": 0.54,
"size": 1
},
"flavor": {
"id": "9"
},
"datastore": {
"version": "5.6",
"type": "mysql"
}
}
}
`
var detachReq = `
{
"instance": {
"replica_of": "",
"slave_of": ""
}
}
`
var getConfigResp = `
{
"instance": {
"configuration": {
"basedir": "/usr",
"connect_timeout": "15",
"datadir": "/var/lib/mysql",
"default_storage_engine": "innodb",
"innodb_buffer_pool_instances": "1",
"innodb_buffer_pool_size": "175M",
"innodb_checksum_algorithm": "crc32",
"innodb_data_file_path": "ibdata1:10M:autoextend",
"innodb_file_per_table": "1",
"innodb_io_capacity": "200",
"innodb_log_file_size": "256M",
"innodb_log_files_in_group": "2",
"innodb_open_files": "8192",
"innodb_thread_concurrency": "0",
"join_buffer_size": "1M",
"key_buffer_size": "50M",
"local-infile": "0",
"log-error": "/var/log/mysql/mysqld.log",
"max_allowed_packet": "16M",
"max_connect_errors": "10000",
"max_connections": "40",
"max_heap_table_size": "16M",
"myisam-recover": "BACKUP",
"open_files_limit": "8192",
"performance_schema": "off",
"pid_file": "/var/run/mysqld/mysqld.pid",
"port": "3306",
"query_cache_limit": "1M",
"query_cache_size": "8M",
"query_cache_type": "1",
"read_buffer_size": "256K",
"read_rnd_buffer_size": "1M",
"server_id": "1",
"skip-external-locking": "1",
"skip_name_resolve": "1",
"sort_buffer_size": "256K",
"table_open_cache": "4096",
"thread_stack": "192K",
"tmp_table_size": "16M",
"tmpdir": "/var/tmp",
"user": "mysql",
"wait_timeout": "3600"
}
}
}
`
var associateReq = `{"instance": {"configuration": "{configGroupID}"}}`
var listBackupsResp = `
{
"backups": [
{
"status": "COMPLETED",
"updated": "2014-06-18T21:24:39",
"description": "Backup from Restored Instance",
"datastore": {
"version": "5.1",
"type": "MySQL",
"version_id": "20000000-0000-0000-0000-000000000002"
},
"id": "87972694-4be2-40f5-83f8-501656e0032a",
"size": 0.141026,
"name": "restored_backup",
"created": "2014-06-18T21:23:35",
"instance_id": "29af2cd9-0674-48ab-b87a-b160f00208e6",
"parent_id": null,
"locationRef": "http://localhost/path/to/backup"
}
]
}
`
var (
createResp = fmt.Sprintf(`{"instance":%s}`, instance)
getResp = fmt.Sprintf(`{"instance":%s}`, instance)
associateResp = fmt.Sprintf(`{"instance":%s}`, instance)
listInstancesResp = fmt.Sprintf(`{"instances":[%s]}`, instance)
)
var instanceID = "{instanceID}"
var expectedInstance = &Instance{
Created: "2014-02-13T21:47:13",
Updated: "2014-02-13T21:47:13",
Datastore: datastores.DatastorePartial{Type: "mysql", Version: "5.6"},
Flavor: flavors.Flavor{
ID: "1",
Links: []gophercloud.Link{
gophercloud.Link{Href: "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1", Rel: "self"},
gophercloud.Link{Href: "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1", Rel: "bookmark"},
},
},
Hostname: "e09ad9a3f73309469cf1f43d11e79549caf9acf2.rackspaceclouddb.com",
ID: instanceID,
Links: []gophercloud.Link{
gophercloud.Link{Href: "https://ord.databases.api.rackspacecloud.com/v1.0/1234/flavors/1", Rel: "self"},
},
Name: "json_rack_instance",
Status: "BUILD",
Volume: os.Volume{Size: 2},
}
var expectedReplica = &Instance{
Status: "BUILD",
Updated: "2014-10-14T18:42:15",
Name: "t2s1_ALT_GUEST",
Links: []gophercloud.Link{
gophercloud.Link{Rel: "self", Href: "https://ord.databases.api.rackspacecloud.com/v1.0/5919009/instances/8367c312-7c40-4a66-aab1-5767478914fc"},
gophercloud.Link{Rel: "bookmark", Href: "https://ord.databases.api.rackspacecloud.com/instances/8367c312-7c40-4a66-aab1-5767478914fc"},
},
Created: "2014-10-14T18:42:15",
ID: "8367c312-7c40-4a66-aab1-5767478914fc",
Volume: os.Volume{Size: 1},
Flavor: flavors.Flavor{ID: "9"},
Datastore: datastores.DatastorePartial{Version: "5.6", Type: "mysql"},
ReplicaOf: &Instance{
ID: "6bdca2fc-418e-40bd-a595-62abda61862d",
},
}