mirror of
https://repository.entgra.net/community/device-mgt-core.git
synced 2025-10-06 02:01:45 +00:00
Adding Hasunie's fix on initialOperations implementation
This commit is contained in:
parent
668744a604
commit
e23aaa6647
@ -18,11 +18,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.mgt.extensions.device.type.deployer.config;
|
package org.wso2.carbon.device.mgt.extensions.device.type.deployer.config;
|
||||||
|
|
||||||
import javax.xml.bind.annotation.XmlAccessType;
|
import javax.xml.bind.annotation.*;
|
||||||
import javax.xml.bind.annotation.XmlAccessorType;
|
import java.util.List;
|
||||||
import javax.xml.bind.annotation.XmlAttribute;
|
|
||||||
import javax.xml.bind.annotation.XmlElement;
|
|
||||||
import javax.xml.bind.annotation.XmlRootElement;
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -74,6 +71,21 @@ public class DeviceTypeConfiguration {
|
|||||||
protected String name;
|
protected String name;
|
||||||
@XmlElement(name = "PolicyMonitoring", required = true)
|
@XmlElement(name = "PolicyMonitoring", required = true)
|
||||||
protected PolicyMonitoring policyMonitoring;
|
protected PolicyMonitoring policyMonitoring;
|
||||||
|
@XmlElementWrapper(name = "InitialOperationConfig")
|
||||||
|
@XmlElement(name = "Operation", required = true)
|
||||||
|
protected List<String> operations;
|
||||||
|
|
||||||
|
public List<String> getOperations() {
|
||||||
|
return operations;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperations(List<String> operations) {
|
||||||
|
this.operations = operations;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Gets the value of the taskConfiguration property.
|
* Gets the value of the taskConfiguration property.
|
||||||
|
|||||||
@ -0,0 +1,39 @@
|
|||||||
|
package org.wso2.carbon.device.mgt.extensions.device.type.deployer.config;
|
||||||
|
|
||||||
|
import javax.xml.bind.annotation.*;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>Java class for InitialOperationConfig complex type.
|
||||||
|
*
|
||||||
|
* <p>The following schema fragment specifies the expected content contained within this class.
|
||||||
|
*
|
||||||
|
* <pre>
|
||||||
|
* <complexType name="InitialOperationConfig">
|
||||||
|
* <complexContent>
|
||||||
|
* <restriction base="{http://www.w3.org/2001/XMLSchema}anyType">
|
||||||
|
* <sequence>
|
||||||
|
* <element name="Operations" type="{http://www.w3.org/2001/XMLSchema}list"/>
|
||||||
|
* </sequence>
|
||||||
|
* </restriction>
|
||||||
|
* </complexContent>
|
||||||
|
* </complexType>
|
||||||
|
* </pre>
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
@XmlRootElement(name = "InitialOperationConfig")
|
||||||
|
public class InitialOperationConfig {
|
||||||
|
|
||||||
|
private List<String> operations;
|
||||||
|
|
||||||
|
@XmlElementWrapper(name = "Operations", required = true)
|
||||||
|
@XmlElement(name = "Operation", required = true)
|
||||||
|
public List<String> getOperations() {
|
||||||
|
return operations;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperationsll(List<String> operations) {
|
||||||
|
this.operations = operations;
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -20,11 +20,7 @@ package org.wso2.carbon.device.mgt.extensions.device.type.deployer.template;
|
|||||||
|
|
||||||
import org.apache.commons.logging.Log;
|
import org.apache.commons.logging.Log;
|
||||||
import org.apache.commons.logging.LogFactory;
|
import org.apache.commons.logging.LogFactory;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
import org.wso2.carbon.device.mgt.common.*;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManager;
|
|
||||||
import org.wso2.carbon.device.mgt.common.MonitoringOperation;
|
|
||||||
import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
|
|
||||||
import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
|
|
||||||
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
|
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
|
||||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
|
import org.wso2.carbon.device.mgt.common.configuration.mgt.ConfigurationEntry;
|
||||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
||||||
@ -57,6 +53,8 @@ public class DeviceTypeManagerService implements DeviceManagementService {
|
|||||||
private OperationMonitoringTaskConfig operationMonitoringConfigs;
|
private OperationMonitoringTaskConfig operationMonitoringConfigs;
|
||||||
private List<MonitoringOperation> monitoringOperations;
|
private List<MonitoringOperation> monitoringOperations;
|
||||||
private PolicyMonitoringManager policyMonitoringManager;
|
private PolicyMonitoringManager policyMonitoringManager;
|
||||||
|
private InitialOperationConfig initialOperationConfig;
|
||||||
|
private List<String> operations;
|
||||||
|
|
||||||
public DeviceTypeManagerService(DeviceTypeConfigIdentifier deviceTypeConfigIdentifier,
|
public DeviceTypeManagerService(DeviceTypeConfigIdentifier deviceTypeConfigIdentifier,
|
||||||
DeviceTypeConfiguration deviceTypeConfiguration) {
|
DeviceTypeConfiguration deviceTypeConfiguration) {
|
||||||
@ -66,6 +64,7 @@ public class DeviceTypeManagerService implements DeviceManagementService {
|
|||||||
this.populatePushNotificationConfig(deviceTypeConfiguration.getPushNotificationProvider());
|
this.populatePushNotificationConfig(deviceTypeConfiguration.getPushNotificationProvider());
|
||||||
this.operationMonitoringConfigs = new OperationMonitoringTaskConfig();
|
this.operationMonitoringConfigs = new OperationMonitoringTaskConfig();
|
||||||
this.setOperationMonitoringConfig(deviceTypeConfiguration);
|
this.setOperationMonitoringConfig(deviceTypeConfiguration);
|
||||||
|
this.setInitialOperationConfig(deviceTypeConfiguration);
|
||||||
if (deviceTypeConfiguration.getPolicyMonitoring() != null && deviceTypeConfiguration.getPolicyMonitoring()
|
if (deviceTypeConfiguration.getPolicyMonitoring() != null && deviceTypeConfiguration.getPolicyMonitoring()
|
||||||
.isEnabled()) {
|
.isEnabled()) {
|
||||||
this.policyMonitoringManager = new DefaultPolicyMonitoringManager();
|
this.policyMonitoringManager = new DefaultPolicyMonitoringManager();
|
||||||
@ -157,6 +156,11 @@ public class DeviceTypeManagerService implements DeviceManagementService {
|
|||||||
return policyMonitoringManager;
|
return policyMonitoringManager;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InitialOperationConfig getInitialOperationConfig() {
|
||||||
|
return initialOperationConfig;
|
||||||
|
}
|
||||||
|
|
||||||
private void setProvisioningConfig(String tenantDomain, DeviceTypeConfiguration deviceTypeConfiguration) {
|
private void setProvisioningConfig(String tenantDomain, DeviceTypeConfiguration deviceTypeConfiguration) {
|
||||||
if (deviceTypeConfiguration.getProvisioningConfig() != null) {
|
if (deviceTypeConfiguration.getProvisioningConfig() != null) {
|
||||||
boolean sharedWithAllTenants = deviceTypeConfiguration.getProvisioningConfig().isSharedWithAllTenants();
|
boolean sharedWithAllTenants = deviceTypeConfiguration.getProvisioningConfig().isSharedWithAllTenants();
|
||||||
@ -166,6 +170,15 @@ public class DeviceTypeManagerService implements DeviceManagementService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void setInitialOperationConfig(DeviceTypeConfiguration deviceTypeConfiguration) {
|
||||||
|
if (deviceTypeConfiguration.getOperations() != null) {
|
||||||
|
List<String> ops = deviceTypeConfiguration.getOperations();
|
||||||
|
if (ops != null && !ops.isEmpty()) {
|
||||||
|
initialOperationConfig.setOperations(ops);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void setType(String type) {
|
private void setType(String type) {
|
||||||
this.type = type;
|
this.type = type;
|
||||||
}
|
}
|
||||||
|
|||||||
@ -0,0 +1,36 @@
|
|||||||
|
/*
|
||||||
|
* Copyright (c) 2016, WSO2 Inc. (http://www.wso2.org) All Rights Reserved.
|
||||||
|
*
|
||||||
|
* WSO2 Inc. licenses this file to you under the Apache License,
|
||||||
|
* Version 2.0 (the "License"); you may not use this file except
|
||||||
|
* in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing,
|
||||||
|
* software distributed under the License is distributed on an
|
||||||
|
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||||
|
* KIND, either express or implied. See the License for the
|
||||||
|
* specific language governing permissions and limitations
|
||||||
|
* under the License.
|
||||||
|
*
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.wso2.carbon.device.mgt.common;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class InitialOperationConfig {
|
||||||
|
private List<String> operations;
|
||||||
|
|
||||||
|
public List<String> getOperations() {
|
||||||
|
return operations;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setOperations(List<String> operations) {
|
||||||
|
this.operations = operations;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@ -18,10 +18,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.mgt.common.spi;
|
package org.wso2.carbon.device.mgt.common.spi;
|
||||||
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
import org.wso2.carbon.device.mgt.common.*;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManager;
|
|
||||||
import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
|
|
||||||
import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
|
|
||||||
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
|
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
|
||||||
import org.wso2.carbon.device.mgt.common.policy.mgt.PolicyMonitoringManager;
|
import org.wso2.carbon.device.mgt.common.policy.mgt.PolicyMonitoringManager;
|
||||||
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
|
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
|
||||||
@ -48,4 +45,8 @@ public interface DeviceManagementService {
|
|||||||
|
|
||||||
PolicyMonitoringManager getPolicyMonitoringManager();
|
PolicyMonitoringManager getPolicyMonitoringManager();
|
||||||
|
|
||||||
|
InitialOperationConfig getInitialOperationConfig();
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -23,20 +23,7 @@ import org.apache.commons.logging.LogFactory;
|
|||||||
import org.wso2.carbon.CarbonConstants;
|
import org.wso2.carbon.CarbonConstants;
|
||||||
import org.wso2.carbon.context.CarbonContext;
|
import org.wso2.carbon.context.CarbonContext;
|
||||||
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
import org.wso2.carbon.context.PrivilegedCarbonContext;
|
||||||
import org.wso2.carbon.device.mgt.common.Device;
|
import org.wso2.carbon.device.mgt.common.*;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceIdentifier;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManager;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceNotFoundException;
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceTypeIdentifier;
|
|
||||||
import org.wso2.carbon.device.mgt.common.EnrolmentInfo;
|
|
||||||
import org.wso2.carbon.device.mgt.common.FeatureManager;
|
|
||||||
import org.wso2.carbon.device.mgt.common.InvalidDeviceException;
|
|
||||||
import org.wso2.carbon.device.mgt.common.MonitoringOperation;
|
|
||||||
import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
|
|
||||||
import org.wso2.carbon.device.mgt.common.PaginationRequest;
|
|
||||||
import org.wso2.carbon.device.mgt.common.PaginationResult;
|
|
||||||
import org.wso2.carbon.device.mgt.common.TransactionManagementException;
|
|
||||||
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
|
import org.wso2.carbon.device.mgt.common.app.mgt.Application;
|
||||||
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
import org.wso2.carbon.device.mgt.common.configuration.mgt.PlatformConfiguration;
|
||||||
import org.wso2.carbon.device.mgt.common.device.details.DeviceInfo;
|
import org.wso2.carbon.device.mgt.common.device.details.DeviceInfo;
|
||||||
@ -66,6 +53,7 @@ import org.wso2.carbon.device.mgt.core.dto.DeviceType;
|
|||||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementDataHolder;
|
||||||
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
|
import org.wso2.carbon.device.mgt.core.internal.DeviceManagementServiceComponent;
|
||||||
import org.wso2.carbon.device.mgt.core.internal.PluginInitializationListener;
|
import org.wso2.carbon.device.mgt.core.internal.PluginInitializationListener;
|
||||||
|
import org.wso2.carbon.device.mgt.core.operation.mgt.CommandOperation;
|
||||||
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
import org.wso2.carbon.device.mgt.core.util.DeviceManagerUtil;
|
||||||
import org.wso2.carbon.email.sender.core.ContentProviderInfo;
|
import org.wso2.carbon.email.sender.core.ContentProviderInfo;
|
||||||
import org.wso2.carbon.email.sender.core.EmailContext;
|
import org.wso2.carbon.email.sender.core.EmailContext;
|
||||||
@ -257,6 +245,8 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
|
|
||||||
if (status) {
|
if (status) {
|
||||||
addDeviceToGroups(deviceIdentifier, device.getEnrolmentInfo().getOwnership());
|
addDeviceToGroups(deviceIdentifier, device.getEnrolmentInfo().getOwnership());
|
||||||
|
addInitialOperations(deviceIdentifier, device.getType());
|
||||||
|
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
}
|
}
|
||||||
@ -2084,6 +2074,37 @@ public class DeviceManagementProviderServiceImpl implements DeviceManagementProv
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addInitialOperations(DeviceIdentifier deviceIdentifier, String deviceType) throws DeviceManagementException {
|
||||||
|
DeviceManagementProviderService deviceManagementProviderService = DeviceManagementDataHolder.getInstance().
|
||||||
|
getDeviceManagementProvider();
|
||||||
|
DeviceManagementService deviceManagementService =
|
||||||
|
pluginRepository.getDeviceManagementService(deviceType, this.getTenantId());
|
||||||
|
InitialOperationConfig init = deviceManagementService.getInitialOperationConfig();
|
||||||
|
List<DeviceIdentifier> deviceIdentifiers = new ArrayList<>();
|
||||||
|
deviceIdentifiers.add(deviceIdentifier);
|
||||||
|
if (init != null) {
|
||||||
|
List<String> initialOperations = init.getOperations();
|
||||||
|
|
||||||
|
for (String str : initialOperations) {
|
||||||
|
CommandOperation operation = new CommandOperation();
|
||||||
|
operation.setEnabled(true);
|
||||||
|
operation.setType(Operation.Type.COMMAND);
|
||||||
|
operation.setCode(str);
|
||||||
|
try {
|
||||||
|
deviceManagementProviderService.
|
||||||
|
addOperation(deviceType,
|
||||||
|
operation, deviceIdentifiers);
|
||||||
|
} catch (OperationManagementException e) {
|
||||||
|
throw new DeviceManagementException("Unable to find the device with the id: '" + deviceIdentifier.getId(),
|
||||||
|
e);
|
||||||
|
} catch (InvalidDeviceException e) {
|
||||||
|
throw new DeviceManagementException("Unable to find the device with the id: '" + deviceIdentifier.getId(),
|
||||||
|
e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Checks for the default group existence and create group based on device ownership
|
* Checks for the default group existence and create group based on device ownership
|
||||||
*
|
*
|
||||||
|
|||||||
@ -17,10 +17,7 @@
|
|||||||
*/
|
*/
|
||||||
package org.wso2.carbon.device.mgt.core;
|
package org.wso2.carbon.device.mgt.core;
|
||||||
|
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManagementException;
|
import org.wso2.carbon.device.mgt.common.*;
|
||||||
import org.wso2.carbon.device.mgt.common.DeviceManager;
|
|
||||||
import org.wso2.carbon.device.mgt.common.OperationMonitoringTaskConfig;
|
|
||||||
import org.wso2.carbon.device.mgt.common.ProvisioningConfig;
|
|
||||||
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
|
import org.wso2.carbon.device.mgt.common.app.mgt.ApplicationManager;
|
||||||
import org.wso2.carbon.device.mgt.common.policy.mgt.PolicyMonitoringManager;
|
import org.wso2.carbon.device.mgt.common.policy.mgt.PolicyMonitoringManager;
|
||||||
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
|
import org.wso2.carbon.device.mgt.common.push.notification.PushNotificationConfig;
|
||||||
@ -75,4 +72,9 @@ public class TestDeviceManagementService implements DeviceManagementService {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public InitialOperationConfig getInitialOperationConfig() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"appContext": "/devicemgt/",
|
"appContext": "/devicemgt/",
|
||||||
"isCloud": true,
|
"isCloud": false,
|
||||||
"httpsURL": "https://%iot.gateway.host%:%iot.gateway.https.port%",
|
"httpsURL": "https://%iot.gateway.host%:%iot.gateway.https.port%",
|
||||||
"httpURL": "http://%iot.gateway.host%:%iot.gateway.http.port",
|
"httpURL": "http://%iot.gateway.host%:%iot.gateway.http.port",
|
||||||
"wssURL": "https://%iot.analytics.host%:%iot.analytics.https.port%",
|
"wssURL": "https://%iot.analytics.host%:%iot.analytics.https.port%",
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user