API изменения размера VDI не работает
Я разрабатываю веб-приложение для управления Xen с Php. API переименования VDI (образ виртуального диска) и API изменения размера очень похожи. Мне не удалось изменить размеры VDI. Вы думаете, что я здесь делаю не так?
Функция переименования:
function xenapi_set_vdi_name($session, $ref, $name)
{
$conn = $session[0];
$sess = new xmlrpcval($session[1]);
$vdi = new xmlrpcval($ref);
$name = new xmlrpcval($name);
$msg = new xmlrpcmsg("VDI.set_name_label", array($sess, $vdi, $name));
$res = $conn->send($msg);
if ($res->faultcode())
return false;
$val = $res->value();
$status = $val->structmem("Status");
if ($status->scalarval() != "Success")
return false;
$value = $val->structmem("Value");
return $value->scalarval();
}
Переименование рабочего использования:
...
xenapi_set_vdi_name($session, $vdi, "NewNameToMyVDI");
...
Функция изменения размера:
function xenapi_set_vdi_virtual_size($session, $ref, $size)
{
$conn = $session[0];
$sess = new xmlrpcval($session[1]);
$vdi = new xmlrpcval($ref);
$size = new xmlrpcval($size);
$msg = new xmlrpcmsg("VDI.set_virtual_size", array($sess, $vdi, $size));
$res = $conn->send($msg);
if ($res->faultcode())
return false;
$val = $res->value();
$status = $val->structmem("Status");
if ($status->scalarval() != "Success")
return false;
$value = $val->structmem("Value");
return $value->scalarval();
}
Не работает изменение размера использования:
...
$size = '27011707392';
settype($size, "integer");
xenapi_set_vdi_virtual_size($session, $vdi, $size);
...
Новое значение размера работает с командой XEN на физическом сервере как:
xe vdi-resize uuid="91fe671c-93e1-4162-8128-96fedc3c215c" disk-size="27011707392"
1 ответ
Просто для полноты: этот вопрос был продублирован (см. Ссылку ниже) и сообщен как успешно решенный, поэтому я вставляю свой ответ на этот вопрос здесь.
Вопрос: VDI изменяет размер API, не работает
Ответ: из краткого обзора: http://xen.org/files/XenCloud/ocamldoc/apidoc.html?c=VDI
Я думаю, что вы должны попытаться использовать методы "изменить размер" или "изменить размер онлайн" вместо "установить виртуальный размер".
Сообщается как успешный с помощью метода "изменить размер".