synchronized Response replace(String projectId, Project project) { Project originalProject = projects.get(projectId); if (originalProject == null) { return Error.PERMISSION_DENIED.response( "Error when replacing " + projectId + " because the project was not found."); } else if (!originalProject.getLifecycleState().equals("ACTIVE")) { return Error.FAILED_PRECONDITION.response( "Error when replacing " + projectId + " because the lifecycle state was not ACTIVE."); } else if (!Objects.equal(originalProject.getParent(), project.getParent())) { return Error.INVALID_ARGUMENT.response( "The server currently only supports setting the parent once " + "and does not allow unsetting it."); } project.setProjectId(projectId); project.setLifecycleState(originalProject.getLifecycleState()); project.setCreateTime(originalProject.getCreateTime()); project.setProjectNumber(originalProject.getProjectNumber()); // replace cannot fail because both this method and removeProject are synchronized projects.replace(projectId, project); try { return new Response(HTTP_OK, jsonFactory.toString(project)); } catch (IOException e) { return Error.INTERNAL_ERROR.response("Error when serializing project " + projectId); } }
@Test public void testListNoPageTokenFieldOptions() { Map<ResourceManagerRpc.Option, Object> rpcOptions = new HashMap<>(); rpcOptions.put(ResourceManagerRpc.Option.PAGE_SIZE, 1); rpcOptions.put(ResourceManagerRpc.Option.FIELDS, "projects(projectId,name)"); rpc.create(PARTIAL_PROJECT); rpc.create(COMPLETE_PROJECT); Tuple<String, Iterable<com.google.api.services.cloudresourcemanager.model.Project>> projects = rpc.list(rpcOptions); assertNull(projects.x()); Iterator<com.google.api.services.cloudresourcemanager.model.Project> iterator = projects.y().iterator(); com.google.api.services.cloudresourcemanager.model.Project returnedProject = iterator.next(); assertEquals(COMPLETE_PROJECT.getProjectId(), returnedProject.getProjectId()); assertEquals(COMPLETE_PROJECT.getName(), returnedProject.getName()); assertNull(returnedProject.getLabels()); assertNull(returnedProject.getParent()); assertNull(returnedProject.getProjectNumber()); assertNull(returnedProject.getLifecycleState()); assertNull(returnedProject.getCreateTime()); assertFalse(iterator.hasNext()); }
break; case "projectNumber": project.setProjectNumber(fullProject.getProjectNumber()); break;
@Test public void testListFieldOptions() { Map<ResourceManagerRpc.Option, Object> rpcOptions = new HashMap<>(); rpcOptions.put( ResourceManagerRpc.Option.FIELDS, "projects(projectId,name,labels),nextPageToken"); rpc.create(PROJECT_WITH_PARENT); Tuple<String, Iterable<com.google.api.services.cloudresourcemanager.model.Project>> projects = rpc.list(rpcOptions); com.google.api.services.cloudresourcemanager.model.Project returnedProject = projects.y().iterator().next(); assertFalse(PROJECT_WITH_PARENT.equals(returnedProject)); assertEquals(PROJECT_WITH_PARENT.getProjectId(), returnedProject.getProjectId()); assertEquals(PROJECT_WITH_PARENT.getName(), returnedProject.getName()); assertEquals(PROJECT_WITH_PARENT.getLabels(), returnedProject.getLabels()); assertNull(returnedProject.getParent()); assertNull(returnedProject.getProjectNumber()); assertNull(returnedProject.getLifecycleState()); assertNull(returnedProject.getCreateTime()); }
static ProjectInfo fromPb(com.google.api.services.cloudresourcemanager.model.Project projectPb) { Builder builder = newBuilder(projectPb.getProjectId()).setProjectNumber(projectPb.getProjectNumber()); if (projectPb.getName() != null && !projectPb.getName().equals("Unnamed")) { builder.setName(projectPb.getName()); } if (projectPb.getLabels() != null) { builder.setLabels(projectPb.getLabels()); } if (projectPb.getLifecycleState() != null) { builder.setState(State.valueOf(projectPb.getLifecycleState())); } if (projectPb.getCreateTime() != null) { builder.setCreateTimeMillis( DATE_TIME_FORMATTER.parse(projectPb.getCreateTime(), Instant.FROM).toEpochMilli()); } if (projectPb.getParent() != null) { builder.setParent(ResourceId.fromPb(projectPb.getParent())); } return builder.build(); } }
private static com.google.api.services.cloudresourcemanager.model.Project copyFrom( com.google.api.services.cloudresourcemanager.model.Project from) { return new com.google.api.services.cloudresourcemanager.model.Project() .setProjectId(from.getProjectId()) .setName(from.getName()) .setLabels(from.getLabels() != null ? ImmutableMap.copyOf(from.getLabels()) : null) .setProjectNumber(from.getProjectNumber()) .setCreateTime(from.getCreateTime()) .setLifecycleState(from.getLifecycleState()) .setParent(from.getParent() != null ? from.getParent().clone() : null); }
assertNull(returnedProject.getLabels()); assertNull(returnedProject.getParent()); assertNull(returnedProject.getProjectNumber()); assertNull(returnedProject.getLifecycleState()); assertNull(returnedProject.getCreateTime()); assertNull(returnedProject.getLabels()); assertNull(returnedProject.getParent()); assertNull(returnedProject.getProjectNumber()); assertNull(returnedProject.getLifecycleState()); assertNull(returnedProject.getCreateTime());
rpc.replace(anotherCompleteProject); compareReadWriteFields(anotherCompleteProject, returnedProject); assertEquals(createdProject.getProjectNumber(), returnedProject.getProjectNumber()); assertEquals(createdProject.getCreateTime(), returnedProject.getCreateTime()); assertEquals(createdProject.getLifecycleState(), returnedProject.getLifecycleState());
@Test public void testGetWithOptions() { com.google.api.services.cloudresourcemanager.model.Project originalProject = rpc.create(COMPLETE_PROJECT); Map<ResourceManagerRpc.Option, Object> rpcOptions = new HashMap<>(); rpcOptions.put(ResourceManagerRpc.Option.FIELDS, "projectId,name,createTime"); com.google.api.services.cloudresourcemanager.model.Project returnedProject = rpc.get(COMPLETE_PROJECT.getProjectId(), rpcOptions); assertFalse(COMPLETE_PROJECT.equals(returnedProject)); assertEquals(COMPLETE_PROJECT.getProjectId(), returnedProject.getProjectId()); assertEquals(COMPLETE_PROJECT.getName(), returnedProject.getName()); assertEquals(originalProject.getCreateTime(), returnedProject.getCreateTime()); assertNull(returnedProject.getParent()); assertNull(returnedProject.getProjectNumber()); assertNull(returnedProject.getLifecycleState()); assertNull(returnedProject.getLabels()); }
assertNull(returnedProject.getName()); assertNull(returnedProject.getParent()); assertNotNull(returnedProject.getProjectNumber()); assertNotNull(returnedProject.getCreateTime()); com.google.api.services.cloudresourcemanager.model.Policy policy = compareReadWriteFields(PROJECT_WITH_PARENT, returnedProject); assertEquals("ACTIVE", returnedProject.getLifecycleState()); assertNotNull(returnedProject.getProjectNumber()); assertNotNull(returnedProject.getCreateTime());
Long getProjectNumberAtRow(int row) { return projectList.get(row).getProjectNumber(); }
/** * Returns the project number or throws an error if the project does not exist or has other * access errors. */ private static long getProjectNumber( String projectId, CloudResourceManager crmClient, BackOff backoff, Sleeper sleeper) throws IOException { CloudResourceManager.Projects.Get getProject = crmClient.projects().get(projectId); try { Project project = ResilientOperation.retry( ResilientOperation.getGoogleRequestCallable(getProject), backoff, RetryDeterminer.SOCKET_ERRORS, IOException.class, sleeper); return project.getProjectNumber(); } catch (Exception e) { throw new IOException("Unable to get project number", e); } }
static ProjectInfo fromPb(com.google.api.services.cloudresourcemanager.model.Project projectPb) { Builder builder = builder(projectPb.getProjectId()).projectNumber(projectPb.getProjectNumber()); if (projectPb.getName() != null && !projectPb.getName().equals("Unnamed")) { builder.name(projectPb.getName()); } if (projectPb.getLabels() != null) { builder.labels(projectPb.getLabels()); } if (projectPb.getLifecycleState() != null) { builder.state(State.valueOf(projectPb.getLifecycleState())); } if (projectPb.getCreateTime() != null) { builder.createTimeMillis(DateTime.parse(projectPb.getCreateTime()).getMillis()); } if (projectPb.getParent() != null) { builder.parent(ResourceId.fromPb(projectPb.getParent())); } return builder.build(); } }
static ProjectInfo fromPb(com.google.api.services.cloudresourcemanager.model.Project projectPb) { Builder builder = builder(projectPb.getProjectId()).projectNumber(projectPb.getProjectNumber()); if (projectPb.getName() != null && !projectPb.getName().equals("Unnamed")) { builder.name(projectPb.getName()); } if (projectPb.getLabels() != null) { builder.labels(projectPb.getLabels()); } if (projectPb.getLifecycleState() != null) { builder.state(State.valueOf(projectPb.getLifecycleState())); } if (projectPb.getCreateTime() != null) { builder.createTimeMillis(DateTime.parse(projectPb.getCreateTime()).getMillis()); } if (projectPb.getParent() != null) { builder.parent(ResourceId.fromPb(projectPb.getParent())); } return builder.build(); } }
synchronized Response replace(String projectId, Project project) { Project originalProject = projects.get(projectId); if (originalProject == null) { return Error.PERMISSION_DENIED.response( "Error when replacing " + projectId + " because the project was not found."); } else if (!originalProject.getLifecycleState().equals("ACTIVE")) { return Error.FAILED_PRECONDITION.response( "Error when replacing " + projectId + " because the lifecycle state was not ACTIVE."); } else if (!Objects.equal(originalProject.getParent(), project.getParent())) { return Error.INVALID_ARGUMENT.response( "The server currently only supports setting the parent once " + "and does not allow unsetting it."); } project.setProjectId(projectId); project.setLifecycleState(originalProject.getLifecycleState()); project.setCreateTime(originalProject.getCreateTime()); project.setProjectNumber(originalProject.getProjectNumber()); // replace cannot fail because both this method and removeProject are synchronized projects.replace(projectId, project); try { return new Response(HTTP_OK, jsonFactory.toString(project)); } catch (IOException e) { return Error.INTERNAL_ERROR.response("Error when serializing project " + projectId); } }
synchronized Response replace(String projectId, Project project) { Project originalProject = projects.get(projectId); if (originalProject == null) { return Error.PERMISSION_DENIED.response( "Error when replacing " + projectId + " because the project was not found."); } else if (!originalProject.getLifecycleState().equals("ACTIVE")) { return Error.FAILED_PRECONDITION.response( "Error when replacing " + projectId + " because the lifecycle state was not ACTIVE."); } else if (!Objects.equal(originalProject.getParent(), project.getParent())) { return Error.INVALID_ARGUMENT.response( "The server currently only supports setting the parent once " + "and does not allow unsetting it."); } project.setProjectId(projectId); project.setLifecycleState(originalProject.getLifecycleState()); project.setCreateTime(originalProject.getCreateTime()); project.setProjectNumber(originalProject.getProjectNumber()); // replace cannot fail because both this method and removeProject are synchronized projects.replace(projectId, project); try { return new Response(HTTP_OK, jsonFactory.toString(project)); } catch (IOException e) { return Error.INTERNAL_ERROR.response("Error when serializing project " + projectId); } }
break; case "projectNumber": project.setProjectNumber(fullProject.getProjectNumber()); break;
break; case "projectNumber": project.setProjectNumber(fullProject.getProjectNumber()); break;