Refine search
@Override public Project build() { return new Project(resourceManager, infoBuilder); } }
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()); } } }
@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()); }
@Test public void testBuilder() { expect(resourceManager.getOptions()).andReturn(mockOptions).times(7); replay(resourceManager); Project.Builder builder = new Project.Builder(new Project(resourceManager, new ProjectInfo.BuilderImpl("wrong-id"))); Project project = builder .setState(STATE) .build(); assertEquals(PROJECT_ID, project.getProjectId()); assertEquals(NAME, project.getName()); assertEquals(LABELS, project.getLabels()); assertEquals(PROJECT_NUMBER, project.getProjectNumber()); assertEquals(CREATE_TIME_MILLIS, project.getCreateTimeMillis()); assertEquals(STATE, project.getState()); assertEquals(resourceManager.getOptions(), project.getResourceManager().getOptions()); assertNull(project.getParent()); ResourceId parent = new ResourceId("id", "type"); project = project .toBuilder() .clearLabels() .addLabel("k3", "v3") .setParent(parent) .build(); assertEquals(PROJECT_ID, project.getProjectId()); assertEquals(NAME, project.getName());
@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); }
@Test public void testReplace() { initializeExpectedProject(2); Project expectedReplacedProject = expectedProject.toBuilder().addLabel("k3", "v3").build(); expect(resourceManager.getOptions()).andReturn(mockOptions).times(2); expect(resourceManager.replace(anyObject(Project.class))).andReturn(expectedReplacedProject); replay(resourceManager); initializeProject(); Project newProject = new Project(resourceManager, new ProjectInfo.BuilderImpl(expectedReplacedProject)); Project actualReplacedProject = newProject.replace(); compareProjectInfos(expectedReplacedProject, actualReplacedProject); }
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."); } }
/** * 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 testReplace() { ProjectInfo createdProject = RESOURCE_MANAGER.create(COMPLETE_PROJECT); Map<String, String> newLabels = ImmutableMap.of("new k1", "new v1"); ProjectInfo anotherCompleteProject = ProjectInfo.newBuilder(COMPLETE_PROJECT.getProjectId()) .setLabels(newLabels) .setProjectNumber(987654321L) .setCreateTimeMillis(230682061315L) .setState(ProjectInfo.State.DELETE_REQUESTED) .setParent(createdProject.getParent()) .build(); Project returnedProject = RESOURCE_MANAGER.replace(anotherCompleteProject); compareReadWriteFields(anotherCompleteProject, returnedProject); assertEquals(createdProject.getProjectNumber(), returnedProject.getProjectNumber()); assertEquals(createdProject.getCreateTimeMillis(), returnedProject.getCreateTimeMillis()); assertEquals(createdProject.getState(), returnedProject.getState()); assertEquals(RESOURCE_MANAGER, returnedProject.getResourceManager()); ProjectInfo nonexistantProject = ProjectInfo.newBuilder("some-project-id-that-does-not-exist").build(); try { RESOURCE_MANAGER.replace(nonexistantProject); 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")); } }
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); } }
@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); }
@Test public void testCreate() { Project returnedProject = RESOURCE_MANAGER.create(PARTIAL_PROJECT); compareReadWriteFields(PARTIAL_PROJECT, returnedProject); assertEquals(ProjectInfo.State.ACTIVE, returnedProject.getState()); assertNull(returnedProject.getName()); assertNull(returnedProject.getParent()); assertNotNull(returnedProject.getProjectNumber()); assertNotNull(returnedProject.getCreateTimeMillis()); assertSame(RESOURCE_MANAGER, returnedProject.getResourceManager()); try { RESOURCE_MANAGER.create(PARTIAL_PROJECT); fail("Should fail, project already exists."); } catch (ResourceManagerException e) { assertEquals(409, e.getCode()); assertTrue( e.getMessage().startsWith("A project with the same project ID") && e.getMessage().endsWith("already exists.")); } returnedProject = RESOURCE_MANAGER.create(COMPLETE_PROJECT); compareReadWriteFields(COMPLETE_PROJECT, returnedProject); assertEquals(ProjectInfo.State.ACTIVE, returnedProject.getState()); assertNotNull(returnedProject.getProjectNumber()); assertNotNull(returnedProject.getCreateTimeMillis()); assertSame(RESOURCE_MANAGER, returnedProject.getResourceManager()); }
/** * Marks the project identified by the specified project ID for deletion. * * <p>This method will only affect the project if the following criteria are met: * * <ul> * <li>The project does not have a billing account associated with it. * <li>The project has a lifecycle state of {@link ProjectInfo.State#ACTIVE}. * </ul> * * This method changes the project's lifecycle state from {@link ProjectInfo.State#ACTIVE} to * {@link ProjectInfo.State#DELETE_REQUESTED}. The deletion starts at an unspecified time, at * which point the lifecycle state changes to {@link ProjectInfo.State#DELETE_IN_PROGRESS}. Until * the deletion completes, you can check the lifecycle state checked by retrieving the project * with {@link ResourceManager#get}, and the project remains visible to {@link * ResourceManager#list}. However, you cannot update the project. After the deletion completes, * the project is not retrievable by the {@link ResourceManager#get} and {@link * ResourceManager#list} methods. The caller must have modify permissions for this project. * * @throws ResourceManagerException upon failure * @see <a href= * "https://cloud.google.com/resource-manager/reference/rest/v1beta1/projects/delete">Cloud * Resource Manager delete</a> */ public void delete() { resourceManager.delete(getProjectId()); }
@Test public void testDelete() { initializeExpectedProject(1); expect(resourceManager.getOptions()).andReturn(mockOptions); resourceManager.delete(PROJECT_INFO.getProjectId()); replay(resourceManager); initializeProject(); project.delete(); }
@Test public void testList() { Page<Project> projects = RESOURCE_MANAGER.list(); assertFalse(projects.getValues().iterator().hasNext()); RESOURCE_MANAGER.create(PARTIAL_PROJECT); RESOURCE_MANAGER.create(COMPLETE_PROJECT); for (Project p : RESOURCE_MANAGER.list().getValues()) { if (p.getProjectId().equals(PARTIAL_PROJECT.getProjectId())) { compareReadWriteFields(PARTIAL_PROJECT, p); } else if (p.getProjectId().equals(COMPLETE_PROJECT.getProjectId())) { compareReadWriteFields(COMPLETE_PROJECT, p); } else { fail("Some unexpected project returned by list."); } assertSame(RESOURCE_MANAGER, p.getResourceManager()); } }
@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); }
/** * Returns the IAM access control policy for this project. Returns {@code null} if the resource * does not exist or if you do not have adequate permission to view the project or get the policy. * * @return the IAM policy for the project * @throws ResourceManagerException upon failure * @see <a href= * "https://cloud.google.com/resource-manager/reference/rest/v1beta1/projects/getIamPolicy"> * Resource Manager getIamPolicy</a> */ public Policy getPolicy() { return resourceManager.getPolicy(getProjectId()); }
/** * Sets the IAM access control policy for this project. Replaces any existing policy. It is * recommended that you use the read-modify-write pattern. See code samples and important details * of replacing policies in the documentation for {@link ResourceManager#replacePolicy}. * * @return the newly set IAM policy for this project * @throws ResourceManagerException upon failure * @see <a href= * "https://cloud.google.com/resource-manager/reference/rest/v1beta1/projects/setIamPolicy"> * Resource Manager setIamPolicy</a> */ public Policy replacePolicy(Policy newPolicy) { return resourceManager.replacePolicy(getProjectId(), newPolicy); }
/** * Restores the project identified by the specified project ID. * * <p>You can only use this method for a project that has a lifecycle state of {@link * ProjectInfo.State#DELETE_REQUESTED}. After deletion starts, as indicated by a lifecycle state * of {@link ProjectInfo.State#DELETE_IN_PROGRESS}, the project cannot be restored. The caller * must have modify permissions for this project. * * @throws ResourceManagerException upon failure (including when the project can't be restored) * @see <a href= * "https://cloud.google.com/resource-manager/reference/rest/v1beta1/projects/undelete">Cloud * Resource Manager undelete</a> */ public void undelete() { resourceManager.undelete(getProjectId()); }
/** * Returns the permissions that a caller has on this project. You typically don't call this method * if you're using Google Cloud Platform directly to manage permissions. This method is intended * for integration with your proprietary software, such as a customized graphical user interface. * For example, the Cloud Platform Console tests IAM permissions internally to determine which UI * should be available to the logged-in user. Each service that supports IAM lists the possible * permissions; see the <i>Supported Cloud Platform services</i> page below for links to these * lists. * * @return a list of booleans representing whether the caller has the permissions specified (in * the order of the given permissions) * @throws ResourceManagerException upon failure * @see <a href= * "https://cloud.google.com/resource-manager/reference/rest/v1beta1/projects/testIamPermissions"> * Resource Manager testIamPermissions</a> * @see <a href= "https://cloud.google.com/iam/#supported_cloud_platform_services">Supported Cloud * Platform Services</a> */ List<Boolean> testPermissions(List<String> permissions) { return resourceManager.testPermissions(getProjectId(), permissions); }