@Override public ManagementOperationNotification create(ManagementOperationNotificationCreator creator) throws KapuaException { // // Argument Validation ArgumentValidator.notNull(creator, "managementOperationNotificationCreator"); ArgumentValidator.notNull(creator.getScopeId(), "managementOperationNotificationCreator.scopeId"); ArgumentValidator.notNull(creator.getOperationId(), "managementOperationNotificationCreator.operationId"); ArgumentValidator.notNull(creator.getSentOn(), "managementOperationNotificationCreator.sentOn"); ArgumentValidator.notNull(creator.getStatus(), "managementOperationNotificationCreator.status"); ArgumentValidator.notNull(creator.getProgress(), "managementOperationNotificationCreator.progress"); ArgumentValidator.notNegative(creator.getProgress(), "managementOperationNotificationCreator.progress"); // // Check access authorizationService.checkPermission(permissionFactory.newPermission(DeviceManagementRegistryDomains.DEVICE_MANAGEMENT_REGISTRY_DOMAIN, Actions.write, null)); // // Check operation existence if (KapuaSecurityUtils.doPrivileged(() -> deviceManagementOperationRegistryService.find(creator.getScopeId(), creator.getOperationId()) == null)) { throw new KapuaEntityNotFoundException(DeviceManagementOperation.TYPE, creator.getOperationId()); } // // Do create return entityManagerSession.onTransactedInsert(em -> ManagementOperationNotificationDAO.create(em, creator)); }