mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
updated regions branch with changes from master
This commit is contained in:
commit
4fcf64dd74
@ -50,7 +50,9 @@ wait_for_network() {
|
|||||||
i=1
|
i=1
|
||||||
while [ $i -lt 10 ]
|
while [ $i -lt 10 ]
|
||||||
do
|
do
|
||||||
if ip addr show cloudbr0 |grep -w inet > /dev/null 2>&1; then
|
# Under Ubuntu and Debian libvirt by default creates a bridge called virbr0.
|
||||||
|
# That's why we want more then 3 lines back from brctl, so that there is a manually created bridge
|
||||||
|
if [ "$(brctl show|wc -l)" -gt 2 ]; then
|
||||||
break
|
break
|
||||||
else
|
else
|
||||||
sleep 1
|
sleep 1
|
||||||
@ -75,7 +77,6 @@ start() {
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
#FIXME: wait for network
|
|
||||||
wait_for_network
|
wait_for_network
|
||||||
|
|
||||||
if start-stop-daemon --start --quiet \
|
if start-stop-daemon --start --quiet \
|
||||||
|
|||||||
@ -1,272 +0,0 @@
|
|||||||
// Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
// or more contributor license agreements. See the NOTICE file
|
|
||||||
// distributed with this work for additional information
|
|
||||||
// regarding copyright ownership. The ASF licenses this file
|
|
||||||
// to you under the Apache License, Version 2.0 (the
|
|
||||||
// "License"); you may not use this file except in compliance
|
|
||||||
// with the License. You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing,
|
|
||||||
// software distributed under the License is distributed on an
|
|
||||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
// KIND, either express or implied. See the License for the
|
|
||||||
// specific language governing permissions and limitations
|
|
||||||
// under the License.
|
|
||||||
package com.cloud.agent.dhcp;
|
|
||||||
|
|
||||||
import java.net.InetAddress;
|
|
||||||
import java.net.UnknownHostException;
|
|
||||||
import java.util.Formatter;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import org.jnetpcap.packet.JMemoryPacket;
|
|
||||||
import org.jnetpcap.packet.JPacket;
|
|
||||||
import org.jnetpcap.packet.PcapPacket;
|
|
||||||
import org.jnetpcap.protocol.lan.Ethernet;
|
|
||||||
import org.jnetpcap.protocol.lan.IEEE802dot1q;
|
|
||||||
import org.jnetpcap.protocol.network.Ip4;
|
|
||||||
import org.jnetpcap.protocol.tcpip.Udp;
|
|
||||||
|
|
||||||
import com.cloud.agent.dhcp.DhcpSnooperImpl.DHCPState;
|
|
||||||
|
|
||||||
public class DhcpPacketParser implements Runnable {
|
|
||||||
private static final Logger s_logger = Logger
|
|
||||||
.getLogger(DhcpPacketParser.class);
|
|
||||||
|
|
||||||
private enum DHCPPACKET {
|
|
||||||
OP(0), HTYPE(1), HLEN(2), HOPS(3), XID(4), SECS(8), FLAGS(10), CIADDR(
|
|
||||||
12), YIADDR(16), SIDADDR(20), GIADDR(24), CHADDR(28), SNAME(44), FILE(
|
|
||||||
108), MAGIC(236), OPTIONS(240);
|
|
||||||
int offset;
|
|
||||||
|
|
||||||
DHCPPACKET(int i) {
|
|
||||||
offset = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
int getValue() {
|
|
||||||
return offset;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private enum DHCPOPTIONTYPE {
|
|
||||||
PAD(0), MESSAGETYPE(53), REQUESTEDIP(50), END(255);
|
|
||||||
int type;
|
|
||||||
|
|
||||||
DHCPOPTIONTYPE(int i) {
|
|
||||||
type = i;
|
|
||||||
}
|
|
||||||
|
|
||||||
int getValue() {
|
|
||||||
return type;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private enum DHCPMSGTYPE {
|
|
||||||
DHCPDISCOVER(1), DHCPOFFER(2), DHCPREQUEST(3), DHCPDECLINE(4), DHCPACK(
|
|
||||||
5), DHCPNAK(6), DHCPRELEASE(7), DHCPINFORM(8);
|
|
||||||
int _type;
|
|
||||||
|
|
||||||
DHCPMSGTYPE(int type) {
|
|
||||||
_type = type;
|
|
||||||
}
|
|
||||||
|
|
||||||
int getValue() {
|
|
||||||
return _type;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static DHCPMSGTYPE valueOf(int type) {
|
|
||||||
for (DHCPMSGTYPE t : values()) {
|
|
||||||
if (type == t.getValue()) {
|
|
||||||
return t;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private class DHCPMSG {
|
|
||||||
DHCPMSGTYPE msgType;
|
|
||||||
byte[] caddr;
|
|
||||||
byte[] yaddr;
|
|
||||||
byte[] chaddr;
|
|
||||||
byte[] requestedIP;
|
|
||||||
|
|
||||||
public DHCPMSG() {
|
|
||||||
caddr = new byte[4];
|
|
||||||
yaddr = new byte[4];
|
|
||||||
chaddr = new byte[6];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private PcapPacket _buffer;
|
|
||||||
private int _offset;
|
|
||||||
private int _len;
|
|
||||||
private DhcpSnooperImpl _manager;
|
|
||||||
|
|
||||||
public DhcpPacketParser(PcapPacket buffer, int offset, int len,
|
|
||||||
DhcpSnooperImpl manager) {
|
|
||||||
_buffer = buffer;
|
|
||||||
_offset = offset;
|
|
||||||
_len = len;
|
|
||||||
_manager = manager;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getPos(int pos) {
|
|
||||||
return _offset + pos;
|
|
||||||
}
|
|
||||||
|
|
||||||
private byte getByte(int offset) {
|
|
||||||
return _buffer.getByte(getPos(offset));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void getByteArray(int offset, byte[] array) {
|
|
||||||
_buffer.getByteArray(getPos(offset), array);
|
|
||||||
}
|
|
||||||
|
|
||||||
private long getUInt(int offset) {
|
|
||||||
return _buffer.getUInt(getPos(offset));
|
|
||||||
}
|
|
||||||
|
|
||||||
private DHCPMSG getDhcpMsg() {
|
|
||||||
long magic = getUInt(DHCPPACKET.MAGIC.getValue());
|
|
||||||
if (magic != 0x63538263) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
DHCPMSG msg = new DHCPMSG();
|
|
||||||
|
|
||||||
int pos = DHCPPACKET.OPTIONS.getValue();
|
|
||||||
while (pos <= _len) {
|
|
||||||
int type = (int) getByte(pos++) & 0xff;
|
|
||||||
|
|
||||||
if (type == DHCPOPTIONTYPE.END.getValue()) {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (type == DHCPOPTIONTYPE.PAD.getValue()) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
int len = 0;
|
|
||||||
if (pos <= _len) {
|
|
||||||
len = ((int) getByte(pos++)) & 0xff;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == DHCPOPTIONTYPE.MESSAGETYPE.getValue()
|
|
||||||
|| type == DHCPOPTIONTYPE.REQUESTEDIP.getValue()) {
|
|
||||||
/* Read data only if needed */
|
|
||||||
byte[] data = null;
|
|
||||||
if ((len + pos) <= _len) {
|
|
||||||
data = new byte[len];
|
|
||||||
getByteArray(pos, data);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (type == DHCPOPTIONTYPE.MESSAGETYPE.getValue()) {
|
|
||||||
msg.msgType = DHCPMSGTYPE.valueOf((int) data[0]);
|
|
||||||
} else if (type == DHCPOPTIONTYPE.REQUESTEDIP.getValue()) {
|
|
||||||
msg.requestedIP = data;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pos += len;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (msg.msgType == DHCPMSGTYPE.DHCPREQUEST) {
|
|
||||||
getByteArray(DHCPPACKET.CHADDR.getValue(), msg.chaddr);
|
|
||||||
getByteArray(DHCPPACKET.CIADDR.getValue(), msg.caddr);
|
|
||||||
} else if (msg.msgType == DHCPMSGTYPE.DHCPACK) {
|
|
||||||
getByteArray(DHCPPACKET.YIADDR.getValue(), msg.yaddr);
|
|
||||||
}
|
|
||||||
return msg;
|
|
||||||
}
|
|
||||||
|
|
||||||
private String formatMacAddress(byte[] mac) {
|
|
||||||
StringBuffer sb = new StringBuffer();
|
|
||||||
Formatter formatter = new Formatter(sb);
|
|
||||||
for (int i = 0; i < mac.length; i++) {
|
|
||||||
formatter.format("%02X%s", mac[i], (i < mac.length - 1) ? ":" : "");
|
|
||||||
}
|
|
||||||
return sb.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
private String getDestMacAddress() {
|
|
||||||
Ethernet ether = new Ethernet();
|
|
||||||
if (_buffer.hasHeader(ether)) {
|
|
||||||
byte[] destMac = ether.destination();
|
|
||||||
return formatMacAddress(destMac);
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
private InetAddress getDHCPServerIP() {
|
|
||||||
Ip4 ip = new Ip4();
|
|
||||||
if (_buffer.hasHeader(ip)) {
|
|
||||||
try {
|
|
||||||
return InetAddress.getByAddress(ip.source());
|
|
||||||
} catch (UnknownHostException e) {
|
|
||||||
s_logger.debug("Failed to get dhcp server ip address: "
|
|
||||||
+ e.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void run() {
|
|
||||||
DHCPMSG msg = getDhcpMsg();
|
|
||||||
|
|
||||||
if (msg == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (msg.msgType == DHCPMSGTYPE.DHCPACK) {
|
|
||||||
InetAddress ip = null;
|
|
||||||
try {
|
|
||||||
ip = InetAddress.getByAddress(msg.yaddr);
|
|
||||||
String macAddr = getDestMacAddress();
|
|
||||||
_manager.setIPAddr(macAddr, ip, DHCPState.DHCPACKED,
|
|
||||||
getDHCPServerIP());
|
|
||||||
} catch (UnknownHostException e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
} else if (msg.msgType == DHCPMSGTYPE.DHCPREQUEST) {
|
|
||||||
InetAddress ip = null;
|
|
||||||
if (msg.requestedIP != null) {
|
|
||||||
try {
|
|
||||||
ip = InetAddress.getByAddress(msg.requestedIP);
|
|
||||||
} catch (UnknownHostException e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if (ip == null) {
|
|
||||||
try {
|
|
||||||
ip = InetAddress.getByAddress(msg.caddr);
|
|
||||||
} catch (UnknownHostException e) {
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (ip != null) {
|
|
||||||
String macAddr = formatMacAddress(msg.chaddr);
|
|
||||||
_manager.setIPAddr(macAddr, ip, DHCPState.DHCPREQUESTED, null);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
private void test() {
|
|
||||||
JPacket packet = new JMemoryPacket(
|
|
||||||
Ethernet.ID,
|
|
||||||
" 06fa 8800 00b3 0656 d200 0027 8100 001a 0800 4500 0156 64bf 0000 4011 f3f2 ac1a 6412 ac1a 649e 0043 0044 0001 0000 0001");
|
|
||||||
Ethernet eth = new Ethernet();
|
|
||||||
if (packet.hasHeader(eth)) {
|
|
||||||
System.out.print(" ether:" + eth);
|
|
||||||
}
|
|
||||||
IEEE802dot1q vlan = new IEEE802dot1q();
|
|
||||||
if (packet.hasHeader(vlan)) {
|
|
||||||
System.out.print(" vlan: " + vlan);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (packet.hasHeader(Udp.ID)) {
|
|
||||||
System.out.print("has udp");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@ -1,324 +0,0 @@
|
|||||||
// Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
// or more contributor license agreements. See the NOTICE file
|
|
||||||
// distributed with this work for additional information
|
|
||||||
// regarding copyright ownership. The ASF licenses this file
|
|
||||||
// to you under the Apache License, Version 2.0 (the
|
|
||||||
// "License"); you may not use this file except in compliance
|
|
||||||
// with the License. You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing,
|
|
||||||
// software distributed under the License is distributed on an
|
|
||||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
// KIND, either express or implied. See the License for the
|
|
||||||
// specific language governing permissions and limitations
|
|
||||||
// under the License.
|
|
||||||
package com.cloud.agent.dhcp;
|
|
||||||
|
|
||||||
import java.net.InetAddress;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Collection;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.concurrent.ConcurrentHashMap;
|
|
||||||
import java.util.concurrent.ExecutorService;
|
|
||||||
import java.util.concurrent.LinkedBlockingQueue;
|
|
||||||
import java.util.concurrent.ThreadPoolExecutor;
|
|
||||||
import java.util.concurrent.TimeUnit;
|
|
||||||
|
|
||||||
import javax.ejb.Local;
|
|
||||||
import javax.naming.ConfigurationException;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import org.jnetpcap.Pcap;
|
|
||||||
import org.jnetpcap.PcapBpfProgram;
|
|
||||||
import org.jnetpcap.PcapIf;
|
|
||||||
import org.jnetpcap.packet.PcapPacket;
|
|
||||||
import org.jnetpcap.packet.PcapPacketHandler;
|
|
||||||
import org.jnetpcap.protocol.tcpip.Udp;
|
|
||||||
|
|
||||||
import com.cloud.utils.Pair;
|
|
||||||
import com.cloud.utils.concurrency.NamedThreadFactory;
|
|
||||||
|
|
||||||
@Local(value = { DhcpSnooper.class })
|
|
||||||
public class DhcpSnooperImpl implements DhcpSnooper {
|
|
||||||
private static final Logger s_logger = Logger
|
|
||||||
.getLogger(DhcpSnooperImpl.class);
|
|
||||||
|
|
||||||
public enum DHCPState {
|
|
||||||
DHCPACKED, DHCPREQUESTED, DHCPRESET;
|
|
||||||
}
|
|
||||||
|
|
||||||
public class IPAddr {
|
|
||||||
String _vmName;
|
|
||||||
InetAddress _ip;
|
|
||||||
DHCPState _state;
|
|
||||||
|
|
||||||
public IPAddr(InetAddress ip, DHCPState state, String vmName) {
|
|
||||||
_ip = ip;
|
|
||||||
_state = state;
|
|
||||||
_vmName = vmName;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected ExecutorService _executor;
|
|
||||||
protected Map<String, IPAddr> _macIpMap;
|
|
||||||
protected Map<InetAddress, String> _ipMacMap;
|
|
||||||
private DhcpServer _server;
|
|
||||||
protected long _timeout = 1200000;
|
|
||||||
protected InetAddress _dhcpServerIp;
|
|
||||||
|
|
||||||
public DhcpSnooperImpl(String bridge, long timeout) {
|
|
||||||
|
|
||||||
_timeout = timeout;
|
|
||||||
_executor = new ThreadPoolExecutor(10, 10 * 10, 1, TimeUnit.DAYS,
|
|
||||||
new LinkedBlockingQueue<Runnable>(), new NamedThreadFactory(
|
|
||||||
"DhcpListener"));
|
|
||||||
_macIpMap = new ConcurrentHashMap<String, IPAddr>();
|
|
||||||
_ipMacMap = new ConcurrentHashMap<InetAddress, String>();
|
|
||||||
_server = new DhcpServer(this, bridge);
|
|
||||||
_server.start();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public InetAddress getIPAddr(String macAddr, String vmName) {
|
|
||||||
String macAddrLowerCase = macAddr.toLowerCase();
|
|
||||||
IPAddr addr = _macIpMap.get(macAddrLowerCase);
|
|
||||||
if (addr == null) {
|
|
||||||
addr = new IPAddr(null, DHCPState.DHCPRESET, vmName);
|
|
||||||
_macIpMap.put(macAddrLowerCase, addr);
|
|
||||||
} else {
|
|
||||||
addr._state = DHCPState.DHCPRESET;
|
|
||||||
}
|
|
||||||
|
|
||||||
synchronized (addr) {
|
|
||||||
try {
|
|
||||||
addr.wait(_timeout);
|
|
||||||
} catch (InterruptedException e) {
|
|
||||||
}
|
|
||||||
if (addr._state == DHCPState.DHCPACKED) {
|
|
||||||
addr._state = DHCPState.DHCPRESET;
|
|
||||||
return addr._ip;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public InetAddress getDhcpServerIP() {
|
|
||||||
return _dhcpServerIp;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void cleanup(String macAddr, String vmName) {
|
|
||||||
try {
|
|
||||||
if (macAddr == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
_macIpMap.remove(macAddr);
|
|
||||||
_ipMacMap.values().remove(macAddr);
|
|
||||||
} catch (Exception e) {
|
|
||||||
s_logger.debug("Failed to cleanup: " + e.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Map<String, InetAddress> syncIpAddr() {
|
|
||||||
Collection<IPAddr> ips = _macIpMap.values();
|
|
||||||
HashMap<String, InetAddress> vmIpMap = new HashMap<String, InetAddress>();
|
|
||||||
for (IPAddr ip : ips) {
|
|
||||||
if (ip._state == DHCPState.DHCPACKED) {
|
|
||||||
vmIpMap.put(ip._vmName, ip._ip);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return vmIpMap;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void initializeMacTable(List<Pair<String, String>> macVmNameList) {
|
|
||||||
for (Pair<String, String> macVmname : macVmNameList) {
|
|
||||||
IPAddr ipAdrr = new IPAddr(null, DHCPState.DHCPRESET,
|
|
||||||
macVmname.second());
|
|
||||||
_macIpMap.put(macVmname.first(), ipAdrr);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected void setIPAddr(String macAddr, InetAddress ip, DHCPState state,
|
|
||||||
InetAddress dhcpServerIp) {
|
|
||||||
String macAddrLowerCase = macAddr.toLowerCase();
|
|
||||||
if (state == DHCPState.DHCPREQUESTED) {
|
|
||||||
IPAddr ipAddr = _macIpMap.get(macAddrLowerCase);
|
|
||||||
if (ipAddr == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
_ipMacMap.put(ip, macAddr);
|
|
||||||
} else if (state == DHCPState.DHCPACKED) {
|
|
||||||
_dhcpServerIp = dhcpServerIp;
|
|
||||||
String destMac = macAddrLowerCase;
|
|
||||||
if (macAddrLowerCase.equalsIgnoreCase("ff:ff:ff:ff:ff:ff")) {
|
|
||||||
destMac = _ipMacMap.get(ip);
|
|
||||||
if (destMac == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
IPAddr addr = _macIpMap.get(destMac);
|
|
||||||
if (addr != null) {
|
|
||||||
addr._ip = ip;
|
|
||||||
addr._state = state;
|
|
||||||
synchronized (addr) {
|
|
||||||
addr.notify();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* (non-Javadoc)
|
|
||||||
*
|
|
||||||
* @see com.cloud.agent.dhcp.DhcpSnooper#stop()
|
|
||||||
*/
|
|
||||||
@Override
|
|
||||||
public boolean stop() {
|
|
||||||
_executor.shutdown();
|
|
||||||
_server.StopServer();
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
private class DhcpServer extends Thread {
|
|
||||||
private DhcpSnooperImpl _manager;
|
|
||||||
private String _bridge;
|
|
||||||
private Pcap _pcapedDev;
|
|
||||||
private boolean _loop;
|
|
||||||
|
|
||||||
public DhcpServer(DhcpSnooperImpl mgt, String bridge) {
|
|
||||||
_manager = mgt;
|
|
||||||
_bridge = bridge;
|
|
||||||
_loop = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void StopServer() {
|
|
||||||
_loop = false;
|
|
||||||
_pcapedDev.breakloop();
|
|
||||||
_pcapedDev.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
private Pcap initializePcap() {
|
|
||||||
try {
|
|
||||||
List<PcapIf> alldevs = new ArrayList<PcapIf>();
|
|
||||||
StringBuilder errBuf = new StringBuilder();
|
|
||||||
int r = Pcap.findAllDevs(alldevs, errBuf);
|
|
||||||
if (r == Pcap.NOT_OK || alldevs.isEmpty()) {
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
PcapIf dev = null;
|
|
||||||
for (PcapIf device : alldevs) {
|
|
||||||
if (device.getName().equalsIgnoreCase(_bridge)) {
|
|
||||||
dev = device;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (dev == null) {
|
|
||||||
s_logger.debug("Pcap: Can't find device: " + _bridge
|
|
||||||
+ " to listen on");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
int snaplen = 64 * 1024;
|
|
||||||
int flags = Pcap.MODE_PROMISCUOUS;
|
|
||||||
int timeout = 10 * 1000;
|
|
||||||
Pcap pcap = Pcap.openLive(dev.getName(), snaplen, flags,
|
|
||||||
timeout, errBuf);
|
|
||||||
if (pcap == null) {
|
|
||||||
s_logger.debug("Pcap: Can't open " + _bridge);
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
PcapBpfProgram program = new PcapBpfProgram();
|
|
||||||
String expr = "dst port 68 or 67";
|
|
||||||
int optimize = 0;
|
|
||||||
int netmask = 0xFFFFFF00;
|
|
||||||
if (pcap.compile(program, expr, optimize, netmask) != Pcap.OK) {
|
|
||||||
s_logger.debug("Pcap: can't compile BPF");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (pcap.setFilter(program) != Pcap.OK) {
|
|
||||||
s_logger.debug("Pcap: Can't set filter");
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
return pcap;
|
|
||||||
} catch (Exception e) {
|
|
||||||
s_logger.debug("Failed to initialized: " + e.toString());
|
|
||||||
}
|
|
||||||
return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void run() {
|
|
||||||
while (_loop) {
|
|
||||||
try {
|
|
||||||
_pcapedDev = initializePcap();
|
|
||||||
if (_pcapedDev == null) {
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
PcapPacketHandler<String> jpacketHandler = new PcapPacketHandler<String>() {
|
|
||||||
public void nextPacket(PcapPacket packet, String user) {
|
|
||||||
Udp u = new Udp();
|
|
||||||
if (packet.hasHeader(u)) {
|
|
||||||
int offset = u.getOffset() + u.getLength();
|
|
||||||
_executor.execute(new DhcpPacketParser(packet,
|
|
||||||
offset, u.length() - u.getLength(),
|
|
||||||
_manager));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
s_logger.debug("Starting DHCP snooping on " + _bridge);
|
|
||||||
int retValue = _pcapedDev.loop(-1, jpacketHandler,
|
|
||||||
"pcapPacketHandler");
|
|
||||||
if (retValue == -1) {
|
|
||||||
s_logger.debug("Pcap: failed to set loop handler");
|
|
||||||
} else if (retValue == -2 && !_loop) {
|
|
||||||
s_logger.debug("Pcap: terminated");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
_pcapedDev.close();
|
|
||||||
} catch (Exception e) {
|
|
||||||
s_logger.debug("Pcap error:" + e.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
static public void main(String args[]) {
|
|
||||||
s_logger.addAppender(new org.apache.log4j.ConsoleAppender(
|
|
||||||
new org.apache.log4j.PatternLayout(), "System.out"));
|
|
||||||
final DhcpSnooperImpl manager = new DhcpSnooperImpl("cloudbr0", 10000);
|
|
||||||
s_logger.debug(manager.getIPAddr("02:00:4c:66:00:03", "i-2-5-VM"));
|
|
||||||
manager.stop();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean configure(String name, Map<String, Object> params)
|
|
||||||
throws ConfigurationException {
|
|
||||||
// TODO configure timeout here
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean start() {
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String getName() {
|
|
||||||
return "DhcpSnooperImpl";
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -1,293 +0,0 @@
|
|||||||
// Licensed to the Apache Software Foundation (ASF) under one
|
|
||||||
// or more contributor license agreements. See the NOTICE file
|
|
||||||
// distributed with this work for additional information
|
|
||||||
// regarding copyright ownership. The ASF licenses this file
|
|
||||||
// to you under the Apache License, Version 2.0 (the
|
|
||||||
// "License"); you may not use this file except in compliance
|
|
||||||
// with the License. You may obtain a copy of the License at
|
|
||||||
//
|
|
||||||
// http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
//
|
|
||||||
// Unless required by applicable law or agreed to in writing,
|
|
||||||
// software distributed under the License is distributed on an
|
|
||||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
||||||
// KIND, either express or implied. See the License for the
|
|
||||||
// specific language governing permissions and limitations
|
|
||||||
// under the License.
|
|
||||||
package com.cloud.agent.resource.computing;
|
|
||||||
|
|
||||||
import java.net.InetAddress;
|
|
||||||
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import javax.naming.ConfigurationException;
|
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
|
||||||
import org.libvirt.Connect;
|
|
||||||
import org.libvirt.Domain;
|
|
||||||
import org.libvirt.LibvirtException;
|
|
||||||
|
|
||||||
import com.cloud.agent.api.Answer;
|
|
||||||
import com.cloud.agent.api.Command;
|
|
||||||
import com.cloud.agent.api.StartAnswer;
|
|
||||||
import com.cloud.agent.api.StartCommand;
|
|
||||||
|
|
||||||
import com.cloud.agent.api.StopAnswer;
|
|
||||||
import com.cloud.agent.api.StopCommand;
|
|
||||||
|
|
||||||
import com.cloud.agent.api.routing.SavePasswordCommand;
|
|
||||||
import com.cloud.agent.api.routing.VmDataCommand;
|
|
||||||
import com.cloud.agent.api.to.NicTO;
|
|
||||||
import com.cloud.agent.api.to.VirtualMachineTO;
|
|
||||||
import com.cloud.agent.dhcp.DhcpSnooper;
|
|
||||||
import com.cloud.agent.dhcp.DhcpSnooperImpl;
|
|
||||||
|
|
||||||
import com.cloud.agent.resource.computing.LibvirtComputingResource;
|
|
||||||
import com.cloud.agent.resource.computing.LibvirtConnection;
|
|
||||||
import com.cloud.agent.resource.computing.LibvirtVMDef;
|
|
||||||
import com.cloud.agent.resource.computing.LibvirtVMDef.DiskDef;
|
|
||||||
import com.cloud.agent.resource.computing.LibvirtVMDef.InterfaceDef;
|
|
||||||
import com.cloud.agent.vmdata.JettyVmDataServer;
|
|
||||||
import com.cloud.agent.vmdata.VmDataServer;
|
|
||||||
|
|
||||||
import com.cloud.network.Networks.TrafficType;
|
|
||||||
import com.cloud.utils.Pair;
|
|
||||||
import com.cloud.vm.VirtualMachine;
|
|
||||||
import com.cloud.vm.VirtualMachine.State;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Logic specific to the Cloudzones feature
|
|
||||||
*
|
|
||||||
* }
|
|
||||||
**/
|
|
||||||
|
|
||||||
public class CloudZonesComputingResource extends LibvirtComputingResource {
|
|
||||||
private static final Logger s_logger = Logger
|
|
||||||
.getLogger(CloudZonesComputingResource.class);
|
|
||||||
protected DhcpSnooper _dhcpSnooper;
|
|
||||||
String _parent;
|
|
||||||
long _dhcpTimeout;
|
|
||||||
protected String _hostIp;
|
|
||||||
protected String _hostMacAddress;
|
|
||||||
protected VmDataServer _vmDataServer = new JettyVmDataServer();
|
|
||||||
|
|
||||||
private void setupDhcpManager(Connect conn, String bridgeName) {
|
|
||||||
|
|
||||||
_dhcpSnooper = new DhcpSnooperImpl(bridgeName, _dhcpTimeout);
|
|
||||||
|
|
||||||
List<Pair<String, String>> macs = new ArrayList<Pair<String, String>>();
|
|
||||||
try {
|
|
||||||
int[] domainIds = conn.listDomains();
|
|
||||||
for (int i = 0; i < domainIds.length; i++) {
|
|
||||||
Domain vm = conn.domainLookupByID(domainIds[i]);
|
|
||||||
if (vm.getName().startsWith("i-")) {
|
|
||||||
List<InterfaceDef> nics = getInterfaces(conn, vm.getName());
|
|
||||||
InterfaceDef nic = nics.get(0);
|
|
||||||
macs.add(new Pair<String, String>(nic.getMacAddress(), vm
|
|
||||||
.getName()));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch (LibvirtException e) {
|
|
||||||
s_logger.debug("Failed to get MACs: " + e.toString());
|
|
||||||
}
|
|
||||||
|
|
||||||
_dhcpSnooper.initializeMacTable(macs);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean configure(String name, Map<String, Object> params)
|
|
||||||
throws ConfigurationException {
|
|
||||||
boolean success = super.configure(name, params);
|
|
||||||
if (!success) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
_parent = (String) params.get("mount.path");
|
|
||||||
|
|
||||||
try {
|
|
||||||
_dhcpTimeout = Long.parseLong((String) params.get("dhcp.timeout"));
|
|
||||||
} catch (Exception e) {
|
|
||||||
_dhcpTimeout = 1200000;
|
|
||||||
}
|
|
||||||
|
|
||||||
_hostIp = (String) params.get("host.ip");
|
|
||||||
_hostMacAddress = (String) params.get("host.mac.address");
|
|
||||||
|
|
||||||
try {
|
|
||||||
Connect conn;
|
|
||||||
conn = LibvirtConnection.getConnection();
|
|
||||||
setupDhcpManager(conn, _guestBridgeName);
|
|
||||||
} catch (LibvirtException e) {
|
|
||||||
s_logger.debug("Failed to get libvirt connection:" + e.toString());
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
_dhcpSnooper.configure(name, params);
|
|
||||||
_vmDataServer.configure(name, params);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected synchronized StartAnswer execute(StartCommand cmd) {
|
|
||||||
VirtualMachineTO vmSpec = cmd.getVirtualMachine();
|
|
||||||
String vmName = vmSpec.getName();
|
|
||||||
LibvirtVMDef vm = null;
|
|
||||||
|
|
||||||
State state = State.Stopped;
|
|
||||||
Connect conn = null;
|
|
||||||
try {
|
|
||||||
conn = LibvirtConnection.getConnection();
|
|
||||||
synchronized (_vms) {
|
|
||||||
_vms.put(vmName, State.Starting);
|
|
||||||
}
|
|
||||||
|
|
||||||
vm = createVMFromSpec(vmSpec);
|
|
||||||
|
|
||||||
createVbd(conn, vmSpec, vmName, vm);
|
|
||||||
|
|
||||||
createVifs(conn, vmSpec, vm);
|
|
||||||
|
|
||||||
s_logger.debug("starting " + vmName + ": " + vm.toString());
|
|
||||||
startDomain(conn, vmName, vm.toString());
|
|
||||||
|
|
||||||
NicTO[] nics = vmSpec.getNics();
|
|
||||||
for (NicTO nic : nics) {
|
|
||||||
if (nic.isSecurityGroupEnabled()) {
|
|
||||||
if (vmSpec.getType() != VirtualMachine.Type.User) {
|
|
||||||
default_network_rules_for_systemvm(conn, vmName);
|
|
||||||
} else {
|
|
||||||
nic.setIp(null);
|
|
||||||
default_network_rules(conn, vmName, nic, vmSpec.getId());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Attach each data volume to the VM, if there is a deferred
|
|
||||||
// attached disk
|
|
||||||
for (DiskDef disk : vm.getDevices().getDisks()) {
|
|
||||||
if (disk.isAttachDeferred()) {
|
|
||||||
attachOrDetachDevice(conn, true, vmName, disk.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vmSpec.getType() == VirtualMachine.Type.User) {
|
|
||||||
for (NicTO nic : nics) {
|
|
||||||
if (nic.getType() == TrafficType.Guest) {
|
|
||||||
InetAddress ipAddr = _dhcpSnooper.getIPAddr(
|
|
||||||
nic.getMac(), vmName);
|
|
||||||
if (ipAddr == null) {
|
|
||||||
s_logger.debug("Failed to get guest DHCP ip, stop it");
|
|
||||||
StopCommand stpCmd = new StopCommand(vmName);
|
|
||||||
execute(stpCmd);
|
|
||||||
return new StartAnswer(cmd,
|
|
||||||
"Failed to get guest DHCP ip, stop it");
|
|
||||||
}
|
|
||||||
s_logger.debug(ipAddr);
|
|
||||||
nic.setIp(ipAddr.getHostAddress());
|
|
||||||
|
|
||||||
post_default_network_rules(conn, vmName, nic,
|
|
||||||
vmSpec.getId(), _dhcpSnooper.getDhcpServerIP(),
|
|
||||||
_hostIp, _hostMacAddress);
|
|
||||||
_vmDataServer.handleVmStarted(cmd.getVirtualMachine());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
state = State.Running;
|
|
||||||
return new StartAnswer(cmd);
|
|
||||||
} catch (Exception e) {
|
|
||||||
s_logger.warn("Exception ", e);
|
|
||||||
if (conn != null) {
|
|
||||||
handleVmStartFailure(conn, vmName, vm);
|
|
||||||
}
|
|
||||||
return new StartAnswer(cmd, e.getMessage());
|
|
||||||
} finally {
|
|
||||||
synchronized (_vms) {
|
|
||||||
if (state != State.Stopped) {
|
|
||||||
_vms.put(vmName, state);
|
|
||||||
} else {
|
|
||||||
_vms.remove(vmName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Answer execute(StopCommand cmd) {
|
|
||||||
final String vmName = cmd.getVmName();
|
|
||||||
|
|
||||||
Long bytesReceived = new Long(0);
|
|
||||||
Long bytesSent = new Long(0);
|
|
||||||
|
|
||||||
State state = null;
|
|
||||||
synchronized (_vms) {
|
|
||||||
state = _vms.get(vmName);
|
|
||||||
_vms.put(vmName, State.Stopping);
|
|
||||||
}
|
|
||||||
try {
|
|
||||||
Connect conn = LibvirtConnection.getConnection();
|
|
||||||
|
|
||||||
try {
|
|
||||||
Domain dm = conn.domainLookupByUUID(UUID
|
|
||||||
.nameUUIDFromBytes(vmName.getBytes()));
|
|
||||||
} catch (LibvirtException e) {
|
|
||||||
state = State.Stopped;
|
|
||||||
return new StopAnswer(cmd, null, 0, bytesSent, bytesReceived);
|
|
||||||
}
|
|
||||||
|
|
||||||
String macAddress = null;
|
|
||||||
if (vmName.startsWith("i-")) {
|
|
||||||
List<InterfaceDef> nics = getInterfaces(conn, vmName);
|
|
||||||
if (!nics.isEmpty()) {
|
|
||||||
macAddress = nics.get(0).getMacAddress();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
destroy_network_rules_for_vm(conn, vmName);
|
|
||||||
String result = stopVM(conn, vmName, defineOps.UNDEFINE_VM);
|
|
||||||
|
|
||||||
try {
|
|
||||||
cleanupVnet(conn, cmd.getVnet());
|
|
||||||
_dhcpSnooper.cleanup(macAddress, vmName);
|
|
||||||
_vmDataServer.handleVmStopped(cmd.getVmName());
|
|
||||||
} catch (Exception e) {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
state = State.Stopped;
|
|
||||||
return new StopAnswer(cmd, result, 0, bytesSent, bytesReceived);
|
|
||||||
} catch (LibvirtException e) {
|
|
||||||
return new StopAnswer(cmd, e.getMessage());
|
|
||||||
} finally {
|
|
||||||
synchronized (_vms) {
|
|
||||||
if (state != null) {
|
|
||||||
_vms.put(vmName, state);
|
|
||||||
} else {
|
|
||||||
_vms.remove(vmName);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public Answer executeRequest(Command cmd) {
|
|
||||||
if (cmd instanceof VmDataCommand) {
|
|
||||||
return execute((VmDataCommand) cmd);
|
|
||||||
} else if (cmd instanceof SavePasswordCommand) {
|
|
||||||
return execute((SavePasswordCommand) cmd);
|
|
||||||
}
|
|
||||||
return super.executeRequest(cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Answer execute(final VmDataCommand cmd) {
|
|
||||||
return _vmDataServer.handleVmDataCommand(cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
protected Answer execute(final SavePasswordCommand cmd) {
|
|
||||||
return new Answer(cmd);
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
@ -2481,7 +2481,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements
|
|||||||
ConsoleDef console = new ConsoleDef("pty", null, null, (short) 0);
|
ConsoleDef console = new ConsoleDef("pty", null, null, (short) 0);
|
||||||
devices.addDevice(console);
|
devices.addDevice(console);
|
||||||
|
|
||||||
GraphicDef grap = new GraphicDef("vnc", (short) 0, true, null, null,
|
GraphicDef grap = new GraphicDef("vnc", (short) 0, true, vmTO.getVncAddr(), null,
|
||||||
null);
|
null);
|
||||||
devices.addDevice(grap);
|
devices.addDevice(grap);
|
||||||
|
|
||||||
@ -2507,6 +2507,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements
|
|||||||
|
|
||||||
protected synchronized StartAnswer execute(StartCommand cmd) {
|
protected synchronized StartAnswer execute(StartCommand cmd) {
|
||||||
VirtualMachineTO vmSpec = cmd.getVirtualMachine();
|
VirtualMachineTO vmSpec = cmd.getVirtualMachine();
|
||||||
|
vmSpec.setVncAddr(cmd.getHostIp());
|
||||||
String vmName = vmSpec.getName();
|
String vmName = vmSpec.getName();
|
||||||
LibvirtVMDef vm = null;
|
LibvirtVMDef vm = null;
|
||||||
|
|
||||||
@ -3950,24 +3951,11 @@ public class LibvirtComputingResource extends ServerResourceBase implements
|
|||||||
if (!_can_bridge_firewall) {
|
if (!_can_bridge_firewall) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
List<InterfaceDef> intfs = getInterfaces(conn, vmName);
|
|
||||||
if (intfs.size() < 1) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
/* FIX ME: */
|
|
||||||
String brname = null;
|
|
||||||
if (vmName.startsWith("r-")) {
|
|
||||||
InterfaceDef intf = intfs.get(0);
|
|
||||||
brname = intf.getBrName();
|
|
||||||
} else {
|
|
||||||
InterfaceDef intf = intfs.get(intfs.size() - 1);
|
|
||||||
brname = intf.getBrName();
|
|
||||||
}
|
|
||||||
|
|
||||||
Script cmd = new Script(_securityGroupPath, _timeout, s_logger);
|
Script cmd = new Script(_securityGroupPath, _timeout, s_logger);
|
||||||
cmd.add("default_network_rules_systemvm");
|
cmd.add("default_network_rules_systemvm");
|
||||||
cmd.add("--vmname", vmName);
|
cmd.add("--vmname", vmName);
|
||||||
cmd.add("--brname", brname);
|
cmd.add("--localbrname", _linkLocalBridgeName);
|
||||||
String result = cmd.execute();
|
String result = cmd.execute();
|
||||||
if (result != null) {
|
if (result != null) {
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
@ -717,11 +717,11 @@ public class LibvirtVMDef {
|
|||||||
private final String _passwd;
|
private final String _passwd;
|
||||||
private final String _keyMap;
|
private final String _keyMap;
|
||||||
|
|
||||||
public GraphicDef(String type, short port, boolean auotPort,
|
public GraphicDef(String type, short port, boolean autoPort,
|
||||||
String listenAddr, String passwd, String keyMap) {
|
String listenAddr, String passwd, String keyMap) {
|
||||||
_type = type;
|
_type = type;
|
||||||
_port = port;
|
_port = port;
|
||||||
_autoPort = auotPort;
|
_autoPort = autoPort;
|
||||||
_listenAddr = listenAddr;
|
_listenAddr = listenAddr;
|
||||||
_passwd = passwd;
|
_passwd = passwd;
|
||||||
_keyMap = keyMap;
|
_keyMap = keyMap;
|
||||||
|
|||||||
@ -17,11 +17,13 @@
|
|||||||
package com.cloud.agent.api;
|
package com.cloud.agent.api;
|
||||||
|
|
||||||
import com.cloud.agent.api.to.VirtualMachineTO;
|
import com.cloud.agent.api.to.VirtualMachineTO;
|
||||||
|
import com.cloud.host.Host;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*/
|
*/
|
||||||
public class StartCommand extends Command {
|
public class StartCommand extends Command {
|
||||||
VirtualMachineTO vm;
|
VirtualMachineTO vm;
|
||||||
|
String hostIp;
|
||||||
|
|
||||||
public VirtualMachineTO getVirtualMachine() {
|
public VirtualMachineTO getVirtualMachine() {
|
||||||
return vm;
|
return vm;
|
||||||
@ -38,4 +40,13 @@ public class StartCommand extends Command {
|
|||||||
public StartCommand(VirtualMachineTO vm) {
|
public StartCommand(VirtualMachineTO vm) {
|
||||||
this.vm = vm;
|
this.vm = vm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public StartCommand(VirtualMachineTO vm, Host host) {
|
||||||
|
this.vm = vm;
|
||||||
|
this.hostIp = host.getPrivateIpAddress();
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getHostIp() {
|
||||||
|
return this.hostIp;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -40,6 +40,7 @@ public class VirtualMachineTO {
|
|||||||
boolean enableHA;
|
boolean enableHA;
|
||||||
boolean limitCpuUse;
|
boolean limitCpuUse;
|
||||||
String vncPassword;
|
String vncPassword;
|
||||||
|
String vncAddr;
|
||||||
Map<String, String> params;
|
Map<String, String> params;
|
||||||
|
|
||||||
VolumeTO[] disks;
|
VolumeTO[] disks;
|
||||||
@ -192,6 +193,14 @@ public class VirtualMachineTO {
|
|||||||
this.vncPassword = vncPassword;
|
this.vncPassword = vncPassword;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getVncAddr() {
|
||||||
|
return this.vncAddr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVncAddr(String vncAddr) {
|
||||||
|
this.vncAddr = vncAddr;
|
||||||
|
}
|
||||||
|
|
||||||
public Map<String, String> getDetails() {
|
public Map<String, String> getDetails() {
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -358,9 +358,12 @@ public class ApiConstants {
|
|||||||
public static final String VSM_DEVICE_STATE = "vsmdevicestate";
|
public static final String VSM_DEVICE_STATE = "vsmdevicestate";
|
||||||
public static final String ADD_VSM_FLAG = "addvsmflag";
|
public static final String ADD_VSM_FLAG = "addvsmflag";
|
||||||
public static final String END_POINT = "endpoint";
|
public static final String END_POINT = "endpoint";
|
||||||
//public static final String REGION_DETAILS = "regiondetails";
|
|
||||||
public static final String REGION_ID = "regionid";
|
public static final String REGION_ID = "regionid";
|
||||||
public static final String IS_PROPAGATE = "ispropagate";
|
public static final String IS_PROPAGATE = "ispropagate";
|
||||||
|
public static final String CAN_USE_FOR_DEPLOY = "canusefordeploy";
|
||||||
|
public static final String RESOURCE_IDS = "resourceids";
|
||||||
|
public static final String RESOURCE_ID = "resourceid";
|
||||||
|
public static final String CUSTOMER = "customer";
|
||||||
|
|
||||||
public enum HostDetails {
|
public enum HostDetails {
|
||||||
all, capacity, events, stats, min;
|
all, capacity, events, stats, min;
|
||||||
|
|||||||
@ -50,6 +50,7 @@ import com.cloud.projects.ProjectService;
|
|||||||
import com.cloud.region.RegionService;
|
import com.cloud.region.RegionService;
|
||||||
import com.cloud.resource.ResourceService;
|
import com.cloud.resource.ResourceService;
|
||||||
import com.cloud.server.ManagementService;
|
import com.cloud.server.ManagementService;
|
||||||
|
import com.cloud.server.TaggedResourceService;
|
||||||
import com.cloud.storage.StorageService;
|
import com.cloud.storage.StorageService;
|
||||||
import com.cloud.storage.snapshot.SnapshotService;
|
import com.cloud.storage.snapshot.SnapshotService;
|
||||||
import com.cloud.template.TemplateService;
|
import com.cloud.template.TemplateService;
|
||||||
@ -130,6 +131,7 @@ public abstract class BaseCmd {
|
|||||||
public static IdentityService _identityService;
|
public static IdentityService _identityService;
|
||||||
public static StorageNetworkService _storageNetworkService;
|
public static StorageNetworkService _storageNetworkService;
|
||||||
public static RegionService _regionService;
|
public static RegionService _regionService;
|
||||||
|
public static TaggedResourceService _taggedResourceService;
|
||||||
|
|
||||||
static void setComponents(ResponseGenerator generator) {
|
static void setComponents(ResponseGenerator generator) {
|
||||||
ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
|
ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
|
||||||
@ -158,6 +160,7 @@ public abstract class BaseCmd {
|
|||||||
_identityService = locator.getManager(IdentityService.class);
|
_identityService = locator.getManager(IdentityService.class);
|
||||||
_storageNetworkService = locator.getManager(StorageNetworkService.class);
|
_storageNetworkService = locator.getManager(StorageNetworkService.class);
|
||||||
_regionService = locator.getManager(RegionService.class);
|
_regionService = locator.getManager(RegionService.class);
|
||||||
|
_taggedResourceService = locator.getManager(TaggedResourceService.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException, NetworkRuleConflictException;
|
public abstract void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException, NetworkRuleConflictException;
|
||||||
|
|||||||
@ -57,6 +57,7 @@ import com.cloud.api.response.RegionResponse;
|
|||||||
import com.cloud.api.response.RemoteAccessVpnResponse;
|
import com.cloud.api.response.RemoteAccessVpnResponse;
|
||||||
import com.cloud.api.response.ResourceCountResponse;
|
import com.cloud.api.response.ResourceCountResponse;
|
||||||
import com.cloud.api.response.ResourceLimitResponse;
|
import com.cloud.api.response.ResourceLimitResponse;
|
||||||
|
import com.cloud.api.response.ResourceTagResponse;
|
||||||
import com.cloud.api.response.SecurityGroupResponse;
|
import com.cloud.api.response.SecurityGroupResponse;
|
||||||
import com.cloud.api.response.ServiceOfferingResponse;
|
import com.cloud.api.response.ServiceOfferingResponse;
|
||||||
import com.cloud.api.response.ServiceResponse;
|
import com.cloud.api.response.ServiceResponse;
|
||||||
@ -116,6 +117,7 @@ import com.cloud.org.Cluster;
|
|||||||
import com.cloud.projects.Project;
|
import com.cloud.projects.Project;
|
||||||
import com.cloud.projects.ProjectAccount;
|
import com.cloud.projects.ProjectAccount;
|
||||||
import com.cloud.projects.ProjectInvitation;
|
import com.cloud.projects.ProjectInvitation;
|
||||||
|
import com.cloud.server.ResourceTag;
|
||||||
import com.cloud.storage.Snapshot;
|
import com.cloud.storage.Snapshot;
|
||||||
import com.cloud.storage.StoragePool;
|
import com.cloud.storage.StoragePool;
|
||||||
import com.cloud.storage.Swift;
|
import com.cloud.storage.Swift;
|
||||||
@ -284,4 +286,12 @@ public interface ResponseGenerator {
|
|||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
Long getIdentiyId(String tableName, String token);
|
Long getIdentiyId(String tableName, String token);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param resourceTag
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
ResourceTagResponse createResourceTagResponse(ResourceTag resourceTag);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,8 +31,10 @@ import com.cloud.api.ServerApiException;
|
|||||||
import com.cloud.api.response.ClusterResponse;
|
import com.cloud.api.response.ClusterResponse;
|
||||||
import com.cloud.api.response.ListResponse;
|
import com.cloud.api.response.ListResponse;
|
||||||
import com.cloud.exception.DiscoveryException;
|
import com.cloud.exception.DiscoveryException;
|
||||||
|
import com.cloud.exception.ResourceInUseException;
|
||||||
import com.cloud.org.Cluster;
|
import com.cloud.org.Cluster;
|
||||||
import com.cloud.user.Account;
|
import com.cloud.user.Account;
|
||||||
|
import com.cloud.utils.IdentityProxy;
|
||||||
|
|
||||||
@Implementation(description="Adds a new cluster", responseObject=ClusterResponse.class)
|
@Implementation(description="Adds a new cluster", responseObject=ClusterResponse.class)
|
||||||
public class AddClusterCmd extends BaseCmd {
|
public class AddClusterCmd extends BaseCmd {
|
||||||
@ -167,6 +169,13 @@ public class AddClusterCmd extends BaseCmd {
|
|||||||
} catch (DiscoveryException ex) {
|
} catch (DiscoveryException ex) {
|
||||||
s_logger.warn("Exception: ", ex);
|
s_logger.warn("Exception: ", ex);
|
||||||
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
|
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
|
||||||
|
} catch (ResourceInUseException ex) {
|
||||||
|
s_logger.warn("Exception: ", ex);
|
||||||
|
ServerApiException e = new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
|
||||||
|
for (IdentityProxy proxyObj : ex.getIdProxyList()) {
|
||||||
|
e.addProxyObject(proxyObj.getTableName(), proxyObj.getValue(), proxyObj.getidFieldName());
|
||||||
|
}
|
||||||
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
136
api/src/com/cloud/api/commands/CreateTagsCmd.java
Normal file
136
api/src/com/cloud/api/commands/CreateTagsCmd.java
Normal file
@ -0,0 +1,136 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http:www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
//
|
||||||
|
package com.cloud.api.commands;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
import com.cloud.api.ApiConstants;
|
||||||
|
import com.cloud.api.BaseAsyncCmd;
|
||||||
|
import com.cloud.api.BaseCmd;
|
||||||
|
import com.cloud.api.Implementation;
|
||||||
|
import com.cloud.api.Parameter;
|
||||||
|
import com.cloud.api.ServerApiException;
|
||||||
|
import com.cloud.api.response.SuccessResponse;
|
||||||
|
import com.cloud.event.EventTypes;
|
||||||
|
import com.cloud.server.ResourceTag;
|
||||||
|
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Alena Prokharchyk
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Implementation(description = "Creates resource tag(s)", responseObject = SuccessResponse.class, since = "Burbank")
|
||||||
|
public class CreateTagsCmd extends BaseAsyncCmd{
|
||||||
|
public static final Logger s_logger = Logger.getLogger(CreateTagsCmd.class.getName());
|
||||||
|
|
||||||
|
private static final String s_name = "createtagsresponse";
|
||||||
|
|
||||||
|
// ///////////////////////////////////////////////////
|
||||||
|
// ////////////// API parameters /////////////////////
|
||||||
|
// ///////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@Parameter(name = ApiConstants.TAGS, type = CommandType.MAP, required=true, description = "Map of tags (key/value pairs)")
|
||||||
|
private Map tag;
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.RESOURCE_TYPE, type=CommandType.STRING, required=true, description="type of the resource")
|
||||||
|
private String resourceType;
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.RESOURCE_IDS, type=CommandType.LIST, required=true,
|
||||||
|
collectionType=CommandType.STRING, description="list of resources to create the tags for")
|
||||||
|
private List<String> resourceIds;
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.CUSTOMER, type=CommandType.STRING, description="identifies client specific tag. " +
|
||||||
|
"When the value is not null, the tag can't be used by cloudStack code internally")
|
||||||
|
private String customer;
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
/////////////////// Accessors ///////////////////////
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
public TaggedResourceType getResourceType(){
|
||||||
|
return _taggedResourceService.getResourceType(resourceType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getTags() {
|
||||||
|
Map<String, String> tagsMap = null;
|
||||||
|
if (!tag.isEmpty()) {
|
||||||
|
tagsMap = new HashMap<String, String>();
|
||||||
|
Collection<?> servicesCollection = tag.values();
|
||||||
|
Iterator<?> iter = servicesCollection.iterator();
|
||||||
|
while (iter.hasNext()) {
|
||||||
|
HashMap<String, String> services = (HashMap<String, String>) iter.next();
|
||||||
|
String key = services.get("key");
|
||||||
|
String value = services.get("value");
|
||||||
|
tagsMap.put(key, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return tagsMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getResourceIds() {
|
||||||
|
return resourceIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCustomer() {
|
||||||
|
return customer;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ///////////////////////////////////////////////////
|
||||||
|
// ///////////// API Implementation///////////////////
|
||||||
|
// ///////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCommandName() {
|
||||||
|
return s_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getEntityOwnerId() {
|
||||||
|
//FIXME - validate the owner here
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute() {
|
||||||
|
List<ResourceTag> tags = _taggedResourceService.createTags(getResourceIds(), getResourceType(), getTags(), getCustomer());
|
||||||
|
|
||||||
|
if (tags != null && !tags.isEmpty()) {
|
||||||
|
SuccessResponse response = new SuccessResponse(getCommandName());
|
||||||
|
this.setResponseObject(response);
|
||||||
|
} else {
|
||||||
|
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create tags");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getEventType() {
|
||||||
|
return EventTypes.EVENT_TAGS_CREATE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getEventDescription() {
|
||||||
|
return "creating tags";
|
||||||
|
}
|
||||||
|
}
|
||||||
128
api/src/com/cloud/api/commands/DeleteTagsCmd.java
Normal file
128
api/src/com/cloud/api/commands/DeleteTagsCmd.java
Normal file
@ -0,0 +1,128 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http:www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
//
|
||||||
|
package com.cloud.api.commands;
|
||||||
|
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import org.apache.log4j.Logger;
|
||||||
|
|
||||||
|
import com.cloud.api.ApiConstants;
|
||||||
|
import com.cloud.api.BaseAsyncCmd;
|
||||||
|
import com.cloud.api.BaseCmd;
|
||||||
|
import com.cloud.api.Implementation;
|
||||||
|
import com.cloud.api.Parameter;
|
||||||
|
import com.cloud.api.ServerApiException;
|
||||||
|
import com.cloud.api.response.SuccessResponse;
|
||||||
|
import com.cloud.event.EventTypes;
|
||||||
|
import com.cloud.server.ResourceTag;
|
||||||
|
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Alena Prokharchyk
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Implementation(description = "Deleting resource tag(s)", responseObject = SuccessResponse.class, since = "Burbank")
|
||||||
|
public class DeleteTagsCmd extends BaseAsyncCmd{
|
||||||
|
public static final Logger s_logger = Logger.getLogger(DeleteTagsCmd.class.getName());
|
||||||
|
|
||||||
|
private static final String s_name = "deleteTagsresponse";
|
||||||
|
|
||||||
|
// ///////////////////////////////////////////////////
|
||||||
|
// ////////////// API parameters /////////////////////
|
||||||
|
// ///////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@Parameter(name = ApiConstants.TAGS, type = CommandType.MAP, description = "Delete tags matching key/value pairs")
|
||||||
|
private Map tag;
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.RESOURCE_TYPE, type=CommandType.STRING, required=true, description="Delete tag by resource type")
|
||||||
|
private String resourceType;
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.RESOURCE_IDS, type=CommandType.LIST, required=true,
|
||||||
|
collectionType=CommandType.STRING, description="Delete tags for resource id(s)")
|
||||||
|
private List<String> resourceIds;
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
/////////////////// Accessors ///////////////////////
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
|
||||||
|
public TaggedResourceType getResourceType(){
|
||||||
|
return _taggedResourceService.getResourceType(resourceType);
|
||||||
|
}
|
||||||
|
|
||||||
|
public Map<String, String> getTags() {
|
||||||
|
Map<String, String> tagsMap = null;
|
||||||
|
if (tag != null && !tag.isEmpty()) {
|
||||||
|
tagsMap = new HashMap<String, String>();
|
||||||
|
Collection<?> servicesCollection = tag.values();
|
||||||
|
Iterator<?> iter = servicesCollection.iterator();
|
||||||
|
while (iter.hasNext()) {
|
||||||
|
HashMap<String, String> services = (HashMap<String, String>) iter.next();
|
||||||
|
String key = services.get("key");
|
||||||
|
String value = services.get("value");
|
||||||
|
tagsMap.put(key, value);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return tagsMap;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<String> getResourceIds() {
|
||||||
|
return resourceIds;
|
||||||
|
}
|
||||||
|
|
||||||
|
// ///////////////////////////////////////////////////
|
||||||
|
// ///////////// API Implementation///////////////////
|
||||||
|
// ///////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCommandName() {
|
||||||
|
return s_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public long getEntityOwnerId() {
|
||||||
|
//FIXME - validate the owner here
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute() {
|
||||||
|
boolean success = _taggedResourceService.deleteTags(getResourceIds(), getResourceType(), getTags());
|
||||||
|
|
||||||
|
if (success) {
|
||||||
|
SuccessResponse response = new SuccessResponse(getCommandName());
|
||||||
|
this.setResponseObject(response);
|
||||||
|
} else {
|
||||||
|
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete tags");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getEventType() {
|
||||||
|
return EventTypes.EVENT_TAGS_DELETE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getEventDescription() {
|
||||||
|
return "Deleting tags";
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -20,6 +20,7 @@ import java.util.ArrayList;
|
|||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Iterator;
|
import java.util.Iterator;
|
||||||
|
import java.util.LinkedHashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
@ -252,9 +253,9 @@ public class DeployVMCmd extends BaseAsyncCreateCmd {
|
|||||||
if ((networkIds != null || ipAddress != null) && ipToNetworkList != null) {
|
if ((networkIds != null || ipAddress != null) && ipToNetworkList != null) {
|
||||||
throw new InvalidParameterValueException("NetworkIds and ipAddress can't be specified along with ipToNetworkMap parameter");
|
throw new InvalidParameterValueException("NetworkIds and ipAddress can't be specified along with ipToNetworkMap parameter");
|
||||||
}
|
}
|
||||||
Map<Long, String> ipToNetworkMap = null;
|
LinkedHashMap<Long, String> ipToNetworkMap = null;
|
||||||
if (ipToNetworkList != null && !ipToNetworkList.isEmpty()) {
|
if (ipToNetworkList != null && !ipToNetworkList.isEmpty()) {
|
||||||
ipToNetworkMap = new HashMap<Long, String>();
|
ipToNetworkMap = new LinkedHashMap<Long, String>();
|
||||||
Collection ipsCollection = ipToNetworkList.values();
|
Collection ipsCollection = ipToNetworkList.values();
|
||||||
Iterator iter = ipsCollection.iterator();
|
Iterator iter = ipsCollection.iterator();
|
||||||
while (iter.hasNext()) {
|
while (iter.hasNext()) {
|
||||||
|
|||||||
@ -63,15 +63,18 @@ public class ListNetworksCmd extends BaseListProjectAndAccountResourcesCmd {
|
|||||||
@Parameter(name=ApiConstants.PHYSICAL_NETWORK_ID, type=CommandType.LONG, description="list networks by physical network id")
|
@Parameter(name=ApiConstants.PHYSICAL_NETWORK_ID, type=CommandType.LONG, description="list networks by physical network id")
|
||||||
private Long physicalNetworkId;
|
private Long physicalNetworkId;
|
||||||
|
|
||||||
@Parameter(name=ApiConstants.SUPPORTED_SERVICES, type=CommandType.LIST, collectionType=CommandType.STRING, description="list network offerings supporting certain services")
|
@Parameter(name=ApiConstants.SUPPORTED_SERVICES, type=CommandType.LIST, collectionType=CommandType.STRING, description="list networks supporting certain services")
|
||||||
private List<String> supportedServices;
|
private List<String> supportedServices;
|
||||||
|
|
||||||
@Parameter(name=ApiConstants.RESTART_REQUIRED, type=CommandType.BOOLEAN, description="list network offerings by restartRequired option")
|
@Parameter(name=ApiConstants.RESTART_REQUIRED, type=CommandType.BOOLEAN, description="list networks by restartRequired option")
|
||||||
private Boolean restartRequired;
|
private Boolean restartRequired;
|
||||||
|
|
||||||
@Parameter(name=ApiConstants.SPECIFY_IP_RANGES, type=CommandType.BOOLEAN, description="true if need to list only networks which support specifying ip ranges")
|
@Parameter(name=ApiConstants.SPECIFY_IP_RANGES, type=CommandType.BOOLEAN, description="true if need to list only networks which support specifying ip ranges")
|
||||||
private Boolean specifyIpRanges;
|
private Boolean specifyIpRanges;
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.CAN_USE_FOR_DEPLOY, type=CommandType.BOOLEAN, description="list networks available for vm deployment")
|
||||||
|
private Boolean canUseForDeploy;
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
/////////////////// Accessors ///////////////////////
|
/////////////////// Accessors ///////////////////////
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
@ -116,6 +119,10 @@ public class ListNetworksCmd extends BaseListProjectAndAccountResourcesCmd {
|
|||||||
return specifyIpRanges;
|
return specifyIpRanges;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boolean canUseForDeploy() {
|
||||||
|
return canUseForDeploy;
|
||||||
|
}
|
||||||
|
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
/////////////// API Implementation///////////////////
|
/////////////// API Implementation///////////////////
|
||||||
/////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////
|
||||||
|
|||||||
99
api/src/com/cloud/api/commands/ListTagsCmd.java
Normal file
99
api/src/com/cloud/api/commands/ListTagsCmd.java
Normal file
@ -0,0 +1,99 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http:www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
//
|
||||||
|
package com.cloud.api.commands;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import com.cloud.api.ApiConstants;
|
||||||
|
import com.cloud.api.BaseListProjectAndAccountResourcesCmd;
|
||||||
|
import com.cloud.api.Implementation;
|
||||||
|
import com.cloud.api.Parameter;
|
||||||
|
import com.cloud.api.response.ListResponse;
|
||||||
|
import com.cloud.api.response.ResourceTagResponse;
|
||||||
|
import com.cloud.server.ResourceTag;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Alena Prokharchyk
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Implementation(description = "List resource tag(s)", responseObject = ResourceTagResponse.class, since = "Burbank")
|
||||||
|
public class ListTagsCmd extends BaseListProjectAndAccountResourcesCmd{
|
||||||
|
private static final String s_name = "listtagsresponse";
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.RESOURCE_TYPE, type=CommandType.STRING, description="list by resource type")
|
||||||
|
private String resourceType;
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.RESOURCE_ID, type=CommandType.STRING, description="list by resource id")
|
||||||
|
private String resourceId;
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.KEY, type=CommandType.STRING, description="list by key")
|
||||||
|
private String key;
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.VALUE, type=CommandType.STRING, description="list by value")
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
@Parameter(name=ApiConstants.CUSTOMER, type=CommandType.STRING, description="list by customer name")
|
||||||
|
private String customer;
|
||||||
|
|
||||||
|
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
/////////////////// Accessors ///////////////////////
|
||||||
|
/////////////////////////////////////////////////////
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void execute() {
|
||||||
|
|
||||||
|
List<? extends ResourceTag> tags = _taggedResourceService.listTags(this);
|
||||||
|
ListResponse<ResourceTagResponse> response = new ListResponse<ResourceTagResponse>();
|
||||||
|
List<ResourceTagResponse> tagResponses = new ArrayList<ResourceTagResponse>();
|
||||||
|
for (ResourceTag tag : tags) {
|
||||||
|
ResourceTagResponse tagResponse = _responseGenerator.createResourceTagResponse(tag);
|
||||||
|
tagResponses.add(tagResponse);
|
||||||
|
}
|
||||||
|
response.setResponses(tagResponses);
|
||||||
|
|
||||||
|
response.setResponseName(getCommandName());
|
||||||
|
this.setResponseObject(response);
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getResourceType() {
|
||||||
|
return resourceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getResourceId() {
|
||||||
|
return resourceId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getKey() {
|
||||||
|
return key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getValue() {
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getCommandName() {
|
||||||
|
return s_name;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getCustomer() {
|
||||||
|
return customer;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -14,23 +14,6 @@
|
|||||||
// KIND, either express or implied. See the License for the
|
// KIND, either express or implied. See the License for the
|
||||||
// specific language governing permissions and limitations
|
// specific language governing permissions and limitations
|
||||||
// under the License.
|
// under the License.
|
||||||
/**
|
|
||||||
* Copyright (C) 2012 Citrix Systems, Inc. All rights reserved.
|
|
||||||
*
|
|
||||||
* This software is licensed under the GNU General Public License v3 or later.
|
|
||||||
*
|
|
||||||
* It is free software: you can redistribute it and/or modify
|
|
||||||
* it under the terms of the GNU General Public License as published by
|
|
||||||
* the Free Software Foundation, either version 3 of the License, or any later version.
|
|
||||||
* This program is distributed in the hope that it will be useful,
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
||||||
* GNU General Public License for more details.
|
|
||||||
*
|
|
||||||
* You should have received a copy of the GNU General Public License
|
|
||||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
||||||
*
|
|
||||||
*/
|
|
||||||
package com.cloud.api.commands;
|
package com.cloud.api.commands;
|
||||||
|
|
||||||
import org.apache.log4j.Logger;
|
import org.apache.log4j.Logger;
|
||||||
|
|||||||
@ -131,6 +131,9 @@ public class NetworkResponse extends BaseResponse implements ControlledEntityRes
|
|||||||
@SerializedName(ApiConstants.SPECIFY_IP_RANGES) @Param(description="true if network supports specifying ip ranges, false otherwise")
|
@SerializedName(ApiConstants.SPECIFY_IP_RANGES) @Param(description="true if network supports specifying ip ranges, false otherwise")
|
||||||
private Boolean specifyIpRanges;
|
private Boolean specifyIpRanges;
|
||||||
|
|
||||||
|
@SerializedName(ApiConstants.CAN_USE_FOR_DEPLOY) @Param(description="list networks available for vm deployment")
|
||||||
|
private Boolean canUseForDeploy;
|
||||||
|
|
||||||
public void setId(Long id) {
|
public void setId(Long id) {
|
||||||
this.id.setValue(id);
|
this.id.setValue(id);
|
||||||
}
|
}
|
||||||
@ -272,4 +275,8 @@ public class NetworkResponse extends BaseResponse implements ControlledEntityRes
|
|||||||
public void setSpecifyIpRanges(Boolean specifyIpRanges) {
|
public void setSpecifyIpRanges(Boolean specifyIpRanges) {
|
||||||
this.specifyIpRanges = specifyIpRanges;
|
this.specifyIpRanges = specifyIpRanges;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setCanUseForDeploy(Boolean canUseForDeploy) {
|
||||||
|
this.canUseForDeploy = canUseForDeploy;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
104
api/src/com/cloud/api/response/ResourceTagResponse.java
Normal file
104
api/src/com/cloud/api/response/ResourceTagResponse.java
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
package com.cloud.api.response;
|
||||||
|
|
||||||
|
import com.cloud.api.ApiConstants;
|
||||||
|
import com.cloud.serializer.Param;
|
||||||
|
import com.cloud.utils.IdentityProxy;
|
||||||
|
import com.google.gson.annotations.SerializedName;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Alena Prokharchyk
|
||||||
|
*/
|
||||||
|
|
||||||
|
@SuppressWarnings("unused")
|
||||||
|
public class ResourceTagResponse extends BaseResponse implements ControlledEntityResponse{
|
||||||
|
@SerializedName(ApiConstants.KEY) @Param(description="tag key name")
|
||||||
|
private String key;
|
||||||
|
|
||||||
|
@SerializedName(ApiConstants.VALUE) @Param(description="tag value")
|
||||||
|
private String value;
|
||||||
|
|
||||||
|
@SerializedName(ApiConstants.RESOURCE_TYPE) @Param(description="resource type")
|
||||||
|
private String resourceType;
|
||||||
|
|
||||||
|
@SerializedName(ApiConstants.RESOURCE_ID) @Param(description="id of the resource")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
@SerializedName(ApiConstants.ACCOUNT)
|
||||||
|
@Param(description = "the account associated with the tag")
|
||||||
|
private String accountName;
|
||||||
|
|
||||||
|
@SerializedName(ApiConstants.PROJECT_ID) @Param(description="the project id the tag belongs to")
|
||||||
|
private IdentityProxy projectId = new IdentityProxy("projects");
|
||||||
|
|
||||||
|
@SerializedName(ApiConstants.PROJECT) @Param(description="the project name where tag belongs to")
|
||||||
|
private String projectName;
|
||||||
|
|
||||||
|
@SerializedName(ApiConstants.DOMAIN_ID)
|
||||||
|
@Param(description = "the ID of the domain associated with the tag")
|
||||||
|
private IdentityProxy domainId = new IdentityProxy("domain");
|
||||||
|
|
||||||
|
@SerializedName(ApiConstants.DOMAIN)
|
||||||
|
@Param(description = "the domain associated with the tag")
|
||||||
|
private String domainName;
|
||||||
|
|
||||||
|
@SerializedName(ApiConstants.CUSTOMER) @Param(description="customer associated with the tag")
|
||||||
|
private String customer;
|
||||||
|
|
||||||
|
public void setKey(String key) {
|
||||||
|
this.key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setValue(String value) {
|
||||||
|
this.value = value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResourceType(String resourceType) {
|
||||||
|
this.resourceType = resourceType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(String id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setAccountName(String accountName) {
|
||||||
|
this.accountName = accountName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDomainId(Long domainId) {
|
||||||
|
this.domainId.setValue(domainId);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDomainName(String domainName) {
|
||||||
|
this.domainName = domainName;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setProjectId(Long projectId) {
|
||||||
|
this.projectId.setValue(projectId);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void setProjectName(String projectName) {
|
||||||
|
this.projectName = projectName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCustomer(String customer) {
|
||||||
|
this.customer = customer;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -259,4 +259,9 @@ public class EventTypes {
|
|||||||
public static final String EVENT_EXTERNAL_FIREWALL_DEVICE_ADD = "PHYSICAL.FIREWALL.ADD";
|
public static final String EVENT_EXTERNAL_FIREWALL_DEVICE_ADD = "PHYSICAL.FIREWALL.ADD";
|
||||||
public static final String EVENT_EXTERNAL_FIREWALL_DEVICE_DELETE = "PHYSICAL.FIREWALL.DELETE";
|
public static final String EVENT_EXTERNAL_FIREWALL_DEVICE_DELETE = "PHYSICAL.FIREWALL.DELETE";
|
||||||
public static final String EVENT_EXTERNAL_FIREWALL_DEVICE_CONFIGURE = "PHYSICAL.FIREWALL.CONFIGURE";
|
public static final String EVENT_EXTERNAL_FIREWALL_DEVICE_CONFIGURE = "PHYSICAL.FIREWALL.CONFIGURE";
|
||||||
|
|
||||||
|
// tag related events
|
||||||
|
public static final String EVENT_TAGS_CREATE = "CREATE_TAGS";
|
||||||
|
public static final String EVENT_TAGS_DELETE = "DELETE_TAGS";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -134,4 +134,10 @@ public interface NetworkService {
|
|||||||
|
|
||||||
List<? extends Network> getIsolatedNetworksWithSourceNATOwnedByAccountInZone(long zoneId, Account owner);
|
List<? extends Network> getIsolatedNetworksWithSourceNATOwnedByAccountInZone(long zoneId, Account owner);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param network
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean canUseForDeploy(Network network);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,7 @@ import com.cloud.api.commands.UpdateHostCmd;
|
|||||||
import com.cloud.api.commands.UpdateHostPasswordCmd;
|
import com.cloud.api.commands.UpdateHostPasswordCmd;
|
||||||
import com.cloud.exception.DiscoveryException;
|
import com.cloud.exception.DiscoveryException;
|
||||||
import com.cloud.exception.InvalidParameterValueException;
|
import com.cloud.exception.InvalidParameterValueException;
|
||||||
|
import com.cloud.exception.ResourceInUseException;
|
||||||
import com.cloud.host.Host;
|
import com.cloud.host.Host;
|
||||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||||
import com.cloud.org.Cluster;
|
import com.cloud.org.Cluster;
|
||||||
@ -61,7 +62,7 @@ public interface ResourceService {
|
|||||||
* @throws IllegalArgumentException
|
* @throws IllegalArgumentException
|
||||||
* @throws DiscoveryException
|
* @throws DiscoveryException
|
||||||
*/
|
*/
|
||||||
List<? extends Cluster> discoverCluster(AddClusterCmd cmd) throws IllegalArgumentException, DiscoveryException;
|
List<? extends Cluster> discoverCluster(AddClusterCmd cmd) throws IllegalArgumentException, DiscoveryException, ResourceInUseException;
|
||||||
|
|
||||||
boolean deleteCluster(DeleteClusterCmd cmd);
|
boolean deleteCluster(DeleteClusterCmd cmd);
|
||||||
|
|
||||||
|
|||||||
67
api/src/com/cloud/server/ResourceTag.java
Normal file
67
api/src/com/cloud/server/ResourceTag.java
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
package com.cloud.server;
|
||||||
|
|
||||||
|
import com.cloud.acl.ControlledEntity;
|
||||||
|
|
||||||
|
public interface ResourceTag extends ControlledEntity{
|
||||||
|
|
||||||
|
public enum TaggedResourceType {
|
||||||
|
UserVm,
|
||||||
|
Template,
|
||||||
|
ISO,
|
||||||
|
Volume,
|
||||||
|
Snapshot,
|
||||||
|
Network,
|
||||||
|
LoadBalancer,
|
||||||
|
PortForwardingRule,
|
||||||
|
FirewallRule,
|
||||||
|
SecurityGroup,
|
||||||
|
PublicIpAddress
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
long getId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String getKey();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String getValue();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
long getResourceId();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
TaggedResourceType getResourceType();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String getCustomer();
|
||||||
|
|
||||||
|
}
|
||||||
63
api/src/com/cloud/server/TaggedResourceService.java
Normal file
63
api/src/com/cloud/server/TaggedResourceService.java
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.package com.cloud.server;
|
||||||
|
|
||||||
|
package com.cloud.server;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import com.cloud.api.commands.ListTagsCmd;
|
||||||
|
import com.cloud.server.ResourceTag.TaggedResourceType;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @author Alena Prokharchyk
|
||||||
|
*/
|
||||||
|
public interface TaggedResourceService {
|
||||||
|
|
||||||
|
TaggedResourceType getResourceType (String resourceTypeStr);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param resourceIds TODO
|
||||||
|
* @param resourceType
|
||||||
|
* @param tags
|
||||||
|
* @param customer TODO
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<ResourceTag> createTags(List<String> resourceIds, TaggedResourceType resourceType, Map<String, String> tags, String customer);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param resourceId
|
||||||
|
* @param resourceType
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
String getUuid(String resourceId, TaggedResourceType resourceType);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param listTagsCmd
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
List<? extends ResourceTag> listTags(ListTagsCmd listTagsCmd);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param resourceIds
|
||||||
|
* @param resourceType
|
||||||
|
* @param tags
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
boolean deleteTags(List<String> resourceIds, TaggedResourceType resourceType, Map<String, String> tags);
|
||||||
|
}
|
||||||
@ -1,3 +1,21 @@
|
|||||||
|
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
-- or more contributor license agreements. See the NOTICE file
|
||||||
|
-- distributed with this work for additional information
|
||||||
|
-- regarding copyright ownership. The ASF licenses this file
|
||||||
|
-- to you under the Apache License, Version 2.0 (the
|
||||||
|
-- "License"); you may not use this file except in compliance
|
||||||
|
-- with the License. You may obtain a copy of the License at
|
||||||
|
--
|
||||||
|
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
--
|
||||||
|
-- Unless required by applicable law or agreed to in writing,
|
||||||
|
-- software distributed under the License is distributed on an
|
||||||
|
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
-- KIND, either express or implied. See the License for the
|
||||||
|
-- specific language governing permissions and limitations
|
||||||
|
-- under the License.
|
||||||
|
|
||||||
|
|
||||||
USE cloudbridge;
|
USE cloudbridge;
|
||||||
|
|
||||||
-- This file (and cloudbridge_policy_alter.sql) can be applied to an existing cloudbridge
|
-- This file (and cloudbridge_policy_alter.sql) can be applied to an existing cloudbridge
|
||||||
|
|||||||
@ -1,3 +1,21 @@
|
|||||||
|
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
-- or more contributor license agreements. See the NOTICE file
|
||||||
|
-- distributed with this work for additional information
|
||||||
|
-- regarding copyright ownership. The ASF licenses this file
|
||||||
|
-- to you under the Apache License, Version 2.0 (the
|
||||||
|
-- "License"); you may not use this file except in compliance
|
||||||
|
-- with the License. You may obtain a copy of the License at
|
||||||
|
--
|
||||||
|
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
--
|
||||||
|
-- Unless required by applicable law or agreed to in writing,
|
||||||
|
-- software distributed under the License is distributed on an
|
||||||
|
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
-- KIND, either express or implied. See the License for the
|
||||||
|
-- specific language governing permissions and limitations
|
||||||
|
-- under the License.
|
||||||
|
|
||||||
|
|
||||||
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ANSI';
|
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='ANSI';
|
||||||
|
|
||||||
DROP DATABASE IF EXISTS cloudbridge;
|
DROP DATABASE IF EXISTS cloudbridge;
|
||||||
|
|||||||
@ -1,3 +1,20 @@
|
|||||||
|
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
-- or more contributor license agreements. See the NOTICE file
|
||||||
|
-- distributed with this work for additional information
|
||||||
|
-- regarding copyright ownership. The ASF licenses this file
|
||||||
|
-- to you under the Apache License, Version 2.0 (the
|
||||||
|
-- "License"); you may not use this file except in compliance
|
||||||
|
-- with the License. You may obtain a copy of the License at
|
||||||
|
--
|
||||||
|
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
--
|
||||||
|
-- Unless required by applicable law or agreed to in writing,
|
||||||
|
-- software distributed under the License is distributed on an
|
||||||
|
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
-- KIND, either express or implied. See the License for the
|
||||||
|
-- specific language governing permissions and limitations
|
||||||
|
-- under the License.
|
||||||
|
|
||||||
USE cloudbridge;
|
USE cloudbridge;
|
||||||
|
|
||||||
ALTER TABLE shost ADD UNIQUE shost_uq_host(Host, HostType, ExportRoot);
|
ALTER TABLE shost ADD UNIQUE shost_uq_host(Host, HostType, ExportRoot);
|
||||||
|
|||||||
@ -1,3 +1,20 @@
|
|||||||
|
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
-- or more contributor license agreements. See the NOTICE file
|
||||||
|
-- distributed with this work for additional information
|
||||||
|
-- regarding copyright ownership. The ASF licenses this file
|
||||||
|
-- to you under the Apache License, Version 2.0 (the
|
||||||
|
-- "License"); you may not use this file except in compliance
|
||||||
|
-- with the License. You may obtain a copy of the License at
|
||||||
|
--
|
||||||
|
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
--
|
||||||
|
-- Unless required by applicable law or agreed to in writing,
|
||||||
|
-- software distributed under the License is distributed on an
|
||||||
|
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
-- KIND, either express or implied. See the License for the
|
||||||
|
-- specific language governing permissions and limitations
|
||||||
|
-- under the License.
|
||||||
|
|
||||||
USE cloudbridge;
|
USE cloudbridge;
|
||||||
|
|
||||||
-- This file can be applied to an existing cloudbridge database. It is used
|
-- This file can be applied to an existing cloudbridge database. It is used
|
||||||
|
|||||||
@ -1,3 +1,21 @@
|
|||||||
|
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
-- or more contributor license agreements. See the NOTICE file
|
||||||
|
-- distributed with this work for additional information
|
||||||
|
-- regarding copyright ownership. The ASF licenses this file
|
||||||
|
-- to you under the Apache License, Version 2.0 (the
|
||||||
|
-- "License"); you may not use this file except in compliance
|
||||||
|
-- with the License. You may obtain a copy of the License at
|
||||||
|
--
|
||||||
|
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
--
|
||||||
|
-- Unless required by applicable law or agreed to in writing,
|
||||||
|
-- software distributed under the License is distributed on an
|
||||||
|
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
-- KIND, either express or implied. See the License for the
|
||||||
|
-- specific language governing permissions and limitations
|
||||||
|
-- under the License.
|
||||||
|
|
||||||
|
|
||||||
USE cloudbridge;
|
USE cloudbridge;
|
||||||
|
|
||||||
ALTER TABLE multipart_meta ADD CONSTRAINT FOREIGN KEY meta_uploads_id(UploadID) REFERENCES multipart_uploads(ID) ON DELETE CASCADE;
|
ALTER TABLE multipart_meta ADD CONSTRAINT FOREIGN KEY meta_uploads_id(UploadID) REFERENCES multipart_uploads(ID) ON DELETE CASCADE;
|
||||||
|
|||||||
@ -1,3 +1,21 @@
|
|||||||
|
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
-- or more contributor license agreements. See the NOTICE file
|
||||||
|
-- distributed with this work for additional information
|
||||||
|
-- regarding copyright ownership. The ASF licenses this file
|
||||||
|
-- to you under the Apache License, Version 2.0 (the
|
||||||
|
-- "License"); you may not use this file except in compliance
|
||||||
|
-- with the License. You may obtain a copy of the License at
|
||||||
|
--
|
||||||
|
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
--
|
||||||
|
-- Unless required by applicable law or agreed to in writing,
|
||||||
|
-- software distributed under the License is distributed on an
|
||||||
|
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
-- KIND, either express or implied. See the License for the
|
||||||
|
-- specific language governing permissions and limitations
|
||||||
|
-- under the License.
|
||||||
|
|
||||||
|
|
||||||
USE cloudbridge;
|
USE cloudbridge;
|
||||||
|
|
||||||
-- This file (and cloudbridge_offering_alter.sql) can be applied to an existing cloudbridge
|
-- This file (and cloudbridge_offering_alter.sql) can be applied to an existing cloudbridge
|
||||||
|
|||||||
@ -1,3 +1,21 @@
|
|||||||
|
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
-- or more contributor license agreements. See the NOTICE file
|
||||||
|
-- distributed with this work for additional information
|
||||||
|
-- regarding copyright ownership. The ASF licenses this file
|
||||||
|
-- to you under the Apache License, Version 2.0 (the
|
||||||
|
-- "License"); you may not use this file except in compliance
|
||||||
|
-- with the License. You may obtain a copy of the License at
|
||||||
|
--
|
||||||
|
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
--
|
||||||
|
-- Unless required by applicable law or agreed to in writing,
|
||||||
|
-- software distributed under the License is distributed on an
|
||||||
|
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
-- KIND, either express or implied. See the License for the
|
||||||
|
-- specific language governing permissions and limitations
|
||||||
|
-- under the License.
|
||||||
|
|
||||||
|
|
||||||
USE cloudbridge;
|
USE cloudbridge;
|
||||||
|
|
||||||
ALTER TABLE offering_bundle ADD UNIQUE one_offering (AmazonEC2Offering);
|
ALTER TABLE offering_bundle ADD UNIQUE one_offering (AmazonEC2Offering);
|
||||||
|
|||||||
@ -1,3 +1,21 @@
|
|||||||
|
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
-- or more contributor license agreements. See the NOTICE file
|
||||||
|
-- distributed with this work for additional information
|
||||||
|
-- regarding copyright ownership. The ASF licenses this file
|
||||||
|
-- to you under the Apache License, Version 2.0 (the
|
||||||
|
-- "License"); you may not use this file except in compliance
|
||||||
|
-- with the License. You may obtain a copy of the License at
|
||||||
|
--
|
||||||
|
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
--
|
||||||
|
-- Unless required by applicable law or agreed to in writing,
|
||||||
|
-- software distributed under the License is distributed on an
|
||||||
|
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
-- KIND, either express or implied. See the License for the
|
||||||
|
-- specific language governing permissions and limitations
|
||||||
|
-- under the License.
|
||||||
|
|
||||||
|
|
||||||
USE cloudbridge;
|
USE cloudbridge;
|
||||||
|
|
||||||
ALTER TABLE bucket_policies ADD UNIQUE one_policy_per_bucket(BucketName);
|
ALTER TABLE bucket_policies ADD UNIQUE one_policy_per_bucket(BucketName);
|
||||||
|
|||||||
@ -1,3 +1,21 @@
|
|||||||
|
-- Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
-- or more contributor license agreements. See the NOTICE file
|
||||||
|
-- distributed with this work for additional information
|
||||||
|
-- regarding copyright ownership. The ASF licenses this file
|
||||||
|
-- to you under the Apache License, Version 2.0 (the
|
||||||
|
-- "License"); you may not use this file except in compliance
|
||||||
|
-- with the License. You may obtain a copy of the License at
|
||||||
|
--
|
||||||
|
-- http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
--
|
||||||
|
-- Unless required by applicable law or agreed to in writing,
|
||||||
|
-- software distributed under the License is distributed on an
|
||||||
|
-- "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
-- KIND, either express or implied. See the License for the
|
||||||
|
-- specific language governing permissions and limitations
|
||||||
|
-- under the License.
|
||||||
|
|
||||||
|
|
||||||
USE cloudbridge;
|
USE cloudbridge;
|
||||||
|
|
||||||
SET foreign_key_checks = 0;
|
SET foreign_key_checks = 0;
|
||||||
|
|||||||
@ -1,7 +1,20 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# deploy-db-bridge.sh -- deploys the cloudbridge database configuration.
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
#
|
#
|
||||||
# set -x
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
if [ ! -f cloudbridge_db.sql ]; then
|
if [ ! -f cloudbridge_db.sql ]; then
|
||||||
printf "Error: Unable to find cloudbridge_db.sql\n"
|
printf "Error: Unable to find cloudbridge_db.sql\n"
|
||||||
|
|||||||
@ -1,4 +1,20 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
#
|
#
|
||||||
# /etc/init.d/tomcat6 -- startup script for the Tomcat 6 servlet engine
|
# /etc/init.d/tomcat6 -- startup script for the Tomcat 6 servlet engine
|
||||||
#
|
#
|
||||||
|
|||||||
@ -1,5 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
# tomcat6 This shell script takes care of starting and stopping Tomcat
|
# tomcat6 This shell script takes care of starting and stopping Tomcat
|
||||||
#
|
#
|
||||||
# chkconfig: - 80 20
|
# chkconfig: - 80 20
|
||||||
|
|||||||
@ -1,5 +1,22 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
#
|
||||||
# Cloud.com Bridge setup script.
|
# Cloud.com Bridge setup script.
|
||||||
#
|
#
|
||||||
|
|
||||||
|
|||||||
@ -1,4 +1,21 @@
|
|||||||
#!/cygdrive/c/python26/python
|
#!/cygdrive/c/python26/python
|
||||||
|
#
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
import base64
|
import base64
|
||||||
import hmac
|
import hmac
|
||||||
|
|||||||
@ -1,6 +1,20 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
# deploy.sh -- deploys a cloud-bridge
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
#
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
usage() {
|
usage() {
|
||||||
printf "Usage: %s: -d [tomcat directory to deploy to] -z [zip file to use]\n" $(basename $0) >&2
|
printf "Usage: %s: -d [tomcat directory to deploy to] -z [zip file to use]\n" $(basename $0) >&2
|
||||||
|
|||||||
@ -1,4 +1,20 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
|
|
||||||
# install.sh -- deploys cloud-bridge and the corresponding DB
|
# install.sh -- deploys cloud-bridge and the corresponding DB
|
||||||
|
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
# Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
# or more contributor license agreements. See the NOTICE file
|
||||||
|
# distributed with this work for additional information
|
||||||
|
# regarding copyright ownership. The ASF licenses this file
|
||||||
|
# to you under the Apache License, Version 2.0 (the
|
||||||
|
# "License"); you may not use this file except in compliance
|
||||||
|
# with the License. You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing,
|
||||||
|
# software distributed under the License is distributed on an
|
||||||
|
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
# KIND, either express or implied. See the License for the
|
||||||
|
# specific language governing permissions and limitations
|
||||||
|
# under the License.
|
||||||
CP=.
|
CP=.
|
||||||
for file in lib/*.jar
|
for file in lib/*.jar
|
||||||
do
|
do
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ActivateLicense.java
|
* ActivateLicense.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ActivateLicenseResponse.java
|
* ActivateLicenseResponse.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ActivateLicenseResponseType.java
|
* ActivateLicenseResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* ActivateLicenseType.java
|
* ActivateLicenseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AllocateAddress.java
|
* AllocateAddress.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AllocateAddressResponse.java
|
* AllocateAddressResponse.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AllocateAddressResponseType.java
|
* AllocateAddressResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AllocateAddressType.java
|
* AllocateAddressType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AmazonEC2MessageReceiverInOut.java
|
* AmazonEC2MessageReceiverInOut.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AmazonEC2Skeleton.java
|
* AmazonEC2Skeleton.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AmazonEC2SkeletonInterface.java
|
* AmazonEC2SkeletonInterface.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AssociateAddress.java
|
* AssociateAddress.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AssociateAddressResponse.java
|
* AssociateAddressResponse.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AssociateAddressResponseType.java
|
* AssociateAddressResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AssociateAddressType.java
|
* AssociateAddressType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AssociateDhcpOptions.java
|
* AssociateDhcpOptions.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AssociateDhcpOptionsResponse.java
|
* AssociateDhcpOptionsResponse.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AssociateDhcpOptionsResponseType.java
|
* AssociateDhcpOptionsResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AssociateDhcpOptionsType.java
|
* AssociateDhcpOptionsType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachVolume.java
|
* AttachVolume.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachVolumeResponse.java
|
* AttachVolumeResponse.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachVolumeResponseType.java
|
* AttachVolumeResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachVolumeType.java
|
* AttachVolumeType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachVpnGateway.java
|
* AttachVpnGateway.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachVpnGatewayResponse.java
|
* AttachVpnGatewayResponse.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachVpnGatewayResponseType.java
|
* AttachVpnGatewayResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachVpnGatewayType.java
|
* AttachVpnGatewayType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachmentSetItemResponseType.java
|
* AttachmentSetItemResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachmentSetResponseType.java
|
* AttachmentSetResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachmentSetType.java
|
* AttachmentSetType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttachmentType.java
|
* AttachmentType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttributeBooleanValueType.java
|
* AttributeBooleanValueType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AttributeValueType.java
|
* AttributeValueType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AuthorizeSecurityGroupIngress.java
|
* AuthorizeSecurityGroupIngress.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AuthorizeSecurityGroupIngressResponse.java
|
* AuthorizeSecurityGroupIngressResponse.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AuthorizeSecurityGroupIngressResponseType.java
|
* AuthorizeSecurityGroupIngressResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AuthorizeSecurityGroupIngressType.java
|
* AuthorizeSecurityGroupIngressType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AvailabilityZoneItemType.java
|
* AvailabilityZoneItemType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AvailabilityZoneMessageSetType.java
|
* AvailabilityZoneMessageSetType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AvailabilityZoneMessageType.java
|
* AvailabilityZoneMessageType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* AvailabilityZoneSetType.java
|
* AvailabilityZoneSetType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BlockDeviceMappingItemType.java
|
* BlockDeviceMappingItemType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BlockDeviceMappingItemTypeChoice_type0.java
|
* BlockDeviceMappingItemTypeChoice_type0.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BlockDeviceMappingType.java
|
* BlockDeviceMappingType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BundleInstance.java
|
* BundleInstance.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BundleInstanceResponse.java
|
* BundleInstanceResponse.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BundleInstanceResponseType.java
|
* BundleInstanceResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BundleInstanceS3StorageType.java
|
* BundleInstanceS3StorageType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BundleInstanceTaskErrorType.java
|
* BundleInstanceTaskErrorType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BundleInstanceTaskStorageType.java
|
* BundleInstanceTaskStorageType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BundleInstanceTaskType.java
|
* BundleInstanceTaskType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BundleInstanceTasksSetType.java
|
* BundleInstanceTasksSetType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* BundleInstanceType.java
|
* BundleInstanceType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CancelBundleTask.java
|
* CancelBundleTask.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CancelBundleTaskResponse.java
|
* CancelBundleTaskResponse.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CancelBundleTaskResponseType.java
|
* CancelBundleTaskResponseType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CancelBundleTaskType.java
|
* CancelBundleTaskType.java
|
||||||
|
|||||||
@ -1,3 +1,19 @@
|
|||||||
|
// Licensed to the Apache Software Foundation (ASF) under one
|
||||||
|
// or more contributor license agreements. See the NOTICE file
|
||||||
|
// distributed with this work for additional information
|
||||||
|
// regarding copyright ownership. The ASF licenses this file
|
||||||
|
// to you under the Apache License, Version 2.0 (the
|
||||||
|
// "License"); you may not use this file except in compliance
|
||||||
|
// with the License. You may obtain a copy of the License at
|
||||||
|
//
|
||||||
|
// http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
//
|
||||||
|
// Unless required by applicable law or agreed to in writing,
|
||||||
|
// software distributed under the License is distributed on an
|
||||||
|
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
// KIND, either express or implied. See the License for the
|
||||||
|
// specific language governing permissions and limitations
|
||||||
|
// under the License.
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CancelConversionTask.java
|
* CancelConversionTask.java
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user