Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions keter-backend/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,10 @@
<artifactId>slf4j-api</artifactId>
<version>1.7.25</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,18 +13,23 @@
import org.springframework.security.config.annotation.web.builders.WebSecurity;
import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter;
import org.springframework.web.servlet.view.InternalResourceViewResolver;
import ru.avplatonov.keter.backend.db.GraphsDB;
import ru.avplatonov.keter.backend.db.NodesDB;

import java.util.Arrays;

@SpringBootApplication
public class Application {

public static ApplicationContext context;

public static GraphsDB graphsDB;
public static NodesDB nodesDB;
private Logger logger = LoggerFactory.getLogger(Application.class);

public static void main(String[] args) {

context = new AnnotationConfigApplicationContext(GraphsDB.class, NodesDB.class);
graphsDB = context.getBean(GraphsDB.class);
nodesDB = context.getBean(NodesDB.class);
SpringApplication.run(Application.class, args);
}

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package ru.avplatonov.keter.backend.controllers.management.create;

public class CreateGraphKeter {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package ru.avplatonov.keter.backend.controllers.management.create;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ru.avplatonov.keter.backend.initialize.managet.GraphTemplate;

import static ru.avplatonov.keter.backend.Application.graphsDB;

@RestController
@EnableAutoConfiguration
public class CreateGraphTemplate {

@CrossOrigin(origins = "*", allowedHeaders = "*")
@RequestMapping(value = "/create/graphs",
headers = {"Content-type=application/json"})
public String service(
@RequestBody GraphTemplate graphTemplate
){
try {
graphsDB.addListOfGraphTemplate(graphTemplate);
return "Success";
}catch (Exception ex){
return "Failed";
}
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
package ru.avplatonov.keter.backend.controllers.management.create;

public class CreateNodeKeter {
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package ru.avplatonov.keter.backend.controllers.management.create;

import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ru.avplatonov.keter.backend.initialize.managet.NodeTemplate;

import java.io.IOException;

import static ru.avplatonov.keter.backend.Application.nodesDB;

@RestController
@EnableAutoConfiguration
public class CreateNodeTemplate {

@CrossOrigin(origins = "*", allowedHeaders = "*")
@RequestMapping(value = "/create/nodes",
headers = {"Content-type=application/json"})
public String service(
@RequestBody NodeTemplate nodeTemplate
) throws IOException {
ObjectMapper mapper = new ObjectMapper();
nodesDB.addListOfNodes(nodeTemplate);
return "listOfNode.size=" + nodesDB.getListOfNodeTemplates().size() + "\n" + mapper.writeValueAsString(nodeTemplate) ;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
package ru.avplatonov.keter.backend.controllers.management.graphs;

import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.lang.NonNull;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ru.avplatonov.keter.backend.initialize.managet.GraphTemplate;

import java.util.ArrayList;
import java.util.List;

import static ru.avplatonov.keter.backend.Application.graphsDB;

@RestController
@EnableAutoConfiguration
public class GraphTemplateListController {

@CrossOrigin(origins = "*", allowedHeaders = "*")
@RequestMapping(value = "/graphs/{graphSearch}")
public String listOfGraphs(
@PathVariable("graphSearch") @NonNull String value
) throws JsonProcessingException {
return value + "\n" + searchGraph(value);
}

private List<GraphTemplate> searchGraph(String value) throws JsonProcessingException {
List<GraphTemplate> listOfGraphs = new ArrayList<>();
for (GraphTemplate graphTemplate : graphsDB.getListOfGraphs()) {
if (graphTemplate.getGraphName().contains(value) || graphTemplate.getOutputs().contains(value)){
listOfGraphs.add(graphTemplate);
}
}
return listOfGraphs;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
package ru.avplatonov.keter.backend.controllers.management.nodes;

import com.fasterxml.jackson.core.JsonProcessingException;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.lang.NonNull;
import org.springframework.web.bind.annotation.CrossOrigin;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import ru.avplatonov.keter.backend.initialize.managet.NodeTemplate;

import java.util.ArrayList;
import java.util.List;
import java.util.Set;

import static ru.avplatonov.keter.backend.Application.nodesDB;

@RestController
@EnableAutoConfiguration
public class NodeTemplateListController {

@CrossOrigin(origins = "*", allowedHeaders = "*")
@RequestMapping(value = "/nodes/all")
public Set<NodeTemplate> service() throws JsonProcessingException {
return nodesDB.getListOfNodeTemplates();
}

@CrossOrigin(origins = "*", allowedHeaders = "*")
@RequestMapping(value = "/nodes/{nodeSearch}")
public String service(
@PathVariable("nodeSearch") @NonNull String value
) throws JsonProcessingException {
return value + "\n" + searchNode(value); //.toLowerCase() ?
}

private List<NodeTemplate> searchNode(String value) throws JsonProcessingException {
List<NodeTemplate> listOfNodes = new ArrayList<>();
//ObjectMapper mapper = new ObjectMapper();
for (NodeTemplate nodeTemplate : nodesDB.getListOfNodeTemplates()) {
if (nodeTemplate.getDescription().contains(value) || nodeTemplate.getTags().contains(value) || nodeTemplate.getName().contains(value)){
listOfNodes.add(nodeTemplate);
}
}
return listOfNodes;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
package ru.avplatonov.keter.backend.controllers.management.services;

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@EnableAutoConfiguration
public class ServiceListController {

@GetMapping("/services")
public String service() {
return null;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@

import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.lang.NonNull;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import ru.avplatonov.keter.backend.initialize.monitoring.schedule.Schedule;

import java.io.IOException;
Expand All @@ -20,6 +17,8 @@
@RestController
@EnableAutoConfiguration
public class RefreshScheduleState {

@CrossOrigin(origins = "*", allowedHeaders = "*")
@RequestMapping(value = "/graph/status/state")
public List<Schedule> scheduleRefresh(
@RequestParam String ids
Expand All @@ -31,7 +30,7 @@ public List<Schedule> scheduleRefresh(
List<String> listUUID = parsGet(ids);
for (Schedule schedule : listSchedule) {
for (String idGraph : listUUID){
if(schedule.getUuidShedule().toString().equals(idGraph)) {
if(schedule.getUuidSchedule().toString().equals(idGraph)) {
double rand = Math.random();
if (rand <= 0.2)
schedule.setState("planning");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Optional;

Expand All @@ -20,6 +19,7 @@
@EnableAutoConfiguration
public class ScheduleList {

@CrossOrigin(origins = "*", allowedHeaders = "*")
@RequestMapping(value = "/graph/status")
public List<Schedule> schedule(
@RequestParam Optional<String> filter
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
package ru.avplatonov.keter.backend.db;

import org.springframework.stereotype.Component;
import ru.avplatonov.keter.backend.initialize.managet.GraphTemplate;

import java.util.Set;

@Component
public class GraphsDB {

private Set<GraphTemplate> listOfGraphs;

public Set<GraphTemplate> getListOfGraphs() {
return listOfGraphs;
}

public void addListOfGraphTemplate(GraphTemplate listOfGraphs){
this.listOfGraphs.add(listOfGraphs);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
package ru.avplatonov.keter.backend.db;

import org.springframework.stereotype.Component;
import ru.avplatonov.keter.backend.initialize.managet.NodeTemplate;

import java.util.HashSet;
import java.util.Set;

@Component
public class NodesDB {

private Set<NodeTemplate> listOfNodeTemplates = new HashSet<>();

public Set<NodeTemplate> getListOfNodeTemplates() {
return listOfNodeTemplates;
}

public void addListOfNodes(NodeTemplate listOfNodes){
this.listOfNodeTemplates.add(listOfNodes);
}

public void setListOfNodeTemplates(Set<NodeTemplate> listOfNodeTemplates) {
this.listOfNodeTemplates = listOfNodeTemplates;
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
package ru.avplatonov.keter.backend.initialize.managet;

import java.util.List;
import java.util.Map;
import java.util.UUID;

public class GraphKeter {
private UUID uuidGraph = UUID.randomUUID();
private int idRun = 2;
private String status;
private List<NodesKeter> nodesList;
private String graphName;
private String graphDescription;
private Map<Integer, Map<String,String>> parametrs;

public void setIdRun(int idRun) {
this.idRun = idRun;
}

public void setStatus(String status) {
this.status = status;
}

public void setNodesList(List<NodesKeter> nodesList) {
this.nodesList = nodesList;
}

public void setGraphName(String graphName) {
this.graphName = graphName;
}

public void setGraphDescription(String graphDescription) {
this.graphDescription = graphDescription;
}

public void setParametrs(Map<Integer, Map<String, String>> parametrs) {
this.parametrs = parametrs;
}

public UUID getUuidGraph() {
return uuidGraph;
}

public int getIdRun() {
return idRun;
}

public String getStatus() {
return status;
}

public List<NodesKeter> getNodesList() {
return nodesList;
}

public String getGraphName() {
return graphName;
}

public String getGraphDescription() {
return graphDescription;
}

public Map<Integer, Map<String, String>> getParametrs() {
return parametrs;
}

public GraphKeter(int idRun, String status, List<NodesKeter> nodesList, String graphName, String graphDescription, Map<Integer, Map<String, String>> parametrs) {
this.idRun = idRun;
this.status = status;
this.nodesList = nodesList;
this.graphName = graphName;
this.graphDescription = graphDescription;
this.parametrs = parametrs;
}
}
Loading