Skip to content

Commit ad1a052

Browse files
authored
feat: new sample - list all compute instances (GoogleCloudPlatform#1354)
Adding GCE sample to list all instances for particular projectId
1 parent f688db6 commit ad1a052

File tree

2 files changed

+72
-0
lines changed

2 files changed

+72
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
<?php
2+
/**
3+
* Copyright 2021 Google Inc.
4+
*
5+
* Licensed under the Apache License, Version 2.0 (the "License");
6+
* you may not use this file except in compliance with the License.
7+
* You may obtain a copy of the License at
8+
*
9+
* http://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
18+
/**
19+
* For instructions on how to run the full sample:
20+
*
21+
* @see https://github.com/GoogleCloudPlatform/php-docs-samples/tree/master/compute/cloud-client/README.md
22+
*/
23+
24+
namespace Google\Cloud\Samples\Compute;
25+
26+
# [START compute_instances_list_all]
27+
use Google\Cloud\Compute\V1\InstancesClient;
28+
29+
/**
30+
* List all instances for particular $projectId
31+
* Example:
32+
* ```
33+
* list_all_instances($projectId);
34+
* ```
35+
*
36+
* @param string $projectId Your Google Cloud project ID.
37+
*
38+
* @throws \Google\ApiCore\ApiException if the remote call fails.
39+
*/
40+
function list_all_instances(string $projectId)
41+
{
42+
// List the new Compute Engine instance using the InstancesClient
43+
$instancesClient = new InstancesClient();
44+
$allInstances = $instancesClient->aggregatedList($projectId);
45+
46+
printf('All instances for %s' . PHP_EOL, $projectId);
47+
foreach ($allInstances as $zone => $zoneInstances) {
48+
$instances = $zoneInstances->getInstances();
49+
if (count($instances) > 0) {
50+
printf('Zone - %s' . PHP_EOL, $zone);
51+
foreach ($instances as $instance) {
52+
printf(' - %s' . PHP_EOL, $instance->getName());
53+
}
54+
}
55+
}
56+
}
57+
# [END compute_instances_list_all]
58+
59+
require_once __DIR__ . '/../../../../testing/sample_helpers.php';
60+
\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv);

compute/cloud-client/instances/test/instancesTest.php

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,18 @@ public function testListInstances()
5555
$this->assertStringContainsString(self::$instanceName, $output);
5656
}
5757

58+
/**
59+
* @depends testCreateInstance
60+
*/
61+
public function testListAllInstances()
62+
{
63+
$output = $this->runFunctionSnippet('list_all_instances', [
64+
'projectId' => self::$projectId
65+
]);
66+
$this->assertStringContainsString(self::$instanceName, $output);
67+
$this->assertStringContainsString(self::DEFAULT_ZONE, $output);
68+
}
69+
5870
/**
5971
* @depends testCreateInstance
6072
*/

0 commit comments

Comments
 (0)