@Override public void run(ResourceManager resourceManager, String... args) { String projectId = args[0]; ProjectInfo project = resourceManager.get(projectId); if (project != null) { System.out.printf( "Successfully got project '%s': %s.%n", projectId, projectDetails(project)); } else { System.out.printf("Could not find project '%s'.%n", projectId); } }
@Test public void testReloadNull() { initializeExpectedProject(1); expect(resourceManager.getOptions()).andReturn(mockOptions); expect(resourceManager.get(PROJECT_INFO.getProjectId())).andReturn(null); replay(resourceManager); Project reloadedProject = new Project(resourceManager, new ProjectInfo.BuilderImpl(PROJECT_INFO)).reload(); assertNull(reloadedProject); }
/** * Fetches the project's latest information. Returns {@code null} if the project does not exist. * * @return Project containing the project's updated metadata or {@code null} if not found * @throws ResourceManagerException upon failure */ public Project reload() { return resourceManager.get(getProjectId()); }
@Test public void testReload() { initializeExpectedProject(2); ProjectInfo newInfo = PROJECT_INFO.toBuilder().addLabel("k3", "v3").build(); Project expectedProject = new Project(serviceMockReturnsOptions, new ProjectInfo.BuilderImpl(newInfo)); expect(resourceManager.getOptions()).andReturn(mockOptions); expect(resourceManager.get(PROJECT_INFO.getProjectId())).andReturn(expectedProject); replay(resourceManager); initializeProject(); Project newProject = project.reload(); assertEquals(expectedProject, newProject); }
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."); } }
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(); // Get a project from the server Project project = resourceManager.get("some-project-id"); // Use an existing project's ID // Update a project if (project != null) { Project newProject = project.toBuilder().addLabel("launch-status", "in-development").build().replace(); System.out.println( "Updated the labels of project " + newProject.getProjectId() + " to be " + newProject.getLabels()); } // List all the projects you have permission to view. System.out.println("Projects I can view:"); for (Project currentProject : resourceManager.list().iterateAll()) { System.out.println(currentProject.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(); // Get a project from the server String projectId = "some-project-id"; // Use an existing project's ID Project project = resourceManager.get(projectId); // Get the project's policy Policy policy = project.getPolicy(); // Add a viewer Policy.Builder modifiedPolicy = policy.toBuilder(); Identity newViewer = Identity.user("<insert user's email address here>"); modifiedPolicy.addIdentity(Role.viewer(), newViewer); // Write policy Policy updatedPolicy = project.replacePolicy(modifiedPolicy.build()); // Print policy System.out.printf("Updated policy for %s: %n%s%n", projectId, updatedPolicy); } }
@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()); } }
@Test public void testGet() { RESOURCE_MANAGER.create(COMPLETE_PROJECT); Project returnedProject = RESOURCE_MANAGER.get(COMPLETE_PROJECT.getProjectId()); compareReadWriteFields(COMPLETE_PROJECT, returnedProject); assertEquals(RESOURCE_MANAGER, returnedProject.getResourceManager()); RESOURCE_MANAGER_HELPER.removeProject(COMPLETE_PROJECT.getProjectId()); assertNull(RESOURCE_MANAGER.get(COMPLETE_PROJECT.getProjectId())); }
@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); }
@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()); }
@Test public void testUndelete() { RESOURCE_MANAGER.create(COMPLETE_PROJECT); RESOURCE_MANAGER.delete(COMPLETE_PROJECT.getProjectId()); assertEquals( ProjectInfo.State.DELETE_REQUESTED, RESOURCE_MANAGER.get(COMPLETE_PROJECT.getProjectId()).getState()); RESOURCE_MANAGER.undelete(COMPLETE_PROJECT.getProjectId()); ProjectInfo revivedProject = RESOURCE_MANAGER.get(COMPLETE_PROJECT.getProjectId()); compareReadWriteFields(COMPLETE_PROJECT, revivedProject); assertEquals(ProjectInfo.State.ACTIVE, revivedProject.getState()); try { RESOURCE_MANAGER.undelete("invalid-project-id"); fail("Should fail because the project doesn't exist."); } catch (ResourceManagerException e) { assertEquals(403, e.getCode()); assertTrue(e.getMessage().contains("the project was not found")); } }
@Test public void testDelete() { RESOURCE_MANAGER.create(COMPLETE_PROJECT); RESOURCE_MANAGER.delete(COMPLETE_PROJECT.getProjectId()); assertEquals( ProjectInfo.State.DELETE_REQUESTED, RESOURCE_MANAGER.get(COMPLETE_PROJECT.getProjectId()).getState()); try { RESOURCE_MANAGER.delete("some-nonexistant-project-id"); fail("Should fail because the project doesn't exist."); } catch (ResourceManagerException e) { assertEquals(403, e.getCode()); assertTrue(e.getMessage().contains("not found.")); } }
@Test public void testGetWithOptions() { Project originalProject = RESOURCE_MANAGER.create(COMPLETE_PROJECT); Project returnedProject = RESOURCE_MANAGER.get(COMPLETE_PROJECT.getProjectId(), GET_FIELDS); assertFalse(COMPLETE_PROJECT.equals(returnedProject)); assertEquals(COMPLETE_PROJECT.getProjectId(), returnedProject.getProjectId()); assertEquals(COMPLETE_PROJECT.getName(), returnedProject.getName()); assertEquals(originalProject.getCreateTimeMillis(), returnedProject.getCreateTimeMillis()); assertNull(returnedProject.getParent()); assertNull(returnedProject.getProjectNumber()); assertNull(returnedProject.getState()); assertTrue(returnedProject.getLabels().isEmpty()); assertEquals(RESOURCE_MANAGER, originalProject.getResourceManager()); assertEquals(RESOURCE_MANAGER, returnedProject.getResourceManager()); }
/** * Fetches the project's latest information. Returns {@code null} if the project does not * exist. * * @return Project containing the project's updated metadata or {@code null} if not found * @throws ResourceManagerException upon failure */ public Project reload() { return resourceManager.get(projectId()); }
@Override public String getAudience() { Project project = this.resourceManager.get(this.projectIdProvider.getProjectId()); Assert.notNull(project, "Project expected not to be null."); Assert.notNull(project.getProjectNumber(), "Project Number expected not to be null."); String projectId = this.projectIdProvider.getProjectId(); Assert.notNull(projectId, "Project Id expected not to be null."); return String.format(AUDIENCE_FORMAT, project.getProjectNumber(), projectId); }
@Override public String getAudience() { Project project = this.resourceManager.get(this.projectIdProvider.getProjectId()); Assert.notNull(project, "Project expected not to be null."); Assert.notNull(project.getProjectNumber(), "Project Number expected not to be null."); String projectId = this.projectIdProvider.getProjectId(); Assert.notNull(projectId, "Project Id expected not to be null."); return String.format(AUDIENCE_FORMAT, project.getProjectNumber(), projectId); }