From: John Keeney Date: Wed, 17 Jun 2020 15:02:43 +0000 (+0000) Subject: Merge "Clean up A1 controller dependencies" X-Git-Tag: 2.0.0~2 X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=commitdiff_plain;h=98f7bda6a4057f4a902de0b2c3396f0868e66227;hp=eedf26174659466f085421ecea24e8cf78b89c7d;p=nonrtric.git Merge "Clean up A1 controller dependencies" --- diff --git a/docs/developer-guide.rst b/docs/developer-guide.rst index 6247b6e7..01b84873 100644 --- a/docs/developer-guide.rst +++ b/docs/developer-guide.rst @@ -13,23 +13,23 @@ SDNC A1 Controller Prerequisites ------------- -1. Java development kit (JDK), version 8 -2. Maven dependency-management tool, version 3.4 or later -3. Python, version 2 -4. Docker, version 19.03.1 or later -5. Docker Compose, version 1.24.1 or later +1. Java development kit (JDK), version 11 +2. Maven dependency-management tool, version 3.6 or later +3. Python, version 2 or later +4. Docker, version 19.03.1 or latest +5. Docker Compose, version 1.24.1 or latest Build and run ------------- Go to the northbound directory and run this command :: - mvn clean install + mvn clean install -Dmaven.test.skip=true This will build the project and create artifcats in maven repo Go to oam/installation directory and run this command :: mvn clean install -P docker -This will create the docker images required for the A1 Controller +This will create the docker images required for a1-controller. After this step check for the docker images created by the maven build with this command :: docker images | grep a1-controller @@ -37,10 +37,10 @@ After this step check for the docker images created by the maven build with this Go to oam/installation/src/main/yaml and run this command :: docker-compose up -d a1-controller -This will create the docker containers with the A1 Controller image, you can check the status of the docker container using :: +This will create the docker containers with the a1-controller image, you can check the status of the docker container using :: docker-compose logs -f a1-controller -The SDNC url to access the Northbound API, +The Open Daylight GUI url to access the Northbound API, http://localhost:8282/apidoc/explorer/index.html Credentials: admin/Kp8bJ4SXszM0WXlhak3eHlcse2gAw84vaoGGmJvUy2U diff --git a/policy-agent/docs/api.yaml b/policy-agent/docs/api.yaml index 5de8b29f..ec9bbce4 100644 --- a/policy-agent/docs/api.yaml +++ b/policy-agent/docs/api.yaml @@ -365,9 +365,10 @@ paths: parameters: - name: managedElementId in: query - description: managedElementId + description: The ID of the Managed Element required: true type: string + allowEmptyValue: false responses: '200': description: RIC is found @@ -393,9 +394,10 @@ paths: parameters: - name: policyType in: query - description: policyType + description: The name of the policy type required: false type: string + allowEmptyValue: false responses: '200': description: OK @@ -460,9 +462,10 @@ paths: parameters: - name: name in: query - description: name + description: The name of the service required: false type: string + allowEmptyValue: false responses: '200': description: OK @@ -489,9 +492,10 @@ paths: parameters: - name: name in: query - description: name + description: The name of the service required: true type: string + allowEmptyValue: false responses: '200': description: OK @@ -523,9 +527,10 @@ paths: parameters: - name: name in: query - description: name + description: The name of the service required: true type: string + allowEmptyValue: false responses: '200': description: 'Service supervision timer refreshed, OK' diff --git a/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java b/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java index b75d320d..d2ae0e0d 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/controllers/PolicyController.java @@ -99,8 +99,9 @@ public class PolicyController { value = { @ApiResponse(code = 200, message = "Policy schemas", response = Object.class, responseContainer = "List"), // @ApiResponse(code = 404, message = "RIC is not found", response = String.class)}) - public ResponseEntity getPolicySchemas(@ApiParam(name = "ric", required = false, value = "The name of " +// - "the Near-RT RIC to get the definitions for.")@RequestParam(name = "ric", required = false) String ricName) { + public ResponseEntity getPolicySchemas( // + @ApiParam(name = "ric", required = false, value = "The name of the Near-RT RIC to get the definitions for.") // + @RequestParam(name = "ric", required = false) String ricName) { if (ricName == null) { Collection types = this.policyTypes.getAll(); return new ResponseEntity<>(toPolicyTypeSchemasJson(types), HttpStatus.OK); @@ -120,8 +121,9 @@ public class PolicyController { value = { // @ApiResponse(code = 200, message = "Policy schema", response = Object.class), @ApiResponse(code = 404, message = "RIC is not found", response = String.class)}) - public ResponseEntity getPolicySchema(@ApiParam(name = "id", required = true, value = "The ID of the " +// - "policy type to get the definition for.")@RequestParam(name = "id", required = true) String id) { + public ResponseEntity getPolicySchema( // + @ApiParam(name = "id", required = true, value = "The ID of the policy type to get the definition for.") // + @RequestParam(name = "id", required = true) String id) { try { PolicyType type = policyTypes.getType(id); return new ResponseEntity<>(type.schema(), HttpStatus.OK); @@ -140,8 +142,9 @@ public class PolicyController { response = String.class, responseContainer = "List"), @ApiResponse(code = 404, message = "RIC is not found", response = String.class)}) - public ResponseEntity getPolicyTypes(@ApiParam(name = "ric", required = false, value = "The name of " +// - "the Near-RT RIC to get types for.")@RequestParam(name = "ric", required = false) String ricName) { + public ResponseEntity getPolicyTypes( // + @ApiParam(name = "ric", required = false, value = "The name of the Near-RT RIC to get types for.") // + @RequestParam(name = "ric", required = false) String ricName) { if (ricName == null) { Collection types = this.policyTypes.getAll(); return new ResponseEntity<>(toPolicyTypeIdsJson(types), HttpStatus.OK); @@ -163,8 +166,8 @@ public class PolicyController { @ApiResponse(code = 404, message = "Policy is not found")} // ) public ResponseEntity getPolicy( // - @ApiParam(name = "id", required = true, value = "The ID of the policy instance.")@RequestParam(name = "id", // - required = true) String id) { + @ApiParam(name = "id", required = true, value = "The ID of the policy instance.") // + @RequestParam(name = "id", required = true) String id) { try { Policy p = policies.getPolicy(id); return new ResponseEntity<>(p.json(), HttpStatus.OK); @@ -181,8 +184,8 @@ public class PolicyController { @ApiResponse(code = 404, message = "Policy is not found", response = String.class), @ApiResponse(code = 423, message = "RIC is not operational", response = String.class)}) public Mono> deletePolicy( // - @ApiParam(name = "id", required = true, value = "The ID of the policy instance.")@RequestParam(name = "id", // - required = true) String id) { + @ApiParam(name = "id", required = true, value = "The ID of the policy instance.") // + @RequestParam(name = "id", required = true) String id) { try { Policy policy = policies.getPolicy(id); keepServiceAlive(policy.ownerServiceName()); @@ -212,17 +215,18 @@ public class PolicyController { }) public Mono> putPolicy( // @ApiParam(name = "type", required = false, value = "The name of the policy type.") // - @RequestParam(name = "type", required = false, defaultValue = "") String typeName, // - @ApiParam(name = "id", required = true, value = "The ID of the policy instance.")@RequestParam(name = "id", // - required = true) String instanceId, // - @ApiParam(name = "ric", required = true, value = "The name of the Near-RT RIC where the policy will be " +// - "created.")@RequestParam(name = "ric", required = true) String ricName, // + @RequestParam(name = "type", required = false, defaultValue = "") String typeName, // + @ApiParam(name = "id", required = true, value = "The ID of the policy instance.") // + @RequestParam(name = "id", required = true) String instanceId, // + @ApiParam(name = "ric", required = true, value = "The name of the Near-RT RIC where the policy will be " + // + "created.") // + @RequestParam(name = "ric", required = true) String ricName, // @ApiParam(name = "service", required = true, value = "The name of the service creating the policy.") // - @RequestParam(name = "service", required = true) String service, // - @ApiParam(name = "transient", required = false, value = "If the policy is transient or not (boolean " +// - "defaulted to false). A policy is transient if it will be forgotten when the service needs to " +// - "reconnect to the Near-RT RIC.")@RequestParam(name = "transient", required = false, // - defaultValue = "false") boolean isTransient, // + @RequestParam(name = "service", required = true) String service, // + @ApiParam(name = "transient", required = false, value = "If the policy is transient or not (boolean " + // + "defaulted to false). A policy is transient if it will be forgotten when the service needs to " + // + "reconnect to the Near-RT RIC.") // + @RequestParam(name = "transient", required = false, defaultValue = "false") boolean isTransient, // @RequestBody Object jsonBody) { String jsonString = gson.toJson(jsonBody); @@ -317,11 +321,11 @@ public class PolicyController { @ApiResponse(code = 404, message = "RIC or type not found", response = String.class)}) public ResponseEntity getPolicies( // @ApiParam(name = "type", required = false, value = "The name of the policy type to get policies for.") // - @RequestParam(name = "type", required = false) String type, // + @RequestParam(name = "type", required = false) String type, // @ApiParam(name = "ric", required = false, value = "The name of the Near-RT RIC to get policies for.") // - @RequestParam(name = "ric", required = false) String ric, // + @RequestParam(name = "ric", required = false) String ric, // @ApiParam(name = "service", required = false, value = "The name of the service to get policies for.") // - @RequestParam(name = "service", required = false) String service) // + @RequestParam(name = "service", required = false) String service) // { if ((type != null && this.policyTypes.get(type) == null)) { return new ResponseEntity<>("Policy type not found", HttpStatus.NOT_FOUND); @@ -341,11 +345,11 @@ public class PolicyController { @ApiResponse(code = 404, message = "RIC or type not found", response = String.class)}) public ResponseEntity getPolicyIds( // @ApiParam(name = "type", required = false, value = "The name of the policy type to get policies for.") // - @RequestParam(name = "type", required = false) String type, // + @RequestParam(name = "type", required = false) String type, // @ApiParam(name = "ric", required = false, value = "The name of the Near-RT RIC to get policies for.") // - @RequestParam(name = "ric", required = false) String ric, // + @RequestParam(name = "ric", required = false) String ric, // @ApiParam(name = "service", required = false, value = "The name of the service to get policies for.") // - @RequestParam(name = "service", required = false) String service) // + @RequestParam(name = "service", required = false) String service) // { if ((type != null && this.policyTypes.get(type) == null)) { return new ResponseEntity<>("Policy type not found", HttpStatus.NOT_FOUND); @@ -366,7 +370,8 @@ public class PolicyController { @ApiResponse(code = 404, message = "Policy is not found", response = String.class)} // ) public Mono> getPolicyStatus( // - @ApiParam(name = "id", required = true, value = "The ID of the policy.")@RequestParam(name = "id", // + @ApiParam(name = "id", required = true, value = "The ID of the policy.") @RequestParam( + name = "id", // required = true) String id) { try { Policy policy = policies.getPolicy(id); diff --git a/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java b/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java index 1064c6f0..c3e58008 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/controllers/RicRepositoryController.java @@ -25,6 +25,7 @@ import com.google.gson.GsonBuilder; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; @@ -66,9 +67,9 @@ public class RicRepositoryController { @ApiResponse(code = 200, message = "RIC is found", response = String.class), // @ApiResponse(code = 404, message = "RIC is not found", response = String.class) // }) - public ResponseEntity getRic( + public ResponseEntity getRic( // + @ApiParam(name = "managedElementId", required = true, value = "The ID of the Managed Element") // @RequestParam(name = "managedElementId", required = true) String managedElementId) { - Optional ric = this.rics.lookupRicForManagedElement(managedElementId); if (ric.isPresent()) { @@ -87,9 +88,9 @@ public class RicRepositoryController { value = { // @ApiResponse(code = 200, message = "OK", response = RicInfo.class, responseContainer = "List"), // @ApiResponse(code = 404, message = "Policy type is not found", response = String.class)}) - public ResponseEntity getRics( + public ResponseEntity getRics( // + @ApiParam(name = "policyType", required = false, value = "The name of the policy type") // @RequestParam(name = "policyType", required = false) String supportingPolicyType) { - if ((supportingPolicyType != null) && (this.types.get(supportingPolicyType) == null)) { return new ResponseEntity<>("Policy type not found", HttpStatus.NOT_FOUND); } diff --git a/policy-agent/src/main/java/org/oransc/policyagent/controllers/ServiceController.java b/policy-agent/src/main/java/org/oransc/policyagent/controllers/ServiceController.java index 922ba3d6..84818304 100644 --- a/policy-agent/src/main/java/org/oransc/policyagent/controllers/ServiceController.java +++ b/policy-agent/src/main/java/org/oransc/policyagent/controllers/ServiceController.java @@ -25,6 +25,7 @@ import com.google.gson.GsonBuilder; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; import io.swagger.annotations.ApiResponse; import io.swagger.annotations.ApiResponses; @@ -72,8 +73,8 @@ public class ServiceController { @ApiResponse(code = 200, message = "OK", response = ServiceStatus.class, responseContainer = "List"), // @ApiResponse(code = 404, message = "Service is not found", response = String.class)}) public ResponseEntity getServices(// + @ApiParam(name = "name", required = false, value = "The name of the service") // @RequestParam(name = "name", required = false) String name) { - if (name != null && this.services.get(name) == null) { return new ResponseEntity<>("Service not found", HttpStatus.NOT_FOUND); } @@ -133,6 +134,7 @@ public class ServiceController { @ApiResponse(code = 404, message = "Service not found", response = String.class)}) @DeleteMapping("/services") public ResponseEntity deleteService(// + @ApiParam(name = "name", required = true, value = "The name of the service") // @RequestParam(name = "name", required = true) String serviceName) { try { Service service = removeService(serviceName); @@ -152,6 +154,7 @@ public class ServiceController { @ApiResponse(code = 404, message = "The service is not found, needs re-registration")}) @PutMapping("/services/keepalive") public ResponseEntity keepAliveService(// + @ApiParam(name = "name", required = true, value = "The name of the service") // @RequestParam(name = "name", required = true) String serviceName) { try { services.getService(serviceName).keepAlive();