}
}
if(Util.isDeploymentInRepository(name, ctx.getModelControllerClient()) && f != null) {
if(force.isPresent(args)) {
DefaultOperationRequestBuilder builder = new DefaultOperationRequestBuilder();
// replace
builder = new DefaultOperationRequestBuilder();
builder.setOperationName(Util.FULL_REPLACE_DEPLOYMENT);
builder.addProperty(Util.NAME, name);
if(runtimeName != null) {
builder.addProperty(Util.RUNTIME_NAME, runtimeName);
}
byte[] bytes = readBytes(f);
builder.getModelNode().get(Util.CONTENT).get(0).get(Util.BYTES).set(bytes);
return builder.buildRequest();
} else {
throw new OperationFormatException("'" + name + "' is already deployed (use -f to force re-deploy).");
}
}
final List<String> serverGroups;
if (ctx.isDomainMode()) {
if(allServerGroups.isPresent(args)) {
serverGroups = Util.getServerGroups(ctx.getModelControllerClient());
} else {
String serverGroupsStr = this.serverGroups.getValue(args);
if(serverGroupsStr == null) {
throw new OperationFormatException("Either --all-server-groups or --server-groups must be specified.");
}
serverGroups = Arrays.asList(serverGroupsStr.split(","));
}
if(serverGroups.isEmpty() && !disabled.isPresent(args)) {
new OperationFormatException("No server group is available.");
}
} else {
serverGroups = null;
}
ModelNode composite = new ModelNode();
composite.get(Util.OPERATION).set(Util.COMPOSITE);
composite.get(Util.ADDRESS).setEmptyList();
ModelNode steps = composite.get(Util.STEPS);
DefaultOperationRequestBuilder builder;
// add
if (f != null) {
builder = new DefaultOperationRequestBuilder();
builder.setOperationName(Util.ADD);
builder.addNode(Util.DEPLOYMENT, name);
if (runtimeName != null) {
builder.addProperty(Util.RUNTIME_NAME, runtimeName);
}
byte[] bytes = readBytes(f);
builder.getModelNode().get(Util.CONTENT).get(0).get(Util.BYTES).set(bytes);
steps.add(builder.buildRequest());
}
if(!disabled.isPresent(args)) {
// deploy
if (ctx.isDomainMode()) {
for (String serverGroup : serverGroups) {
steps.add(Util.configureDeploymentOperation(Util.ADD, name, serverGroup));
}
for (String serverGroup : serverGroups) {
steps.add(Util.configureDeploymentOperation(Util.DEPLOY, name, serverGroup));
}
} else {
builder = new DefaultOperationRequestBuilder();
builder.setOperationName(Util.DEPLOY);
builder.addNode(Util.DEPLOYMENT, name);
steps.add(builder.buildRequest());
}
}
return composite;
}