Reputation: 185
I have some code that's been untouched since last November, its worked fine this whole time, until now. as far as i know, nothing else has been changed on this host.
The error:
Traceback (most recent call last):
File "/scm/pvcs/scripts/pyscripts/update_scr_20.py", line 115, in <module>
updateSCR(SCR, myDeployer, myDeployerID, myEnv, myEnvID, deployTime)
File "/scm/pvcs/scripts/pyscripts/update_scr_20.py", line 33, in updateSCR
client = Client(url=SBM_WSDL, location=SBM_ENDPOINT, timeout=180)
File "build/bdist.linux-x86_64/egg/suds/client.py", line 109, in __init__
File "build/bdist.linux-x86_64/egg/suds/cache.py", line 145, in __init__
File "build/bdist.linux-x86_64/egg/suds/cache.py", line 277, in checkversion
File "build/bdist.linux-x86_64/egg/suds/cache.py", line 251, in clear
OSError: [Errno 13] Permission denied: '/tmp/suds/suds-7962357479995671267-document.px'
I've changed the file permissions to 777, still get the same 'permission denied' error.
Upvotes: 0
Views: 2058
Reputation: 31
This is essentially a less than perfect design decision on the part of the python soap client. It by default creates a file in a global space (/tmp/suds) that is owned by a single user, and that locks out other users from using the python soap client. If you chmod /tmp/suds/* to allow the world access it will work (what IBM recommends in their OpenStack product) ... or clean up after the use of the client by deleting the garbage it leaves behind.
The soap client ought to have created the suds directory in the users space (under /home/username) so each user would have their own, or if it really ought be a global resource it should have used open access to the file. By doing neither, it probably has caused a lot of time lost by many a user. I'd call it a bug. Something that costs users time and is easily fixed.
Upvotes: 1
Reputation: 1508
This error is raised when suds
is run in multiuser environment. Your user (using whom you are running a script) must not have an ownership of that directory. Also try turning the cache
off or change the cache directory.
Can you share your part of code which is causing the error.? You should catch the exception and see the full error log.
Upvotes: 1