Closed Bug 1213857 Opened 9 years ago Closed 9 years ago

Make using HawkAuth with the client more intuitive

Categories

(Tree Management Graveyard :: Treeherder: Client Libraries, defect, P2)

defect

Tracking

(Not tracked)

RESOLVED FIXED

People

(Reporter: emorley, Assigned: emorley)

References

Details

Attachments

(1 file)

See bug 1209555 comment 5.

Using HawkAuth with the client requires a little more boilerplate (and in not as clean a form as I'd like), so we need to decide what to do before documenting it and then asking people to migrate.

The options:

1) Use HawkAuth as is.

2) Try to improve upstream (see https://github.com/mozilla-services/requests-hawk/issues/8)

3) Provide a wrapper around HawkAuth ourselves (see https://github.com/mozilla/treeherder/compare/hawkauth-wrapper)
I think I prefer this approach over making users of the client deal with the auth directly. I know things like requests make people pass in an `auth` object, but I think that is something that should be abstracted away from the user for treeherder-client.

This approach means we maintain maximum control over the use of HawkAuth, and can keep a stable API for users of the client, if we choose to switch to another library or HawkAuth adds support for the simpler constructor mentioned in https://github.com/mozilla-services/requests-hawk/issues/8 (and we don't then have to block on that GitHub issue).
Attachment #8673353 - Flags: review?(mdoglio)
Attachment #8673353 - Flags: feedback?(wlachance)
Comment on attachment 8673353 [details] [review]
Allow passing Hawk client_id/secret directly to the client

I like this approach.

Maybe some tests would be nice?

At some point in the future we should replace the deprecation warnings with exceptions.
Attachment #8673353 - Flags: feedback?(wlachance) → feedback+
Attachment #8673353 - Flags: review?(mdoglio) → review+
(In reply to William Lachance (:wlach) from comment #2)
> I like this approach.
> 
> Maybe some tests would be nice?

Agreed, whilst the etl tests do exercise this code, I've also added a test to test_treeherder_client.py and updated the PR.

> At some point in the future we should replace the deprecation warnings with exceptions.

Shortly they will be removed entirely - I was just wanting to release at least one version of the client that supports both forms of authentication, for easier transition. We haven't actually released a client to PyPI that supports Hawk auth yet - I was waiting until we had this bug fixed.
(In reply to Ed Morley [:emorley] from comment #3)
> We haven't actually released a client to PyPI that
> supports Hawk auth yet - I was waiting until we had this bug fixed.

Well, in the form proposed here at least :-)
Commits pushed to master at https://github.com/mozilla/treeherder

https://github.com/mozilla/treeherder/commit/b212683e2fd9d19da82fa36aa4028c20ba3c8e92
Bug 1213857 - Fix treeherder-client's setup.py requirements

Since requests-hawk had leading whitespace, and missed the review
comment. We also need at least requests 2.4.3, since we use the `json`
argument to `requests.post()`.

https://github.com/mozilla/treeherder/commit/892a6d975182cc082eb317e3301dbf4ff355e3ea
Bug 1213857 - Allow passing Hawk client_id/secret directly to the client

So people don't have to deal with HawkAuth themselves. The existing
`auth` is deprecated and will be removed in the future.

https://github.com/mozilla/treeherder/commit/9f84698e470d3fe27e55201d7e68188344584aca
Bug 1213857 - Update tests still using TreeherderAuth to use client_id

TreeherderAuth is deprecated, so this switches these tests to use
the new hawk client_id and secret parameters instead.
Blocks: 1212936
Status: ASSIGNED → RESOLVED
Closed: 9 years ago
Resolution: --- → FIXED
Blocks: 1214618
Product: Tree Management → Tree Management Graveyard
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: