22
33namespace 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