[AG-TECH] shared apps again

Dave Semeraro semeraro at ncsa.uiuc.edu
Mon Sep 13 16:36:59 CDT 2004


Hi techies

I am back at shared app development. I am in the process of trying to port 
the shared image
thing over to the AG2.3. I downloaded the new software and installed it. I 
did a pretty complete
rewrite of the AGBasicImage.py app following the shared app developers 
guide in the wiki. It
has the shared browser look and feel now. Except for the fact that it 
doesnt work. I followed the
shared app gotcha's in the wiki to try to run the application as a console 
application so I could
get some debug output. I got a little of that. The main problem seems to be 
connecting to
the venue. I have attached the shared image code and the venueclient.log 
and the shared image
log file from the most recent run. I get some crazy errors in the shared 
image file that I
just cant track down. There may be other bugs in the application that I 
have not gotten to yet
but I cant find them if I cant connect to the venue. So could someone give 
me a tip as to what
I am doing wrong here?

Regards,
Dave

Dave Semeraro Ph.D.
Visualization and Virtual Environments Group
NCSA University of Illinois
605 E. Springfield Ave.
Champaign, IL 61820
Semeraro at ncsa.uiuc.edu
(217) 244-1852
-------------- next part --------------
09/13/04 16:22:11 3532 Toolkit     toolkit.py:90 DEBUG Initializing AG Toolkit version 2.3
09/13/04 16:22:11 3532 Toolkit     toolkit.py:132 INFO  Logfile Name: SharedImageViewer.log
09/13/04 16:22:11 3532 Toolkit     config.py:196 DEBUG Using GLOBUS_HOSTNAME=zim.ncsa.uiuc.edu as set in the environment
09/13/04 16:22:11 3532 CertificateManager     certificatemanager.py:257 DEBUG Opened repository C:\Documents and Settings\semeraro\Application Data\AccessGrid\Config\certRepo
09/13/04 16:22:11 3532 Toolkit     toolkit.py:395 DEBUG Got repo.
09/13/04 16:22:11 3532 Toolkit     toolkit.py:397 DEBUG looking in system ca dir: C:\Program Files\AGTk-2.3\Config\CAcertificates
09/13/04 16:22:11 3532 Toolkit     toolkit.py:401 DEBUG Getting cert: 1c3f2ca8.0
09/13/04 16:22:11 3532 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\1c3f2ca8.0
09/13/04 16:22:11 3532 Toolkit     toolkit.py:401 DEBUG Getting cert: 45cc9e80.0
09/13/04 16:22:11 3532 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\45cc9e80.0
09/13/04 16:22:11 3532 Toolkit     toolkit.py:401 DEBUG Getting cert: d1b603c3.0
09/13/04 16:22:11 3532 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\d1b603c3.0
09/13/04 16:22:11 3532 Toolkit     toolkit.py:401 DEBUG Getting cert: f18fa857.0
09/13/04 16:22:11 3532 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\f18fa857.0
09/13/04 16:22:11 3532 Toolkit     toolkit.py:410 DEBUG Init'ing globus.
09/13/04 16:22:11 3532 CertificateManager     certificatemanager.py:734 DEBUG Configuring standard environment
09/13/04 16:22:11 3532 CertificateManager     certificatemanager.py:802 DEBUG Using default identity /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro
09/13/04 16:22:11 3532 CertificateManager     certificatemanager.py:873 DEBUG Initializing environment with proxy cert for /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro
09/13/04 16:22:11 3532 CertificateManager     certificatemanager.py:907 DEBUG Looking for identity (unused) None
09/13/04 16:22:11 3532 CertificateManager     certificatemanager.py:892 DEBUG Configuring for user proxy issued from /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro
09/13/04 16:22:11 3532 CertificateManager     certificatemanager.py:895 DEBUG Proxy C:\DOCUME~1\semeraro\LOCALS~1\Temp\proxy will expire 09/13/04 16:58:25
09/13/04 16:22:11 3532 CertificateManager     certificatemanager.py:1479 DEBUG done, success=1
09/13/04 16:22:11 3532 Toolkit     toolkit.py:414 DEBUG Done with globus.
09/13/04 16:22:12 3532 SharedImageViewer     sharedappclient.py:102 ERROR SharedAppClient.Join failed: https://141.142.64.5:9000/119
Traceback (most recent call last):
  File "C:\Python23\Lib\site-packages\AccessGrid\SharedAppClient.py", line 97, in Join
    (self.__publicId, self.__privateId) = self.__appProxy.Join(clientProfile)
  File "C:\Python23\Lib\site-packages\AccessGrid\SharedApplication.py", line 553, in Join
    return self.proxy.Join(clientProfile)
  File "C:\software\AccessGrid\build\dist-20040910_210059\Lib\site-packages\SOAPpy\Client.py", line 453, in __call__
  File "C:\software\AccessGrid\build\dist-20040910_210059\Lib\site-packages\SOAPpy\Client.py", line 475, in __r_call
  File "C:\software\AccessGrid\build\dist-20040910_210059\Lib\site-packages\SOAPpy\Client.py", line 389, in __call
faultType: <Fault exceptions.TypeError: TypeError: Join() takes exactly 1 argument (2 given): Traceback (most recent call last):
  File "/usr/lib/python2.2/site-packages/AccessGrid/hosting/AccessControl.py", line 583, in __call__
    rc = self.callback(*args)
TypeError: Join() takes exactly 1 argument (2 given)
>
09/13/04 16:22:13 3532 SharedImageViewer     sharedappclient.py:108 INFO  SharedAppClient.Join: https://141.142.64.5:9000/119 using old software
09/13/04 16:22:13 3532 EventClient     eventclient.py:158 DEBUG Have callback handle _c866a101_p_callbackStruct
09/13/04 16:22:13 3532 DataStoreClient     datastoreclient.py:40 INFO  Connecting to venue https://venues.ncsa.uiuc.edu:9000/Venues/default, to get datastore information.
09/13/04 16:22:15 3532 SharedImageViewer     sharedimageviewer.py:250 INFO  SharedAppViewer: no image in venue
09/13/04 16:22:16 3532 SharedImageViewer     sharedimageviewer.py:261 INFO  SharedAppViewer: no markup in venue
09/13/04 16:22:43 3532 DataStoreClient     datastoreclient.py:307 DEBUG Upload C:\Documents and Settings\semeraro\My Documents\My Pictures\073104_satellite.jpg to https://141.142.64.5:9006/000000f797870a7a008d008e00420092fa9
09/13/04 16:22:43 3532 DataStore     datastore.py:1842 DEBUG Upload: check files
09/13/04 16:22:43 3532 DataStore     datastore.py:1850 DEBUG Upload: create manifest
09/13/04 16:22:43 3532 DataStore     datastore.py:2081 DEBUG Checksum C:\Documents and Settings\semeraro\My Documents\My Pictures\073104_satellite.jpg
09/13/04 16:22:43 3532 DataStore     datastore.py:1853 DEBUG Upload: Created manifest
09/13/04 16:22:43 3532 DataStore     datastore.py:1860 DEBUG upload mainfest: host='141.142.64.5:9006' base_path='/000000f797870a7a008d008e00420092fa9'
09/13/04 16:22:43 3532 DataStore     datastore.py:1992 DEBUG post returns <httplib.HTTPResponse instance at 0x01D915F8>
09/13/04 16:22:43 3532 DataStore     datastore.py:2000 DEBUG Reading response, headers are ['Server: BaseHTTP/0.2 Python/2.2.2\r\n', 'Date: Mon, 13 Sep 2004 21:22:44 GMT\r\n', 'Content-type: text/plain\r\n', 'Content-length: 72\r\n']
09/13/04 16:22:43 3532 DataStore     datastore.py:2008 DEBUG got tline <return_code: 1>
09/13/04 16:22:43 3532 DataStore     datastore.py:2008 DEBUG got tline <error_reason: Upload error for file 073104_satellite.jpg>
09/13/04 16:22:43 3532 DataStore     datastore.py:2008 DEBUG got tline <>
09/13/04 16:22:43 3532 DataStore     datastore.py:2029 DEBUG Upload failed:
09/13/04 16:22:43 3532 DataStore     datastore.py:2031 DEBUG    Upload error for file 073104_satellite.jpg
09/13/04 16:22:43 3532 DataStore     datastore.py:1884 ERROR Upload failed.
Traceback (most recent call last):
  File "C:\Python23\Lib\site-packages\AccessGrid\DataStore.py", line 1870, in UploadFiles
    transfer_key = self.uploadManifest(conn, base_path, manifest)
  File "C:\Python23\Lib\site-packages\AccessGrid\DataStore.py", line 2032, in uploadManifest
    raise UploadFailed((return_code, error_reasons))
UploadFailed: (1, ['Upload error for file 073104_satellite.jpg'])
09/13/04 16:23:08 3220 Toolkit     config.py:196 DEBUG Using GLOBUS_HOSTNAME=zim.ncsa.uiuc.edu as set in the environment
09/13/04 16:23:08 3220 CertificateManager     certificatemanager.py:257 DEBUG Opened repository C:\Documents and Settings\semeraro\Application Data\AccessGrid\Config\certRepo
09/13/04 16:23:08 3220 Toolkit     toolkit.py:395 DEBUG Got repo.
09/13/04 16:23:08 3220 Toolkit     toolkit.py:397 DEBUG looking in system ca dir: C:\Program Files\AGTk-2.3\Config\CAcertificates
09/13/04 16:23:08 3220 Toolkit     toolkit.py:401 DEBUG Getting cert: 1c3f2ca8.0
09/13/04 16:23:08 3220 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\1c3f2ca8.0
09/13/04 16:23:08 3220 Toolkit     toolkit.py:401 DEBUG Getting cert: 45cc9e80.0
09/13/04 16:23:08 3220 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\45cc9e80.0
09/13/04 16:23:08 3220 Toolkit     toolkit.py:401 DEBUG Getting cert: d1b603c3.0
09/13/04 16:23:08 3220 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\d1b603c3.0
09/13/04 16:23:08 3220 Toolkit     toolkit.py:401 DEBUG Getting cert: f18fa857.0
09/13/04 16:23:08 3220 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\f18fa857.0
09/13/04 16:23:08 3220 Toolkit     toolkit.py:410 DEBUG Init'ing globus.
09/13/04 16:23:08 3220 CertificateManager     certificatemanager.py:734 DEBUG Configuring standard environment
09/13/04 16:23:08 3220 CertificateManager     certificatemanager.py:802 DEBUG Using default identity /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro
09/13/04 16:23:08 3220 CertificateManager     certificatemanager.py:873 DEBUG Initializing environment with proxy cert for /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro
09/13/04 16:23:08 3220 CertificateManager     certificatemanager.py:907 DEBUG Looking for identity (unused) None
09/13/04 16:23:08 3220 CertificateManager     certificatemanager.py:892 DEBUG Configuring for user proxy issued from /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro
09/13/04 16:23:08 3220 CertificateManager     certificatemanager.py:895 DEBUG Proxy C:\DOCUME~1\semeraro\LOCALS~1\Temp\proxy will expire 09/13/04 16:58:25
09/13/04 16:23:08 3220 CertificateManager     certificatemanager.py:1479 DEBUG done, success=1
09/13/04 16:23:08 3220 Toolkit     toolkit.py:414 DEBUG Done with globus.
09/13/04 16:23:09 3220 SharedImageViewer     sharedappclient.py:102 ERROR SharedAppClient.Join failed: https://141.142.64.5:9000/119
Traceback (most recent call last):
  File "C:\Python23\Lib\site-packages\AccessGrid\SharedAppClient.py", line 97, in Join
    (self.__publicId, self.__privateId) = self.__appProxy.Join(clientProfile)
  File "C:\Python23\Lib\site-packages\AccessGrid\SharedApplication.py", line 553, in Join
    return self.proxy.Join(clientProfile)
  File "C:\software\AccessGrid\build\dist-20040910_210059\Lib\site-packages\SOAPpy\Client.py", line 453, in __call__
  File "C:\software\AccessGrid\build\dist-20040910_210059\Lib\site-packages\SOAPpy\Client.py", line 475, in __r_call
  File "C:\software\AccessGrid\build\dist-20040910_210059\Lib\site-packages\SOAPpy\Client.py", line 389, in __call
faultType: <Fault exceptions.TypeError: TypeError: Join() takes exactly 1 argument (2 given): Traceback (most recent call last):
  File "/usr/lib/python2.2/site-packages/AccessGrid/hosting/AccessControl.py", line 583, in __call__
    rc = self.callback(*args)
TypeError: Join() takes exactly 1 argument (2 given)
>
09/13/04 16:23:10 3220 SharedImageViewer     sharedappclient.py:108 INFO  SharedAppClient.Join: https://141.142.64.5:9000/119 using old software
09/13/04 16:23:12 3220 EventClient     eventclient.py:158 DEBUG Have callback handle _e807a101_p_callbackStruct
09/13/04 16:23:12 3220 DataStoreClient     datastoreclient.py:40 INFO  Connecting to venue https://venues.ncsa.uiuc.edu:9000/Venues/default, to get datastore information.
09/13/04 16:23:14 3220 SharedImageViewer     sharedimageviewer.py:250 INFO  SharedAppViewer: no image in venue
09/13/04 16:23:14 3220 SharedImageViewer     sharedimageviewer.py:261 INFO  SharedAppViewer: no markup in venue
09/13/04 16:23:30 3220 DataStoreClient     datastoreclient.py:307 DEBUG Upload C:\Documents and Settings\semeraro\Application Data\AccessGrid\SharedApplications\Shared_Image_Viewer\073104_satellite.jpg to https://141.142.64.5:9006/000000f797870a7a008d008e00420092fa9
09/13/04 16:23:30 3220 DataStore     datastore.py:1842 DEBUG Upload: check files
09/13/04 16:23:30 3220 DataStore     datastore.py:1850 DEBUG Upload: create manifest
09/13/04 16:23:30 3220 DataStore     datastore.py:2081 DEBUG Checksum C:\Documents and Settings\semeraro\Application Data\AccessGrid\SharedApplications\Shared_Image_Viewer\073104_satellite.jpg
09/13/04 16:23:30 3220 DataStore     datastore.py:1853 DEBUG Upload: Created manifest
09/13/04 16:23:30 3220 DataStore     datastore.py:1860 DEBUG upload mainfest: host='141.142.64.5:9006' base_path='/000000f797870a7a008d008e00420092fa9'
09/13/04 16:23:31 3220 DataStore     datastore.py:1992 DEBUG post returns <httplib.HTTPResponse instance at 0x01DAA1E8>
09/13/04 16:23:31 3220 DataStore     datastore.py:2000 DEBUG Reading response, headers are ['Server: BaseHTTP/0.2 Python/2.2.2\r\n', 'Date: Mon, 13 Sep 2004 21:23:32 GMT\r\n', 'Content-type: text/plain\r\n', 'Content-length: 72\r\n']
09/13/04 16:23:31 3220 DataStore     datastore.py:2008 DEBUG got tline <return_code: 1>
09/13/04 16:23:31 3220 DataStore     datastore.py:2008 DEBUG got tline <error_reason: Upload error for file 073104_satellite.jpg>
09/13/04 16:23:31 3220 DataStore     datastore.py:2008 DEBUG got tline <>
09/13/04 16:23:31 3220 DataStore     datastore.py:2029 DEBUG Upload failed:
09/13/04 16:23:31 3220 DataStore     datastore.py:2031 DEBUG    Upload error for file 073104_satellite.jpg
09/13/04 16:23:31 3220 DataStore     datastore.py:1884 ERROR Upload failed.
Traceback (most recent call last):
  File "C:\Python23\Lib\site-packages\AccessGrid\DataStore.py", line 1870, in UploadFiles
    transfer_key = self.uploadManifest(conn, base_path, manifest)
  File "C:\Python23\Lib\site-packages\AccessGrid\DataStore.py", line 2032, in uploadManifest
    raise UploadFailed((return_code, error_reasons))
UploadFailed: (1, ['Upload error for file 073104_satellite.jpg'])
09/13/04 16:23:42 3220 EventClient     eventclient.py:303 DEBUG Cancel pending callbacks
09/13/04 16:23:42 2380 EventClient     eventclient.py:177 DEBUG Read Callback called arg=None handle=_28f29f01_p_globus_io_handle_t result=(-1, 2, 'an I/O operation was cancelled')  n=0 

09/13/04 16:23:42 2380 EventClient     eventclient.py:180 DEBUG readCallback gets failure in result: -1 2
09/13/04 16:23:42 3220 EventClient     eventclient.py:309 DEBUG Free callback _e807a101_p_callbackStruct
09/13/04 16:23:42 3220 EventClient     eventclient.py:315 DEBUG EventClient.Stop: closing socket
09/13/04 16:23:42 3220 EventClient     eventclient.py:323 DEBUG EventClient.Stop: closing queue
09/13/04 16:23:48 3532 EventClient     eventclient.py:303 DEBUG Cancel pending callbacks
09/13/04 16:23:48 3900 EventClient     eventclient.py:177 DEBUG Read Callback called arg=None handle=_c0f39f01_p_globus_io_handle_t result=(-1, 2, 'an I/O operation was cancelled')  n=0 

09/13/04 16:23:48 3900 EventClient     eventclient.py:180 DEBUG readCallback gets failure in result: -1 2
09/13/04 16:23:48 3532 EventClient     eventclient.py:309 DEBUG Free callback _c866a101_p_callbackStruct
09/13/04 16:23:48 3532 EventClient     eventclient.py:315 DEBUG EventClient.Stop: closing socket
09/13/04 16:23:48 3532 EventClient     eventclient.py:323 DEBUG EventClient.Stop: closing queue
-------------- next part --------------
09/13/04 16:19:56 3656 Toolkit     config.py:196 DEBUG Using GLOBUS_HOSTNAME=zim.ncsa.uiuc.edu as set in the environment
09/13/04 16:19:56 3656 CertificateManager     certificatemanager.py:257 DEBUG Opened repository C:\Documents and Settings\semeraro\Application Data\AccessGrid\Config\certRepo
09/13/04 16:19:56 3656 Toolkit     toolkit.py:395 DEBUG Got repo.
09/13/04 16:19:56 3656 Toolkit     toolkit.py:397 DEBUG looking in system ca dir: C:\Program Files\AGTk-2.3\Config\CAcertificates
09/13/04 16:19:56 3656 Toolkit     toolkit.py:401 DEBUG Getting cert: 1c3f2ca8.0
09/13/04 16:19:56 3656 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\1c3f2ca8.0
09/13/04 16:19:56 3656 Toolkit     toolkit.py:401 DEBUG Getting cert: 45cc9e80.0
09/13/04 16:19:56 3656 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\45cc9e80.0
09/13/04 16:19:56 3656 Toolkit     toolkit.py:401 DEBUG Getting cert: d1b603c3.0
09/13/04 16:19:56 3656 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\d1b603c3.0
09/13/04 16:19:56 3656 Toolkit     toolkit.py:401 DEBUG Getting cert: f18fa857.0
09/13/04 16:19:56 3656 Toolkit     toolkit.py:406 WARNING Not importing cert C:\Program Files\AGTk-2.3\Config\CAcertificates\f18fa857.0
09/13/04 16:19:56 3656 Toolkit     toolkit.py:410 DEBUG Init'ing globus.
09/13/04 16:19:57 3656 CertificateManager     certificatemanager.py:734 DEBUG Configuring standard environment
09/13/04 16:19:57 3656 CertificateManager     certificatemanager.py:802 DEBUG Using default identity /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro
09/13/04 16:19:57 3656 CertificateManager     certificatemanager.py:873 DEBUG Initializing environment with proxy cert for /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro
09/13/04 16:19:57 3656 CertificateManager     certificatemanager.py:907 DEBUG Looking for identity (unused) None
09/13/04 16:19:57 3656 CertificateManager     certificatemanager.py:892 DEBUG Configuring for user proxy issued from /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro
09/13/04 16:19:57 3656 CertificateManager     certificatemanager.py:895 DEBUG Proxy C:\DOCUME~1\semeraro\LOCALS~1\Temp\proxy will expire 09/13/04 16:58:25
09/13/04 16:19:57 3656 Toolkit     toolkit.py:414 DEBUG Done with globus.
09/13/04 16:19:57 3656 VenueClient     venueclient.py:284 DEBUG __StartWebService: venueclient: https://zim.ncsa.uiuc.edu:11000/VenueClient
09/13/04 16:19:57 3656 ServiceManager     agservicemanager.py:75 INFO  Using services dir: C:\Documents and Settings\semeraro\Application Data\AccessGrid\local_services
09/13/04 16:19:57 3656 ServiceManager     agservicemanager.py:414 INFO  __DiscoverResources
09/13/04 16:19:57 3656 Toolkit     config.py:997 INFO  Using vfwscan to get devices
09/13/04 16:19:57 3656 Toolkit     config.py:998 DEBUG vfwscanexe = C:\PROGRA~1\AGTk-2.3\bin\vfwscan.exe
09/13/04 16:19:57 3656 Toolkit     config.py:1003 DEBUG filelines = ['Microsoft WDM Image Capture (Win32)\n']
09/13/04 16:19:57 3656 Toolkit     config.py:1031 INFO  GetResources: ['Microsoft WDM Image Capture (Win32)']
09/13/04 16:19:57 3656 VenueClient     venueclient.py:293 DEBUG __StartWebService: service manager: https://zim.ncsa.uiuc.edu:11000/ServiceManager
09/13/04 16:19:57 3656 NodeService     agnodeservice.py:733 INFO  NodeService.__ReadConfigFile
09/13/04 16:19:57 3656 Toolkit     toolkit.py:328 DEBUG Looking for: C:\Documents and Settings\semeraro\Application Data\AccessGrid\Config\AGNodeService.cfg
09/13/04 16:19:57 3656 Toolkit     toolkit.py:333 DEBUG Looking for: C:\Program Files\AGTk-2.3\Config\AGNodeService.cfg
09/13/04 16:19:57 3656 NodeService     agnodeservice.py:741 DEBUG DEFAULT NODE SERVICE CONFIG: C:\Program Files\AGTk-2.3\Config\AGNodeService.cfg
09/13/04 16:19:57 3656 NodeService     agnodeservice.py:745 INFO  Reading node service config file: C:\Program Files\AGTk-2.3\Config\AGNodeService.cfg
09/13/04 16:19:57 3656 VenueClient     venueclient.py:299 DEBUG __StartWebService: node service: https://zim.ncsa.uiuc.edu:11000/NodeService
09/13/04 16:19:57 3656 VenueClient     venueclient.py:1317 DEBUG SerNodeUrl: Set node service url:  https://zim.ncsa.uiuc.edu:11000/NodeService
09/13/04 16:19:57 3656 NodeService     agnodeservice.py:675 INFO  NodeService.GetDefaultConfiguration
09/13/04 16:19:57 3656 NodeService     agnodeservice.py:558 INFO  Migration unnecessary
09/13/04 16:19:57 3656 NodeService     agnodeservice.py:351 INFO  NodeService.LoadDefaultConfig
09/13/04 16:19:57 3656 NodeService     agnodeservice.py:355 INFO  Loading default node configuration: defaultWindows
09/13/04 16:19:57 3656 NodeService     agnodeservice.py:369 INFO  NodeService.LoadConfiguration
09/13/04 16:19:57 3656 NodeService     agnodeservice.py:384 INFO  Trying to load node configuration from: C:\Documents and Settings\semeraro\Application Data\AccessGrid\Config\nodeConfig\defaultWindows
09/13/04 16:19:57 2496 ServiceManager     agservicemanager.py:379 INFO  AGServiceManager.RemoveServices
09/13/04 16:19:58 1832 ServiceManager     agservicemanager.py:115 INFO  AGServiceManager.AddService
09/13/04 16:19:58 1832 ServiceManager     agservicemanager.py:118 INFO  AddService: AudioService v 2.400000 u AudioService.zip
09/13/04 16:19:58 1832 ServiceManager     agservicemanager.py:123 INFO  resourceToAssign: None
09/13/04 16:19:58 1832 ServiceManager     agservicemanager.py:186 INFO  Retaining version 2.400000
09/13/04 16:19:58 1832 ServiceManager     agservicemanager.py:189 INFO  Extracting service package to C:\Documents and Settings\semeraro\Application Data\AccessGrid\local_services\AudioService
09/13/04 16:19:58 1832 ServiceManager     agservicemanager.py:231 INFO  Running Service; options: C:\Python23\python.exe [u'C:\\Documents and Settings\\semeraro\\Application Data\\AccessGrid\\local_services\\AudioService\\AudioService.py', 61136]
09/13/04 16:19:58 1832 ProcessManager     processmanager.py:59 DEBUG Creating process: C:\Python23\python.exe "C:\Documents and Settings\semeraro\Application Data\AccessGrid\local_services\AudioService\AudioService.py" 61136
09/13/04 16:19:58 1832 ProcessManager     processmanager.py:72 DEBUG Create process returns: (<PyHANDLE object at 0x008DEB04>, <PyHANDLE object at 0x01BE13B4>, 2720, 1588)
09/13/04 16:19:58 1832 ServiceManager     agservicemanager.py:248 DEBUG Waiting for service to start: AudioService https://zim.ncsa.uiuc.edu:61136/Service
09/13/04 16:20:00 1832 ServiceManager     agservicemanager.py:255 INFO  Service AudioService successfully started
09/13/04 16:20:00 1832 ServiceManager     agservicemanager.py:290 DEBUG Not setting service configuration; none given
09/13/04 16:20:00 1832 ServiceManager     agservicemanager.py:299 DEBUG Not assigning resource; none given
09/13/04 16:20:01 3656 NodeService     agnodeservice.py:492 INFO  Not setting identity for service AudioService; no profile
09/13/04 16:20:01 3708 ServiceManager     agservicemanager.py:115 INFO  AGServiceManager.AddService
09/13/04 16:20:01 3708 ServiceManager     agservicemanager.py:118 INFO  AddService: VideoConsumerService v 2.300000 u VideoConsumerService.zip
09/13/04 16:20:01 3708 ServiceManager     agservicemanager.py:123 INFO  resourceToAssign: None
09/13/04 16:20:01 3708 ServiceManager     agservicemanager.py:186 INFO  Retaining version 2.300000
09/13/04 16:20:01 3708 ServiceManager     agservicemanager.py:189 INFO  Extracting service package to C:\Documents and Settings\semeraro\Application Data\AccessGrid\local_services\VideoConsumerService
09/13/04 16:20:01 3708 ServiceManager     agservicemanager.py:231 INFO  Running Service; options: C:\Python23\python.exe [u'C:\\Documents and Settings\\semeraro\\Application Data\\AccessGrid\\local_services\\VideoConsumerService\\VideoConsumerService.py', 49846]
09/13/04 16:20:01 3708 ProcessManager     processmanager.py:59 DEBUG Creating process: C:\Python23\python.exe "C:\Documents and Settings\semeraro\Application Data\AccessGrid\local_services\VideoConsumerService\VideoConsumerService.py" 49846
09/13/04 16:20:01 3708 ProcessManager     processmanager.py:72 DEBUG Create process returns: (<PyHANDLE object at 0x01F476D4>, <PyHANDLE object at 0x01F48914>, 1412, 3576)
09/13/04 16:20:01 3708 ServiceManager     agservicemanager.py:248 DEBUG Waiting for service to start: VideoConsumerService https://zim.ncsa.uiuc.edu:49846/Service
09/13/04 16:20:03 3708 ServiceManager     agservicemanager.py:255 INFO  Service VideoConsumerService successfully started
09/13/04 16:20:03 3708 ServiceManager     agservicemanager.py:290 DEBUG Not setting service configuration; none given
09/13/04 16:20:03 3708 ServiceManager     agservicemanager.py:299 DEBUG Not assigning resource; none given
09/13/04 16:20:04 3656 NodeService     agnodeservice.py:492 INFO  Not setting identity for service VideoConsumerService; no profile
09/13/04 16:20:04 3656 VenueClient     venueclient.py:182 DEBUG __createPersonalDataStore: Creating personal datastore at C:\Documents and Settings\semeraro\Application Data\AccessGrid\Config\personalDataStore using prefix personalDataStore and port 0
09/13/04 16:20:04 3656 DataStore     datastore.py:1500 DEBUG Creating thread 0
09/13/04 16:20:04 3656 DataStore     datastore.py:1505 DEBUG Starting thread 0
09/13/04 16:20:04 1144 DataStore     datastore.py:1513 DEBUG Worker 0 starting
09/13/04 16:20:04 3656 DataStore     datastore.py:1507 DEBUG Waiting thread 0
09/13/04 16:20:04 3656 DataStore     datastore.py:1510 DEBUG Done creating workers
09/13/04 16:20:04 3656 DataStore     datastore.py:263 DEBUG Reading persisted data from: C:\Documents and Settings\semeraro\Application Data\AccessGrid\Config\personalDataStore\DataStore.dat
09/13/04 16:20:04 3656 VenueClient     venueclient.py:207 DEBUG __createPersonalDataStore: Load personal data from file
09/13/04 16:20:11 3656 VenueClient     venueclient.py:803 DEBUG EnterVenue; url=https://venues.ncsa.uiuc.edu:9000/Venues/default
09/13/04 16:20:11 3656 CertificateManager     certificatemanager.py:907 DEBUG Looking for identity (unused) None
09/13/04 16:20:11 3656 CertificateManager     certificatemanager.py:638 DEBUG HaveValidProxy: found proxy ident /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro/CN=proxy
09/13/04 16:20:11 3656 CertificateManager     certificatemanager.py:907 DEBUG Looking for identity (unused) None
09/13/04 16:20:11 3656 CertificateManager     certificatemanager.py:638 DEBUG HaveValidProxy: found proxy ident /O=Access Grid/OU=agdev-ca.mcs.anl.gov/OU=ncsa.uiuc.edu/CN=Dave Semeraro/CN=proxy
09/13/04 16:20:11 256 NodeService     agnodeservice.py:692 INFO  NodeService.GetCapabilities
09/13/04 16:20:11 256 NodeService     agnodeservice.py:233 INFO  NodeService.GetServices
09/13/04 16:20:12 2144 ServiceManager     agservicemanager.py:389 INFO  AGServiceManager.GetServices
09/13/04 16:20:12 3656 VenueClient     venueclient.py:702 DEBUG EnterVenue: Invoke venue enter
09/13/04 16:20:14 3656 EventClient     eventclient.py:158 DEBUG Have callback handle _10e28301_p_callbackStruct
09/13/04 16:20:16 3656 TextConnection     textclient.py:145 DEBUG TextConnection: register returns _b8b98101_p_callbackStruct
09/13/04 16:20:16 3656 TextConnection     textclient.py:147 DEBUG 
	host:141.142.64.5
	port:9004
	attr:<pyGlobus.io.TCPIOAttr instance at 0x01F08800>
09/13/04 16:20:16 3656 TextConnection     textclient.py:149 DEBUG 
	socket:<pyGlobus.io.GSITCPSocket instance at 0x01F086C0>
09/13/04 16:20:16 3656 TextConnection     textclient.py:164 DEBUG TextConnection.Write: EVENT --- Input
09/13/04 16:20:16 3656 TextConnection     textclient.py:165 DEBUG TextConnection.Write: Event:
	Type: Connect	Venue: 000000f797870a7a008d008e00420092fa9
09/13/04 16:20:16 3656 VenueClient     venueclient.py:781 DEBUG Setting isInVenue flag.
09/13/04 16:20:16 3656 VenueClient     venueclient.py:996 DEBUG UpdateNodeService: Method UpdateNodeService called
09/13/04 16:20:16 1020 NodeService     agnodeservice.py:711 INFO  NodeService.SetIdentity Dave Semeraro semeraro at ncsa.uiuc.edu
09/13/04 16:20:16 1020 NodeService     agnodeservice.py:233 INFO  NodeService.GetServices
09/13/04 16:20:17 1944 ServiceManager     agservicemanager.py:389 INFO  AGServiceManager.GetServices
09/13/04 16:20:18 3656 VenueClient     venueclient.py:1043 DEBUG UpdateStream: Setting stream 000000fef907bb8b008d008e0040000505a to multicast
09/13/04 16:20:18 3656 VenueClient     venueclient.py:1043 DEBUG UpdateStream: Setting stream 000000fef9994266008d008e004000054ef to multicast
09/13/04 16:20:18 252 NodeService     agnodeservice.py:302 INFO  NodeService.SetStreams
09/13/04 16:20:18 252 NodeService     agnodeservice.py:233 INFO  NodeService.GetServices
09/13/04 16:20:18 3756 ServiceManager     agservicemanager.py:389 INFO  AGServiceManager.GetServices
09/13/04 16:20:18 252 NodeService     agnodeservice.py:782 INFO  NodeService.__SendStreamsToService
09/13/04 16:20:19 252 NodeService     agnodeservice.py:792 INFO  Sending stream (type=audio) to service: https://zim.ncsa.uiuc.edu:61136/Service
09/13/04 16:20:20 252 NodeService     agnodeservice.py:782 INFO  NodeService.__SendStreamsToService
09/13/04 16:20:21 252 NodeService     agnodeservice.py:792 INFO  Sending stream (type=video) to service: https://zim.ncsa.uiuc.edu:49846/Service
09/13/04 16:20:21 3656 VenueClient     venueclient.py:837 DEBUG Updating client profile cache.
09/13/04 16:20:21 3656 VenueClient     venueclientui.py:1959 DEBUG bin.VenueClient::EnterVenue: Enter venue with url: https://venues.ncsa.uiuc.edu:9000/Venues/default
09/13/04 16:20:21 3656 VenueClient     venueclientui.py:2067 DEBUG Entered venue
09/13/04 16:20:21 3656 VenueClient     venueclientui.py:2647 DEBUG ContentListPanel.AddParticipant:: AddParticipant UCSB College of Engineering (called from ('C:\\Python23\\Lib\\site-packages\\wx\\core.py', 9397, '<lambda>', 'lambda event: event.callable(*event.args, **event.kw) )'))
09/13/04 16:20:21 3656 VenueClient     venueclientui.py:2647 DEBUG ContentListPanel.AddParticipant:: AddParticipant Dave Semeraro (called from ('C:\\Python23\\Lib\\site-packages\\wx\\core.py', 9397, '<lambda>', 'lambda event: event.callable(*event.args, **event.kw) )'))
09/13/04 16:20:21 3656 VenueClient     venueclientui.py:2714 DEBUG ContentListPanel.AddData: profile.type = None
09/13/04 16:20:21 3656 VenueClient     venueclientui.py:2718 DEBUG ContentListPanel.AddData: This is venue data
09/13/04 16:20:21 3656 VenueClient     venueclientui.py:2714 DEBUG ContentListPanel.AddData: profile.type = None
09/13/04 16:20:21 3656 VenueClient     venueclientui.py:2718 DEBUG ContentListPanel.AddData: This is venue data
09/13/04 16:20:21 3656 VenueClient     venueclientui.py:2714 DEBUG ContentListPanel.AddData: profile.type = None
09/13/04 16:20:21 3656 VenueClient     venueclientui.py:2718 DEBUG ContentListPanel.AddData: This is venue data
09/13/04 16:20:36 3656 VenueClientController     venueclientcontroller.py:557 DEBUG VenueClientFrame.StartApp: Creating application: Shared Image Viewer
09/13/04 16:20:37 992 EventClient     eventclient.py:177 DEBUG Read Callback called arg=None handle=_a8fb8001_p_globus_io_handle_t result=(0, None, None)  n=4 

09/13/04 16:20:37 992 EventClient     eventclient.py:229 DEBUG Freeing callback _10e28301_p_callbackStruct within callback
09/13/04 16:20:37 992 EventClient     eventclient.py:238 DEBUG Have new callback handle _10e28301_p_callbackStruct
09/13/04 16:20:37 992 EventClient     eventclient.py:177 DEBUG Read Callback called arg=None handle=_a8fb8001_p_globus_io_handle_t result=(0, None, None)  n=522 

09/13/04 16:20:37 992 EventClient     eventclient.py:218 DEBUG finally read enough data, wait=522 buflen=522
09/13/04 16:20:37 992 EventClient     eventclient.py:253 DEBUG Invoking callback <bound method VenueClient.AddApplicationEvent of <AccessGrid.VenueClient.VenueClient instance at 0x01EDD1C0>>...
09/13/04 16:20:37 2476 VenueClient     venueclient.py:550 DEBUG AddApplicationEvent: Got Add Application Event
09/13/04 16:20:37 2476 VenueClient     venueclientui.py:1833 DEBUG EVENT - Add application: Shared Image Viewer - 04:20:36 PM September 13, 2004, Mime Type: application/x-ag-shared-image-viewer
09/13/04 16:20:37 992 EventClient     eventclient.py:259 DEBUG Invoking callback <bound method VenueClient.AddApplicationEvent of <AccessGrid.VenueClient.VenueClient instance at 0x01EDD1C0>>...done
09/13/04 16:20:37 992 EventClient     eventclient.py:261 INFO  No callback for Add application!
09/13/04 16:20:37 992 EventClient     eventclient.py:329 INFO  Got callback for Add application event!
09/13/04 16:20:37 992 EventClient     eventclient.py:224 DEBUG handleData returns
09/13/04 16:20:37 992 EventClient     eventclient.py:229 DEBUG Freeing callback _10e28301_p_callbackStruct within callback
09/13/04 16:20:37 992 EventClient     eventclient.py:238 DEBUG Have new callback handle _10e28301_p_callbackStruct
09/13/04 16:20:39 3656 VenueClient     venueclientui.py:3210 INFO  Got commands: (application/x-ag-shared-image-viewer) {'Open': 'C:\\Python23\\python.exe SharedImageViewer.py -d -a %(appUrl)s -v %(venueUrl)s'}
09/13/04 16:22:04 992 EventClient     eventclient.py:177 DEBUG Read Callback called arg=None handle=_a8fb8001_p_globus_io_handle_t result=(0, None, None)  n=4 

09/13/04 16:22:04 992 EventClient     eventclient.py:229 DEBUG Freeing callback _10e28301_p_callbackStruct within callback
09/13/04 16:22:04 992 EventClient     eventclient.py:238 DEBUG Have new callback handle _18318301_p_callbackStruct
09/13/04 16:22:04 992 EventClient     eventclient.py:177 DEBUG Read Callback called arg=None handle=_a8fb8001_p_globus_io_handle_t result=(0, None, None)  n=4096 

09/13/04 16:22:04 992 EventClient     eventclient.py:229 DEBUG Freeing callback _18318301_p_callbackStruct within callback
09/13/04 16:22:04 992 EventClient     eventclient.py:238 DEBUG Have new callback handle _18318301_p_callbackStruct
09/13/04 16:22:04 992 EventClient     eventclient.py:177 DEBUG Read Callback called arg=None handle=_a8fb8001_p_globus_io_handle_t result=(0, None, None)  n=505 

09/13/04 16:22:04 992 EventClient     eventclient.py:218 DEBUG finally read enough data, wait=4601 buflen=4601
09/13/04 16:22:04 992 EventClient     eventclient.py:269 WARNING handleData unable to import pyGlobus.AGGSISOAP
09/13/04 16:22:04 992 EventClient     eventclient.py:224 DEBUG handleData returns
09/13/04 16:22:04 992 EventClient     eventclient.py:229 DEBUG Freeing callback _18318301_p_callbackStruct within callback
09/13/04 16:22:04 992 EventClient     eventclient.py:238 DEBUG Have new callback handle _18318301_p_callbackStruct
09/13/04 16:23:04 3656 VenueClient     venueclientui.py:3210 INFO  Got commands: (application/x-ag-shared-image-viewer) {'Open': 'C:\\Python23\\python.exe SharedImageViewer.py -d -a %(appUrl)s -v %(venueUrl)s'}
09/13/04 16:23:05 3656 VenueClientController     venueclientcontroller.py:1189 INFO  StartCmd starting command: C:\Python23\python.exe SharedImageViewer.py -d -a https://141.142.64.5:9000/119 -v https://venues.ncsa.uiuc.edu:9000/Venues/default
09/13/04 16:23:05 3656 ProcessManager     processmanager.py:59 DEBUG Creating process: C:\Python23\python.exe SharedImageViewer.py -d -a https://141.142.64.5:9000/119 -v https://venues.ncsa.uiuc.edu:9000/Venues/default
09/13/04 16:23:06 3656 ProcessManager     processmanager.py:72 DEBUG Create process returns: (<PyHANDLE object at 0x01F4AA0C>, <PyHANDLE object at 0x01F721BC>, 3236, 3220)
09/13/04 16:28:08 3656 VenueClient     venueclientui.py:3210 INFO  Got commands: (application/x-ag-shared-image-viewer) {'Open': 'C:\\Python23\\python.exe SharedImageViewer.py -d -a %(appUrl)s -v %(venueUrl)s'}
09/13/04 16:28:12 992 EventClient     eventclient.py:177 DEBUG Read Callback called arg=None handle=_a8fb8001_p_globus_io_handle_t result=(0, None, None)  n=4 

09/13/04 16:28:12 992 EventClient     eventclient.py:229 DEBUG Freeing callback _18318301_p_callbackStruct within callback
09/13/04 16:28:12 992 EventClient     eventclient.py:238 DEBUG Have new callback handle _18318301_p_callbackStruct
09/13/04 16:28:12 992 EventClient     eventclient.py:177 DEBUG Read Callback called arg=None handle=_a8fb8001_p_globus_io_handle_t result=(0, None, None)  n=525 

09/13/04 16:28:12 992 EventClient     eventclient.py:218 DEBUG finally read enough data, wait=525 buflen=525
09/13/04 16:28:12 992 EventClient     eventclient.py:253 DEBUG Invoking callback <bound method VenueClient.RemoveApplicationEvent of <AccessGrid.VenueClient.VenueClient instance at 0x01EDD1C0>>...
09/13/04 16:28:12 2476 VenueClient     venueclient.py:565 DEBUG RemoveApplicationEvent: Got Remove Application Event
09/13/04 16:28:12 2476 VenueClient     venueclientui.py:1849 DEBUG EVENT - Remove application: Shared Image Viewer - 04:20:36 PM September 13, 2004
09/13/04 16:28:12 992 EventClient     eventclient.py:259 DEBUG Invoking callback <bound method VenueClient.RemoveApplicationEvent of <AccessGrid.VenueClient.VenueClient instance at 0x01EDD1C0>>...done
09/13/04 16:28:12 992 EventClient     eventclient.py:261 INFO  No callback for Remove application!
09/13/04 16:28:12 992 EventClient     eventclient.py:329 INFO  Got callback for Remove application event!
09/13/04 16:28:12 992 EventClient     eventclient.py:224 DEBUG handleData returns
09/13/04 16:28:12 992 EventClient     eventclient.py:229 DEBUG Freeing callback _18318301_p_callbackStruct within callback
09/13/04 16:28:12 992 EventClient     eventclient.py:238 DEBUG Have new callback handle _18318301_p_callbackStruct
09/13/04 16:28:14 3656 VenueClient     venueclientui.py:1599 INFO  --------- END VenueClient
09/13/04 16:28:14 3656 VenueClient     venueclient.py:935 INFO  ExitVenue
09/13/04 16:28:14 3656 ProcessManager     processmanager.py:135 ERROR couldn't shutdown process <PyHANDLE:1116>: (1444, 'PostThreadMessage', 'Invalid thread identifier.')
Traceback (most recent call last):
  File "C:\Python23\Lib\site-packages\AccessGrid\Platform\win32\ProcessManager.py", line 128, in TerminateProcess
    win32api.PostThreadMessage(self.threadid[pid], 18, 0, 0)
error: (1444, 'PostThreadMessage', 'Invalid thread identifier.')
09/13/04 16:28:14 3656 ProcessManager     processmanager.py:142 ERROR couldn't terminate process <PyHANDLE:1116>: (5, 'TerminateProcess', 'Access is denied.')
Traceback (most recent call last):
  File "C:\Python23\Lib\site-packages\AccessGrid\Platform\win32\ProcessManager.py", line 139, in TerminateProcess
    win32process.TerminateProcess(pid, 0)
error: (5, 'TerminateProcess', 'Access is denied.')
09/13/04 16:28:14 3656 VenueClient     venueclient.py:978 INFO  ExitVenue: Stopping node services
09/13/04 16:28:15 908 NodeService     agnodeservice.py:278 INFO  NodeService.StopServices
09/13/04 16:28:15 3496 ServiceManager     agservicemanager.py:399 INFO  AGServiceManager.StopServices
09/13/04 16:28:17 3336 NodeService     agnodeservice.py:302 INFO  NodeService.SetStreams
09/13/04 16:28:17 3336 NodeService     agnodeservice.py:233 INFO  NodeService.GetServices
09/13/04 16:28:18 3792 ServiceManager     agservicemanager.py:389 INFO  AGServiceManager.GetServices
09/13/04 16:28:18 3336 NodeService     agnodeservice.py:782 INFO  NodeService.__SendStreamsToService
09/13/04 16:28:18 3336 NodeService     agnodeservice.py:782 INFO  NodeService.__SendStreamsToService
09/13/04 16:28:19 3656 VenueClient     venueclient.py:892 INFO  ExitVenue: Stopping heartbeats
09/13/04 16:28:20 992 EventClient     eventclient.py:177 DEBUG Read Callback called arg=None handle=_a8fb8001_p_globus_io_handle_t result=(-1, 36, 'an end-of-file was reached')  n=0 

09/13/04 16:28:20 992 EventClient     eventclient.py:180 DEBUG readCallback gets failure in result: -1 36
09/13/04 16:28:20 3656 VenueClient     venueclient.py:903 DEBUG ExitVenue: Stop event client obj
09/13/04 16:28:20 3656 EventClient     eventclient.py:303 DEBUG Cancel pending callbacks
09/13/04 16:28:20 3656 EventClient     eventclient.py:309 DEBUG Free callback _18318301_p_callbackStruct
09/13/04 16:28:20 3656 EventClient     eventclient.py:315 DEBUG EventClient.Stop: closing socket
09/13/04 16:28:20 3656 EventClient     eventclient.py:323 DEBUG EventClient.Stop: closing queue
09/13/04 16:28:20 3656 VenueClient     venueclient.py:905 DEBUG ExitVenue: Remove event client reference
09/13/04 16:28:20 3656 VenueClient     venueclient.py:910 INFO  ExitVenue: Stopping text client
09/13/04 16:28:20 3656 VenueClient     venueclient.py:914 DEBUG ExitVenue: Sending client disconnect event.
09/13/04 16:28:21 3656 TextConnection     textclient.py:164 DEBUG TextConnection.Write: EVENT --- Input
09/13/04 16:28:21 3656 TextConnection     textclient.py:165 DEBUG TextConnection.Write: Event:
	Type: Disconnect	Venue: 000000f797870a7a008d008e00420092fa9
09/13/04 16:28:21 2960 TextConnection     textclient.py:207 DEBUG TextConnection: Got read handle=_487d8601_p_globus_io_handle_t ret=(-1, 44, 'an I/O operation was cancelled')  n=0 

09/13/04 16:28:21 2960 TextConnection     textclient.py:210 DEBUG TextConnection: asynch read gets n=0, EOF
09/13/04 16:28:21 3656 TextConnection     textclient.py:154 DEBUG TextClient.Stop
09/13/04 16:28:21 3656 VenueClient     venueclient.py:917 DEBUG ExitVenue: Remove text client reference
09/13/04 16:28:21 3656 DataStore     datastore.py:1577 DEBUG Quitting thread 0
09/13/04 16:28:21 1144 DataStore     datastore.py:1518 DEBUG Worker 0 gets cmd quit
09/13/04 16:28:21 1144 DataStore     datastore.py:1531 DEBUG Worker 0 exiting
09/13/04 16:28:21 2932 DataStore     datastore.py:1590 INFO  GSIHTTPTransferServer: GSITCPSocket, interrupted I/O operation, most likely shutting down. 
09/13/04 16:28:21 3656 NodeService     agnodeservice.py:113 INFO  NodeService.Stop
09/13/04 16:28:21 3656 ServiceManager     agservicemanager.py:84 INFO  AGServiceManager.Shutdown
09/13/04 16:28:21 3656 ServiceManager     agservicemanager.py:85 INFO  Remove services
09/13/04 16:28:21 3656 ServiceManager     agservicemanager.py:379 INFO  AGServiceManager.RemoveServices
09/13/04 16:28:21 3656 ServiceManager     agservicemanager.py:320 INFO  AGServiceManager.RemoveService
09/13/04 16:28:21 3656 ServiceManager     agservicemanager.py:320 INFO  AGServiceManager.RemoveService
09/13/04 16:28:22 3656 ProcessManager     processmanager.py:133 WARNING Couldn't terminate process <PyHANDLE:1044> cleanly (258)
09/13/04 16:28:22 3656 ServiceManager     agservicemanager.py:87 INFO  Stop network interface
09/13/04 16:28:22 904 Hosting     server.py:65 ERROR Exception in SOAP server main loop
Traceback (most recent call last):
  File "C:\software\AccessGrid\build\dist-20040910_210059\Lib\site-packages\AccessGrid\hosting\SOAPpy\Server.py", line 63, in Run
  File "C:\Python23\lib\SocketServer.py", line 217, in handle_request
    request, client_address = self.get_request()
  File "C:\software\AccessGrid\build\dist-20040910_210059\Lib\site-packages\SOAPpy\GSIServer.py", line 140, in get_request
  File "C:\Python23\Lib\site-packages\pyGlobus\io.py", line 525, in get_request
    self.socket.listen()
  File "C:\Python23\Lib\site-packages\pyGlobus\io.py", line 857, in listen
    raise ex
GSITCPSocketException: an I/O operation was cancelled
09/13/04 16:28:22 3656 Hosting     server.py:97 ERROR server_close() failed
Traceback (most recent call last):
  File "C:\software\AccessGrid\build\dist-20040910_210059\Lib\site-packages\AccessGrid\hosting\SOAPpy\Server.py", line 95, in Stop
  File "C:\Python23\Lib\site-packages\pyGlobus\io.py", line 1043, in server_close
    self.socket.close()
  File "C:\Python23\Lib\site-packages\pyGlobus\io.py", line 1020, in close
    IOBase.close(self)
  File "C:\Python23\Lib\site-packages\pyGlobus\io.py", line 176, in close
    raise ex
IOBaseException: an uninitialied data structure was passed as argument 1 to globus_io_register_close
09/13/04 16:28:22 3656 Hosting     server.py:97 ERROR server_close() failed
Traceback (most recent call last):
  File "C:\software\AccessGrid\build\dist-20040910_210059\Lib\site-packages\AccessGrid\hosting\SOAPpy\Server.py", line 95, in Stop
  File "C:\Python23\Lib\site-packages\pyGlobus\io.py", line 1043, in server_close
    self.socket.close()
  File "C:\Python23\Lib\site-packages\pyGlobus\io.py", line 1020, in close
    IOBase.close(self)
  File "C:\Python23\Lib\site-packages\pyGlobus\io.py", line 176, in close
    raise ex
IOBaseException: an uninitialied data structure was passed as argument 1 to globus_io_register_close
-------------- next part --------------
"""

A shared image viewer application for the Access Grid.

This application allows the user to view and annotate image data in a
collaborative environment provided by the Access Grid Toolkit. This is
a major revision of the original AGBasicImage application. The
modifications made bring the application into conformance with the
AG2.3 environment. This new version of the application is modeled after
the sharedbrowser.py application distributed with the AG2.3 software.

AG Version - 2.3 

Dave Semeraro
NCSA - UIUC
2004

"""

#       Import the usual suspects
import os
import sys
import logging
import getopt
#       Import the wxPython stuff
import wx
from wx.lib.imagebrowser import *
#       Import the AG stuff
from AccessGrid.SharedAppClient import SharedAppClient
from AccessGrid.Platform.Config import UserConfig
from AccessGrid.ClientProfile import ClientProfile
from AccessGrid import icons
from AccessGrid.Toolkit import WXGUIApplication
from AccessGrid.Toolkit import CmdlineApplication
from AccessGrid.DataStoreClient import GetVenueDataStore
from AccessGrid import Platform
#
#       grab some event ID's
#
ID_OPEN = wx.NewId()
ID_OPEN_VENUE = wx.NewId()
ID_EXIT = wx.NewId()
#
wildcard = "JPEG Files (*.JPG)|*.jpg|"\
           "Gif Files (*.GIF)|*.gif|"\
           "All Files (*.*)|*.*"
#
#class BIFileDropTarget(wxFileDropTarget):
#        def __init__(self,window):
#                wxFileDropTarget.__init__(self)
#                self.window = window
#        def OnDropFiles(self,x,y,filenames):
#                for file in filenames:
#                self.window.wind.LoadImageFromFilename(file)
#                self.window.AG.UploadFile(file)
#                self.window.AG.PutData(self.window.imagedataname,os.path.split(file)[1])
#                self.window.AG.SendEvent("NewImage",os.path.split(file[1])

class ViewerFrame(wx.Frame):
        menuColours = { 200 : 'Black',
                        201 : 'Yellow',
                        202 : 'Red',
                        203 : 'Green',
                        204 : 'Blue',
                        205 : 'Purple',
                        206 : 'Brown'
                        }
# this doesnt do much but set up the menu. The events are mapped to another
# class
        def __init__(self,parent,ID):
                wx.Frame.__init__(self,parent,ID,"SharedImageViewer: no image loaded",size=(800,600),style=wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE)
                menu = wx.Menu()
                menu.Append(ID_OPEN,"&Open...","Open an image file")
                menu.Append(ID_OPEN_VENUE,"&Open from venue...","Open a venue image file")
                menu.AppendSeparator()
                menu.Append(ID_EXIT,"&Exit","Terminate with extreme prejudice")
                colormenu = wx.Menu()
                keys = self.menuColours.keys()
                keys.sort()
                for k in keys:
                       text = self.menuColours[k]
                       colormenu.AppendRadioItem(k,text)
                menubar = wx.MenuBar()
                menubar.Append(menu,"&File")
                menubar.Append(colormenu,"&Colors")
                self.SetMenuBar(menubar)
                
#
#       Define the viewerwindow class here
#
class ViewerWindow(wx.Window):
        def __init__(self,parent,ID):
                wx.Window.__init__(self,parent,ID,style=wx.NO_FULL_REPAINT_ON_RESIZE)
                self.imagefile = None
                self.parentframe = parent
                self.image = None
                self.lines = []
                self.thickness = 1
                self.SetColour("Black")
                self.SetBackgroundColour("WHITE")
                self.InitBuffer()
                # old way of doing event bindings
                #wx.EVT_IDLE(self,self.OnIdle)
                #wx.EVT_SIZE(self,self.OnSize)
                #wx.EVT_PAINT(self,self.OnPaint)
                #wx.EVT_LEFT_DOWN(self, self.OnLeftDown)
                #wx.EVT_LEFT_UP(self, self.OnLeftUp)
                #wx.EVT_MOTION(self, self.OnMotion)
                #new way
                self.Bind(wx.EVT_IDLE, self.OnIdle)
                self.Bind(wx.EVT_SIZE, self.OnSize)
                self.Bind(wx.EVT_PAINT, self.OnPaint)
                self.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown)
                self.Bind(wx.EVT_LEFT_UP, self.OnLeftUp)
                self.Bind(wx.EVT_MOTION, self.OnMotion)

        def InitBuffer(self):
                size = self.GetClientSize()
                if self.image == None:
                        self.buffer = wx.EmptyBitmap(size.width,size.height)
                        dc = wx.BufferedDC(None,self.buffer)
                        dc.SetBackground(wx.Brush(self.GetBackgroundColour()))
                        dc.Clear()
                else:
                        self.Refresh(True)
                        self.buffer = self.image.ConvertToBitmap()
                        dc = wx.BufferedDC(None, self.buffer)
                        dc.SetBackground(wx.Brush(self.GetBackgroundColour()))
                self.DrawLines(dc)
                self.reInitBuffer = False

        def LoadImageFromFilename(self,imagefilename):
                self.imagefile = imagefilename
                self.image = wx.Image(self.imagefile)
                self.reInitBuffer = True
                self.Refresh(True)

        def SetColour(self,colour):
                self.colour = colour
                self.pen = wx.Pen(wx.NamedColour(self.colour),self.thickness,wx.SOLID)

        def SetThickness(self,num):
                self.thickness = num
                self.pen = wx.Pen(wx.NamedColour(self.colour),self.thickness,wx.SOLID)

        def LoadImage(self,animage):
                imgdat = base64.decodestring(animage.data)
                self.image = wx.EmptyImage(string.atoi(animage.width),string.atoi(animage.height))
                self.image.SetData(imgdat)
                self.reInitBuffer = True

        def OnIdle(self,event):
                if self.reInitBuffer:
                        self.InitBuffer()
                        self.Refresh(False)

        def OnSize(self,event):
                self.reInitBuffer = True

        def OnPaint(self,event):
                dc = wx.BufferedPaintDC(self,self.buffer)

        def OnLeftDown(self,event):
                self.curLine = []
                self.x, self.y = event.GetPositionTuple()
                self.CaptureMouse()

        def OnLeftUp(self,event):
                if self.HasCapture():
                        self.lines.append((self.colour, self.thickness, self.curLine))
                        self.ReleaseMouse()

        def GetMarkup(self):
                return (self.colour, self.thickness, self.curLine)

        def DrawLines(self,dc):
                dc.BeginDrawing()
                for colour, thickness, line in self.lines:
                        pen = wx.Pen(wx.NamedColour(colour),thickness,wxSolid)
                        dc.SetPen(pen)
                        for coords in line:
                                apply(dc.Drawline, coords)
                dc.EndDrawing()

        def OnMotion(self,event):
                if event.Dragging() and event.LeftIsDown():
                        dc = wx.BufferedDC(wx.ClientDC(self), self.buffer)
                        dc = BeginDrawing()
                        dc.SetPen(self.pen)
                        pos = event.GetPositionTuple()
                        coords = (self.x,self.y) + pos
                        self.curLine.append(coords)
                        dc.DrawLine(self.x,self.y,pos[0],pos[1])
                        self.x,self.y = pos
                        dc.EndDrawing()

#
#       Define the shared image viewer class here
#
class SharedImageViewer( wx.App ):
        """
        Handle image viewing and sharing of image and markup data
        """
        def OnInit(self):
                return 1

        def OnExit(self):
                self.sharedAppClient.Shutdown()
                self.frame.Close(True)
                os._exit(1)

        def __init__(self, appUrl, venueUrl, name):
                wx.App.__init__(self, False)
                self.sharedAppClient = SharedAppClient(name)
                self.log = self.sharedAppClient.InitLogging()
                self.markupdataname = "MarkupData"
                self.imagedataname = "ImageFile"

                # Get a Client Profile
                try:
                        clientProfileFile = os.path.join(UserConfig.instance().GetConfigDir(), "profile")
                        clientProfile = ClientProfile(clientProfileFile)
                except:
                        self.log.info("SharedAppClient.Connect: Could not load client profile, set clientProfile = None")
                        clientProfile = None

                self.sharedAppClient.Join(appUrl,clientProfile)
                self.dataStoreClient = GetVenueDataStore(venueUrl)
                self.sharedAppClient.RegisterEventCallback("NewImage",self.HandleNewImage)
                self.sharedAppClient.RegisterEventCallback("NewMarkup",self.HandleNewMarkup)
                self.frame = ViewerFrame(None,-1)
                self.window = ViewerWindow(self.frame, -1)
                self.window.Bind(wx.EVT_LEFT_UP,self.ShareMarkup)
                #EVT_LEFT_UP(self.window,self.ShareMarkup)
                self.frame.Bind(wx.EVT_MENU,self.On_Open,id=ID_OPEN)
                self.frame.Bind(wx.EVT_MENU,self.On_OpenVenue,id=ID_OPEN_VENUE)
                self.frame.Bind(wx.EVT_MENU,self.OnExit,id=ID_EXIT)
                #EVT_MENU(self.frame,ID_OPEN,self.On_Open)
                #EVT_MENU(self.frame,ID_OPEN_VENUE,self.On_OpenVenue)
                #EVT_MENU(self.frame,ID_EXIT,self.OnExit)
                keys = self.frame.menuColours.keys()
                for k in keys:
                        self.frame.Bind(wx.EVT_MENU,self.OnMenuSetColour,id=k)
                        #EVT_MENU(self.frame,k,self.OnMenuSetColour)
                #dt = BIFileDropTarget(self.frame)
                #self.frame.SetDropTarget(dt)
                # see if there is an image in the venue and load it up
                animage = self.sharedAppClient.GetData(self.imagedataname)
                if animage == "":
                        self.log.info("SharedAppViewer: no image in venue")
                else:
                        print "try to download ", animage
                        self.log.info("SharedAppViewer: initial image found")
                        localImageFile = self.DownloadFile(animage)
                        self.window.LoadImageFeomFilename(localImageFile)
                        title = os.path.split(localImageFile)[-1]
                        self.frame.SetTitle(title)
                # see if there is markup in the venue and load it up
                scribble = self.sharedAppClient.GetData(self.markupdataname)
                if scribble == "":
                        self.log.info("SharedAppViewer: no markup in venue")
                else:
                        self.wind.lines = cPickle.loads(scribble)
                self.frame.Show(1)
                self.SetTopWindow(self.frame)


        def On_Open(self,event):
                dir = os.getcwd()
                dlg = ImageDialog(self.frame,dir)
                dlg.Centre()
                if dlg.ShowModal() == wx.ID_OK:
                        self.window.lines = []
                        localImageFile = dlg.GetFile()
                        venueImageFile =self.UploadFile(localImageFile)
                        file = os.path.split(localImageFile)[-1]
                        self.sharedAppClient.SetData(self.imagedataname,file)
                        self.window.LoadImageFromFilename(localImageFile)
                        self.sharedAppClient.SendEvent("NewImage",file)

        def On_OpenVenue(self,event):
                self.dataStoreClient.LoadData()
                dlg = wx.SingleChoiceDialog(self.frame,"Select an image file to load", "Load Venue Image Dialog",
                                                self.dataStoreClient.dataIndex.keys())

                if dlg.ShowModal() == wx.ID_OK:
                        venueImageFile = dlg.GetStringSelection()
                        localImageFile = self.DownloadFile(venueImageFile)
                        self.sharedAppClient.SetData(self.imagedataname, venueImageFile)
                        file = os.path.split(localImageFile)[-1]
                        self.sharedAppClient.SendEvent("NewImage",file)
                        self.wind.LoadImageFeomFilename(localImageFile)
                        title = os.path.split(localImageFile)[-1]
                        self.frame.SetTitle(title)

        def UploadFile(self,localFile):
                self.dataStoreClient.Upload(localFile)
                file = os.path.split(localFile) [-1]
                venueDataUrl = os.path.join(self.dataStoreClient.uploadURL,file)
                return venueDataUrl

        def DownloadFile(self,venueDataUrl):
                file = os.path.split(venueDataUrl) [-1]
                #path = os.path.join(Platform.GetTempDir(),file)
                self.dataStoreClient.LoadData()
                self.dataStoreClient.Download(venueDataUrl,file)
                return file

        def HandleNewImage(self,eventdata):
                (senderid,venueImageFile) = eventdata.data
                if senderId != self.sharedAppClient.GetPublicId():
                        try:
                                localImageFile = self.DownloadFile(venueImageFile)
                                #load the image
                        except:
                                self.log.exception("SharedImageViewer: could not load image file from venue")

        def ShareMarkup(self,eventdata):
                self.window.OnLeftUp()
                # retrieve the markup that is stored in the venue
                scribble = self.sharedAppClient.GetData(self.markupdataname)
                if scribble == None:
                        self.log.info("SharedImageViewer: no markup in venue")
                        markup = []
                else:
                        markup = cPickle.loads(scribble)
                markup.append(self.window.GetMarks())
                self.sharedAppClient.SetData(self.markupdataname,cPickle.dumps(markup,0))
                self.sharedAppClient.SendEvent("NewMarks",None)

        def OnMenuSetColour(self,eventdata):
                self.window.colour = self.frame.menuColours[eventdata.GetId()]
                self.window.pen = wx.Pen(wx.NamedColour(self.window.colour),self.window.thickness,wx.SOLID)

        def HandleNewMarkup(self,eventdata):
                (senderId,markslist) = eventdata.data
                if senderId != self.sharedAppClient.GetPublicId():
                        try:
                                self.window.thickness = markslist[0]
                                self.window.lines.append((markslist[0],markslist[1],markslist[2]))
                                self.window.reInitBuffer = True
                                self.window.Refresh(True)
                        except:
                                self.log.exception("SharedImageViewer: whacked markup import")

class ArgumentManager:
        """
        stolen from the shared browser app and modified slightly for our use
        """
        def __init__(self):
                self.arguments = {}
                self.arguments['applicationUrl'] = None
                self.arguments['venueUrl'] = None
                self.arguments['debug'] = 0

        def GetArguments(self):
                return self.arguments

        def Usage(self):
                print "%s:" % sys.argv[0]
                print "     -a|--applicationURL : <url to application in venue>"
                print "     -v|--venueURL : <url to venue>"
                print "     -d|--debug : <enables debug output>"
                print "     -h|--help : <print usage>"

        def ProcessArgs(self):
                try:
                        opts,args = getopt.getopt(sys.argv[1:], "a:v:d:h",
                                 ["applicationURL=","venueURL=","debug","help"])
                except getopt.GetoptError:
                        self.Usage()
                        sys.exit(2)
                for o, a in opts:
                        if o in ("-a", "--applicationURL"):
                                self.arguments["applicationUrl"] = a
                        elif o in ("-v", "--venueURL"):
                                self.arguments["venueUrl"] = a
                        elif o in ("-d", "--debug"):
                                self.arguments["debug"] = 1
                        elif o in ("-h", "--help"):
                                self.Usage()
                                self.exit(0)

if __name__ == "__main__":
        #app = WXGUIApplication()
        app = CmdlineApplication.instance()
        name = "SharedImageViewer"
        am = ArgumentManager()
        am.ProcessArgs()
        aDict = am.GetArguments()
        appUrl = aDict['applicationUrl']
        venueUrl = aDict['venueUrl']
        debugMode = aDict['debug']
        init_args = []
        if "--debug" in sys.argv or "-d" in sys.argv:
                init_args.append("--debug")
        #app.Initialize(name)
        app.Initialize(name,args=init_args)
        #if not appUrl:
        #        am.Usage()
        #elif not venueUrl:
        #        am.Usage()
        #else:
        appUrl = "https://141.142.64.5:9000/119"
        venueUrl = "https://venues.ncsa.uiuc.edu:9000/Venues/default"
        wx.InitAllImageHandlers()
        iv = SharedImageViewer(appUrl,venueUrl,name)
        iv.MainLoop()



More information about the ag-tech mailing list