Example #1
0
Dispatcher.register(function (event) {
	switch (event.name) {
	case 'DEPLOY_APP':
		switch (event.source) {
		case 'GH_COMMIT':
			deployFromGithubCommit(event.repo, event.branchName, event.commit.sha, event.appData);
			break;
		case 'GH_PULL':
			deployFromGithubPull(event.repo, event.pull, event.appData);
			break;
		default:
			throw new Error('Unknown source for DEPLOY_APP action: '+ JSON.stringify(event.source));
		}
		break;

	case 'APP_DEPLOY_COMMIT':
		deployFromGithub({
			github: 'true',
			github_user: event.ownerLogin,
			github_repo: event.repoName,
			branch: event.branchName,
			rev: event.sha,
			clone_url: event.repo.cloneURL
		}, {
			id: event.appID
		});
		break;

	case 'APP_DEPLOY_RELEASE':
		Config.client.deployAppRelease(event.appID, event.releaseID, event.deployTimeout);
		break;
	}
});
Example #2
0
			Promise.all(res.map(function (provider) {
				var pAttrs = Config.PROVIDER_ATTRS[provider.name];
				if ( !pAttrs ) {
					window.console.error('No provider config found for '+ provider.name);
					return;
				}
				providers[provider.name] = provider;
				return Promise.all([
					Config.client.getApp(pAttrs.appName).then(function (args) {
						providerApps[provider.id] = args[0];
					}),
					Promise.resolve(null).then(function () {
						if (pAttrs.route.mode !== 'resource') {
							return;
						}
						return Config.client.listProviderResources(provider.id).then(function (args) {
							return Promise.all(args[0].map(function (resource) {
								var appName = pAttrs.route.appNameFromResource(resource);
								return Config.client.getApp(appName).then(function (args) {
									resourceApps[resourceAppsKey(provider.id, resource.id)] = args[0];
								});
							}));
						});
					})
				]);
			}, this)).then(function () {
Example #3
0
Dispatcher.register(function (event) {
	switch (event.name) {
	case 'PROVISION_RESOURCE_WITH_ROUTE':
		if (event.resourceID) {
			Config.history.navigate('/providers/'+ event.providerID +'/resources/'+ event.resourceID +'/create-external-route?provision=true', { replace: true });
		} else {
			Config.history.navigate('/providers/'+ event.providerID +'/create-external-route?provision=true', { replace: true });
		}
		break;
	case 'PROVISION_RESOURCE':
		provisionResource(event.providerID, event.createRoute || null);
		break;
	case 'APP_PROVISION_RESOURCES':
		provisionResourcesForApp(event.providerIDs, event.appID);
		break;
	case 'RESOURCE_ADD_APP':
		addAppToResource(event.appID, event.providerID, event.resourceID);
		break;
	case 'DELETE_RESOURCE':
		deleteResource(event.providerID, event.resourceID, event.appID);
		break;
	case 'CREATE_EXTERNAL_PROVIDER_ROUTE':
		createTCPRoute(event.providerAppID, event.serviceName);
		break;
	case 'CREATE_EXTERNAL_RESOURCE_ROUTE':
		Config.client.getResource(event.providerID, event.resourceID).then(function (args) {
			var resource = args[0];
			createTCPRoute(event.serviceAppID, event.serviceNameFromResource(resource));
		});
		break;
	}
});
Example #4
0
	__fetchPrevPage: function (skipLock) {
		if (skipLock !== true) {
			return this.__withFetchLock(this.__fetchPrevPage.bind(this, true));
		}
		var prevState = this.state;
		return Config.client.getEvents({
			app_id: this.props.appID,
			since_id: this.state.sinceID,
			object_types: OBJECT_TYPES,
			count: FETCH_COUNT
		}).then(function (args) {
			var events = this.__rewriteEvents(this.__filterEvents(args[0]));
			var pages;
			var hasPrevPage = true;
			if (events.length === 0) {
				pages = prevState.pages;
				hasPrevPage = args[0].length !== 0;
			} else {
				pages = [{
					id: buildPageID(events),
					events: events
				}].concat(prevState.pages);
			}
			this.setState({
				hasPrevPage: hasPrevPage,
				pages: pages,
				eventIDs: prevState.eventIDs.concat(events.map(function (e) { return e.id; })),
				sinceID: ((args[0] || [])[0] || {}).id || prevState.sinceID
			});
		}.bind(this)).catch(function (err) {
			setTimeout(function () {
				throw err;
			}, 0);
		});
	},
Example #5
0
					Promise.resolve(null).then(function () {
						if (pAttrs.route.mode !== 'resource') {
							return;
						}
						return Config.client.listProviderResources(provider.id).then(function (args) {
							return Promise.all(args[0].map(function (resource) {
								var appName = pAttrs.route.appNameFromResource(resource);
								return Config.client.getApp(appName).then(function (args) {
									resourceApps[resourceAppsKey(provider.id, resource.id)] = args[0];
								});
							}));
						});
					})
Example #6
0
	__fetchProviders: function () {
		Config.client.listProviders().then(function (args) {
			var res = args[0];
			var providers = {};
			var providerApps = {};
			var resourceApps = {};
			Promise.all(res.map(function (provider) {
				var pAttrs = Config.PROVIDER_ATTRS[provider.name];
				if ( !pAttrs ) {
					window.console.error('No provider config found for '+ provider.name);
					return;
				}
				providers[provider.name] = provider;
				return Promise.all([
					Config.client.getApp(pAttrs.appName).then(function (args) {
						providerApps[provider.id] = args[0];
					}),
					Promise.resolve(null).then(function () {
						if (pAttrs.route.mode !== 'resource') {
							return;
						}
						return Config.client.listProviderResources(provider.id).then(function (args) {
							return Promise.all(args[0].map(function (resource) {
								var appName = pAttrs.route.appNameFromResource(resource);
								return Config.client.getApp(appName).then(function (args) {
									resourceApps[resourceAppsKey(provider.id, resource.id)] = args[0];
								});
							}));
						});
					})
				]);
			}, this)).then(function () {
				this.setState({
					fetched: true,
					providers: Config.PROVIDER_ORDER.filter(function (name) {
						return providers.hasOwnProperty(name);
					}).map(function (name) {
						return providers[name];
					}),
					providerApps: providerApps,
					resourceApps: resourceApps
				});
			}.bind(this));
		}.bind(this));
	}
Example #7
0
var createTaffyJob = function (taffyReleaseId, appID, appName, meta, env) {
	env = env || {};
	var args = [appName, meta.clone_url, meta.branch, meta.rev];
	[{ arg: '--meta', data: meta }, { arg: '--env', data: env }].forEach(function (item) {
		Object.keys(item.data).forEach(function (k) {
			var v = item.data[k];
			args.push(item.arg);
			args.push(k +'='+ v);
		});
	});
	return Config.client.createTaffyJob({
		release: taffyReleaseId,
		release_env: true,
		cmd: args,
		meta: extend({}, meta, {
			app: appID
		})
	});
};
Example #8
0
	__fetchNextPage: function (skipLock, beforeID, eventsBuffer) {
		if (skipLock !== true) {
			return this.__withFetchLock(this.__fetchNextPage.bind(this, true));
		}
		if (this.state.hasNextPage === false) {
			return Promise.resolve();
		}
		var prevState = this.state;
		return Config.client.getEvents({
			app_id: this.props.appID,
			before_id: beforeID || this.state.beforeID,
			object_types: OBJECT_TYPES,
			count: FETCH_COUNT
		}).then(function (args) {
			var events = (eventsBuffer || []).concat(this.__rewriteEvents(this.__filterEvents(args[0])));
			var pages;
			var hasNextPage = true;
			var beforeID = ((args[0] || [])[args[0].length-1] || {}).id || prevState.beforeID;
			if (args[0].length > events.length) {
				return this.__fetchNextPage(skipLock, beforeID, events);
			}
			if (events.length === 0) {
				pages = prevState.pages;
				hasNextPage = args[0].length !== 0;
			} else {
				pages = prevState.pages.concat([{
					id: buildPageID(events),
					events: events
				}]);
			}
			var state = {
				hasNextPage: hasNextPage,
				pages: pages,
				eventIDs: prevState.eventIDs.concat(events.map(function (e) { return e.id; })),
				beforeID: ((args[0] || [])[args[0].length-1] || {}).id || prevState.beforeID
			};
			this.setState(state);
		}.bind(this)).catch(function (err) {
			setTimeout(function () {
				throw err;
			}, 0);
		});
	},
Example #9
0
							return Promise.all(args[0].map(function (resource) {
								var appName = pAttrs.route.appNameFromResource(resource);
								return Config.client.getApp(appName).then(function (args) {
									resourceApps[resourceAppsKey(provider.id, resource.id)] = args[0];
								});
							}));