serverList() 只有 returns 100 个结果
serverList() only returns 100 results
我正在尝试编写一些代码来清点我们的 OpenStack 部署,并且我 运行 遇到了一个问题,其中 serverList()
只有 returns 100 个结果而不是我期待的 600+。我已经查看了文档和一些源代码,据我所知,没有理由发生这种情况,因为 PaginatedIterator 应该透明地进行分页。
我的代码中没有生成任何错误或警告,也没有记录在我的控制器上 [我能找到]。我正在通过 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));
我正在尝试编写一些代码来清点我们的 OpenStack 部署,并且我 运行 遇到了一个问题,其中 serverList()
只有 returns 100 个结果而不是我期待的 600+。我已经查看了文档和一些源代码,据我所知,没有理由发生这种情况,因为 PaginatedIterator 应该透明地进行分页。
我的代码中没有生成任何错误或警告,也没有记录在我的控制器上 [我能找到]。我正在通过 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));