diff --git a/backend/api/server/targets/[id].put.ts b/backend/api/server/targets/[id].put.ts index d2ed623..694d3ca 100644 --- a/backend/api/server/targets/[id].put.ts +++ b/backend/api/server/targets/[id].put.ts @@ -4,7 +4,7 @@ import { refreshServerTimer } from '../../../utils/server-scheduler' export default defineEventHandler(async (event) => { const targetId = getRouterParam(event, 'id') const body = await readBody(event) - const { name, host, port, username, auth_type, is_active } = body + const { server_name, server_ip, glances_url, is_active, collect_interval, physical_location } = body if (!targetId) { throw createError({ @@ -15,15 +15,15 @@ export default defineEventHandler(async (event) => { const changes = await execute(` UPDATE server_targets - SET name = $1, - host = $2, - port = $3, - username = $4, - auth_type = $5, - is_active = $6, + SET server_name = $1, + server_ip = $2, + glances_url = $3, + is_active = $4, + collect_interval = $5, + physical_location = $6, updated_at = NOW() WHERE target_id = $7 - `, [name, host, port || 22, username, auth_type || 'password', is_active ? 1 : 0, targetId]) + `, [server_name, server_ip, glances_url, is_active ? 1 : 0, collect_interval || 60, physical_location || '운영서버실', targetId]) // 스케줄러에 반영 refreshServerTimer(Number(targetId)) diff --git a/backend/api/server/targets/index.post.ts b/backend/api/server/targets/index.post.ts index f67258b..84c4e05 100644 --- a/backend/api/server/targets/index.post.ts +++ b/backend/api/server/targets/index.post.ts @@ -3,7 +3,7 @@ import { refreshServerTimer } from '../../../utils/server-scheduler' export default defineEventHandler(async (event) => { const body = await readBody(event) - const { server_name, server_ip, glances_url, is_active = 1, collect_interval = 60 } = body + const { server_name, server_ip, glances_url, is_active = 1, collect_interval = 60, physical_location = '운영서버실' } = body if (!server_name || !server_ip || !glances_url) { throw createError({ @@ -13,10 +13,10 @@ export default defineEventHandler(async (event) => { } const result = await queryOne<{ target_id: number }>(` - INSERT INTO server_targets (server_name, server_ip, glances_url, is_active, collect_interval) - VALUES ($1, $2, $3, $4, $5) + INSERT INTO server_targets (server_name, server_ip, glances_url, is_active, collect_interval, physical_location) + VALUES ($1, $2, $3, $4, $5, $6) RETURNING target_id - `, [server_name, server_ip, glances_url, is_active ? 1 : 0, collect_interval]) + `, [server_name, server_ip, glances_url, is_active ? 1 : 0, collect_interval, physical_location]) const targetId = result?.target_id diff --git a/frontend/server/list.vue b/frontend/server/list.vue index 0da6450..8e7b7a1 100644 --- a/frontend/server/list.vue +++ b/frontend/server/list.vue @@ -71,6 +71,9 @@ style="width: 80px;" min="10" /> + + {{ loc }} + 활성 @@ -93,7 +96,8 @@ 서버명 IP Glances URL - 주기(초) + 주기 + 위치 상태 관리 @@ -117,6 +121,12 @@ {{ target.collect_interval }} + + + {{ loc }} + + {{ target.physical_location || '운영서버실' }} + @@ -151,6 +161,7 @@ interface ServerTarget { glances_url: string is_active: number collect_interval: number + physical_location: string } interface SchedulerStatus { @@ -159,6 +170,11 @@ interface SchedulerStatus { total_targets: number } +const locationOptions = [ + '운영서버실', '개발서버실', '터보사무실', '백업실', + '기타1', '기타2', '기타3', '기타4' +] + const targets = ref([]) const currentTime = ref('') const editingId = ref(null) @@ -173,7 +189,8 @@ const newTarget = ref({ server_ip: '', glances_url: '', is_active: true, - collect_interval: 60 + collect_interval: 60, + physical_location: '운영서버실' }) const editTarget = ref({ @@ -181,7 +198,8 @@ const editTarget = ref({ server_ip: '', glances_url: '', is_active: true, - collect_interval: 60 + collect_interval: 60, + physical_location: '운영서버실' }) const canAdd = computed(() => @@ -243,7 +261,7 @@ async function addTarget() { method: 'POST', body: newTarget.value }) - newTarget.value = { server_name: '', server_ip: '', glances_url: '', is_active: true, collect_interval: 60 } + newTarget.value = { server_name: '', server_ip: '', glances_url: '', is_active: true, collect_interval: 60, physical_location: '운영서버실' } await fetchTargets() await fetchSchedulerStatus() } catch (err) { @@ -258,7 +276,8 @@ function startEdit(target: ServerTarget) { server_ip: target.server_ip, glances_url: target.glances_url, is_active: !!target.is_active, - collect_interval: target.collect_interval || 60 + collect_interval: target.collect_interval || 60, + physical_location: target.physical_location || '운영서버실' } }