Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.python > #73041 > unrolled thread

Suds 4.1 Beta Assertion Failure

Started by1stpoint@gmail.com
First post2014-06-09 08:45 -0700
Last post2014-06-13 08:02 +0200
Articles 4 — 2 participants

Back to article view | Back to comp.lang.python


Contents

  Suds 4.1 Beta Assertion Failure 1stpoint@gmail.com - 2014-06-09 08:45 -0700
    Re: Suds 4.1 Beta Assertion Failure dieter <dieter@handshake.de> - 2014-06-10 07:50 +0200
      Re: Suds 4.1 Beta Assertion Failure 1stpoint@gmail.com - 2014-06-12 12:52 -0700
        Re: Suds 4.1 Beta Assertion Failure dieter <dieter@handshake.de> - 2014-06-13 08:02 +0200

#73041 — Suds 4.1 Beta Assertion Failure

From1stpoint@gmail.com
Date2014-06-09 08:45 -0700
SubjectSuds 4.1 Beta Assertion Failure
Message-ID<5d97c876-edd8-40b4-b7e2-0f2f8ec6c52a@googlegroups.com>
Hello group, I have been using Python suds to try to consume a web service.  I am able to use tools like SOAPUI and it works but when  I it in python I get Assertion Failure.

Here is my code

if __name__== '__main__':
    from suds.client import Client
    import logging
    logging.basicConfig(filename="suds.log",level=logging.INFO)
    logging.getLogger('suds.wsdl').setLevel(logging.DEBUG)    
    obieeserver='http://hostname:port/analytics-ws/saw.dll/wsdl/v7'
    rptRef='myReport'
    paramRpt=''
    client = Client(obieeserver)
    sessionid = client.service['SAWSessionService'].logon('uid','pwd')
    print 'sessionid=',sessionid

    reportservice=client.service['ReportEditingService']
    result=reportservice.generateReportSQL(rptRef, paramRpt, sessionid)

    print 'result=',type(result)

Here is my output:

sessionid= fq3c0f0ec7hrql07fspk7fdu4esih16pp4eql9a
Traceback (most recent call last):
  File "obieetest.py", line 90, in <module>
    result=reportservice.generateReportSQL(rptRef, paramRpt, sessionid)
  File "build\bdist.win32\egg\suds\client.py", line 542, in __call__
  File "build\bdist.win32\egg\suds\client.py", line 602, in invoke
  File "build\bdist.win32\egg\suds\client.py", line 651, in send
  File "build\bdist.win32\egg\suds\client.py", line 688, in succeeded
  File "build\bdist.win32\egg\suds\bindings\binding.py", line 151, in get_reply
  File "build\bdist.win32\egg\suds\bindings\binding.py", line 182, in detect_fault
suds.WebFault: Server raised fault: 'Assertion failure: criteria at line 296 of /net/adcnas420/export/ifarm_base/ifarm_views/aime_bifndn_430300/bifndn/analytics_web/main/project/webformatengine/formatengine.cpp'

[toc] | [next] | [standalone]


#73072

Fromdieter <dieter@handshake.de>
Date2014-06-10 07:50 +0200
Message-ID<mailman.10942.1402379479.18130.python-list@python.org>
In reply to#73041
1stpoint@gmail.com writes:

> Hello group, I have been using Python suds to try to consume a web service.  I am able to use tools like SOAPUI and it works but when  I it in python I get Assertion Failure.
> ...
> suds.WebFault: Server raised fault: 'Assertion failure: criteria at line 296 of /net/adcnas420/export/ifarm_base/ifarm_views/aime_bifndn_430300/bifndn/analytics_web/main/project/webformatengine/formatengine.cpp'

This is a message from the webserver. The "Assertion failure" happens
there (in the server) and not on the client side.

Usually, an "Assertion failure" is a programming error (of the component
which checks the assertion). However, in some cases, other components
(such as the client, in your case) might be directly responsible
or have at least triggered the problem.


I would approach as follows: Tell "suds" to log the outgoing messages;
lock at those messages whether they are correct. If they are,
contact the web service administrator and ask him for help.

[toc] | [prev] | [next] | [standalone]


#73236

From1stpoint@gmail.com
Date2014-06-12 12:52 -0700
Message-ID<aa27fcb3-ad2b-4c39-a6f9-8fa96678b174@googlegroups.com>
In reply to#73072
It turns out I was passing the parameters incorrectly to the generateReportSQL method.

This is what I had:
result=reportservice.generateReportSQL(rptRef, paramRpt, sessionid) 

This is what works:
result=XMLservice.generateReportSQL({'reportPath':rptRef},sessionid)

I have another issue.  When I make the call to return data apparently the result set is too big for suds and I get a MemoryError.

Here is my code snippet:
    print 'executing SQL Query:',len(logicalSQL)
    executionOptions={'async':False,'maxRowsPerPage':50,'refresh':True,'presentationInfo':False,'type':'Q1'}
    XMLservice=obiclient.service['XmlViewService']
result=XMLservice.executeSQLQuery(logicalSQL,'SAWRowsetData',executionOptions,sessionid)

When I run it I get:
executing SQL Query: 5968
Traceback (most recent call last):
  File "C:\temp\obiee\obieetest.py", line 105, in <module>
    result=XMLservice.executeSQLQuery(logicalSQL,'SAWRowsetData',executionOptions,sessionid)
  File "build\bdist.win32\egg\suds\client.py", line 542, in __call__
  File "build\bdist.win32\egg\suds\client.py", line 602, in invoke
  File "build\bdist.win32\egg\suds\client.py", line 643, in send
  File "build\bdist.win32\egg\suds\transport\https.py", line 64, in send
  File "build\bdist.win32\egg\suds\transport\http.py", line 79, in send
  File "C:\Python27\lib\socket.py", line 358, in read
    buf.write(data)
MemoryError: out of memory

[toc] | [prev] | [next] | [standalone]


#73254

Fromdieter <dieter@handshake.de>
Date2014-06-13 08:02 +0200
Message-ID<mailman.11050.1402639344.18130.python-list@python.org>
In reply to#73236
1stpoint@gmail.com writes:
> ...
> I have another issue.  When I make the call to return data apparently the result set is too big for suds and I get a MemoryError.
>
> Here is my code snippet:
>     print 'executing SQL Query:',len(logicalSQL)
>     executionOptions={'async':False,'maxRowsPerPage':50,'refresh':True,'presentationInfo':False,'type':'Q1'}
>     XMLservice=obiclient.service['XmlViewService']
> result=XMLservice.executeSQLQuery(logicalSQL,'SAWRowsetData',executionOptions,sessionid)
>
> When I run it I get:
> executing SQL Query: 5968
> Traceback (most recent call last):
>   File "C:\temp\obiee\obieetest.py", line 105, in <module>
>     result=XMLservice.executeSQLQuery(logicalSQL,'SAWRowsetData',executionOptions,sessionid)
>   File "build\bdist.win32\egg\suds\client.py", line 542, in __call__
>   File "build\bdist.win32\egg\suds\client.py", line 602, in invoke
>   File "build\bdist.win32\egg\suds\client.py", line 643, in send
>   File "build\bdist.win32\egg\suds\transport\https.py", line 64, in send
>   File "build\bdist.win32\egg\suds\transport\http.py", line 79, in send
>   File "C:\Python27\lib\socket.py", line 358, in read
>     buf.write(data)
> MemoryError: out of memory

There is not much "suds" can do with regard to this. In principle,
it could write to a temporary file - but its purpose is to present
the webservice result as a collection of Python objects - and
they, too, require memory in the same order.

Thus, you have the following options:

  *  learn how to limit the amount of data, the webservice provides
  *  give your system (its processes) more memory
  *  do not use "suds" but process the incoming data incrementally
     (avoiding the build of the intermediate collection of Python objects).

[toc] | [prev] | [standalone]


Back to top | Article view | comp.lang.python


csiph-web