Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Nova networks enh #138

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
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
23 changes: 23 additions & 0 deletions nova-client/src/main/java/com/woorea/openstack/nova/Nova.java
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,9 @@
import com.woorea.openstack.nova.api.extensions.SnapshotsExtension;
import com.woorea.openstack.nova.api.extensions.VolumesExtension;
import com.woorea.openstack.nova.api.extensions.HostsExtension;
import com.woorea.openstack.nova.api.extensions.NetworksExtension;
import com.woorea.openstack.nova.api.extensions.ServicesExtension;
import com.woorea.openstack.nova.api.extensions.TenantNetworksExtension;

public class Nova extends OpenStackClient {

Expand All @@ -41,6 +44,12 @@ public class Nova extends OpenStackClient {
private final QuotaSetsResource QUOTA_SETS;

private final HostsExtension HOSTS;

private final ServicesExtension SERVICES;

private final NetworksExtension NETWORKS;

private final TenantNetworksExtension TENANT_NETWORKS;

public Nova(String endpoint, OpenStackClientConnector connector) {
super(endpoint, connector);
Expand All @@ -56,6 +65,9 @@ public Nova(String endpoint, OpenStackClientConnector connector) {
AGGREGATES = new AggregatesExtension(this);
QUOTA_SETS = new QuotaSetsResource(this);
HOSTS = new HostsExtension(this);
SERVICES = new ServicesExtension(this);
NETWORKS = new NetworksExtension(this);
TENANT_NETWORKS = new TenantNetworksExtension(this);
}

public Nova(String endpoint) {
Expand Down Expand Up @@ -110,4 +122,15 @@ public HostsExtension hosts() {
return HOSTS;
}

public ServicesExtension services() {
return SERVICES;
}

public NetworksExtension networks() {
return NETWORKS;
}

public TenantNetworksExtension tenantNetworks() {
return TENANT_NETWORKS;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package com.woorea.openstack.nova.api.extensions;


import com.woorea.openstack.base.client.Entity;
import com.woorea.openstack.base.client.HttpMethod;
import com.woorea.openstack.base.client.OpenStackClient;
import com.woorea.openstack.base.client.OpenStackRequest;
import com.woorea.openstack.nova.model.Service;
import com.woorea.openstack.nova.model.Services;

public class ServicesExtension {

private final OpenStackClient CLIENT;

public ServicesExtension(OpenStackClient client) {
CLIENT = client;
}

public List list(boolean details) {
return new List(details);
}

public Enable enable(String host, String binary) {
return new Enable(host, binary);
}

public Disable disable(String host, String binary) {
return new Disable(host, binary);
}

public class List extends OpenStackRequest<Services> {

public List(boolean detailed) {
super(CLIENT, HttpMethod.GET,
"/os-services" + (detailed ? "/detail" : ""),
null, Services.class);
}

}

public class Enable extends OpenStackRequest<Service> {

public Enable(String host, String binary) {
super(CLIENT, HttpMethod.PUT, "/os-services/enable",
Entity.json("{\"host\":\"" + host
+ "\", \"binary\":\"" + binary + "\"}"),
Service.class);
}
}

public class Disable extends OpenStackRequest<Service> {

public Disable(String host, String binary) {
super(CLIENT, HttpMethod.PUT, "/os-services/disable",
Entity.json("{\"host\":\"" + host
+ "\", \"binary\":\"" + binary + "\"}"),
Service.class);
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package com.woorea.openstack.nova.api.extensions;


import com.woorea.openstack.base.client.HttpMethod;
import com.woorea.openstack.base.client.OpenStackClient;
import com.woorea.openstack.base.client.OpenStackRequest;
import com.woorea.openstack.nova.model.TenantNetworks;

public class TenantNetworksExtension {

private final OpenStackClient CLIENT;

public TenantNetworksExtension(OpenStackClient client) {
CLIENT = client;
}

public List list() {
return new List();
}

public class List extends OpenStackRequest<TenantNetworks> {

public List() {
super(CLIENT, HttpMethod.GET, "/os-tenant-networks", null, TenantNetworks.class);
}

}

}
130 changes: 130 additions & 0 deletions nova-model/src/main/java/com/woorea/openstack/nova/model/Service.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,130 @@
package com.woorea.openstack.nova.model;

import java.io.Serializable;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonRootName;

@JsonRootName("service")
public class Service implements Serializable {

private String binary;

private String host;

private String state;

private String status;

@JsonProperty("updated_at")
private String updatedAt;

private String zone;

@JsonProperty("disabled_reason")
private String disabledReason;

public Service() {
}

public Service(String binary, String host, String state,
String status, String updated_at, String zone,
String disabled_reason) {
this.binary = binary;
this.host = host;
this.state = state;
this.status = status;
this.updatedAt = updated_at;
this.zone = zone;
this.disabledReason = disabled_reason;
}

/**
* @return the binary name of the service.
*/
public String getBinary() {
return binary;
}

/**
* @return the host machine name
*/
public String getHost() {
return host;
}

/**
* @return the stage
*/
public String getState() {
return state;
}

/**
* @return the status (enabled/disabled)
*/
public String getStatus() {
return status;
}

/**
* @return the last service meta-data update time
*/
public String getUpdatedAt() {
return updatedAt;
}

/**
* @return the image
*/
public String getZone() {
return zone;
}

/**
* @return reason for the disabling (if disabled).
*/
public String getDisabledReason() {
return disabledReason;
}

public void setBinary(String binary) {
this.binary = binary;
}


public void setHost(String host) {
this.host = host;
}

public void setState(String state) {
this.state = state;
}

public void setStatus(String status) {
this.status = status;
}

public void setUpdatedAt(String updatedAt) {
this.updatedAt = updatedAt;
}

public void setZone(String zone) {
this.zone = zone;
}

public void setDisabledReason(String disabledReason) {
this.disabledReason = disabledReason;
}

/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Service [binary=" + binary + ", host=" + host
+ ", state=" + state + ", status=" + status
+ ", updated_at=" + updatedAt + ", zone=" + zone
+ ", disabled_reason=" + disabledReason + "]";
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.woorea.openstack.nova.model;

import java.io.Serializable;
import java.util.Iterator;
import java.util.List;

import org.codehaus.jackson.annotate.JsonProperty;

public class Services implements Iterable<Service>, Serializable {

@JsonProperty("services")
private List<Service> list;

/**
* @return the list
*/
public List<Service> getList() {
return list;
}

@Override
public Iterator<Service> iterator() {
return list.iterator();
}

/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "Services [list=" + list + "]";
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package com.woorea.openstack.nova.model;

import java.io.Serializable;

import org.codehaus.jackson.map.annotate.JsonRootName;

@JsonRootName("network")
public class TenantNetwork implements Serializable {

private String id;

private String cidr;

private String label;

/**
* @return the id
*/
public String getId() {
return id;
}

/**
* @return the cidr
*/
public String getCidr() {
return cidr;
}

/**
* @return the label
*/
public String getLabel() {
return label;
}

/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "TenantNetwork [id=" + id + ", cidr=" + cidr
+ ", label=" + label + "]";
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
package com.woorea.openstack.nova.model;

import java.io.Serializable;
import java.util.Iterator;
import java.util.List;

import org.codehaus.jackson.annotate.JsonProperty;

public class TenantNetworks implements Iterable<TenantNetwork>, Serializable {

@JsonProperty("networks")
private List<TenantNetwork> list;

/**
* @return the list
*/
public List<TenantNetwork> getList() {
return list;
}

/* (non-Javadoc)
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "TenantNetworks [list=" + list + "]";
}

@Override
public Iterator<TenantNetwork> iterator() {
return list.iterator();
}

}
Loading