Merge branch 'master' of ssh://bitbucket.org/yackob03/quay

This commit is contained in:
Jake Moshenko 2014-08-29 13:16:41 -04:00
commit 68ecebc704
3 changed files with 33 additions and 8 deletions

View file

@ -29,6 +29,7 @@ def upgrade():
def downgrade(): def downgrade():
schema = gen_sqlalchemy_metadata(all_models) schema = gen_sqlalchemy_metadata(all_models)
logentrykind = schema.tables['logentrykind']
op.execute( op.execute(
(logentrykind.delete() (logentrykind.delete()
.where(logentrykind.c.name == op.inline_literal('regenerate_robot_token'))) .where(logentrykind.c.name == op.inline_literal('regenerate_robot_token')))

View file

@ -1543,7 +1543,7 @@ quayApp = angular.module('quay', quayDependencies, function($provide, cfpLoading
}); });
}; };
planService.changePlan = function($scope, orgname, planId, callbacks) { planService.changePlan = function($scope, orgname, planId, callbacks, opt_async) {
if (!Features.BILLING) { return; } if (!Features.BILLING) { return; }
if (callbacks['started']) { if (callbacks['started']) {
@ -1556,7 +1556,7 @@ quayApp = angular.module('quay', quayDependencies, function($provide, cfpLoading
planService.getCardInfo(orgname, function(cardInfo) { planService.getCardInfo(orgname, function(cardInfo) {
if (plan.price > 0 && (previousSubscribeFailure || !cardInfo.last4)) { if (plan.price > 0 && (previousSubscribeFailure || !cardInfo.last4)) {
var title = cardInfo.last4 ? 'Subscribe' : 'Start Trial ({{amount}} plan)'; var title = cardInfo.last4 ? 'Subscribe' : 'Start Trial ({{amount}} plan)';
planService.showSubscribeDialog($scope, orgname, planId, callbacks, title); planService.showSubscribeDialog($scope, orgname, planId, callbacks, title, /* async */true);
return; return;
} }
@ -1629,9 +1629,34 @@ quayApp = angular.module('quay', quayDependencies, function($provide, cfpLoading
return email; return email;
}; };
planService.showSubscribeDialog = function($scope, orgname, planId, callbacks, opt_title) { planService.showSubscribeDialog = function($scope, orgname, planId, callbacks, opt_title, opt_async) {
if (!Features.BILLING) { return; } if (!Features.BILLING) { return; }
// If the async parameter is true and this is a browser that does not allow async popup of the
// Stripe dialog (such as Mobile Safari or IE), show a bootbox to show the dialog instead.
var isIE = navigator.appName.indexOf("Internet Explorer") != -1;
var isMobileSafari = navigator.userAgent.match(/(iPod|iPhone|iPad)/) && navigator.userAgent.match(/AppleWebKit/);
if (opt_async && (isIE || isMobileSafari)) {
bootbox.dialog({
"message": "Please click 'Subscribe' to continue",
"buttons": {
"subscribe": {
"label": "Subscribe",
"className": "btn-primary",
"callback": function() {
planService.showSubscribeDialog($scope, orgname, planId, callbacks, opt_title, false);
}
},
"close": {
"label": "Cancel",
"className": "btn-default"
}
}
});
return;
}
if (callbacks['opening']) { if (callbacks['opening']) {
callbacks['opening'](); callbacks['opening']();
} }
@ -3904,7 +3929,7 @@ quayApp.directive('planManager', function () {
return true; return true;
}; };
$scope.changeSubscription = function(planId) { $scope.changeSubscription = function(planId, opt_async) {
if ($scope.planChanging) { return; } if ($scope.planChanging) { return; }
var callbacks = { var callbacks = {
@ -3918,7 +3943,7 @@ quayApp.directive('planManager', function () {
} }
}; };
PlanService.changePlan($scope, $scope.organization, planId, callbacks); PlanService.changePlan($scope, $scope.organization, planId, callbacks, opt_async);
}; };
$scope.cancelSubscription = function() { $scope.cancelSubscription = function() {
@ -3981,7 +4006,7 @@ quayApp.directive('planManager', function () {
if ($scope.readyForPlan) { if ($scope.readyForPlan) {
var planRequested = $scope.readyForPlan(); var planRequested = $scope.readyForPlan();
if (planRequested && planRequested != PlanService.getFreePlan()) { if (planRequested && planRequested != PlanService.getFreePlan()) {
$scope.changeSubscription(planRequested); $scope.changeSubscription(planRequested, /* async */true);
} }
} }
}); });

View file

@ -41,8 +41,7 @@ def matches_system_error(status_str):
""" Returns true if the given status string matches a known system error in the """ Returns true if the given status string matches a known system error in the
Docker builder. Docker builder.
""" """
KNOWN_MATCHES = ['lxc-start: invalid', 'lxc-start: failed to', 'lxc-start: Permission denied', KNOWN_MATCHES = ['lxc-start: invalid', 'lxc-start: failed to', 'lxc-start: Permission denied']
'lxc-start: The container failed']
for match in KNOWN_MATCHES: for match in KNOWN_MATCHES:
# 10 because we might have a Unix control code at the start. # 10 because we might have a Unix control code at the start.