feat(policy): policy rule add/update/delete RPCs

The commit includes the implementation of the following Policy grpc methods:

  • PolicyAddService
  • PolicyAddDevice
  • PolicyUpdateService
  • PolicyUpdateDevice
  • PolicyDelete

Merge request reports

Loading
+2 −2
Changes for proto/context_policy.proto: 2 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -22,7 +22,7 @@ import "policy.proto";
service ContextPolicyService {
  rpc ListPolicyRuleIds(context.Empty         ) returns (policy.PolicyRuleIdList) {}
  rpc ListPolicyRules  (context.Empty         ) returns (policy.PolicyRuleList  ) {}
  rpc GetPolicyRule    (policy.PolicyRuleId   ) returns (policy.PolicyRuleBasic ) {}
  rpc SetPolicyRule    (policy.PolicyRuleBasic) returns (policy.PolicyRuleId    ) {}
  rpc GetPolicyRule    (policy.PolicyRuleId   ) returns (policy.PolicyRule      ) {}
  rpc SetPolicyRule    (policy.PolicyRule     ) returns (policy.PolicyRuleId    ) {}
  rpc RemovePolicyRule (policy.PolicyRuleId   ) returns (context.Empty          ) {}
}
+11 −2
Changes for proto/policy.proto: 11 added lines, 2 removed lines.
Original line number Diff line number Diff line
@@ -30,7 +30,7 @@ service PolicyService {
  rpc GetPolicyByServiceId (context.ServiceId) returns (PolicyRuleServiceList) {}
}

enum RuleState {
enum PolicyRuleStateEnum {
  POLICY_UNDEFINED = 0;     // Undefined rule state
  POLICY_FAILED = 1;        // Rule failed
  POLICY_INSERTED = 2;      // Rule is just inserted
@@ -49,7 +49,8 @@ message PolicyRuleId {
}

message PolicyRuleState {
  RuleState policyRuleState = 1;
  PolicyRuleStateEnum policyRuleState = 1;
  string policyRuleStateMessage = 2;
}

// Basic policy rule attributes
@@ -83,6 +84,14 @@ message PolicyRuleDevice {
  repeated context.DeviceId deviceList = 2;
}

// Wrapper policy rule object
message PolicyRule {
  oneof policy_rule {
    PolicyRuleService service = 1;
    PolicyRuleDevice device = 2;
  }
}

// A list of policy rule IDs
message PolicyRuleIdList {
  repeated PolicyRuleId policyRuleIdList = 1;
+12 −1
Changes for proto/policy_action.proto: 12 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ package policy;
// Action
message PolicyRuleAction {
  PolicyRuleActionEnum action = 1;
  repeated string parameters = 2;
  repeated PolicyRuleActionConfig action_config = 2;
}

enum PolicyRuleActionEnum {
@@ -27,3 +27,14 @@ enum PolicyRuleActionEnum {
  POLICYRULE_ACTION_ADD_SERVICE_CONFIGRULE = 2;
  POLICYRULE_ACTION_ADD_SERVICE_CONSTRAINT = 3;
}

// Action configuration
message PolicyRuleActionConfig {
  string action_key = 1;
  string action_value = 2;
}

// message PolicyRuleAction {
//   PolicyRuleActionEnum action = 1;
//   repeated string parameters = 2;
// }
 No newline at end of file
+20 −0
Changes for src/policy/src/main/java/eu/teraflow/policy/context/model/Device.java: 20 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -44,6 +44,22 @@ public class Device {
        this.endPoints = endPoints;
    }

    public boolean isEnabled() {
        return deviceOperationalStatus == DeviceOperationalStatus.ENABLED;
    }

    public void enableDevice() {
        this.deviceOperationalStatus = DeviceOperationalStatus.ENABLED;
    }

    public boolean isDisabled() {
        return deviceOperationalStatus == DeviceOperationalStatus.DISABLED;
    }

    public void disableDevice() {
        this.deviceOperationalStatus = DeviceOperationalStatus.DISABLED;
    }

    public String getDeviceId() {
        return deviceId;
    }
@@ -60,6 +76,10 @@ public class Device {
        return deviceOperationalStatus;
    }

    public void setDeviceOperationalStatus(DeviceOperationalStatus deviceOperationalStatus) {
        this.deviceOperationalStatus = deviceOperationalStatus;
    }

    public List<DeviceDriverEnum> getDeviceDrivers() {
        return deviceDrivers;
    }
+9 −1
Changes for src/policy/src/main/java/eu/teraflow/policy/context/model/Service.java: 9 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ public class Service {
    private final List<EndPointId> serviceEndPointIds;
    private final List<Constraint> serviceConstraints;
    private final ServiceStatus serviceStatus;
    private final ServiceConfig serviceConfig;
    private ServiceConfig serviceConfig;
    private final double timestamp;

    public Service(
@@ -62,10 +62,18 @@ public class Service {
        return serviceConstraints;
    }

    public void appendServiceConstraints(List<Constraint> serviceConstraints) {
        this.serviceConstraints.addAll(serviceConstraints);
    }

    public ServiceStatus getServiceStatus() {
        return serviceStatus;
    }

    public void setServiceConfig(ServiceConfig serviceConfig) {
        this.serviceConfig = serviceConfig;
    }

    public ServiceConfig getServiceConfig() {
        return serviceConfig;
    }
Loading
Loading