Skip to content

Commit

Permalink
Merge pull request #9881 from metalice/bz-1996630-form-with-yaml-fix-…
Browse files Browse the repository at this point in the history
…ssh-keys

Bug 1996630: Fix some issues while updating ssh keys from simple wizard and changing keys
  • Loading branch information
openshift-merge-robot committed Aug 26, 2021
2 parents c97455c + 9ea4d5e commit 8aa7f76
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 11 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -71,16 +71,12 @@ const Cloudinit: React.FC<CloudinitProps> = ({ wizardReduxID }) => {
}, [data]);

React.useEffect(() => {
const formValues = yamlAsJS?.ssh_authorized_keys;
formValues && !isEqual(formValues, authKeys) && setAuthKeys(formValues);
validationSchema(yamlAsJS);
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [yamlAsJS]);

React.useEffect(() => {
!isEmpty(yamlAsJS) &&
!isEmpty(yaml) &&
isEqual(authKeysData, authKeys) &&
if (!isEmpty(yamlAsJS) && !isEmpty(yaml) && !isEqual(yamlAsJS?.ssh_authorized_keys, authKeys)) {
setYaml(
yamlParser.dump({
...yamlParser.load(yaml),
Expand All @@ -89,8 +85,9 @@ const Cloudinit: React.FC<CloudinitProps> = ({ wizardReduxID }) => {
ssh_authorized_keys: authKeys,
}),
);
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [authKeys, yaml, yamlAsJS]);
}, [authKeys]);

React.useEffect(() => {
yaml &&
Expand All @@ -102,10 +99,18 @@ const Cloudinit: React.FC<CloudinitProps> = ({ wizardReduxID }) => {

const onChange = React.useCallback(
(yamlData, yamlAsJSData) => {
setYaml(yamlData);
setYamlAsJS(yamlAsJSData);
yamlAsJSData && setYamlAsJS(yamlAsJSData);
yamlData &&
setYaml(
yamlParser.dump({
...yamlParser.load(yamlData),
/* eslint-disable-next-line @typescript-eslint/camelcase */
ssh_authorized_keys: yamlAsJSData?.ssh_authorized_keys || authKeys,
}),
);
setAuthKeys(yamlAsJSData?.ssh_authorized_keys);
},
[setYaml, setYamlAsJS],
[setYaml, setYamlAsJS, authKeys],
);

return (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ const CloudinitForm: React.FC<CloudinitFormProps> = ({
fieldId={cloudinitIDGenerator(CloudInitDataFormKeys.SSH_AUTHORIZED_KEYS)}
className="kv-cloudint-advanced-tab-with-editor--validation-text"
>
{authKeys.map((_, idx) => {
{authKeys?.map((_, idx) => {
const uiIDX = idx.toString();
const inputID = cloudinitIDGenerator(
joinIDs(CloudInitDataFormKeys.SSH_AUTHORIZED_KEYS, 'key', uiIDX),
Expand Down Expand Up @@ -106,7 +106,7 @@ const CloudinitForm: React.FC<CloudinitFormProps> = ({
icon={<PlusCircleIcon />}
variant={ButtonVariant.link}
isInline
onClick={() => setAuthKeys((keys) => [...keys, ''])}
onClick={() => setAuthKeys((keys) => (keys ? [...keys, ''] : ['']))}
>
{t('kubevirt-plugin~Add SSH Key')}
</Button>
Expand Down

0 comments on commit 8aa7f76

Please sign in to comment.