package com.netifera.platform.net.tools.basic;
import com.netifera.platform.api.probe.IProbe;
import com.netifera.platform.api.tools.ITool;
import com.netifera.platform.api.tools.IToolContext;
import com.netifera.platform.api.tools.ToolException;
import com.netifera.platform.net.internal.tools.portscanning.Activator;
import com.netifera.platform.net.model.HostEntity;
import com.netifera.platform.net.model.InternetAddressEntity;
import com.netifera.platform.tools.RequiredOptionMissingException;
import com.netifera.platform.util.addresses.inet.InternetAddress;
public class AddHost implements ITool {
private IToolContext context;
private long realm;
private InternetAddress address;
public void toolRun(IToolContext context) throws ToolException {
this.context = context;
// XXX hardcode local probe as realm
IProbe probe = Activator.getInstance().getProbeManager().getLocalProbe();
realm = probe.getEntity().getId();
setupToolOptions();
context.setTitle("Add host "+address);
InternetAddressEntity addressEntity = Activator.getInstance().getNetworkEntityFactory().createAddress(realm, context.getSpaceId(), address);
HostEntity entity = addressEntity.getHost();
entity.addTag("Target");
entity.update();
context.info("Host "+address+" added to the model");
}
private void setupToolOptions() throws RequiredOptionMissingException {
address = (InternetAddress) context.getConfiguration().get("address");
if(address == null) {
throw new RequiredOptionMissingException("address");
}
}
}