Implement new create and manager trigger UI
Implements the new trigger setup user interface, which is now a linear workflow found on its own page, rather than a tiny modal dialog Fixes #1187
This commit is contained in:
parent
21b09a7451
commit
8e863b8cf5
47 changed files with 1835 additions and 1068 deletions
|
@ -40,7 +40,8 @@ from endpoints.api.robot import (UserRobotList, OrgRobot, OrgRobotList, UserRobo
|
|||
RegenerateUserRobot, RegenerateOrgRobot)
|
||||
from endpoints.api.trigger import (BuildTriggerActivate, BuildTriggerSources, BuildTriggerSubdirs,
|
||||
TriggerBuildList, ActivateBuildTrigger, BuildTrigger,
|
||||
BuildTriggerList, BuildTriggerAnalyze, BuildTriggerFieldValues)
|
||||
BuildTriggerList, BuildTriggerAnalyze, BuildTriggerFieldValues,
|
||||
BuildTriggerSourceNamespaces)
|
||||
from endpoints.api.repoemail import RepositoryAuthorizedEmail
|
||||
from endpoints.api.repositorynotification import (RepositoryNotification,
|
||||
RepositoryNotificationList,
|
||||
|
@ -3758,8 +3759,23 @@ class FakeBuildTrigger(BuildTriggerHandler):
|
|||
def service_name(cls):
|
||||
return 'fakeservice'
|
||||
|
||||
def list_build_sources(self):
|
||||
return [{'first': 'source'}, {'second': self.auth_token}]
|
||||
def list_build_source_namespaces(self):
|
||||
return [
|
||||
{'name': 'first', 'id': 'first'},
|
||||
{'name': 'second', 'id': 'second'},
|
||||
]
|
||||
|
||||
def list_build_sources_for_namespace(self, namespace):
|
||||
if namespace == "first":
|
||||
return [{
|
||||
'name': 'source',
|
||||
}]
|
||||
elif namespace == "second":
|
||||
return [{
|
||||
'name': self.auth_token,
|
||||
}]
|
||||
else:
|
||||
return []
|
||||
|
||||
def list_build_subdirs(self):
|
||||
return [self.auth_token, 'foo', 'bar', self.config['somevalue']]
|
||||
|
@ -3882,8 +3898,9 @@ class TestBuildTriggers(ApiTestCase):
|
|||
trigger_uuid=trigger.uuid),
|
||||
data={'config': trigger_config})
|
||||
|
||||
self.assertEquals('error', analyze_json['status'])
|
||||
self.assertEquals('Could not read the Dockerfile for the trigger', analyze_json['message'])
|
||||
self.assertEquals('warning', analyze_json['status'])
|
||||
self.assertEquals('Specified Dockerfile path for the trigger was not ' +
|
||||
'found on the main branch. This trigger may fail.', analyze_json['message'])
|
||||
|
||||
# Analyze the trigger's dockerfile: Second, missing FROM in dockerfile.
|
||||
trigger_config = {'dockerfile': 'MAINTAINER me'}
|
||||
|
@ -3943,10 +3960,9 @@ class TestBuildTriggers(ApiTestCase):
|
|||
trigger_uuid=trigger.uuid),
|
||||
data={'config': trigger_config})
|
||||
|
||||
self.assertEquals('analyzed', analyze_json['status'])
|
||||
self.assertEquals('requiresrobot', analyze_json['status'])
|
||||
self.assertEquals('devtable', analyze_json['namespace'])
|
||||
self.assertEquals('complex', analyze_json['name'])
|
||||
self.assertEquals(False, analyze_json['is_public'])
|
||||
self.assertEquals(ADMIN_ACCESS_USER + '+dtrobot', analyze_json['robots'][0]['name'])
|
||||
|
||||
|
||||
|
@ -3968,11 +3984,18 @@ class TestBuildTriggers(ApiTestCase):
|
|||
self.assertEquals(trigger.service.name, json['triggers'][0]['service'])
|
||||
self.assertEquals(False, json['triggers'][0]['is_active'])
|
||||
|
||||
# List the trigger's sources.
|
||||
source_json = self.getJsonResponse(BuildTriggerSources,
|
||||
# List the trigger's source namespaces.
|
||||
namespace_json = self.getJsonResponse(BuildTriggerSourceNamespaces,
|
||||
params=dict(repository=ADMIN_ACCESS_USER + '/simple',
|
||||
trigger_uuid=trigger.uuid))
|
||||
self.assertEquals([{'id': 'first', 'name': 'first'}, {'id': 'second', 'name': 'second'}], namespace_json['namespaces'])
|
||||
|
||||
|
||||
source_json = self.postJsonResponse(BuildTriggerSources,
|
||||
params=dict(repository=ADMIN_ACCESS_USER + '/simple',
|
||||
trigger_uuid=trigger.uuid))
|
||||
self.assertEquals([{'first': 'source'}, {'second': 'sometoken'}], source_json['sources'])
|
||||
trigger_uuid=trigger.uuid),
|
||||
data=dict(namespace='first'))
|
||||
self.assertEquals([{'name': 'source'}], source_json['sources'])
|
||||
|
||||
# List the trigger's subdirs.
|
||||
subdir_json = self.postJsonResponse(BuildTriggerSubdirs,
|
||||
|
@ -3980,7 +4003,7 @@ class TestBuildTriggers(ApiTestCase):
|
|||
trigger_uuid=trigger.uuid),
|
||||
data={'somevalue': 'meh'})
|
||||
|
||||
self.assertEquals({'status': 'success', 'subdir': ['sometoken', 'foo', 'bar', 'meh']},
|
||||
self.assertEquals({'status': 'success', 'subdir': ['/sometoken', '/foo', '/bar', '/meh']},
|
||||
subdir_json)
|
||||
|
||||
# Activate the trigger.
|
||||
|
|
Reference in a new issue