fix: update configValid state to ineligible in var.ini and adjust rel… (#1268)

…ated tests

- Changed `configValid` value from "yes" to "ineligible" in `var.ini`.
- Updated tests in `emhttp.test.ts` and `var.test.ts` to reflect the new
state.
- Refactored `var.ts` to handle the new `configErrorState` logic based
on `configValid`.
- Adjusted `config.resolver.ts` to return the correct error state.

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

- **New Features**
- Enhanced configuration status reporting to indicate when settings are
ineligible, improving clarity on configuration validity.

- **Chores**
  - Updated recorded download times to maintain accurate logging.
- Refined the installation process with streamlined dependency linkage
and improved script readability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Zack Spear <hi@zackspear.com>
This commit is contained in:
Eli Bosley
2025-03-24 14:19:30 -04:00
committed by GitHub
parent 5958d33fce
commit cc85fba207
13 changed files with 1686 additions and 329 deletions

View File

@@ -87,7 +87,7 @@ shareAvahiSMBModel="Xserve"
shfs_logging="1"
safeMode="no"
startMode="Normal"
configValid="yes"
configValid="ineligible"
joinStatus="Not joined"
deviceCount="4"
flashGUID="0000-0000-0000-000000000000"

View File

@@ -949,160 +949,160 @@ test('After init returns values from cfg file for all fields', async () => {
]
`);
expect(varState).toMatchInlineSnapshot(`
{
"bindMgt": false,
"cacheNumDevices": NaN,
"cacheSbNumDisks": NaN,
"comment": "Dev Server",
"configState": "yes",
"configValid": true,
"csrfToken": "0000000000000000",
"defaultFsType": "xfs",
"deviceCount": 4,
"domain": "",
"domainLogin": "Administrator",
"domainShort": "",
"enableFruit": "no",
"flashGuid": "0000-0000-0000-000000000000",
"flashProduct": "DataTraveler_3.0",
"flashVendor": "KINGSTON",
"fsCopyPrcnt": 0,
"fsNumMounted": 0,
"fsNumUnmountable": 0,
"fsProgress": "Autostart disabled",
"fsState": "Stopped",
"fsUnmountableMask": "",
"fuseDirectio": "auto",
"fuseDirectioDefault": "auto",
"fuseDirectioStatus": "default",
"fuseRemember": "330",
"fuseRememberDefault": "330",
"fuseRememberStatus": "default",
"fuseUseino": "yes",
"hideDotFiles": false,
"joinStatus": "Not joined",
"localMaster": true,
"localTld": "local",
"luksKeyfile": "/tmp/unraid/keyfile",
"maxArraysz": 30,
"maxCachesz": 30,
"mdColor": "green-blink",
"mdNumDisabled": 1,
"mdNumDisks": 4,
"mdNumErased": 0,
"mdNumInvalid": 1,
"mdNumMissing": 0,
"mdNumNew": 0,
"mdNumStripes": 1280,
"mdNumStripesDefault": 1280,
"mdNumStripesStatus": "default",
"mdQueueLimit": "80",
"mdQueueLimitDefault": "80",
"mdQueueLimitStatus": "default",
"mdResync": 0,
"mdResyncAction": "check P",
"mdResyncCorr": "0",
"mdResyncDb": "0",
"mdResyncDt": "0",
"mdResyncPos": 0,
"mdResyncSize": 438960096,
"mdScheduler": "auto",
"mdSchedulerDefault": "auto",
"mdSchedulerStatus": "default",
"mdState": "STOPPED",
"mdSyncLimit": "5",
"mdSyncLimitDefault": "5",
"mdSyncLimitStatus": "default",
"mdSyncThresh": NaN,
"mdSyncThreshDefault": NaN,
"mdSyncWindow": NaN,
"mdSyncWindowDefault": NaN,
"mdVersion": "2.9.14",
"mdWriteMethod": NaN,
"mdWriteMethodDefault": "auto",
"mdWriteMethodStatus": "default",
"name": "Tower",
"nrRequests": NaN,
"nrRequestsDefault": NaN,
"nrRequestsStatus": "default",
"ntpServer1": "time1.google.com",
"ntpServer2": "time2.google.com",
"ntpServer3": "time3.google.com",
"ntpServer4": "time4.google.com",
"pollAttributes": "1800",
"pollAttributesDefault": "1800",
"pollAttributesStatus": "default",
"port": 80,
"portssh": 22,
"portssl": 443,
"porttelnet": 23,
"queueDepth": "auto",
"regCheck": "Valid",
"regExp": "",
"regFile": "/app/dev/Unraid.net/Pro.key",
"regGen": "0",
"regGuid": "13FE-4200-C300-58C372A52B19",
"regState": "PRO",
"regTm": "1833409182",
"regTm2": "0",
"regTo": "Eli Bosley",
"regTy": "PRO",
"reservedNames": "parity,parity2,parity3,diskP,diskQ,diskR,disk,disks,flash,boot,user,user0,disk0,disk1,disk2,disk3,disk4,disk5,disk6,disk7,disk8,disk9,disk10,disk11,disk12,disk13,disk14,disk15,disk16,disk17,disk18,disk19,disk20,disk21,disk22,disk23,disk24,disk25,disk26,disk27,disk28,disk29,disk30,disk31",
"safeMode": false,
"sbClean": true,
"sbEvents": 173,
"sbName": "/boot/config/super.dat",
"sbNumDisks": 5,
"sbState": "1",
"sbSyncErrs": 0,
"sbSyncExit": "0",
"sbSynced": 1586819259,
"sbSynced2": 1586822456,
"sbUpdated": "1596079143",
"sbVersion": "2.9.13",
"security": "user",
"shareAvahiEnabled": true,
"shareAvahiSmbModel": "Xserve",
"shareAvahiSmbName": "%h",
"shareCacheEnabled": true,
"shareCacheFloor": "2000000",
"shareCount": 0,
"shareDisk": "yes",
"shareInitialGroup": "Domain Users",
"shareInitialOwner": "Administrator",
"shareMoverActive": false,
"shareMoverLogging": false,
"shareMoverSchedule": "40 3 * * *",
"shareNfsCount": 0,
"shareNfsEnabled": false,
"shareSmbCount": 1,
"shareSmbEnabled": true,
"shareSmbMode": "workgroup",
"shareUser": "e",
"shareUserExclude": "",
"shareUserInclude": "",
"shfsLogging": "1",
"shutdownTimeout": 90,
"spindownDelay": 0,
"spinupGroups": false,
"startArray": false,
"startMode": "Normal",
"startPage": "Main",
"sysArraySlots": 24,
"sysCacheSlots": NaN,
"sysFlashSlots": 1,
"sysModel": "Dell R710",
"timeZone": "Australia/Adelaide",
"useNetbios": "yes",
"useNtp": true,
"useSsh": true,
"useSsl": null,
"useTelnet": true,
"useUpnp": true,
"useWsd": "no",
"version": "6.11.2",
"workgroup": "WORKGROUP",
"wsdOpt": "",
}
`);
{
"bindMgt": false,
"cacheNumDevices": NaN,
"cacheSbNumDisks": NaN,
"comment": "Dev Server",
"configErrorState": "INELIGIBLE",
"configValid": false,
"csrfToken": "0000000000000000",
"defaultFsType": "xfs",
"deviceCount": 4,
"domain": "",
"domainLogin": "Administrator",
"domainShort": "",
"enableFruit": "no",
"flashGuid": "0000-0000-0000-000000000000",
"flashProduct": "DataTraveler_3.0",
"flashVendor": "KINGSTON",
"fsCopyPrcnt": 0,
"fsNumMounted": 0,
"fsNumUnmountable": 0,
"fsProgress": "Autostart disabled",
"fsState": "Stopped",
"fsUnmountableMask": "",
"fuseDirectio": "auto",
"fuseDirectioDefault": "auto",
"fuseDirectioStatus": "default",
"fuseRemember": "330",
"fuseRememberDefault": "330",
"fuseRememberStatus": "default",
"fuseUseino": "yes",
"hideDotFiles": false,
"joinStatus": "Not joined",
"localMaster": true,
"localTld": "local",
"luksKeyfile": "/tmp/unraid/keyfile",
"maxArraysz": 30,
"maxCachesz": 30,
"mdColor": "green-blink",
"mdNumDisabled": 1,
"mdNumDisks": 4,
"mdNumErased": 0,
"mdNumInvalid": 1,
"mdNumMissing": 0,
"mdNumNew": 0,
"mdNumStripes": 1280,
"mdNumStripesDefault": 1280,
"mdNumStripesStatus": "default",
"mdQueueLimit": "80",
"mdQueueLimitDefault": "80",
"mdQueueLimitStatus": "default",
"mdResync": 0,
"mdResyncAction": "check P",
"mdResyncCorr": "0",
"mdResyncDb": "0",
"mdResyncDt": "0",
"mdResyncPos": 0,
"mdResyncSize": 438960096,
"mdScheduler": "auto",
"mdSchedulerDefault": "auto",
"mdSchedulerStatus": "default",
"mdState": "STOPPED",
"mdSyncLimit": "5",
"mdSyncLimitDefault": "5",
"mdSyncLimitStatus": "default",
"mdSyncThresh": NaN,
"mdSyncThreshDefault": NaN,
"mdSyncWindow": NaN,
"mdSyncWindowDefault": NaN,
"mdVersion": "2.9.14",
"mdWriteMethod": NaN,
"mdWriteMethodDefault": "auto",
"mdWriteMethodStatus": "default",
"name": "Tower",
"nrRequests": NaN,
"nrRequestsDefault": NaN,
"nrRequestsStatus": "default",
"ntpServer1": "time1.google.com",
"ntpServer2": "time2.google.com",
"ntpServer3": "time3.google.com",
"ntpServer4": "time4.google.com",
"pollAttributes": "1800",
"pollAttributesDefault": "1800",
"pollAttributesStatus": "default",
"port": 80,
"portssh": 22,
"portssl": 443,
"porttelnet": 23,
"queueDepth": "auto",
"regCheck": "Valid",
"regExp": "",
"regFile": "/app/dev/Unraid.net/Pro.key",
"regGen": "0",
"regGuid": "13FE-4200-C300-58C372A52B19",
"regState": "PRO",
"regTm": "1833409182",
"regTm2": "0",
"regTo": "Eli Bosley",
"regTy": "PRO",
"reservedNames": "parity,parity2,parity3,diskP,diskQ,diskR,disk,disks,flash,boot,user,user0,disk0,disk1,disk2,disk3,disk4,disk5,disk6,disk7,disk8,disk9,disk10,disk11,disk12,disk13,disk14,disk15,disk16,disk17,disk18,disk19,disk20,disk21,disk22,disk23,disk24,disk25,disk26,disk27,disk28,disk29,disk30,disk31",
"safeMode": false,
"sbClean": true,
"sbEvents": 173,
"sbName": "/boot/config/super.dat",
"sbNumDisks": 5,
"sbState": "1",
"sbSyncErrs": 0,
"sbSyncExit": "0",
"sbSynced": 1586819259,
"sbSynced2": 1586822456,
"sbUpdated": "1596079143",
"sbVersion": "2.9.13",
"security": "user",
"shareAvahiEnabled": true,
"shareAvahiSmbModel": "Xserve",
"shareAvahiSmbName": "%h",
"shareCacheEnabled": true,
"shareCacheFloor": "2000000",
"shareCount": 0,
"shareDisk": "yes",
"shareInitialGroup": "Domain Users",
"shareInitialOwner": "Administrator",
"shareMoverActive": false,
"shareMoverLogging": false,
"shareMoverSchedule": "40 3 * * *",
"shareNfsCount": 0,
"shareNfsEnabled": false,
"shareSmbCount": 1,
"shareSmbEnabled": true,
"shareSmbMode": "workgroup",
"shareUser": "e",
"shareUserExclude": "",
"shareUserInclude": "",
"shfsLogging": "1",
"shutdownTimeout": 90,
"spindownDelay": 0,
"spinupGroups": false,
"startArray": false,
"startMode": "Normal",
"startPage": "Main",
"sysArraySlots": 24,
"sysCacheSlots": NaN,
"sysFlashSlots": 1,
"sysModel": "Dell R710",
"timeZone": "Australia/Adelaide",
"useNetbios": "yes",
"useNtp": true,
"useSsh": true,
"useSsl": null,
"useTelnet": true,
"useUpnp": true,
"useWsd": "no",
"version": "6.11.2",
"workgroup": "WORKGROUP",
"wsdOpt": "",
}
`);
});

View File

@@ -16,160 +16,160 @@ test('Returns parsed state file', async () => {
});
expect(parse(stateFile)).toMatchInlineSnapshot(`
{
"bindMgt": false,
"cacheNumDevices": NaN,
"cacheSbNumDisks": NaN,
"comment": "Dev Server",
"configState": "yes",
"configValid": true,
"csrfToken": "0000000000000000",
"defaultFsType": "xfs",
"deviceCount": 4,
"domain": "",
"domainLogin": "Administrator",
"domainShort": "",
"enableFruit": "no",
"flashGuid": "0000-0000-0000-000000000000",
"flashProduct": "DataTraveler_3.0",
"flashVendor": "KINGSTON",
"fsCopyPrcnt": 0,
"fsNumMounted": 0,
"fsNumUnmountable": 0,
"fsProgress": "Autostart disabled",
"fsState": "Stopped",
"fsUnmountableMask": "",
"fuseDirectio": "auto",
"fuseDirectioDefault": "auto",
"fuseDirectioStatus": "default",
"fuseRemember": "330",
"fuseRememberDefault": "330",
"fuseRememberStatus": "default",
"fuseUseino": "yes",
"hideDotFiles": false,
"joinStatus": "Not joined",
"localMaster": true,
"localTld": "local",
"luksKeyfile": "/tmp/unraid/keyfile",
"maxArraysz": 30,
"maxCachesz": 30,
"mdColor": "green-blink",
"mdNumDisabled": 1,
"mdNumDisks": 4,
"mdNumErased": 0,
"mdNumInvalid": 1,
"mdNumMissing": 0,
"mdNumNew": 0,
"mdNumStripes": 1280,
"mdNumStripesDefault": 1280,
"mdNumStripesStatus": "default",
"mdQueueLimit": "80",
"mdQueueLimitDefault": "80",
"mdQueueLimitStatus": "default",
"mdResync": 0,
"mdResyncAction": "check P",
"mdResyncCorr": "0",
"mdResyncDb": "0",
"mdResyncDt": "0",
"mdResyncPos": 0,
"mdResyncSize": 438960096,
"mdScheduler": "auto",
"mdSchedulerDefault": "auto",
"mdSchedulerStatus": "default",
"mdState": "STOPPED",
"mdSyncLimit": "5",
"mdSyncLimitDefault": "5",
"mdSyncLimitStatus": "default",
"mdSyncThresh": NaN,
"mdSyncThreshDefault": NaN,
"mdSyncWindow": NaN,
"mdSyncWindowDefault": NaN,
"mdVersion": "2.9.14",
"mdWriteMethod": NaN,
"mdWriteMethodDefault": "auto",
"mdWriteMethodStatus": "default",
"name": "Tower",
"nrRequests": NaN,
"nrRequestsDefault": NaN,
"nrRequestsStatus": "default",
"ntpServer1": "time1.google.com",
"ntpServer2": "time2.google.com",
"ntpServer3": "time3.google.com",
"ntpServer4": "time4.google.com",
"pollAttributes": "1800",
"pollAttributesDefault": "1800",
"pollAttributesStatus": "default",
"port": 80,
"portssh": 22,
"portssl": 443,
"porttelnet": 23,
"queueDepth": "auto",
"regCheck": "Valid",
"regExp": "",
"regFile": "/app/dev/Unraid.net/Pro.key",
"regGen": "0",
"regGuid": "13FE-4200-C300-58C372A52B19",
"regState": "PRO",
"regTm": "1833409182",
"regTm2": "0",
"regTo": "Eli Bosley",
"regTy": "PRO",
"reservedNames": "parity,parity2,parity3,diskP,diskQ,diskR,disk,disks,flash,boot,user,user0,disk0,disk1,disk2,disk3,disk4,disk5,disk6,disk7,disk8,disk9,disk10,disk11,disk12,disk13,disk14,disk15,disk16,disk17,disk18,disk19,disk20,disk21,disk22,disk23,disk24,disk25,disk26,disk27,disk28,disk29,disk30,disk31",
"safeMode": false,
"sbClean": true,
"sbEvents": 173,
"sbName": "/boot/config/super.dat",
"sbNumDisks": 5,
"sbState": "1",
"sbSyncErrs": 0,
"sbSyncExit": "0",
"sbSynced": 1586819259,
"sbSynced2": 1586822456,
"sbUpdated": "1596079143",
"sbVersion": "2.9.13",
"security": "user",
"shareAvahiEnabled": true,
"shareAvahiSmbModel": "Xserve",
"shareAvahiSmbName": "%h",
"shareCacheEnabled": true,
"shareCacheFloor": "2000000",
"shareCount": 0,
"shareDisk": "yes",
"shareInitialGroup": "Domain Users",
"shareInitialOwner": "Administrator",
"shareMoverActive": false,
"shareMoverLogging": false,
"shareMoverSchedule": "40 3 * * *",
"shareNfsCount": 0,
"shareNfsEnabled": false,
"shareSmbCount": 1,
"shareSmbEnabled": true,
"shareSmbMode": "workgroup",
"shareUser": "e",
"shareUserExclude": "",
"shareUserInclude": "",
"shfsLogging": "1",
"shutdownTimeout": 90,
"spindownDelay": 0,
"spinupGroups": false,
"startArray": false,
"startMode": "Normal",
"startPage": "Main",
"sysArraySlots": 24,
"sysCacheSlots": NaN,
"sysFlashSlots": 1,
"sysModel": "Dell R710",
"timeZone": "Australia/Adelaide",
"useNetbios": "yes",
"useNtp": true,
"useSsh": true,
"useSsl": null,
"useTelnet": true,
"useUpnp": true,
"useWsd": "no",
"version": "6.11.2",
"workgroup": "WORKGROUP",
"wsdOpt": "",
}
`);
{
"bindMgt": false,
"cacheNumDevices": NaN,
"cacheSbNumDisks": NaN,
"comment": "Dev Server",
"configErrorState": "INELIGIBLE",
"configValid": false,
"csrfToken": "0000000000000000",
"defaultFsType": "xfs",
"deviceCount": 4,
"domain": "",
"domainLogin": "Administrator",
"domainShort": "",
"enableFruit": "no",
"flashGuid": "0000-0000-0000-000000000000",
"flashProduct": "DataTraveler_3.0",
"flashVendor": "KINGSTON",
"fsCopyPrcnt": 0,
"fsNumMounted": 0,
"fsNumUnmountable": 0,
"fsProgress": "Autostart disabled",
"fsState": "Stopped",
"fsUnmountableMask": "",
"fuseDirectio": "auto",
"fuseDirectioDefault": "auto",
"fuseDirectioStatus": "default",
"fuseRemember": "330",
"fuseRememberDefault": "330",
"fuseRememberStatus": "default",
"fuseUseino": "yes",
"hideDotFiles": false,
"joinStatus": "Not joined",
"localMaster": true,
"localTld": "local",
"luksKeyfile": "/tmp/unraid/keyfile",
"maxArraysz": 30,
"maxCachesz": 30,
"mdColor": "green-blink",
"mdNumDisabled": 1,
"mdNumDisks": 4,
"mdNumErased": 0,
"mdNumInvalid": 1,
"mdNumMissing": 0,
"mdNumNew": 0,
"mdNumStripes": 1280,
"mdNumStripesDefault": 1280,
"mdNumStripesStatus": "default",
"mdQueueLimit": "80",
"mdQueueLimitDefault": "80",
"mdQueueLimitStatus": "default",
"mdResync": 0,
"mdResyncAction": "check P",
"mdResyncCorr": "0",
"mdResyncDb": "0",
"mdResyncDt": "0",
"mdResyncPos": 0,
"mdResyncSize": 438960096,
"mdScheduler": "auto",
"mdSchedulerDefault": "auto",
"mdSchedulerStatus": "default",
"mdState": "STOPPED",
"mdSyncLimit": "5",
"mdSyncLimitDefault": "5",
"mdSyncLimitStatus": "default",
"mdSyncThresh": NaN,
"mdSyncThreshDefault": NaN,
"mdSyncWindow": NaN,
"mdSyncWindowDefault": NaN,
"mdVersion": "2.9.14",
"mdWriteMethod": NaN,
"mdWriteMethodDefault": "auto",
"mdWriteMethodStatus": "default",
"name": "Tower",
"nrRequests": NaN,
"nrRequestsDefault": NaN,
"nrRequestsStatus": "default",
"ntpServer1": "time1.google.com",
"ntpServer2": "time2.google.com",
"ntpServer3": "time3.google.com",
"ntpServer4": "time4.google.com",
"pollAttributes": "1800",
"pollAttributesDefault": "1800",
"pollAttributesStatus": "default",
"port": 80,
"portssh": 22,
"portssl": 443,
"porttelnet": 23,
"queueDepth": "auto",
"regCheck": "Valid",
"regExp": "",
"regFile": "/app/dev/Unraid.net/Pro.key",
"regGen": "0",
"regGuid": "13FE-4200-C300-58C372A52B19",
"regState": "PRO",
"regTm": "1833409182",
"regTm2": "0",
"regTo": "Eli Bosley",
"regTy": "PRO",
"reservedNames": "parity,parity2,parity3,diskP,diskQ,diskR,disk,disks,flash,boot,user,user0,disk0,disk1,disk2,disk3,disk4,disk5,disk6,disk7,disk8,disk9,disk10,disk11,disk12,disk13,disk14,disk15,disk16,disk17,disk18,disk19,disk20,disk21,disk22,disk23,disk24,disk25,disk26,disk27,disk28,disk29,disk30,disk31",
"safeMode": false,
"sbClean": true,
"sbEvents": 173,
"sbName": "/boot/config/super.dat",
"sbNumDisks": 5,
"sbState": "1",
"sbSyncErrs": 0,
"sbSyncExit": "0",
"sbSynced": 1586819259,
"sbSynced2": 1586822456,
"sbUpdated": "1596079143",
"sbVersion": "2.9.13",
"security": "user",
"shareAvahiEnabled": true,
"shareAvahiSmbModel": "Xserve",
"shareAvahiSmbName": "%h",
"shareCacheEnabled": true,
"shareCacheFloor": "2000000",
"shareCount": 0,
"shareDisk": "yes",
"shareInitialGroup": "Domain Users",
"shareInitialOwner": "Administrator",
"shareMoverActive": false,
"shareMoverLogging": false,
"shareMoverSchedule": "40 3 * * *",
"shareNfsCount": 0,
"shareNfsEnabled": false,
"shareSmbCount": 1,
"shareSmbEnabled": true,
"shareSmbMode": "workgroup",
"shareUser": "e",
"shareUserExclude": "",
"shareUserInclude": "",
"shfsLogging": "1",
"shutdownTimeout": 90,
"spindownDelay": 0,
"spinupGroups": false,
"startArray": false,
"startMode": "Normal",
"startPage": "Main",
"sysArraySlots": 24,
"sysCacheSlots": NaN,
"sysFlashSlots": 1,
"sysModel": "Dell R710",
"timeZone": "Australia/Adelaide",
"useNetbios": "yes",
"useNtp": true,
"useSsh": true,
"useSsl": null,
"useTelnet": true,
"useUpnp": true,
"useWsd": "no",
"version": "6.11.2",
"workgroup": "WORKGROUP",
"wsdOpt": "",
}
`);
});

View File

@@ -1,9 +1,10 @@
import {
type ArrayState,
type DiskFsType,
type RegistrationState,
type registrationType,
import type {
ArrayState,
DiskFsType,
RegistrationState,
registrationType,
} from '@app/graphql/generated/api/types.js';
import { ConfigErrorState } from '@app/graphql/generated/api/types.js';
/**
* Global vars
@@ -17,7 +18,7 @@ export type Var = {
/** Is the array's config valid. */
configValid: boolean;
/** @internal used to hold the value for config.error */
configState: string;
configErrorState: ConfigErrorState | null;
/** Current CSRF token for HTTP requests with emhttpd. */
csrfToken: string;
defaultFormat: string;

View File

@@ -3,6 +3,7 @@ import { type IniStringBoolean, type IniStringBooleanOrAuto } from '@app/core/ty
import { toNumber } from '@app/core/utils/index.js';
import {
ArrayState,
ConfigErrorState,
DiskFsType,
RegistrationState,
registrationType,
@@ -23,7 +24,7 @@ export type VarIni = {
cacheSbNumDisks: string;
comment: string;
configValid: string;
configState: string;
configErrorState: string;
csrfToken: string;
defaultFormat: string;
defaultFsType: string;
@@ -200,6 +201,10 @@ const safeParseMdState = (mdState: string | undefined): ArrayState => {
return attemptedParse;
};
export const convertconfigErrorStateToEnum = (configErrorState: string): ConfigErrorState => {
return ConfigErrorState[configErrorState.toUpperCase()];
};
export const parse: StateFileToIniParserMap['var'] = (iniFile) => {
return {
...iniFile,
@@ -209,7 +214,9 @@ export const parse: StateFileToIniParserMap['var'] = (iniFile) => {
cacheNumDevices: toNumber(iniFile.cacheNumDevices),
cacheSbNumDisks: toNumber(iniFile.cacheSbNumDisks),
configValid: iniBooleanToJsBoolean(iniFile.configValid, false),
configState: iniFile.configValid,
configErrorState: iniBooleanToJsBoolean(iniFile.configValid, false)
? null
: convertconfigErrorStateToEnum(iniFile.configValid),
deviceCount: toNumber(iniFile.deviceCount),
fsCopyPrcnt: toNumber(iniFile.fsCopyPrcnt),
fsNumMounted: toNumber(iniFile.fsNumMounted),

View File

@@ -21,9 +21,7 @@ export class ConfigResolver {
return {
id: 'config',
valid: emhttp.var.configValid,
error: emhttp.var.configValid
? null
: (ConfigErrorState[emhttp.var.configState] ?? ConfigErrorState.UNKNOWN_ERROR),
error: emhttp.var.configValid ? null : emhttp.var.configErrorState,
};
}

View File

@@ -500,6 +500,7 @@ CFG_OLD=/boot/config/plugins/Unraid.net
CFG_NEW=/boot/config/plugins/dynamix.my.servers
[[ -d "$CFG_OLD" ]] && [[ ! -d "$CFG_NEW" ]] && mv "$CFG_OLD" "$CFG_NEW"
# relax restrictions on built-in Firefox so it can sign in to Unraid Connect
# brings older versions of Unraid in sync with 6.12.0
# no need to restore original file on uninstall

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@ import { useServerStore } from '~/store/server';
import { useThemeStore } from '~/store/theme';
export interface Props {
label: string;
label?: string;
t: ComposerTranslation;
}