From 82899d3a3e8bd74341f474f317972fb10b8611a9 Mon Sep 17 00:00:00 2001 From: Alexander Lovett <alexander.lovett@geant.org> Date: Thu, 5 Mar 2020 14:41:26 +0000 Subject: [PATCH] [LGR-73] - Remove router end point --- CHANGELOG.md | 5 +- pom.xml | 34 +--------- .../org/geant/lgservice/config/AppConfig.java | 12 ---- .../org/geant/lgservice/model/Equipment.java | 67 ------------------- .../org/geant/lgservice/pojos/Router.java | 26 +------ .../repository/EquipmentRepository.java | 10 --- .../rest/LookingGlassRestController.java | 12 ---- .../services/LookingGlassService.java | 2 - .../services/LookingGlassServiceImpl.java | 5 -- .../lgservice/utils/LookingGlassHelper.java | 37 ---------- .../ecmr/CallableCommandExecutorTest.java | 18 +++-- .../services/LookingGlassServiceImplTest.java | 21 +++--- 12 files changed, 31 insertions(+), 218 deletions(-) delete mode 100755 src/main/java/org/geant/lgservice/model/Equipment.java delete mode 100755 src/main/java/org/geant/lgservice/repository/EquipmentRepository.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 25a056c..9bb86c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,4 +1,7 @@ -* 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 # 2.0.12 diff --git a/pom.xml b/pom.xml index 1dd100d..9baf244 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ <groupId>org.geant</groupId> <artifactId>looking-glass-service</artifactId> - <version>2.0.13.RELEASE</version> + <version>2.0.14-SNAPSHOT</version> <packaging>jar</packaging> <name>looking-glass-service</name> @@ -25,25 +25,6 @@ <java.version>1.8</java.version> </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> <dependency> <groupId>org.springframework.boot</groupId> @@ -59,19 +40,6 @@ <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </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> <groupId>org.springframework.boot</groupId> diff --git a/src/main/java/org/geant/lgservice/config/AppConfig.java b/src/main/java/org/geant/lgservice/config/AppConfig.java index 1471630..254b775 100644 --- a/src/main/java/org/geant/lgservice/config/AppConfig.java +++ b/src/main/java/org/geant/lgservice/config/AppConfig.java @@ -30,18 +30,6 @@ public class AppConfig implements Serializable { @Value("${configuration.publickey.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}") private String metadataURL; diff --git a/src/main/java/org/geant/lgservice/model/Equipment.java b/src/main/java/org/geant/lgservice/model/Equipment.java deleted file mode 100755 index c08a815..0000000 --- a/src/main/java/org/geant/lgservice/model/Equipment.java +++ /dev/null @@ -1,67 +0,0 @@ -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(); - } - -} diff --git a/src/main/java/org/geant/lgservice/pojos/Router.java b/src/main/java/org/geant/lgservice/pojos/Router.java index 19ee044..6975c43 100644 --- a/src/main/java/org/geant/lgservice/pojos/Router.java +++ b/src/main/java/org/geant/lgservice/pojos/Router.java @@ -1,32 +1,10 @@ package org.geant.lgservice.pojos; -import lombok.AllArgsConstructor; -import lombok.Builder; -import lombok.Data; -import lombok.NoArgsConstructor; +import lombok.Getter; -@Data -@NoArgsConstructor -@AllArgsConstructor -@Builder +@Getter public class Router { - private Coordinates coordinates; - private String name; - private String authType; - - private String city; - - private String country; - - private String popName; - - private String popCountryCode; - - private boolean selected; - - private String abbreviatedName; - } diff --git a/src/main/java/org/geant/lgservice/repository/EquipmentRepository.java b/src/main/java/org/geant/lgservice/repository/EquipmentRepository.java deleted file mode 100755 index 058a2c6..0000000 --- a/src/main/java/org/geant/lgservice/repository/EquipmentRepository.java +++ /dev/null @@ -1,10 +0,0 @@ -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> { - -} diff --git a/src/main/java/org/geant/lgservice/rest/LookingGlassRestController.java b/src/main/java/org/geant/lgservice/rest/LookingGlassRestController.java index 8e86c0a..94973e0 100644 --- a/src/main/java/org/geant/lgservice/rest/LookingGlassRestController.java +++ b/src/main/java/org/geant/lgservice/rest/LookingGlassRestController.java @@ -10,7 +10,6 @@ import org.geant.lgservice.pojos.CommandOutput; import org.geant.lgservice.pojos.Group; import org.geant.lgservice.pojos.QueryInputRequest; import org.geant.lgservice.pojos.QueryResponse; -import org.geant.lgservice.pojos.Router; import org.geant.lgservice.security.LGUser; import org.geant.lgservice.services.BuildService; import org.geant.lgservice.services.LookingGlassService; @@ -51,17 +50,6 @@ public class LookingGlassRestController { 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") public ResponseEntity<?> getLoggedInUser() { Object principal = SecurityContextHolder.getContext().getAuthentication().getPrincipal(); diff --git a/src/main/java/org/geant/lgservice/services/LookingGlassService.java b/src/main/java/org/geant/lgservice/services/LookingGlassService.java index fb565f7..ee92c9d 100644 --- a/src/main/java/org/geant/lgservice/services/LookingGlassService.java +++ b/src/main/java/org/geant/lgservice/services/LookingGlassService.java @@ -11,8 +11,6 @@ import org.geant.lgservice.security.LGUser; public interface LookingGlassService { - List<Router> getAllRouters(final LGUser user); - List<Group> getAllCommands(final LGUser user); Map<String, CommandOutput> submitQuery(final List<Router> selectedRouters, final Command selectedCommand, diff --git a/src/main/java/org/geant/lgservice/services/LookingGlassServiceImpl.java b/src/main/java/org/geant/lgservice/services/LookingGlassServiceImpl.java index 2965cdd..ab6ac1a 100644 --- a/src/main/java/org/geant/lgservice/services/LookingGlassServiceImpl.java +++ b/src/main/java/org/geant/lgservice/services/LookingGlassServiceImpl.java @@ -30,11 +30,6 @@ public class LookingGlassServiceImpl implements LookingGlassService { return lookingGlassHelper.loadAllCommands(user); } - @Override - public List<Router> getAllRouters(final LGUser user) { - return lookingGlassHelper.loadAllRouters(user); - } - @Override public Map<String, CommandOutput> submitQuery(final List<Router> selectedRouters, final Command selectedCommand, final String arguments, final boolean displayAsXML) { diff --git a/src/main/java/org/geant/lgservice/utils/LookingGlassHelper.java b/src/main/java/org/geant/lgservice/utils/LookingGlassHelper.java index 8078d98..11a5f49 100755 --- a/src/main/java/org/geant/lgservice/utils/LookingGlassHelper.java +++ b/src/main/java/org/geant/lgservice/utils/LookingGlassHelper.java @@ -1,57 +1,20 @@ package org.geant.lgservice.utils; import java.util.*; -import java.util.stream.Collectors; -import java.util.stream.StreamSupport; 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.Router; -import org.geant.lgservice.repository.EquipmentRepository; import org.geant.lgservice.security.LGUser; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import static java.util.Spliterator.ORDERED; import static java.util.Spliterators.spliteratorUnknownSize; import static java.util.stream.StreamSupport.stream; -import static org.geant.lgservice.utils.LGRole.INTERNAL; @Component public class LookingGlassHelper { 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) { return new CommandsParser().getCommandsFromXML(COMMANDS_FILE_NAME, user); } diff --git a/src/test/java/org/geant/lgservice/ecmr/CallableCommandExecutorTest.java b/src/test/java/org/geant/lgservice/ecmr/CallableCommandExecutorTest.java index 610bec5..34da57a 100644 --- a/src/test/java/org/geant/lgservice/ecmr/CallableCommandExecutorTest.java +++ b/src/test/java/org/geant/lgservice/ecmr/CallableCommandExecutorTest.java @@ -2,8 +2,11 @@ package org.geant.lgservice.ecmr; 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.Router; +import org.junit.Before; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.boot.test.context.SpringBootTest; @@ -15,11 +18,18 @@ public class CallableCommandExecutorTest { public static final String TEST_ROUTER = "test-router.geant.net"; 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 public void testGetCommandWithArgumentsXML() { - Router router = new Router(); - router.setName(TEST_ROUTER); Command command = new Command(); command.setValue(TEST_COMMAND); command.setRequiresParams(true); @@ -30,8 +40,6 @@ public class CallableCommandExecutorTest { @Test public void testGetCommandWithoutArgumentsXML() { - Router router = new Router(); - router.setName(TEST_ROUTER); Command command = new Command(); command.setValue(TEST_COMMAND); command.setRequiresParams(false); @@ -42,8 +50,6 @@ public class CallableCommandExecutorTest { @Test public void testGetCommandWithoutArguments() { - Router router = new Router(); - router.setName(TEST_ROUTER); Command command = new Command(); command.setValue(TEST_COMMAND); command.setRequiresParams(false); diff --git a/src/test/java/org/geant/lgservice/services/LookingGlassServiceImplTest.java b/src/test/java/org/geant/lgservice/services/LookingGlassServiceImplTest.java index ba313f7..31ed37f 100644 --- a/src/test/java/org/geant/lgservice/services/LookingGlassServiceImplTest.java +++ b/src/test/java/org/geant/lgservice/services/LookingGlassServiceImplTest.java @@ -1,15 +1,13 @@ 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.pojos.Command; import org.geant.lgservice.pojos.CommandOutput; -import org.geant.lgservice.pojos.Coordinates; import org.geant.lgservice.pojos.Router; -import org.hibernate.result.Output; import org.junit.Before; import org.junit.Test; -import org.mockito.Mockito; import java.util.Collections; import java.util.Map; @@ -17,25 +15,30 @@ import java.util.Map; import static org.assertj.core.api.Assertions.assertThat; import static org.mockito.ArgumentMatchers.any; 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 static final String TEST_ROUTER_JSON = "{\"name\":\"router.geant.org\"}"; + private static final ObjectMapper MAPPER = new ObjectMapper(); + private CommandExecutor commandExecutor = mock(CommandExecutor.class); private LookingGlassServiceImpl subject = new LookingGlassServiceImpl(null, commandExecutor); + private Router router; + @Before + @SneakyThrows public void setup() { reset(commandExecutor); + router = MAPPER.readValue(TEST_ROUTER_JSON, Router.class); } @Test public void testQuery() { - Router router = Router.builder() - .name("router.geant.org") - .build(); - Command command = new Command(); String arguments = "some args"; -- GitLab