blob: daf99468bd1560236bdf548de5b3033a97b75a5a [file] [log] [blame]
/*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import request from '@/utils/request'
const SPRING_BASE_URL_V2 = '/pulsar-manager/admin/v2'
const BASE_URL_V2 = '/admin/v2'
const LOOP_V2 = '/lookup/v2/topic'
export function fetchTopics(tenant, namespace, query) {
return request({
url: BASE_URL_V2 + `/persistent/${tenant}/${namespace}`,
method: 'get',
params: { query }
})
}
export function fetchTopicsByPulsarManager(tenant, namespace, query) {
return request({
url: SPRING_BASE_URL_V2 + `/topics/${tenant}/${namespace}`,
method: 'get',
params: { query }
})
}
export function fetchTopicsStatsByPulsarManager(tenant, namespace, query) {
return request({
url: SPRING_BASE_URL_V2 + `/topics/${tenant}/${namespace}/stats`,
method: 'get',
params: { query }
})
}
export function fetchPersistentPartitonsTopics(tenant, namespace) {
return request({
url: BASE_URL_V2 + `/persistent/${tenant}/${namespace}/partitioned`,
method: 'get'
})
}
export function fetchNonPersistentPartitonsTopics(tenant, namespace) {
return request({
url: BASE_URL_V2 + `/non-persistent/${tenant}/${namespace}/partitioned`,
method: 'get'
})
}
export function fetchTopicStats(persistent, tenantNamespaceTopic) {
return request({
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/stats`,
method: 'get'
})
}
export function fetchTopicStatsInternal(persistent, tenantNamespaceTopic) {
return request({
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/internalStats`,
method: 'get'
})
}
export function fetchPartitionTopicStats(persistent, tenantNamespaceTopic, perPartition) {
return request({
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/partitioned-stats?perPartition=${perPartition}`,
method: 'get'
})
}
export function putTopic(persistent, tenant, namespace, topic, data) {
var url = `/${persistent}/${tenant}/${namespace}/${topic}`
if (data > 0) {
url += '/partitions'
}
return request({
headers: { 'Content-Type': 'application/json' },
url: BASE_URL_V2 + url,
method: 'put',
data
})
}
export function putTopicByPartition(persistent, tenant, namespace, topic, data) {
return request({
headers: { 'Content-Type': 'application/json' },
url: BASE_URL_V2 + `/${persistent}/${tenant}/${namespace}/${topic}/partitions`,
method: 'put',
data
})
}
export function putNonPersistentTopic(tenant, namespace, topic) {
return request({
headers: { 'Content-Type': 'application/json' },
url: BASE_URL_V2 + `/non-persistent/${tenant}/${namespace}/${topic}`,
method: 'put'
})
}
export function putNonPersistentPartitionedTopic(tenant, namespace, topic, data) {
return request({
headers: { 'Content-Type': 'application/json' },
url: BASE_URL_V2 + `/non-persistent/${tenant}/${namespace}/${topic}`,
method: 'put',
data
})
}
export function getPartitionMetadata(tenantNamespaceTopic) {
return request({
url: BASE_URL_V2 + `/persistent/${tenantNamespaceTopic}/partitions`,
method: 'get'
})
}
export function updateTopic(tenantNamespaceTopic, data) {
return request({
headers: { 'Content-Type': 'application/json' },
url: BASE_URL_V2 + `/persistent/${tenantNamespaceTopic}/partitions`,
method: 'post',
data
})
}
export function deleteTopic(persistent, tenantNamespaceTopic) {
return deleteTopicOnCluster('', persistent, tenantNamespaceTopic)
}
export function deleteTopicOnCluster(cluster, persistent, tenantNamespaceTopic) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}`,
method: 'delete'
})
}
export function deletePartitionTopicOnCl(persistent, tenantNamespaceTopic) {
return deletePartitionTopicOnCluster('', persistent, tenantNamespaceTopic)
}
export function deletePartitionTopicOnCluster(cluster, persistent, tenantNamespaceTopic) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/partitions`,
method: 'delete'
})
}
export function getPermissionsOnCluster(cluster, persistent, tenantNamespaceTopic) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/permissions`,
method: 'get'
})
}
export function grantPermissionsOnCluster(cluster, persistent, tenantNamespaceTopic, role, data) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/permissions/${role}`,
method: 'post',
data
})
}
export function revokePermissionsOnCluster(cluster, persistent, tenantNamespaceTopic, role) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/permissions/${role}`,
method: 'delete'
})
}
export function getPermissions(tenantNamespaceTopic) {
return request({
url: BASE_URL_V2 + `/persistent/${tenantNamespaceTopic}/permissions`,
method: 'get'
})
}
export function grantPermissions(tenantNamespaceTopic, role, data) {
return request({
url: BASE_URL_V2 + `/persistent/${tenantNamespaceTopic}/permissions/${role}`,
method: 'post',
data
})
}
export function revokePermissions(tenantNamespaceTopic, role) {
return request({
url: BASE_URL_V2 + `/persistent/${tenantNamespaceTopic}/permissions/${role}`,
method: 'delete'
})
}
export function unload(persistent, tenantNamespaceTopic) {
return unloadOnCluster('', persistent, tenantNamespaceTopic)
}
export function unloadOnCluster(cluster, persistent, tenantNamespaceTopic) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/unload`,
method: 'put'
})
}
export function skip(persistent, tenantNamespaceTopic, subName, numMessages) {
return request({
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/skip/${numMessages}`,
method: 'post'
})
}
export function skipOnCluster(cluster, persistent, tenantNamespaceTopic, subName, numMessages) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/skip/${numMessages}`,
method: 'post'
})
}
export function clearBacklog(persistent, tenantNamespaceTopic, subName) {
return request({
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/skip_all`,
method: 'post'
})
}
export function clearBacklogOnCluster(cluster, persistent, tenantNamespaceTopic, subName) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/skip_all`,
method: 'post'
})
}
export function expireMessage(persistent, tenantNamespaceTopic, subName, expireTimeInSeconds) {
return request({
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/expireMessages/${expireTimeInSeconds}`,
method: 'post'
})
}
export function expireMessageOnCluster(cluster, persistent, tenantNamespaceTopic, subName, expireTimeInSeconds) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/expireMessages/${expireTimeInSeconds}`,
method: 'post'
})
}
export function expireMessagesAllSubscriptionsOnCluster(cluster, persistent, tenantNamespaceTopic, expireTimeInSeconds) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/all_subscription/expireMessages/${expireTimeInSeconds}`,
method: 'post'
})
}
export function peekMessages(persistent, tenantNamespaceTopic, subName, messagePosition) {
return request({
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/position/${messagePosition}`,
method: 'get'
})
}
export function resetCursorByTimestamp(persistent, tenantNamespaceTopic, subName, timestamp) {
return request({
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/resetcursor/${timestamp}`,
method: 'post'
})
}
export function resetCursorByTimestampOnCluster(cluster, persistent, tenantNamespaceTopic, subName, timestamp) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/resetcursor/${timestamp}`,
method: 'post'
})
}
export function resetCursorByPosition(persistent, tenantNamespaceTopic, subName, data) {
return request({
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/resetcursor`,
method: 'post',
data
})
}
export function resetCursorByPositionOnCluster(cluster, persistent, tenantNamespaceTopic, subName, data) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/subscription/${subName}/resetcursor`,
method: 'post',
data
})
}
export function resetPersistentCursor(tenantNamespaceTopic, subName, timestamp, data) {
return request({
url: BASE_URL_V2 + `/persistent/${tenantNamespaceTopic}/subscription/${subName}/resetcursor/${timestamp}`,
method: 'post',
data
})
}
export function resetNonPersistentCursor(tenantNamespaceTopic, subName, timestamp, data) {
return request({
url: BASE_URL_V2 + `/non-persistent/${tenantNamespaceTopic}/subscription/${subName}/resetcursor/${timestamp}`,
method: 'post',
data
})
}
export function terminate(persistent, tenantNamespaceTopic) {
return terminateOnCluster('', persistent, tenantNamespaceTopic)
}
export function terminateOnCluster(cluster, persistent, tenantNamespaceTopic) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/terminate`,
method: 'post'
})
}
export function compact(persistent, tenantNamespaceTopic) {
return compactOnCluster('', persistent, tenantNamespaceTopic)
}
export function compactOnCluster(cluster, persistent, tenantNamespaceTopic) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/compaction`,
method: 'put'
})
}
export function compactionStatus(persistent, tenantNamespaceTopic, data) {
return compactionStatusOnCluster('', persistent, tenantNamespaceTopic, data)
}
export function compactionStatusOnCluster(cluster, persistent, tenantNamespaceTopic, data) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/compaction`,
method: 'get',
data
})
}
export function offload(persistent, tenantNamespaceTopic, data) {
return offloadOnCluster('', persistent, tenantNamespaceTopic, data)
}
export function offloadOnCluster(cluster, persistent, tenantNamespaceTopic, data) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/offload`,
method: 'put',
data
})
}
export function offloadStatus(persistent, tenantNamespaceTopic, data) {
return offloadStatusOnCluster('', persistent, tenantNamespaceTopic, data)
}
export function offloadStatusOnCluster(cluster, persistent, tenantNamespaceTopic, data) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: BASE_URL_V2 + `/${persistent}/${tenantNamespaceTopic}/offload`,
method: 'get',
data
})
}
export function getBundleRange(persistent, tenantNamespaceTopic) {
return getBundleRangeOnCluster('', persistent, tenantNamespaceTopic)
}
export function getBundleRangeOnCluster(cluster, persistent, tenantNamespaceTopic) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: LOOP_V2 + `/${persistent}/${tenantNamespaceTopic}/bundle`,
method: 'get'
})
}
export function getTopicBroker(persistent, tenantNamespaceTopic) {
return getTopicBrokerOnCluster('', persistent, tenantNamespaceTopic)
}
export function getTopicBrokerOnCluster(cluster, persistent, tenantNamespaceTopic) {
return request({
headers: {
'Content-Type': 'application/json',
'x-pulsar-cluster': cluster
},
url: LOOP_V2 + `/${persistent}/${tenantNamespaceTopic}`,
method: 'get'
})
}