serverList()只返回100个结果(serverList() only returns 100 results)

编程入门 行业动态 更新时间:2024-10-27 21:21:57
serverList()只返回100个结果(serverList() only returns 100 results)

我正在尝试编写一些代码来清点我们的OpenStack部署,并且我遇到了一个问题,其中serverList()只返回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));

I'm trying to write a bit of code to inventory our OpenStack deployment, and I've run into an issue where serverList() only ever returns 100 results instead of the 600+ I'm expecting. I've reviewed the documentation and a bit of the source, and as far as I can tell there's no reason that this should be happening as the PaginatedIterator should be doing its pagination transparently.

There are no errors or warning either generated in my code, or logged on my controller [that I can find]. I am using php-opencloud v1.12 via 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));

最满意答案

分页的默认限制为100.可以使用更高的限制覆盖此限制,如下所示:

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

The default limit for pagination is 100. It is possible to override this with a higher limit like so:

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

更多推荐

本文发布于:2023-07-19 01:08:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1169744.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:serverList   results   returns

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!