SpannerOptions options = SpannerOptions.newBuilder().build(); Spanner spanner = options.getService(); spanner.getDatabaseClient(DatabaseId.of(options.getProjectId(), instanceId, databaseId));
@Test public void defaultBuilder() { // We need to set the project id since in test environment we cannot obtain a default project // id. SpannerOptions options = SpannerOptions.newBuilder().setProjectId("test-project").build(); assertThat(options.getHost()).isEqualTo("https://spanner.googleapis.com"); assertThat(options.getPrefetchChunks()).isEqualTo(4); assertThat(options.getSessionLabels()).isNull(); }
/** * Create a session pool with the given options and for the given database. It will also start * eagerly creating sessions if {@link SessionPoolOptions#getMinSessions()} is greater than 0. * Return pool is immediately ready for use, though getting a session might block for sessions to * be created. */ static SessionPool createPool(SpannerOptions spannerOptions, DatabaseId db, SpannerImpl spanner) { return createPool( spannerOptions.getSessionPoolOptions(), ((GrpcTransportOptions) spannerOptions.getTransportOptions()).getExecutorFactory(), db, spanner); }
SpannerImpl(SpannerOptions options) { this(options.getSpannerRpcV1(), options.getPrefetchChunks(), options); }
DatabaseAdminClient getDatabaseAdminClient() { // [START get_dbadmin_client] SpannerOptions options = SpannerOptions.newBuilder().build(); Spanner spanner = options.getService(); DatabaseAdminClient dbAdminClient = spanner.getDatabaseAdminClient(); // [END get_dbadmin_client] return dbAdminClient; }
/** Returns default instance of {@code SpannerOptions}. */ public static SpannerOptions getDefaultInstance() { return newBuilder().build(); }
public GapicSpannerRpc(SpannerOptions options) { this.projectId = options.getProjectId(); this.projectName = PROJECT_NAME_TEMPLATE.instantiate("project", this.projectId); .build(); HeaderProvider mergedHeaderProvider = options.getMergedHeaderProvider(internalHeaderProvider); this.metadataProvider = SpannerMetadataProvider.create( options.getChannelProvider(), InstantiatingGrpcChannelProvider.newBuilder() .setEndpoint(options.getEndpoint()) .setMaxInboundMessageSize(MAX_MESSAGE_SIZE) .setMaxInboundMetadataSize(MAX_METADATA_SIZE) .setPoolSize(options.getNumChannels()) options.getInterceptorProvider(), SpannerInterceptorProvider.createDefault())) .setHeaderProvider(mergedHeaderProvider)
spanner = getSpanner(properties, host, project); if (project == null) { project = spanner.getOptions().getProjectId(); .append("\nHost: ").append(spanner.getOptions().getHost()) .append("\nProject: ").append(project) .append("\nInstance: ").append(instance)
/** * Creates a {@code RemoteSpannerHelper} for the given option and bound to the given instance ID. * All databases created using this will be created in the given instance. */ public static RemoteSpannerHelper create(SpannerOptions options, InstanceId instanceId) throws Throwable { Spanner client = options.getService(); return new RemoteSpannerHelper(options, instanceId, client); } }
SpannerImpl(SpannerRpc gapicRpc, int defaultPrefetchChunks, SpannerOptions options) { super(options); this.gapicRpc = gapicRpc; this.defaultPrefetchChunks = defaultPrefetchChunks; this.dbAdminClient = new DatabaseAdminClientImpl(options.getProjectId(), gapicRpc); this.instanceClient = new InstanceAdminClientImpl(options.getProjectId(), gapicRpc, dbAdminClient); }
@Test public void getDbclientAgainGivesSame() { Map<String, String> labels = new HashMap<>(); labels.put("env", "dev"); Mockito.when(spannerOptions.getSessionLabels()).thenReturn(labels); String dbName = "projects/p1/instances/i1/databases/d1"; DatabaseId db = DatabaseId.of(dbName); Mockito.when(spannerOptions.getTransportOptions()) .thenReturn(GrpcTransportOptions.newBuilder().build()); Mockito.when(spannerOptions.getSessionPoolOptions()) .thenReturn(SessionPoolOptions.newBuilder().build()); DatabaseClient databaseClient = impl.getDatabaseClient(db); // Get db client again DatabaseClient databaseClient1 = impl.getDatabaseClient(db); assertThat(databaseClient1).isSameAs(databaseClient); }
@Override public com.google.spanner.v1.Session call() throws Exception { return gapicRpc.createSession( db.getName(), getOptions().getSessionLabels(), options); } });
InstanceAdminClient getInstanceAdminClient() { // [START get_instance_admin_client] SpannerOptions options = SpannerOptions.newBuilder().build(); Spanner spanner = options.getService(); InstanceAdminClient instanceAdminClient = spanner.getInstanceAdminClient(); // [END get_instance_admin_client] return instanceAdminClient; }
@Test public void testInvalidSessionLabels() { thrown.expect(NullPointerException.class); Map<String, String> labels = new HashMap<>(); labels.put("env", null); SpannerOptions.newBuilder().setSessionLabels(labels); }
public GapicSpannerRpc(SpannerOptions options) { this.projectId = options.getProjectId(); this.projectName = PROJECT_NAME_TEMPLATE.instantiate("project", this.projectId); .build(); HeaderProvider mergedHeaderProvider = options.getMergedHeaderProvider(internalHeaderProvider); this.metadataProvider = SpannerMetadataProvider.create( options.getChannelProvider(), InstantiatingGrpcChannelProvider.newBuilder() .setEndpoint(options.getEndpoint()) .setMaxInboundMessageSize(MAX_MESSAGE_SIZE) .setMaxInboundMetadataSize(MAX_METADATA_SIZE) .setPoolSize(options.getNumChannels()) options.getInterceptorProvider(), SpannerInterceptorProvider.createDefault())) .setHeaderProvider(mergedHeaderProvider)
@Override protected void before() throws Throwable { this.initializeConfig(); this.config.setUp(); SpannerOptions options = config.spannerOptions(); String instanceProperty = System.getProperty(TEST_INSTANCE_PROPERTY, ""); InstanceId instanceId; if (!instanceProperty.isEmpty()) { instanceId = InstanceId.of(instanceProperty); isOwnedInstance = false; logger.log(Level.INFO, "Using existing test instance: {0}", instanceId); } else { instanceId = InstanceId.of(config.spannerOptions().getProjectId(), "test-instance"); isOwnedInstance = true; } testHelper = RemoteSpannerHelper.create(options, instanceId); instanceAdminClient = testHelper.getClient().getInstanceAdminClient(); logger.log(Level.FINE, "Test env endpoint is {0}", options.getHost()); if (isOwnedInstance) { initializeInstance(instanceId); } }
@Bean @ConditionalOnMissingBean public Spanner spanner(SpannerOptions spannerOptions) { return spannerOptions.getService(); }
BatchReadOnlyTransactionImpl(SpannerImpl spanner, SessionImpl session, TimestampBound bound) { super( checkNotNull(session), checkNotNull(bound), checkNotNull(spanner).getOptions().getSpannerRpcV1(), spanner.getOptions().getPrefetchChunks()); this.sessionName = session.getName(); this.options = session.getOptions(); initTransaction(); }
SpannerImpl(SpannerRpc gapicRpc, int defaultPrefetchChunks, SpannerOptions options) { super(options); this.gapicRpc = gapicRpc; this.defaultPrefetchChunks = defaultPrefetchChunks; this.dbAdminClient = new DatabaseAdminClientImpl(options.getProjectId(), gapicRpc); this.instanceClient = new InstanceAdminClientImpl(options.getProjectId(), gapicRpc, dbAdminClient); }