diff --git a/app/Controllers/BaseController.php b/app/Controllers/BaseController.php index d47733d..3d3c579 100644 --- a/app/Controllers/BaseController.php +++ b/app/Controllers/BaseController.php @@ -108,7 +108,7 @@ abstract class BaseController extends Controller public function ansibleLogin(): string { $token = null; - if (isset($_ENV['ANSIBLE_LOGIN_TOKEN']) && $_ENV['ANSIBLE_LOGIN_TOKEN'] !=''){ + if (isset($_ENV['ANSIBLE_LOGIN_TOKEN']) && $_ENV['ANSIBLE_LOGIN_TOKEN'] != '') { log_message('critical', "***** ***** Provision TOKEN CONFIGURED :: " . $_ENV['ANSIBLE_LOGIN_TOKEN']); return $_ENV['ANSIBLE_LOGIN_TOKEN']; } @@ -117,12 +117,10 @@ abstract class BaseController extends Controller // Code that might throw an exception $result = "Unhandled exception"; $base_url = $_ENV['ANSIBLE_AUTOMATION_SERVER_LOCATION']; - // $base_url = "http://172.16.4.90:3000"; $cookies = tempnam('/tmp', 'cookie.txt'); # 1. Login // $url = $base_url . "/api/auth/login"; -// $url = $base_url . "/auth/login"; $url = $base_url . $_ENV['ANSIBLE_LOGIN_URL']; log_message('critical', "***** ***** Provision LOGIN URL:: " . $url); @@ -188,35 +186,45 @@ abstract class BaseController extends Controller { // log_message('critical', "***** ***** Provision CALL:: ansibleProvision() Token ".$ansibleToken); // log_message('critical', "***** ***** Provision CALL:: ansibleProvision() Token ". serialize( $params)); - - $result = "Unhandled exception"; - //$base_url = "http://172.16.4.90:3000"; - $base_url = $_ENV['ANSIBLE_AUTOMATION_SERVER_LOCATION']; - //$PROJECT_ID= 8; - $PROJECT_ID = $_ENV['ANSIBLE_AUTOMATION_PROJECT_ID']; + try { + $result = "Unhandled exception"; + $base_url = $_ENV['ANSIBLE_AUTOMATION_SERVER_LOCATION']; + //$PROJECT_ID= 8; + $PROJECT_ID = $_ENV['ANSIBLE_AUTOMATION_PROJECT_ID']; // $url = $base_url . "/api/project/$PROJECT_ID/tasks"; // $url = $base_url . "/project/$PROJECT_ID/tasks"; - $url = $base_url . $_ENV['ANSIBLE_TASK_URL'] . $PROJECT_ID . "/tasks"; - log_message('critical', "***** ***** Provision CALL URL:: " . $url); + $url = $base_url . $_ENV['ANSIBLE_TASK_URL'] . $PROJECT_ID . "/tasks"; + log_message('critical', "***** ***** Provision CALL URL:: " . $url); - $headers = [ - 'Content-Type:application/json', - 'Accept: application/json', - 'Authorization: Bearer ' . $ansibleToken - ]; - $ch = curl_init($url); - $payload = json_encode($params); - // $payload = json_encode( array( "template_id"=> 1, "debug" => false, "dry_run" => false, "playbook" => "first-playbook.yml", "environment" => "{}" ) ); - curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); - curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); - curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); - $res = curl_exec($ch); - $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); - $result .= "\n" . 'Launch task HTTP code: ' . $httpcode; - log_message('critical', "***** ***** Provision LAUNCHED :: ansibleProvision(httpcode) " . $result); + $headers = [ + 'Content-Type:application/json', + 'Accept: application/json', + 'Authorization: Bearer ' . $ansibleToken + ]; + $ch = curl_init($url); + $payload = json_encode($params); + // $payload = json_encode( array( "template_id"=> 1, "debug" => false, "dry_run" => false, "playbook" => "first-playbook.yml", "environment" => "{}" ) ); + curl_setopt($ch, CURLOPT_POSTFIELDS, $payload); + curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); + curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); + $res = curl_exec($ch); + + // 4. Check for errors during the execution + if (curl_errno($ch)) { + $error_message = 'cURL error: ' . curl_error($ch); + log_message('critical', "***** ***** Provision LAUNCHED ERROR :: " . $error_message); + } + + $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE); + $result .= "\n" . 'Launch task HTTP code: ' . $httpcode; + log_message('critical', "***** ***** Provision LAUNCHED :: ansibleProvision(httpcode) " . $result); + + curl_close($ch); + } catch (\Exception $e) { + log_message('critical', "***** ***** Provision TASK CREATION FAILED :: " . $e->getMessage()); + } - curl_close($ch); # 4. Get tasks // $url = $base_url . "/api/project/$PROJECT_ID/tasks";