throws ADCException, PolicyException, UnregisteredCartridgeException,
InvalidCartridgeAliasException, DuplicateCartridgeAliasException, RepositoryRequiredException,
AlreadySubscribedException, RepositoryCredentialsRequiredException, InvalidRepositoryException,
RepositoryTransportException, RestAPIException {
SubscriptionData subscriptionData = new SubscriptionData();
subscriptionData.setCartridgeType(cartridgeInfoBean.getCartridgeType());
subscriptionData.setCartridgeAlias(cartridgeInfoBean.getAlias().trim());
subscriptionData.setAutoscalingPolicyName(cartridgeInfoBean.getAutoscalePolicy());
subscriptionData.setDeploymentPolicyName(cartridgeInfoBean.getDeploymentPolicy());
subscriptionData.setTenantDomain(tenantDomain);
subscriptionData.setTenantId(ApplicationManagementUtil.getTenantId(configurationContext));
subscriptionData.setTenantAdminUsername(tenantUsername);
subscriptionData.setRepositoryType("git");
subscriptionData.setRepositoryURL(cartridgeInfoBean.getRepoURL());
subscriptionData.setRepositoryUsername(cartridgeInfoBean.getRepoUsername());
subscriptionData.setRepositoryPassword(cartridgeInfoBean.getRepoPassword());
subscriptionData.setCommitsEnabled(cartridgeInfoBean.isCommitsEnabled());
subscriptionData.setServiceGroup(cartridgeInfoBean.getServiceGroup());
if (cartridgeInfoBean.isPersistanceRequired()) {
// Add persistence related properties to PersistenceContext
PersistenceContext persistenceContext = new PersistenceContext();
persistenceContext.setPersistanceRequiredProperty(IS_VOLUME_REQUIRED, String.valueOf(cartridgeInfoBean.isPersistanceRequired()));
persistenceContext.setSizeProperty(VOLUME_SIZE, cartridgeInfoBean.getSize());
persistenceContext.setDeleteOnTerminationProperty(SHOULD_DELETE_VOLUME, String.valueOf(cartridgeInfoBean.isRemoveOnTermination()));
subscriptionData.setPersistanceCtxt(persistenceContext);
}
//subscribe
return cartridgeSubsciptionManager.subscribeToCartridgeWithProperties(subscriptionData);