refresh actions
This commit is contained in:
@@ -32,6 +32,9 @@ class Provision extends BaseController
|
||||
log_message('critical', "***** ***** prepareProvision :: Populate HAPROXY for URL ");
|
||||
$this->configureURL();
|
||||
|
||||
log_message('critical', "***** ***** scheduleRefreshAction :: Refresh Requested Sites ");
|
||||
$this->scheduleRefreshAction();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
@@ -193,8 +196,123 @@ class Provision extends BaseController
|
||||
$this->registerProvision($subscriptionId,$prov_name);
|
||||
$this->provisionActions($memberID, $provisionUID, "Auto Configuration Started");
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
return view('welcome_message');
|
||||
private function scheduleRefreshAction(){
|
||||
$mysql = "SELECT * FROM member_product_refresh WHERE product_id IN ('A000001','A0000012') 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;
|
||||
$this->refreshProvision($subscriptionUId);
|
||||
}
|
||||
}
|
||||
|
||||
private function refreshProvision($subscriptionUId){
|
||||
log_message('critical', "***** ***** refreshProvision :: Execute Refresh Provisioning() ");
|
||||
$rsyncPass = "******noNEDD****";
|
||||
// $remote_composer_path = "chiefsoft@10.0.0.32:/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
||||
// $partMachineLocal = "/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
||||
$remote_composer_path = $_ENV['REMOTE_COMPOSER_PATH']; // "chiefsoft@10.0.0.32:/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
||||
$partMachineLocal = $_ENV['PATH_MACHINE_LOCAL']; // "/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
||||
$ansibleToken = $this->ansibleLogin();
|
||||
$mysql ="SELECT pp.uid AS prov_uid, p.id AS mpid,
|
||||
p.product_id, pp.id AS plan_id, pp.uid ,
|
||||
pp.provision_id, pp.play_file,
|
||||
p.uid AS member_product_uid ,
|
||||
p.member_id AS member_id ,
|
||||
p.internal_url ,
|
||||
p.provision_port,
|
||||
p.provision_status
|
||||
FROM provision_plans pp
|
||||
LEFT JOIN members_products p ON p.id =pp.provision_id
|
||||
WHERE p.uid = '$subscriptionUId' ";
|
||||
|
||||
$query = $this->db->query($mysql);
|
||||
$provision_list = $query->getResult();
|
||||
foreach ($provision_list as $pr) {
|
||||
$playFile = $pr->play_file;
|
||||
$planId = $pr->plan_id;
|
||||
$provisionId = $pr->provision_id;
|
||||
$productId = $pr->product_id;
|
||||
$productUid = $pr->member_product_uid;
|
||||
$playbook = $pr->product_id.".yml";
|
||||
$provisionUID = $pr->prov_uid;
|
||||
$member_id = $pr->member_id;
|
||||
$internal_url = $pr->internal_url;
|
||||
$provision_port = $pr->provision_port;
|
||||
$members_product_id = $pr->mpid;
|
||||
|
||||
log_message('critical', "Members Product ID ***** ".$pr->mpid." Provision_Status == ". $pr->provision_status);
|
||||
$this->updateToNow($productUid); // increase count not to repeat
|
||||
|
||||
$ansible_host = $productId . "_SERVER";
|
||||
$ContainerName = $this->generatedContainerName($productId, $pr->mpid ); //$productId ."-SVR-". str_pad($pr->mpid, 10, "0", STR_PAD_LEFT);
|
||||
//$destinationHomeFolder = "/home/chiefsoft/SITES/" . $ContainerName;
|
||||
$destinationHomeFolder = $_ENV['DESTINATION_HOME_FOLDER'] . $ContainerName;
|
||||
// $composer_template_path_local = $partMachineLocal . $provisionUID;
|
||||
// $composer_template_path_remote = $remote_composer_path . $provisionUID;
|
||||
|
||||
$composer_template_path_local = $partMachineLocal . $productUid;
|
||||
$composer_template_path_remote = $remote_composer_path . $productUid;
|
||||
|
||||
// $ansible_transport_path = $pr->provision_uid; // $ContainerName;
|
||||
$ansible_transport_path = $productUid; // $ContainerName;
|
||||
|
||||
// let us make sure all we promise are availale
|
||||
//"WHAT_PART_LOCAL
|
||||
|
||||
|
||||
// Remember this is in a CONTAINER so the path follows
|
||||
$this_composer_part_location = "/var/www/html/ANSIBLE/parts/". $productUid;
|
||||
if (!is_dir( $this_composer_part_location )) {
|
||||
mkdir($this_composer_part_location , 0700);
|
||||
}
|
||||
|
||||
// make sure we compose the docker compose to use
|
||||
$this->prepareDockerComposer(
|
||||
$members_product_id,
|
||||
$provision_port,
|
||||
$productId,
|
||||
$productUid,
|
||||
$member_id,
|
||||
$internal_url
|
||||
);
|
||||
|
||||
$this->db->query("UPDATE provision_plans SET updated = now() WHERE id = $planId");
|
||||
// $this->db->query("UPDATE members_products SET p_file = p_file + 1 WHERE id = $provisionId");
|
||||
$params = [
|
||||
"template_id"=> 2,
|
||||
"debug"=> false,
|
||||
"dry_run"=> false,
|
||||
"playbook"=> $playbook,
|
||||
"environment"=> "{
|
||||
\"WHAT_HOST_IN_USE\":\"$ansible_host\",
|
||||
\"DESTINATION_FOLDER\":\"$destinationHomeFolder\",
|
||||
\"WHAT_PART_LOCAL\":\"$composer_template_path_local\",
|
||||
\"WHAT_PART_REMOTE\":\"$composer_template_path_remote\",
|
||||
\"ANSIBLE_TRANSPORT_PATH\":\"$ansible_transport_path\",
|
||||
\"RSYNC_PASSWORD\":\"$rsyncPass\",
|
||||
\"CONTAINER_NAME\":\"$ContainerName\"
|
||||
}"
|
||||
];
|
||||
$ansibleReturn = $this->ansibleProvision($ansibleToken, $params);
|
||||
|
||||
log_message('critical', "ANSIBLE RETURN ***** ".$ansibleReturn);
|
||||
if ( $ansibleReturn === 200 ){
|
||||
log_message('critical', "Calling update_To_Completed ***** ".$ansibleReturn);
|
||||
$this->update_To_Completed($productUid);
|
||||
}
|
||||
else{
|
||||
log_message('critical', "Calling WHY PATH update_To_Completed ***** ".$ansibleReturn);
|
||||
$this->update_To_Completed($productUid);
|
||||
}
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
private function prepareDockerComposer(
|
||||
|
||||
Reference in New Issue
Block a user