From ac692c16378fb9ff1d58f7b9505563c4b4b4d641 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Sat, 21 Apr 2018 02:12:19 +0200 Subject: Add thousands of projects talk --- src/thousands/cp437utf8.py | 69 ++ src/thousands/images/01-gerrit.png | Bin 0 -> 126754 bytes src/thousands/images/02-status1.png | Bin 0 -> 169213 bytes src/thousands/images/03-status2.png | Bin 0 -> 58075 bytes src/thousands/images/04-health.png | Bin 0 -> 40296 bytes src/thousands/images/ansible.ans | 49 ++ src/thousands/images/architecture.ans | 45 ++ src/thousands/images/circle.ans | 49 ++ src/thousands/images/color-gertty.ans | 57 ++ src/thousands/images/convert.sh | 4 + src/thousands/images/crd.ans | 29 + src/thousands/images/cursor.ans | 47 ++ src/thousands/images/cursor2.ans | 47 ++ src/thousands/images/openstack.ans | 51 ++ src/thousands/images/orig/ansible.ans | 49 ++ src/thousands/images/orig/architecture.ans | 45 ++ src/thousands/images/orig/circle.ans | 49 ++ src/thousands/images/orig/color-gertty.ans | 57 ++ src/thousands/images/orig/crd.ans | 29 + src/thousands/images/orig/cursor.ans | 47 ++ src/thousands/images/orig/cursor2.ans | 47 ++ src/thousands/images/orig/openstack.ans | 51 ++ src/thousands/images/orig/questions.ans | 27 + src/thousands/images/orig/redhat.ans | 49 ++ src/thousands/images/orig/startup1.ans | 39 ++ src/thousands/images/orig/startup2.ans | 39 ++ src/thousands/images/orig/td.ans | Bin 0 -> 2433 bytes src/thousands/images/orig/testslide.ans | 49 ++ src/thousands/images/orig/title.ans | 45 ++ src/thousands/images/orig/workflow.ans | 29 + src/thousands/images/orig/zsim-00.ans | 43 ++ src/thousands/images/orig/zsim-01.ans | 43 ++ src/thousands/images/orig/zsim-02.ans | 43 ++ src/thousands/images/orig/zsim-03.ans | 43 ++ src/thousands/images/orig/zsim-04.ans | 43 ++ src/thousands/images/orig/zsim-05.ans | 43 ++ src/thousands/images/orig/zsim-06.ans | 43 ++ src/thousands/images/orig/zsim-07.ans | 43 ++ src/thousands/images/orig/zsim-08.ans | 43 ++ src/thousands/images/orig/zsim-09.ans | 43 ++ src/thousands/images/orig/zsim-10.ans | 43 ++ src/thousands/images/orig/zsim-11.ans | 43 ++ src/thousands/images/orig/zsim-12.ans | 43 ++ src/thousands/images/orig/zsim-13.ans | 43 ++ src/thousands/images/orig/zsim-14.ans | 43 ++ src/thousands/images/orig/zsim-15.ans | 43 ++ src/thousands/images/orig/zsim-16.ans | 43 ++ src/thousands/images/orig/zsim-17.ans | 43 ++ src/thousands/images/orig/zsim-18.ans | 43 ++ src/thousands/images/orig/zsim-19.ans | 43 ++ src/thousands/images/orig/zsim-20.ans | 43 ++ src/thousands/images/orig/zsim-21.ans | 43 ++ src/thousands/images/orig/zsim-22.ans | 43 ++ src/thousands/images/orig/zsim-keyline.ans | 45 ++ src/thousands/images/orig/zuul-status.ans | 49 ++ src/thousands/images/orig/zuul.ans | 43 ++ src/thousands/images/questions.ans | 27 + src/thousands/images/redhat.ans | 49 ++ src/thousands/images/startup1.ans | 39 ++ src/thousands/images/startup2.ans | 39 ++ src/thousands/images/td.ans | Bin 0 -> 2737 bytes src/thousands/images/testslide.ans | 49 ++ src/thousands/images/title.ans | 45 ++ src/thousands/images/workflow.ans | 29 + src/thousands/images/zsim-00.ans | 43 ++ src/thousands/images/zsim-01.ans | 43 ++ src/thousands/images/zsim-02.ans | 43 ++ src/thousands/images/zsim-03.ans | 43 ++ src/thousands/images/zsim-04.ans | 43 ++ src/thousands/images/zsim-05.ans | 43 ++ src/thousands/images/zsim-06.ans | 43 ++ src/thousands/images/zsim-07.ans | 43 ++ src/thousands/images/zsim-08.ans | 43 ++ src/thousands/images/zsim-09.ans | 43 ++ src/thousands/images/zsim-10.ans | 43 ++ src/thousands/images/zsim-11.ans | 43 ++ src/thousands/images/zsim-12.ans | 43 ++ src/thousands/images/zsim-13.ans | 43 ++ src/thousands/images/zsim-14.ans | 43 ++ src/thousands/images/zsim-15.ans | 43 ++ src/thousands/images/zsim-16.ans | 43 ++ src/thousands/images/zsim-17.ans | 43 ++ src/thousands/images/zsim-18.ans | 43 ++ src/thousands/images/zsim-19.ans | 43 ++ src/thousands/images/zsim-20.ans | 43 ++ src/thousands/images/zsim-21.ans | 43 ++ src/thousands/images/zsim-22.ans | 43 ++ src/thousands/images/zsim-keyline.ans | 45 ++ src/thousands/images/zuul-status.ans | 49 ++ src/thousands/images/zuul.ans | 43 ++ src/thousands/start.sh | 8 + src/thousands/thousands.rst | 1001 ++++++++++++++++++++++++++++ 92 files changed, 4636 insertions(+) create mode 100644 src/thousands/cp437utf8.py create mode 100644 src/thousands/images/01-gerrit.png create mode 100644 src/thousands/images/02-status1.png create mode 100644 src/thousands/images/03-status2.png create mode 100644 src/thousands/images/04-health.png create mode 100644 src/thousands/images/ansible.ans create mode 100644 src/thousands/images/architecture.ans create mode 100644 src/thousands/images/circle.ans create mode 100644 src/thousands/images/color-gertty.ans create mode 100755 src/thousands/images/convert.sh create mode 100644 src/thousands/images/crd.ans create mode 100644 src/thousands/images/cursor.ans create mode 100644 src/thousands/images/cursor2.ans create mode 100644 src/thousands/images/openstack.ans create mode 100644 src/thousands/images/orig/ansible.ans create mode 100644 src/thousands/images/orig/architecture.ans create mode 100644 src/thousands/images/orig/circle.ans create mode 100644 src/thousands/images/orig/color-gertty.ans create mode 100644 src/thousands/images/orig/crd.ans create mode 100644 src/thousands/images/orig/cursor.ans create mode 100644 src/thousands/images/orig/cursor2.ans create mode 100644 src/thousands/images/orig/openstack.ans create mode 100644 src/thousands/images/orig/questions.ans create mode 100644 src/thousands/images/orig/redhat.ans create mode 100644 src/thousands/images/orig/startup1.ans create mode 100644 src/thousands/images/orig/startup2.ans create mode 100644 src/thousands/images/orig/td.ans create mode 100644 src/thousands/images/orig/testslide.ans create mode 100644 src/thousands/images/orig/title.ans create mode 100644 src/thousands/images/orig/workflow.ans create mode 100644 src/thousands/images/orig/zsim-00.ans create mode 100644 src/thousands/images/orig/zsim-01.ans create mode 100644 src/thousands/images/orig/zsim-02.ans create mode 100644 src/thousands/images/orig/zsim-03.ans create mode 100644 src/thousands/images/orig/zsim-04.ans create mode 100644 src/thousands/images/orig/zsim-05.ans create mode 100644 src/thousands/images/orig/zsim-06.ans create mode 100644 src/thousands/images/orig/zsim-07.ans create mode 100644 src/thousands/images/orig/zsim-08.ans create mode 100644 src/thousands/images/orig/zsim-09.ans create mode 100644 src/thousands/images/orig/zsim-10.ans create mode 100644 src/thousands/images/orig/zsim-11.ans create mode 100644 src/thousands/images/orig/zsim-12.ans create mode 100644 src/thousands/images/orig/zsim-13.ans create mode 100644 src/thousands/images/orig/zsim-14.ans create mode 100644 src/thousands/images/orig/zsim-15.ans create mode 100644 src/thousands/images/orig/zsim-16.ans create mode 100644 src/thousands/images/orig/zsim-17.ans create mode 100644 src/thousands/images/orig/zsim-18.ans create mode 100644 src/thousands/images/orig/zsim-19.ans create mode 100644 src/thousands/images/orig/zsim-20.ans create mode 100644 src/thousands/images/orig/zsim-21.ans create mode 100644 src/thousands/images/orig/zsim-22.ans create mode 100644 src/thousands/images/orig/zsim-keyline.ans create mode 100644 src/thousands/images/orig/zuul-status.ans create mode 100644 src/thousands/images/orig/zuul.ans create mode 100644 src/thousands/images/questions.ans create mode 100644 src/thousands/images/redhat.ans create mode 100644 src/thousands/images/startup1.ans create mode 100644 src/thousands/images/startup2.ans create mode 100644 src/thousands/images/td.ans create mode 100644 src/thousands/images/testslide.ans create mode 100644 src/thousands/images/title.ans create mode 100644 src/thousands/images/workflow.ans create mode 100644 src/thousands/images/zsim-00.ans create mode 100644 src/thousands/images/zsim-01.ans create mode 100644 src/thousands/images/zsim-02.ans create mode 100644 src/thousands/images/zsim-03.ans create mode 100644 src/thousands/images/zsim-04.ans create mode 100644 src/thousands/images/zsim-05.ans create mode 100644 src/thousands/images/zsim-06.ans create mode 100644 src/thousands/images/zsim-07.ans create mode 100644 src/thousands/images/zsim-08.ans create mode 100644 src/thousands/images/zsim-09.ans create mode 100644 src/thousands/images/zsim-10.ans create mode 100644 src/thousands/images/zsim-11.ans create mode 100644 src/thousands/images/zsim-12.ans create mode 100644 src/thousands/images/zsim-13.ans create mode 100644 src/thousands/images/zsim-14.ans create mode 100644 src/thousands/images/zsim-15.ans create mode 100644 src/thousands/images/zsim-16.ans create mode 100644 src/thousands/images/zsim-17.ans create mode 100644 src/thousands/images/zsim-18.ans create mode 100644 src/thousands/images/zsim-19.ans create mode 100644 src/thousands/images/zsim-20.ans create mode 100644 src/thousands/images/zsim-21.ans create mode 100644 src/thousands/images/zsim-22.ans create mode 100644 src/thousands/images/zsim-keyline.ans create mode 100644 src/thousands/images/zuul-status.ans create mode 100644 src/thousands/images/zuul.ans create mode 100755 src/thousands/start.sh create mode 100644 src/thousands/thousands.rst (limited to 'src/thousands') diff --git a/src/thousands/cp437utf8.py b/src/thousands/cp437utf8.py new file mode 100644 index 0000000..9b1b629 --- /dev/null +++ b/src/thousands/cp437utf8.py @@ -0,0 +1,69 @@ +# _______ +# ____________ _______ _\__ /_________ ___ _____ +# | _ _ \ _ | ____\ _ / | |/ _ \ +# | / / / / | | | /___/ _ | | / / +# |___/___/ /___/____|________|___ | |_| |___|_____/ +# \__/ |___| +# +# +# (c) 2009-2012 Wijnand Modderman-Lenstra +# MIT License +# + +CP437 = ( + u'\u0000', u'\u0001', u'\u0002', u'\u0003', u'\u0004', u'\u0005', + u'\u0006', u'\u0007', u'\u0008', u'\u0009', u'\u000A', u'\u000B', + u'\u000C', u'\u000D', u'\u000E', u'\u000F', u'\u0010', u'\u0011', + u'\u0012', u'\u0013', u'\u0014', u'\u0015', u'\u0016', u'\u0017', + u'\u0018', u'\u0019', u'\u001A', u'\u001B', u'\u001C', u'\u001D', + u'\u001E', u'\u001F', u'\u0020', u'\u0021', u'\u0022', u'\u0023', + u'\u0024', u'\u0025', u'\u0026', u'\u0027', u'\u0028', u'\u0029', + u'\u002A', u'\u002B', u'\u002C', u'\u002D', u'\u002E', u'\u002F', + u'\u0030', u'\u0031', u'\u0032', u'\u0033', u'\u0034', u'\u0035', + u'\u0036', u'\u0037', u'\u0038', u'\u0039', u'\u003A', u'\u003B', + u'\u003C', u'\u003D', u'\u003E', u'\u003F', u'\u0040', u'\u0041', + u'\u0042', u'\u0043', u'\u0044', u'\u0045', u'\u0046', u'\u0047', + u'\u0048', u'\u0049', u'\u004A', u'\u004B', u'\u004C', u'\u004D', + u'\u004E', u'\u004F', u'\u0050', u'\u0051', u'\u0052', u'\u0053', + u'\u0054', u'\u0055', u'\u0056', u'\u0057', u'\u0058', u'\u0059', + u'\u005A', u'\u005B', u'\u005C', u'\u005D', u'\u005E', u'\u005F', + u'\u0060', u'\u0061', u'\u0062', u'\u0063', u'\u0064', u'\u0065', + u'\u0066', u'\u0067', u'\u0068', u'\u0069', u'\u006A', u'\u006B', + u'\u006C', u'\u006D', u'\u006E', u'\u006F', u'\u0070', u'\u0071', + u'\u0072', u'\u0073', u'\u0074', u'\u0075', u'\u0076', u'\u0077', + u'\u0078', u'\u0079', u'\u007A', u'\u007B', u'\u007C', u'\u007D', + u'\u007E', u'\u007F', u'\u00C7', u'\u00FC', u'\u00E9', u'\u00E2', + u'\u00E4', u'\u00E0', u'\u00E5', u'\u00E7', u'\u00EA', u'\u00EB', + u'\u00E8', u'\u00EF', u'\u00EE', u'\u00EC', u'\u00C4', u'\u00C5', + u'\u00C9', u'\u00E6', u'\u00C6', u'\u00F4', u'\u00F6', u'\u00F2', + u'\u00FB', u'\u00F9', u'\u00FF', u'\u00D6', u'\u00DC', u'\u00A2', + u'\u00A3', u'\u00A5', u'\u20A7', u'\u0192', u'\u00E1', u'\u00ED', + u'\u00F3', u'\u00FA', u'\u00F1', u'\u00D1', u'\u00AA', u'\u00BA', + u'\u00BF', u'\u2310', u'\u00AC', u'\u00BD', u'\u00BC', u'\u00A1', + u'\u00AB', u'\u00BB', u'\u2591', u'\u2592', u'\u2593', u'\u2502', + u'\u2524', u'\u2561', u'\u2562', u'\u2556', u'\u2555', u'\u2563', + u'\u2551', u'\u2557', u'\u255D', u'\u255C', u'\u255B', u'\u2510', + u'\u2514', u'\u2534', u'\u252C', u'\u251C', u'\u2500', u'\u253C', + u'\u255E', u'\u255F', u'\u255A', u'\u2554', u'\u2569', u'\u2566', + u'\u2560', u'\u2550', u'\u256C', u'\u2567', u'\u2568', u'\u2564', + u'\u2565', u'\u2559', u'\u2558', u'\u2552', u'\u2553', u'\u256B', + u'\u256A', u'\u2518', u'\u250C', u'\u2588', u'\u2584', u'\u258C', + u'\u2590', u'\u2580', u'\u03B1', u'\u00DF', u'\u0393', u'\u03C0', + u'\u03A3', u'\u03C3', u'\u00B5', u'\u03C4', u'\u03A6', u'\u0398', + u'\u03A9', u'\u03B4', u'\u221E', u'\u03C6', u'\u03B5', u'\u2229', + u'\u2261', u'\u00B1', u'\u2265', u'\u2264', u'\u2320', u'\u2321', + u'\u00F7', u'\u2248', u'\u00B0', u'\u2219', u'\u00B7', u'\u221A', + u'\u207F', u'\u00B2', u'\u25A0', u'\u00A0', +) + +def convert(text): + return u''.join([CP437[ord(char)] for char in text]) + +if __name__ == '__main__': + import sys + if len(sys.argv) < 2: + print >>sys.stderr, '%s ' % (sys.argv[0],) + sys.exit(1) + d = file(sys.argv[1]).read() + out = open(sys.argv[2], 'w') + out.write(convert(d).encode('utf8')) diff --git a/src/thousands/images/01-gerrit.png b/src/thousands/images/01-gerrit.png new file mode 100644 index 0000000..2c8a2c4 Binary files /dev/null and b/src/thousands/images/01-gerrit.png differ diff --git a/src/thousands/images/02-status1.png b/src/thousands/images/02-status1.png new file mode 100644 index 0000000..7b350a8 Binary files /dev/null and b/src/thousands/images/02-status1.png differ diff --git a/src/thousands/images/03-status2.png b/src/thousands/images/03-status2.png new file mode 100644 index 0000000..0b2607d Binary files /dev/null and b/src/thousands/images/03-status2.png differ diff --git a/src/thousands/images/04-health.png b/src/thousands/images/04-health.png new file mode 100644 index 0000000..750d32c Binary files /dev/null and b/src/thousands/images/04-health.png differ diff --git a/src/thousands/images/ansible.ans b/src/thousands/images/ansible.ans new file mode 100644 index 0000000..0cadddf --- /dev/null +++ b/src/thousands/images/ansible.ans @@ -0,0 +1,49 @@ + + + ▄▄▄▄██████▄▄▄▄ + + ▄▄██████████████████▄▄ + + ▄██████████████████████████▄ + + ▄██████████████████████████████▄ + + ▄██████████████████████████████████▄ + + ▄██████████████████ █████████████████▄ + + ▐██████████████████ █████████████████▌ + + ██████████████████ ▄ █████████████████ + + ▐█████████████████ █ ████████████████▌ + + █████████████████ ███ ████████████████ + + ▐████████████████ █████ ███████████████▌ + + ▐███████████████ ▀▀███ ██████████████▌ + + ██████████████ ▄ ▀▀█ █████████████ + + ▐████████████ ████▄▄ ███████████▌ + + ███████████ ████████▄▄ ██████████ + + ▐█████████ █████████████▄ ████████▌ + + ▀███████ ████████████████▄▄▄████████▀ + + ▀██████████████████████████████████▀ + + ▀██████████████████████████████▀ + + ▀██████████████████████████▀ + + ▀▀██████████████████▀▀ + + ▀▀▀▀██████▀▀▀▀ + + + + \ No newline at end of file diff --git a/src/thousands/images/architecture.ans b/src/thousands/images/architecture.ans new file mode 100644 index 0000000..ad308eb --- /dev/null +++ b/src/thousands/images/architecture.ans @@ -0,0 +1,45 @@ + + + + + + + ┌─────────────┐ + + ┌───────┤ Zuul Merger │    + + ┌────┴───┐ └──┬───┬──────┘ + + ┌──┤ Gerrit ├──┐ │ │ + + │ └────────┘ │ ┌─┘ │ + +   │ ┌────────┐ │ │ ┌──┴───┐ ┌───────────────┐ + + ┌─────┼──┤  Web  ├──┼────┤ Zuul ├─────┤ Zuul Executor │  + + ____ │ └────┬───┘ │ │ └──┬───┘ │ ┌───────┐ │ + + |... | │ ┌────┴───┐ │ │ │ │  │Ansible│ │ + + |... | ├──┤ GitHub ├──┼─┘ │ └───┴───┬───┴───┘ + +/______\ │ └────────┘ │ ┌────┴─────┐ │ + + o │ ┌────────┐ │ │ Nodepool │ │ + + -|- └──┤ Finger ├──┘ └────┬─────┘ │ + + / \ └────────┘ │ │ + + Dev Cloud │  │ + +  Node 1 ─────────────┤ + +  ...  │ + +  Node 2 ─────────────┘ + +(Not to scale)   + + \ No newline at end of file diff --git a/src/thousands/images/circle.ans b/src/thousands/images/circle.ans new file mode 100644 index 0000000..291eb33 --- /dev/null +++ b/src/thousands/images/circle.ans @@ -0,0 +1,49 @@ + ▄▄▄▀▀▀▀▄▄▄ + + ▄▄▀▀▀ ▀▀▀▄▄ + + ▄▀▀ ▀▀▄ + + ▄▀ ▀▄ + + ▄▀ ▀▄ + + ▄▀ ▀▄ + + ▄▀ ▀▄ + + █ █ + + █ █ + +▄▀ ▀▄ + +█ █ + +▀▄ ▄▀ + + █ █ + + █ █ + + ▀▄ ▄▀ + + ▀▄ ▄▀ + + ▀▄ ▄▀ + + ▀▄ ▄▀ + + ▀▄▄ ▄▄▀ + + ▀▀▄▄▄ ▄▄▄▀▀ + + ▀▀▀▄▄▄▄▀▀▀ + + + + + + + + \ No newline at end of file diff --git a/src/thousands/images/color-gertty.ans b/src/thousands/images/color-gertty.ans new file mode 100644 index 0000000..7530e70 --- /dev/null +++ b/src/thousands/images/color-gertty.ans @@ -0,0 +1,57 @@ +Change 31337 + +Owner Carol + +Project hello-world + +Branch master + + + +Name Verified Code-Review + +Alice -1  + +Bob   -1  + +Zuul +1 + + + +docs SUCCESS in 2m 37s + +python27 SUCCESS in 13m 21s + + + +Patch Set 1 4f0a5acfb3752dd1d2fb9153e0f3277c9bcc35ad  + +README.txt +2,-0 + +src/hello.py +28,-4 + + + +< Review > < Diff > < Local Checkout > < Local Cherry-Pick > + + + +Alice + + This change seems gratuitous. I like it! + +Bob + + This is a really good start but i have serious concerns about the + + whitespace choices you have made. + + + + + + + + + + \ No newline at end of file diff --git a/src/thousands/images/convert.sh b/src/thousands/images/convert.sh new file mode 100755 index 0000000..9acce64 --- /dev/null +++ b/src/thousands/images/convert.sh @@ -0,0 +1,4 @@ +#!/bin/sh -x + +cd orig +find . -type f -name \*.ans -exec python ../../cp437utf8.py {} ../{} \; diff --git a/src/thousands/images/crd.ans b/src/thousands/images/crd.ans new file mode 100644 index 0000000..4b4436d --- /dev/null +++ b/src/thousands/images/crd.ans @@ -0,0 +1,29 @@ +* nova 1001,12 Add SSH host keys to intance metadata + + Change-ID: I0ac10 + +* devstack 1020,6 Configure nova to return host keys + + Change-ID: I0bc10 + + Depends-On: I0ac10 + +* novaclient 1030,3 Add test that host keys are returned + + Change-ID: I0dc10 + + Depends-On: I0bc10 + +* shade 1040,1 Return host keys on instance creation + + Change-ID: I0ec10 + + Depends-On: I0dc10 + +* nodepool 1050,5 Verify host keys when booting nodes + + Change-ID: I0fc10 + + Depends-On: I0ec10 + + \ No newline at end of file diff --git a/src/thousands/images/cursor.ans b/src/thousands/images/cursor.ans new file mode 100644 index 0000000..6d4d108 --- /dev/null +++ b/src/thousands/images/cursor.ans @@ -0,0 +1,47 @@ +█ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + █ + + \ No newline at end of file diff --git a/src/thousands/images/cursor2.ans b/src/thousands/images/cursor2.ans new file mode 100644 index 0000000..a9fe285 --- /dev/null +++ b/src/thousands/images/cursor2.ans @@ -0,0 +1,47 @@ +█ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + █ + + \ No newline at end of file diff --git a/src/thousands/images/openstack.ans b/src/thousands/images/openstack.ans new file mode 100644 index 0000000..e7a66f4 --- /dev/null +++ b/src/thousands/images/openstack.ans @@ -0,0 +1,51 @@ +  ▄▄▄▄▄▄▄▄▄▄▄  + + ▄▄▄▄▄▄▄▄▄▄▄▄█████████████████████████▄▄ + + █████████████████████████████████████████▄ + +▐█████████████████▄▄▄▄▄▄▄▄▄▄▄▄▄██████████▄█▌ + +▐██████▄███████████████████████████████████▌ + +▐█████▐████████████████████████████████████▌ + +▐██████████████████████████████████████████▌ + + ▀███████████▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀█..██▐███████▌ + + ▄▄..████████▌  ▐ ..█▀▀▀████▌ + +▐███..▀▀▀▀▀██▌ ▐██ █▄▄▄████▌ + +▐█████▄▄▄▄▄██▌ ▐████▐███████▌ + +▐████████████▌ ▐████▐███████▌ + +▐████████████▌ ▐████▐███████▌ + +▐████████████▌ ▐████▐███████▌ + + ▀███████████▌ ▐.. █▐███████▌ + + ▄▄██████████▌  ▄▄▄▄▄████.. ▀▀▀████▌ + +▐██..█████▀▀▀███████████████████████▄▄▄████▌ + +▐███..████▄▄▄██████████████████████████████▌ + +▐████████████▄██████████████▄▄▄▄▄██████████▌ + + █████████████████████████████████████████▀▌ + + ▐██████████████████████████████████████▀▀▀  + + ▐████████████████████████████▀▀▀▀▀▀▀▀▀  + + ▀█▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀  + + + + + + \ No newline at end of file diff --git a/src/thousands/images/orig/ansible.ans b/src/thousands/images/orig/ansible.ans new file mode 100644 index 0000000..8605d51 --- /dev/null +++ b/src/thousands/images/orig/ansible.ans @@ -0,0 +1,49 @@ + + +  + +  + +  + +  + +  + +   + +   + +   + +   + +   + +   + +   + +   + +   + +    + +    + +   + +  + +  + +  + +  + +  + + + + \ No newline at end of file diff --git a/src/thousands/images/orig/architecture.ans b/src/thousands/images/orig/architecture.ans new file mode 100644 index 0000000..94b0720 --- /dev/null +++ b/src/thousands/images/orig/architecture.ans @@ -0,0 +1,45 @@ + + + + + + + Ŀ + + Ĵ Zuul Merger  + +   + +   + +   + +  Ŀ Ŀ Ŀ + + Ĵ Gerrit Ĵ Zuul Ĵ Zuul Launcher  + + ____    Ŀ  + + |... |    Ansible  + + |... |   + +/______\ Ŀ  + + o  Nodepool   + + -|-     + + / \   + + Dev Cloud   + +  Node 1 Ĵ + +  ...   + +  Node 2  + +(Not to scale)   + + \ No newline at end of file diff --git a/src/thousands/images/orig/circle.ans b/src/thousands/images/orig/circle.ans new file mode 100644 index 0000000..d21b2bb --- /dev/null +++ b/src/thousands/images/orig/circle.ans @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/thousands/images/orig/color-gertty.ans b/src/thousands/images/orig/color-gertty.ans new file mode 100644 index 0000000..7530e70 --- /dev/null +++ b/src/thousands/images/orig/color-gertty.ans @@ -0,0 +1,57 @@ +Change 31337 + +Owner Carol + +Project hello-world + +Branch master + + + +Name Verified Code-Review + +Alice -1  + +Bob   -1  + +Zuul +1 + + + +docs SUCCESS in 2m 37s + +python27 SUCCESS in 13m 21s + + + +Patch Set 1 4f0a5acfb3752dd1d2fb9153e0f3277c9bcc35ad  + +README.txt +2,-0 + +src/hello.py +28,-4 + + + +< Review > < Diff > < Local Checkout > < Local Cherry-Pick > + + + +Alice + + This change seems gratuitous. I like it! + +Bob + + This is a really good start but i have serious concerns about the + + whitespace choices you have made. + + + + + + + + + + \ No newline at end of file diff --git a/src/thousands/images/orig/crd.ans b/src/thousands/images/orig/crd.ans new file mode 100644 index 0000000..4b4436d --- /dev/null +++ b/src/thousands/images/orig/crd.ans @@ -0,0 +1,29 @@ +* nova 1001,12 Add SSH host keys to intance metadata + + Change-ID: I0ac10 + +* devstack 1020,6 Configure nova to return host keys + + Change-ID: I0bc10 + + Depends-On: I0ac10 + +* novaclient 1030,3 Add test that host keys are returned + + Change-ID: I0dc10 + + Depends-On: I0bc10 + +* shade 1040,1 Return host keys on instance creation + + Change-ID: I0ec10 + + Depends-On: I0dc10 + +* nodepool 1050,5 Verify host keys when booting nodes + + Change-ID: I0fc10 + + Depends-On: I0ec10 + + \ No newline at end of file diff --git a/src/thousands/images/orig/cursor.ans b/src/thousands/images/orig/cursor.ans new file mode 100644 index 0000000..d9f6da9 --- /dev/null +++ b/src/thousands/images/orig/cursor.ans @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + \ No newline at end of file diff --git a/src/thousands/images/orig/cursor2.ans b/src/thousands/images/orig/cursor2.ans new file mode 100644 index 0000000..93d8570 --- /dev/null +++ b/src/thousands/images/orig/cursor2.ans @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +  + + \ No newline at end of file diff --git a/src/thousands/images/orig/openstack.ans b/src/thousands/images/orig/openstack.ans new file mode 100644 index 0000000..4f689c7 --- /dev/null +++ b/src/thousands/images/orig/openstack.ans @@ -0,0 +1,51 @@ +   + +  + +  + + + + + + + + + + .. + + ..   .. + +..   + +  + +  + +  + +  + +  ..  + +   ..  + +.. + +.. + + + +  + +   + +   + +   + + + + + + \ No newline at end of file diff --git a/src/thousands/images/orig/questions.ans b/src/thousands/images/orig/questions.ans new file mode 100644 index 0000000..ae2e90a --- /dev/null +++ b/src/thousands/images/orig/questions.ans @@ -0,0 +1,27 @@ + + + + + + + + +  + +     + +    + +      + +     + +   + +    + +   + +  + + \ No newline at end of file diff --git a/src/thousands/images/orig/redhat.ans b/src/thousands/images/orig/redhat.ans new file mode 100644 index 0000000..f297fd0 --- /dev/null +++ b/src/thousands/images/orig/redhat.ans @@ -0,0 +1,49 @@ + + +   + +    + +    + +    + +      + +       + +      + +       + +   + +  + +      + +      + +  + +  + +  + +  + +   + +    + +  + +  + +  + + + + + + \ No newline at end of file diff --git a/src/thousands/images/orig/startup1.ans b/src/thousands/images/orig/startup1.ans new file mode 100644 index 0000000..3510a93 --- /dev/null +++ b/src/thousands/images/orig/startup1.ans @@ -0,0 +1,39 @@ + Ŀ + + Zuul + + + + + + Ŀ + + + +Ŀ Ŀ Ŀ Ŀ Ŀ Ŀ Ŀ Ŀ + +zm1 zm2 zm3 zm4 zm5 zm6 zm7 zm8 + + + +nova keyst swift devst tmpst glanc dg projc + + + + + + + + + + + + + + + + + +   + + \ No newline at end of file diff --git a/src/thousands/images/orig/startup2.ans b/src/thousands/images/orig/startup2.ans new file mode 100644 index 0000000..3093800 --- /dev/null +++ b/src/thousands/images/orig/startup2.ans @@ -0,0 +1,39 @@ + Ŀ + + Zuul + + + + + + Ŀ + + + +Ŀ Ŀ Ŀ Ŀ Ŀ Ŀ Ŀ Ŀ + +zm1 zm2 zm3 zm4 zm5 zm6 zm7 zm8 + + + +nova keyst swift devst tmpst glanc dg projc + +mastr newt mitak mastr mastr diabl mastr mastr + + + + + + + + + + + + + + + +   + + \ No newline at end of file diff --git a/src/thousands/images/orig/td.ans b/src/thousands/images/orig/td.ans new file mode 100644 index 0000000..c0c5cd6 Binary files /dev/null and b/src/thousands/images/orig/td.ans differ diff --git a/src/thousands/images/orig/testslide.ans b/src/thousands/images/orig/testslide.ans new file mode 100644 index 0000000..5505907 --- /dev/null +++ b/src/thousands/images/orig/testslide.ans @@ -0,0 +1,49 @@ +ͻ + + Ŀ  + +    + +    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +  Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +   Test Slide  Test Slide    + +    + +    + +  + +ͼ + + \ No newline at end of file diff --git a/src/thousands/images/orig/title.ans b/src/thousands/images/orig/title.ans new file mode 100644 index 0000000..82ef305 --- /dev/null +++ b/src/thousands/images/orig/title.ans @@ -0,0 +1,45 @@ + ______________ .. .. ______________ + +( (  \ \_____)____(_____/ /  ) ) + + \ ) `'   `' ( / + + )/   \( + + /'  REST APIs and the Return of the  `\  + +O   ___ ___ _ _ ___ ___ _ ___   O + +  / __/ _ \| \| / __|/ _ \| | | __|  + + | (_| (_) | .` \__ \ (_) | |__| _|   + +  \___\___/|_|\_|___/\___/|____|___|  + +  + + Application  + +  + +O  James E. Blair   O + + \. ./  + + )\  ,____ ____,  /( + + / ) / ____\ ____ /____ \ ( \ + +( (_________/_/ ) ( \_\_________) ) + + ~-'  `' `'  `-~  + + + + + + + + + + \ No newline at end of file diff --git a/src/thousands/images/orig/workflow.ans b/src/thousands/images/orig/workflow.ans new file mode 100644 index 0000000..067cc56 --- /dev/null +++ b/src/thousands/images/orig/workflow.ans @@ -0,0 +1,29 @@ + Hack Review Test + + ========= ========== ========== + + + + push approve + + +-------------+ +-------------+ + + | | | | + + +------+--+ +--v----+--+ +--v-------+ + + | | | | | | + + | $EDITOR | | Gerrit | | Zuul | + + | | | | | | + + +------^--+ +--+----^--+ +--+-------+ + + | | | | + + +-------------+ +-------------+ + + clone merge + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-00.ans b/src/thousands/images/orig/zsim-00.ans new file mode 100644 index 0000000..4f9ed82 --- /dev/null +++ b/src/thousands/images/orig/zsim-00.ans @@ -0,0 +1,43 @@ +00 Zuul Git + + + + Nova Keystone + + badbeef beefcab + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-01.ans b/src/thousands/images/orig/zsim-01.ans new file mode 100644 index 0000000..a087092 --- /dev/null +++ b/src/thousands/images/orig/zsim-01.ans @@ -0,0 +1,43 @@ +01 Zuul Git + + Ŀ + +  Nova #1 Nova Keystone + + badbeef beefcab + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-02.ans b/src/thousands/images/orig/zsim-02.ans new file mode 100644 index 0000000..8f2938c --- /dev/null +++ b/src/thousands/images/orig/zsim-02.ans @@ -0,0 +1,43 @@ +02 Zuul Git + + Ŀ + +  Nova #1  Nova Keystone + +  badbeef beefcab + +  + +  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-03.ans b/src/thousands/images/orig/zsim-03.ans new file mode 100644 index 0000000..1186441 --- /dev/null +++ b/src/thousands/images/orig/zsim-03.ans @@ -0,0 +1,43 @@ +03 Zuul Git + + Ŀ + +  Nova #1  Nova Keystone + +  badbeef beefcab + +  + +  + + Ŀ + +  Keystone #2 + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-04.ans b/src/thousands/images/orig/zsim-04.ans new file mode 100644 index 0000000..8344a58 --- /dev/null +++ b/src/thousands/images/orig/zsim-04.ans @@ -0,0 +1,43 @@ +04 Zuul Git + + Ŀ + +  Nova #1  Nova Keystone + +  badbeef beefcab + +  + +  + + Ŀ + +  Keystone #2  + +  + +  + +  + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-05.ans b/src/thousands/images/orig/zsim-05.ans new file mode 100644 index 0000000..948d831 --- /dev/null +++ b/src/thousands/images/orig/zsim-05.ans @@ -0,0 +1,43 @@ +05 Zuul Git + + Ŀ + +  Nova #1  Nova Keystone + +  badbeef beefcab + +  + +  + + Ŀ + +  Keystone #2  + +  + +  + +  + + Ŀ + +  Nova #3 + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-06.ans b/src/thousands/images/orig/zsim-06.ans new file mode 100644 index 0000000..be6cf1b --- /dev/null +++ b/src/thousands/images/orig/zsim-06.ans @@ -0,0 +1,43 @@ +06 Zuul Git + + Ŀ + +  Nova #1  Nova Keystone + +  badbeef beefcab + +  + +  + + Ŀ + +  Keystone #2  + +  + +  + +  + + Ŀ + +  Nova #3  + +  + +  + +  + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-07.ans b/src/thousands/images/orig/zsim-07.ans new file mode 100644 index 0000000..e827b4f --- /dev/null +++ b/src/thousands/images/orig/zsim-07.ans @@ -0,0 +1,43 @@ +07 Zuul Git + + Ŀ + +  Nova #1  Nova Keystone + +  badbeef beefcab + +  + +  + + Ŀ + +  Keystone #2  + +  + +  + +  + + Ŀ + +  Nova #3  + +  + +  + +  + + Ŀ + +  Nova #4 + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-08.ans b/src/thousands/images/orig/zsim-08.ans new file mode 100644 index 0000000..e7d5ca5 --- /dev/null +++ b/src/thousands/images/orig/zsim-08.ans @@ -0,0 +1,43 @@ +08 Zuul Git + + Ŀ + +  Nova #1  Nova Keystone + +  badbeef beefcab + +  + +  + + Ŀ + +  Keystone #2  + +  + +  + +  + + Ŀ + +  Nova #3  + +  + +  + +  + + Ŀ + +  Nova #4  + +  + +  + +  . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-09.ans b/src/thousands/images/orig/zsim-09.ans new file mode 100644 index 0000000..c5a6f3a --- /dev/null +++ b/src/thousands/images/orig/zsim-09.ans @@ -0,0 +1,43 @@ +09 Zuul Git + + Ŀ + +  Nova #1  Nova Keystone + +  badbeef beefcab + +  + +  + + Ŀ + +  Keystone #2 FAILURE + +  + +  + +  + + Ŀ + +  Nova #3  + +  + +  + +  + + Ŀ + +  Nova #4  + +  + +  + +  . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-10.ans b/src/thousands/images/orig/zsim-10.ans new file mode 100644 index 0000000..85e80a2 --- /dev/null +++ b/src/thousands/images/orig/zsim-10.ans @@ -0,0 +1,43 @@ +10 Zuul Git + + Ŀ + +  Nova #1  Nova Keystone + +  badbeef beefcab + +  + +  + + Ŀ + +  Keystone #2 FAILURE + +  + +  + +  + + Ŀ + +  Nova #3 CANCELED + + CANCELED + + CANCELED + + CANCELED + + Ŀ + +  Nova #4 CANCELED + + CANCELED + + CANCELED + + CANCELED . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-11.ans b/src/thousands/images/orig/zsim-11.ans new file mode 100644 index 0000000..0a7b7e2 --- /dev/null +++ b/src/thousands/images/orig/zsim-11.ans @@ -0,0 +1,43 @@ +11 Zuul Git + + Ŀ + +  Nova #1  Nova Keystone + +  badbeef beefcab + + Ŀ  + +  + + Ŀ + +  Keystone #2 FAILURE + + SUCCESS + +  + +  + + Ŀ + +  Nova #3 + + + + + + + + Ŀ + +  Nova #4 + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-12.ans b/src/thousands/images/orig/zsim-12.ans new file mode 100644 index 0000000..072d29b --- /dev/null +++ b/src/thousands/images/orig/zsim-12.ans @@ -0,0 +1,43 @@ +12 Zuul Git + + Ŀ + +  Nova #1 SUCCESS Nova Keystone + + SUCCESS badbeef beefcab + + Ŀ  + +  + + Ŀ + +  Keystone #2 FAILURE + + SUCCESS + +  + +  + + Ŀ + +  Nova #3  + +  + +  + +  + + Ŀ + +  Nova #4 + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-13.ans b/src/thousands/images/orig/zsim-13.ans new file mode 100644 index 0000000..cf656e3 --- /dev/null +++ b/src/thousands/images/orig/zsim-13.ans @@ -0,0 +1,43 @@ +13 Zuul Git + + Ŀ + +  Nova #1 SUCCESS Nova Keystone + + SUCCESS badbeef beefcab + + Ŀ  + + SUCCESS + + Ŀ + +  Keystone #2 FAILURE + + SUCCESS + +  + +  + + Ŀ + +  Nova #3  + +  + +  + +  + + Ŀ + +  Nova #4  + +  + +  + +  . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-14.ans b/src/thousands/images/orig/zsim-14.ans new file mode 100644 index 0000000..0151210 --- /dev/null +++ b/src/thousands/images/orig/zsim-14.ans @@ -0,0 +1,43 @@ +14 Zuul Git + + Ŀ + +  Nova #1 SUCCESS Nova Keystone + + SUCCESS badbeef beefcab + + Ŀ SUCCESS + + SUCCESS + + Ŀ + +  Keystone #2 FAILURE + + SUCCESS + +  + +  + + Ŀ + +  Nova #3  + +  + +  + +  + + Ŀ + +  Nova #4  + +  + +  + +  . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-15.ans b/src/thousands/images/orig/zsim-15.ans new file mode 100644 index 0000000..eb63977 --- /dev/null +++ b/src/thousands/images/orig/zsim-15.ans @@ -0,0 +1,43 @@ +15 Zuul Git + + + + Nova Keystone + + badbeef beefcab + + #1 + + + + Ŀ + +  Keystone #2 FAILURE + + SUCCESS + +  + +  + + Ŀ + +  Nova #3  + +  + +  + +  + + Ŀ + +  Nova #4  + +  + +  + +  . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-16.ans b/src/thousands/images/orig/zsim-16.ans new file mode 100644 index 0000000..d007060 --- /dev/null +++ b/src/thousands/images/orig/zsim-16.ans @@ -0,0 +1,43 @@ +16 Zuul Git + + + + Nova Keystone + + badbeef beefcab + + #1 + + + + Ŀ + +  Keystone #2 FAILURE + + SUCCESS + + SUCCESS + + SUCCESS + + Ŀ + +  Nova #3  + +  + +  + +  + + Ŀ + +  Nova #4  + +  + +  + +  . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-17.ans b/src/thousands/images/orig/zsim-17.ans new file mode 100644 index 0000000..14c9258 --- /dev/null +++ b/src/thousands/images/orig/zsim-17.ans @@ -0,0 +1,43 @@ +17 Zuul Git + + + + Nova Keystone + + badbeef beefcab + + #1 + + + + + + + + + + + + + + Ŀ + +  Nova #3  + +  + +  + +  + + Ŀ + +  Nova #4  + +  + +  + +  . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-18.ans b/src/thousands/images/orig/zsim-18.ans new file mode 100644 index 0000000..ed780ea --- /dev/null +++ b/src/thousands/images/orig/zsim-18.ans @@ -0,0 +1,43 @@ +18 Zuul Git + + + + Nova Keystone + + badbeef beefcab + + #1 + + + + + + + + + + + + + + Ŀ + +  Nova #3  SUCCESS  + +  SUCCESS  + +  SUCCESS  + +  SUCCESS  + + Ŀ + +  Nova #4  + +  + +  + +  . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-19.ans b/src/thousands/images/orig/zsim-19.ans new file mode 100644 index 0000000..c82b91c --- /dev/null +++ b/src/thousands/images/orig/zsim-19.ans @@ -0,0 +1,43 @@ +19 Zuul Git + + + + Nova Keystone + + badbeef beefcab + + #1 + + #3 + + + + + + + + + + + + + + + + + + + + + + Ŀ + +  Nova #4  SUCCESS  + +  SUCCESS  + +  + +  SUCCESS  . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-20.ans b/src/thousands/images/orig/zsim-20.ans new file mode 100644 index 0000000..4d75d8b --- /dev/null +++ b/src/thousands/images/orig/zsim-20.ans @@ -0,0 +1,43 @@ +20 Zuul Git + + + + Nova Keystone + + badbeef beefcab + + #1 + + #3 + + + + + + + + + + + + + + + + + + + + + + Ŀ + +  Nova #4  SUCCESS  + +  SUCCESS  + +  SUCCESS  + +  SUCCESS  . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-21.ans b/src/thousands/images/orig/zsim-21.ans new file mode 100644 index 0000000..5847053 --- /dev/null +++ b/src/thousands/images/orig/zsim-21.ans @@ -0,0 +1,43 @@ +21 Zuul Git + + + + Nova Keystone + + badbeef beefcab + + #1 + + #3 + + #4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-22.ans b/src/thousands/images/orig/zsim-22.ans new file mode 100644 index 0000000..3ad7700 --- /dev/null +++ b/src/thousands/images/orig/zsim-22.ans @@ -0,0 +1,43 @@ +22 Zuul Git + + + + Nova Keystone + + badbeef :( + + #1 + + #3 + + #4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/orig/zsim-keyline.ans b/src/thousands/images/orig/zsim-keyline.ans new file mode 100644 index 0000000..a2c3fb5 --- /dev/null +++ b/src/thousands/images/orig/zsim-keyline.ans @@ -0,0 +1,45 @@ + Zuul Git + + + + [X] Nova #1 SUCCESS Nova Keystone + + | SUCCESS * HEAD * HEAD + + |--+ OOOOOOOOO.. + + | | SUCCESS + + | | + + | [X] Keystone #2 FAILURE + + | SUCCESS + + | OOOOOOO.... + + | OOOOOOOOO.. + + | + + [X] Nova #3 OOOOOOO.... + + | OOOOOOO.... + + | OOOOO...... + + | OOOOOO..... + + | + + [X] Nova #4 OOOO....... + + OOOO....... + + OO......... + + OOO........ + + + + \ No newline at end of file diff --git a/src/thousands/images/orig/zuul-status.ans b/src/thousands/images/orig/zuul-status.ans new file mode 100644 index 0000000..d21c0ca --- /dev/null +++ b/src/thousands/images/orig/zuul-status.ans @@ -0,0 +1,49 @@ +  + +  Check   Gate  Post  + +[ ]+-----------------+ [ ]+-----------------+ [ ]+-----------------+ + +   |nova 45:20 | | |nova 45:20 |   |nova 45:20 | + +   |321465 13:37 | | |321465 13:37 |   |321465 13:37 | + + +-----------------+ | +-----------------+ +-----------------+ + + | pep8 SUCCESS| | | pep8 SUCCESS| | pep8 SUCCESS| + + | docs  xx  | | | docs  xx  | | docs  xx  | + + | python27 x  | | | python27 x  | | python27 x  | + + | tempest x  | | | tempest x  | | tempest x  | + + +-----------------+ | +-----------------+ +-----------------+ + + |  Release   + +[ ]+-----------------+  +[ ]+---------------+  + +   |nova 45:20 |  |   |nova 45:20 |  + +   |321465 13:37 |  |   |321465 13:37 |  + + +-----------------+  | +---------------+  + + | pep8 FAILURE|  |    + + | docs  xx  | [ ]+-----------------+   + + | python27 x  |   |nova 45:20 |   + + | tempest x  |   |321465 13:37 |   + + +-----------------+   +-----------------+   + +    + +  + +  + + \ No newline at end of file diff --git a/src/thousands/images/orig/zuul.ans b/src/thousands/images/orig/zuul.ans new file mode 100644 index 0000000..8442c58 --- /dev/null +++ b/src/thousands/images/orig/zuul.ans @@ -0,0 +1,43 @@ +͵ + + Ĵ + +  + + + + + + + +  _____ _ + + |__ / _ _ _| | + + / / | | | | | | | + + / /| |_| | |_| | | + + /____\__,_|\__,_|_| + + + + + + + + + + + +  + + Ĵ + +͵ + + + + + + \ No newline at end of file diff --git a/src/thousands/images/questions.ans b/src/thousands/images/questions.ans new file mode 100644 index 0000000..450e9ac --- /dev/null +++ b/src/thousands/images/questions.ans @@ -0,0 +1,27 @@ + + + + + + + + + ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ + + █ ▄ ▄▄▄▄▄  ▄ █ + + █ ███▀▀██▄ █ + + █ ▀▀  ▄███ █ + + █  ███▀▀ █ + + █ ▀▀ █ + + █ ██▄ █ + + █ ▀ ▀▀▀ ▀ █ + + ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ + + \ No newline at end of file diff --git a/src/thousands/images/redhat.ans b/src/thousands/images/redhat.ans new file mode 100644 index 0000000..ca7597e --- /dev/null +++ b/src/thousands/images/redhat.ans @@ -0,0 +1,49 @@ + + +  ▄████▄▄▄▄███▄▄▄▄ + +  █▀██████████▄ █▄  + + ▐█▄ ▀▀ ▄██████████▄ + + ███ ▄███████████████  + +  ▄▄███   ▀▀██████████████████▄ + +  ██████▄    ▀▀███████████████▌ + +  ▐███████▄   ▀██████████▀ ██▄▄ + + ▐█████████▄▄    █████████▄██████▌  + + ▀████████████▄▄ ███████████████▌ + + ▀▀████████████████████████████▀ + + ▐██▄   ▀▀█████████████████████▀  + +  ▀███▄██▄  ▀▀▀▀████████▀▀▀▀  + + ▄▄██▄ █████▄ ▄▄ ▄▄ ▄▄▄  + + ████████▄▄▄███████▄▄███████████  + + █████████████████████▄▄▀▀▄███▌ ▄▄  + + ▀███████████████████████████ █████  + + ▀███████████████████████▀ ▄▄████▀   + + ▀████████████████████▀ ▄█████▀    + + ▀██████████████████████▀  + + ▀███████████████▀▀  + + ▀▀▀█████▀▀▀  + + + + + + \ No newline at end of file diff --git a/src/thousands/images/startup1.ans b/src/thousands/images/startup1.ans new file mode 100644 index 0000000..c657cdb --- /dev/null +++ b/src/thousands/images/startup1.ans @@ -0,0 +1,39 @@ + ┌──────┐ + + │ Zuul │ + + └──┬───┘ + + │ + + ┌─────┬─────┬─────┬──┴──┬─────┬─────┬─────┐ + + │ │ │ │ │ │ │ │ + +┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ + +│zm1│ │zm2│ │zm3│ │zm4│ │zm5│ │zm6│ │zm7│ │zm8│ + +└───┘ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ + +nova keyst swift devst tmpst glanc dg projc + + + + + + + + + + + + + + + + + +   + + \ No newline at end of file diff --git a/src/thousands/images/startup2.ans b/src/thousands/images/startup2.ans new file mode 100644 index 0000000..65e44fb --- /dev/null +++ b/src/thousands/images/startup2.ans @@ -0,0 +1,39 @@ + ┌──────┐ + + │ Zuul │ + + └──┬───┘ + + │ + + ┌─────┬─────┬─────┬──┴──┬─────┬─────┬─────┐ + + │ │ │ │ │ │ │ │ + +┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ ┌─┴─┐ + +│zm1│ │zm2│ │zm3│ │zm4│ │zm5│ │zm6│ │zm7│ │zm8│ + +└───┘ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ └───┘ + +nova keyst swift devst tmpst glanc dg projc + +mastr newt mitak mastr mastr diabl mastr mastr + + + + + + + + + + + + + + + +   + + \ No newline at end of file diff --git a/src/thousands/images/td.ans b/src/thousands/images/td.ans new file mode 100644 index 0000000..dcbf243 Binary files /dev/null and b/src/thousands/images/td.ans differ diff --git a/src/thousands/images/testslide.ans b/src/thousands/images/testslide.ans new file mode 100644 index 0000000..f2feea4 --- /dev/null +++ b/src/thousands/images/testslide.ans @@ -0,0 +1,49 @@ +╔══════════════════════════════════════════════════════════════════╗ + +║ ┌──────────────────────────────────────────────────────────────┐ ║ + +║ │ │ ║ + +║ │ │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │ Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │  Test Slide  Test Slide  │ ║ + +║ │ │ ║ + +║ │ │ ║ + +║ └──────────────────────────────────────────────────────────────┘ ║ + +╚══════════════════════════════════════════════════════════════════╝ + + \ No newline at end of file diff --git a/src/thousands/images/title.ans b/src/thousands/images/title.ans new file mode 100644 index 0000000..c784327 --- /dev/null +++ b/src/thousands/images/title.ans @@ -0,0 +1,45 @@ + ______________ .──. .──. ______________ + +( (  \ \_____)____(_____/ /  ) ) + + \ ) `─────'   `─────' ( / + + )/   \( + + /'  REST APIs and the Return of the  `\  + +O   ___ ___ _ _ ___ ___ _ ___   O + +│  / __/ _ \| \| / __|/ _ \| | | __| │ + +│ | (_| (_) | .` \__ \ (_) | |__| _|  │ + +│  \___\___/|_|\_|___/\___/|____|___| │ + +│ │ + +│ Application │ + +│ │ + +O  James E. Blair   O + + \. ./  + + )\  ,____ ____,  /( + + / ) / ____\ ____ /____ \ ( \ + +( (_________/_/ ) ( \_\_________) ) + + ~-'  `──' `──'  `-~  + + + + + + + + + + \ No newline at end of file diff --git a/src/thousands/images/workflow.ans b/src/thousands/images/workflow.ans new file mode 100644 index 0000000..067cc56 --- /dev/null +++ b/src/thousands/images/workflow.ans @@ -0,0 +1,29 @@ + Hack Review Test + + ========= ========== ========== + + + + push approve + + +-------------+ +-------------+ + + | | | | + + +------+--+ +--v----+--+ +--v-------+ + + | | | | | | + + | $EDITOR | | Gerrit | | Zuul | + + | | | | | | + + +------^--+ +--+----^--+ +--+-------+ + + | | | | + + +-------------+ +-------------+ + + clone merge + + \ No newline at end of file diff --git a/src/thousands/images/zsim-00.ans b/src/thousands/images/zsim-00.ans new file mode 100644 index 0000000..bbfdc82 --- /dev/null +++ b/src/thousands/images/zsim-00.ans @@ -0,0 +1,43 @@ +00 Zuul Git + + + + Nova Keystone + + ■badbeef ■beefcab + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-01.ans b/src/thousands/images/zsim-01.ans new file mode 100644 index 0000000..742a968 --- /dev/null +++ b/src/thousands/images/zsim-01.ans @@ -0,0 +1,43 @@ +01 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 Nova Keystone + + └───┘ ■badbeef ■beefcab + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-02.ans b/src/thousands/images/zsim-02.ans new file mode 100644 index 0000000..28809c2 --- /dev/null +++ b/src/thousands/images/zsim-02.ans @@ -0,0 +1,43 @@ +02 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 █████████ Nova Keystone + + └───┘ █████████ ■badbeef ■beefcab + + █████████ + + █████████ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-03.ans b/src/thousands/images/zsim-03.ans new file mode 100644 index 0000000..c6a2bfd --- /dev/null +++ b/src/thousands/images/zsim-03.ans @@ -0,0 +1,43 @@ +03 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 █████████ Nova Keystone + + └─┬─┘ █████████ ■badbeef ■beefcab + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Keystone #2 + + └───┘ + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-04.ans b/src/thousands/images/zsim-04.ans new file mode 100644 index 0000000..8893ed8 --- /dev/null +++ b/src/thousands/images/zsim-04.ans @@ -0,0 +1,43 @@ +04 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 █████████ Nova Keystone + + └─┬─┘ █████████ ■badbeef ■beefcab + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Keystone #2 █████████ + + └───┘ █████████ + + █████████ + + █████████ + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-05.ans b/src/thousands/images/zsim-05.ans new file mode 100644 index 0000000..be3cd9e --- /dev/null +++ b/src/thousands/images/zsim-05.ans @@ -0,0 +1,43 @@ +05 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 █████████ Nova Keystone + + └─┬─┘ █████████ ■badbeef ■beefcab + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Keystone #2 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #3 + + └───┘ + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-06.ans b/src/thousands/images/zsim-06.ans new file mode 100644 index 0000000..64de1d6 --- /dev/null +++ b/src/thousands/images/zsim-06.ans @@ -0,0 +1,43 @@ +06 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 █████████ Nova Keystone + + └─┬─┘ █████████ ■badbeef ■beefcab + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Keystone #2 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #3 █████████ + + └───┘ █████████ + + █████████ + + █████████ + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-07.ans b/src/thousands/images/zsim-07.ans new file mode 100644 index 0000000..6a34279 --- /dev/null +++ b/src/thousands/images/zsim-07.ans @@ -0,0 +1,43 @@ +07 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 █████████ Nova Keystone + + └─┬─┘ █████████ ■badbeef ■beefcab + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Keystone #2 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #3 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #4 + + └───┘ + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-08.ans b/src/thousands/images/zsim-08.ans new file mode 100644 index 0000000..318c67b --- /dev/null +++ b/src/thousands/images/zsim-08.ans @@ -0,0 +1,43 @@ +08 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 █████████ Nova Keystone + + └─┬─┘ █████████ ■badbeef ■beefcab + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Keystone #2 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #3 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #4 █████████ + + └───┘ █████████ + + █████████ + + █████████ . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-09.ans b/src/thousands/images/zsim-09.ans new file mode 100644 index 0000000..441979f --- /dev/null +++ b/src/thousands/images/zsim-09.ans @@ -0,0 +1,43 @@ +09 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 █████████ Nova Keystone + + └─┬─┘ █████████ ■badbeef ■beefcab + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Keystone #2 FAILURE + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #3 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #4 █████████ + + └───┘ █████████ + + █████████ + + █████████ . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-10.ans b/src/thousands/images/zsim-10.ans new file mode 100644 index 0000000..818789e --- /dev/null +++ b/src/thousands/images/zsim-10.ans @@ -0,0 +1,43 @@ +10 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 █████████ Nova Keystone + + └─┬─┘ █████████ ■badbeef ■beefcab + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Keystone #2 FAILURE + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #3 CANCELED + + └─┬─┘ CANCELED + + │ CANCELED + + │ CANCELED + + ┌─┴─┐ + + │▐█▌│ Nova #4 CANCELED + + └───┘ CANCELED + + CANCELED + + CANCELED . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-11.ans b/src/thousands/images/zsim-11.ans new file mode 100644 index 0000000..ddb8bde --- /dev/null +++ b/src/thousands/images/zsim-11.ans @@ -0,0 +1,43 @@ +11 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 █████████ Nova Keystone + + └─┬─┘ █████████ ■badbeef ■beefcab + + └──┐ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Keystone #2 FAILURE + + └───┘ SUCCESS + + █████████ + + █████████ + + ┌───┐ + + │▐█▌│ Nova #3 + + └─┬─┘ + + │ + + │ + + ┌─┴─┐ + + │▐█▌│ Nova #4 + + └───┘ + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-12.ans b/src/thousands/images/zsim-12.ans new file mode 100644 index 0000000..69eef26 --- /dev/null +++ b/src/thousands/images/zsim-12.ans @@ -0,0 +1,43 @@ +12 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 SUCCESS Nova Keystone + + └─┬─┘ SUCCESS ■badbeef ■beefcab + + ├──┐ █████████ + + │ │ █████████ + + │┌─┴─┐ + + ││▐█▌│ Keystone #2 FAILURE + + │└───┘ SUCCESS + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #3 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #4 + + └───┘ + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-13.ans b/src/thousands/images/zsim-13.ans new file mode 100644 index 0000000..5b8b54b --- /dev/null +++ b/src/thousands/images/zsim-13.ans @@ -0,0 +1,43 @@ +13 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 SUCCESS Nova Keystone + + └─┬─┘ SUCCESS ■badbeef ■beefcab + + ├──┐ █████████ + + │ │ SUCCESS + + │┌─┴─┐ + + ││▐█▌│ Keystone #2 FAILURE + + │└───┘ SUCCESS + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #3 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #4 █████████ + + └───┘ █████████ + + █████████ + + █████████ . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-14.ans b/src/thousands/images/zsim-14.ans new file mode 100644 index 0000000..f0ec335 --- /dev/null +++ b/src/thousands/images/zsim-14.ans @@ -0,0 +1,43 @@ +14 Zuul Git + + ┌───┐ + + │▐█▌│ Nova #1 SUCCESS Nova Keystone + + └─┬─┘ SUCCESS ■badbeef ■beefcab + + ├──┐ SUCCESS + + │ │ SUCCESS + + │┌─┴─┐ + + ││▐█▌│ Keystone #2 FAILURE + + │└───┘ SUCCESS + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #3 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #4 █████████ + + └───┘ █████████ + + █████████ + + █████████ . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-15.ans b/src/thousands/images/zsim-15.ans new file mode 100644 index 0000000..5ea15df --- /dev/null +++ b/src/thousands/images/zsim-15.ans @@ -0,0 +1,43 @@ +15 Zuul Git + + + + Nova Keystone + + ■badbeef ■beefcab + + ■#1 + + + + │┌───┐ + + ││▐█▌│ Keystone #2 FAILURE + + │└───┘ SUCCESS + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #3 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #4 █████████ + + └───┘ █████████ + + █████████ + + █████████ . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-16.ans b/src/thousands/images/zsim-16.ans new file mode 100644 index 0000000..0d18c1b --- /dev/null +++ b/src/thousands/images/zsim-16.ans @@ -0,0 +1,43 @@ +16 Zuul Git + + + + Nova Keystone + + ■badbeef ■beefcab + + ■#1 + + + + │┌───┐ + + ││▐█▌│ Keystone #2 FAILURE + + │└───┘ SUCCESS + + │ SUCCESS + + │ SUCCESS + + ┌─┴─┐ + + │▐█▌│ Nova #3 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #4 █████████ + + └───┘ █████████ + + █████████ + + █████████ . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-17.ans b/src/thousands/images/zsim-17.ans new file mode 100644 index 0000000..b301dc8 --- /dev/null +++ b/src/thousands/images/zsim-17.ans @@ -0,0 +1,43 @@ +17 Zuul Git + + + + Nova Keystone + + ■badbeef ■beefcab + + ■#1 + + + + + + + + + + + + + + ┌───┐ + + │▐█▌│ Nova #3 █████████ + + └─┬─┘ █████████ + + │ █████████ + + │ █████████ + + ┌─┴─┐ + + │▐█▌│ Nova #4 █████████ + + └───┘ █████████ + + █████████ + + █████████ . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-18.ans b/src/thousands/images/zsim-18.ans new file mode 100644 index 0000000..da25c2e --- /dev/null +++ b/src/thousands/images/zsim-18.ans @@ -0,0 +1,43 @@ +18 Zuul Git + + + + Nova Keystone + + ■badbeef ■beefcab + + ■#1 + + + + + + + + + + + + + + ┌───┐ + + │▐█▌│ Nova #3  SUCCESS  + + └─┬─┘  SUCCESS  + + │  SUCCESS  + + │  SUCCESS  + + ┌─┴─┐ + + │▐█▌│ Nova #4 █████████ + + └───┘ █████████ + + █████████ + + █████████ . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-19.ans b/src/thousands/images/zsim-19.ans new file mode 100644 index 0000000..14b9e51 --- /dev/null +++ b/src/thousands/images/zsim-19.ans @@ -0,0 +1,43 @@ +19 Zuul Git + + + + Nova Keystone + + ■badbeef ■beefcab + + ■#1 + + ■#3 + + + + + + + + + + + + + + + + + + + + + + ┌───┐ + + │▐█▌│ Nova #4  SUCCESS  + + └───┘  SUCCESS  + + █████████ + +  SUCCESS  . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-20.ans b/src/thousands/images/zsim-20.ans new file mode 100644 index 0000000..e1a3b8c --- /dev/null +++ b/src/thousands/images/zsim-20.ans @@ -0,0 +1,43 @@ +20 Zuul Git + + + + Nova Keystone + + ■badbeef ■beefcab + + ■#1 + + ■#3 + + + + + + + + + + + + + + + + + + + + + + ┌───┐ + + │▐█▌│ Nova #4  SUCCESS  + + └───┘  SUCCESS  + +  SUCCESS  + +  SUCCESS  . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-21.ans b/src/thousands/images/zsim-21.ans new file mode 100644 index 0000000..ccfeef2 --- /dev/null +++ b/src/thousands/images/zsim-21.ans @@ -0,0 +1,43 @@ +21 Zuul Git + + + + Nova Keystone + + ■badbeef ■beefcab + + ■#1 + + ■#3 + + ■#4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-22.ans b/src/thousands/images/zsim-22.ans new file mode 100644 index 0000000..8be6db5 --- /dev/null +++ b/src/thousands/images/zsim-22.ans @@ -0,0 +1,43 @@ +22 Zuul Git + + + + Nova Keystone + + ■badbeef :( + + ■#1 + + ■#3 + + ■#4 + + + + + + + + + + + + + + + + + + + + + + + + + + + + . + + \ No newline at end of file diff --git a/src/thousands/images/zsim-keyline.ans b/src/thousands/images/zsim-keyline.ans new file mode 100644 index 0000000..a2c3fb5 --- /dev/null +++ b/src/thousands/images/zsim-keyline.ans @@ -0,0 +1,45 @@ + Zuul Git + + + + [X] Nova #1 SUCCESS Nova Keystone + + | SUCCESS * HEAD * HEAD + + |--+ OOOOOOOOO.. + + | | SUCCESS + + | | + + | [X] Keystone #2 FAILURE + + | SUCCESS + + | OOOOOOO.... + + | OOOOOOOOO.. + + | + + [X] Nova #3 OOOOOOO.... + + | OOOOOOO.... + + | OOOOO...... + + | OOOOOO..... + + | + + [X] Nova #4 OOOO....... + + OOOO....... + + OO......... + + OOO........ + + + + \ No newline at end of file diff --git a/src/thousands/images/zuul-status.ans b/src/thousands/images/zuul-status.ans new file mode 100644 index 0000000..d21c0ca --- /dev/null +++ b/src/thousands/images/zuul-status.ans @@ -0,0 +1,49 @@ +  + +  Check   Gate  Post  + +[ ]+-----------------+ [ ]+-----------------+ [ ]+-----------------+ + +   |nova 45:20 | | |nova 45:20 |   |nova 45:20 | + +   |321465 13:37 | | |321465 13:37 |   |321465 13:37 | + + +-----------------+ | +-----------------+ +-----------------+ + + | pep8 SUCCESS| | | pep8 SUCCESS| | pep8 SUCCESS| + + | docs  xx  | | | docs  xx  | | docs  xx  | + + | python27 x  | | | python27 x  | | python27 x  | + + | tempest x  | | | tempest x  | | tempest x  | + + +-----------------+ | +-----------------+ +-----------------+ + + |  Release   + +[ ]+-----------------+  +[ ]+---------------+  + +   |nova 45:20 |  |   |nova 45:20 |  + +   |321465 13:37 |  |   |321465 13:37 |  + + +-----------------+  | +---------------+  + + | pep8 FAILURE|  |    + + | docs  xx  | [ ]+-----------------+   + + | python27 x  |   |nova 45:20 |   + + | tempest x  |   |321465 13:37 |   + + +-----------------+   +-----------------+   + +    + +  + +  + + \ No newline at end of file diff --git a/src/thousands/images/zuul.ans b/src/thousands/images/zuul.ans new file mode 100644 index 0000000..6369083 --- /dev/null +++ b/src/thousands/images/zuul.ans @@ -0,0 +1,43 @@ +══════════════════════╡│││╞═════════════════════ + + ────────────────────┤│├─────────────────── + + ──────────────────│───────────────── + + + + + + + +  _____ _ + + |__ / _ _ _| | + + / / | | | | | | | + + / /| |_| | |_| | | + + /____\__,_|\__,_|_| + + + + + + + + + + + + ──────────────────│───────────────── + + ────────────────────┤│├─────────────────── + +══════════════════════╡│││╞═════════════════════ + + + + + + \ No newline at end of file diff --git a/src/thousands/start.sh b/src/thousands/start.sh new file mode 100755 index 0000000..9eaf8b6 --- /dev/null +++ b/src/thousands/start.sh @@ -0,0 +1,8 @@ +#!/bin/sh + +mate-terminal --geometry 68x24 -x presentty $(pwd)/zuul.rst & +#geeqie -t images & + +sleep 1 + +mate-terminal --maximize -x presentty-console $(pwd)/zuul.rst & diff --git a/src/thousands/thousands.rst b/src/thousands/thousands.rst new file mode 100644 index 0000000..ec20202 --- /dev/null +++ b/src/thousands/thousands.rst @@ -0,0 +1,1001 @@ +. display in 68x24 +.. display in 88x24 + +.. pygments yaml? (only file breaks (---) tinted) +.. slide on high level v3 changes +.. slide on nodepool + +.. transition:: dissolve + :duration: 0.4 + +Test Slide +========== +.. hidetitle:: + +.. ansi:: images/testslide.ans + +Testing Thousands of Python Projects Every Day +============================================== + +Red Hat +======= + +.. hidetitle:: +.. container:: handout + + * I work for Red Hat in the CTO Office as the Chief Architect + for CI/CD + +.. ansi:: images/redhat.ans + +OpenStack +========= + +.. container:: handout + + * I work on OpenStack. + * I sit on the Board of Directors. I was on the Technical Committee + +.. hidetitle:: +.. ansi:: images/openstack.ans + +OpenStack Infra +=============== + +.. container:: handout + + * My primary technical role with OpenStack is working on the OpenStack CI + system. + +:: + + "most insane CI infrastructure I've ever been a part of" + + -- Alex Gaynor + + "OpenStack Infra are like the SpaceX of CI" + + -- Emily Dunham + +tl;dr +===== + + * multi repo + * integrated deliverable + * gated commits + * open tooling + * nobody is special + * there is no Dana, only Zuul + +OpenStack Is +============ + + * Federated + * Distributed + * Large + * Open + * Not Alone + +Federated +========= + + * Hundreds of involved companies + * No 'main' company + * "Decisions are made by those who show up" + * Union of priorities/use cases + +Impact of being Federated +========================= + + * No company can appoint humans to project positions + * The project cannot fire anyone + * Variable background of contributors + * Heavy reliance on consensus-oriented democracy + +Distributed +=========== + + * There is no office + * Contributor base is global + * Multitude of contributor backgrounds + +Impact of being Distributed +=========================== + + * Constantly at odds with American Exceptionalism + * Tooling must empower all contributors, regardless of background, + skill level or cultural context + * Heavy preference for text-based communication + * Cannot assume US-centric needs or solutions + +Large numbers of +================ + + * Contributors (\~2k in any given 6 month period) + * Changes + * Code Repositories (1904 as of this morning) + +OpenStack Scale Comparison +========================== + + * 2KJPH (2,000 jobs per hour) + * Build Nodes from 13 Regions of 5 Public and 2 Private OpenStack Clouds + * Rackspace, Internap, OVH, Vexxhost, CityCloud and Linaro, Limestone + * 10,000 changes merged per month + +OpenStack Scale Comparison +========================== + + * 2KJPH (2,000 jobs per hour) + * Nodes from 12 Regions of 5 Public and 1 Private OpenStack Clouds + * Rackspace, Internap, OVH, Vexxhost, CityCloud and Linaro, Limestone + * 10,000 changes merged per month + + By comparison, our friends at the amazing project Ansible received + 13,000 changes and had merged 8,000 of them in its first 4 years. + +Four Opens +========== + + * Open Source + (we don't hold back Enterprise features, we don't cripple things) + * Open Design + (design process open to all, decisions are not made inside company doors) + * Open Development + (public source code, public code review, all code is reviewed and gated) + * Open Community + (lazy consensus, democratic leadership from participants, + public logged meetings in IRC, public archived mailing lists) + +Nobody is Special +================= + + * No dictators + * Aggressively egalitarian + * No "pay for play" + +Fifth Open - Four Opens Applied to the Infrastructure +===================================================== + + * All tools must be Open Source + * Any external services must by Open Source + * Strongly avoid single-vendor + +All Tools are Open Source +========================= + +.. hidetitle:: + +No Developer is ever be required to use a proprietary tool +to work on OpenStack. + +Sixth Open - Four Opens Applied to Operations +============================================= + + * Ops driven by git/code-review - not by humans running commands + * Run as many things CD as possible + * Infrastructure team operates the same as the project + * Core reviewer status and root access are earned + * Human-initiated ops actions (running commands, clicking a UI) are a bug + * Keys/secrets are not Open :) + +We're Not Alone +=============== + + * Dependencies (libvirt/kvm/xen, mysql/pg, rabbit, + python/javascript, ceph/gluster, ansible/salt/puppet/chef, ovs/odl) + * Adjacencies (kubernetes, ansible, terraform, opnfv, spinnaker) + * Vendors (plugins, products, services, distros) + +Lessons from a massive, openly-developed project +================================================ + + Thierry Carrez is speaking at 14:45 today with more on this. + +Developer Process In a Nutshell +=============================== + + * Code Review - nobody has direct commit/push access + * 3rd-Party CI for vendors + * Gated Commits + +Gated Commits +============= + +:: + + Hack Review Test + ========= ========== ========== + + push approve + +-------------+ +-------------+ + | | | | + +------+--+ +--v----+--+ +--v-------+ + | | | | | | + | $EDITOR | | Gerrit | | Zuul | + | | | | | | + +------^--+ +--+----^--+ +--+-------+ + | | | | + +-------------+ +-------------+ + clone merge + +Gating +====== + +Every change proposed for a repository is tested before it merges. + +Co-gating +========= + +Changes to a set of repositories merge monotonically such +that each change is tested with the current state of all +other related repositories before it merges. + +Parallel Co-gating +================== + +Changes are serialized such that each change is tested +with all of the changes ahead of it to satisfy the +gating requirement while being able to run tests for +multiple changes simultaneously. + +Zuul +==== + + * Custom-written multi-repo parallel co-gating engine + * When to run + * Where to run it + * With what git states + * How to respond to results + +Zuul Architecture +================= + +.. ansi:: images/architecture.ans + +Zuul is written in Python 3.5 +============================= + +Not just for OpenStack +====================== + + * Zuul v3 is in production for OpenStack (in OpenStack VMs) + + Also running at: + + * BMW (control plane in OpenShift) + * Godaddy (control plane in Kubernetes) + * OpenContrail + * OpenLab + * others ... + +Zuul is not a general purpose automation framework +================================================== + +Zuul in a nutshell +================== + + * Listens for code events + * Prepares appropriate job config and git repo states + * Allocates nodes for test jobs + * Pushes git repo states to nodes + * Runs user-defined Ansible playbooks + * Collects/reports results + * Potentially merges change + +Zuul Simulation +=============== +.. transition:: pan +.. container:: handout + + * That was a lot of words - let's walk through it one step at a time + * Here we have two git repos, called nova and keystone, and their + current HEAD state + +.. ansi:: images/zsim-00.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * A change is approved for Nova + +.. ansi:: images/zsim-01.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * Zuul starts running jobs for it + * The tests will test the current state of nova and keystone PLUS this nova + change + +.. ansi:: images/zsim-02.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * A change is approved for Keystone + +.. ansi:: images/zsim-03.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * The tests will test the current state of nova and keystone PLUS this nova + change + +.. ansi:: images/zsim-04.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-05.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-06.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-07.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-08.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-09.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-10.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-11.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-12.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-13.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-14.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-15.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-16.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-17.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-18.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-19.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-20.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-21.ans + +Zuul Simulation +=============== +.. transition:: cut +.. container:: handout + + * todo + +.. ansi:: images/zsim-22.ans + +Jobs +==== + +* Jobs run on nodes from nodepool (static or dynamic) +* Metadata defined in Zuul's configuration +* Execution content in Ansible (with live streaming!) +* Jobs may be defined centrally or in the repo being tested +* Jobs have contextual variants that simplify configuration + +Shared Job Configs +================== + +* Job config repos are all in git +* Designed to support directly sharing job configurations +* git.zuul-ci.org/zuul-jobs repo is a 'standard library' + to be directly shared between zuul installations + +Job +=== + +.. code:: yaml + + - job: + name: base + parent: null + description: | + The base job for Zuul. + timeout: 1800 + nodeset: + nodes: + - name: primary + label: centos-7 + pre-run: playbooks/base/pre.yaml + post-run: + - playbooks/base/post-ssh.yaml + - playbooks/base/post-logs.yaml + secrets: + - site_logs + +Simple Job +========== + +.. code:: yaml + + - job: + name: tox + pre-run: playbooks/setup-tox.yaml + run: playbooks/tox.yaml + post-run: playbooks/fetch-tox-output.yaml + + - job: + name: tox-py27 + parent: tox + vars: + tox_envlist: py27 + +Playbooks +========= + +* Jobs run Ansible playbooks +* Playbooks may be defined centrally or in the repo being tested +* Playbooks can use roles from current or other Zuul repos + (or Galaxy, coming soon) +* Playbooks are run on the zuul-executor using bubblewrap + https://github.com/projectatomic/bubblewrap +* Playbooks are not allowed to execute content on 'localhost' + +Devstack-gate / Tempest Playbook +================================ + +.. code:: yaml + + # devstack-gate / tempest playbook + hosts: all + roles: + - setup-multinode-networking + - partition-swap + - configure-mirrors + - run-devstack + - run-tempest + +Simple Shell Playbook +===================== + +.. code:: yaml + + hosts: controller + tasks: + - shell: ./run_tests.sh + +Test Like Production +==================== + +If you use Ansible for deployment, your test and deployment processes +and playbooks are the same + +What if you don't use Ansible? +============================== + +OpenStack Infra Control Plane uses Puppet +========================================= + +.. code:: yaml + + # In git.openstack.org/openstack-infra/project-config/roles/legacy-install-afs-with-puppet/tasks/main.yaml + - name: Install puppet + shell: ./install_puppet.sh + args: + chdir: "{{ ansible_user_dir }}/src/git.openstack.org/openstack-infra/system-config" + environment: + # Skip setting up pip, our images have already done this. + SETUP_PIP: "false" + become: yes + + - name: Copy manifest + copy: + src: manifest.pp + dest: "{{ ansible_user_dir }}/manifest.pp" + + - name: Run puppet + puppet: + manifest: "{{ ansible_user_dir }}/manifest.pp" + become: yes + + +Cross-Project Example Problem +============================= + + * User reports bug in shade - auto_ip is not discovering their NAT properly + * Two fixes, one to detection algorithm, one to config override + * Config override requires adding support to os-client-config + * Once support is added to os-client-config, it can be consumed in shade + * How do we integration test this without releasing os-client-config? + +Cross-Project Dependencies +========================== + +Testing or gating dependencies (including jobs) manually specified by +developers + +.. container:: progressive + + * shade https://review.openstack.org/513913/ + + Add unittest tips jobs + + Change-ID: I5b411be5c5aa43535fa89a51d6099aadd7a8ea60 + * os-client-config https://review.openstack.org/513915 + + Add shade-tox-tips jobs + + Change-ID: Ie3e9a4deca1d74b94e810e87e130706fe15fe2c9 + + Depends-On: https://review.openstack.org/513913/ + * os-client-config https://review.openstack.org/513751/ + + Added nat_source flag for networks + + Change-ID: I3d8dd6d734a1013d2d4a43e11c3538c3a345820b + + * shade https://review.openstack.org/#/c/513914 + + Add support for configured NAT source variable + + Change-Id: I4b50c2323a487b5ce90f9d38a48be249cfb739c5 + + Depends-On: https://review.openstack.org/513914 + +shade: Add unittest tips jobs +============================= + +* In git.openstack.org/openstack-infra/shade/.zuul.yaml: + +.. code:: yaml + + - job: + name: shade-tox-py27-tips + parent: openstack-tox-py27 + description: | + Run tox python 27 unittests against master of important libs + required-projects: + - openstack-infra/shade + - openstack/keystoneauth + - openstack/os-client-config + + - job: + name: shade-tox-py35-tips + parent: openstack-tox-py35 + description: | + Run tox python 35 unittests against master of important libs + required-projects: + - openstack-infra/shade + - openstack/keystoneauth + - openstack/os-client-config + +shade: Add unittest tips project-template +========================================= + +* In git.openstack.org/openstack-infra/shade/.zuul.yaml: + +.. code:: yaml + + - project-template: + name: shade-tox-tips + check: + jobs: + - shade-tox-py27-tips + - shade-tox-py35-tips + gate: + jobs: + - shade-tox-py27-tips + - shade-tox-py35-tips + +shade: Add unittest tips project-template to project +==================================================== + +* In git.openstack.org/openstack-infra/shade/.zuul.yaml: + +.. code:: yaml + + - project: + templates: + - publish-to-pypi + - publish-openstack-sphinx-docs + - shade-tox-tips + +os-client-config: Add shade-tox-tips jobs +========================================= + +* In git.openstack.org/openstack/os-client-config/.zuul.yaml: + +.. code:: yaml + + - project: + templates: + - shade-tox-tips + +os-client-config: Add nat_source flag for networks +================================================== + +:: + + diff --git a/os_client_config/cloud_config.py b/os_client_config/cloud_config.py + index 2e97629..d1a6983 100644 + --- a/os_client_config/cloud_config.py + +++ b/os_client_config/cloud_config.py + @@ -581,3 +581,10 @@ class CloudConfig(object): + if net['nat_destination']: + return net['name'] + return None + + + + def get_nat_source(self): + + """Get network used for NAT source.""" + + for net in self.config['networks']: + + if net.get('nat_source'): + + return net['name'] + + return None + +shade: Add support for configured NAT source variable +===================================================== + +:: + + Zuul 10-21 13:57 + Patch Set 5: Verified-1 + Build failed. + openstack-tox-pep8 SUCCESS in 2m 29s + openstack-tox-py27 FAILURE in 2m 34s + build-openstack-releasenotes SUCCESS in 2m 47s + openstack-tox-py35 FAILURE in 2m 41s + openstack-tox-cover POST_FAILURE in 3m 52s (non-voting) + build-openstack-sphinx-docs SUCCESS in 2m 57s + shade-tox-py27-tips SUCCESS in 3m 18s + shade-tox-py35-tips SUCCESS in 2m 28s + +OpenStack Github Support for Cross Community Testing +==================================================== + + * OpenStack does not use Github, but other people do + * Github App "OpenStack Zuul" + * App added to github project by project admin + * Project aded to OpenStack's main.yaml + * Test interactions between OpenStack and important adjacent communities + * https://github.com/ansible/ansible/pull/20974 + +Cross Source Dependencies +========================= + +.. container:: progressive + + * shade https://review.openstack.org/539563 + + Shift voting flag and test_matrix_branch for ansible-devel job + + Change-ID: Ic9d3983de641dbe618c65b2cbf2dcfa3686575df + + * ansible https://github.com/ansible/ansible/pull/34925 + + continue fact gathering even without dmidecode + + * ansible https://github.com/ansible/ansible/pull/20974 + + Make a generalized OpenStack cloud constructor + + Depends-On: https://review.openstack.org/539563 + Depends-On: https://github.com/ansible/ansible/pull/34925 + +Nodesets for Multi-node Jobs +============================ + +.. code:: yaml + + - nodeset: + name: ceph-cluster + nodes: + - name: controller + label: centos-7 + - name: compute1 + label: fedora-26 + - name: compute2 + label: fedora-26 + groups: + - name: ceph-osd + nodes: + - controller + - name: ceph-monitor + nodes: + - controller + - compute1 + - compute2 + +Multi-node Job +============== + +* nodesets are provided to Ansible for jobs in inventory + +.. code:: yaml + + - job: + name: ceph-multinode + nodeset: ceph-cluster + run: playbooks/install-ceph.yaml + +Multi-node Ceph Job Content +=========================== + +.. code:: yaml + + - hosts: all + roles: + - install-ceph + - hosts: ceph-osd + roles: + - start-ceph-osd + - hosts: ceph-monitor + roles: + - start-ceph-monitor + - hosts: all + roles: + - do-something-interesting + +Projects +======== + +* Projects are git repositories +* Specify a set of jobs for each pipeline +* golang git repo naming as been adopted: + +:: + + zuul@ubuntu-xenial:~$ find /home/zuul/src -mindepth 3 -maxdepth 3 -type d + /home/zuul/src/git.openstack.org/openstack-infra/shade + /home/zuul/src/git.openstack.org/openstack/keystoneauth + /home/zuul/src/git.openstack.org/openstack/os-client-config + /home/zuul/src/github.com/ansible/ansible + +Project with Job Dependencies +============================= + +.. code:: yaml + + # In git.openstack.org/openstack-infra/project-config: + - project: + name: openstack/nova + release: + jobs: + - build-artifacts + - upload-tarball: + dependencies: build-artifacts + - upload-pypi: + dependencies: build-artifacts + - notify-mirror: + dependencies: + - upload-tarball + - upload-pypi + +Secrets +======= + +* Inspired by Kubernetes Secrets API +* Projects can add named encrypted secrets to their .zuul.yaml file +* Jobs can request to use secrets by name +* Jobs using secrets are not reconfigured speculatively +* Secrets can only be used by the same project they are defined in +* Public key per project: + ``{{ zuul_url }}/tenant/{{ tenant }}/key/{{ project }}.pub`` + +Secret Example (note, no admins had to enable this) +=================================================== + +.. code:: yaml + + # In git.openstack.org/openstack/loci/.zuul.yaml: + - secret: + name: loci_docker_login + data: + user: !encrypted/pkcs1-oaep + - r8Nbpq5olmfLF035BZ/CUoFLIdhvBi/49KuochOAHbvns+xMiho3C7MEFzYDqJX3IhHde + BICYOgK7qnyINOIZL2e7pl75rEdHQwJjSFUMkpdY6wEP7f9hpolj9xVp0ifHUVQqPHMRn + zoPFd8MEAHxH5GLmc2SWJ98E/QUqGltxBi1YRSZoCcNtq3tHFK5Y+xQlLhIseJ2HkpDs6 + YXOGP9Qt4Va6sdyBcA90H+apSAcYA3Duu962ySZQAsYNui/3NQq3gLA+OZeyTJtcrh4hj + Rb5dBnDWfSrMpxdNkbPXXgbQaxO3T0L4jbaOF8VKEsiI9olBrOeV2M9ddYJjSsHGj4XR8 + 4vwS0+doB7np93fujiDuHVgdG8R40NW2GznyKRlRtzAORla7Mzw1Y1MokcUyY6p1LlLLl + wUuWYCCEuRciOPhZXQ2u42qju/zrK2/dPnO8HfUINSrN0WbNq14ZwPpbj0ro02oGPbtwu + OTw1z+N0Nc+GuLWlwYJGYM/z0UnvDR3WEBc2kXbVev9w4n0cB3RyphML2PDZZWbw8tjnX + h1VsAOJ0Qo4qq1K/ft95ypd+vtjkfepEgHEBmJNwutJa9IHAkGfrkO9VkpUTPpfffnPwz + d0/zaaadNl6MLQUSutRwY23YIIbv+fmukxw2vnJmvn6abkBlMya7KgtifwNA8c= + password: !encrypted/pkcs1-oaep + - gUEX4eY3JAk/Xt7Evmf/hF7xr6HpNRXTibZjrKTbmI4QYHlzEBrBbHey27Pt/eYvKKeKw + hk8MDQ4rNX7ZK1v+CKTilUfOf4AkKYbe6JFDd4z+zIZ2PAA7ZedO5FY/OnqrG7nhLvQHE + 5nQrYwmxRp4O8eU5qG1dSrM9X+bzri8UnsI7URjqmEsIvlUqtybQKB9qQXT4d6mOeaKGE + 5h6Ydkb9Zdi4Qh+GpCGDYwHZKu1mBgVK5M1G6NFMy1DYz+4NJNkTRe9J+0TmWhQ/KZSqo + 4ck0x7Tb0Nr7hQzV8SxlwkaCTLDzvbiqmsJPLmzXY2jry6QsaRCpthS01vnj47itoZ/7p + taH9CoJ0Gl7AkaxsrDSVjWSjatTQpsy1ub2fuzWHH4ASJFCiu83Lb2xwYts++r8ZSn+mA + hbEs0GzPI6dIWg0u7aUsRWMOB4A+6t2IOJibVYwmwkG8TjHRXxVCLH5sY+i3MR+NicR9T + IZFdY/AyH6vt5uHLQDU35+5n91pUG3F2lyiY5aeMOvBL05p27GTMuixR5ZoHcvSoHHtCq + 7Wnk21iHqmv/UnEzqUfXZOque9YP386RBWkshrHd0x3OHUfBK/WrpivxvIGBzGwMr2qAj + /AhJsfDXKBBbhGOGk1u5oBLjeC4SRnAcIVh1+RWzR4/cAhOuy2EcbzxaGb6VTM= + +Secret Example +============== + +.. code:: yaml + + # In git.openstack.org/openstack/loci/.zuul.yaml: + - job: + name: publish-loci-cinder + parent: loci-cinder + post-run: playbooks/push + secrets: + - loci_docker_login + + # In git.openstack.org/openstack/loci/playbooks/push.yaml: + - hosts: all + tasks: + - include_vars: vars.yaml + + - name: Push project to DockerHub + block: + - command: docker login -u {{ loci_docker_login.user }} -p {{ loci_docker_login.password }} + no_log: True + - command: docker push openstackloci/{{ project }}:{{ branch }}-{{ item.name }} + with_items: "{{ distros }}" + + +What's Next? +============ + +* shared job doc generation +* node providers + * kuberenetes + * OCI/docker + * Mac Stadium (for our Ansible friends) + * ec2 +* native container/kubernetes job execution + +Important Links +=============== + +* https://zuul-ci.org/ +* https://git.openstack.org/cgit/openstack-infra/zuul +* https://docs.openstack.org/infra/zuul +* https://docs.openstack.org/infra/manual/zuulv3.html +* https://docs.openstack.org/infra/zuul-jobs/ +* https://docs.openstack.org/infra/openstack-zuul-jobs/ +* https://storyboard.openstack.org/#!/project/679 +* https://storyboard.openstack.org/#!/board/41 +* freenode:#zuul + +Questions +========= + +.. ansi:: images/questions.ans + +Presentty +========= +.. hidetitle:: +.. transition:: pan +.. figlet:: Presentty + +* Console presentations written in reStructuredText +* Cross-fade, pan, tilt, cut transitions +* Figlet, cowsay! +* https://pypi.python.org/pypi/presentty -- cgit v1.2.3