diff --git a/CHANGELOG.md b/CHANGELOG.md index 25a056c532647dc2e8806b4e9ebccfcdfd91dc65..9bb86c1d681522176631e96aa83c1bfdd370f090 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 1dd100dcd082d0e1eeb019dca8f96cf5bf68a8e8..9baf244d9b0038a664e3a2e2daeba27b7d4b3eca 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 147163082c60fe7499bfcd75c8a00d59f887db2f..254b7750442def27aa55563415c398666afe4377 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 c08a8156497a528270cac3747c6a7b3154c0baaf..0000000000000000000000000000000000000000 --- 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 19ee044a55f41bd3d4fae90c1987661792252322..6975c43f3c1cb2593c5989053f93bbe020410324 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 058a2c68b85668fd86eb4e58e271dc59ab7546eb..0000000000000000000000000000000000000000 --- 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 8e86c0a643330ecacca6bfd1e12885e1a4351281..94973e050b746a00b63e0956d5e8908e7ce8b8eb 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 fb565f797475cdd6a87e05788d505fae78f95665..ee92c9d8d3438672e02b30bf82456a99f36e6390 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 2965cddf54e3f5ebc2b65b5ad3ed8e9cea678ccf..ab6ac1a706b2acd1873ff488e2ae47631a1d4439 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 8078d98428ae086efd8f2635dc788597f314b99b..11a5f495c14a775d7fee12fe1fe803abc5a03fc9 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 610bec5c79ef4b5f25d254a0e2489018675f05b7..34da57adcd13b53426bba0be22694099b5ec5151 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 ba313f7892e7071784d0847afc444adc73aab999..31ed37f8968118af8a9da59251b9ed9e8ef10958 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";