serverList()只返回100个结果


serverList() only returns 100 results

我正试图编写一些代码来清点我们的OpenStack部署,但我遇到了一个问题,即serverList()只返回100个结果,而不是我期望的600+个结果。我已经查看了文档和一些源代码,据我所知,没有理由发生这种情况,因为分页描述符应该透明地进行分页。

我的代码中没有生成错误或警告,也没有登录到我的控制器上[我能找到]。我通过composer使用php opencloud v1.12。

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));

分页的默认限制为100。可以用更高的限制来覆盖这一点,比如:

$list = $service->serverList(null, array('limit' => 700));