Joseph Schorr
e9cac407df
Add a configurable avatar system and add an internal avatar system for enterprise
2014-11-24 19:25:13 -05:00
Jimmy Zelinskie
716d7a737b
Strip whitespace from ALL the things.
2014-11-24 16:07:38 -05:00
Jake Moshenko
e863b96166
Tweak the uuid backfill to leave the uuid column nullable.
2014-11-19 15:32:30 -05:00
Jimmy Zelinskie
606ad21bec
Apply reviewed changes.
...
Adds a length to the UUID field, renames QuayDeferredPermissionUser
parameter id->uuid, adds transactions to backfill script.
2014-11-19 13:28:16 -05:00
Jimmy Zelinskie
10b627c2ad
Add user uuid backfill
2014-11-19 13:28:16 -05:00
Jake Moshenko
17fc72d262
Switch postgres to a non-transactional DDL to allow us to use peewee to modify data in migrations: enterprise customers are running postgres migrations offline already. Move the image backfill script back to a migration since it will now work. Unify the interface to sending a DB URI to env.py for the migration script.
2014-11-18 14:07:33 -05:00
Joseph Schorr
3c990072fd
Only run the uncompressed size backfill for images that have a defined size > 0, but no uncompressed size
2014-11-10 19:41:58 -05:00
Joseph Schorr
611bc895e1
Handle invalid tar layers and add tests
2014-11-10 18:26:37 -05:00
Joseph Schorr
9d1b6d829a
Make sure the external login link for GHE links to the enterprise GitHub and not the hosted version
2014-11-06 20:35:52 -05:00
Joseph Schorr
d7efb7cf7a
Handle missing config in a nicer manner
2014-11-05 17:17:38 -05:00
Joseph Schorr
3e79379942
- Make the OAuth config system centralized
...
- Add support for Github Enterprise login
2014-11-05 16:43:37 -05:00
Joseph Schorr
408fd229a7
Remove the DBURI from the log statement
2014-11-03 21:10:10 -05:00
Joseph Schorr
29c30b336e
Move the uncompressed image size migration call outside of alembic, since it will sometimes deadlock with certain kinds of DBs (because alembic is running things inside a transaction)
2014-11-03 21:01:41 -05:00
Joseph Schorr
8bffbde4ae
Make sure to log a proper exception when an email error occurs
2014-11-03 17:16:36 -05:00
Joseph Schorr
9aa72c5cc2
Fix migration issues:
...
- MySQL 5.5 doesn't support the now() call as a default
- Postgres migration isn't auto-committed, so we have to check if the table exists first
2014-11-03 15:25:55 -05:00
Joseph Schorr
c1398c6d2b
- Add a log entry for repo verb handling and make the container usage calculation take it into account
...
- Move all the repo push/pull/verb logging into a central track_and_log method
- Readd images accidentally deleted in the last CL
- Make the uncompressed size migration script better handle exceptions
2014-10-29 15:42:44 -04:00
Joseph Schorr
93cd7de0e0
Handle email errors in a better manner
2014-10-28 12:10:44 -04:00
Joseph Schorr
5db9cd948b
Add better (jinja-based) messaging to the notifications and add some fixes for the email templates
2014-10-22 19:01:56 -04:00
Joseph Schorr
0ef17b082b
Make sure to disconnect from the database when finished with the processes
2014-10-21 17:40:57 -04:00
Joseph Schorr
47be7cab7a
Compute the tarsum only when required. Newer versions of Docker only require the simple SHA256 checksum, so this should save us from writing to a temp file.
2014-10-20 13:11:33 -04:00
Joseph Schorr
fc09b8ece8
Switch the tar appender to use the first entry's information, not the last
2014-10-17 16:24:02 -04:00
Joseph Schorr
5c4ad31111
Have the tarfileappender also copy the mode and mtime to the new records
2014-10-17 16:22:14 -04:00
Joseph Schorr
a423032e80
- Make sure we log when an exception occurs in the squashing code
...
- Have queue file always try to return any remaining data in the buffer
- Remove the raise of the exception when we get an empty tar file
2014-10-16 12:54:16 -04:00
Joseph Schorr
ee99e68a67
Fix gzip wrap to keep reading from the buffer once the inner loop has completed
2014-10-15 17:24:17 -04:00
Joseph Schorr
e4d9bacccb
Fix other typo
2014-10-15 16:18:34 -04:00
Joseph Schorr
642ebed084
Fix typo
2014-10-15 16:05:51 -04:00
Joseph Schorr
d43109d7cb
- Merge branch 'master' into sha-lom
...
- Extract out the tar handling from streamlayerformat into tarlayerformat
- Add a new tarfileappender class to make it easy to append data to gzipped tars
- Fix the gzipwrap to properly close
- Have the .git injection use the new appender
2014-10-15 15:51:34 -04:00
Joseph Schorr
dba75a08af
Make sure to handle deleted prefixes properly
2014-10-15 11:57:54 -04:00
Joseph Schorr
da28bc4ce9
- Handle missing images properly
...
- Add support for deleting directories
- Add a slew of tests for deletion of directories and other kinds of deletion and layering
2014-10-14 21:40:02 -04:00
Joseph Schorr
eef7edab49
Fix file deletion skipping
2014-10-14 18:48:26 -04:00
Joseph Schorr
efb3c6c494
Make sure we send the extra zeros in chunks
2014-10-14 15:58:52 -04:00
Jake Moshenko
44637dad96
Merge branch 'master' of bitbucket.org:yackob03/quay
2014-10-14 13:58:14 -04:00
Jake Moshenko
328db8b660
Split the app into separate backends, which can use different worker types and different timeouts.
2014-10-14 13:58:08 -04:00
Joseph Schorr
49f8629566
Make the default mail sender use the Flask mail config value
2014-10-10 13:14:33 -04:00
Joseph Schorr
7ef3be5842
Add the exception's message to the traceback
2014-10-08 14:20:57 -04:00
Joseph Schorr
6007789480
Send the full traceback with any exceptions in the queue process
2014-10-08 14:18:41 -04:00
Joseph Schorr
bb9502ee77
Make sure to raise the exception for WSGI and make the delete method's intent more clear
2014-10-08 13:51:50 -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
Joseph Schorr
f4daa5e97b
- Update the migrations tool to verify migrations work up and down for both MySQL and PostgresSQL.
...
- Add migrations for the squashed image tables and for backfilling the uncompressed sizes
- Make sure gzip stream uses a max length when determining the uncompressed size
2014-10-07 15:29:56 -04:00
Joseph Schorr
f38ce51943
Merge master into laffa
2014-10-07 14:03:17 -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
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
3d3f2dd6d7
Remove map call and estimate call
2014-09-29 15:33:26 -04:00
Joseph Schorr
746936ce66
- Make the layer going over the estimated size raise an exception
...
- Add a heuristic for estimating the layer size if it is 0
- Add a method where we can add a custom defined map of image -> size
2014-09-29 12:54:22 -04:00
Joseph Schorr
51beddfef1
Add accidentally removed subscription change email contents
2014-09-23 16:28:06 -04:00
Joseph Schorr
e273dca4b4
Change back to using a docker load format
2014-09-19 12:22:54 -04:00
Joseph Schorr
05bb710830
- Add a shared AUFS utility lib and change both changes and streamlayerformat to use it
...
- Add UI for selecting whether to pull the tag, the repo, or the squashed tag
2014-09-18 15:56:59 -04:00
Joseph Schorr
b212dbb2ab
Merge branch 'master' into better-emails
2014-09-18 13:20:32 -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
69c367514c
Merge branch 'master' of https://bitbucket.org/yackob03/quay
2014-09-12 14:01:17 -04:00
Joseph Schorr
91b8ecfb63
Fix broken regex for Dockerfile parsing
2014-09-12 14:01:10 -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
451e034ca1
Archived logs commit 1. Squash me.
2014-09-08 16:43:17 -04:00
Jake Moshenko
54fbb2a4c0
Rename collections to morecollections to avoid a conflict with the built in module.
2014-09-08 16:42:43 -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
c7e873366d
Inject the tables metadata into the upgrade and downgrade functions. Fix a bunch of the downgrades to actually work.
2014-09-04 20:58:29 -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
99d75bede7
Handle error cases better for external services
2014-08-25 15:30:29 -04:00
Joseph Schorr
8866b881db
Remove all license code
2014-08-21 17:44:56 -04:00
Joseph Schorr
43b6695f9c
Get team invite confirmation working and fully tested
2014-08-18 17:24:00 -04:00
Joseph Schorr
56d7a3524d
Work in progress: Require invite acceptance to join an org
2014-08-15 17:47:43 -04:00
Jake Moshenko
0372013f70
Merge remote-tracking branch 'origin/redalert'
...
Conflicts:
app.py
2014-08-04 16:56:34 -04:00
Jake Moshenko
0aa6e92b02
Finish porting the workers over to apscheduler 3.0
2014-08-01 18:38:02 -04:00
Jake Moshenko
09917ff062
Switch unidecode over to the new anunidecode library and write some tests to validate results.
2014-08-01 15:50:25 -04:00
Jake Moshenko
6b38ddb9b6
Remove the gpled loremipsum module.
2014-07-31 16:46:02 -04:00
Joseph Schorr
6b85ee3eb6
Make sure all user emails that can be sent in enterprise properly adjust to the app's URL
2014-07-29 13:47:54 -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
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
0ba4201020
Add a module which will create notifications for all users when the license is at its expiration period, and terminate the process when the license expires.
2014-05-29 11:24:10 -04:00
Jake Moshenko
0683f2657e
Rename the email util to not conflict with a builtin library.
2014-05-28 18:22:48 -04:00
Jake Moshenko
0b6552d6cc
Fix the metrics so they are usable for scaling the workers down and up. Switch all datetimes which touch the database from now to utcnow. Fix the worker Dockerfile.
2014-05-23 14:16:26 -04:00
Jake Moshenko
f4c488f9b6
Fix the queue query for old jobs which won't run.
2014-05-22 13:50:06 -04:00
Jake Moshenko
f6726bd0a4
Merge branch 'ldapper'
...
Conflicts:
Dockerfile
app.py
data/database.py
endpoints/index.py
test/data/test.db
2014-05-22 12:13:41 -04:00
Jake Moshenko
d14798de1d
Add a queue capacity reporter plugin to the queue. Move the queue definitions to app. Add a cloudwatch reporter to the dockerfile build queue.
2014-05-21 19:50:37 -04:00
Jake Moshenko
b8466169ac
Integrate sentry with the build worker.
2014-05-19 13:50:45 -04:00
Joseph Schorr
cbcff2adee
Make Phantomjs use a disk cache for the snapshots
2014-05-19 13:18:37 -04:00
Joseph Schorr
1c0c551d00
Add better logging to the snapshot generator for timing purposes and make sure the PhantomJS script always exists after a maximum of 10 seconds.
2014-05-19 13:11:07 -04:00
Jake Moshenko
11c6c5fa52
Merge remote-tracking branch 'origin/master' into ldapper
...
Conflicts:
app.py
2014-05-13 16:55:02 -04:00
Jake Moshenko
5fdccfe3e6
Add an alembic migration for the full initial database with the data. Switch LDAP to using bind and creating a federated login entry. Add LDAP support to the registry and index endpoints. Add a username transliteration and suggestion mechanism. Switch the database and model to require a manual initialization call.
2014-05-13 12:17:26 -04:00
Jake Moshenko
bcb993a914
Set up the build logs to use our fake build logs on test and local.
2014-05-09 18:45:11 -04:00
Jake Moshenko
4556ff52b3
Change the request ids to use urns. Add the logger name to the log formatter.
2014-05-02 13:43:57 -04:00
Jake Moshenko
a5a61576ae
Revamp the logging a bit. Not quite done yet.
2014-05-01 19:44:28 -04:00
Jake Moshenko
450928674b
Use a new caching algorithm which can limit the size for the build nodes. Stop treating public images as special. Add a new phase to the builder for pulling.
2014-04-30 18:48:36 -04:00
Jake Moshenko
fe665118bb
Add sentry exception monitoring.
2014-04-28 18:59:22 -04:00
jakedt
189903ffe9
Send an email automatically when a payment fails.
2014-04-22 13:56:34 -04:00
jakedt
5a2a64074f
Make the command portion of the dockerfile parser case insensitive.
2014-04-17 16:49:04 -04:00
jakedt
a0cbead5aa
Update the subscription change webhook to be more friendly and not send emails for payments.
2014-04-17 16:18:37 -04:00
jakedt
0a9ee6c49f
Bust the dockerfile build cache across repository lines.
2014-04-16 15:45:41 -04:00
jakedt
d95c321e28
Respond to subscription change events so I can stop polling the stripe event list.
2014-04-15 17:00:32 -04:00
jakedt
0827e0fbac
Merge remote-tracking branch 'origin/master' into ncc1701
...
Conflicts:
endpoints/web.py
static/directives/signup-form.html
static/js/app.js
static/js/controllers.js
static/partials/landing.html
static/partials/view-repo.html
test/data/test.db
2014-04-14 19:37:22 -04:00
jakedt
724fec1b74
Test third party repo images for public-ness in the builder. Always clean up private images that we dont know about before build. Pull the base image to refresh before every build.
2014-04-14 18:54:39 -04:00
jakedt
52fdd60779
Merge remote-tracking branch 'origin/detective'
...
Conflicts:
static/partials/repo-admin.html
2014-04-14 16:15:32 -04:00
Joseph Schorr
0e54b0501c
Return the reason a username validation failed and add tests to verify we are sending the reason to client
2014-04-07 20:37:02 -04:00
jakedt
8e9faf6121
Toward running quay in a docker container.
2014-04-07 01:20:09 -04:00
Joseph Schorr
7c466dab7d
- Add an analyze method on triggers that, when given trigger config, will attempt to analyze the trigger's Dockerfile and determine what pull credentials, if any, are needed and available
...
- Move the build trigger setup UI into its own directive (makes things cleaner)
- Fix a bug in the entitySearch directive around setting the current entity
- Change the build trigger setup UI to use the new analyze method and flow better
2014-04-02 23:33:58 -04:00
Joseph Schorr
9a79d1562a
Change to store the pull robot on the repository build and only add the credentials to the queue item. This prevents the credentials from being exposed to the end user. Also fixes the restart build option
2014-04-01 21:49:06 -04:00
jakedt
3525e383df
Merge remote-tracking branch 'origin/master' into pullinprivate
...
Conflicts:
test/data/test.db
2014-04-01 18:28:48 -04:00
jakedt
7c44932c87
Use safer tar extraction. Handle error messages in the build process more intelligently.
2014-04-01 13:46:41 -04:00
jakedt
d67a1cddc2
Merge remote-tracking branch 'origin/master' into pullinprivate
...
Conflicts:
workers/dockerfilebuild.py
2014-03-31 18:10:34 -04:00
Joseph Schorr
2006917e03
Add support for pull credentials on builds and build triggers
2014-03-27 18:33:13 -04:00
jakedt
910fabe103
Disable that pesky browser cache in the ways that matter.
2014-03-26 18:36:59 -04:00
jakedt
5d2274fb05
Add CORS headers to all error responses.
2014-03-25 15:38:31 -04:00
jakedt
092e236694
Write a flask-restful version of cache-control. Remove the comments to add back in post methods.
2014-03-14 18:39:31 -04:00
jakedt
e74eb3ee87
Add scope ordinality and translations. Process oauth tokens and limit scopes accordingly.
2014-03-12 16:31:37 -04:00
Joseph Schorr
61ca29de04
Move the auth context methods into their own file so that we don't have auth trying to import itself
2014-02-25 15:07:24 -05:00
Joseph Schorr
a120f6c64a
Make sure all aborts have message information
2014-02-25 14:15:12 -05:00
yackob03
a6f98570a1
Send everything in production through the gunicorn logger (allows rotation using USR1). Add a gunicorn logger that emits the logstash format. Move the gunicorn config to the conf subdir. Update the postrotate script to hopefully work.
2014-02-04 15:08:49 -05:00
yackob03
0e2adf7a30
Empty tar files should be interepreted as no diffs.
2014-01-31 11:29:55 -05:00
Joseph Schorr
392e0d7c58
Change docs url
2014-01-29 15:38:25 -05:00
Joseph Schorr
3dc3af9eb2
The CLI can be… odd… when handling errors. Make them nicer for the CLI
2014-01-29 14:08:14 -05:00
Joseph Schorr
2b134158f5
Add issue URLs to most errors. The corresponding issue pages will be checked into the public docs repo
2014-01-28 18:29:45 -05:00
Joseph Schorr
c7e616edb9
Add the request URL to the reported error info
2014-01-24 20:40:22 -05:00
Joseph Schorr
aef719c71a
Add the status code and message to the mix panel reported error
2014-01-24 20:37:44 -05:00
Joseph Schorr
b1ec9c4469
Typo fix
2014-01-24 20:34:18 -05:00
Joseph Schorr
c18212f477
Meant update, not copy
2014-01-24 20:33:42 -05:00
Joseph Schorr
9650c1867b
Merge branch 'better-error' of https://bitbucket.org/yackob03/quay into better-error
...
Conflicts:
util/http.py
2014-01-24 20:32:14 -05:00
Joseph Schorr
8d074d8f3a
Add mix panel reporting to http error codes
2014-01-24 20:29:25 -05:00
yackob03
f585430399
Make abort return a json block, which is apparently what the client expects. Remove unused imports. Fix line length and kwarg problems.
2014-01-24 17:00:42 -05:00
Joseph Schorr
0d84cfdf17
Add more default messages
2014-01-24 15:26:32 -05:00
Joseph Schorr
374754c9c9
Handle if message is a non-string
2014-01-24 15:24:26 -05:00
Joseph Schorr
4cea2a6449
Nicer error formatting
2014-01-24 15:17:00 -05:00
Joseph Schorr
229eeec1be
Don’t have a headers var anymore
2014-01-24 15:12:11 -05:00
Joseph Schorr
fd4ac04b5a
HTTPException import
2014-01-24 15:10:51 -05:00
Joseph Schorr
efcbe4421d
Fix logger
2014-01-24 15:09:35 -05:00
Joseph Schorr
77f2706a19
Properly use the auth’ed objects
2014-01-24 15:06:35 -05:00
Joseph Schorr
30a26d099f
Have the index use the same abort method
2014-01-24 15:01:40 -05:00
Joseph Schorr
a363ada41c
Add ability to view and change an account’s email address
2014-01-17 17:04:05 -05:00
yackob03
8e4bbdf1dd
Add no-cache as a response header.
2014-01-02 18:01:34 -05:00
yackob03
52bee66c9f
Update the checksums to a version that supports empty layers.
2013-12-06 14:23:26 -05:00
yackob03
354a03c499
Remove the logger basicConfig from the seo module.
2013-12-02 15:23:15 -05:00
Joseph Schorr
43f2dd80a0
Merge branch 'master' into looksirdroids
2013-11-22 18:22:29 -05:00
yackob03
026ed7ffb4
Start fleshing out support for robots.
2013-11-20 16:13:03 -05:00
yackob03
f5e6af37cf
Fix the nginx config to work with the new snapshots. Fix the snapshot creator to correctly create the request path.
2013-11-18 19:17:58 -05:00
yackob03
6355b4a217
Fix some things with the seo snapshots and use the pep8 style guite.
2013-11-18 18:42:27 -05:00
Joseph Schorr
738973cf39
Add the snapshot endpoint to web.py and have the phantomjs running only load the page's HTML once there are no further pending XHR requests
2013-11-18 17:11:06 -05:00
Joseph Schorr
4c6012f756
Add ability to download receipts in PDF form
2013-11-18 14:49:54 -05:00
Joseph Schorr
6a2b439863
Merge branch 'master' of https://bitbucket.org/yackob03/quay
2013-11-15 15:31:11 -05:00
Joseph Schorr
04780cb3fa
Fix token bug in stripe payments
2013-11-15 15:31:05 -05:00
Joseph Schorr
457b619647
Add receipt/invoice email support and option to Quay
2013-11-15 14:42:31 -05:00
yackob03
96921c2a29
Update the username validation to match the Docker CLI rules.
2013-11-15 12:31:39 -05:00
yackob03
13b457c440
Add caching to the changes api since it is so expensive and can return large results.
2013-10-20 01:18:31 -04:00
yackob03
4679b0dfcc
Fix bugs and clean up data in the way diffs are generated.
2013-10-18 20:19:05 -04:00
yackob03
63ffa52245
Make the diffs absolute and sort them.
2013-10-18 17:05:51 -04:00
yackob03
a1164269be
Complete the diff generating functionality.
2013-10-18 14:31:14 -04:00