import { UI_RESET_GENERIC, UI_RESET_LOGINOUT, UI_RESET_SESSIONS } from '@/api/api';
import { reqPath } from '@/api/reqPath';
import { IGeneric } from '@/model/base-interface';
import { AxiosResponse } from 'axios';
import $http from '@/utils/http-service';
import { urlReplace } from '@/utils/utils';
import { getStoreData, loading, setStoreData } from '@/utils/composition';
import { computed } from 'vue';
import { createPinia, setActivePinia } from 'pinia';
const pinia = createPinia();
setActivePinia(pinia);
const multihost = computed(() => getStoreData('loct', 'multihost'));
export function deleteSession(sid: string) {
const allowHttpDelete = getStoreData('loct', 'allowHttpDelete');
const request = allowHttpDelete
? $http.delete(urlReplace(UI_RESET_LOGINOUT, { sid }))
: $http.post(UI_RESET_SESSIONS, { RequestMethod: 'DELETE', SessionId: sid });
return request;
}
export function getGenericInfo(): Promise<IGeneric> {
return new Promise((resolve, reject) => {
$http.get(UI_RESET_GENERIC).then((res: AxiosResponse) => {
const result: IGeneric = Object.create(null);
const data = res.data as any;
result.armSupport = data.ArmSupported;
result.copyRight = data.Copyright;
result.currentTime = data.CurrentTime;
sessionStorage.setItem('DateTime', data.CurrentTime);
result.customizedId = data.CustomizedId;
result.fanSupport = data.FanSupported;
result.fdmSupport = data.FDMSupported;
result.healthSummary = {
critical: data.HealthSummary.NumberOfCriticalAlarm,
major: data.HealthSummary.NumberOfMajorAlarm,
minor: data.HealthSummary.NumberOfMinorAlarm
};
result.ibmaRunning = data.SmsSupported && data.BMARunningStatus === 'Running';
result.ibmaSupport = data.SmsSupported;
result.licenseSupport = data.LicSerSupported;
result.partitySupport = data.FusionPartSupported;
result.powerState = data.PowerState;
result.smsSupport = data.SmsSupport;
result.spSupport = data.SPSupported;
result.storageConfigReady = data.StorageConfigReady;
result.uidState = data.IndicatorLEDState;
result.usbSupport = data.USBSupported;
result.tceSupport = data.TCESupported;
result.tpcmSupport = data.TPCMSupported;
result.secureBootVerificationEnabled = data.SecureBootVerificationEnabled;
result.basicSafeRun = data.BasicSafeRunEnabled;
result.observabilitySupported = data.ObservabilitySupported;
result.customeCertFlag = data.CustomeCertFlag;
result.powerPredictSupported = data.PowerPredictSupported;
result.multihostSupported = data.MultihostSupported;
result.kvmSupported = data.KVMSupported;
result.vmmSupported = data.VMMSupported;
result.vncSupported = data.VNCSupported;
result.snmpSupported = data.SnmpSupported;
result.rmcpSupported = data.IPMILANSupported;
result.computeSupported = data.GlobalDomainSupported;
result.sensorSupported = data.SensorLocationSupported;
result.assetChangeEnabled = data.AssetChangeEnabled;
result.powerSupplySupported = data.PowerSupplySupported;
result.powerConverterSupported = data.PowerConverterSupported;
result.dynamicEnergySavingSupported = data.DynamicEnergySavingSupported;
result.langSupported = data.LanguageSetSupported;
result.syslog = data.Syslog;
result.SystemIds = data.SystemIds || [];
result.tempSystemIds = data.SystemIds;
result.biosSupported = data.BiosSupported;
result.processorSupported = data.ProcessorSupported;
result.memorySupported = data.MemorySupported;
result.storageSupported = data.StorageSupported;
result.networkAdapterSupported = data.NetworkAdapterSupported;
result.snmpTrapSupported = data.SNMPTrapSupported;
result.fruListSupported = data.FruListSupported;
result.pcieInterfaceSupported = data.PCIeInterfaceSupported;
result.powerWaveRecordSupported = data.PowerWaveRecordSupported;
result.smartCoolingSupported = data.SmartCoolingSupported;
result.serialPortDataSupported = data.SerialPortDataSupported;
result.nmiSupported = data.NMISupported;
result.snmpTrapBobSupported = data.SNMPTrapBobSupported;
result.globalDomainPowerState = data.GlobalDomainPowerState;
result.powerCtrlCapabilities = data.PowerCtrlCapabilities;
result.superPodSupported = data.SuperPodSupported;
result.allowHttpDelete = data.AllowHttpDelete;
resolve(result);
});
});
}
export function setPowerState(param: { type: string; systemId?: string }): Promise<any> {
let obj = {
OperateType: param?.type || ''
} as any;
if (param?.type.indexOf('_') > -1) {
obj.OperateType = param.type.split('_')[0];
obj.FruID = Number(param.type.split('_')[1]);
} else {
obj.FruID = 0;
}
if (param.systemId) {
obj.SystemId = param.systemId;
}
let mul = {
OperateType: param.type
};
let params = !multihost.value || param.systemId ? obj : mul;
return new Promise((resolve, reject) => {
$http
.post(
!multihost.value || param.systemId
? reqPath.ibmc.getPowerControl
: reqPath.ibmc.getMultiPowerControl,
params
)
.then(
res => {
resolve(param.type);
},
error => {
reject(error);
}
);
});
}
export function setUIDState(param: { IndicatorLEDState: string }): Promise<any> {
return new Promise((resolve, reject) => {
$http.patch(UI_RESET_GENERIC, param).then(
() => {
resolve(param.IndicatorLEDState);
},
error => {
reject(error);
}
);
});
}