ClusterCommands implements CommandMarker { @CliCommand(value = "cluster delete", help = "Delete the cluster") public String deleteCluster() { String message = "Successfully deleted the cluster"; try { deleteCluster(context.getCluster()); } catch (HttpResponseException e) { message = "Could not delete the cluster: " + e.getMessage(); } return message; } @Autowired  ClusterCommands(AmbariClient client, AmbariContext context, FlashService flashService); @CliAvailabilityIndicator("cluster build") boolean isClusterBuildCommandAvailable(); @CliCommand(value = "cluster build", help = "Starts to build a cluster") String buildCluster(
    @CliOption(key = "blueprint", mandatory = true, help = "Id of the blueprint, use 'blueprints' command to see the list") Blueprint id); @CliAvailabilityIndicator("cluster assign") boolean isAssignCommandAvailable(); @CliCommand(value = "cluster assign", help = "Assign host to host group") String assign(
    @CliOption(key = "host", mandatory = true, help = "Fully qualified host name") Host host,
    @CliOption(key = "hostGroup", mandatory = true, help = "Host group which to assign the host") String group); @CliAvailabilityIndicator(value = "cluster autoAssign") boolean isClusterAutoAssignAvailable(); @CliCommand(value = "cluster autoAssign", help = "Automatically assigns hosts to different host groups base on the provided strategy") String autoAssign(); @CliAvailabilityIndicator("cluster preview") boolean isClusterPreviewCommandAvailable(); @CliCommand(value = "cluster preview", help = "Shows the currently assigned hosts") String showAssignments(); @CliAvailabilityIndicator("cluster create") boolean isCreateClusterCommandAvailable(); @CliCommand(value = "cluster create", help = "Create a cluster based on current blueprint and assigned hosts") String createCluster(
    @CliOption(key = "exitOnFinish", mandatory = false, help = "Quits the shell when the cluster creation finishes") Boolean exit); @CliAvailabilityIndicator("cluster delete") boolean isDeleteClusterCommandAvailable(); @CliCommand(value = "cluster delete", help = "Delete the cluster") String deleteCluster(); @CliAvailabilityIndicator(value = "cluster reset") boolean isClusterResetCommandAvailable(); @CliCommand(value = "cluster reset", help = "Clears the host - host group assignments") void reset();  }
@Test public void testDeleteClusterForException() throws HttpResponseException { when(context.getCluster()).thenReturn("cluster"); when(responseException.getMessage()).thenReturn("msg"); doThrow(responseException).when(client).deleteCluster("cluster"); String result = clusterCommands.deleteCluster(); verify(client).deleteCluster("cluster"); verify(context).getCluster(); verify(responseException).getMessage(); assertEquals("Could not delete the cluster: msg", result); }
@Test public void testDeleteCluster() throws HttpResponseException { when(context.getCluster()).thenReturn("cluster"); when(responseException.getMessage()).thenReturn("msg"); String result = clusterCommands.deleteCluster(); verify(client).deleteCluster("cluster"); verify(context).getCluster(); assertEquals("Successfully deleted the cluster", result); }