Использование https при вызове метода waitFor для настройки openstack nova server

У меня есть следующий скрипт PHP (это только нижняя половина):

use Guzzle\Http\Exception\BadResponseException;

$server = $compute->server();

try {
$response = $server->create(array(
'name'   => 'My server',
'image'  => $centos,
'flavor' => $twoGbFlavor
));
} catch (BadResponseException $e) {
// No! Something failed. Let's find out:
printf("Request: %s\n\nResponse: %s", $e->getRequest(), $e->getResponse());
}

use OpenCloud\Compute\Constants\ServerState;

$callback = function($server) {
if (!empty($server->error)) {
var_dump($server->error);
exit;
} else {
echo sprintf(
"Waiting on %s/%-12s %4s%%",
$server->name(),
$server->status(),
isset($server->progress) ? $server->progress : 0
);
}
};

$server->waitFor(ServerState::ACTIVE, 600, $callback);

Когда я запускаю его, я получаю следующую ошибку:

PHP Fatal error:  Uncaught exception 'Guzzle\Http\Exception\CurlException' with message '[curl] 52: Empty reply from server [url] http://api.openstack.ecloud.co.uk:8774/v2/b7db5fe13c044b6e95bf5b766ae49393/servers/f5bf8951-f662-4940-904c-023b98b724c0' in /var/www/html/nutshell/openstack/vendor/guzzle/guzzle/src/Guzzle/Http/Curl/CurlMulti.php:359

Я сузил это до проблемы с методом waitFor, использующим http вместо https. Однако я не могу решить, как заставить этот метод использовать https или, если есть параметр, который я могу изменить, чтобы заставить все вызовы через https?

Кроме того, я попытался выполнить эти команды, используя curl в командной строке, вне сценария, и могу подтвердить, что https работает. Так что мне просто нужно разобраться, как заставить скрипт вызывать https.

Кроме того, обратите внимание, что вызов $ server-> create выше работает нормально, и я бы просто ожидал, что waitFor будет работать таким же образом (то есть через https).

Любая помощь приветствуется.

1

Решение

Вы создали сервер с https, получили ответ с данными сервера. Данные сервера содержат собственный URL, и этот URL, скорее всего, является http.
«waitFor» вызывает openstack для данных сервера с этим URL. Вы можете увидеть это здесь:
https://github.com/rackspace/php-opencloud/blob/working/lib/OpenCloud/Common/Resource/BaseResource.php (строка 148)

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]