mirror of
https://github.com/harvester/harvester-ui-extension.git
synced 2025-12-14 13:41:46 +00:00
64 lines
1.7 KiB
JavaScript
64 lines
1.7 KiB
JavaScript
import { clone } from '@shell/utils/object';
|
|
import LogOutput from '@shell/models/logging.banzaicloud.io.output';
|
|
import { HCI } from '../../types';
|
|
import { PRODUCT_NAME as HARVESTER_PRODUCT } from '../../config/harvester';
|
|
import { FLOW_TYPE } from '../../config/harvester-map';
|
|
|
|
export default class HarvesterLogOutput extends LogOutput {
|
|
get _detailLocation() {
|
|
const schema = this.$getters['schemaFor'](this.type);
|
|
|
|
const id = this.id?.replace(/.*\//, '');
|
|
|
|
return {
|
|
name: `${ HARVESTER_PRODUCT }-c-cluster-resource${ schema?.attributes?.namespaced ? '-namespace' : '' }-id`,
|
|
params: {
|
|
product: HARVESTER_PRODUCT,
|
|
cluster: this.$rootGetters['clusterId'],
|
|
resource: this.type,
|
|
id,
|
|
namespace: this.metadata.namespace,
|
|
},
|
|
};
|
|
}
|
|
|
|
get detailLocation() {
|
|
const detailLocation = clone(this._detailLocation);
|
|
|
|
detailLocation.params.resource = HCI.OUTPUT;
|
|
|
|
return detailLocation;
|
|
}
|
|
|
|
get doneOverride() {
|
|
const detailLocation = clone(this._detailLocation);
|
|
|
|
delete detailLocation.params.namespace;
|
|
delete detailLocation.params.id;
|
|
detailLocation.params.resource = HCI.OUTPUT;
|
|
detailLocation.name = `${ HARVESTER_PRODUCT }-c-cluster-resource`;
|
|
|
|
return detailLocation;
|
|
}
|
|
|
|
get parentNameOverride() {
|
|
return this.$rootGetters['i18n/t'](`typeLabel."${ HCI.OUTPUT }"`, { count: 1 })?.trim();
|
|
}
|
|
|
|
get parentLocationOverride() {
|
|
return this.doneOverride;
|
|
}
|
|
|
|
get url() {
|
|
return this.detailLocation;
|
|
}
|
|
|
|
get loggingType() {
|
|
if (this.spec.loggingRef === 'harvester-kube-audit-log-ref') {
|
|
return FLOW_TYPE.AUDIT;
|
|
}
|
|
|
|
return FLOW_TYPE.LOGGING;
|
|
}
|
|
}
|