[Pulp-list] cds, etc. api

Jay Dobies jason.dobies at redhat.com
Thu Oct 27 16:24:18 UTC 2011


> Cool!
>
> So, what is the general state of the api?

To be blunt, they are a bit of a disaster. There are some technical 
errors that are discovered when people attempt to use them, such as the 
web site indicating a PUT while the code enforces a POST.

Even if that information is correct, the APIs are lacking in usefulness. 
The case you bring up is a perfect example.

Repo updates are a weird beast. Certain fields become "locked" once 
certain operations take place. For instance, on a new repo you can edit 
most fields. However, once a sync has taken place, some things can no 
longer be changed as it would be too complicated to resolve the differences.

Unfortunately, those rules aren't documented in either the user guide 
nor the API docs.

Would you mind filing a bug for the repo update case you bring up? I'd 
like to have it tracked that it was reported from a user and so we can 
align it to a sprint to fix it.

 > Is it more or less stable and
 > functional, or will there be heavy changes in the near future?

The answer is two-fold.

We're gearing up for a v1.0 release. The Katello project will be using 
our APIs and may require some changes be made for that 1.0 release. For 
the most part, the APIs should remain relatively stable for that release.

After that, the APIs are going to drastically change as we refactor the 
daylights out of Pulp to support non-RPM content. A lot is going to 
change for that, but that is still months away.

> I'm asking because I started to implement things against the API,
> however to me it looks like not everything is yet working.
>
> For example the API of a repository:
>
> I can update the name without any problems:
>
> PUT /repositories/<repo_id>/ { 'name': 'new_name' }
>
> But I can for example not update some other fields, like feed_cert, with
> the same method. I get the following error:
>
> 2011-10-27 12:18:48,377 24100:-1282426000:
> pulp.server.webservices.controllers.decorators:ERROR: decorators:52
> Traceback (most recent call last):
> File
> "/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/decorators.py",
> line 48, in report_error
> return method(self, *args, **kwargs)
> File
> "/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/decorators.py",
> line 127, in _auth_decorator
> value = method(self, *args, **kwargs)
> File
> "/usr/lib/python2.7/site-packages/pulp/server/webservices/controllers/repositories.py",
> line 335, in PUT
> repo = api.update(id, delta)
> File "/usr/lib/python2.7/site-packages/pulp/server/api/repo.py", line
> 683, in update
> 'update keyword "%s", not-supported' % key
> Exception: update keyword "feed_cert", not-supported
>
> Although the documentation [1] states, that I can update "any field of a
> Repo object except id"
>
> Also it looks like I can't create a repository via the API by passing
> feed_cert, feed_ca & feed_key. They seem to be simply ignored, without
> anything logged.
>
> This is with:
>
> $ rpm -qa | grep pulp
> pulp-admin-0.0.237-5.fc15.noarch
> pulp-0.0.237-5.fc15.noarch
> pulp-common-0.0.237-5.fc15.noarch
> m2crypto-0.21.1.pulp-5.fc15.i686
> pulp-client-lib-0.0.237-5.fc15.noarch
>
> Looking into the python code, it looks like you're dealing differently
> with various attributes than with standard attributes like `name`.
>
> But to me it is not really clear, where this is documented etc.
>
> Can you shed some light on my (probably) poor understanding of the API
> and how things work?
>
> Thank you very much!
>
> ~pete
>
> [1]
> https://fedorahosted.org/pulp/wiki/UGREST-Repositories#UpdateARepository
>
> _______________________________________________
> Pulp-list mailing list
> Pulp-list at redhat.com
> https://www.redhat.com/mailman/listinfo/pulp-list


-- 
Jay Dobies
RHCE# 805008743336126
Freenode: jdob @ #pulp
http://pulpproject.org | http://blog.pulpproject.org




More information about the Pulp-list mailing list