[Task] Set local database as default file server provider (#3282)

Co-authored-by: yinyijun <yingey2011>
Co-authored-by: aias00 <liuhongyu@apache.org>
Co-authored-by: yinyijun <yinyijun6@mgtv.com>
Co-authored-by: tomsun28 <tomsun28@outlook.com>
This commit is contained in:
Sherlock Yin
2025-04-22 22:32:04 +08:00
committed by GitHub
co-authored by yinyijun aias00 yinyijun tomsun28
parent b14bc6569f
commit 227666dd46
10 changed files with 35 additions and 21 deletions
@@ -27,6 +27,7 @@ import org.apache.hertzbeat.common.entity.job.Job;
import org.apache.hertzbeat.common.entity.job.Metrics;
import org.apache.hertzbeat.common.entity.job.protocol.Protocol;
import org.apache.hertzbeat.common.entity.message.CollectRep;
import org.apache.hertzbeat.manager.dao.DefineDao;
import org.apache.hertzbeat.manager.service.impl.AppServiceImpl;
import org.apache.hertzbeat.manager.service.impl.ObjectStoreConfigServiceImpl;
import org.junit.jupiter.api.Assertions;
@@ -34,6 +35,7 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.MockitoAnnotations;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
@@ -63,10 +65,13 @@ public abstract class AbstractCollectE2eTest {
private Timeout timeout;
@Mock
private Job job;
@Mock
private DefineDao defineDao;
public void setUp() throws Exception {
// Initialize mocks
MockitoAnnotations.openMocks(this);
when(defineDao.findAll()).thenReturn(new ArrayList<>());
when(timeout.task()).thenReturn(timerJob);
when(timerJob.getJob()).thenReturn(job);
metricsCollect = new MetricsCollect(mock(Metrics.class), timeout, mock(CollectDataDispatch.class), null, List.of());
@@ -78,6 +83,7 @@ public abstract class AbstractCollectE2eTest {
/**
* Validate metrics collection, check if the metrics values are not empty <br/>
*
* @param metricsDef metrics definition
* @param metricName metric name
* @return metrics data
@@ -518,7 +518,7 @@ public class AppServiceImpl implements AppService, InitializingBean {
*/
private void refreshStore(ObjectStoreDTO<?> objectStoreConfig) {
if (objectStoreConfig == null) {
appDefineStore = new LocalFileAppDefineStoreImpl();
appDefineStore = new DatabaseAppDefineStoreImpl();
} else {
if (objectStoreConfig.getType() == ObjectStoreDTO.Type.OBS) {
appDefineStore = new ObjectStoreAppDefineStoreImpl();
@@ -17,13 +17,8 @@
package org.apache.hertzbeat.manager.service;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
import java.util.Collections;
import org.apache.hertzbeat.common.entity.manager.Monitor;
import org.apache.hertzbeat.manager.dao.DefineDao;
import org.apache.hertzbeat.manager.dao.MonitorDao;
import org.apache.hertzbeat.manager.service.impl.AppServiceImpl;
import org.apache.hertzbeat.manager.service.impl.ObjectStoreConfigServiceImpl;
@@ -35,6 +30,15 @@ import org.mockito.InjectMocks;
import org.mockito.Mock;
import org.mockito.junit.jupiter.MockitoExtension;
import java.util.ArrayList;
import java.util.Collections;
import static org.junit.jupiter.api.Assertions.assertDoesNotThrow;
import static org.junit.jupiter.api.Assertions.assertThrows;
import static org.mockito.ArgumentMatchers.anyLong;
import static org.mockito.ArgumentMatchers.anyString;
import static org.mockito.Mockito.when;
/**
* Test case for {@link AppService}
*/
@@ -47,6 +51,9 @@ class AppServiceTest {
@Mock
private MonitorDao monitorDao;
@Mock
private DefineDao defineDao;
@Mock
private WarehouseService warehouseService;
@@ -55,6 +62,7 @@ class AppServiceTest {
@BeforeEach
void setUp() throws Exception {
when(defineDao.findAll()).thenReturn(new ArrayList<>());
appService.afterPropertiesSet();
}
+1 -1
View File
@@ -18,7 +18,7 @@
*/
export class ObjectStore<T> {
type: ObjectStoreType = ObjectStoreType.FILE;
type: ObjectStoreType = ObjectStoreType.DATABASE;
config!: T;
appDefineStoreType!: ObjectStoreType;
}
@@ -31,8 +31,8 @@
[nzDropdownStyle]="{ 'font-weight': 'bolder', 'font-size': 'larger' }"
(ngModelChange)="onChange()"
>
<nz-option [nzValue]="ObjectStoreType.FILE" [nzLabel]="'settings.object-store.type.file' | i18n"></nz-option>
<nz-option [nzValue]="ObjectStoreType.DATABASE" [nzLabel]="'settings.object-store.type.database' | i18n"></nz-option>
<nz-option [nzValue]="ObjectStoreType.FILE" [nzLabel]="'settings.object-store.type.file' | i18n"></nz-option>
<nz-option [nzValue]="ObjectStoreType.OBS" [nzLabel]="'settings.object-store.type.obs' | i18n"></nz-option>
</nz-select>
</nz-form-control>
+2 -2
View File
@@ -786,8 +786,8 @@
"settings.object-store.obs.secretKey": "SecretKey",
"settings.object-store.obs.secretKey.placeholder": "Access Key Secret of HUAWEI CLOUD",
"settings.object-store.type": "File Server Provider",
"settings.object-store.type.database": "Local database",
"settings.object-store.type.file": "Local file (default)",
"settings.object-store.type.database": "Local database (default)",
"settings.object-store.type.file": "Local file",
"settings.object-store.type.obs": "HUAWEI CLOUD OBS",
"settings.server": "Message Server Setting",
"settings.server.email": "Email Server",
+2 -2
View File
@@ -786,8 +786,8 @@
"settings.object-store.obs.secretKey": "SecretKey",
"settings.object-store.obs.secretKey.placeholder": "HUAWEI CLOUDのAccess Key Secret",
"settings.object-store.type": "ファイルサーバープロバイダー",
"settings.object-store.type.database": "ローカルデータベース",
"settings.object-store.type.file": "ローカルファイル(デフォルト)",
"settings.object-store.type.database": "ローカルデータベース(デフォルト)",
"settings.object-store.type.file": "ローカルファイル",
"settings.object-store.type.obs": "HUAWEI CLOUD OBS",
"settings.server": "メッセージサーバー設定",
"settings.server.email": "メールサーバー",
+4 -4
View File
@@ -808,8 +808,8 @@
"settings.system-config.ok": "Confirmar Atualização",
"settings.object-store": "Configuração do Servidor de Arquivos",
"settings.object-store.type": "Provedor do Servidor de Arquivos",
"settings.object-store.type.file": "Arquivo local (padrão)",
"settings.object-store.type.database": "Banco de dados local",
"settings.object-store.type.file": "Arquivo local",
"settings.object-store.type.database": "Banco de dados local (padrão)",
"settings.object-store.type.obs": "HUAWEI CLOUD OBS",
"settings.object-store.obs.accessKey": "AccessKey",
"settings.object-store.obs.accessKey.placeholder": "Access Key ID da HUAWEI CLOUD",
@@ -1364,8 +1364,8 @@
"settings.system-config.ok": "Confirmar Atualização",
"settings.object-store": "Configuração do Servidor de Arquivos",
"settings.object-store.type": "Provedor do Servidor de Arquivos",
"settings.object-store.type.file": "Arquivo local (padrão)",
"settings.object-store.type.database": "Banco de dados local",
"settings.object-store.type.file": "Arquivo local",
"settings.object-store.type.database": "Banco de dados local (padrão)",
"settings.object-store.type.obs": "HUAWEI CLOUD OBS",
"settings.object-store.obs.accessKey": "AccessKey",
"settings.object-store.obs.accessKey.placeholder": "Access Key ID da HUAWEI CLOUD",
+2 -2
View File
@@ -786,8 +786,8 @@
"settings.object-store.obs.secretKey": "SecretKey",
"settings.object-store.obs.secretKey.placeholder": "华为云的AccessKeySecret",
"settings.object-store.type": "文件服务提供商",
"settings.object-store.type.database": "本地数据库",
"settings.object-store.type.file": "本地文件(默认)",
"settings.object-store.type.database": "本地数据库(默认)",
"settings.object-store.type.file": "本地文件",
"settings.object-store.type.obs": "华为云OBS",
"settings.server": "消息服务配置",
"settings.server.email": "邮件服务器",
+2 -2
View File
@@ -785,8 +785,8 @@
"settings.object-store.obs.secretKey": "SecretKey",
"settings.object-store.obs.secretKey.placeholder": "華為雲的AccessKeySecret",
"settings.object-store.type": "文件服務提供商",
"settings.object-store.type.database": "本地數據庫",
"settings.object-store.type.file": "本地文件(默認)",
"settings.object-store.type.database": "本地數據庫(默認)",
"settings.object-store.type.file": "本地文件",
"settings.object-store.type.obs": "華為雲OBS",
"settings.server": "消息服務配置",
"settings.server.email": "郵件服務器",