Commit graph

805 commits

Author SHA1 Message Date
Joseph Schorr
37aa70c28e Notifications must check for the user OR an organization with the namespace name 2014-10-10 19:05:20 -04:00
Joseph Schorr
07f3bd6f8c Add a synthetic .git directory containing the commit sha so that 'git rev-parse HEAD' works from inside builds 2014-10-10 17:20:07 -04:00
Joseph Schorr
adc915a5eb Fix the subprocesses to also use their own storage classes; this fixes a socket error when talking to S3 2014-10-08 16:54:03 -04:00
Joseph Schorr
d16fdde528 Fix bug in dockerloadformat and make sure we handle exceptions properly in the verb call 2014-10-08 13:43:12 -04:00
Jake Moshenko
a0d94f9d59 Merge remote-tracking branch 'origin/laffa' into nomenclature
Conflicts:
	test/data/test.db
2014-10-07 15:56:28 -04:00
Joseph Schorr
f38ce51943 Merge master into laffa 2014-10-07 14:03:17 -04:00
Jake Moshenko
ed8bcff39e Merge remote-tracking branch 'origin/master' into nomenclature
Conflicts:
	test/data/test.db
	workers/dockerfilebuild.py
2014-10-06 10:29:39 -04:00
Jake Moshenko
6bc982b77b Add a note about updating nginx config when updating the _ping endpoint. 2014-10-06 10:24:40 -04:00
Joseph Schorr
e0993b26af Make query params only read from query params, not JSON as well 2014-10-03 15:05:34 -04:00
Joseph Schorr
e654b2b608 Branch.name has to use a dot accessor, not a dict lookup 2014-10-03 12:35:58 -04:00
Joseph Schorr
1d8ec59362 Merge branch master into bees 2014-10-02 15:08:32 -04:00
Joseph Schorr
c682899861 Add a feature flag to disable user creation 2014-10-02 14:49:18 -04:00
Jake Moshenko
5c18ffe67d Allow the namespace column to be null, and also non-unique. Fix the uncompressed size clobbering the size on the wire field. Add metadata constraints so that foreign key constraints get predictable names. Fix all downgrade migrations. 2014-10-02 10:46:20 -04:00
Jake Moshenko
e8b3d1cc4a Phase 4 of the namespace to user migration: actually remove the column from the db and remove the dependence on serialized namespaces in the workers and queues 2014-10-01 14:23:46 -04:00
Joseph Schorr
d9c7e92637 Add superuser abilities: create user, show logs. Also fix the super users UI to show the user drop down and make all superuser API calls require fresh login 2014-10-01 13:55:09 -04:00
Joseph Schorr
039d53ea6c - Fix initdb
- Add ability to specific custom fields for manual running of build triggers and add a "branch name" selector for running github builds
2014-09-30 16:29:32 -04:00
Joseph Schorr
474add0fb1 Have the layer PUT method calculate the uncompressed size in realtime, as trusting the JSON is fraught with complications 2014-09-29 17:00:47 -04:00
Joseph Schorr
dd4c26cb00 Only operations with nicknames can be added to the swagger doc 2014-09-28 15:40:08 -04:00
Jake Moshenko
03190efde3 Phase 2 of migrating repo namespaces to referencing user objects, backfilling the rows without a value for namespace_user, and changing all accesses to go through the namespace_user object. All tests are passing, manual testing still required. 2014-09-24 18:01:35 -04:00
Joseph Schorr
ec484e3efc Move size and checksum updates into the metadata call 2014-09-23 15:49:28 -04:00
Joseph Schorr
86dfca2e3e Add uncompressed size field to the image storage and add a backfill script (which is not yet automatically called) 2014-09-23 14:01:27 -04:00
Joseph Schorr
87bc37f6c8 Merge branch 'sunday' 2014-09-23 11:29:03 -04:00
Joseph Schorr
ba0963a81c Update the worker code to better handle exceptions, fix the utcdate issue and make sure we send the proper retry. Also updates notification workers to send JobExceptions rather than returning true or false 2014-09-23 11:01:50 -04:00
Joseph Schorr
8dd2330ce7 Switch to using straight docker IDs instead of a hashing scheme 2014-09-23 11:01:50 -04:00
Joseph Schorr
9621566d31 Instead of sending DB IDs, send "internal IDs" which are DB IDs hashed. This way, we can still calculate the ancestors without hitting the DB further, but without leaking the size of the images table 2014-09-23 11:01:50 -04:00
Joseph Schorr
f3b03ebc34 Add a feature flag for disabling all emails 2014-09-22 19:11:48 -04:00
Jake Moshenko
3259cda000 The new strategy is to do a three phase migration. This is the first phase: getting the namespace user in the db and written for all new repositories. 2014-09-22 17:27:02 -04:00
Joseph Schorr
dc685b2387 Merge branch 'huggies' 2014-09-22 13:41:29 -04:00
Joseph Schorr
f23038c6ee Update the worker code to better handle exceptions, fix the utcdate issue and make sure we send the proper retry. Also updates notification workers to send JobExceptions rather than returning true or false 2014-09-22 12:52:57 -04:00
Joseph Schorr
e5055763f6 Make the squashed path smaller and handle failure cases on the curl side 2014-09-19 12:54:52 -04:00
Joseph Schorr
e273dca4b4 Change back to using a docker load format 2014-09-19 12:22:54 -04:00
Jake Moshenko
8626d1cd70 Initial changes to move repositories from using a namespace string to referencing a user object. Also stores the user id in the cookie rather than the username, to allow users to be renamed. This commit must not be used unmodified because the database migration is too aggressive for live migration. 2014-09-19 10:17:23 -04:00
Jake Moshenko
11bb8e6448 Actually store the generated image storage in the database, and allow it to be garbage collected when the parent image storage is collected. 2014-09-18 17:26:40 -04:00
Joseph Schorr
a90aab4665 Switch to using straight docker IDs instead of a hashing scheme 2014-09-18 17:16:10 -04:00
Joseph Schorr
b212dbb2ab Merge branch 'master' into better-emails 2014-09-18 13:20:32 -04:00
Joseph Schorr
efc06b54f6 Add a TODO and some slightly better naming 2014-09-16 22:44:45 -04:00
Joseph Schorr
1cfb6fc353 Have the squashing system write the data (via a double queue system and multiprocessing) to both the client and the stack's storage. On subsequent calls, if the synthetic image exists, it will be returned directly instead of being recomputed 2014-09-16 22:43:19 -04:00
Joseph Schorr
5cca609c55 Switch back to send_file and add a bit of gzip buffering 2014-09-16 14:20:42 -04:00
Joseph Schorr
9344839295 Get squashed endpoint for docker import working 2014-09-16 11:53:54 -04:00
Joseph Schorr
e3c52fa0eb Work in progress. This is currently broken! 2014-09-16 00:18:57 -04:00
Jake Moshenko
75d2ef377e Merge remote-tracking branch 'origin/master' into comewithmeifyouwanttowork
Conflicts:
	data/model/legacy.py
2014-09-15 17:52:17 -04:00
Joseph Schorr
913b3e472f Add ability to detach external login services 2014-09-15 12:01:02 -04:00
Joseph Schorr
e8ad01cb41 Lots of small NPE and other exception fixes 2014-09-15 11:27:33 -04:00
Joseph Schorr
10faa7de84 Only allow users matching the team invite to accept, if the invite was specified for a user (rather than an email) 2014-09-12 14:29:01 -04:00
Jake Moshenko
c5ca46a14b Merge remote-tracking branch 'origin/master' into comewithmeifyouwanttowork
Conflicts:
	data/model/legacy.py
	static/js/app.js
2014-09-12 11:03:30 -04:00
Joseph Schorr
8d3ce44682 Address comments on code review 2014-09-11 15:45:41 -04:00
Jake Moshenko
8b3a3178b0 Finish the build logs archiver, add handlers for cloud and local that handle gzip encoded archived content. 2014-09-11 15:33:10 -04:00
Jake Moshenko
539fc04205 Seek the file pointer to zero since we now use multipart for upload of userfiles, which does not seek automatically. 2014-09-10 17:18:49 -04:00
Jake Moshenko
29d40db5ea Add a new RadosGW storage engine. Allow engines to distinguish not only between those that can support direct uploads and downloads, but those that support doing it through the browser. Rename resumeable->resumable. 2014-09-09 15:54:03 -04:00
Joseph Schorr
7c45aca405 Code review changes 2014-09-08 17:20:01 -04:00
Joseph Schorr
63628678b8 Instead of sending DB IDs, send "internal IDs" which are DB IDs hashed. This way, we can still calculate the ancestors without hitting the DB further, but without leaking the size of the images table 2014-09-08 15:02:26 -04:00
Joseph Schorr
3c20402b32 Add a common base email template, translate the emails over to using jinja and add emails when e-mail addresses and passwords are changed. 2014-09-05 19:57:33 -04:00
Jake Moshenko
64480fd4ed Merge remote-tracking branch 'origin/master' into yellowalert
Conflicts:
	data/migrations/versions/82297d834ad_add_us_west_location.py
	test/data/test.db
2014-09-05 11:30:30 -04:00
Jake Moshenko
3c57e612b3 Merge remote-tracking branch 'origin/zegooglesdosomething' 2014-09-04 20:10:16 -04:00
Joseph Schorr
987177fd7e Have require_fresh_login not apply if there is no password set for the user 2014-09-04 19:47:12 -04:00
Jake Moshenko
1a230f635a Use datetime.min instead of a fixed span for the last login default time. 2014-09-04 19:15:06 -04:00
Joseph Schorr
e028d4ae0a Merge master into branch 2014-09-04 18:08:18 -04:00
Joseph Schorr
1c2de35f28 Code review fixes 2014-09-04 17:54:51 -04:00
Joseph Schorr
e783df31e0 Add the concept of require_fresh_login to both the backend and frontend. Sensitive methods will now be marked with the annotation, which requires that the user has performed a login within 10 minutes or they are asked to do so in the UI before running the operation again. 2014-09-04 14:24:20 -04:00
Joseph Schorr
1e7e012b92 Add a requirement for the current password to change the user's password or email address 2014-09-03 15:41:25 -04:00
Jake Moshenko
2dcdd7ba5b Add exponential backoff of login attempts. 2014-09-02 15:27:05 -04:00
Joseph Schorr
3b72b26836 Merge branch 'master' into comewithmeifyouwanttowork 2014-08-28 20:50:13 -04:00
Joseph Schorr
ae92098b23 Add invite by email (WIP) 2014-08-28 20:49:11 -04:00
Joseph Schorr
7ca853adee Rename the method so it doesn't shadow the model method. 2014-08-28 18:53:04 -04:00
Joseph Schorr
6f1a4030b6 Add response schema validation (only when in TESTING mode) and add one schema. More will be added in a followup CL 2014-08-27 20:57:46 -04:00
Joseph Schorr
6ec89bb179 Add Slack notification support 2014-08-26 22:09:56 -04:00
Joseph Schorr
d76d4704a0 Add pagination to the notifications API and make the UI only show a maximum of 5 notifications (beyond that, it shows "5+"). 2014-08-26 15:19:39 -04:00
Joseph Schorr
a129aac94b Add ability to regenerate robot account credentials 2014-08-25 17:19:23 -04:00
Joseph Schorr
99d75bede7 Handle error cases better for external services 2014-08-25 15:30:29 -04:00
Joseph Schorr
09a1c4d2b5 Add test fix and make sure Quay ups the connection count in its container 2014-08-25 14:23:21 -04:00
Joseph Schorr
80435d9c0b Add support for docker search, now that auth is fixed 2014-08-22 19:41:22 -04:00
Joseph Schorr
d2880807b2 - Further fixes for license stuff
- Small fixes to ensure Quay works for Postgres
2014-08-21 19:21:20 -04:00
Joseph Schorr
4fd249589d Add scopes to many org admin methods and remove the internal_only on ones we can now expose 2014-08-19 19:21:41 -04:00
Joseph Schorr
53fb7f4136 Add documentation for all path parameters 2014-08-19 19:05:28 -04:00
Joseph Schorr
32ea1d194f Add support for the Hipchat room notification API 2014-08-19 17:40:36 -04:00
Joseph Schorr
35bd28a77e Add support for the Flowdock Team chat API: https://www.flowdock.com/api/push 2014-08-19 14:33:33 -04:00
Joseph Schorr
02d3b70013 Make sure to search teams as well when determining the robots which have access to a private repo 2014-08-18 19:19:01 -04:00
Joseph Schorr
43b6695f9c Get team invite confirmation working and fully tested 2014-08-18 17:24:00 -04:00
Joseph Schorr
1460879169 Change an ancestry error into a 404 2014-08-18 13:35:03 -04:00
Joseph Schorr
7d7cca39cc New team view interface 2014-08-15 20:51:31 -04:00
Joseph Schorr
56d7a3524d Work in progress: Require invite acceptance to join an org 2014-08-15 17:47:43 -04:00
Joseph Schorr
e7daca5d95 Add better messaging and UI around repos and images that are currently being pushed 2014-08-13 17:54:15 -04:00
Jake Moshenko
29f1b048a3 Add support for Google Cloud Storage. 2014-08-12 02:06:44 -04:00
Joseph Schorr
11176215e1 Commit new DB changes and make sure the metadata is always present in some form 2014-08-11 18:35:26 -04:00
Joseph Schorr
389c88a7c4 Update federated login to store metadata and have the UI pull the information from the metadata 2014-08-11 18:25:01 -04:00
Joseph Schorr
2597bcef3f Add support for login with Google. Note that this CL is not complete 2014-08-11 15:47:44 -04:00
Jake Moshenko
5d4a6fc279 Add support for GA at least for the initial page load. 2014-08-07 20:44:59 -04:00
Jake Moshenko
979f78f677 Stop clobbering the scope variable. 2014-08-06 18:51:04 -04:00
Joseph Schorr
e0bb94e439 Add path param description support 2014-08-06 17:47:32 -04:00
Joseph Schorr
05a1413153 Handle UI for dangerous scopes 2014-08-05 21:21:22 -04:00
Jake Moshenko
02e47ed572 Begin the work to allow robots and teams to be managed via API. 2014-08-05 20:53:00 -04:00
Joseph Schorr
7e8713171e - Change updated_tags into the expected dict, not a list
- Update the event code on both sides to expect the dict
- Add filter support to the string builder
2014-08-05 17:45:40 -04:00
Jake Moshenko
0372013f70 Merge remote-tracking branch 'origin/redalert'
Conflicts:
	app.py
2014-08-04 16:56:34 -04:00
Joseph Schorr
49801bc2c4 - Add web hook queue code back in. We'll remove it and turn it off after this CL goes to prod
- Make notification lookup always be by repo and its UUID, rather than the internal DB ID
- Add the init script for the notification worker
2014-07-31 13:30:54 -04:00
Joseph Schorr
b12d63ce9a Make sure to always return the same cache busting string on prod, so that reloads of the page can still use the same cached resources 2014-07-29 20:54:16 -04:00
Joseph Schorr
1c7d72914b The queue already adds 'notification' to the path 2014-07-29 15:19:05 -04:00
Joseph Schorr
a2f0f57414 - Small title fix
- Make sure sample event data uses the real event data generation code
2014-07-29 13:39:26 -04:00
Joseph Schorr
7de1dd7dc0 Merge branch 'master' into redalert 2014-07-28 18:35:39 -04:00
Joseph Schorr
32b2ecdfa6 Add ability to dismiss notifications 2014-07-28 18:23:46 -04:00
Joseph Schorr
34fc279092 Add e-mail authorization to the repository notification flow. Also validates the creation of the other notification methods. 2014-07-28 14:58:12 -04:00
Jake Moshenko
268c28649a The previous order of removing triggers and their push keys violated a DB constraint. 2014-07-25 13:46:22 -04:00
Joseph Schorr
54ee94754e - Add support for orgs in the entity search and the notification system
- Fix the titles/names of the different notification types
- Fix the styling of the options buttons on the notifications
2014-07-22 13:39:41 -04:00
Jake Moshenko
b39b847c98 Add messaging around required params for oauth. Style fixes. 2014-07-21 15:09:31 -04:00
Joseph Schorr
752efb9e0f Fix the spawn_notification to work in all cases and clean up some of the remaining code 2014-07-18 16:34:52 -04:00
Joseph Schorr
591cd020b8 Merge branch 'master' into redalert 2014-07-18 15:58:56 -04:00
Joseph Schorr
af31bde997 Add support for the remaining events to the frontend and the backend 2014-07-18 15:58:18 -04:00
Jake Moshenko
70a35ab421 Some uninitialized build triggers may not yet have a write token. 2014-07-18 15:05:39 -04:00
Jake Moshenko
8a2c88488a Filter tokens with an associated build trigger from the list API. Delete associated tokens when deleting a trigger. 2014-07-18 14:56:26 -04:00
Jake Moshenko
3d852aa9d3 tiny style fixes 2014-07-18 14:55:55 -04:00
Joseph Schorr
f7c154abb5 Get Quay notification support working in the notification methods 2014-07-18 14:12:20 -04:00
Joseph Schorr
df7b8d651c Fix bugs in the initial impl of the notification event and notification method libs. 2014-07-18 11:52:36 -04:00
Joseph Schorr
8d7493cb86 Convert over to notifications system. Note this is incomplete 2014-07-17 22:51:58 -04:00
Joseph Schorr
a45054bf2e Change tag_view to avoid a DB lookup and only return the tag's image ID. We map the ID in the frontend based on the image data returned 2014-07-17 15:16:22 -04:00
Joseph Schorr
de8e898ad0 Add UI for managing repo notifications 2014-07-17 13:32:39 -04:00
Joseph Schorr
a84fe0681a Start on data model changes and API changes for the new repository notification system 2014-07-16 16:30:47 -04:00
Joseph Schorr
8eacbfbce4 Password field may be optional from the Docker CLI 2014-07-14 21:24:38 -04:00
Joseph Schorr
b0c4f5b2f5 - Fix tests to not hit remote Redis endpoint
- Fix convert organization to allow admin email address, in addition to username
- Add test for the above
2014-07-08 18:19:13 -04:00
Jake Moshenko
c40f6abb7a Fix some bugs with resume support. 2014-07-07 18:19:52 -04:00
Jake Moshenko
f40b7dbc54 Merge remote-tracking branch 'origin/resume' 2014-07-07 18:09:10 -04:00
Joseph Schorr
af46d3d455 Remove path from get_supports_resumeable_download 2014-07-07 16:21:27 -04:00
Jake Moshenko
c338b7d621 Merge remote-tracking branch 'origin/touchdown'
Conflicts:
	static/css/quay.css
	static/js/controllers.js
	test/data/test.db
2014-07-07 15:33:51 -04:00
Joseph Schorr
e850d17e29 Handle potential NPE in the registry code 2014-07-03 17:18:14 -04:00
Joseph Schorr
0ac6312c8a Get resumable downloads working in a way that the Docker CLI will actually understand. Also rename the method to conform the the name used in the Docker source code. 2014-07-02 21:18:46 -04:00
Joseph Schorr
0d89fd7f26 Add code for resumable downloads from S3 2014-07-02 00:39:59 -04:00
Jake Moshenko
b3bf782035 Fix the diffs worker. 2014-06-30 13:51:42 -04:00
Jake Moshenko
684c26bc1a Populate image storage objects with locations everywhere. 2014-06-27 20:04:26 -04:00
Joseph Schorr
ee0d483efd Fix "Run Build Again" to send the tags to which we should push. 2014-06-26 19:55:16 -04:00
Joseph Schorr
76165b5d2b Add API and UI support for displaying image locations 2014-06-24 18:48:42 -04:00
Jake Moshenko
da12b940a9 Merge branch 'master' of ssh://bitbucket.org/yackob03/quay into carmensandiego 2014-06-23 11:26:14 -04:00
Joseph Schorr
46d1dc98ce Make absolutely sure to skip requests without a valid payload 2014-06-19 17:20:43 -04:00
Jake Moshenko
bf0e01fba5 Fix bugs with pushing, pulling, and deleting. 2014-06-17 16:37:48 -04:00
Jake Moshenko
bf98575feb Add the basics of geographic data distribution and get the tests to work. 2014-06-17 16:03:43 -04:00
Jake Moshenko
f405d575a3 Remove to code path to check image for size, always use the imagestorage. 2014-06-12 19:51:17 -04:00
Jake Moshenko
fb465fd66f Eradicate the s3 versions of the checksum and the uploading flag. 2014-06-12 19:27:43 -04:00
Jake Moshenko
22bb1dc8cc Use the old checksum header for compatibility with older clients. 2014-06-11 22:00:37 -04:00
Jake Moshenko
7a5605a568 Add an exact abort and use it to send the expected response for 409s. 2014-06-11 16:55:38 -04:00
Jake Moshenko
78c5aec5b9 Switch the checksums to use the registry computed value, remove all assumptions of namespaced paths for legacy storage, fix an upload race condition in the registry code. 2014-06-11 15:37:45 -04:00
Jake Moshenko
4b13ddc118 Fix the size calculation to prefer the shared version if both are available. 2014-06-10 15:34:32 -04:00
Joseph Schorr
738c4a86ff Check to make sure we can load the github user data 2014-06-04 16:12:31 -04:00
Joseph Schorr
c630d7e948 Merge branch 'master' into touchdown
Conflicts:
	static/js/app.js
	static/partials/organizations.html
	test/data/test.db
2014-06-03 13:22:26 -04:00
Jake Moshenko
0057ced98c Move GitHub build trigger behind a feature flag. 2014-05-30 18:28:18 -04:00
Jake Moshenko
d1f4fbdacc Split out the redis hostname for user events and build logs as a string config. Modularize the user events and fix all callers. 2014-05-30 14:25:29 -04:00
Jake Moshenko
8e6328a5f0 Merge branch 'driversed' of ssh://bitbucket.org/yackob03/quay into driversed 2014-05-29 11:24:44 -04:00
Jake Moshenko
0683f2657e Rename the email util to not conflict with a builtin library. 2014-05-28 18:22:48 -04:00
Joseph Schorr
69be86be97 Add extra seat check in the user API call and turn off user->org conversion when authentication is LDAP 2014-05-28 15:53:53 -04:00
Joseph Schorr
205362bc7b Add UI for handling the case when an enterprise has reached its maximum seat count 2014-05-28 15:22:36 -04:00
Jake Moshenko
decefbf168 Switch the seat count for the superuser API to the real value from the license. 2014-05-28 13:54:02 -04:00
Jake Moshenko
33b43b75c0 Eliminate a lot of the if cases in create_user by separating them out. Add a limit to the number of users which can be created based on the license. Add support for creating and loading licenses. 2014-05-28 13:51:52 -04:00
Joseph Schorr
81f235e5d6 Fix error when no token is returned by Github 2014-05-23 15:20:40 -04:00
Joseph Schorr
a9a8105fbc Add credit card expiration date to the billing info screen 2014-05-22 16:52:51 -04:00