still working on frontend UI
This commit is contained in:
113
frontend/src/api/scst.ts
Normal file
113
frontend/src/api/scst.ts
Normal file
@@ -0,0 +1,113 @@
|
||||
import apiClient from './client'
|
||||
|
||||
// ============================================================================
|
||||
// Types
|
||||
// ============================================================================
|
||||
|
||||
export interface SCSTTarget {
|
||||
id: string
|
||||
iqn: string
|
||||
alias?: string
|
||||
is_active: boolean
|
||||
created_at: string
|
||||
updated_at: string
|
||||
}
|
||||
|
||||
export interface SCSTLUN {
|
||||
id: string
|
||||
target_id: string
|
||||
lun_number: number
|
||||
handler: string
|
||||
device_path: string
|
||||
device_type: string
|
||||
is_active: boolean
|
||||
created_at: string
|
||||
updated_at: string
|
||||
}
|
||||
|
||||
export interface SCSTInitiator {
|
||||
id: string
|
||||
group_id: string
|
||||
iqn: string
|
||||
is_active: boolean
|
||||
created_at: string
|
||||
updated_at: string
|
||||
}
|
||||
|
||||
export interface SCSTInitiatorGroup {
|
||||
id: string
|
||||
target_id: string
|
||||
group_name: string
|
||||
initiators: SCSTInitiator[]
|
||||
created_at: string
|
||||
updated_at: string
|
||||
}
|
||||
|
||||
export interface SCSTHandler {
|
||||
name: string
|
||||
description?: string
|
||||
}
|
||||
|
||||
export interface CreateTargetRequest {
|
||||
iqn: string
|
||||
target_type: string
|
||||
name: string
|
||||
description?: string
|
||||
single_initiator_only?: boolean
|
||||
}
|
||||
|
||||
export interface AddLUNRequest {
|
||||
device_name: string
|
||||
device_path: string
|
||||
lun_number: number
|
||||
handler_type: string
|
||||
}
|
||||
|
||||
export interface AddInitiatorRequest {
|
||||
initiator_iqn: string
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
// SCST API
|
||||
// ============================================================================
|
||||
|
||||
export const scstAPI = {
|
||||
listTargets: async (): Promise<SCSTTarget[]> => {
|
||||
const response = await apiClient.get('/scst/targets')
|
||||
return response.data.targets || []
|
||||
},
|
||||
|
||||
getTarget: async (id: string): Promise<{
|
||||
target: SCSTTarget
|
||||
luns: SCSTLUN[]
|
||||
}> => {
|
||||
const response = await apiClient.get(`/scst/targets/${id}`)
|
||||
return response.data
|
||||
},
|
||||
|
||||
createTarget: async (data: CreateTargetRequest): Promise<SCSTTarget> => {
|
||||
const response = await apiClient.post('/scst/targets', data)
|
||||
return response.data.target
|
||||
},
|
||||
|
||||
addLUN: async (targetId: string, data: AddLUNRequest): Promise<{ task_id: string }> => {
|
||||
const response = await apiClient.post(`/scst/targets/${targetId}/luns`, data)
|
||||
return response.data
|
||||
},
|
||||
|
||||
addInitiator: async (targetId: string, data: AddInitiatorRequest): Promise<{ task_id: string }> => {
|
||||
const response = await apiClient.post(`/scst/targets/${targetId}/initiators`, data)
|
||||
return response.data
|
||||
},
|
||||
|
||||
applyConfig: async (): Promise<{ task_id: string }> => {
|
||||
const response = await apiClient.post('/scst/config/apply')
|
||||
return response.data
|
||||
},
|
||||
|
||||
listHandlers: async (): Promise<SCSTHandler[]> => {
|
||||
const response = await apiClient.get('/scst/handlers')
|
||||
return response.data.handlers || []
|
||||
},
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user