]>
git.argeo.org Git - gpl/argeo-slc.git/blob - runtime/org.argeo.slc.support.simple/src/main/java/org/argeo/slc/lib/vbox/VBoxManager.java
d25576e335b07c8b46754111068f92d7da9f9dc2
1 package org
.argeo
.slc
.lib
.vbox
;
3 import java
.util
.ArrayList
;
6 import org
.apache
.commons
.logging
.Log
;
7 import org
.apache
.commons
.logging
.LogFactory
;
8 import org
.argeo
.slc
.core
.execution
.tasks
.SystemCall
;
10 public class VBoxManager
{
11 private final static Log log
= LogFactory
.getLog(VBoxManager
.class);
13 private String machineName
;
14 private String executable
= "VBoxManage";
16 private List
<VBoxNat
> nats
= new ArrayList
<VBoxNat
>();
18 public void applyNats() {
19 StringBuffer script
= new StringBuffer("");
20 for (VBoxNat vBoxNat
: nats
) {
21 for (String id
: vBoxNat
.getMappings().keySet()) {
22 VBoxPortMapping mapping
= vBoxNat
.getMappings().get(id
);
23 new SystemCall(createNatCommand(id
, vBoxNat
.getDevice(),
24 "Protocol", mapping
.getProtocol(), script
)).run();
26 new SystemCall(createNatCommand(id
, vBoxNat
.getDevice(),
27 "GuestPort", mapping
.getGuest(), script
)).run();
29 new SystemCall(createNatCommand(id
, vBoxNat
.getDevice(),
30 "HostPort", mapping
.getHost(), script
)).run();
37 if (log
.isDebugEnabled())
38 log
.debug("Port setting script:\n" + script
);
41 protected List
<Object
> createNatCommand(String id
, String device
,
42 String cfgKey
, String value
, StringBuffer script
) {
43 List
<Object
> cmd
= new ArrayList
<Object
>();
45 cmd
.add("setextradata");
47 cmd
.add("VBoxInternal/Devices/" + device
+ "/0/LUN#0/Config/" + id
51 for (Object arg
: cmd
) {
52 script
.append(arg
).append(' ');
58 public String
getMachineName() {
62 public void setMachineName(String machineName
) {
63 this.machineName
= machineName
;
66 public String
getExecutable() {
70 public void setExecutable(String executable
) {
71 this.executable
= executable
;
74 public List
<VBoxNat
> getNats() {
78 public void setNats(List
<VBoxNat
> boxNats
) {