[ https://issues.apache.org/jira/browse/CLOUDSTACK-8648?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14635293#comment-14635293 ]
ASF GitHub Bot commented on CLOUDSTACK-8648: -------------------------------------------- Github user wido commented on the pull request: https://github.com/apache/cloudstack/pull/606#issuecomment-123381112 Shouldn't we then pass "params" to the configure method? That seems to be missing in your example. > "Unable to get storage implementation" when copying template from NFS to S3 > --------------------------------------------------------------------------- > > Key: CLOUDSTACK-8648 > URL: https://issues.apache.org/jira/browse/CLOUDSTACK-8648 > Project: CloudStack > Issue Type: Bug > Security Level: Public(Anyone can view this level - this is the > default.) > Components: Secondary Storage > Affects Versions: Future, 4.5.2 > Reporter: Wido den Hollander > Labels: qcow2, s3, secondary_storage > Fix For: Future > > > In the SSVM this can be observed: > 2015-07-17 12:12:56,675 WARN [storage.resource.NfsSecondaryStorageResource] > (agentRequest-Handler-11:null) Failed to get virtual size, returning file > size instead: > javax.naming.ConfigurationException: Unable to get storage implementation > at > com.cloud.storage.template.QCOW2Processor.configure(QCOW2Processor.java:95) > at > org.apache.cloudstack.storage.resource.NfsSecondaryStorageResource.getVirtualSize(NfsSecondaryStorageResource.java:828) > at > org.apache.cloudstack.storage.resource.NfsSecondaryStorageResource.copyFromNfsToS3(NfsSecondaryStorageResource.java:886) > at > org.apache.cloudstack.storage.resource.NfsSecondaryStorageResource.copyFromNfsToImage(NfsSecondaryStorageResource.java:618) > at > org.apache.cloudstack.storage.resource.NfsSecondaryStorageResource.execute(NfsSecondaryStorageResource.java:645) > at > org.apache.cloudstack.storage.resource.NfsSecondaryStorageResource.executeRequest(NfsSecondaryStorageResource.java:233) > at com.cloud.agent.Agent.processRequest(Agent.java:503) > at com.cloud.agent.Agent$AgentRequestHandler.doTask(Agent.java:808) > at com.cloud.utils.nio.Task.run(Task.java:84) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) > at java.lang.Thread.run(Thread.java:745) > The problem is this: > processor.configure("template processor", new HashMap<String, Object>()); > return processor.getVirtualSize(file); > It confitures the processor with a empty HashMap, but the check in the > processor is: > public boolean configure(String name, Map<String, Object> params) throws > ConfigurationException { > _storage = (StorageLayer)params.get(StorageLayer.InstanceConfigKey); > if (_storage == null) { > throw new ConfigurationException("Unable to get storage > implementation"); > } > Since the HashMap is empty null is returned and this exception is thrown. > No need to configure the Processor as far as I can see. -- This message was sent by Atlassian JIRA (v6.3.4#6332)