Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 24 additions & 1 deletion core/src/main/java/org/openstack4j/api/heat/StackService.java
Original file line number Diff line number Diff line change
Expand Up @@ -50,10 +50,33 @@ public interface StackService {
Stack create(String name, String template, Map<String, String> parameters,
boolean disableRollback, Long timeOutMins);

/**
* <code>POST /v1/{tenant_id}/stacks/preview</code><br \>
* <p>
* Preview a new {@link Stack} out of a {@link StackCreate} object
*
* @param newStack {@link StackCreate} object out of which stack is to be previewed
* @return new {@link Stack} as returned from the server
*/
Stack preview(StackCreate newStack);

/**
* <code>POST /v1/{tenant_id}/stacks/preview</code><br \>
* <p>
* Create a new {@link StackCreate} object and preview the {@link Stack} as sent from the server
*
* @param name Name of Stack
* @param template Template in Json-Format or YAML format
* @param parameters Map of parameters
* @param timeOutMins timeout in minutes
* @return new {@link Stack} as returned from the server
*/
Stack preview(String name, String template, Map<String, String> parameters, Long timeOutMins);

/**
* returns details of a {@link Stack}.
*
* @param stackName Name of {@link Stack}
* @param name Name of {@link Stack}
* @return {@link Stack}
*/
Stack getStackByName(String name);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,18 @@ public Stack create(String name, String template,
.parameters(parameters).timeoutMins(timeoutMins).build());
}

@Override
public Stack preview(StackCreate newStack) {
Objects.requireNonNull(newStack);
return post(HeatStack.class, uri("/stacks/preview")).entity(newStack).execute();
}

@Override
public Stack preview(String name, String template, Map<String, String> parameters, Long timeOutMins) {
return preview(Builders.stack().name(name).template(template)
.parameters(parameters).timeoutMins(timeOutMins).build());
}

@Override
public List<? extends Stack> list() {
return get(Stacks.class, uri("/stacks")).execute().getList();
Expand Down