{"action":"opened","issue":{"url":"https://api.github.com/repos/JanusGraph/janusgraph/issues/933","repository_url":"https://api.github.com/repos/JanusGraph/janusgraph","labels_url":"https://api.github.com/repos/JanusGraph/janusgraph/issues/933/labels{/name}","comments_url":"https://api.github.com/repos/JanusGraph/janusgraph/issues/933/comments","events_url":"https://api.github.com/repos/JanusGraph/janusgraph/issues/933/events","html_url":"https://github.com/JanusGraph/janusgraph/issues/933","id":298338499,"number":933,"title":"Cassandra Privilege \"Create on All Keyspaces\"","user":{"login":"larsbremer","id":3441510,"avatar_url":"https://avatars0.githubusercontent.com/u/3441510?v=4","gravatar_id":"","url":"https://api.github.com/users/larsbremer","html_url":"https://github.com/larsbremer","followers_url":"https://api.github.com/users/larsbremer/followers","following_url":"https://api.github.com/users/larsbremer/following{/other_user}","gists_url":"https://api.github.com/users/larsbremer/gists{/gist_id}","starred_url":"https://api.github.com/users/larsbremer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/larsbremer/subscriptions","organizations_url":"https://api.github.com/users/larsbremer/orgs","repos_url":"https://api.github.com/users/larsbremer/repos","events_url":"https://api.github.com/users/larsbremer/events{/privacy}","received_events_url":"https://api.github.com/users/larsbremer/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-02-19T16:38:21Z","updated_at":"2018-02-19T16:38:21Z","closed_at":null,"author_association":"NONE","body":"Janusgraph requires the “create” privilege on all keyspaces even if a keyspace was created already. From my understanding this privilege is only used to create the keyspace. If the keyspace was created manually, the privilege is not needed.\r\n\r\nLooking into the Janusgraph code the issue appears to be the following lines in the CQLStoreManager.java:266\r\n`s.execute(createKeyspace(keyspaceName).ifNotExists().with().replication(replication));`\r\n\r\nThis is the stacktrace I get:\r\n```\r\nException in thread \"main\" java.lang.IllegalArgumentException: Could not instantiate implementation: org.janusgraph.diskstorage.cql.CQLStoreManager\r\n\tat org.janusgraph.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:69)\r\n\tat org.janusgraph.diskstorage.Backend.getImplementationClass(Backend.java:477)\r\n\tat org.janusgraph.diskstorage.Backend.getStorageManager(Backend.java:409)\r\n\tat org.janusgraph.graphdb.configuration.GraphDatabaseConfiguration.<init>(GraphDatabaseConfiguration.java:1376)\r\n\tat org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:164)\r\n\tat org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:133)\r\n\tat org.janusgraph.core.JanusGraphFactory.open(JanusGraphFactory.java:123)\r\n\tat org.janusgraph.core.JanusGraphFactory$Builder.open(JanusGraphFactory.java:264)\r\n\tat com.ibm.mdm.janusgraph.performance.connection.JanusGraphConnectionEmbedded.createGraph(JanusGraphConnectionEmbedded.java:36)\r\n\tat com.ibm.mdm.janusgraph.performance.connection.JanusGraphConnectionEmbedded.<init>(JanusGraphConnectionEmbedded.java:18)\r\n\tat com.ibm.mdm.janusgraph.performance.connection.JanusGraphConnectionEmbedded.getInstance(JanusGraphConnectionEmbedded.java:23)\r\n\tat com.ibm.mdm.janusgraph.performance.connection.JanusGraphConnectionFactory.getGraphConnection(JanusGraphConnectionFactory.java:16)\r\n\tat com.ibm.mdm.janusgraph.performance.JanusGraphApp.executeTests(JanusGraphApp.java:42)\r\n\tat com.ibm.mdm.janusgraph.performance.JanusGraphApp.main(JanusGraphApp.java:30)\r\nCaused by: java.lang.reflect.InvocationTargetException\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\r\n\tat sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)\r\n\tat sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\r\n\tat java.lang.reflect.Constructor.newInstance(Constructor.java:423)\r\n\tat org.janusgraph.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:58)\r\n\t... 13 more\r\nCaused by: com.datastax.driver.core.exceptions.UnauthorizedException: User lars has no CREATE permission on <all keyspaces> or any of its parents\r\n\tat com.datastax.driver.core.exceptions.UnauthorizedException.copy(UnauthorizedException.java:59)\r\n\tat com.datastax.driver.core.exceptions.UnauthorizedException.copy(UnauthorizedException.java:25)\r\n\tat com.datastax.driver.core.DriverThrowables.propagateCause(DriverThrowables.java:37)\r\n\tat com.datastax.driver.core.DefaultResultSetFuture.getUninterruptibly(DefaultResultSetFuture.java:245)\r\n\tat com.datastax.driver.core.AbstractSession.execute(AbstractSession.java:68)\r\n\tat org.janusgraph.diskstorage.cql.CQLStoreManager.initializeSession(CQLStoreManager.java:266)\r\n\tat org.janusgraph.diskstorage.cql.CQLStoreManager.<init>(CQLStoreManager.java:149)\r\n\t... 18 more\r\nCaused by: com.datastax.driver.core.exceptions.UnauthorizedException: User lars has no CREATE permission on <all keyspaces> or any of its parents\r\n\tat com.datastax.driver.core.Responses$Error.asException(Responses.java:134)\r\n\tat com.datastax.driver.core.DefaultResultSetFuture.onSet(DefaultResultSetFuture.java:179)\r\n\tat com.datastax.driver.core.RequestHandler.setFinalResult(RequestHandler.java:177)\r\n\tat com.datastax.driver.core.RequestHandler.access$2500(RequestHandler.java:46)\r\n\tat com.datastax.driver.core.RequestHandler$SpeculativeExecution.setFinalResult(RequestHandler.java:799)\r\n\tat com.datastax.driver.core.RequestHandler$SpeculativeExecution.onSet(RequestHandler.java:633)\r\n\tat com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:1070)\r\n\tat com.datastax.driver.core.Connection$Dispatcher.channelRead0(Connection.java:993)\r\n\tat io.netty.channel.SimpleChannelInboundHandler.channelRead(SimpleChannelInboundHandler.java:105)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)\r\n\tat io.netty.handler.timeout.IdleStateHandler.channelRead(IdleStateHandler.java:287)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)\r\n\tat io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:102)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)\r\n\tat io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:293)\r\n\tat io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:267)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:336)\r\n\tat io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1294)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:357)\r\n\tat io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:343)\r\n\tat io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:911)\r\n\tat io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:131)\r\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:643)\r\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:566)\r\n\tat io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:480)\r\n\tat io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:442)\r\n\tat io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:131)\r\n\tat io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:144)\r\n\tat java.lang.Thread.run(Thread.java:748)\r\n```"}}
{"actor":{"display_login":"larsbremer"}}