Hi all,
I hope that someone can help me with this.
I am testing an implementation for server-side copy using the NetApp ZAPI from Java.
My use-case is to copy a file from one volume/qtree to another. As I cannot guarantee that the destination already exists (which is demanded by the copyoffload) I am creating an "empty" file like this:
- file-write-file (path = destination-file, offset = 0, data = "00")
- file-truncate-file (path = destination-file)
After that, the copyoffload-copy-start command starts successfully and it seems to be working, but if I then check progress with a copyoffload-copy-status command I get the following:
<netapp version="1.1">
<results status="passed">
<copy-status>
<copyoffload-status-info>
<copyoffload-state>completed</copyoffload-state>
<source-path>/vol/myvol/test.raw</source-path>
<destination-path>/vol/myvol/copy.raw</destination-path>
<length>251463</length>
<copy-id>7ffba310-457a-11e2-9385-000000000000</copy-id>
<bytes-copied>251463</bytes-copied>
<copyoffload-error>15015</copyoffload-error>
</copyoffload-status-info>
</copy-status>
</results>
</netapp>
So, it says "completed", but nevertheless has an error code set (which is ECOL_COPY_INTERNALERROR) and when I stat the target file I get this:
<netapp version="1.1">
<results status="passed">
<file-info>
<name>/vol/myvol/copy.raw</name>
<file-type>file</file-type>
<creation-timestamp>1355279824</creation-timestamp>
<modified-timestamp>1355279833</modified-timestamp>
<changed-timestamp>1355279833</changed-timestamp>
<accessed-timestamp>1355279824</accessed-timestamp>
<perm>1064</perm>
<owner-id>0</owner-id>
<group-id>0</group-id>
<file-size>0</file-size>
<hard-links-count>1</hard-links-count>
<inode-number>12056</inode-number>
<acl-type>no_acl</acl-type>
<bytes-used>0</bytes-used>
</file-info>
</results>
</netapp>
So, what's happening here?
This was with the simulator 8.0.1.