public static void main(String... args) { String actionName = args.length > 0 ? args[0].toLowerCase() : DEFAULT_ACTION; ResourceManagerAction action = ACTIONS.get(actionName); if (action == null) { StringBuilder actionAndParams = new StringBuilder(); for (Map.Entry<String, ResourceManagerAction> entry : ACTIONS.entrySet()) { addUsage(entry.getKey(), entry.getValue(), actionAndParams); actionAndParams.append('|'); } actionAndParams.setLength(actionAndParams.length() - 1); System.out.printf( "Usage: %s [%s]%n", ResourceManagerExample.class.getSimpleName(), actionAndParams); return; } // If you want to access a local Resource Manager emulator (after creating and starting the // LocalResourceManagerHelper), use the following code instead: // ResourceManager resourceManager = LocalResourceManagerHelper.getOptions().getService(); ResourceManager resourceManager = ResourceManagerOptions.getDefaultInstance().getService(); args = args.length > 1 ? Arrays.copyOfRange(args, 1, args.length) : new String[] {}; if (args.length < action.getRequiredParams().length) { StringBuilder usage = new StringBuilder(); usage.append("Usage: "); addUsage(actionName, action, usage); System.out.println(usage); } else { action.run(resourceManager, args); } } }
@Override public ResourceManagerOptions build() { return new ResourceManagerOptions(this); } }
@Override public boolean equals(Object obj) { return obj instanceof ResourceManagerOptions && baseEquals((ResourceManagerOptions) obj); }
public HttpResourceManagerRpc(ResourceManagerOptions options) { HttpTransportOptions transportOptions = (HttpTransportOptions) options.getTransportOptions(); HttpTransport transport = transportOptions.getHttpTransportFactory().create(); HttpRequestInitializer initializer = transportOptions.getHttpRequestInitializer(options); resourceManager = new CloudResourceManager.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.getHost()) .setApplicationName(options.getApplicationName()) .build(); clock = options.getClock(); }
@Test public void testRuntimeException() { ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class); ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class); EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class))) .andReturn(resourceManagerRpcMock); EasyMock.replay(rpcFactoryMock); ResourceManager resourceManagerMock = ResourceManagerOptions.newBuilder() .setServiceRpcFactory(rpcFactoryMock) .build() .getService(); String exceptionMessage = "Artificial runtime exception"; EasyMock.expect(resourceManagerRpcMock.get(PARTIAL_PROJECT.getProjectId(), EMPTY_RPC_OPTIONS)) .andThrow(new RuntimeException(exceptionMessage)); EasyMock.replay(resourceManagerRpcMock); thrown.expect(ResourceManagerException.class); thrown.expectMessage(exceptionMessage); resourceManagerMock.get(PARTIAL_PROJECT.getProjectId()); } }
@Override public List<Boolean> testPermissions(final String projectId, final List<String> permissions) { try { return runWithRetries( new Callable<List<Boolean>>() { @Override public List<Boolean> call() { return resourceManagerRpc.testPermissions(projectId, permissions); } }, options().retryParams(), EXCEPTION_HANDLER, options().clock()); } catch (RetryHelperException ex) { throw ResourceManagerException.translateAndThrow(ex); } }
private void readObject(ObjectInputStream in) throws IOException, ClassNotFoundException { in.defaultReadObject(); this.resourceManager = options.getService(); }
public DefaultResourceManagerRpc(ResourceManagerOptions options) { HttpTransport transport = options.httpTransportFactory().create(); HttpRequestInitializer initializer = options.httpRequestInitializer(); resourceManager = new Cloudresourcemanager.Builder(transport, new JacksonFactory(), initializer) .setRootUrl(options.host()) .setApplicationName(options.applicationName()) .build(); }
@Override protected Serializable[] serializableObjects() { ResourceManagerOptions options = ResourceManagerOptions.newBuilder().build(); ResourceManagerOptions otherOptions = options.toBuilder().setProjectId("some-unnecessary-project-ID").build(); return new Serializable[] { PARTIAL_PROJECT_INFO, FULL_PROJECT_INFO, PROJECT, PAGE_RESULT, PROJECT_GET_OPTION, PROJECT_LIST_OPTION, RESOURCE_MANAGER_EXCEPTION, options, otherOptions }; }
/** Returns a default {@code ResourceManagerOptions} instance. */ public static ResourceManagerOptions getDefaultInstance() { return newBuilder().build(); }
@Override public int hashCode() { return baseHashCode(); }
/** * Returns a default {@code ResourceManagerOptions} instance. */ public static ResourceManagerOptions defaultInstance() { return builder().build(); }
@Test public void testRetryableException() { ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class); ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class); EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class))) .andReturn(resourceManagerRpcMock); EasyMock.replay(rpcFactoryMock); ResourceManager resourceManagerMock = ResourceManagerOptions.newBuilder() .setServiceRpcFactory(rpcFactoryMock) .build() .getService(); EasyMock.expect(resourceManagerRpcMock.get(PARTIAL_PROJECT.getProjectId(), EMPTY_RPC_OPTIONS)) .andThrow(new ResourceManagerException(500, "Internal Error")) .andReturn(PARTIAL_PROJECT.toPb()); EasyMock.replay(resourceManagerRpcMock); Project returnedProject = resourceManagerMock.get(PARTIAL_PROJECT.getProjectId()); assertEquals( new Project(resourceManagerMock, new ProjectInfo.BuilderImpl(PARTIAL_PROJECT)), returnedProject); }
@Override public void undelete(final String projectId) { try { runWithRetries(new Callable<Void>() { @Override public Void call() { resourceManagerRpc.undelete(projectId); return null; } }, options().retryParams(), EXCEPTION_HANDLER, options().clock()); } catch (RetryHelperException ex) { throw ResourceManagerException.translateAndThrow(ex); } }
@Override public Project apply( com.google.api.services.cloudresourcemanager.model.Project projectPb) { return new Project( serviceOptions.getService(), new ProjectInfo.BuilderImpl(ProjectInfo.fromPb(projectPb))); } });
/** * Returns a {@link ResourceManagerOptions} instance that sets the host to use the mock server. */ public ResourceManagerOptions getOptions() { return ResourceManagerOptions.newBuilder() .setHost("http://localhost:" + port) .setCredentials(NoCredentials.getInstance()) .build(); }
@Override public int hashCode() { return baseHashCode(); }
/** * Returns a {@link ResourceManagerOptions} instance that sets the host to use the mock server. */ public ResourceManagerOptions options() { return ResourceManagerOptions.builder() .host("http://localhost:" + port) .authCredentials(AuthCredentials.noAuth()) .build(); }
@Test public void testNonRetryableException() { ResourceManagerRpcFactory rpcFactoryMock = EasyMock.createMock(ResourceManagerRpcFactory.class); ResourceManagerRpc resourceManagerRpcMock = EasyMock.createMock(ResourceManagerRpc.class); EasyMock.expect(rpcFactoryMock.create(EasyMock.anyObject(ResourceManagerOptions.class))) .andReturn(resourceManagerRpcMock); EasyMock.replay(rpcFactoryMock); ResourceManager resourceManagerMock = ResourceManagerOptions.newBuilder() .setServiceRpcFactory(rpcFactoryMock) .build() .getService(); EasyMock.expect(resourceManagerRpcMock.get(PARTIAL_PROJECT.getProjectId(), EMPTY_RPC_OPTIONS)) .andThrow( new ResourceManagerException( 403, "Project " + PARTIAL_PROJECT.getProjectId() + " not found.")) .once(); EasyMock.replay(resourceManagerRpcMock); thrown.expect(ResourceManagerException.class); thrown.expectMessage("Project " + PARTIAL_PROJECT.getProjectId() + " not found."); resourceManagerMock.get(PARTIAL_PROJECT.getProjectId()); }
public static void main(String... args) { // Create Resource Manager service object. // By default, credentials are inferred from the runtime environment. ResourceManager resourceManager = ResourceManagerOptions.getDefaultInstance().getService(); String projectId = "my-globally-unique-project-id"; // Change to a unique project ID. // Get a project from the server. Project project = resourceManager.get(projectId); if (project == null) { // Create a project. project = resourceManager.create(ProjectInfo.newBuilder(projectId).build()); } System.out.println("Got project " + project.getProjectId() + " from the server."); } }