Merge lp:~fginther/ubuntu-ci-services-itself/add-ticket-manager into lp:ubuntu-ci-services-itself

Proposed by Francis Ginther
Status: Merged
Approved by: Joe Talbott
Approved revision: 8
Merged at revision: 8
Proposed branch: lp:~fginther/ubuntu-ci-services-itself/add-ticket-manager
Merge into: lp:ubuntu-ci-services-itself
Diff against target: 231 lines (+100/-29)
8 files modified
docs/components/landing-manager.rst (+13/-7)
docs/components/planned.rst (+1/-3)
docs/components/project-manager.rst (+24/-7)
docs/components/ticket-environment-setup.rst (+2/-2)
docs/components/ticket-manager.rst (+55/-0)
docs/components/ticket-system.rst (+0/-7)
docs/components/web-server.rst (+3/-3)
docs/index.rst (+2/-0)
To merge this branch: bzr merge lp:~fginther/ubuntu-ci-services-itself/add-ticket-manager
Reviewer Review Type Date Requested Status
Joe Talbott (community) Approve
Review via email: mp+196638@code.launchpad.net

Commit message

Revise component specification for the Project Manager, Ticket Manager and Landing Manager and re-factor content to show relationship of sub-functions (components that were 1st class at one time). Fixed some missing links and resolved associated warnings.

Description of the change

Revise component specification for the Project Manager, Ticket Manager and Landing Manager and re-factor content to show relationship of sub-functions (components that were 1st class at one time). Fixed some missing links and resolved associated warnings.

To post a comment you must log in.
Revision history for this message
Joe Talbott (joetalbott) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'docs/components/landing-manager.rst'
--- docs/components/landing-manager.rst 2013-11-16 10:12:08 +0000
+++ docs/components/landing-manager.rst 2013-11-25 23:34:15 +0000
@@ -17,23 +17,29 @@
17* Project Manager - Provides meta information regarding the project owning a branch (i.e. what trunks to process, which tests to run, etc.). Status updates are sent to the project manager.17* Project Manager - Provides meta information regarding the project owning a branch (i.e. what trunks to process, which tests to run, etc.). Status updates are sent to the project manager.
18* LP Merge Proposal - MPs are the unit of work managed by the trunk delivering system, if the necessary criteria is in place, the MP will be merged to trunk.18* LP Merge Proposal - MPs are the unit of work managed by the trunk delivering system, if the necessary criteria is in place, the MP will be merged to trunk.
19* Branch/Source Builder - MP branches are dispatched to the builder.19* Branch/Source Builder - MP branches are dispatched to the builder.
20* PPA - Location where the build will take place20* PPA - Location where the package build will take place.
21* Integration Test Runner - Runs the specified test (if any) on the MP packages from the PPA21* PPA Assigneer - Provides a single PPA to perform package builds.
22* Archive - The packages are copied to the archive from the PPA on successful completion of testing22* Integration Test Runner - Runs the specified test (if any) on the MP packages from the PPA.
23* Archive - The packages are copied to the archive from the PPA on successful completion of testing.
2324
24*Development Plan:*25*Development Plan:*
2526
26* Define APIs.27* Define APIs.
27* Deploy an instance.28* Deploy an instance.
28* Spawn a build (interact with Branch/Source Builder).29* Spawn an MP build (interact with Branch/Source Builder).
29* Report status (interact with Project Manager and Ticket System).30* Allocate a PPA (interact with PPA Assigner).
31* Monitor a PPA for build status.
32* Report status (interact with Project Manager).
30* Initiate integration tests (interact with Integration Test Service).33* Initiate integration tests (interact with Integration Test Service).
31* Block trunk.34* Ensure that trunk has not changed during execution.
35* Merge an MP to trunk.
32* Binary copy a package from PPA to the archive.36* Binary copy a package from PPA to the archive.
33* Monitor archive for status of package.37* Monitor archive for status of package.
34* Full end-to-end “Direct merge proposal to trunk” success case.38* Full end-to-end “Direct merge proposal to trunk” success case.
35* Handle source build failures.39* Handle source build failures.
36* Handle binary build failures.40* Handle binary build failures.
37* Handle integration test failures.41* Handle integration test failures.
42* Handle trunk changing during execution failures.
43* Handle failure to merge.
38* Handle push to archive failures.44* Handle push to archive failures.
3945* Handle component failure recovery/restart.
4046
=== modified file 'docs/components/planned.rst'
--- docs/components/planned.rst 2013-11-16 10:12:08 +0000
+++ docs/components/planned.rst 2013-11-25 23:34:15 +0000
@@ -5,9 +5,7 @@
5 :maxdepth: 25 :maxdepth: 2
66
7 project-manager7 project-manager
8 ticket-system8 ticket-manager
9 ticket-environment-setup
10 test-database
11 web-server9 web-server
12 branch-listener10 branch-listener
13 ppa-assigner11 ppa-assigner
1412
=== modified file 'docs/components/project-manager.rst'
--- docs/components/project-manager.rst 2013-11-16 10:12:08 +0000
+++ docs/components/project-manager.rst 2013-11-25 23:34:15 +0000
@@ -1,24 +1,41 @@
1Project Manager1Project Manager
2===============2===============
33
4.. toctree::
5 :maxdepth: 2
6
7 ticket-system
8 test-database
9
4*Purpose:*10*Purpose:*
511
6* Contains project centric knowledge such as location of trunk names of integration tests, point of contact, etc. Also knows status of current MPs being built and a queue of MPs to process.12* Brains of the CI system. Contains project centric knowledge such as location of trunk names of integration tests, point of contact, etc. Also knows status of current MPs being built and a queue of MPs to process.
13* The project manager maintains the following sets of data:
14 * The history and status of tickets.
15 * The definition and configuration of individual projects.
16 * The test database.
717
8*Deployment:*18*Deployment:*
919
10* Can run as a juju service.20* Can run as a juju service.
21* Runs as a persistent service, when it goes down, the engine halts.
11* State needs to serialized whenever it is updated, so that status can be regenerated on a restart.22* State needs to serialized whenever it is updated, so that status can be regenerated on a restart.
12* Public facing UI to provide status (or should this export all status to the Web Server)?23* Public facing UI is provided by the Web Server.
13* Most likely a part of the ticket system database
1424
15*Interactions:*25*Interactions:*
1626
27* Ticket Manager - Requests project metadata and provides status updates on tickets active in the CI system.
17* Landing Manager - Requests project metadata and provides updates on status of a branch through the CI system.28* Landing Manager - Requests project metadata and provides updates on status of a branch through the CI system.
29* Web Server - Provides the UI.
1830
19*Development Plan:*31*Development Plan:*
2032
21* Define backend storage33* Define API.
22* Define API34* Define backend ticket storage.
23* Integrate with Landing Manager35* Define backend project specification storage.
2436* Define backend test database storage.
37* Integrate with the Web Server.
38* Integrate with the Landing Manager, supply metadata to build and test a single project and generate an automatic low-cost ticket.
39* Handle status updates from the Landing Manager.
40* Integrate with the Ticket Manager to supply metadata to establish a ticket workflow with multiple projects and tests.
41* Handle status updates from the Ticket Manager.
2542
=== modified file 'docs/components/ticket-environment-setup.rst'
--- docs/components/ticket-environment-setup.rst 2013-11-16 10:12:08 +0000
+++ docs/components/ticket-environment-setup.rst 2013-11-25 23:34:15 +0000
@@ -1,5 +1,5 @@
1Ticket Environment Setup (now just a function of the ticket system)1Ticket Environment Setup (sub-function of Ticket Manager)
2===================================================================2=========================================================
33
4*Purpose:*4*Purpose:*
55
66
=== added file 'docs/components/ticket-manager.rst'
--- docs/components/ticket-manager.rst 1970-01-01 00:00:00 +0000
+++ docs/components/ticket-manager.rst 2013-11-25 23:34:15 +0000
@@ -0,0 +1,55 @@
1Ticket Manager
2==============
3
4.. toctree::
5 :maxdepth: 2
6
7 ticket-environment-setup
8
9*Purpose:*
10
11* Coordinates building, testing and ultimately landing of project feature branches that make up a ticket.
12* Coordinates the landing of multiple components:
13
14 * Ensures that a feature landing is an atomic event
15 * Communicates status as this is done
16 * Provides feedback when something goes wrong and a course of action
17 * Back-out the landing on failure
18
19*Deployment:*
20
21* Can run as a juju service.
22* Needs relationship to Project Manager, Branch Listener, Branch/Source Builder, Image Builder, Integration Test Runner and the Landing Manager.
23* Shouldn’t need to save state, should be able to recreate state upon restart.
24* No public access needed.
25
26*Interactions:*
27
28* Project Manager - Provides meta data regarding the projects and tests to execute for a specific ticket.
29* Branch Listener - Assigned the task of monitoring the feature branches assigened to an MP. New content results in a new build/test cycle.
30* PPA Assigner - Provides two PPAs to perform package builds, one for MPs themselves, another for MPs + trunk.
31* Branch/Source Builder - MP branches are dispatched to the builder.
32* PPAs - Two PPAs are used for performing package builds.
33* Image Builder - Generates up to 3 images to be used for testing: feature branches + base image, feature branches + latest image, feature branches + trunk + latest image.
34* Integration Test Runner - Runs the specified tests on up to 3 images.
35
36*Development Plan:*
37
38* Define APIs.
39* Deploy an instance.
40* Spawn an MP build (interact with Branch/Source Builder).
41* Allocate PPAs (interact with PPA Assigner).
42* Generate feature branches.
43* Submit feature branches to watch (interact with Branch Listener).
44* Report status (interact with Project Manager).
45* Return PPAs.
46* Build an image (interact with Image Builder).
47* Initiate integration tests (interact with Integration Test Service).
48* Implement the "Land Now" button. Dispatch individual trunk merge requests (interact with Landing Manager).
49* Full end-to-end “Workflow II A: feature branch/transitions/fix involving multiple components” success case.
50* Handle source build failures.
51* Handle binary build failures.
52* Handle image build failures.
53* Handle integration test failures.
54* Handle landing failures.
55* Handle component failure recovery/restart.
056
=== modified file 'docs/components/ticket-system.rst'
--- docs/components/ticket-system.rst 2013-11-16 10:12:08 +0000
+++ docs/components/ticket-system.rst 2013-11-25 23:34:15 +0000
@@ -21,13 +21,6 @@
21 * Clear indication of merge/build/test failures and where the failure occurred, make it obvious to developers what a corrective course of action should be21 * Clear indication of merge/build/test failures and where the failure occurred, make it obvious to developers what a corrective course of action should be
22 * Provide a means to execute a landing when all criteria have passed22 * Provide a means to execute a landing when all criteria have passed
2323
24* Coordinates the landing of multiple components:
25
26 * Ensures that a feature landing is an atomic event
27 * Communicates status as this is done
28 * Provides feedback when something goes wrong and a course of action
29 * Back-out the landing on failure
30
31* Provides ticket management:24* Provides ticket management:
3225
33 * list and status of all tickets26 * list and status of all tickets
3427
=== modified file 'docs/components/web-server.rst'
--- docs/components/web-server.rst 2013-11-16 10:12:08 +0000
+++ docs/components/web-server.rst 2013-11-25 23:34:15 +0000
@@ -11,11 +11,11 @@
11*Deployment:*11*Deployment:*
1212
13* Can run as a juju service.13* Can run as a juju service.
14* Needs a relationship to the Ticket System and/or Project Manager.14* Needs a relationship to the Project Manager.
15* Has no internal state, just provides a view to the data in the Ticket System.15* Has no internal state, just provides a view to the data in the Project Manager.
16* Provides public access with authorization to view private data.16* Provides public access with authorization to view private data.
1717
18*Interactions:*18*Interactions:*
1919
20* Ticket System - provides an interface for working with tickets and providing latest status.20* Project Manager - provides an interface for working with tickets and providing latest status.
2121
2222
=== modified file 'docs/index.rst'
--- docs/index.rst 2013-11-18 21:21:22 +0000
+++ docs/index.rst 2013-11-25 23:34:15 +0000
@@ -11,7 +11,9 @@
11.. toctree::11.. toctree::
12 :maxdepth: 212 :maxdepth: 2
1313
14 ticket
14 components15 components
16 api
15 sequence17 sequence
16 risks18 risks
17 timeline19 timeline

Subscribers

People subscribed via source and target branches