Comment 23 for bug 1165104

Revision history for this message
Bart (bart2pub) wrote :

I have been poking a bit in the code. In the file '/usr/share/pyshared/oneconf/networksync/infraclient_pristine.py' there is a methode 'list_machines' that is called at the start of the oneconf-query service to return the list of machines that are synced by the USC. The list is retrieved by calling the URL 'https://apps.staging.ubuntu.com/cat/api/1.0/list-machines/' (needs authentication).

On my machine, the above call only returns 1 machine (the local one), although when checking Ubuntu One (locally from within Settings Manager > Ubuntu One, or from the web page https://one.ubuntu.com/account/) I find my other device also listed as Ubuntu One @ ... and Ubuntu Software Center @ ...

So, big question is: why is the call to https://apps.staging.ubuntu.com/cat/api/1.0/list-machines/ only returning my local machine ???

I traced this by adding a way to log some information from the code in the file infraclient_pristine.py (as root):
I added on
    line 04: import logging
    line 21: LOG = logging.getLogger(__name__)
    line 45: LOG.debug(self._get('list-machines/', scheme=AUTHENTICATED_API_SCHEME))

then in a terminal on the command line I stopped the service with
    $ oneconf-query --stop
and restarted it again with
    $ oneconf-query --debug
I got some debugging log (give it some time), and after the lines
    DEBUG:oneconf.networksync:Start processing sync
    DEBUG:oneconf.networksync.infraclient_pristine:
it showed me what ubuntu.com was returning, i.e. only the information of the local device.

I hope this bug can be solved rapidly. It's such a usefull feature, but without this aspect running well, it becomes really crippled.

PS. working with Ubuntu 12.10 and 13.10. I did not use the patches attached in previous comments. I don't think they can resolve my problem as to me, there seems to be a bug with the API on the server ubuntu.com.