VPC, implement plug/unplug nic

This commit is contained in:
anthony 2012-06-05 15:38:25 -07:00 committed by Alena Prokharchyk
parent 72974831a0
commit daf1aa4b92
3 changed files with 44 additions and 7 deletions

View File

@ -6973,8 +6973,31 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
* @return
*/
private UnPlugNicAnswer execute(UnPlugNicCommand cmd) {
// TODO Auto-generated method stub
return null;
Connection conn = getConnection();
VirtualMachineTO vmto = cmd.getVirtualMachine();
String vmName = vmto.getName();
try {
Set<VM> vms = VM.getByNameLabel(conn, vmName);
if ( vms == null || vms.isEmpty() ) {
return new UnPlugNicAnswer(cmd, false, "Can not find VM " + vmName);
}
VM vm = vms.iterator().next();
NicTO nic = cmd.getNic();
String mac = nic.getMac();
for ( VIF vif : vm.getVIFs(conn)) {
String lmac = vif.getMAC(conn);
if ( lmac.equals(mac) ) {
vif.unplug(conn);
vif.destroy(conn);
break;
}
}
return new UnPlugNicAnswer(cmd, true, "success");
} catch (Exception e) {
String msg = " UnPlug Nic failed due to " + e.toString();
s_logger.warn(msg, e);
return new UnPlugNicAnswer(cmd, false, msg);
}
}
/**
@ -6982,8 +7005,24 @@ public abstract class CitrixResourceBase implements ServerResource, HypervisorRe
* @return
*/
private PlugNicAnswer execute(PlugNicCommand cmd) {
// TODO Auto-generated method stub
return null;
Connection conn = getConnection();
VirtualMachineTO vmto = cmd.getVirtualMachine();
String vmName = vmto.getName();
try {
Set<VM> vms = VM.getByNameLabel(conn, vmName);
if ( vms == null || vms.isEmpty() ) {
return new PlugNicAnswer(cmd, false, "Can not find VM " + vmName);
}
VM vm = vms.iterator().next();
NicTO nic = cmd.getNic();
VIF vif = createVif(conn, vmName, vm, nic);
vif.plug(conn);
return new PlugNicAnswer(cmd, true, "success");
} catch (Exception e) {
String msg = " Plug Nic failed due to " + e.toString();
s_logger.warn(msg, e);
return new PlugNicAnswer(cmd, false, msg);
}
}
/**

View File

@ -10,8 +10,6 @@ COMMIT
-A INPUT -d 224.0.0.18/32 -j ACCEPT
-A INPUT -d 225.0.0.50/32 -j ACCEPT
-A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -i eth2 -m state --state RELATED,ESTABLISHED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i eth0 -p tcp -m state --state NEW --dport 3922 -j ACCEPT

View File

@ -4,7 +4,7 @@
# the following two variables are used by the target "waf dist"
# if you change 'em here, you need to change it also in cloud.spec, add a %changelog entry there, and add an entry in debian/changelog
VERSION = '3.0.3.2012-06-05T18:30:03Z'
VERSION = '3.0.3.2012-06-05T22:35:08Z'
APPNAME = 'cloud'
import shutil,os