Member User can't create Server with Jclouds

184 views
Skip to first unread message

dadou

unread,
Mar 22, 2013, 9:41:04 AM3/22/13
to jcl...@googlegroups.com
Hi, I'm trying to create a server for a new Member user using jclouds. But it doesn't work. But when I try this code whith the Admin user it work successfully. An i have this exception:
So what is exactly the problem.
This is my code:
import static com.google.common.io.Closeables.closeQuietly;

import java.io.Closeable;
import java.io.Serializable;


import org.springframework.context.annotation.Scope;

import org.springframework.stereotype.Component;

import java.util.concurrent.TimeoutException;

import org.jclouds.ContextBuilder;

import org.jclouds.compute.ComputeServiceContext;

import org.jclouds.compute.RunNodesException;
import org.jclouds.glesys.domain.Console;

import org.jclouds.openstack.nova.v2_0.NovaApi;  

import org.jclouds.openstack.nova.v2_0.NovaAsyncApi;

import org.jclouds.openstack.nova.v2_0.domain.FloatingIP;

import org.jclouds.openstack.nova.v2_0.domain.RebootType;

import org.jclouds.openstack.nova.v2_0.domain.Flavor;

import org.jclouds.openstack.nova.v2_0.domain.Image;

import org.jclouds.openstack.nova.v2_0.domain.Server;

import org.jclouds.openstack.nova.v2_0.domain.Server.Status;

import org.jclouds.openstack.nova.v2_0.domain.ServerCreated;

import org.jclouds.openstack.nova.v2_0.extensions.*;

import org.jclouds.openstack.nova.v2_0.features.FlavorApi;

import org.jclouds.openstack.nova.v2_0.features.ImageApi;

import org.jclouds.openstack.nova.v2_0.features.ServerApi;

import org.jclouds.openstack.nova.v2_0.options.CreateServerOptions;

import org.jclouds.rest.RestContext;

import com.google.common.base.Optional;
import com.google.common.base.Throwables;

import com.google.common.collect.FluentIterable;

public class CreateServerBeanv1 implements Serializable,Closeable {  


private static final String instanceName = "small";

private static final String zone = "RegionOne";

private RestContext<NovaApi, NovaAsyncApi> nova;

public CreateServerBeanv1() {
init();
}
/*********************************************************void init()*********************************************************/
private void init() {
String provider = "openstack-nova";

 String username = "openstackDemo:memberUser";

 String apiKey = "123";  

ComputeServiceContext context = ContextBuilder.newBuilder(provider)

.credentials(username, apiKey)


.buildView(ComputeServiceContext.class);

nova = context.unwrap();

}
/*********************************************************createServer()*********************************************************/

private void createServer() throws RunNodesException, TimeoutException {
CreateServerOptions n=new CreateServerOptions();
n.keyPairName("mykeypair");

String imageId = getImageId();

String flavorId = getFlavorId();

System.out.println("Create Server");

ServerApi serverApi = nova.getApi().getServerApiForZone(zone);

ServerCreated serverCreated = serverApi.create(instanceName, imageId, flavorId,n);

blockUntilServerInState(serverCreated.getId(), Server.Status.ACTIVE, 600, 5, serverApi);

Server server = serverApi.get(serverCreated.getId());

System.out.println("  " + serverCreated);
System.out.println(server.toString());
System.out.println("  Login IP: " + server.getAccessIPv4() +" Username: root Password: " + serverCreated.getAdminPass());

}

/*********************************************************String launch()*********************************************************/
public String launch() {
  try {

//  init();

    createServer();
  }
  catch (Exception e) {

     e.printStackTrace();
  }
  finally {
        close();
     }
  return "";
}

This is the exception:
org.jclouds.http.HttpResponseException: command: POST http://192.168.1.3:8774/v2/4c05ffb90854436dbc683459e845fe5e/servers HTTP/1.1 failed with response: HTTP/1.1 400 Bad Request; content: [{"badRequest": {"message": "Invalid key_name provided.", "code": 400}}]
at org.jclouds.openstack.nova.v2_0.handlers.NovaErrorHandler.handleError(NovaErrorHandler.java:83)
at org.jclouds.http.handlers.DelegatingErrorHandler.handleError(DelegatingErrorHandler.java:69)
at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.shouldContinue(BaseHttpCommandExecutorService.java:197)
at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.call(BaseHttpCommandExecutorService.java:167)
at org.jclouds.http.internal.BaseHttpCommandExecutorService$HttpResponseCallable.call(BaseHttpCommandExecutorService.java:135)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
at java.util.concurrent.FutureTask.run(FutureTask.java:166)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1146)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:679)
at org.jclouds.concurrent.config.DescribingExecutorService.submit(DescribingExecutorService.java:89)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.submit(BaseHttpCommandExecutorService.java:132)
at org.jclouds.http.TransformingHttpCommandExecutorServiceImpl.submit(TransformingHttpCommandExecutorServiceImpl.java:54)
at org.jclouds.http.TransformingHttpCommandImpl.execute(TransformingHttpCommandImpl.java:73)
at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFutureForHttpRequestMappedToMethodAndArgs(AsyncRestClientProxy.java:254)
at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:148)
at sun.proxy.$Proxy94.create(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:170)
at sun.proxy.$Proxy95.create(Unknown Source)
at openstack.CreateServerBeanv1.createServer(CreateServerBeanv1.java:116)
at openstack.CreateServerBeanv1.launch(CreateServerBeanv1.java:137)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:78)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
at javax.faces.component.UICommand.broadcast(UICommand.java:127)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:369)
at javax.faces.component.UIViewRoot.process(UIViewRoot.java:264)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:153)
at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:183)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)
at org.jclouds.concurrent.config.DescribingExecutorService.submit(DescribingExecutorService.java:89)
at org.jclouds.http.internal.BaseHttpCommandExecutorService.submit(BaseHttpCommandExecutorService.java:132)
at org.jclouds.http.TransformingHttpCommandExecutorServiceImpl.submit(TransformingHttpCommandExecutorServiceImpl.java:54)
at org.jclouds.http.TransformingHttpCommandImpl.execute(TransformingHttpCommandImpl.java:73)
at org.jclouds.rest.internal.AsyncRestClientProxy.createListenableFutureForHttpRequestMappedToMethodAndArgs(AsyncRestClientProxy.java:254)
at org.jclouds.rest.internal.AsyncRestClientProxy.invoke(AsyncRestClientProxy.java:148)
at sun.proxy.$Proxy94.create(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.jclouds.concurrent.internal.SyncProxy.invoke(SyncProxy.java:170)
at sun.proxy.$Proxy95.create(Unknown Source)
at openstack.CreateServerBeanv1.createServer(CreateServerBeanv1.java:116)
at openstack.CreateServerBeanv1.launch(CreateServerBeanv1.java:137)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at com.sun.el.parser.AstValue.invoke(AstValue.java:187)
at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:297)
at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:78)
at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:57)
at javax.faces.component.UICommand.broadcast(UICommand.java:127)
at javax.faces.component.UIViewRoot._broadcastForPhase(UIViewRoot.java:369)
at javax.faces.component.UIViewRoot.process(UIViewRoot.java:264)
at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:153)
at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:32)
at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:103)
at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:76)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:183)
at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)
at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:401)
at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)
at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)
at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
at org.mortbay.jetty.Server.handle(Server.java:326)
at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)
at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:945)
at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)
at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)
at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)
at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582)

Andrew Phillips

unread,
Mar 22, 2013, 10:38:23 AM3/22/13
to jcl...@googlegroups.com
Hi Dorra

From the error message

{"message": "Invalid key_name provided."

it looks like your key pair name is incorrect? Does key pair
"mykeypair" exist for your account?

Also, please use sites like Gist [1] or Pastie [2] for code samples,
since they don't format very nicely in text-based email clients and
make the posts veeeeery looooong.

Thanks

ap

[1] https://gist.github.com/
[2] http://pastie.org/

dadou

unread,
Mar 22, 2013, 10:55:42 AM3/22/13
to jcl...@googlegroups.com, aphi...@qrmedia.com
Ok i will and thank you. I correct my Error. In fact I create this keypair when I connect like admin member. So i thought that keypair will be visible for all members. But when I connect with userMember i can't see this keypair. Is there any possiblity to let it to be visible for all. Or i need to create it for every user?

Andrew Phillips

unread,
Mar 22, 2013, 11:57:28 AM3/22/13
to dadou
> for all members. But when I connect with userMember i can't see this
> keypair. Is there any possiblity to let it to be visible for all. Or i need
> to create it for every user?

I'm afraid I can't help with that question...perhaps try the OpenStack
docs [1] or mailing lists [2]?

Regards

ap

[1] http://docs.openstack.org/
[2] http://lists.openstack.org/cgi-bin/mailman/listinfo

dadou

unread,
Mar 22, 2013, 4:53:53 PM3/22/13
to jcl...@googlegroups.com, dadou, aphi...@qrmedia.com
Thank you 
Reply all
Reply to author
Forward
0 new messages