import java.time.Duration;
import java.util.ArrayList;
import java.util.Collection;
-import java.util.List;
import org.oransc.policyagent.exceptions.ServiceException;
import org.oransc.policyagent.repository.Policies;
}
Collection<ServiceStatus> servicesStatus = new ArrayList<>();
- synchronized (this.services) {
- for (Service s : this.services.getAll()) {
- if (name == null || name.equals(s.getName())) {
- servicesStatus.add(toServiceStatus(s));
- }
+ for (Service s : this.services.getAll()) {
+ if (name == null || name.equals(s.getName())) {
+ servicesStatus.add(toServiceStatus(s));
}
}
@ApiOperation(value = "Register a service")
@ApiResponses(
value = { //
- @ApiResponse(code = 200, message = "OK", response = String.class),
+ @ApiResponse(code = 200, message = "Service updated", response = String.class),
+ @ApiResponse(code = 201, message = "Service created", response = String.class), //
@ApiResponse(code = 400, message = "Cannot parse the ServiceRegistrationInfo", response = String.class)})
@PutMapping("/service")
public ResponseEntity<String> putService(//
@RequestBody ServiceRegistrationInfo registrationInfo) {
try {
validateRegistrationInfo(registrationInfo);
+ final boolean isCreate = this.services.get(registrationInfo.serviceName) == null;
this.services.put(toService(registrationInfo));
- return new ResponseEntity<>("OK", HttpStatus.OK);
+ return new ResponseEntity<>("OK", isCreate ? HttpStatus.CREATED : HttpStatus.OK);
} catch (Exception e) {
return new ResponseEntity<>(e.getMessage(), HttpStatus.BAD_REQUEST);
}
}
private Service removeService(String name) throws ServiceException {
- synchronized (this.services) {
- Service service = this.services.getService(name);
- this.services.remove(service.getName());
- return service;
- }
+ Service service = this.services.getService(name); // Just to verify that it exists
+ this.services.remove(service.getName());
+ return service;
}
private void removePolicies(Service service) {
- synchronized (this.policies) {
- List<Policy> policyList = new ArrayList<>(this.policies.getForService(service.getName()));
- for (Policy policy : policyList) {
- this.policies.remove(policy);
- }
+ Collection<Policy> policyList = this.policies.getForService(service.getName());
+ for (Policy policy : policyList) {
+ this.policies.remove(policy);
}
}