serverList() возвращает только 100 результатов


Я пытаюсь написать немного кода для инвентаризации нашего развертывания OpenStack, и я столкнулся с проблемой, когда serverList() возвращает только 100 результатов вместо 600+, которые я ожидаю. Я просмотрел документацию и немного источника, и, насколько я могу судить, нет причин, по которым это должно происходить, поскольку PaginatedIterator должен прозрачно разбивать страницы на страницы.

В моем коде нет ошибок или предупреждений, сгенерированных или зарегистрированных на моем контроллере [что я могу найти]. Я использую php-opencloud v1.12 через composer.

use OpenCloud\OpenStack;
$client = new OpenStack('http://1.2.3.4:5000/v2.0/', array(
    'username'  => 'admin',
    'password'  => 'hunter2',
    'tenantName'=> 'admin',
));
$service = $client->computeService('nova', 'RegionOne');

$stmt = $dbh->prepare('INSERT INTO servers VALUES (?,?)');
/* foreach($service->serverList() as $server) {
    $stmt->execute([$server->id, $server->name]);
} // neither method works */
$list = $service->serverList();
while( $list->valid() ) {
    $server = $list->current();
    $stmt->execute([$server->id, $server->name]);
    $list->next();
}
echo "\n";
var_dump($dbh->query('SELECT * FROM servers')->fetchAll(PDO::FETCH_ASSOC));
Author: Sammitch, 2015-02-24

1 answers

Ограничение по умолчанию для разбиения на страницы равно 100. Это можно переопределить с помощью более высокого предела, например:

$list = $service->serverList(null, array('limit' => 700));
 1
Author: Shaunak Kashyap, 2015-02-24 23:23:30