This is an automated email from the ASF dual-hosted git repository. xiangying pushed a commit to branch branch-0.5.0 in repository https://gitbox.apache.org/repos/asf/pulsar-manager.git
commit 54228cbd4c151c1d9d4e52056110f7a93366f2ef Author: hrzzzz <[email protected]> AuthorDate: Thu Jun 1 23:39:10 2023 +0800 feat: Support different environments to use different tokens (#500) Co-authored-by: ruihongzhou <[email protected]> (cherry picked from commit ee83cd22c99c44091b3b37054cdcffec4284dadf) --- front-end/src/lang/en.js | 4 +++ front-end/src/lang/zh.js | 4 +++ .../src/views/management/environments/index.vue | 28 +++++++++++---- .../manager/controller/EnvironmentsController.java | 4 +-- .../pulsar/manager/entity/EnvironmentEntity.java | 1 + .../pulsar/manager/mapper/EnvironmentsMapper.java | 14 ++++---- .../manager/service/EnvironmentCacheService.java | 14 ++++++++ .../pulsar/manager/service/PulsarAdminService.java | 1 + .../manager/service/impl/BrokersServiceImpl.java | 9 ++++- .../service/impl/EnvironmentCacheServiceImpl.java | 14 ++++++++ .../service/impl/PulsarAdminServiceImpl.java | 41 ++++++++++++++++++++-- src/main/resources/META-INF/sql/herddb-schema.sql | 3 +- src/main/resources/META-INF/sql/mysql-schema.sql | 1 + .../resources/META-INF/sql/postgresql-schema.sql | 1 + src/main/resources/META-INF/sql/sqlite-schema.sql | 1 + .../dao/EnvironmentsRepositoryImplTest.java | 6 ++++ 16 files changed, 126 insertions(+), 20 deletions(-) diff --git a/front-end/src/lang/en.js b/front-end/src/lang/en.js index 1161a62..5e01669 100644 --- a/front-end/src/lang/en.js +++ b/front-end/src/lang/en.js @@ -763,10 +763,14 @@ export default { updateEnvNameLabel: 'Environment Name', updateEnvServiceUrlPlaceHolder: 'Please input environment service url', updateEnvBookieUrlPlaceHolder: 'Please input environment bookie url', + updateEnvTokenPlaceHolder: 'Please input environment token', newEnvBookieUrlPlaceHolder: 'Please input environment bookie url', + newEnvTokenPlaceHolder: 'Please input environment token', updateEnvServiceUrlLabel: 'Service URL', updateEnvBookieUrlLabel: 'Bookie URL', + updateEnvTokenLabel: "Token", newEnvBookieUrlLabel: 'Bookie URL', + newEnvTokenLabel: 'Token', deleteEnvDialogCaption: 'Delete Environment', deleteEnvDialogText: 'Are you sure you want to delete this environment?', envNameIsRequired: 'Environment Name is required', diff --git a/front-end/src/lang/zh.js b/front-end/src/lang/zh.js index 610d2ba..fe7ec7a 100644 --- a/front-end/src/lang/zh.js +++ b/front-end/src/lang/zh.js @@ -757,14 +757,18 @@ export default { newEnvNameLabel: 'Environment Name', newEnvServiceUrlPlaceHolder: 'Please input environment service url', newEnvBookieUrlPlaceHolder: 'Please input environment bookie url', + newEnvTokenPlaceHolder: 'Please input environment token', newEnvServiceUrlLabel: 'Service URL', newEnvBookieUrlLabel: 'Bookie URL', + newEnvTokenLabel: 'Token', updateEnvDialogCaption: 'Update Environment', updateEnvNameLabel: 'Environment Name', updateEnvServiceUrlPlaceHolder: 'Please input environment service url', updateEnvBookieUrlPlaceHolder: 'Please input environment bookie url', + updateEnvTokenPlaceHolder: 'Please input environment token', updateEnvServiceUrlLabel: 'Service URL', updateEnvBookieUrlLabel: 'Bookie URL', + updateEnvTokenLabel: "Token", deleteEnvDialogCaption: 'Delete Environment', deleteEnvDialogText: 'Are you sure you want to delete this environment?', envNameIsRequired: 'Environment Name is required', diff --git a/front-end/src/views/management/environments/index.vue b/front-end/src/views/management/environments/index.vue index 2aea2d7..383544e 100644 --- a/front-end/src/views/management/environments/index.vue +++ b/front-end/src/views/management/environments/index.vue @@ -67,6 +67,10 @@ <el-input v-model="form.bookie" :placeholder="$t('env.newEnvBookieUrlPlaceHolder')"/> </el-form-item> + <el-form-item v-if="dialogStatus==='create'" :label="$t('env.newEnvTokenLabel')" prop="token"> + <el-input v-model="form.token" :placeholder="$t('env.newEnvTokenPlaceHolder')"/> + </el-form-item> + <el-form-item v-if="dialogStatus==='update'" :label="$t('env.updateEnvNameLabel')"> <el-tag type="primary" size="medium">{{ form.environment }}</el-tag> </el-form-item> @@ -77,6 +81,11 @@ <el-form-item v-if="dialogStatus==='update'" :label="$t('env.updateEnvBookieUrlLabel')" prop="bookie"> <el-input v-model="form.bookie" :placeholder="$t('env.updateEnvBookieUrlPlaceHolder')"/> </el-form-item> + + <el-form-item v-if="dialogStatus==='update'" :label="$t('env.updateEnvTokenLabel')" prop="token"> + <el-input v-model="form.token" :placeholder="$t('env.updateEnvTokenPlaceHolder')"/> + </el-form-item> + <el-form-item v-if="dialogStatus==='delete'"> <h4>{{ $t('env.deleteEnvDialogText') }}</h4> </el-form-item> @@ -111,19 +120,22 @@ form: { environment: '', broker: '', - bookie: '' + bookie: '', + token: null }, temp: { 'name': '', 'broker': '', - 'bookie': '' + 'bookie': '', + 'token': '', }, superUser: false, roles: [], rules: { environment: [{ required: true, message: this.$i18n.t('env.envNameIsRequired'), trigger: 'blur' }], broker: [{ required: true, message: this.$i18n.t('env.serviceUrlIsRequired'), trigger: 'blur' }], - bookie: [{ required: true, message: this.$i18n.t('env.bookieUrlIsRequired'), trigger: 'blur' }] + bookie: [{ required: true, message: this.$i18n.t('env.bookieUrlIsRequired'), trigger: 'blur' }], + token: [{ required: false }] } } }, @@ -145,7 +157,8 @@ this.environmentList.push({ 'environment': response.data.data[i].name, 'broker': response.data.data[i].broker, - 'bookie': response.data.data[i].bookie + 'bookie': response.data.data[i].bookie, + 'token': response.data.data[i].token }) } }) @@ -166,6 +179,7 @@ this.form.environment = row.environment this.form.broker = row.broker this.form.bookie = row.bookie + this.form.token = row.token this.dialogFormVisible = true this.dialogStatus = 'update' }, @@ -190,7 +204,8 @@ const data = { 'name': this.form.environment, 'broker': this.form.broker, - 'bookie': this.form.bookie + 'bookie': this.form.bookie, + 'token': this.form.token } putEnvironment(data).then(response => { if (!response.data) return @@ -243,7 +258,8 @@ const data = { 'name': this.form.environment, 'broker': this.form.broker, - 'bookie': this.form.bookie + 'bookie': this.form.bookie, + 'token': this.form.token } updateEnvironment(data).then(response => { if (!response.data) return diff --git a/src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java b/src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java index 4b8662f..a0ce1a7 100644 --- a/src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java +++ b/src/main/java/org/apache/pulsar/manager/controller/EnvironmentsController.java @@ -120,7 +120,7 @@ public class EnvironmentsController { return ResponseEntity.ok(result); } try { - pulsarAdminService.clusters(environmentEntity.getBroker()).getClusters(); + pulsarAdminService.clusters(environmentEntity.getBroker(), environmentEntity.getToken()).getClusters(); } catch (PulsarAdminException e) { log.error("Failed to get clusters list.", e); result.put("error", "This environment is error. Please check it"); @@ -147,7 +147,7 @@ public class EnvironmentsController { return ResponseEntity.ok(result); } try { - pulsarAdminService.clusters(environmentEntity.getBroker()).getClusters(); + pulsarAdminService.clusters(environmentEntity.getBroker(), environmentEntity.getToken()).getClusters(); } catch (PulsarAdminException e) { log.error("Failed to get clusters list.", e); result.put("error", "This environment is error. Please check it"); diff --git a/src/main/java/org/apache/pulsar/manager/entity/EnvironmentEntity.java b/src/main/java/org/apache/pulsar/manager/entity/EnvironmentEntity.java index 26d8483..23007af 100644 --- a/src/main/java/org/apache/pulsar/manager/entity/EnvironmentEntity.java +++ b/src/main/java/org/apache/pulsar/manager/entity/EnvironmentEntity.java @@ -27,4 +27,5 @@ public class EnvironmentEntity { private String name; private String broker; private String bookie; + private String token; } diff --git a/src/main/java/org/apache/pulsar/manager/mapper/EnvironmentsMapper.java b/src/main/java/org/apache/pulsar/manager/mapper/EnvironmentsMapper.java index b017856..9f2f26f 100644 --- a/src/main/java/org/apache/pulsar/manager/mapper/EnvironmentsMapper.java +++ b/src/main/java/org/apache/pulsar/manager/mapper/EnvironmentsMapper.java @@ -22,28 +22,28 @@ import java.util.List; @Mapper public interface EnvironmentsMapper { - @Insert("INSERT INTO environments(name,broker,bookie) VALUES(#{name},#{broker},#{bookie})") + @Insert("INSERT INTO environments(name,broker,bookie,token) VALUES(#{name},#{broker},#{bookie},#{token})") void insert(EnvironmentEntity environmentEntity); - @Select("SELECT name,broker,bookie FROM environments where broker=#{broker}") + @Select("SELECT name,broker,bookie,token FROM environments where broker=#{broker}") EnvironmentEntity findByBroker(String broker); - @Select("SELECT name,broker,bookie FROM environments where name=#{name}") + @Select("SELECT name,broker,bookie,token FROM environments where name=#{name}") EnvironmentEntity findByName(String name); - @Select("SELECT name,broker,bookie FROM environments") + @Select("SELECT name,broker,bookie,token FROM environments") Page<EnvironmentEntity> findEnvironmentsList(); @Select({"<script>", - "SELECT name,broker,bookie FROM environments", + "SELECT name,broker,bookie,token FROM environments", "WHERE name IN <foreach collection='nameList' item='name' open='(' separator=',' close=')'> #{name} </foreach>" + "</script>"}) Page<EnvironmentEntity> findEnvironmentsListByMultiName(@Param("nameList") List<String> nameList); - @Select("SELECT name,broker,bookie FROM environments") + @Select("SELECT name,broker,bookie,token FROM environments") List<EnvironmentEntity> getAllEnvironments(); - @Update("UPDATE environments set broker=#{broker},bookie=#{bookie} where name=#{name}") + @Update("UPDATE environments set broker=#{broker},bookie=#{bookie},token=#{token} where name=#{name}") void update(EnvironmentEntity environmentEntity); @Delete("DELETE FROM environments WHERE name=#{name}") diff --git a/src/main/java/org/apache/pulsar/manager/service/EnvironmentCacheService.java b/src/main/java/org/apache/pulsar/manager/service/EnvironmentCacheService.java index eb33f93..f6ba388 100644 --- a/src/main/java/org/apache/pulsar/manager/service/EnvironmentCacheService.java +++ b/src/main/java/org/apache/pulsar/manager/service/EnvironmentCacheService.java @@ -50,6 +50,20 @@ public interface EnvironmentCacheService { */ String getServiceUrl(String environment, String cluster); + /** + * Return the environment name for a given service url. + * @param serviceUrl + * @return + */ + String getEnvironment(String serviceUrl); + + /** + * Set the mapping of serviceUrl and environment. + * @param serviceUrl + * @param environment + */ + void setServiceUrlEnvironmentMapping(String serviceUrl, String environment); + /** * Refresh all the environments. */ diff --git a/src/main/java/org/apache/pulsar/manager/service/PulsarAdminService.java b/src/main/java/org/apache/pulsar/manager/service/PulsarAdminService.java index ba2838f..0afdb6f 100644 --- a/src/main/java/org/apache/pulsar/manager/service/PulsarAdminService.java +++ b/src/main/java/org/apache/pulsar/manager/service/PulsarAdminService.java @@ -27,6 +27,7 @@ public interface PulsarAdminService { PulsarAdmin getPulsarAdmin(String url); BrokerStats brokerStats(String url); Clusters clusters(String url); + Clusters clusters(String url, String token); Brokers brokers(String url); Tenants tenants(String url); Namespaces namespaces(String url); diff --git a/src/main/java/org/apache/pulsar/manager/service/impl/BrokersServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/BrokersServiceImpl.java index e632e85..2fedd11 100644 --- a/src/main/java/org/apache/pulsar/manager/service/impl/BrokersServiceImpl.java +++ b/src/main/java/org/apache/pulsar/manager/service/impl/BrokersServiceImpl.java @@ -19,6 +19,7 @@ import org.apache.pulsar.client.admin.PulsarAdminException; import org.apache.pulsar.common.policies.data.FailureDomain; import org.apache.pulsar.manager.controller.exception.PulsarAdminOperationException; import org.apache.pulsar.manager.service.BrokersService; +import org.apache.pulsar.manager.service.EnvironmentCacheService; import org.apache.pulsar.manager.service.PulsarAdminService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; @@ -37,9 +38,12 @@ public class BrokersServiceImpl implements BrokersService { private final PulsarAdminService pulsarAdminService; + private final EnvironmentCacheService environmentCacheService; + @Autowired - public BrokersServiceImpl(PulsarAdminService pulsarAdminService) { + public BrokersServiceImpl(PulsarAdminService pulsarAdminService, EnvironmentCacheService environmentCacheService) { this.pulsarAdminService = pulsarAdminService; + this.environmentCacheService = environmentCacheService; } @@ -67,7 +71,10 @@ public class BrokersServiceImpl implements BrokersService { throw pulsarAdminOperationException; } + String environment = environmentCacheService.getEnvironment(requestHost); + for (String broker: brokersList) { + environmentCacheService.setServiceUrlEnvironmentMapping("http://" + broker, environment); Map<String, Object> brokerEntity = Maps.newHashMap(); List<String> failureDomain = this.getFailureDomain(broker, failureDomains); brokerEntity.put("broker", broker); diff --git a/src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java index cce6ba0..4ea07aa 100644 --- a/src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java +++ b/src/main/java/org/apache/pulsar/manager/service/impl/EnvironmentCacheServiceImpl.java @@ -51,11 +51,14 @@ public class EnvironmentCacheServiceImpl implements EnvironmentCacheService { private final PulsarAdminService pulsarAdminService; + private final Map<String, String> serviceUrlEnvironmentMap; + @Autowired public EnvironmentCacheServiceImpl(EnvironmentsRepository environmentsRepository, PulsarAdminService pulsarAdminService) { this.environmentsRepository = environmentsRepository; this.environments = new ConcurrentHashMap<>(); this.pulsarAdminService = pulsarAdminService; + this.serviceUrlEnvironmentMap = new ConcurrentHashMap<>(); } @Override @@ -93,6 +96,16 @@ public class EnvironmentCacheServiceImpl implements EnvironmentCacheService { } } + @Override + public void setServiceUrlEnvironmentMapping(String serviceUrl, String environment) { + serviceUrlEnvironmentMap.put(serviceUrl, environment); + } + + @Override + public String getEnvironment(String serviceUrl) { + return serviceUrlEnvironmentMap.get(serviceUrl); + } + private String pickOneServiceUrl(String webServiceUrl) { if (webServiceUrl.contains(",")) { String[] webServiceUrlList = webServiceUrl.split(","); @@ -215,6 +228,7 @@ public class EnvironmentCacheServiceImpl implements EnvironmentCacheService { environment.getName(), (e) -> new ConcurrentHashMap<>()); clusters.put(cluster, clusterData); + serviceUrlEnvironmentMap.put(environment.getBroker(), environment.getName()); log.info("Successfully loaded cluster data for cluster {} @ environment {} : {}", cluster, environment.getName(), clusterData); return clusterData; diff --git a/src/main/java/org/apache/pulsar/manager/service/impl/PulsarAdminServiceImpl.java b/src/main/java/org/apache/pulsar/manager/service/impl/PulsarAdminServiceImpl.java index 3d89d75..c269dfa 100644 --- a/src/main/java/org/apache/pulsar/manager/service/impl/PulsarAdminServiceImpl.java +++ b/src/main/java/org/apache/pulsar/manager/service/impl/PulsarAdminServiceImpl.java @@ -17,6 +17,7 @@ import javax.annotation.PreDestroy; import java.net.URL; import java.util.HashMap; import java.util.Map; +import java.util.Optional; import java.util.Set; import java.util.concurrent.CompletableFuture; @@ -35,7 +36,11 @@ import org.apache.pulsar.client.api.AuthenticationDataProvider; import org.apache.pulsar.client.api.AuthenticationFactory; import org.apache.pulsar.client.api.PulsarClientException; import org.apache.pulsar.manager.controller.exception.PulsarAdminOperationException; +import org.apache.pulsar.manager.entity.EnvironmentEntity; +import org.apache.pulsar.manager.entity.EnvironmentsRepository; +import org.apache.pulsar.manager.service.EnvironmentCacheService; import org.apache.pulsar.manager.service.PulsarAdminService; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; @@ -63,6 +68,12 @@ public class PulsarAdminServiceImpl implements PulsarAdminService { private Map<String, PulsarAdmin> pulsarAdmins = new HashMap<>(); + @Autowired + private EnvironmentsRepository environmentsRepository; + + @Autowired + private EnvironmentCacheService environmentCacheService; + @PreDestroy public void destroy() { pulsarAdmins.values().forEach(value -> value.close()); @@ -70,11 +81,15 @@ public class PulsarAdminServiceImpl implements PulsarAdminService { public synchronized PulsarAdmin getPulsarAdmin(String url) { if (!pulsarAdmins.containsKey(url)) { - pulsarAdmins.put(url, this.createPulsarAdmin(url)); + pulsarAdmins.put(url, this.createPulsarAdmin(url, null)); } return pulsarAdmins.get(url); } + public PulsarAdmin getPulsarAdmin(String url, String token) { + return this.createPulsarAdmin(url, token); + } + public BrokerStats brokerStats(String url) { return getPulsarAdmin(url).brokerStats(); } @@ -83,6 +98,11 @@ public class PulsarAdminServiceImpl implements PulsarAdminService { return getPulsarAdmin(url).clusters(); } + @Override + public Clusters clusters(String url, String token) { + return getPulsarAdmin(url, token).clusters(); + } + public Brokers brokers(String url) { return getPulsarAdmin(url).brokers(); } @@ -129,13 +149,28 @@ public class PulsarAdminServiceImpl implements PulsarAdminService { return result; } - private PulsarAdmin createPulsarAdmin(String url) { + private String getEnvironmentToken(String url) { + Optional<EnvironmentEntity> optionalEnvironmentEntity = environmentsRepository.findByBroker(url); + if (optionalEnvironmentEntity.isPresent()) { + return optionalEnvironmentEntity.get().getToken(); + } + String environment = environmentCacheService.getEnvironment(url); + Optional<EnvironmentEntity> environmentEntityOptional = environmentsRepository.findByName(environment); + return environmentEntityOptional.map(EnvironmentEntity::getToken).orElse(null); + } + + private PulsarAdmin createPulsarAdmin(String url, String token) { try { log.info("Create Pulsar Admin instance. url={}, authPlugin={}, authParams={}, tlsAllowInsecureConnection={}, tlsTrustCertsFilePath={}, tlsEnableHostnameVerification={}", url, authPlugin, authParams, tlsAllowInsecureConnection, tlsTrustCertsFilePath, tlsEnableHostnameVerification); PulsarAdminBuilder pulsarAdminBuilder = PulsarAdmin.builder(); pulsarAdminBuilder.serviceHttpUrl(url); - if (StringUtils.isNotBlank(pulsarJwtToken)) { + if (null == token) { + token = getEnvironmentToken(url); + } + if (StringUtils.isNotBlank(token)) { + pulsarAdminBuilder.authentication(AuthenticationFactory.token(token)); + } else if (StringUtils.isNotBlank(pulsarJwtToken)) { pulsarAdminBuilder.authentication(AuthenticationFactory.token(pulsarJwtToken)); } else { pulsarAdminBuilder.authentication(authPlugin, authParams); diff --git a/src/main/resources/META-INF/sql/herddb-schema.sql b/src/main/resources/META-INF/sql/herddb-schema.sql index 4d3e9c7..6dd985d 100644 --- a/src/main/resources/META-INF/sql/herddb-schema.sql +++ b/src/main/resources/META-INF/sql/herddb-schema.sql @@ -16,7 +16,8 @@ CREATE TABLE IF NOT EXISTS environments ( name varchar(256) NOT NULL PRIMARY KEY, broker varchar(1024) NOT NULL, - bookie varchar(1024) NOT NULL + bookie varchar(1024) NOT NULL, + token varchar(1024) ); CREATE TABLE IF NOT EXISTS topics_stats ( diff --git a/src/main/resources/META-INF/sql/mysql-schema.sql b/src/main/resources/META-INF/sql/mysql-schema.sql index 7b09dd1..5474f11 100644 --- a/src/main/resources/META-INF/sql/mysql-schema.sql +++ b/src/main/resources/META-INF/sql/mysql-schema.sql @@ -20,6 +20,7 @@ CREATE TABLE IF NOT EXISTS environments ( name varchar(256) NOT NULL, broker varchar(1024) NOT NULL, bookie varchar(1024) NOT NULL, + token varchar(1024), CONSTRAINT PK_name PRIMARY KEY (name), UNIQUE (broker) )ENGINE=InnoDB CHARACTER SET utf8; diff --git a/src/main/resources/META-INF/sql/postgresql-schema.sql b/src/main/resources/META-INF/sql/postgresql-schema.sql index a208030..40d1d32 100644 --- a/src/main/resources/META-INF/sql/postgresql-schema.sql +++ b/src/main/resources/META-INF/sql/postgresql-schema.sql @@ -20,6 +20,7 @@ CREATE TABLE IF NOT EXISTS environments ( name varchar(256) NOT NULL, broker varchar(1024) NOT NULL, bookie varchar(1024) NOT NULL, + token varchar(1024), CONSTRAINT PK_name PRIMARY KEY (name), UNIQUE (broker) ); diff --git a/src/main/resources/META-INF/sql/sqlite-schema.sql b/src/main/resources/META-INF/sql/sqlite-schema.sql index 8d54416..ce8a134 100644 --- a/src/main/resources/META-INF/sql/sqlite-schema.sql +++ b/src/main/resources/META-INF/sql/sqlite-schema.sql @@ -16,6 +16,7 @@ CREATE TABLE IF NOT EXISTS environments ( name varchar(256) NOT NULL, broker varchar(1024) NOT NULL, bookie varchar(1024) NOT NULL, + token varchar(1024), CONSTRAINT PK_name PRIMARY KEY (name), UNIQUE (broker) ); diff --git a/src/test/java/org/apache/pulsar/manager/dao/EnvironmentsRepositoryImplTest.java b/src/test/java/org/apache/pulsar/manager/dao/EnvironmentsRepositoryImplTest.java index ff7397e..9f2c6e0 100644 --- a/src/test/java/org/apache/pulsar/manager/dao/EnvironmentsRepositoryImplTest.java +++ b/src/test/java/org/apache/pulsar/manager/dao/EnvironmentsRepositoryImplTest.java @@ -47,12 +47,14 @@ public class EnvironmentsRepositoryImplTest { environmentEntity.setName("test-environment"); environmentEntity.setBroker("http://localhost:8080"); environmentEntity.setBookie("http://localhost:8000"); + environmentEntity.setToken("token"); environmentsRepository.save(environmentEntity); Page<EnvironmentEntity> environmentEntityPage = environmentsRepository.getEnvironmentsList(1, 1); environmentEntityPage.count(true); environmentEntityPage.getResult().forEach((result) -> { Assert.assertEquals("test-environment", result.getName()); Assert.assertEquals("http://localhost:8080", result.getBroker()); + Assert.assertEquals("token", result.getToken()); environmentsRepository.remove(result.getName()); }); } @@ -63,21 +65,25 @@ public class EnvironmentsRepositoryImplTest { environmentEntity.setName("test-environment"); environmentEntity.setBroker("https://localhost:8080"); environmentEntity.setBookie("https://localhost:8000"); + environmentEntity.setToken("token"); environmentsRepository.save(environmentEntity); Optional<EnvironmentEntity> environmentEntityOptionalGet = environmentsRepository .findByBroker("https://localhost:8080"); EnvironmentEntity environmentEntityGet = environmentEntityOptionalGet.get(); Assert.assertEquals("test-environment", environmentEntityGet.getName()); Assert.assertEquals("https://localhost:8080", environmentEntityGet.getBroker()); + Assert.assertEquals("token", environmentEntityGet.getToken()); environmentEntity.setBroker("https://localhost:8081"); environmentEntity.setBookie("https://localhost:8001"); + environmentEntity.setToken("token1"); environmentsRepository.update(environmentEntity); Optional<EnvironmentEntity> environmentEntityOptionalUpdate = environmentsRepository .findByName("test-environment"); EnvironmentEntity environmentEntityUpdate = environmentEntityOptionalUpdate.get(); Assert.assertEquals("test-environment", environmentEntityUpdate.getName()); Assert.assertEquals("https://localhost:8081", environmentEntityUpdate.getBroker()); + Assert.assertEquals("token1", environmentEntityUpdate.getToken()); environmentsRepository.remove(environmentEntityUpdate.getName()); }
