public void install( TierInstance tierInstance, ClaudiaData claudiaData, String envName, String vdc, ProductRelease productRelease, Set<Attribute> attributes, Task task, String callback) throws EntityNotFoundException { EnvironmentInstance environmentInstance = environmentInstanceManager.load(vdc, envName); try { ProductInstance productInstance = productInstanceManager.install( tierInstance, claudiaData, environmentInstance, productRelease); log.info( "Product " + productRelease.getProduct() + '-' + productRelease.getVersion() + " installed successfully"); } catch (InvalidProductInstanceRequestException e) { String errorMsg = e.getMessage(); ProductInstance instance = getInstalledProduct(productRelease, tierInstance.getVM()); if (instance != null) { updateErrorTask(instance, task, errorMsg, e); } else { updateErrorTask(task, errorMsg, e); } } catch (Exception e) { String errorMsg = "The product " + productRelease.getProduct() + "-" + productRelease.getVersion() + " can not be installed in" + tierInstance.getVM(); ProductInstance instance = getInstalledProduct(productRelease, tierInstance.getVM()); if (instance != null) { updateErrorTask(instance, task, errorMsg, e); } else { updateErrorTask(task, errorMsg, e); } } finally { notifyTask(callback, task); } }