Skip to content

Commit 7704a0f

Browse files
committed
better support for non-associative responses
Signed-off-by: Travis Glenn Hansen <travisghansen@yahoo.com>
1 parent 9ec16c1 commit 7704a0f

File tree

1 file changed

+9
-7
lines changed

1 file changed

+9
-7
lines changed

src/KubernetesClient/ResourceList.php

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
namespace KubernetesClient;
44

5+
use KubernetesClient\Dotty\DotAccess;
6+
57
/**
68
* Used to iterate large lists of data over multiple requests. Uses the kubernetes 'continue' feature to keep making
79
* subsequent requests.
@@ -89,13 +91,13 @@ public function get($pages = 0)
8991
$list = $this->getClient()->request($endpoint, 'GET', $params);
9092

9193
$i = 1;
92-
while (array_key_exists('continue', $list['metadata']) && $list['metadata']['continue']) {
94+
while (DotAccess::get($list, 'metadata.continue', false)) {
9395
if ($pages > 0 && $pages >= $i) {
9496
return $list;
9597
}
96-
$params['continue'] = $list['metadata']['continue'];
98+
$params['continue'] = DotAccess::get($list, 'metadata.continue');
9799
$i_list = $this->getClient()->request($endpoint, 'GET', $params);
98-
$i_list['items'] = array_merge($list['items'], $i_list['items']);
100+
DotAccess::set($i_list, 'items', array_merge(DotAccess::get($list, 'items'), DotAccess::get($i_list, 'items')));
99101
$list = $i_list;
100102
unset($i_list);
101103
$i++;
@@ -115,14 +117,14 @@ public function stream()
115117
$endpoint = $this->getEndpoint();
116118
$params = $this->getParams();
117119
$list = $this->getClient()->request($endpoint, 'GET', $params);
118-
foreach ($list['items'] as $item) {
120+
foreach (DotAccess::get($list, 'items') as $item) {
119121
yield $item;
120122
}
121123

122-
while (array_key_exists('continue', $list['metadata']) && $list['metadata']['continue']) {
123-
$params['continue'] = $list['metadata']['continue'];
124+
while (DotAccess::get($list, 'metadata.continue', false)) {
125+
$params['continue'] = DotAccess::get($list, 'metadata.continue');
124126
$list = $this->getClient()->request($endpoint, 'GET', $params);
125-
foreach ($list['items'] as $item) {
127+
foreach (DotAccess::get($list, 'items', false) as $item) {
126128
yield $item;
127129
}
128130
}

0 commit comments

Comments
 (0)