@Override
  public void accept(Event<SetupRequest> event) {
    LOGGER.info("Received event: {}", event);
    SetupRequest request = event.getData();
    CloudContext cloudContext = request.getCloudContext();
    try {
      CloudConnector connector = cloudPlatformConnectors.get(cloudContext.getPlatformVariant());
      AuthenticatedContext auth =
          connector.authentication().authenticate(cloudContext, request.getCloudCredential());
      CloudStack cloudStack = request.getCloudStack();
      connector.setup().prerequisites(auth, cloudStack, resourceNotifier);

      request.getResult().onNext(new SetupResult(request));
      LOGGER.info("Provision setup finished for {}", cloudContext);
    } catch (Exception e) {
      request.getResult().onNext(new SetupResult(e, request));
    }
  }
 public static String getGroupClusterTag(CloudContext cloudContext, Group group) {
   return group.getName().toLowerCase().replaceAll("[^A-Za-z0-9 ]", "") + cloudContext.getId();
 }
 public static String getClusterTag(CloudContext cloudContext) {
   return cloudContext.getName() + cloudContext.getId();
 }