@Override public Operation call() { try { return resourceManager.operations().get(operation.getName()).execute(); } catch (IOException ex) { throw translate(ex); } } },
@Override public Policy replacePolicy(String projectId, Policy newPolicy) throws ResourceManagerException { try { return resourceManager .projects() .setIamPolicy(projectId, new SetIamPolicyRequest().setPolicy(newPolicy)) .execute(); } catch (IOException ex) { throw translate(ex); } }
@Override public Project replace(Project project) { try { return resourceManager.projects().update(project.getProjectId(), project).execute(); } catch (IOException ex) { throw translate(ex); } }
@Override public Tuple<String, Iterable<Project>> list(Map<Option, ?> options) { try { ListProjectsResponse response = resourceManager .projects() .list() .setFields(Option.FIELDS.getString(options)) .setFilter(Option.FILTER.getString(options)) .setPageSize(Option.PAGE_SIZE.getInt(options)) .setPageToken(Option.PAGE_TOKEN.getString(options)) .execute(); return Tuple.<String, Iterable<Project>>of( response.getNextPageToken(), response.getProjects()); } catch (IOException ex) { throw translate(ex); } }
@Override public Policy getPolicy(String projectId) throws ResourceManagerException { try { return resourceManager .projects() .getIamPolicy(projectId, new GetIamPolicyRequest()) .execute(); } catch (IOException ex) { ResourceManagerException translated = translate(ex); if (translated.getCode() == HTTP_FORBIDDEN) { // Service returns permission denied if policy doesn't exist. return null; } else { throw translated; } } }
@Override public List<Boolean> testPermissions(String projectId, List<String> permissions) throws ResourceManagerException { try { TestIamPermissionsResponse response = resourceManager .projects() .testIamPermissions( projectId, new TestIamPermissionsRequest().setPermissions(permissions)) .execute(); Set<String> permissionsOwned = ImmutableSet.copyOf(firstNonNull(response.getPermissions(), ImmutableList.<String>of())); ImmutableList.Builder<Boolean> answer = ImmutableList.builder(); for (String p : permissions) { answer.add(permissionsOwned.contains(p)); } return answer.build(); } catch (IOException ex) { throw translate(ex); } } }
@Override public Project get(String projectId, Map<Option, ?> options) { try { return resourceManager .projects() .get(projectId) .setFields(Option.FIELDS.getString(options)) .execute(); } catch (IOException ex) { ResourceManagerException translated = translate(ex); if (translated.getCode() == HTTP_FORBIDDEN || translated.getCode() == HTTP_NOT_FOUND) { // Service can return either 403 or 404 to signify that the project doesn't exist. return null; } else { throw translated; } } }
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(); }
@Override public void undelete(String projectId) { try { resourceManager.projects().undelete(projectId, new UndeleteProjectRequest()).execute(); } catch (IOException ex) { throw translate(ex); } }
@Override public Policy replacePolicy(String projectId, Policy newPolicy) throws ResourceManagerException { try { return resourceManager.projects() .setIamPolicy(projectId, new SetIamPolicyRequest().setPolicy(newPolicy)).execute(); } catch (IOException ex) { throw translate(ex); } }
final Operation operation; try { operation = resourceManager.projects().create(project).execute(); } catch (IOException ex) { throw translate(ex); OPERATION_HANDLER, clock); if (finishedOp.getError() != null) { throw translate(finishedOp.getError()); String responseTxt = JSON_FACTORY.toString(finishedOp.getResponse()); return JSON_FACTORY.fromString(responseTxt, Project.class); } catch (IOException ex) {
@Override public Undelete set(String parameterName, Object value) { return (Undelete) super.set(parameterName, value); } }
@Override public Get set(String parameterName, Object value) { return (Get) super.set(parameterName, value); } }