protected KapuaId createManagementOperation(KapuaId scopeId, KapuaId deviceId, KapuaId operationId, int totalCheckpoints, KapuaRequestMessage<?, ?> requestMessage) throws KapuaException { DeviceManagementOperationCreator deviceManagementOperationCreator = DEVICE_MANAGEMENT_OPERATION_FACTORY.newCreator(scopeId); deviceManagementOperationCreator.setDeviceId(deviceId); deviceManagementOperationCreator.setOperationId(operationId); deviceManagementOperationCreator.setStartedOn(new Date()); deviceManagementOperationCreator.setAppId(requestMessage.getChannel().getAppName().getValue()); deviceManagementOperationCreator.setAction(requestMessage.getChannel().getMethod()); deviceManagementOperationCreator.setResource(!requestMessage.getChannel().getSemanticParts().isEmpty() ? requestMessage.getChannel().getSemanticParts().get(0) : null); deviceManagementOperationCreator.setStatus(OperationStatus.RUNNING); deviceManagementOperationCreator.setInputProperties(extractInputProperties(requestMessage)); DeviceManagementOperation deviceManagementOperation = KapuaSecurityUtils.doPrivileged(() -> DEVICE_MANAGEMENT_OPERATION_REGISTRY_SERVICE.create(deviceManagementOperationCreator)); return deviceManagementOperation.getId(); }
/** * Creates and return new DeviceManagementOperationNotification * * @param em * @param deviceManagementOperationCreator * @return * @throws KapuaException */ public static DeviceManagementOperation create(EntityManager em, DeviceManagementOperationCreator deviceManagementOperationCreator) throws KapuaException { // // Create DeviceManagementOperationNotification DeviceManagementOperationImpl deviceManagementOperationImpl = new DeviceManagementOperationImpl(deviceManagementOperationCreator.getScopeId()); deviceManagementOperationImpl.setStartedOn(deviceManagementOperationCreator.getStartedOn()); deviceManagementOperationImpl.setDeviceId(deviceManagementOperationCreator.getDeviceId()); deviceManagementOperationImpl.setOperationId(deviceManagementOperationCreator.getOperationId()); deviceManagementOperationImpl.setAppId(deviceManagementOperationCreator.getAppId()); deviceManagementOperationImpl.setAction(deviceManagementOperationCreator.getAction()); deviceManagementOperationImpl.setResource(deviceManagementOperationCreator.getResource()); deviceManagementOperationImpl.setStatus(deviceManagementOperationCreator.getStatus()); deviceManagementOperationImpl.setStatus(deviceManagementOperationCreator.getStatus()); deviceManagementOperationImpl.setInputProperties(deviceManagementOperationCreator.getInputProperties()); return ServiceDAO.create(em, deviceManagementOperationImpl); }
@Override public DeviceManagementOperation create(DeviceManagementOperationCreator creator) throws KapuaException { // // Argument Validation ArgumentValidator.notNull(creator, "deviceManagementOperationCreator"); ArgumentValidator.notNull(creator.getScopeId(), "deviceManagementOperationCreator.scopeId"); ArgumentValidator.notNull(creator.getStartedOn(), "deviceManagementOperationCreator.startedOn"); ArgumentValidator.notNull(creator.getDeviceId(), "deviceManagementOperationCreator.deviceId"); ArgumentValidator.notNull(creator.getOperationId(), "deviceManagementOperationCreator.operationId"); ArgumentValidator.notNull(creator.getStatus(), "deviceManagementOperationCreator.status"); ArgumentValidator.notNull(creator.getAppId(), "deviceManagementOperationCreator.appId"); ArgumentValidator.notNull(creator.getAction(), "deviceManagementOperationCreator.action"); // // Check access AUTHORIZATION_SERVICE.checkPermission(PERMISSION_FACTORY.newPermission(DeviceManagementRegistryDomains.DEVICE_MANAGEMENT_REGISTRY_DOMAIN, Actions.write, null)); // // Check device existence if (KapuaSecurityUtils.doPrivileged(() -> DEVICE_REGISTRY_SERVICE.find(creator.getScopeId(), creator.getDeviceId()) == null)) { throw new KapuaEntityNotFoundException(Device.TYPE, creator.getDeviceId()); } // // Do create return entityManagerSession.onTransactedInsert(em -> DeviceManagementOperationDAO.create(em, creator)); }
deviceManagementOperationCreator.setStartedOn(new Date()); deviceManagementOperationCreator.setDeviceId(deviceId); deviceManagementOperationCreator.setStatus(OperationStatus.COMPLETED); deviceManagementOperationCreator.setAppId("ASD"); deviceManagementOperationCreator.setAction(KapuaMethod.CREATE); deviceManagementOperationCreator.setResource("qwe"); deviceManagementOperationCreator.setInputProperties(Arrays.asList(deviceManagementOperationProperty));