예제 #1
0
  void createService(ExternalEvent event, Map<String, Object> serviceData) {
    Service svc = serviceDao.getServiceByExternalId(event.getAccountId(), event.getExternalId());
    if (svc != null) {
      return;
    }

    Stack stack = getStack(event);
    if (stack == null) {
      log.info("Can't process service event. Could not get or create stack. Event: [{}]", event);
      return;
    }

    Map<String, Object> service = new HashMap<String, Object>();
    if (serviceData != null) {
      service.putAll(serviceData);
    }
    service.put(ObjectMetaDataManager.ACCOUNT_FIELD, event.getAccountId());
    service.put(FIELD_STACK_ID, stack.getId());

    try {
      String create =
          objectProcessManager.getStandardProcessName(StandardProcess.CREATE, Service.class);
      String activate =
          objectProcessManager.getStandardProcessName(StandardProcess.ACTIVATE, Service.class);
      ProcessUtils.chainInData(service, create, activate);
      resourceDao.createAndSchedule(Service.class, service);
    } catch (ProcessCancelException e) {
      log.info(
          "Create and activate process cancelled for service with account id {}and external id {}",
          event.getAccountId(),
          event.getExternalId());
    }
  }
 @Override
 public Account createProject(String name, String description) {
   Map<Object, Object> properties = new HashMap<>();
   if (name != null) {
     properties.put(ACCOUNT.NAME, name);
   }
   if (description != null) {
     properties.put(ACCOUNT.DESCRIPTION, description);
   }
   properties.put(ACCOUNT.KIND, ProjectConstants.TYPE);
   return resourceDao.createAndSchedule(
       Account.class, objectManager.convertToPropertiesFor(Account.class, properties));
 }
 @Override
 public Account createAccount(String name, String kind, String externalId, String externalType) {
   Account account = getAccountByExternalId(externalId, externalType);
   if (account != null) {
     throw new ClientVisibleException(ResponseCodes.UNAUTHORIZED);
   }
   Map<Object, Object> properties = new HashMap<>();
   if (StringUtils.isNotEmpty(name)) {
     properties.put(ACCOUNT.NAME, name);
   }
   if (StringUtils.isNotEmpty(kind)) {
     properties.put(ACCOUNT.KIND, kind);
   }
   if (StringUtils.isNotEmpty(externalId)) {
     properties.put(ACCOUNT.EXTERNAL_ID, externalId);
   }
   if (StringUtils.isNotEmpty(externalType)) {
     properties.put(ACCOUNT.EXTERNAL_ID_TYPE, externalType);
   }
   return resourceDao.createAndSchedule(
       Account.class, objectManager.convertToPropertiesFor(Account.class, properties));
 }