83 lines
2.5 KiB
PHP
Executable File
83 lines
2.5 KiB
PHP
Executable File
<?php
|
|
/**
|
|
* Test Huawei Cloud SDK officiel
|
|
*/
|
|
|
|
require_once '/opt/wevads/vendor/autoload.php';
|
|
|
|
use HuaweiCloud\SDK\Core\Auth\BasicCredentials;
|
|
use HuaweiCloud\SDK\Core\Http\HttpConfig;
|
|
use HuaweiCloud\SDK\Core\Exceptions\ConnectionException;
|
|
use HuaweiCloud\SDK\Core\Exceptions\RequestTimeoutException;
|
|
use HuaweiCloud\SDK\Core\Exceptions\ServiceResponseException;
|
|
use HuaweiCloud\SDK\Ecs\V2\EcsClient;
|
|
use HuaweiCloud\SDK\Ecs\V2\Model\ListServersDetailsRequest;
|
|
|
|
header('Content-Type: text/plain');
|
|
|
|
// Connexion DB pour récupérer les credentials
|
|
$pdo = new PDO("pgsql:host=localhost;dbname=adx_system", "admin", "admin123");
|
|
$account = $pdo->query("SELECT * FROM admin.huawei_accounts WHERE status = 'Activated' LIMIT 1")->fetch(PDO::FETCH_ASSOC);
|
|
|
|
if (!$account) {
|
|
die("Aucun compte Huawei actif trouvé");
|
|
}
|
|
|
|
$ak = $account['application_key'];
|
|
$sk = $account['secret_key'];
|
|
$projectId = $account['consumer_key']; // Project ID
|
|
$region = $account['region'];
|
|
|
|
echo "=== COMPTE HUAWEI ===\n";
|
|
echo "Nom: " . $account['name'] . "\n";
|
|
echo "Region: $region\n";
|
|
echo "Project ID: $projectId\n";
|
|
echo "AK: " . substr($ak, 0, 12) . "...\n\n";
|
|
|
|
// Configuration
|
|
$config = HttpConfig::getDefaultConfig();
|
|
$config->setIgnoreSslVerification(true);
|
|
$config->setTimeout(30);
|
|
|
|
// Credentials (BasicCredentials pour les services régionaux)
|
|
$credentials = new BasicCredentials($ak, $sk, $projectId);
|
|
|
|
// Endpoint ECS
|
|
$endpoint = "https://ecs.$region.myhuaweicloud.com";
|
|
|
|
echo "Endpoint: $endpoint\n\n";
|
|
|
|
try {
|
|
// Créer le client ECS
|
|
$ecsClient = EcsClient::newBuilder()
|
|
->withHttpConfig($config)
|
|
->withEndpoint($endpoint)
|
|
->withCredentials($credentials)
|
|
->build();
|
|
|
|
echo "=== TEST: Liste des serveurs ===\n";
|
|
|
|
// Lister les serveurs
|
|
$request = new ListServersDetailsRequest();
|
|
$response = $ecsClient->listServersDetails($request);
|
|
|
|
echo "Réponse reçue!\n";
|
|
echo $response . "\n";
|
|
|
|
} catch (ConnectionException $e) {
|
|
echo "Erreur de connexion: " . $e->getMessage() . "\n";
|
|
} catch (RequestTimeoutException $e) {
|
|
echo "Timeout: " . $e->getMessage() . "\n";
|
|
} catch (ServiceResponseException $e) {
|
|
echo "Erreur API:\n";
|
|
echo " HTTP Status: " . $e->getHttpStatusCode() . "\n";
|
|
echo " Request ID: " . $e->getRequestId() . "\n";
|
|
echo " Error Code: " . $e->getErrorCode() . "\n";
|
|
echo " Error Msg: " . $e->getErrorMsg() . "\n";
|
|
} catch (Exception $e) {
|
|
echo "Erreur: " . $e->getMessage() . "\n";
|
|
}
|
|
|
|
echo "\n=== DONE ===\n";
|
|
|