@Override
 public Cluster convert(ClusterRequest source) {
   Cluster cluster = new Cluster();
   cluster.setName(source.getName());
   cluster.setStatus(REQUESTED);
   cluster.setDescription(source.getDescription());
   cluster.setEmailNeeded(source.getEmailNeeded());
   cluster.setUserName(source.getUserName());
   cluster.setPassword(source.getPassword());
   Boolean enableSecurity = source.getEnableSecurity();
   cluster.setSecure(enableSecurity == null ? false : enableSecurity);
   KerberosRequest kerberos = source.getKerberos();
   KerberosConfig kerberosConfig = new KerberosConfig();
   if (source.getKerberos() != null) {
     kerberosConfig.setKerberosMasterKey(kerberos.getMasterKey());
     kerberosConfig.setKerberosAdmin(kerberos.getAdmin());
     kerberosConfig.setKerberosPassword(kerberos.getPassword());
     kerberosConfig.setKerberosUrl(kerberos.getUrl());
     kerberosConfig.setKerberosRealm(kerberos.getRealm());
     kerberosConfig.setKerberosTcpAllowed(kerberos.getTcpAllowed());
     kerberosConfig.setKerberosPrincipal(kerberos.getPrincipal());
     kerberosConfig.setKerberosLdapUrl(kerberos.getLdapUrl());
     kerberosConfig.setKerberosContainerDn(kerberos.getContainerDn());
   }
   cluster.setKerberosConfig(kerberosConfig);
   cluster.setLdapRequired(source.getLdapRequired());
   cluster.setConfigStrategy(source.getConfigStrategy());
   cluster.setEnableShipyard(source.getEnableShipyard());
   cluster.setEmailTo(source.getEmailTo());
   FileSystemBase fileSystem = source.getFileSystem();
   cluster.setCloudbreakAmbariPassword(PasswordUtil.generatePassword());
   cluster.setCloudbreakAmbariUser("cloudbreak");
   if (fileSystem != null) {
     cluster.setFileSystem(getConversionService().convert(fileSystem, FileSystem.class));
   }
   try {
     Json json = new Json(convertBlueprintInputJsons(source.getBlueprintInputs()));
     cluster.setBlueprintInputs(
         source.getBlueprintInputs() == null ? new Json(new HashMap<>()) : json);
     if (source.getBlueprintCustomProperties() != null) {
       cluster.setBlueprintCustomProperties(source.getBlueprintCustomProperties());
     } else {
       cluster.setBlueprintCustomProperties(null);
     }
   } catch (JsonProcessingException e) {
     cluster.setBlueprintInputs(null);
   }
   return cluster;
 }
  @Test(expected = BadRequestException.class)
  public void testStopWhenAwsHasEphemeralVolume() {
    cluster =
        TestUtil.cluster(
            TestUtil.blueprint(), TestUtil.stack(Status.AVAILABLE, TestUtil.awsCredential()), 1L);
    stack = TestUtil.setEphemeral(cluster.getStack());
    cluster.setStatus(Status.AVAILABLE);
    cluster.setStack(stack);
    stack.setCluster(cluster);

    when(stackService.get(anyLong())).thenReturn(stack);
    when(stackService.getById(anyLong())).thenReturn(stack);

    underTest.updateStatus(1L, StatusRequest.STOPPED);
  }