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 semer...@ncsa.uiuc.edu (217) 244-1852
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
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 semer...@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
""" 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()