From 7228e670cd6d38a23df541926a4286c211fcfe72 Mon Sep 17 00:00:00 2001
From: Sergio Betanzos <sbetanzos@opennebula.io>
Date: Mon, 8 Nov 2021 11:42:16 +0100
Subject: [PATCH] F #5604: Add provision type to providers (#1565)

---
 .../Forms/Provider/CreateForm/Steps/Template/index.js      | 5 +++--
 .../Forms/Provision/CreateForm/Steps/Provider/index.js     | 7 ++++---
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/src/fireedge/src/client/components/Forms/Provider/CreateForm/Steps/Template/index.js b/src/fireedge/src/client/components/Forms/Provider/CreateForm/Steps/Template/index.js
index 4196146d08..69a93f9095 100644
--- a/src/fireedge/src/client/components/Forms/Provider/CreateForm/Steps/Template/index.js
+++ b/src/fireedge/src/client/components/Forms/Provider/CreateForm/Steps/Template/index.js
@@ -26,7 +26,7 @@ import { useAuth } from 'client/features/Auth'
 import { useProvisionTemplate } from 'client/features/One'
 import { ListCards } from 'client/components/List'
 import { ProvisionTemplateCard } from 'client/components/Cards'
-import { sanitize } from 'client/utils'
+import { sanitize, deepmerge } from 'client/utils'
 import { isValidProviderTemplate, getProvisionTypeFromTemplate } from 'client/models/ProviderTemplate'
 import { T } from 'client/constants'
 
@@ -107,6 +107,7 @@ const Content = ({ data, setFormData }) => {
 
   const handleClick = (template, isSelected) => {
     const { name, description } = template
+    const extraPlainInfo = { plain: { provision_type: provisionSelected } }
 
     // reset rest of form when change template
     setFormData({
@@ -116,7 +117,7 @@ const Content = ({ data, setFormData }) => {
 
     isSelected
       ? handleUnselect(name)
-      : handleSelect(template)
+      : handleSelect(deepmerge(template, extraPlainInfo))
   }
 
   const RenderDescription = ({ description = '' }) => {
diff --git a/src/fireedge/src/client/components/Forms/Provision/CreateForm/Steps/Provider/index.js b/src/fireedge/src/client/components/Forms/Provision/CreateForm/Steps/Provider/index.js
index b6a1238db9..98574dea56 100644
--- a/src/fireedge/src/client/components/Forms/Provision/CreateForm/Steps/Provider/index.js
+++ b/src/fireedge/src/client/components/Forms/Provision/CreateForm/Steps/Provider/index.js
@@ -48,10 +48,11 @@ const Provider = () => ({
 
       return providers.filter(provider => {
         const { TEMPLATE: { PLAIN = {} } } = provider ?? {}
-        const provisionType = [providerConfig[PLAIN.provider]?.provision_type ?? []].flat()
 
-        return PLAIN.provider === provisionTemplateSelected.provider &&
-          provisionType.includes(templateProvisionType)
+        return (
+          PLAIN.provider === provisionTemplateSelected.provider &&
+          PLAIN.provision_type === templateProvisionType
+        )
       })
     }, [])