PROV flavor

This commit is contained in:
CHIEFSOFT\ameye
2025-11-24 22:41:17 -05:00
parent 5cfc74c365
commit 8481b75688
+68 -16
View File
@@ -8,7 +8,7 @@ class Provision extends BaseController
public function testSocket(): void
{
// TELL THE SOCKET TO REFRESH PAGE
// $data["product_uid"] = "bea86662-adb3-4c09-816b-014f450d9713"; // 3cc24fd6-e6c7-4c08-8a64-f06e3f790f38
// $data["product_uid"] = "bea86662-adb3-4c09-816b-014f450d9713"; // 3cc24fd6-e6c7-4c08-8a64-f06e3f790f38
$data["product_uid"] = "3cc24fd6-e6c7-4c08-8a64-f06e3f790f38"; //
$data["provision_action"] = "Auto%20Configuration%20Started";
$SOCKET_SERVER_LOCATION = $_ENV['SOCKET_SERVER_LOCATION'];
@@ -219,13 +219,16 @@ class Provision extends BaseController
return 0;
}
private function assignProvideImageName($productId, $provisionUID)
private function assignProvideImageName($productId, $provisionUID): array
{
$PROVISION_IMAGE_NAME = match ($productId) {
"A000001" => "registry.chiefsoft.com/pweb/pweb-01-merms-pweb0006c:latest",
"A000002" => "registry.chiefsoft.com/bweb/bweb-01-merms-pweb0006c:latest",
default => '',
};
// $PROVISION_IMAGE_NAME = match ($productId) {
// "A000001" => "registry.chiefsoft.com/pweb/pweb-01-merms-pweb0006c:latest",
// "A000002" => "registry.chiefsoft.com/bweb/bweb-01-merms-pweb0006c:latest",
// default => '',
// };
$PROVISION_IMAGE_NAME = '';
$PROVISION_IMAGE_FLAVOR = 'P' . rand(1, 6); // temporary - should be blank
// let us confirm if we have a custom template for this line
$provisionUID = trim($provisionUID);
$mysql = "SELECT * FROM members_products WHERE uid::text = '$provisionUID'";
@@ -243,13 +246,16 @@ class Provision extends BaseController
if (count($imageData)) {
$this->assignTemplateToProvision($provisionUID, $imageData["provision_uid"]); //stamp image on the provison
$PROVISION_IMAGE_NAME = $imageData["provision_name"];
$PROVISION_IMAGE_FLAVOR = $imageData["flavor"];
}
}
if ($product_template != '') { // We have a template
$provision_name = $this->selectTemplateFromUID($product_template);
if ($provision_name != '') {
$PROVISION_IMAGE_NAME = $provision_name;
//$provision_name = $this->selectTemplateFromUID($product_template);
$provision_data = $this->selectTemplateDetailsFromUID($product_template);
if ($provision_data[0] != '') {
$PROVISION_IMAGE_NAME = $provision_data[0]; // $provision_name;
$PROVISION_IMAGE_FLAVOR = $provision_data[1];
}
}
@@ -257,12 +263,13 @@ class Provision extends BaseController
$provision_name = $this->selectCustomnTemplateFromName($custom_template);
if ($provision_name != '') {
$PROVISION_IMAGE_NAME = $provision_name;
$PROVISION_IMAGE_FLAVOR = "";
}
}
log_message('critical', "***** ***** assignProvideImageName ProductTemplate: $PROVISION_IMAGE_NAME CustomTemplate: $custom_template ");
}
return $PROVISION_IMAGE_NAME;
return [$PROVISION_IMAGE_NAME,$PROVISION_IMAGE_FLAVOR];
}
private function selectCustomnTemplateFromName($custom_id)
@@ -279,6 +286,22 @@ class Provision extends BaseController
return $provision_name;
}
private function selectTemplateDetailsFromUID($template_uid): array
{
$mysql = "SELECT * FROM products_templates WHERE uid::text = '$template_uid'";
$query = $this->db->query($mysql);
$template_detail = $query->getResult();
$provision_name = '';
$provision_flavor = '';
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);
$provision_flavor = trim($result->flavor);
}
return [$provision_name, $provision_flavor];
}
private function selectTemplateFromUID($template_uid)
{
$mysql = "SELECT * FROM products_templates WHERE uid::text = '$template_uid'";
@@ -295,7 +318,7 @@ class Provision extends BaseController
private function pickLatestImage($productId)
{
$mysql = "SELECT uid::text AS provision_uid,provision_name FROM products_templates
$mysql = "SELECT uid::text AS provision_uid,provision_name,flavor FROM products_templates
WHERE product_id = trim('$productId')
AND status = 1 ORDER BY id DESC limit 1";
$query = $this->db->query($mysql);
@@ -306,6 +329,7 @@ class Provision extends BaseController
$result = $template_detail[0]; // Get results as an array of objects
$data["provision_uid"] = $result->provision_uid;
$data["provision_name"] = $result->provision_name;
$data["flavor"] = $result->flavor;
}
return $data;
}
@@ -326,14 +350,16 @@ class Provision extends BaseController
// default => '',
// };
//
$PROVISION_IMAGE_NAME = $this->assignProvideImageName($productId, $provisionUID);
$PROVISION_IMAGE_DATA = $this->assignProvideImageName($productId, $provisionUID);
$PROVISION_IMAGE_NAME = $PROVISION_IMAGE_DATA[0]; // $this->assignProvideImageName($productId, $provisionUID);
$PROVISION_IMAGE_FLAVOR = $PROVISION_IMAGE_DATA[1];
$partMachineLocal = $_ENV['PATH_MACHINE_LOCAL'];
$SITE_CONTENTS_GATEWAY = $_ENV['SITE_CONTENTS_GATEWAY'];
$SITE_CONTACT_GATEWAY = $_ENV['SITE_CONTACT_GATEWAY'];
$MYSQL_PROVISION_DATABASE_PORT = $_ENV['PROVISION_MSQL_DATABASE_IP'] . ":" . $_ENV['PROVISION_MSQL_DATABASE_PORT']; // "172.16.4.96:3307";
$destinationHomeFolder = $_ENV['DESTINATION_HOME_FOLDER'] . $ContainerName;
$templateRandom = 'P' . rand(1, 6);
//$templateRandom = 'P' . rand(1, 6);
$composer_template_contents = str_replace("WHAT_CONTAINER_NAME", $ContainerName, $composer_template_contents);
$composer_template_contents = str_replace("DESTINATION_FOLDER", $destinationHomeFolder, $composer_template_contents);
$composer_template_contents = str_replace("ALLOCATED_PORT", $allocatedPort, $composer_template_contents);
@@ -344,7 +370,7 @@ class Provision extends BaseController
$composer_template_contents = str_replace("PROVISION_IMAGE_NAME_REPLACE", $PROVISION_IMAGE_NAME, $composer_template_contents);
$composer_template_contents = str_replace("SITE_CONTENTS_URL_REPLACE", $SITE_CONTENTS_GATEWAY, $composer_template_contents);
$composer_template_contents = str_replace("SITE_CONTACT_URL_REPLACE", $SITE_CONTACT_GATEWAY, $composer_template_contents);
$composer_template_contents = str_replace("TEMPLATE_NAME_REPLACE", $templateRandom, $composer_template_contents);
$composer_template_contents = str_replace("TEMPLATE_NAME_REPLACE", $PROVISION_IMAGE_FLAVOR, $composer_template_contents);
try {
//Save to the specific path
@@ -381,7 +407,6 @@ class Provision extends BaseController
}
// GET THE TEMPLATE FOR THIS PROVISIONING
return $composer_template_contents;
}
@@ -399,6 +424,25 @@ class Provision extends BaseController
log_message('critical', "***** ***** scheduleRefreshAction Started:: () ");
}
}
$mysql = "SELECT * FROM member_product_refresh WHERE product_id IN ('A000003','A000004') AND status =0 LIMIT 1";
$query = $this->db->query($mysql);
// $num = $query->num_rows();
$provision_list = $query->getResult();
//$provision_list =[];
foreach ($provision_list as $pr) {
$this->db->query("UPDATE member_product_refresh SET status = status + 1 WHERE id = " . $pr->id);
$subscriptionUId = $pr->subscription_uid;
if ($this->refreshBlogProvision($subscriptionUId) == 100) {
log_message('critical', "***** ***** scheduleRefreshAction Started:: () ");
}
}
}
private function refreshBlogProvision($subscriptionUId): int
{
return 0;
}
private function refreshProvision($subscriptionUId): int
@@ -782,6 +826,14 @@ class Provision extends BaseController
return 0;
}
/*
// $data["product_uid"] = "bea86662-adb3-4c09-816b-014f450d9713"; // 3cc24fd6-e6c7-4c08-8a64-f06e3f790f38
$data["product_uid"] = "3cc24fd6-e6c7-4c08-8a64-f06e3f790f38"; //
$data["provision_action"] = "Auto%20Configuration%20Started";
$SOCKET_SERVER_LOCATION = $_ENV['SOCKET_SERVER_LOCATION'];
log_message('critical', "TEST TEST ***** ***** Provision :: Action To :: " . $SOCKET_SERVER_LOCATION . '/broadcast/provisioning');
$this->APIcall("GET", $SOCKET_SERVER_LOCATION . '/broadcast/provisioning', $data);
*/
public function releaseProvision()
{
log_message('critical', "***** ***** ReleaseProvision :: Execute Actual Provisioning() ");