public <T> Entity<T> json(T entity) { return entity(entity, "application/json"); }
public <R> OpenStackRequest<R> get(String path, Class<R> returnType) { return new OpenStackRequest<>(this, HttpMethod.GET, path, null, returnType); }
public <T> T execute(OpenStackRequest<T> request) { OpenStackResponse response = request(request); return (request.returnType() != null && request.returnType() != Void.class) ? response.getEntity(request.returnType()) : null; }
@Override public <T> OpenStackResponse request(OpenStackRequest<T> request) { WebTarget target = client.target(request.endpoint()).path(request.path()); for(Map.Entry<String, List<Object> > entry : request.queryParams().entrySet()) { for (Object o : entry.getValue()) { target = target.queryParam(entry.getKey(), o); Invocation.Builder invocation = target.request(); for(Map.Entry<String, List<Object>> h : request.headers().entrySet()) { StringBuilder sb = new StringBuilder(); for(Object v : h.getValue()) { Entity<?> entity = (request.entity() == null) ? null : Entity.entity(request.entity().getEntity(), request.entity().getContentType()); return new JaxRs20Response(invocation.method(request.method().name(), entity)); } else { if(HttpMethod.PUT == request.method()) { return new JaxRs20Response(invocation.method(request.method().name(), Entity.entity("", MediaType.APPLICATION_JSON))); } else { return new JaxRs20Response(invocation.method(request.method().name()));
public <T> OpenStackResponse request(OpenStackRequest<T> request) { OpenStackResponseException authException = null; for (int i = 0; i <= AUTHENTICATION_RETRIES; i++) { request.endpoint(endpoint); if (tokenProvider != null) { request.header("X-Auth-Token", tokenProvider.getToken()); } try { return connector.request(request); } catch (OpenStackResponseException e) { if (e.getStatus() != OpenStackResponseStatus.NOT_AUTHORIZED || tokenProvider == null) { throw e; } authException = e; tokenProvider.expireToken(); } } throw authException; }
public <T> OpenStackResponse request(OpenStackRequest<T> request) { OpenStackResponseException authException = null; System.out.println("Openstack query:"+request.toString()); for (int i = 0; i <= AUTHENTICATION_RETRIES; i++) { request.endpoint(endpoint); if (tokenProvider != null) { request.header("X-Auth-Token", tokenProvider.getToken()); } try { return connector.request(request); } catch (OpenStackResponseException e) { if (e.getStatus() != OpenStackResponseStatus.NOT_AUTHORIZED || tokenProvider == null) { throw e; } authException = e; tokenProvider.expireToken(); } } throw authException; }
OpenStackClient osClient = request.getOpenStackClient(); Properties properties = osClient.getProperties(); logger = osClient.getLogger(); if (request.endpoint().startsWith("https") && !trustedHostPatterns.isEmpty()) { clientConfig.getProperties().put(HTTPSProperties.PROPERTY_HTTPS_PROPERTIES, new HTTPSProperties(getHostnameVerifier(), getSSLContext())); logger.debug(String.format("Direct connection to %s", request.endpoint())); proxyHost = null; client = Client.create(clientConfig);
public OpenStackRequest(OpenStackClient client, HttpMethod method, CharSequence path, Entity<?> entity, Class<R> returnType) { this.client = client; this.method = method; this.path = new StringBuilder(path); this.entity = entity; this.returnType = returnType; header("Accept", "application/json"); }
@Override public <T> OpenStackResponse request(OpenStackRequest<T> request) { WebTarget target = client.target(request.endpoint()).path(request.path()); for(Map.Entry<String, List<Object> > entry : request.queryParams().entrySet()) { for (Object o : entry.getValue()) { target = target.queryParam(entry.getKey(), o); Invocation.Builder invocation = target.request(); for(Map.Entry<String, List<Object>> h : request.headers().entrySet()) { StringBuilder sb = new StringBuilder(); for(Object v : h.getValue()) { Entity<?> entity = (request.entity() == null) ? null : Entity.entity(request.entity().getEntity(), request.entity().getContentType()); return new JaxRs20Response(invocation.method(request.method().name(), entity)); } else { if(HttpMethod.PUT == request.method()) { return new JaxRs20Response(invocation.method(request.method().name(), Entity.entity("", MediaType.APPLICATION_JSON))); } else { return new JaxRs20Response(invocation.method(request.method().name()));
public <T> OpenStackResponse request(OpenStackRequest<T> request) { OpenStackResponseException authException = null; for (int i = 0; i <= AUTHENTICATION_RETRIES; i++) { request.endpoint(endpoint); if (tokenProvider != null) { request.header("X-Auth-Token", tokenProvider.getToken()); } try { return connector.request(request); } catch (OpenStackResponseException e) { if (e.getStatus() != OpenStackResponseStatus.NOT_AUTHORIZED || tokenProvider == null) { throw e; } authException = e; tokenProvider.expireToken(); } } throw authException; }
public <T> OpenStackResponse request(OpenStackRequest<T> request) { OpenStackResponseException authException = null; System.out.println("Openstack query:"+request.toString()); for (int i = 0; i <= AUTHENTICATION_RETRIES; i++) { request.endpoint(endpoint); if (tokenProvider != null) { request.header("X-Auth-Token", tokenProvider.getToken()); } try { return connector.request(request); } catch (OpenStackResponseException e) { if (e.getStatus() != OpenStackResponseStatus.NOT_AUTHORIZED || tokenProvider == null) { throw e; } authException = e; tokenProvider.expireToken(); } } if(null == authException){ authException = new OpenStackResponseException("Unknown issue",500); } throw authException; }
public OpenStackRequest(OpenStackClient client, HttpMethod method, CharSequence path, Entity<?> entity, Class<R> returnType) { this.client = client; this.method = method; this.path = new StringBuilder(path); this.entity = entity; this.returnType = returnType; header("Accept", "application/json"); }
public <T> OpenStackResponse request(OpenStackRequest<T> request) { String requestPath = request.path(); if (requestPath != null && requestPath.isEmpty()) { requestPath = "/"; ClientRequest client = new ClientRequest(UriBuilder.fromUri(request.endpoint() + requestPath), createClientExecutor(), providerFactory); for(Map.Entry<String, List<Object> > entry : request.queryParams().entrySet()) { for (Object o : entry.getValue()) { client = client.queryParameter(entry.getKey(), String.valueOf(o)); for (Entry<String, List<Object>> h : request.headers().entrySet()) { StringBuilder sb = new StringBuilder(); for (Object v : h.getValue()) { if (request.entity() != null) { client.body(request.entity().getContentType(), request.entity().getEntity()); response = client.httpMethod(request.method().name(), request.returnType()); } catch (Exception e) { throw new RuntimeException("Unexpected client exception", e);
public <R> OpenStackRequest<R> get(String path, Class<R> returnType) { return new OpenStackRequest<R>(this, HttpMethod.GET, path, null, returnType); }
public <T> Entity<T> json(T entity) { return entity(entity, "application/json"); }
public <T> T execute(OpenStackRequest<T> request) { OpenStackResponse response = request(request); return (request.returnType() != null && request.returnType() != Void.class) ? response.getEntity(request.returnType()) : null; }
public OpenStackRequest(OpenStackClient client, HttpMethod method, CharSequence path, Entity<?> entity, Class<R> returnType) { this.client = client; this.method = method; this.path = new StringBuilder(path); this.entity = entity; this.returnType = returnType; header("Accept", "application/json"); }
@Override public <T> OpenStackResponse request(OpenStackRequest<T> request) { WebResource target = client.resource(request.endpoint()).path(request.path()); for(Map.Entry<String, List<Object> > entry : request.queryParams().entrySet()) { for (Object o : entry.getValue()) { target = target.queryParam(entry.getKey(), String.valueOf(o)); for(Map.Entry<String, List<Object>> h : request.headers().entrySet()) { for(Object v : h.getValue()) { headers.add(h.getKey(), v); if(request.entity() != null && request.entity().getContentType() != null) { headers.add("Content-Type", request.entity().getContentType()); } else { headers.add("Content-Type", "application/json"); if (request.entity() != null && request.entity().getEntity() != null) { response = target.getHeadHandler().handle(new ClientRequestImpl(target.getURI(), request.method().name(), request.entity().getEntity(), headers)); } else { response = target.getHeadHandler().handle(new ClientRequestImpl(target.getURI(), request.method().name(), null, headers));
public ResourceList() { OpenStackRequest request = new OpenStackRequest(); //return query(target.path("resources")).request(MediaType.APPLICATION_JSON).get(new GenericType<List<Resource>>() {}); }