Skip to content

Commit

Permalink
Fix oVirt provider url help text field
Browse files Browse the repository at this point in the history
As a followup for #732,
fix the oVirt provider's URL help text as follows:
1. Rephrase the error, warning and successful/initial text messages to be
   aligned with the documnetation, other providers fields and Patternfly
   error msg recommendations.
2. Set a url input ended with a "/" (i.e. "ovirt-engine/api/")
   as a valid url since it's mentioned on docs as valid and it's a
   common used case.
3. Fix a bug in which the waring text message string (helperTextMsgs.warning) is
   never displayed in the UI (the color is set to yellow to indicate the
   warning field validation state, but the text message was not changed
   accordingly).

Signed-off-by: Sharon Gratch <[email protected]>
  • Loading branch information
sgratch committed Oct 3, 2023
1 parent 60b0969 commit 93426a2
Show file tree
Hide file tree
Showing 2 changed files with 15 additions and 14 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -100,7 +100,6 @@
"Edit VDDK init image": "Edit VDDK init image",
"Empty": "Empty",
"Endpoint": "Endpoint",
"Enter the API engine URL for the Red Hat Virtualization (RHV) provider. Ensure it includes the \"ovirt-engine/api\" path, e.g., https://rhv.com/ovirt-engine/api.": "Enter the API engine URL for the Red Hat Virtualization (RHV) provider. Ensure it includes the \"ovirt-engine/api\" path, e.g., https://rhv.com/ovirt-engine/api.",
"Enter the URL of the SDK endpoint in vCenter. Ensure it includes the \"sdk\" path, e.g., https://vcenter.com/sdk.": "Enter the URL of the SDK endpoint in vCenter. Ensure it includes the \"sdk\" path, e.g., https://vcenter.com/sdk.",
"Error": "Error",
"Error: CA Certificate must be valid.": "Error: CA Certificate must be valid.",
Expand All @@ -109,8 +108,8 @@
"Error: Name is required and must be a unique within a namespace and valid Kubernetes name (i.e., must contain no more than 253 characters, consists of lower case alphanumeric characters , '-' or '.' and starts and ends with an alphanumeric character).": "Error: Name is required and must be a unique within a namespace and valid Kubernetes name (i.e., must contain no more than 253 characters, consists of lower case alphanumeric characters , '-' or '.' and starts and ends with an alphanumeric character).",
"Error: NFS mount end point should be in the form NFS_SERVER:EXPORTED_DIRECTORY, for example: 10.10.0.10:/ova.": "Error: NFS mount end point should be in the form NFS_SERVER:EXPORTED_DIRECTORY, for example: 10.10.0.10:/ova.",
"Error: Password is required and must be valid.": "Error: Password is required and must be valid.",
"Error: Please provide a valid URL with a schema, domain, and path. For example: https://rhv.com/ovirt-engine/api.": "Error: Please provide a valid URL with a schema, domain, and path. For example: https://rhv.com/ovirt-engine/api.",
"Error: Please provide a valid URL with a schema, domain, and path. For example: https://vcenter.com/sdk.": "Error: Please provide a valid URL with a schema, domain, and path. For example: https://vcenter.com/sdk.",
"Error: The format of the provided URL is invalid. Ensure the URL includes a scheme, a domain name, and a path. For example: https://rhv-host-example.com/ovirt-engine/api": "Error: The format of the provided URL is invalid. Ensure the URL includes a scheme, a domain name, and a path. For example: https://rhv-host-example.com/ovirt-engine/api",
"Error: This field must be a boolean.": "Error: This field must be a boolean.",
"Error: token is a required field, the token must be a valid kubernetes token.": "Error: token is a required field, the token must be a valid kubernetes token.",
"Error: URL is required and must be valid.": "Error: URL is required and must be valid.",
Expand Down Expand Up @@ -391,6 +390,7 @@
"URL must start with https:// or http:// and contain valid hostname and path": "URL must start with https:// or http:// and contain valid hostname and path",
"URL of the provider": "URL of the provider",
"URL of the provider, leave empty to use this providers URL": "URL of the provider, leave empty to use this providers URL",
"URL of the Red Hat Virtualization Manager (RHVM) API endpoint. Ensure the URL includes the \"/ovirt-engine/api\" path. for example: https://rhv-host-example.com/ovirt-engine/api": "URL of the Red Hat Virtualization Manager (RHVM) API endpoint. Ensure the URL includes the \"/ovirt-engine/api\" path. for example: https://rhv-host-example.com/ovirt-engine/api",
"User ID": "User ID",
"User or service account bearer token for service accounts or user authentication.": "User or service account bearer token for service accounts or user authentication.",
"Username": "Username",
Expand All @@ -411,8 +411,8 @@
"vSphere REST API password credentials.": "vSphere REST API password credentials.",
"vSphere REST API user name.": "vSphere REST API user name.",
"Warning concerns": "Warning concerns",
"Warning: The provided URL does not end with \"ovirt-engine/api\". Ensure it includes the correct path, like: https://rhv.com/ovirt-engine/api.": "Warning: The provided URL does not end with \"ovirt-engine/api\". Ensure it includes the correct path, like: https://rhv.com/ovirt-engine/api.",
"Warning: The provided URL does not end with \"sdk\". Ensure it includes the correct path, like: https://vcenter.com/sdk.": "Warning: The provided URL does not end with \"sdk\". Ensure it includes the correct path, like: https://vcenter.com/sdk.",
"Warning: The provided URL does not end with the RHVM API endpoint path: \"ovirt-engine/api\". Ensure the URL includes the correct path. For example: https://rhv-host-example.com/ovirt-engine/api": "Warning: The provided URL does not end with the RHVM API endpoint path: \"ovirt-engine/api\". Ensure the URL includes the correct path. For example: https://rhv-host-example.com/ovirt-engine/api",
"Welcome": "Welcome",
"When a plan is archived, its history, metadata, and logs are deleted. The plan cannot be edited or restarted but it can be viewed.": "When a plan is archived, its history, metadata, and logs are deleted. The plan cannot be edited or restarted but it can be viewed.",
"YAML": "YAML",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,19 +18,22 @@ export const OvirtProviderCreateForm: React.FC<OvirtProviderCreateFormProps> = (

const url = provider?.spec?.url || '';

const helperTextInvalid = {
const helperTextMsgs = {
error: t(
'Error: Please provide a valid URL with a schema, domain, and path. For example: https://rhv.com/ovirt-engine/api.',
'Error: The format of the provided URL is invalid. Ensure the URL includes a scheme, a domain name, and a path. For example: https://rhv-host-example.com/ovirt-engine/api',
),
warning: t(
'Warning: The provided URL does not end with "ovirt-engine/api". Ensure it includes the correct path, like: https://rhv.com/ovirt-engine/api.',
'Warning: The provided URL does not end with the RHVM API endpoint path: "ovirt-engine/api". Ensure the URL includes the correct path. For example: https://rhv-host-example.com/ovirt-engine/api',

Check warning on line 26 in packages/forklift-console-plugin/src/modules/Providers/views/create/components/OvirtProviderCreateForm.tsx

View workflow job for this annotation

GitHub Actions / Run linter and tests

Unknown word: "RHVM"
),
success: t(
'URL of the Red Hat Virtualization Manager (RHVM) API endpoint. Ensure the URL includes the "/ovirt-engine/api" path. for example: https://rhv-host-example.com/ovirt-engine/api',

Check warning on line 29 in packages/forklift-console-plugin/src/modules/Providers/views/create/components/OvirtProviderCreateForm.tsx

View workflow job for this annotation

GitHub Actions / Run linter and tests

Unknown word: "RHVM"
),
};

const initialState = {
validation: {
url: 'default' as Validation,
urlHelperTextInvalid: '',
urlHelperText: helperTextMsgs.success,
},
};

Expand Down Expand Up @@ -66,8 +69,8 @@ export const OvirtProviderCreateForm: React.FC<OvirtProviderCreateFormProps> = (
dispatch({
type: 'SET_FIELD_VALIDATED',
payload: {
field: 'urlHelperTextInvalid',
validationState: helperTextInvalid[validationState],
field: 'urlHelperText',
validationState: helperTextMsgs[validationState],
},
});

Expand All @@ -78,7 +81,7 @@ export const OvirtProviderCreateForm: React.FC<OvirtProviderCreateFormProps> = (

const getURLValidationState = (url: string): Validation => {
if (!validateURL(url)) return 'error';
if (!url.endsWith('ovirt-engine/api')) return 'warning';
if (!url.endsWith('ovirt-engine/api') && !url.endsWith('ovirt-engine/api/')) return 'warning';
return 'success';
};

Expand All @@ -88,11 +91,9 @@ export const OvirtProviderCreateForm: React.FC<OvirtProviderCreateFormProps> = (
label={t('URL')}
isRequired
fieldId="url"
helperText={t(
'Enter the API engine URL for the Red Hat Virtualization (RHV) provider. Ensure it includes the "ovirt-engine/api" path, e.g., https://rhv.com/ovirt-engine/api.',
)}
validated={state.validation.url}
helperTextInvalid={state.validation.urlHelperTextInvalid}
helperText={state.validation.urlHelperText}
helperTextInvalid={state.validation.urlHelperText}
>
<TextInput
isRequired
Expand Down

0 comments on commit 93426a2

Please sign in to comment.