Skip to content
Snippets Groups Projects
Commit 82899d3a authored by Alexander Lovett's avatar Alexander Lovett
Browse files

[LGR-73] - Remove router end point

parent f967e4aa
No related branches found
No related tags found
No related merge requests found
Showing
with 31 additions and 218 deletions
* 2.0.13 # 2.0.14
* [LGR-73](https://jira.software.geant.org/browse/LGR-73) - Remove router endpoint
# 2.0.13
* [LGR-70](https://jira.software.geant.org/browse/LGR-70) - Pull UI out of jar * [LGR-70](https://jira.software.geant.org/browse/LGR-70) - Pull UI out of jar
# 2.0.12 # 2.0.12
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
<groupId>org.geant</groupId> <groupId>org.geant</groupId>
<artifactId>looking-glass-service</artifactId> <artifactId>looking-glass-service</artifactId>
<version>2.0.13.RELEASE</version> <version>2.0.14-SNAPSHOT</version>
<packaging>jar</packaging> <packaging>jar</packaging>
<name>looking-glass-service</name> <name>looking-glass-service</name>
...@@ -25,25 +25,6 @@ ...@@ -25,25 +25,6 @@
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>
<scm>
<developerConnection>scm:git:https://gitlab.geant.net/live-projects/looking-glass-service.git
</developerConnection>
<tag>HEAD</tag>
</scm>
<distributionManagement>
<repository>
<id>looking-glass-releases</id>
<name>GEANT Artifactory-releases</name>
<url>https://artifactory.geant.net:443/artifactory/lg-release-local</url>
</repository>
<snapshotRepository>
<id>looking-glass-snapshots</id>
<name>GEANT Artifactory-snapshots</name>
<url>https://artifactory.geant.net:443/artifactory/lg-snapshot-local</url>
</snapshotRepository>
</distributionManagement>
<dependencies> <dependencies>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
...@@ -59,19 +40,6 @@ ...@@ -59,19 +40,6 @@
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId> <artifactId>spring-boot-starter-actuator</artifactId>
</dependency> </dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-rest</artifactId>
</dependency>
<dependency> <dependency>
<groupId>org.springframework.boot</groupId> <groupId>org.springframework.boot</groupId>
......
...@@ -30,18 +30,6 @@ public class AppConfig implements Serializable { ...@@ -30,18 +30,6 @@ public class AppConfig implements Serializable {
@Value("${configuration.publickey.keyfile}") @Value("${configuration.publickey.keyfile}")
private String keyFile; private String keyFile;
@Value("${spring.datasource.username}")
private String dbUsername;
@Value("${spring.datasource.password}")
private String dbPassword;
@Value("${spring.datasource.url}")
private String dbURL;
@Value("${spring.datasource.driverClassName}")
private String dbDriverClassName;
@Value("${saml.metadata-url}") @Value("${saml.metadata-url}")
private String metadataURL; private String metadataURL;
......
package org.geant.lgservice.model;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.geant.lgservice.pojos.Coordinates;
import org.geant.lgservice.pojos.Router;
@Data
@Entity()
@NoArgsConstructor
@AllArgsConstructor
@Table(name = "vlg_routers")
public class Equipment {
@Id
@Column(name = "router_absid")
private int routerAbsid;
@Column(name = "router_name")
private String routerName;
@Column(name = "pop_absid")
private int popAbsid;
@Column(name = "pop_name")
private String popName;
@Column(name = "pop_lat")
private String popLat;
@Column(name = "pop_long")
private String popLong;
@Column(name = "pop_country_code")
private String popCountryCode;
@Column(name = "pop_country")
private String popCountry;
@Column(name = "pop_city")
private String popCity;
@Column(name = "internal")
private String internal;
@Column(name = "pop_abbrev")
private String popAbbrev;
public Router toDomain() {
return Router.builder()
.abbreviatedName(popAbbrev)
.city(popCity)
.coordinates(new Coordinates(popLat, popLong))
.name(routerName)
.popCountryCode(popCountryCode)
.country(popCountry)
.popName(popName)
.build();
}
}
package org.geant.lgservice.pojos; package org.geant.lgservice.pojos;
import lombok.AllArgsConstructor; import lombok.Getter;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data @Getter
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class Router { public class Router {
private Coordinates coordinates;
private String name; private String name;
private String authType;
private String city;
private String country;
private String popName;
private String popCountryCode;
private boolean selected;
private String abbreviatedName;
} }
package org.geant.lgservice.repository;
import org.geant.lgservice.model.Equipment;
import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface EquipmentRepository extends CrudRepository<Equipment, Integer> {
}
...@@ -10,7 +10,6 @@ import org.geant.lgservice.pojos.CommandOutput; ...@@ -10,7 +10,6 @@ import org.geant.lgservice.pojos.CommandOutput;
import org.geant.lgservice.pojos.Group; import org.geant.lgservice.pojos.Group;
import org.geant.lgservice.pojos.QueryInputRequest; import org.geant.lgservice.pojos.QueryInputRequest;
import org.geant.lgservice.pojos.QueryResponse; import org.geant.lgservice.pojos.QueryResponse;
import org.geant.lgservice.pojos.Router;
import org.geant.lgservice.security.LGUser; import org.geant.lgservice.security.LGUser;
import org.geant.lgservice.services.BuildService; import org.geant.lgservice.services.BuildService;
import org.geant.lgservice.services.LookingGlassService; import org.geant.lgservice.services.LookingGlassService;
...@@ -51,17 +50,6 @@ public class LookingGlassRestController { ...@@ -51,17 +50,6 @@ public class LookingGlassRestController {
return ResponseEntity.ok(commands); return ResponseEntity.ok(commands);
} }
@GetMapping(value = "/routers/all")
public ResponseEntity<?> getAllRouters() {
LGUser currentUser = null;
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
if (principal instanceof LGUser) {
currentUser = (LGUser) principal;
}
List<Router> routers = service.getAllRouters(currentUser);
return ResponseEntity.ok(routers);
}
@GetMapping(value = "/user/getLoggedInUser") @GetMapping(value = "/user/getLoggedInUser")
public ResponseEntity<?> getLoggedInUser() { public ResponseEntity<?> getLoggedInUser() {
Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal();
......
...@@ -11,8 +11,6 @@ import org.geant.lgservice.security.LGUser; ...@@ -11,8 +11,6 @@ import org.geant.lgservice.security.LGUser;
public interface LookingGlassService { public interface LookingGlassService {
List<Router> getAllRouters(final LGUser user);
List<Group> getAllCommands(final LGUser user); List<Group> getAllCommands(final LGUser user);
Map<String, CommandOutput> submitQuery(final List<Router> selectedRouters, final Command selectedCommand, Map<String, CommandOutput> submitQuery(final List<Router> selectedRouters, final Command selectedCommand,
......
...@@ -30,11 +30,6 @@ public class LookingGlassServiceImpl implements LookingGlassService { ...@@ -30,11 +30,6 @@ public class LookingGlassServiceImpl implements LookingGlassService {
return lookingGlassHelper.loadAllCommands(user); return lookingGlassHelper.loadAllCommands(user);
} }
@Override
public List<Router> getAllRouters(final LGUser user) {
return lookingGlassHelper.loadAllRouters(user);
}
@Override @Override
public Map<String, CommandOutput> submitQuery(final List<Router> selectedRouters, final Command selectedCommand, public Map<String, CommandOutput> submitQuery(final List<Router> selectedRouters, final Command selectedCommand,
final String arguments, final boolean displayAsXML) { final String arguments, final boolean displayAsXML) {
......
package org.geant.lgservice.utils; package org.geant.lgservice.utils;
import java.util.*; import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.StreamSupport;
import org.geant.lgservice.config.CommandsParser; import org.geant.lgservice.config.CommandsParser;
import org.geant.lgservice.model.Equipment;
import org.geant.lgservice.pojos.Coordinates;
import org.geant.lgservice.pojos.Group; import org.geant.lgservice.pojos.Group;
import org.geant.lgservice.pojos.Router;
import org.geant.lgservice.repository.EquipmentRepository;
import org.geant.lgservice.security.LGUser; import org.geant.lgservice.security.LGUser;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import static java.util.Spliterator.ORDERED;
import static java.util.Spliterators.spliteratorUnknownSize; import static java.util.Spliterators.spliteratorUnknownSize;
import static java.util.stream.StreamSupport.stream; import static java.util.stream.StreamSupport.stream;
import static org.geant.lgservice.utils.LGRole.INTERNAL;
@Component @Component
public class LookingGlassHelper { public class LookingGlassHelper {
public static final String COMMANDS_FILE_NAME = "commands"; public static final String COMMANDS_FILE_NAME = "commands";
@Autowired
private EquipmentRepository equipmentRepo;
public List<Router> loadAllRouters(final LGUser user) {
final boolean internalRoutersAvailable =
Optional.ofNullable(user)
.map(LGUser::getRole)
.filter(INTERNAL::equals)
.isPresent();
return stream(equipmentRepo.findAll().spliterator(), false)
.filter(equipment -> isValidRouter(internalRoutersAvailable, equipment))
.map(Equipment::toDomain)
.collect(Collectors.toList());
}
private boolean isValidRouter(final Boolean showInternalRouters, final Equipment equipment) {
if (showInternalRouters) {
return true;
} else {
if (equipment.getInternal().equals("no")) {
return true;
}
}
return false;
}
public List<Group> loadAllCommands(final LGUser user) { public List<Group> loadAllCommands(final LGUser user) {
return new CommandsParser().getCommandsFromXML(COMMANDS_FILE_NAME, user); return new CommandsParser().getCommandsFromXML(COMMANDS_FILE_NAME, user);
} }
......
...@@ -2,8 +2,11 @@ package org.geant.lgservice.ecmr; ...@@ -2,8 +2,11 @@ package org.geant.lgservice.ecmr;
import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertEquals;
import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import org.geant.lgservice.pojos.Command; import org.geant.lgservice.pojos.Command;
import org.geant.lgservice.pojos.Router; import org.geant.lgservice.pojos.Router;
import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.junit.runner.RunWith; import org.junit.runner.RunWith;
import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.context.SpringBootTest;
...@@ -15,11 +18,18 @@ public class CallableCommandExecutorTest { ...@@ -15,11 +18,18 @@ public class CallableCommandExecutorTest {
public static final String TEST_ROUTER = "test-router.geant.net"; public static final String TEST_ROUTER = "test-router.geant.net";
public static final String TEST_COMMAND = "ping 25"; public static final String TEST_COMMAND = "ping 25";
public static final String TEST_ROUTER_JSON = String.format("{\"name\":\"%s\"}", TEST_ROUTER);
private static final ObjectMapper MAPPER = new ObjectMapper();
private Router router;
@Before
@SneakyThrows
public void setup() {
router = MAPPER.readValue(TEST_ROUTER_JSON, Router.class);
}
@Test @Test
public void testGetCommandWithArgumentsXML() { public void testGetCommandWithArgumentsXML() {
Router router = new Router();
router.setName(TEST_ROUTER);
Command command = new Command(); Command command = new Command();
command.setValue(TEST_COMMAND); command.setValue(TEST_COMMAND);
command.setRequiresParams(true); command.setRequiresParams(true);
...@@ -30,8 +40,6 @@ public class CallableCommandExecutorTest { ...@@ -30,8 +40,6 @@ public class CallableCommandExecutorTest {
@Test @Test
public void testGetCommandWithoutArgumentsXML() { public void testGetCommandWithoutArgumentsXML() {
Router router = new Router();
router.setName(TEST_ROUTER);
Command command = new Command(); Command command = new Command();
command.setValue(TEST_COMMAND); command.setValue(TEST_COMMAND);
command.setRequiresParams(false); command.setRequiresParams(false);
...@@ -42,8 +50,6 @@ public class CallableCommandExecutorTest { ...@@ -42,8 +50,6 @@ public class CallableCommandExecutorTest {
@Test @Test
public void testGetCommandWithoutArguments() { public void testGetCommandWithoutArguments() {
Router router = new Router();
router.setName(TEST_ROUTER);
Command command = new Command(); Command command = new Command();
command.setValue(TEST_COMMAND); command.setValue(TEST_COMMAND);
command.setRequiresParams(false); command.setRequiresParams(false);
......
package org.geant.lgservice.services; package org.geant.lgservice.services;
import org.assertj.core.api.Assertions; import com.fasterxml.jackson.databind.ObjectMapper;
import lombok.SneakyThrows;
import org.geant.lgservice.ecmr.CommandExecutor; import org.geant.lgservice.ecmr.CommandExecutor;
import org.geant.lgservice.pojos.Command; import org.geant.lgservice.pojos.Command;
import org.geant.lgservice.pojos.CommandOutput; import org.geant.lgservice.pojos.CommandOutput;
import org.geant.lgservice.pojos.Coordinates;
import org.geant.lgservice.pojos.Router; import org.geant.lgservice.pojos.Router;
import org.hibernate.result.Output;
import org.junit.Before; import org.junit.Before;
import org.junit.Test; import org.junit.Test;
import org.mockito.Mockito;
import java.util.Collections; import java.util.Collections;
import java.util.Map; import java.util.Map;
...@@ -17,25 +15,30 @@ import java.util.Map; ...@@ -17,25 +15,30 @@ import java.util.Map;
import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThat;
import static org.mockito.ArgumentMatchers.any; import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean; import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.*; import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.reset;
import static org.mockito.Mockito.when;
public class LookingGlassServiceImplTest { public class LookingGlassServiceImplTest {
public static final String TEST_ROUTER_JSON = "{\"name\":\"router.geant.org\"}";
private static final ObjectMapper MAPPER = new ObjectMapper();
private CommandExecutor commandExecutor = mock(CommandExecutor.class); private CommandExecutor commandExecutor = mock(CommandExecutor.class);
private LookingGlassServiceImpl subject = new LookingGlassServiceImpl(null, commandExecutor); private LookingGlassServiceImpl subject = new LookingGlassServiceImpl(null, commandExecutor);
private Router router;
@Before @Before
@SneakyThrows
public void setup() { public void setup() {
reset(commandExecutor); reset(commandExecutor);
router = MAPPER.readValue(TEST_ROUTER_JSON, Router.class);
} }
@Test @Test
public void testQuery() { public void testQuery() {
Router router = Router.builder()
.name("router.geant.org")
.build();
Command command = new Command(); Command command = new Command();
String arguments = "some args"; String arguments = "some args";
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment