Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Mute
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
I'm trying to list files in a directory. It's ok when i use curl but i have error when using python netapp-ontap.
I'm using the snippet in the documentation, i get this error with netapp-ontap 9.12.10rc1, 9.11.0, 9.10.1.0. :
raise NetAppRestError(
netapp_ontap.error.NetAppRestError: Received more than one record in the response FileInfo.
Code :
import logging
from netapp_ontap import HostConnection, NetAppRestError, config, utils
from netapp_ontap.resources import Volume,FileInfo
logging.basicConfig(level=logging.DEBUG)
utils.DEBUG=1
config.CONNECTION = HostConnection('XXXXX', 'xxxx', 'xxx',verify=False)
volume = Volume.find(**{'svm.name': "VSERVER", 'name': "volume_name"})
mypath="dir1/dir2/dir3"
res=FileInfo(volume.uuid, path=mypath)
res.get()
I've tried to use get_collection but the called url is not good :
GET /api/storage/volumes/0c692b41-yyyyy/files?dir1%2Fdir2%Fdir3 instead of
GET /api/storage/volumes/0c692b41-yyyyy/files/dir1%2Fdir2%Fdir3
Solved! See The Solution
1 ACCEPTED SOLUTION
Oc77 has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, sorry for the trouble. This is a bug in the get() function. I filed a bug (#1527088) to solve this issue.
In the meantime, you can use get_collection() as a work around. I believe you had an issue with get_collection because you sent in `mypath` a keyword argument. If you remove 'path=' from the argument and just send it in as a positional argument it should work. Please try something like this:
import logging
from netapp_ontap import HostConnection, NetAppRestError, config, utils
from netapp_ontap.resources import Volume,FileInfo
logging.basicConfig(level=logging.DEBUG)
utils.DEBUG=1
config.CONNECTION = HostConnection('XXXXX', 'xxxx', 'xxx',verify=False)
volume = Volume.find(**{'svm.name': "VSERVER", 'name': "volume_name"})
mypath="dir1/dir2/dir3"
files = FileInfo.get_collection(volume.uuid, mypath)
for file in files:
print(file)
Please let me know if you have any issues with that.
2 REPLIES 2
Oc77 has accepted the solution
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi, sorry for the trouble. This is a bug in the get() function. I filed a bug (#1527088) to solve this issue.
In the meantime, you can use get_collection() as a work around. I believe you had an issue with get_collection because you sent in `mypath` a keyword argument. If you remove 'path=' from the argument and just send it in as a positional argument it should work. Please try something like this:
import logging
from netapp_ontap import HostConnection, NetAppRestError, config, utils
from netapp_ontap.resources import Volume,FileInfo
logging.basicConfig(level=logging.DEBUG)
utils.DEBUG=1
config.CONNECTION = HostConnection('XXXXX', 'xxxx', 'xxx',verify=False)
volume = Volume.find(**{'svm.name': "VSERVER", 'name': "volume_name"})
mypath="dir1/dir2/dir3"
files = FileInfo.get_collection(volume.uuid, mypath)
for file in files:
print(file)
Please let me know if you have any issues with that.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
Your code is working. Thanks for your help !
