} else {
tenancyBehaviour = new SubscriptionSingleTenantBehaviour();
}
// Create the CartridgeSubscription instance
CartridgeSubscription cartridgeSubscription = CartridgeSubscriptionFactory.getCartridgeSubscriptionInstance(cartridgeInfo, tenancyBehaviour);
// Generate and set the key
String subscriptionKey = CartridgeSubscriptionUtils.generateSubscriptionKey();
cartridgeSubscription.setSubscriptionKey(subscriptionKey);
String encryptedRepoPassword;
String repositoryPassword = subscriptionData.getRepositoryPassword();
if(repositoryPassword != null && !repositoryPassword.isEmpty()) {
encryptedRepoPassword = RepoPasswordMgtUtil.encryptPassword(repositoryPassword, subscriptionKey);
} else {
encryptedRepoPassword = "";
}
// Create repository
Repository repository = cartridgeSubscription.manageRepository(subscriptionData.getRepositoryURL(), subscriptionData.getRepositoryUsername(),
encryptedRepoPassword,
subscriptionData.isPrivateRepository());
// Create subscriber
Subscriber subscriber = new Subscriber(subscriptionData.getTenantAdminUsername(), subscriptionData.getTenantId(), subscriptionData.getTenantDomain());
// set the LB cluster id relevant to this service cluster
cartridgeSubscription.setLbClusterId(lbClusterId);
//create subscription
cartridgeSubscription.createSubscription(subscriber, subscriptionData.getCartridgeAlias(), subscriptionData.getAutoscalingPolicyName(),
subscriptionData.getDeploymentPolicyName(), repository);
// publishing to bam
CartridgeSubscriptionDataPublisher.publish(
subscriptionData.getTenantId(),
subscriptionData.getTenantAdminUsername(),
subscriptionData.getCartridgeAlias(),
subscriptionData.getCartridgeType(),
subscriptionData.getRepositoryURL(),
cartridgeInfo.getMultiTenant(),
subscriptionData.getAutoscalingPolicyName(),
subscriptionData.getDeploymentPolicyName(),
cartridgeSubscription.getCluster().getClusterDomain(),
cartridgeSubscription.getHostName(),
cartridgeSubscription.getMappedDomain(), "Subscribed");
// Add whether the subscription is enabled upstream git commits
if(cartridgeSubscription.getPayloadData() != null) {
cartridgeSubscription.getPayloadData().add(CartridgeConstants.COMMIT_ENABLED, String.valueOf(subscriptionData.isCommitsEnabled()));
}
log.info("Tenant [" + subscriptionData.getTenantId() + "] with username [" + subscriptionData.getTenantAdminUsername() +
" subscribed to " + "] Cartridge with Alias " + subscriptionData.getCartridgeAlias() + ", Cartridge Type: " +