Skipping the validation of task operations

4.x.x
geethkokila 9 years ago
parent ff56ecb32c
commit fbc7c0807c

@ -37,6 +37,8 @@ import org.wso2.carbon.device.mgt.core.operation.mgt.dao.OperationManagementDAOF
import org.wso2.carbon.device.mgt.core.operation.mgt.dao.OperationMappingDAO;
import org.wso2.carbon.device.mgt.core.operation.mgt.dao.util.OperationDAOUtil;
import org.wso2.carbon.device.mgt.core.operation.mgt.util.OperationCreateTimeComparator;
import org.wso2.carbon.device.mgt.core.task.DeviceTaskManager;
import org.wso2.carbon.device.mgt.core.task.impl.DeviceTaskManagerImpl;
import java.sql.SQLException;
import java.util.ArrayList;
@ -679,6 +681,13 @@ public class OperationManagerImpl implements OperationManager {
}
private boolean isAuthenticationSkippedOperation(Operation operation) {
//This is to check weather operations are coming from the task related to retrieving device information.
DeviceTaskManager taskManager = new DeviceTaskManagerImpl();
if (taskManager.isTaskOperation(operation.getCode())) {
return true;
}
boolean status;
switch (operation.getCode()) {
case DeviceManagementConstants.AuthorizationSkippedOperationCodes.POLICY_OPERATION_CODE :

@ -68,4 +68,12 @@ public interface DeviceTaskManager {
*/
List<String> getValidOperationNames() throws DeviceMgtTaskException;
/**
* This method will check wheather give operation is added by the task.
* @param opName - Operation name
* @return - true or false
* @throws DeviceMgtTaskException
*/
boolean isTaskOperation(String opName);
}

@ -76,7 +76,7 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager {
@Override
public String getTaskImplementedClazz() throws DeviceMgtTaskException {
return DeviceConfigurationManager.getInstance().getDeviceManagementConfig().
return DeviceConfigurationManager.getInstance().getDeviceManagementConfig().
getDeviceManagementConfigRepository().getTaskConfiguration().getTaskClazz();
}
@ -97,7 +97,7 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager {
List<Device> devices = deviceManagementProviderService.getAllDevices();
List<String> operations = this.getValidOperationNames();
if(!devices.isEmpty()) {
if (!devices.isEmpty()) {
for (String str : operations) {
CommandOperation operation = new CommandOperation();
@ -107,12 +107,12 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager {
deviceManagementProviderService.addOperation(operation, DeviceManagerUtil.convertDevices(devices));
}
} else {
if(log.isDebugEnabled()){
if (log.isDebugEnabled()) {
log.debug("No devices are available to perform the operations.");
}
}
} catch (DeviceManagementException e) {
throw new DeviceMgtTaskException("Error occurred while retrieving the device list.", e);
throw new DeviceMgtTaskException("Error occurred while retrieving the device list.", e);
} catch (OperationManagementException e) {
throw new DeviceMgtTaskException("Error occurred while adding the operations to devices", e);
}
@ -142,10 +142,26 @@ public class DeviceTaskManagerImpl implements DeviceTaskManager {
}
}
if(log.isDebugEnabled()){
if (log.isDebugEnabled()) {
log.debug("Valid operation names are : " + Arrays.toString(opNames.toArray()));
}
return opNames;
}
@Override
public boolean isTaskOperation(String opName) {
try {
List<TaskOperation> taskOperations = this.getOperationList();
for (TaskOperation taop : taskOperations) {
if (taop.getTaskName().equalsIgnoreCase(opName)) {
return true;
}
}
} catch (DeviceMgtTaskException e) {
// ignoring the error, no need to throw, If error occurs, return value will be false.
}
return false;
}
}

Loading…
Cancel
Save