Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,14 @@ public void testListDatabaseInstanceFlavors() throws Exception{
assertEquals(2, flavors.size());
Preconditions.checkNotNull(flavors.get(0));
Logger.getLogger(getClass().getName()).info(getClass().getName() + " : Flavor from List : "+flavors.get(0));

for(int i=0; i<flavors.size(); i++){
Flavor flavor = flavors.get(i);
assertEquals(flavor.getId(), Integer.toString(i+1));
assertEquals(flavor.getStrId(), Integer.toString(i+1));
assertEquals(flavor.getDisk(), (i+1) * 11);
assertEquals(flavor.getVcpus(), (i+1) * 111);
}
}

@Test
Expand All @@ -44,6 +52,8 @@ public void testGetFlavor() throws Exception{
assertEquals(flavor.getId(), id);
assertEquals(flavor.getName(), name);
assertEquals(flavor.getRam(), 512);
assertEquals(flavor.getDisk(), 50);
assertEquals(flavor.getVcpus(), 10);
}


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
package org.openstack4j.api.trove;

import org.openstack4j.api.AbstractTest;
import org.openstack4j.model.trove.Instance;
import org.testng.annotations.Test;

import java.util.List;

import static org.testng.Assert.assertEquals;
import static org.testng.Assert.assertNotNull;


@Test(suiteName="trove/instances")
public class DBInstanceServiceImplTest extends AbstractTest{

private static final String TROVE_INSTANCES = "/trove/instances.json";

@Override
protected Service service() {
return Service.DATABASE;
}

@Test
public void testListInstances() throws Exception{
respondWith(TROVE_INSTANCES);
List<? extends Instance> instances = osv2().trove().instanceService().list();
assertEquals(1, instances.size());
Instance instance = instances.get(0);
assertEquals(instance.getFlavor().getId(), "1");
assertEquals(instance.getHostname(), "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com");
assertEquals(instance.getId(), "44b277eb-39be-4921-be31-3d61b43651d7");
assertEquals(instance.getName(), "json_rack_instance");
assertEquals(instance.getDatastoreType(), "mysql");
assertEquals(instance.getDatastoreVersion(), "5.5");
}

}
4 changes: 3 additions & 1 deletion core-test/src/main/resources/trove/instance_flavor.json
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,8 @@
],
"ram":512,
"str_id":"1",
"id":1
"id":1,
"disk":50,
"vcpus": 10
}
}
8 changes: 6 additions & 2 deletions core-test/src/main/resources/trove/instance_flavors.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,9 @@
],
"ram":512,
"str_id":"1",
"id":1
"id":1,
"disk":11,
"vcpus": 111
},
{
"name":"test.tiny-3",
Expand All @@ -30,7 +32,9 @@
],
"ram":1024,
"str_id":"2",
"id":2
"id":2,
"disk":22,
"vcpus": 222
}
]
}
41 changes: 41 additions & 0 deletions core-test/src/main/resources/trove/instances.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
{
"instances": [
{
"datastore": {
"type": "mysql",
"version": "5.5"
},
"flavor": {
"id": "1",
"links": [
{
"href": "https://troveapi.org/v1.0/1234/flavors/1",
"rel": "self"
},
{
"href": "https://troveapi.org/flavors/1",
"rel": "bookmark"
}
]
},
"hostname": "e09ad9a3f73309469cf1f43d11e79549caf9acf2.troveexampledb.com",
"id": "44b277eb-39be-4921-be31-3d61b43651d7",
"links": [
{
"href": "https://troveapi.org/v1.0/1234/instances/44b277eb-39be-4921-be31-3d61b43651d7",
"rel": "self"
},
{
"href": "https://troveapi.org/instances/44b277eb-39be-4921-be31-3d61b43651d7",
"rel": "bookmark"
}
],
"name": "json_rack_instance",
"region": "RegionOne",
"status": "ACTIVE",
"volume": {
"size": 2
}
}
]
}
3 changes: 3 additions & 0 deletions core/src/main/java/org/openstack4j/model/trove/Flavor.java
Original file line number Diff line number Diff line change
Expand Up @@ -11,5 +11,8 @@ public interface Flavor extends ModelEntity {

String getName();
String getId();
String getStrId();
int getRam();
int getVcpus();
int getDisk();
}
7 changes: 7 additions & 0 deletions core/src/main/java/org/openstack4j/model/trove/Instance.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package org.openstack4j.model.trove;

import java.util.Date;
import java.util.List;

public interface Instance {

Expand All @@ -18,8 +19,14 @@ public interface Instance {

String getHostname();

List<String> getIp();

String getId();

String getStatus();

String getDatastoreType();

String getDatastoreVersion();

}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ public class TroveInstance implements Instance {

private String hostname;

private List<String> ip;

private String id;

private String name;
Expand All @@ -36,6 +38,8 @@ public class TroveInstance implements Instance {

private Volume volume;

private InstanceDatastore datastore;

public class Volume {

private String type;
Expand All @@ -54,14 +58,42 @@ public String getType() {

/**
*
* @param size
* The size
* @return
* The size
*/

public int getSize() {
return size;
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder("Volume{");
sb.append("type='").append(type).append('\'');
sb.append(", size=").append(size);
sb.append('}');
return sb.toString();
}
}

public class InstanceDatastore {

private String type;

private String version;

public String getType() { return type; }

public String getVersion() { return version; }

@Override
public String toString() {
final StringBuilder sb = new StringBuilder("InstanceDatastore{");
sb.append("type='").append(type).append('\'');
sb.append(", version='").append(version).append('\'');
sb.append('}');
return sb.toString();
}
}

@Override
Expand Down Expand Up @@ -94,6 +126,9 @@ public String getHostname() {
return hostname;
}

@Override
public List<String> getIp() { return ip; }

@Override
public String getId() {
return id;
Expand All @@ -113,6 +148,22 @@ public Volume getVolume() {
return volume;
}

public InstanceDatastore getDatastore() { return datastore; }

@Override
public String getDatastoreType() {
return getDatastore() != null
? getDatastore().getType()
: null;
}

@Override
public String getDatastoreVersion() {
return getDatastore() != null
? getDatastore().getVersion()
: null;
}

public static class DBInstances extends ListResult<TroveInstance> {

private static final long serialVersionUID = 1L;
Expand All @@ -125,4 +176,21 @@ protected List<TroveInstance> value() {
return instances;
}
}

@Override
public String toString() {
final StringBuilder sb = new StringBuilder("TroveInstance{");
sb.append("created=").append(created);
sb.append(", flavor=").append(flavor);
sb.append(", hostname='").append(hostname).append('\'');
sb.append(", ip='").append(ip).append('\'');
sb.append(", id='").append(id).append('\'');
sb.append(", name='").append(name).append('\'');
sb.append(", status='").append(status).append('\'');
sb.append(", updated=").append(updated);
sb.append(", volume=").append(volume);
sb.append(", datastore=").append(datastore);
sb.append('}');
return sb.toString();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,13 @@ public class TroveInstanceFlavor implements Flavor {

private static final long serialVersionUID = 1L;
private String name;
@JsonProperty("str_id")
private String id;
@JsonProperty("str_id")
private String strId;

private int ram;
private int vcpus;
private int disk;

public String getName() {
return name;
Expand All @@ -30,10 +34,22 @@ public String getId() {
return id;
}

public String getStrId() {
return strId;
}

public int getRam() {
return ram;
}

public int getVcpus() {
return vcpus;
}

public int getDisk() {
return disk;
}

public static class Flavors extends ListResult<TroveInstanceFlavor> {

private static final long serialVersionUID = 1L;
Expand Down