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)); }