diff --git a/app/Controllers/Provision.php b/app/Controllers/Provision.php index f174505..c0f9eb3 100644 --- a/app/Controllers/Provision.php +++ b/app/Controllers/Provision.php @@ -232,30 +232,69 @@ class Provision extends BaseController $provision_detail = $query->getResult(); if (count($provision_detail) > 0) { - var_dump($provision_detail[0]); + //var_dump($provision_detail[0]); $result = $provision_detail[0]; // Get results as an array of objects $product_template = $result->product_template; $custom_template = $result->custom_template; - if ($product_template == '') { + if ($product_template == '') { // No template assigned $imageData = $this->pickLatestImage($productId); if (count($imageData)) { $this->assignTemplateToProvision($provisionUID, $imageData["provision_uid"]); //stamp image on the provison $PROVISION_IMAGE_NAME = $imageData["provision_name"]; - $product_template = $PROVISION_IMAGE_NAME; } } - log_message('critical', "***** ***** assignProvideImageName ProductTemplate: $product_template CustomTemplate: $custom_template "); + + if ($product_template != '') { // We have a template + $provision_name = $this->selectTemplateFromUID($product_template); + if ($provision_name != '') { + $PROVISION_IMAGE_NAME = $provision_name; + } + } + + if ($custom_template != '') { // We have a custom template + $provision_name = $this->selectCustomnTemplateFromName($custom_template); + if ($provision_name != '') { + $PROVISION_IMAGE_NAME = $provision_name; + } + } + + log_message('critical', "***** ***** assignProvideImageName ProductTemplate: $PROVISION_IMAGE_NAME CustomTemplate: $custom_template "); } - - return $PROVISION_IMAGE_NAME; + } + private function selectCustomnTemplateFromName($custom_id) + { + $mysql = "SELECT * FROM custom_templates WHERE custom_id = '$custom_id'"; + $query = $this->db->query($mysql); + $template_detail = $query->getResult(); + $provision_name = ''; + if (count($template_detail) > 0) { + //var_dump($provision_detail[0]); + $result = $template_detail[0]; // Get results as an array of objects + $provision_name = trim($result->provision_name); + } + return $provision_name; + } + + private function selectTemplateFromUID($template_uid) + { + $mysql = "SELECT * FROM products_templates WHERE uid::text = '$template_uid'"; + $query = $this->db->query($mysql); + $template_detail = $query->getResult(); + $provision_name = ''; + if (count($template_detail) > 0) { + //var_dump($provision_detail[0]); + $result = $template_detail[0]; // Get results as an array of objects + $provision_name = trim($result->provision_name); + } + return $provision_name; } private function pickLatestImage($productId) { - $mysql = "SELECT uid::text,provision_name FROM products_templates + $mysql = "SELECT uid::text AS provision_uid,provision_name FROM products_templates WHERE product_id = trim('$productId') AND status = 1 ORDER BY id DESC limit 1"; $query = $this->db->query($mysql); @@ -264,21 +303,19 @@ class Provision extends BaseController if (count($template_detail) > 0) { /// var_dump($template_detail[0]); $result = $template_detail[0]; // Get results as an array of objects - $data["provision_uid"] = $result->uid; - $data["provision_name"] = trim($result->provision_name); + $data["provision_uid"] = $result->provision_uid; + $data["provision_name"] = $result->provision_name; } return $data; } private function assignTemplateToProvision($provisionUID, $provision_uid) { - $mysql = "UPDATE members_products SET product_template='$provision_uid' WHERE uid::text = '$provisionUID' AND product_template IS NULL"; - log_message('critical', "***** ***** assignTemplateToProvision QUERY: $mysql "); + $mysql = "UPDATE members_products SET product_template='$provision_uid' WHERE uid::text = '$provisionUID' AND product_template = '' "; $this->db->query($mysql); return 0; } - private function prepareTemplateFile($composer_template_contents, $ContainerName, $allocatedPort, $provisionUID, $ansible_folder, $productId, $internalUrl): string {