Does the tile in Cesium Ion button still work?

Dear all,

Thanks for making WebODM available. It is great.

The tile in cesium ion button used to work for me. Now it hangs:

I was wondering if anyone else has experienced the same?

I can curl "https://api.cesium.com/v1/assets" -H "Authorization: Bearer <your_access_token>" fine from the webapp container where the photos go. I have also tried creating and saving a new token.

Thanks.

1 Like

@brandon-cesium might know if something has changed?

2 Likes

I do note that if I run the API curl test using a particular windows build I get

curl: (60) SSL certificate problem: self signed certificate in certificate chain
More details here: https://curl.haxx.se/docs/sslcerts.html

curl failed to verify the legitimacy of the server and therefore could not
establish a secure connection to it. To learn more about this situation and
how to fix it, please visit the web page mentioned above.

for curl -V

curl 7.60.0 (x86_64-pc-win32) libcurl/7.60.0 OpenSSL/1.0.2j zlib/1.2.8 WinIDN
Release-Date: 2018-05-16
Protocols: dict file ftp ftps gopher http https imap imaps ldap pop3 pop3s rtsp smb smbs smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL libz HTTPS-proxy

but the Git Bash curl correctly returns the list of assets and has Version info

curl 7.60.0 (x86_64-w64-mingw32) libcurl/7.60.0 OpenSSL/1.0.2o (WinSSL) zlib/1.2.11 libidn2/2.0.5 nghttp2/1.32.0
Release-Date: 2018-05-16
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtsp smtp smtps telnet tftp
Features: AsynchDNS IDN IPv6 Largefile SSPI Kerberos SPNEGO NTLM SSL libz TLS-SRP HTTP2 HTTPS-proxy MultiSSL Metalink

This may be unrelated. I never explored it prior to having issues.

@pierotofy running locally, I can see that the reason the Cesium ion plugin is failing is because it seems like the task fails to launch. Here’s the console output I see:

worker      | [2020-05-12 13:43:25,652: ERROR/MainProcess] Received unregistered task of type 'plugins.cesium-ion.api_views.upload_to_ion'.
worker      | The message has been ignored and discarded.
worker      | 
worker      | Did you remember to import the module containing this task?
worker      | Or maybe you're using relative imports?
worker      | 
worker      | Please see
worker      | http://docs.celeryq.org/en/latest/internals/protocol.html
worker      | for more information.
worker      | 
worker      | The full contents of the message body was:
worker      | b'[["84e9b336-4841-4388-a29f-d2e88649499c", "POINTCLOUD", "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIyZjI5YjBkMS04ZDFlLTQzOTctOWRmYy02NWE5M2Y2MmQ4NTUiLCJpZCI6MTYyMywic2NvcGVzIjpbImFzbCIsImFzciIsImFzdyJdLCJpYXQiOjE1NjM0NzY5MDl9.xVpx6vhlcS_hZvUxWMjuGB3zmajcGKKlS3TFx-vpJeE", "/webodm/app/media/project/1/task/84e9b336-4841-4388-a29f-d2e88649499c/assets/odm_georeferencing/odm_georeferenced_model.laz", "First Project | Task of 2019-11-03T18:01:06.004Z \\u2060\\u2014 Pointcloud", "", "", {"baseTerrainId": "", "textureFormat": false}], {}, {"callbacks": null, "errbacks": null, "chain": null, "chord": null}]' (608b)
worker      | Traceback (most recent call last):
worker      |   File "/usr/local/lib/python3.6/site-packages/celery/worker/consumer/consumer.py", line 559, in on_task_received
worker      |     strategy = strategies[type_]
worker      | KeyError: 'plugins.cesium-ion.api_views.upload_to_ion'

But this task is registered here:

And the console output here implies it successfully registers the plugin:

webapp      | INFO Initializing GRASS engine using /usr/bin/grass78
webapp      | INFO Booting WebODM 1.3.6
webapp      | INFO Registered [plugins.contours.plugin]
webapp      | INFO Registered [plugins.cesium-ion.plugin]
webapp      | INFO Registered [plugins.lightning.plugin]
webapp      | INFO Registered [plugins.posm-gcpi.plugin]
webapp      | INFO Registered [plugins.diagnostic.plugin]
webapp      | INFO Registered [plugins.osm-quickedit.plugin]
webapp      | INFO Registered [plugins.fullscreen.plugin]
webapp      | INFO Registered [plugins.openaerialmap.plugin]
webapp      | INFO Registered [plugins.cloudimport.plugin]
webapp      | INFO Registered [plugins.measure.plugin]

So I’m not sure why it’s failing to find the task. Did something change recently in the way tasks must be registered?

I’m not really sure; I don’t maintain the Cesium plugin, but it’s possible something broke. We’d welcome pull requests to fix it.

I’m happy to submit a pull request, but I’m not sure why this is failing. It doesn’t seem like WebODM’s plugin architecture has changed recently. I also just tried it with a clean install on Windows, and it worked. Destroyed all containers and volumes back on my Linux and tried again, same Received unregistered task of type 'plugins.cesium-ion.api_views.upload_to_ion' error.

@RussellGrew what OS are you testing on?

2 Likes

Thanks Omar.

I am running windows 10 with linux docker containers. I seem to recall selecting this when installing docker originally, though the latest version doesn’t seem to have this as a choice.

Following your rinse and repeat experience with linux I do note that for me maybe the plugin stopped working after a ./webodm.sh update. I did not remove the Docker images and my existing WebODM projects were retained.

This isn’t a massive issue for us presently. Though I do note it gets a mention on your website https://cesium.com/docs/tutorials/integrating-with-webodm/

For comparison I will take a look using linux.

1 Like

Following up, I get the same error as Omar on both Windows and Linux. The Linux install is completely new ~ it is a new PC.

I do wonder if https://github.com/OpenDroneMap/WebODM/pull/846 is somehow involved. Though I am more end-user and campaigner than developer.

I have tried disabling/enabling the plugin via the settings panel, and also uploading all.zip as a fresh project and attempting to tile that per instructions https://github.com/OpenDroneMap/WebODM/tree/bdf9fcfebfabcf7f4825962ff92139449d8939ad/plugins/cesium-ion

Happy Friday to all.