Skip to content

Commit 55a800e

Browse files
authored
feat(spanner): add samples for creating instances with processing units (GoogleCloudPlatform#1441)
1 parent c862427 commit 55a800e

File tree

2 files changed

+91
-0
lines changed

2 files changed

+91
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
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/spanner/README.md
22+
*/
23+
24+
namespace Google\Cloud\Samples\Spanner;
25+
26+
// [START spanner_create_instance_with_processing_units]
27+
use Google\Cloud\Spanner\SpannerClient;
28+
29+
/**
30+
* Creates an instance.
31+
* Example:
32+
* ```
33+
* create_instance_with_processing_units($instanceId);
34+
* ```
35+
*
36+
* @param string $instanceId The Spanner instance ID.
37+
*/
38+
function create_instance_with_processing_units(string $instanceId): void
39+
{
40+
$spanner = new SpannerClient();
41+
$instanceConfig = $spanner->instanceConfiguration(
42+
'regional-us-central1'
43+
);
44+
$operation = $spanner->createInstance(
45+
$instanceConfig,
46+
$instanceId,
47+
[
48+
'displayName' => 'This is a display name.',
49+
'processingUnits' => 500,
50+
'labels' => [
51+
'cloud_spanner_samples' => true,
52+
]
53+
]
54+
);
55+
56+
print('Waiting for operation to complete...' . PHP_EOL);
57+
$operation->pollUntilComplete();
58+
59+
printf('Created instance %s' . PHP_EOL, $instanceId);
60+
61+
$instance = $spanner->instance($instanceId);
62+
$info = $instance->info(['processingUnits']);
63+
printf('Instance %s has %d processing units.' . PHP_EOL, $instanceId, $info['processingUnits']);
64+
}
65+
// [END spanner_create_instance_with_processing_units]
66+
67+
// The following 2 lines are only needed to run the samples
68+
require_once __DIR__ . '/../../testing/sample_helpers.php';
69+
\Google\Cloud\Samples\execute_sample(__FILE__, __NAMESPACE__, $argv);

spanner/test/spannerTest.php

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,9 @@ class spannerTest extends TestCase
3636
/** @var string instanceId */
3737
protected static $instanceId;
3838

39+
/** @var string lowCostInstanceId */
40+
protected static $lowCostInstanceId;
41+
3942
/** @var string databaseId */
4043
protected static $databaseId;
4144

@@ -45,6 +48,13 @@ class spannerTest extends TestCase
4548
/** @var $instance Instance */
4649
protected static $instance;
4750

51+
/**
52+
* Low cost instance with less than 1000 processing units.
53+
*
54+
* @var $instance lowCostInstance
55+
*/
56+
protected static $lowCostInstance;
57+
4858
/** @var $lastUpdateData int */
4959
protected static $lastUpdateDataTimestamp;
5060

@@ -61,9 +71,11 @@ public static function setUpBeforeClass(): void
6171
]);
6272

6373
self::$instanceId = 'test-' . time() . rand();
74+
self::$lowCostInstanceId = 'test-' . time() . rand();
6475
self::$databaseId = 'test-' . time() . rand();
6576
self::$backupId = 'backup-' . self::$databaseId;
6677
self::$instance = $spanner->instance(self::$instanceId);
78+
self::$lowCostInstance = $spanner->instance(self::$lowCostInstanceId);
6779
}
6880

6981
public function testCreateInstance()
@@ -75,6 +87,15 @@ public function testCreateInstance()
7587
$this->assertStringContainsString('Created instance test-', $output);
7688
}
7789

90+
public function testCreateInstanceWithProcessingUnits()
91+
{
92+
$output = $this->runFunctionSnippet('create_instance_with_processing_units', [
93+
'instance_id' => self::$lowCostInstanceId
94+
]);
95+
$this->assertStringContainsString('Waiting for operation to complete...', $output);
96+
$this->assertStringContainsString('Created instance test-', $output);
97+
}
98+
7899
/**
79100
* @depends testCreateInstance
80101
*/
@@ -699,5 +720,6 @@ public static function tearDownAfterClass(): void
699720
$database->drop();
700721
}
701722
self::$instance->delete();
723+
self::$lowCostInstance->delete();
702724
}
703725
}

0 commit comments

Comments
 (0)