fix(edge/aeec): make edge id generator field mandatory EE-6010 (#10545)

pull/10548/head
matias-portainer 2023-10-27 10:35:10 -03:00 committed by GitHub
parent 9e60723e4d
commit f10356641a
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 15 additions and 3 deletions

View File

@ -19,6 +19,7 @@ const edgePropertiesFormInitialValues: ScriptFormValues = {
edgeGroupsIds: [],
group: 0,
tagsIds: [],
edgeIdGenerator: '',
};
interface Props {
@ -45,6 +46,7 @@ export function EdgeScriptForm({
initialValues={edgePropertiesFormInitialValues}
validationSchema={() => validationSchema(isNomadTokenVisible)}
onSubmit={() => {}}
validateOnMount
>
{({ values, setFieldValue }) => (
<>

View File

@ -6,6 +6,13 @@ export function validationSchema(isNomadTokenVisible?: boolean) {
return object().shape({
allowSelfSignedCertificates: boolean(),
envVars: string(),
edgeIdGenerator: string()
.required('Edge ID Generator is required')
.test(
'valid edge id generator',
'edge id generator cannot be empty',
(value) => !!(value && value.length)
),
...nomadValidation(isNomadTokenVisible),
});
}

View File

@ -24,7 +24,8 @@ export function EdgeScriptSettingsFieldset({
hideIdGetter,
showMetaFields,
}: Props) {
const { values, setFieldValue } = useFormikContext<ScriptFormValues>();
const { values, setFieldValue, errors } =
useFormikContext<ScriptFormValues>();
return (
<>
@ -50,8 +51,10 @@ export function EdgeScriptSettingsFieldset({
<>
<FormControl
label="Edge ID Generator"
tooltip="A bash script one liner that will generate the edge id and will be assigned to the PORTAINER_EDGE_ID environment variable"
tooltip="Enter a single-line bash command that generates a unique Edge ID. For example, you can use 'uuidgen' or 'uuid'. The result will be assigned to the 'PORTAINER_EDGE_ID' environment variable."
inputId="edge-id-generator-input"
required
errors={errors.edgeIdGenerator}
>
<Input
type="text"

View File

@ -17,7 +17,7 @@ export interface ScriptFormValues {
os: OS;
platform: Platform;
edgeIdGenerator?: string;
edgeIdGenerator: string;
group: EnvironmentGroupId;
edgeGroupsIds: Array<EdgeGroup['Id']>;