Skip to content
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
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,8 @@ public class KeystoneTokenProvider {

ConcurrentHashMap<String, Access> hashTenantAccess;

public KeystoneTokenProvider(String endpoint, String username, String password) {
public KeystoneTokenProvider(String endpoint, String username,
String password) {
this.keystone = new Keystone(endpoint);
this.username = username;
this.password = password;
Expand All @@ -27,14 +28,25 @@ public KeystoneTokenProvider(String endpoint, String username, String password)
public Access getAccessByTenant(String tenantName) {
Access access = hashTenantAccess.get(tenantName);
if (access == null) {
access = keystone.tokens().authenticate(new UsernamePassword(username, password))
.withTenantName(tenantName)
.execute();
access = keystone.tokens()
.authenticate(new UsernamePassword(username, password))
.withTenantName(tenantName).execute();
hashTenantAccess.put(tenantName, access);
}
return access;
}

public Access getAccessByTenantId(String tenantId) {
Access access = hashTenantAccess.get(tenantId);
if (access == null) {
access = keystone.tokens()
.authenticate(new UsernamePassword(username, password))
.withTenantId(tenantId).execute();
hashTenantAccess.put(tenantId, access);
}
return access;
}

public void expireAccessByTenant(String tenantName) {
hashTenantAccess.remove(tenantName);
}
Expand All @@ -47,10 +59,27 @@ public String getToken() {
return keystoneTokenProvider.getAccessByTenant(tenantName)
.getToken().getId();
}

@Override
public void expireToken() {
keystoneTokenProvider.expireAccessByTenant(tenantName);
}
};
}

public OpenStackTokenProvider getProviderByTenantId(final String tenantId) {
final KeystoneTokenProvider keystoneTokenProvider = this;
return new OpenStackTokenProvider() {
@Override
public String getToken() {
return keystoneTokenProvider.getAccessByTenantId(tenantId)
.getToken().getId();
}

@Override
public void expireToken() {
keystoneTokenProvider.expireAccessByTenant(tenantId);
}
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@
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.InterfaceAttachment;
import com.woorea.openstack.nova.model.InterfaceAttachmentForCreate;
import com.woorea.openstack.nova.model.InterfaceAttachments;
import com.woorea.openstack.nova.model.Metadata;
import com.woorea.openstack.nova.model.Server;
import com.woorea.openstack.nova.model.Server.Addresses;
Expand Down Expand Up @@ -537,5 +540,41 @@ public ShowVolumeAttachment showVolumeAttachment(String serverId, String volumeA
return new ShowVolumeAttachment(serverId, volumeAttachmentId);
}

public class ListInterfaceAttachments extends OpenStackRequest<InterfaceAttachments> {

public ListInterfaceAttachments(String serverId) {
super(CLIENT, HttpMethod.GET, new StringBuilder("/servers/").append(serverId).append("/os-interface"), null, InterfaceAttachments.class);
}

}

public class ShowInterfaceAttachment extends OpenStackRequest<InterfaceAttachment> {

public ShowInterfaceAttachment(String serverId, String interfaceAttachmentId) {
super(CLIENT, HttpMethod.GET, new StringBuilder("/servers/").append(serverId).append("/os-interface/").append(interfaceAttachmentId), null, InterfaceAttachment.class);
}

}

public class CreateInterfaceAttachment extends OpenStackRequest<InterfaceAttachment> {

public CreateInterfaceAttachment(String serverId, InterfaceAttachmentForCreate action) {
super(CLIENT, HttpMethod.POST, new StringBuilder("/servers/").append(serverId).append("/os-interface"), Entity.json(action), InterfaceAttachment.class);
}

}

public ListInterfaceAttachments listInterfaceAttachments(String serverId) {
return new ListInterfaceAttachments(serverId);
}

public ShowInterfaceAttachment showInterfaceAttachment(String serverId, String interfaceAttachmentId) {
return new ShowInterfaceAttachment(serverId, interfaceAttachmentId);
}

public CreateInterfaceAttachment createInterfaceAttachment(String serverId, InterfaceAttachmentForCreate interfaceAttachmentForCreate) {
return new CreateInterfaceAttachment(serverId, interfaceAttachmentForCreate);
}

}

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

import java.io.Serializable;

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

@JsonRootName("fixed_ip")
public class FixedIp implements Serializable {

@JsonProperty("subnet_id")
private String subnetId;

@JsonProperty("ip_address")
private String ipAddress;

/**
* @return the subnetId
*/
public String getSubnetId() {
return subnetId;
}

/**
* @return the ipAddress
*/
public String getIpAddress() {
return ipAddress;
}

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

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
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 FixedIps implements Iterable<FixedIp>, Serializable {

@JsonProperty("fixed_ips")
private List<FixedIp> list;

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

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

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

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

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

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

@JsonRootName("interfaceAttachment")
public class InterfaceAttachment implements Serializable {

@JsonProperty("mac_addr")
private String macAddress;

@JsonProperty("net_id")
private String networkId;

@JsonProperty("port_id")
private String portId;

@JsonProperty("port_state")
private String portState;

@JsonProperty("fixed_ips")
private List<FixedIp> fixedIps;

/**
* @return the macAddress
*/
public String getMacAddress() {
return macAddress;
}

/**
* @return the networkId
*/
public String getNetworkId() {
return networkId;
}

/**
* @return the portId
*/
public String getPortId() {
return portId;
}

/**
* @return the portState
*/
public String getPortState() {
return portState;
}

/**
* @return the fixedIps
*/
public List<FixedIp> getFixedIps() {
return fixedIps;
}

/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "InterfaceAttachment [macAddress=" + macAddress + ", networkId="
+ networkId + ", portId=" + portId + ", portState=" + portState
+ ", fixedIps=" + fixedIps + "]";
}

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

import java.io.Serializable;

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

@JsonRootName("interfaceAttachment")
public class InterfaceAttachmentForCreate implements Serializable {

@JsonProperty("port_id")
private String portId;

/**
* @return the portId
*/
public String getPortId() {
return portId;
}

/**
* @param portId
* the portId to set
*/
public void setPortId(String portId) {
this.portId = portId;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
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 InterfaceAttachments implements Iterable<InterfaceAttachment>,
Serializable {

@JsonProperty("interfaceAttachments")
private List<InterfaceAttachment> list;

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

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

/*
* (non-Javadoc)
*
* @see java.lang.Object#toString()
*/
@Override
public String toString() {
return "InterfaceAttachments [list=" + list + "]";
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,9 @@ public class NetworkForCreate {
private String id;
@JsonProperty("fixed_ip")
private String fixedIp;

@JsonProperty("port")
private String port;

public String getId() {
return id;
}
Expand All @@ -18,6 +20,10 @@ public String getFixedIp() {
return fixedIp;
}

public String getPort() {
return port;
}

public void setId(String id) {
this.id = id;
}
Expand All @@ -26,4 +32,7 @@ public void setFixedIp(String fixedIp) {
this.fixedIp = fixedIp;
}

public void setPort(String port) {
this.port = port;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -316,10 +316,11 @@ public void setNetworks(List<NetworkForCreate> networks) {
this.networks = networks;
}

public void addNetworks(String id, String fixedIp) {
public void addNetworks(String id, String fixedIp, String port) {
NetworkForCreate net = new NetworkForCreate();
net.setId(id);
net.setFixedIp(fixedIp);
net.setPort(port);
this.networks.add(net);
}

Expand Down
Loading