This commit is contained in:
zxr
2026-04-30 18:55:32 +08:00
parent ea9531313e
commit ea3e60c17c
25 changed files with 1729 additions and 416 deletions

View File

@@ -18,7 +18,15 @@ export interface RoomDeviceItem {
collect_method: 'api' | 'snmp'
snmp_target: string
snmp_port: number
snmp_version: 'v2c' | 'v3'
snmp_community: string
snmp_v3_security_level: string
snmp_v3_security_name: string
snmp_v3_auth_protocol: string
snmp_v3_auth_password: string
snmp_v3_priv_protocol: string
snmp_v3_priv_password: string
snmp_v3_context_name: string
snmp_timeout_ms: number
snmp_retries: number
snmp_oids: string
@@ -67,7 +75,15 @@ export interface RoomDeviceCreateData {
collect_method?: 'api' | 'snmp'
snmp_target?: string
snmp_port?: number
snmp_version?: 'v2c' | 'v3'
snmp_community?: string
snmp_v3_security_level?: string
snmp_v3_security_name?: string
snmp_v3_auth_protocol?: string
snmp_v3_auth_password?: string
snmp_v3_priv_protocol?: string
snmp_v3_priv_password?: string
snmp_v3_context_name?: string
snmp_timeout_ms?: number
snmp_retries?: number
snmp_oids?: string
@@ -87,7 +103,15 @@ export interface RoomDeviceUpdateData {
collect_method?: 'api' | 'snmp'
snmp_target?: string
snmp_port?: number
snmp_version?: 'v2c' | 'v3'
snmp_community?: string
snmp_v3_security_level?: string
snmp_v3_security_name?: string
snmp_v3_auth_protocol?: string
snmp_v3_auth_password?: string
snmp_v3_priv_protocol?: string
snmp_v3_priv_password?: string
snmp_v3_context_name?: string
snmp_timeout_ms?: number
snmp_retries?: number
snmp_oids?: string
@@ -103,7 +127,15 @@ export interface RoomDeviceCollectData {
agent_config?: string
snmp_target?: string
snmp_port?: number
snmp_version?: 'v2c' | 'v3'
snmp_community?: string
snmp_v3_security_level?: string
snmp_v3_security_name?: string
snmp_v3_auth_protocol?: string
snmp_v3_auth_password?: string
snmp_v3_priv_protocol?: string
snmp_v3_priv_password?: string
snmp_v3_context_name?: string
snmp_timeout_ms?: number
snmp_retries?: number
snmp_oids?: string

View File

@@ -22,7 +22,15 @@ export interface SecurityServiceItem {
collect_method: 'api' | 'snmp'
snmp_target: string
snmp_port: number
snmp_version: 'v2c' | 'v3'
snmp_community: string
snmp_v3_security_level: string
snmp_v3_security_name: string
snmp_v3_auth_protocol: string
snmp_v3_auth_password: string
snmp_v3_priv_protocol: string
snmp_v3_priv_password: string
snmp_v3_context_name: string
snmp_timeout_ms: number
snmp_retries: number
snmp_oids: string
@@ -75,7 +83,15 @@ export interface SecurityServiceFormData {
collect_method?: 'api' | 'snmp'
snmp_target?: string
snmp_port?: number
snmp_version?: 'v2c' | 'v3'
snmp_community?: string
snmp_v3_security_level?: string
snmp_v3_security_name?: string
snmp_v3_auth_protocol?: string
snmp_v3_auth_password?: string
snmp_v3_priv_protocol?: string
snmp_v3_priv_password?: string
snmp_v3_context_name?: string
snmp_timeout_ms?: number
snmp_retries?: number
snmp_oids?: string
@@ -138,7 +154,15 @@ export interface SecurityServicePatchData {
agent_config?: string
snmp_target?: string
snmp_port?: number
snmp_version?: 'v2c' | 'v3'
snmp_community?: string
snmp_v3_security_level?: string
snmp_v3_security_name?: string
snmp_v3_auth_protocol?: string
snmp_v3_auth_password?: string
snmp_v3_priv_protocol?: string
snmp_v3_priv_password?: string
snmp_v3_context_name?: string
snmp_timeout_ms?: number
snmp_retries?: number
snmp_oids?: string

View File

@@ -22,7 +22,15 @@ export interface StorageItem {
collect_method: 'api' | 'snmp'
snmp_target: string
snmp_port: number
snmp_version: 'v2c' | 'v3'
snmp_community: string
snmp_v3_security_level: string
snmp_v3_security_name: string
snmp_v3_auth_protocol: string
snmp_v3_auth_password: string
snmp_v3_priv_protocol: string
snmp_v3_priv_password: string
snmp_v3_context_name: string
snmp_timeout_ms: number
snmp_retries: number
snmp_oids: string
@@ -75,7 +83,15 @@ export interface StorageCreateData {
collect_method?: 'api' | 'snmp'
snmp_target?: string
snmp_port?: number
snmp_version?: 'v2c' | 'v3'
snmp_community?: string
snmp_v3_security_level?: string
snmp_v3_security_name?: string
snmp_v3_auth_protocol?: string
snmp_v3_auth_password?: string
snmp_v3_priv_protocol?: string
snmp_v3_priv_password?: string
snmp_v3_context_name?: string
snmp_timeout_ms?: number
snmp_retries?: number
snmp_oids?: string
@@ -103,7 +119,15 @@ export interface StorageUpdateData {
collect_method?: 'api' | 'snmp'
snmp_target?: string
snmp_port?: number
snmp_version?: 'v2c' | 'v3'
snmp_community?: string
snmp_v3_security_level?: string
snmp_v3_security_name?: string
snmp_v3_auth_protocol?: string
snmp_v3_auth_password?: string
snmp_v3_priv_protocol?: string
snmp_v3_priv_password?: string
snmp_v3_context_name?: string
snmp_timeout_ms?: number
snmp_retries?: number
snmp_oids?: string
@@ -316,7 +340,15 @@ export interface StoragePatchData {
agent_config?: string
snmp_target?: string
snmp_port?: number
snmp_version?: 'v2c' | 'v3'
snmp_community?: string
snmp_v3_security_level?: string
snmp_v3_security_name?: string
snmp_v3_auth_protocol?: string
snmp_v3_auth_password?: string
snmp_v3_priv_protocol?: string
snmp_v3_priv_password?: string
snmp_v3_context_name?: string
snmp_timeout_ms?: number
snmp_retries?: number
snmp_oids?: string

View File

@@ -0,0 +1,21 @@
import { request } from '@/api/request'
export interface TrafficRuntimeStatus {
status?: 'running' | 'stopped' | string
message?: string
}
export const fetchTrafficRuntimeStatus = () =>
request.get<{ code: number; details?: TrafficRuntimeStatus; message?: string }>(
'/dc-network/v1/api/traffic/status',
)
export const startTrafficRuntime = () =>
request.post<{ code: number; details?: TrafficRuntimeStatus; message?: string }>(
'/dc-network/v1/api/traffic/start',
)
export const stopTrafficRuntime = () =>
request.post<{ code: number; details?: TrafficRuntimeStatus; message?: string }>(
'/dc-network/v1/api/traffic/stop',
)

120
src/api/ops/traffic.ts Normal file
View File

@@ -0,0 +1,120 @@
import { request } from '@/api/request'
export interface TrafficListItem {
id: number
topology_id: number
link_id: number
node_id: string
time_granularity: string
time_point: string
in_bytes: number
out_bytes: number
total_bytes: number
in_packets: number
out_packets: number
total_packets: number
connections: number
avg_latency: number
packet_loss: number
bandwidth: number
bandwidth_peak: number
protocol_stats?: string
top_sources?: string
}
export interface TrafficListResponse {
total: number
page: number
page_size: number
data: TrafficListItem[]
}
export interface TrafficSummary {
total_in_bytes: number
total_out_bytes: number
total_bytes: number
avg_bandwidth: number
peak_bandwidth: number
total_connections: number
avg_packet_loss: number
}
export interface TrafficTrendPoint {
time: string
in_bytes: number
out_bytes: number
total_bytes: number
}
export interface TrafficTopItem {
node_id: string
total_in_bytes: number
total_out_bytes: number
total_bytes: number
total_packets: number
}
export interface TrafficDashboardResponse {
direction: {
inbound_percent: number
outbound_percent: number
}
protocols: Array<{
name: string
percent: number
}>
top_applications: Array<{
name: string
in_bytes: number
out_bytes: number
total_bytes: number
share_percent: number
sessions: number
port: string
}>
top_sources: Array<{
ip: string
name: string
total_bytes: number
total_packets: number
}>
bandwidth: Array<{
name: string
percent: number
}>
}
export const fetchTrafficList = (params?: Record<string, any>) =>
request.get<{ code: number; details?: TrafficListResponse; message?: string }>('/DC-Control/v1/traffic', {
params,
})
export const fetchTrafficSummary = (params?: Record<string, any>) =>
request.get<{ code: number; details?: TrafficSummary; message?: string }>(
'/DC-Control/v1/traffic/summary',
{ params },
)
export const fetchTrafficTrend = (params?: Record<string, any>) =>
request.get<{ code: number; details?: { data?: TrafficTrendPoint[] }; message?: string }>(
'/DC-Control/v1/traffic/trend',
{ params },
)
export const fetchTopTraffic = (params?: Record<string, any>) =>
request.get<{ code: number; details?: { data?: TrafficTopItem[] }; message?: string }>(
'/DC-Control/v1/traffic/top',
{ params },
)
export const fetchRealtimeTraffic = (params?: Record<string, any>) =>
request.get<{ code: number; details?: { bandwidth?: number; connections?: number }; message?: string }>(
'/DC-Control/v1/traffic/realtime',
{ params },
)
export const fetchTrafficDashboard = (params?: Record<string, any>) =>
request.get<{ code: number; details?: TrafficDashboardResponse; message?: string }>(
'/DC-Control/v1/traffic/dashboard',
{ params },
)