provision test
This commit is contained in:
@@ -11,10 +11,12 @@ class Provision extends BaseController
|
|||||||
{
|
{
|
||||||
$this->allocatePortNo(); // allocte port for the conyainer use
|
$this->allocatePortNo(); // allocte port for the conyainer use
|
||||||
|
|
||||||
|
$this->updateProvision();
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
public function updateProvision(): string
|
public function updateProvision(): string
|
||||||
{
|
{
|
||||||
|
$list_limit = 1; // for noow
|
||||||
$public_path = FCPATH;
|
$public_path = FCPATH;
|
||||||
$ansible_folder = str_replace("public/", "ANSIBLE", $public_path);
|
$ansible_folder = str_replace("public/", "ANSIBLE", $public_path);
|
||||||
$partMachineLocal = "/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
$partMachineLocal = "/home/chiefsoft/MermsProvision/ANSIBLE/parts/";
|
||||||
@@ -22,7 +24,11 @@ class Provision extends BaseController
|
|||||||
mkdir($ansible_folder . "/parts", 0700);
|
mkdir($ansible_folder . "/parts", 0700);
|
||||||
}
|
}
|
||||||
|
|
||||||
$mysql = "SELECT id, uid, internal_url,product_id,status,provision_port FROM members_products WHERE provision_port = 0 ";
|
$mysql = "SELECT id, uid, internal_url,product_id,status,provision_port,updated
|
||||||
|
FROM members_products
|
||||||
|
WHERE provision_port > 0
|
||||||
|
ORDER BY updated ASC LIMIT ".$list_limit;
|
||||||
|
|
||||||
$query = $this->db->query($mysql);
|
$query = $this->db->query($mysql);
|
||||||
// $num = $query->num_rows();
|
// $num = $query->num_rows();
|
||||||
$provision_list = $query->getResult();
|
$provision_list = $query->getResult();
|
||||||
@@ -35,6 +41,7 @@ class Provision extends BaseController
|
|||||||
$partFolder = $ansible_folder . "/parts/" . $provisionUID;
|
$partFolder = $ansible_folder . "/parts/" . $provisionUID;
|
||||||
|
|
||||||
$allocatedPort = 8011;
|
$allocatedPort = 8011;
|
||||||
|
$this->updateToNow($provisionUID);
|
||||||
|
|
||||||
if (!is_dir($partFolder)) {
|
if (!is_dir($partFolder)) {
|
||||||
mkdir($partFolder, 0700);
|
mkdir($partFolder, 0700);
|
||||||
@@ -77,9 +84,103 @@ class Provision extends BaseController
|
|||||||
return view('welcome_message');
|
return view('welcome_message');
|
||||||
}
|
}
|
||||||
|
|
||||||
private function allocatePortNo(){
|
private function allocatePortNo(){
|
||||||
|
$list_limit = 2;
|
||||||
|
$mysql = "SELECT id, uid, internal_url,product_id,status,provision_port,updated
|
||||||
|
FROM members_products
|
||||||
|
WHERE provision_port = 0
|
||||||
|
ORDER BY updated ASC LIMIT ".$list_limit;
|
||||||
|
|
||||||
// return;
|
$query = $this->db->query($mysql);
|
||||||
|
$provision_list = $query->getResult();
|
||||||
|
foreach ($provision_list as $pr) {
|
||||||
|
|
||||||
|
$productId = $pr->product_id;
|
||||||
|
$provisionUID = $pr->uid;
|
||||||
|
|
||||||
|
$allocated_port = $this->allocatePortNumber( $productId );
|
||||||
|
$primary_server = $this->provisionServer( $productId );
|
||||||
|
$mysql = "UPDATE members_products SET updated=now(), provision_port=".$allocated_port.", primary_server='".$primary_server."' WHERE uid::TEXT = '".$provisionUID."' AND provision_port = 0";
|
||||||
|
$query = $this->db->query($mysql);
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private function allocatePortNumber($productId){
|
||||||
|
$portF = 0;
|
||||||
|
try {
|
||||||
|
$mysql = "SELECT max(provision_port) AS max_port FROM members_products WHERE product_id = '".$productId."'";
|
||||||
|
$query = $this->db->query($mysql);
|
||||||
|
$maxItem = $query->getResult()[0]->max_port;
|
||||||
|
//var_dump($maxItem);
|
||||||
|
if ($maxItem == 0 ){
|
||||||
|
switch ($productId) {
|
||||||
|
case "A000002":
|
||||||
|
$maxItem = 5500;
|
||||||
|
break;
|
||||||
|
case "A000004":
|
||||||
|
$maxItem = 8800;
|
||||||
|
break;
|
||||||
|
case "A000005":
|
||||||
|
$maxItem = 7700;
|
||||||
|
break;
|
||||||
|
case "A000001":
|
||||||
|
$maxItem = 4400;
|
||||||
|
break;
|
||||||
|
case "A000003":
|
||||||
|
$maxItem = 6600;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
$maxItem = $maxItem+1;
|
||||||
|
}
|
||||||
|
$portF = $maxItem;
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo 'Caught exception: ', $e->getMessage(), "\n";
|
||||||
|
}
|
||||||
|
return $portF;
|
||||||
|
}
|
||||||
|
|
||||||
|
private function provisionServer($productId){
|
||||||
|
switch ($productId) {
|
||||||
|
case "A000001":
|
||||||
|
case "A000002":
|
||||||
|
$primaryServer = "172.16.4.92";
|
||||||
|
break;
|
||||||
|
case "A000003":
|
||||||
|
case "A000004":
|
||||||
|
$primaryServer = "172.16.4.91";
|
||||||
|
break;
|
||||||
|
case "A000005":
|
||||||
|
$primaryServer = "172.16.4.95";
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return $primaryServer;
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
[A000001_SERVER]
|
||||||
|
172.16.4.92
|
||||||
|
|
||||||
|
[A000002_SERVER]
|
||||||
|
172.16.4.92
|
||||||
|
|
||||||
|
[A000003_SERVER]
|
||||||
|
172.16.4.91
|
||||||
|
|
||||||
|
[A000004_SERVER]
|
||||||
|
172.16.4.91
|
||||||
|
|
||||||
|
[A000005_SERVER]
|
||||||
|
172.16.4.95
|
||||||
|
*/
|
||||||
|
private function updateToNow($provisionUID){
|
||||||
|
try {
|
||||||
|
$mysql = "UPDATE members_products SET updated=now() WHERE uid::TEXT = '".$provisionUID."'";
|
||||||
|
$query = $this->db->query($mysql);
|
||||||
|
} catch (Exception $e) {
|
||||||
|
echo 'Caught exception: ', $e->getMessage(), "\n";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user