Skip to content

Commit

Permalink
Refactor Simulation to Submission svc
Browse files Browse the repository at this point in the history
  • Loading branch information
flawmop committed Sep 24, 2024
1 parent d4cfdc1 commit 15b324e
Show file tree
Hide file tree
Showing 39 changed files with 144 additions and 139 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/acceptance-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ concurrency: acceptance
env:
OWNER: flawmop
REGISTRY: ghcr.io
APP_REPO: simulation-svc
APP_REPO: submission-svc
DEPLOY_REPO: portal-deploy
VERSION: ${{ github.sha }}

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/commit-stage.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@ on: push
env:
OWNER: flawmop
REGISTRY: ghcr.io
IMAGE_NAME: flawmop/simulation-svc
APP_REPO: simulation-svc
IMAGE_NAME: flawmop/submission-svc
APP_REPO: submission-svc
DEPLOY_REPO: portal-deploy
VERSION: ${{ github.sha }}

Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1 +1 @@
Simulation Service
Submission Service
18 changes: 9 additions & 9 deletions k8s/deployment.yml
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: simulation-svc
name: submission-svc
labels:
app: simulation-svc
app: submission-svc
spec:
replicas: 1
selector:
matchLabels:
app: simulation-svc
app: submission-svc
template:
metadata:
labels:
app: simulation-svc
app: submission-svc
spec:
containers:
- name: simulation-svc
image: ghcr.io/flawmop/simulation-svc
- name: submission-svc
image: ghcr.io/flawmop/submission-svc
imagePullPolicy: IfNotPresent
lifecycle:
preStop:
Expand All @@ -25,9 +25,9 @@ spec:
ports:
- containerPort: 9002
volumeMounts:
- name: simulation-config-volume
- name: submission-config-volume
mountPath: /workspace/config
volumes:
- name: simulation-config-volume
- name: submission-config-volume
configMap:
name: simulation-config
name: submission-config
4 changes: 2 additions & 2 deletions k8s/kustomization.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ resources:
- service.yml

configMapGenerator:
- name: simulation-config
- name: submission-config
files:
- application.yml

generatorOptions:
#disableNameSuffixHash: true
labels:
app: simulation-svc
app: submission-svc
6 changes: 3 additions & 3 deletions k8s/service.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: simulation-svc
name: submission-svc
labels:
app: simulation-svc
app: submission-svc
spec:
type: ClusterIP
selector:
app: simulation-svc
app: submission-svc
ports:
- protocol: TCP
port: 80
Expand Down
2 changes: 1 addition & 1 deletion settings.gradle
Original file line number Diff line number Diff line change
@@ -1 +1 @@
rootProject.name = 'simulation-svc'
rootProject.name = 'submission-svc'
Original file line number Diff line number Diff line change
@@ -1,13 +1,14 @@
package com.insilicosoft.portal.svc.simulation;
package com.insilicosoft.portal.svc.submission;

public final class SimulationIdentifiers {
public final class SubmissionIdentifiers {

/** Also used in {@code application.yml} */
public static final String BINDING_NAME_SIMULATION_INPUT = "simulation-input";
public static final String PARAM_NAME_SIMULATION_FILE = "mpfile";
public static final String REQUEST_MAPPING_SIMULATION = "/simulation";
public static final String REQUEST_MAPPING_SUBMISSION = "/submission";
public static final String ROLE_USER = "user";

private SimulationIdentifiers() {}
private SubmissionIdentifiers() {}

}
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
package com.insilicosoft.portal.svc.simulation;
package com.insilicosoft.portal.svc.submission;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class SimulationSvcApplication {
public class SubmissionSvcApplication {

public static void main(String[] args) {
SpringApplication.run(SimulationSvcApplication.class, args);
SpringApplication.run(SubmissionSvcApplication.class, args);
}

}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.config;
package com.insilicosoft.portal.svc.submission.config;

import org.slf4j.Logger ;
import org.slf4j.LoggerFactory ;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.config;
package com.insilicosoft.portal.svc.submission.config;

import java.util.Optional;

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.config;
package com.insilicosoft.portal.svc.submission.config;

import static org.springframework.security.config.http.SessionCreationPolicy.STATELESS;
import static org.springframework.security.config.Customizer.withDefaults;
Expand All @@ -22,7 +22,7 @@
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;

import com.insilicosoft.portal.svc.simulation.SimulationIdentifiers;
import com.insilicosoft.portal.svc.submission.SubmissionIdentifiers;

/**
* Security configuration.
Expand Down Expand Up @@ -53,8 +53,8 @@ SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeHttpRequests((authz) -> authz.requestMatchers(EndpointRequest.to(InfoEndpoint.class),
EndpointRequest.to(MetricsEndpoint.class),
EndpointRequest.to(PrometheusScrapeEndpoint.class)).authenticated()
.requestMatchers(SimulationIdentifiers.REQUEST_MAPPING_SIMULATION.concat("/**"))
.hasRole(SimulationIdentifiers.ROLE_USER))
.requestMatchers(SubmissionIdentifiers.REQUEST_MAPPING_SUBMISSION.concat("/**"))
.hasRole(SubmissionIdentifiers.ROLE_USER))
.oauth2ResourceServer((oauth2) -> oauth2.jwt(withDefaults()))
.sessionManagement(sessionManagement -> sessionManagement.sessionCreationPolicy(STATELESS))
.csrf(AbstractHttpConfigurer::disable)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.controller;
package com.insilicosoft.portal.svc.submission.controller;

import java.io.IOException ;

Expand All @@ -12,11 +12,11 @@
import org.springframework.web.bind.annotation.RequestPart ;
import org.springframework.web.multipart.MultipartFile;

import com.insilicosoft.portal.svc.simulation.SimulationIdentifiers;
import com.insilicosoft.portal.svc.simulation.exception.FileProcessingException;
import com.insilicosoft.portal.svc.simulation.exception.InputVerificationException;
import com.insilicosoft.portal.svc.simulation.service.InputProcessorService;
import com.insilicosoft.portal.svc.simulation.service.SubmissionService;
import com.insilicosoft.portal.svc.submission.SubmissionIdentifiers;
import com.insilicosoft.portal.svc.submission.exception.FileProcessingException;
import com.insilicosoft.portal.svc.submission.exception.InputVerificationException;
import com.insilicosoft.portal.svc.submission.service.InputProcessorService;
import com.insilicosoft.portal.svc.submission.service.SubmissionService;

import io.micrometer.core.annotation.Timed;

Expand All @@ -26,10 +26,10 @@
* @author geoff
*/
@Controller
@RequestMapping(SimulationIdentifiers.REQUEST_MAPPING_SIMULATION)
public class SimulationController {
@RequestMapping(SubmissionIdentifiers.REQUEST_MAPPING_SUBMISSION)
public class SubmissionController {

private static final Logger log = LoggerFactory.getLogger(SimulationController.class);
private static final Logger log = LoggerFactory.getLogger(SubmissionController.class);

private final InputProcessorService inputProcessorService;
private final SubmissionService submissionService;
Expand All @@ -40,14 +40,14 @@ public class SimulationController {
* @param inputProcessorService Input processing implementation.
* @param submissionService Submission service.
*/
public SimulationController(final InputProcessorService inputProcessorService,
public SubmissionController(final InputProcessorService inputProcessorService,
final SubmissionService submissionService) {
this.inputProcessorService = inputProcessorService;
this.submissionService = submissionService;
}

@GetMapping()
@Timed(value = "simulation.get", description = "GET request")
@Timed(value = "submission.get", description = "GET request")
public ResponseEntity<String> get() {
return ResponseEntity.ok(inputProcessorService.get());
}
Expand All @@ -59,16 +59,16 @@ public ResponseEntity<String> get() {
* @return Response entity.
* @throws FileProcessingException If problems processing file.
*/
@PostMapping()
@Timed(value = "simulation.post", description = "Simulation POST Multipart request")
@PostMapping(value = SubmissionIdentifiers.REQUEST_MAPPING_SIMULATION)
@Timed(value = "submission.simulation.post", description = "Submit Simulation POST Multipart request")
public ResponseEntity<String> createSimulation(final @RequestPart(required=false,
value=SimulationIdentifiers.PARAM_NAME_SIMULATION_FILE)
value=SubmissionIdentifiers.PARAM_NAME_SIMULATION_FILE)
MultipartFile file)
throws FileProcessingException,
InputVerificationException {

if (file == null) {
final String message = "No Multipart file! Did you supply the parameter '" + SimulationIdentifiers.PARAM_NAME_SIMULATION_FILE + "' in the POST request?";
final String message = "No Multipart file! Did you supply the parameter '" + SubmissionIdentifiers.PARAM_NAME_SIMULATION_FILE + "' in the POST request?";
log.warn("~createSimulation() : ".concat(message));
throw new FileProcessingException(message);
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.controller.advice;
package com.insilicosoft.portal.svc.submission.controller.advice;

import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
Expand All @@ -7,8 +7,8 @@
import org.springframework.web.multipart.MaxUploadSizeExceededException;
import org.springframework.web.multipart.MultipartException;

import com.insilicosoft.portal.svc.simulation.exception.FileProcessingException;
import com.insilicosoft.portal.svc.simulation.exception.InputVerificationException;
import com.insilicosoft.portal.svc.submission.exception.FileProcessingException;
import com.insilicosoft.portal.svc.submission.exception.InputVerificationException;

/**
* REST controller advice.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.event;
package com.insilicosoft.portal.svc.submission.event;

import java.math.BigDecimal;
import java.util.List;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.exception;
package com.insilicosoft.portal.svc.submission.exception;

/**
* File processing exception.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.exception;
package com.insilicosoft.portal.svc.submission.exception;

/**
* Input verification exception.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.persistence;
package com.insilicosoft.portal.svc.submission.persistence;

public enum State {
APPROVED, COMPLETED, CREATED, FAILED, REJECTED
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.insilicosoft.portal.svc.simulation.persistence.entity;
package com.insilicosoft.portal.svc.submission.persistence.entity;

import com.insilicosoft.portal.svc.simulation.value.MessageLevel;
import com.insilicosoft.portal.svc.submission.value.MessageLevel;

import jakarta.persistence.Embeddable;
import jakarta.persistence.EnumType;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.persistence.entity;
package com.insilicosoft.portal.svc.submission.persistence.entity;

import static jakarta.persistence.GenerationType.IDENTITY;

Expand All @@ -12,8 +12,8 @@

import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import com.insilicosoft.portal.svc.simulation.event.SimulationMessage;
import com.insilicosoft.portal.svc.simulation.value.MessageLevel;
import com.insilicosoft.portal.svc.submission.event.SimulationMessage;
import com.insilicosoft.portal.svc.submission.value.MessageLevel;

import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
Expand Down Expand Up @@ -45,14 +45,14 @@ public class Simulation {
@GeneratedValue(strategy = IDENTITY)
private Long entityId;

@Column
@Column(nullable = false)
private long submissionId;

// Optional. How the client/user identifies the simulation
@Column(name = "clientId")
private String clientId;

@Column
@Column(nullable = false)
private int modelId;

@Column(nullable = false)
Expand Down Expand Up @@ -88,11 +88,11 @@ public class Simulation {
/**
* Initialising constructor.
*
* @param submissionId
* @param modelId
* @param pacingFrequency
* @param pacingMaxTime
* @param plasmaPoints
* @param submissionId Submission identifier.
* @param modelId Model identifier.
* @param pacingFrequency Pacing frequency (Hz)
* @param pacingMaxTime Pacing max time (Mins)
* @param plasmaPoints Plasma points / Concentrations (μM).
*/
public Simulation(final long submissionId, final int modelId, final BigDecimal pacingFrequency,
final BigDecimal pacingMaxTime, final List<BigDecimal> plasmaPoints) {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package com.insilicosoft.portal.svc.simulation.persistence.entity;
package com.insilicosoft.portal.svc.submission.persistence.entity;

import static jakarta.persistence.GenerationType.IDENTITY;

Expand All @@ -11,7 +11,7 @@
import org.springframework.data.annotation.CreatedDate;
import org.springframework.data.jpa.domain.support.AuditingEntityListener;

import com.insilicosoft.portal.svc.simulation.persistence.State;
import com.insilicosoft.portal.svc.submission.persistence.State;

import jakarta.persistence.CollectionTable;
import jakarta.persistence.Column;
Expand Down Expand Up @@ -70,6 +70,8 @@ public Submission() {

/**
* Reject the submission and populate with the problem as justification.
* <p>
* Assigns the state to {@link State.REJECTED}
*
* @param problem Problem encountered.
*/
Expand All @@ -81,6 +83,8 @@ public void rejectWithProblem(final Message problem) {

/**
* Reject the submission and populate with the problems as justification.
* <p>
* Assigns the state to {@link State.REJECTED}
*
* @param problems Problems encountered.
*/
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package com.insilicosoft.portal.svc.simulation.persistence.repository;
package com.insilicosoft.portal.svc.submission.persistence.repository;

import org.springframework.data.jpa.repository.JpaRepository;

import com.insilicosoft.portal.svc.simulation.persistence.entity.Simulation;
import com.insilicosoft.portal.svc.submission.persistence.entity.Simulation;

/**
* Repository for {@link Simulation} objects.
Expand Down
Loading

0 comments on commit 15b324e

Please sign in to comment.