From 878fe2f5ea0066aaec048d4ec0159b65aec33f3b Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Tue, 17 Jun 2014 19:45:08 -0400 Subject: [PATCH] Current version of DefCore capability scoring This is the version of the scoring spreadsheet as it appears now. The next changeset includes the proposed changes. Change-Id: I96b59e0e051c6b193a627d0093d3db6b27c10366 --- .../20140617-defcore-capabilities-scoring.rst | 127 ++++++++++++++++++ .../defcore.csv | 75 +++++++++++ .../extract.py | 41 ++++++ 3 files changed, 243 insertions(+) create mode 100644 resolutions/20140617-defcore-capabilities-scoring.rst create mode 100644 resolutions/20140617-defcore-capabilities-scoring/defcore.csv create mode 100644 resolutions/20140617-defcore-capabilities-scoring/extract.py diff --git a/resolutions/20140617-defcore-capabilities-scoring.rst b/resolutions/20140617-defcore-capabilities-scoring.rst new file mode 100644 index 000000000..3cc2cf2b6 --- /dev/null +++ b/resolutions/20140617-defcore-capabilities-scoring.rst @@ -0,0 +1,127 @@ +========================================= + 2014-06-17 DefCore Capabilities Scoring +========================================= + +The DefCore team has put together a scorecard_ combining many criteria +to evaluate which capabilities_ of OpenStack should be considered +core. They have asked the TC to help fill in the "Aligns with +Technical Direction" section, replacing the score in each cell with +either ``0`` (for "not needed") or ``1`` (for "required"). + +The table below includes the three columns from the "Aligns with +Technical Direction" of the original scorecard: + +TC Future Direction + + Does the Technical Committee plan to continue supporting this + feature? + +Complete + + Is the feature currently implemented and fully + working? + +Stable + + Is the API for the feature stable enough to support over a long + period? + +.. + The table below reproduces the "Aligns with Technical Direction" + section of the spreadsheet as it stands on 2014-06-17, based on + ``defcore.csv``. A follow-up changeset will modify this resolution + to reflect the scores of the TC (separate patches will make it + easier to discuss the changes from the original values). + + The ``0.5`` values are placeholders for the "undecided" scores the + DefCore committee needs us to resolve. + + The other ``1`` and ``0`` scores were decided by the DefCore + committee, but as these are technical questions they are also up for + review. We should focus on filling in the missing values first, and + may want a second pass to update the other values. + + The blank fields are for capabilities that won't be included based + on other criteria, so we can score them but don't have to during + this pass. + + +===== ================================= ===================== ========== ======== + Row Candidate Capabilities TC Future Direction Complete Stable +===== ================================= ===================== ========== ======== + 4 compute-servers 1 1 1 + 5 volume 1 1 1 + 6 compute-volume 1 1 1 + 7 compute-quotas 1 1 1 + 8 compute-flavors 0.5 1 1 + 9 images-v1 1 1 1 + 10 compute-auth 0.5 1 1 + 11 images-v2 1 1 1 + 12 objectstore-object 1 1 1 + 13 compute-keypairs 1 1 1 + 14 compute-servers-metadata 1 1 1 + 15 objectstore-container 1 1 1 + 16 volume-snapshots 1 1 1 + 17 compute-images 0 1 1 + 18 compute-floating-ips 0.5 1 1 + 19 compute-instance-actions 1 1 1 + 20 compute-security-groups 0.5 1 1 + 21 compute-image-metadata 0 1 1 + 22 objectstore-container-quota 0.5 1 1 + 23 compute-virtual-interfaces 0.5 1 0 + 24 objectstore-container-acl 0 1 1 + 25 objectstore-acct-services 0 1 1 + 26 objectstore-container-staticweb 0 1 1 + 27 1 1 0 + 28 compute-usage 0 1 1 + 29 compute-limits 1 1 1 + 30 networks-extensions 1 1 1 + 31 networks-l2 1 0 0 + 32 compute-ext-disk-config 0 1 0 + 33 networks-l3 1 0 0 + 34 compute-live-migration 1 0 0 + 35 compute-servers-personality 0 1 1 + 36 networks-floating-ips 1 0 0 + 37 networks-security-groups 1 0 0 + 38 networks-lbaas 1 0 0 + 39 orch-stacks 0 0 0 + 40 compute-multiple-create 0.5 0 0 + 41 networks-vpn 1 0 0 + 42 compute-attach-interface 0 0 0 + 43 networks-quotas 1 0 0 + 44 compute-auth-v3 1 0 0 + 45 compute-volume-proxy 0 + 46 compute-volume-ebs 0 + 47 compute-console-log 1 0 0 + 48 identity-admin-v3-roles 1 0 0 + 49 identity-admin-v3-endpoints 1 0 0 + 50 identity-admin-v3-credentials 1 0 0 + 51 identity-admin-v3-domains 1 0 0 + 52 identity-admin-v3-policies 1 0 0 + 53 identity-admin-v3-users 1 0 0 + 54 identity-admin-v3-services 1 0 0 + 55 identity-admin-v3-tokens 1 0 0 + 56 identity-admin-v3-projects 1 0 0 + 57 volume-multi-backend 1 1 1 + 58 identity-admin-users 0 1 1 + 59 identity-admin-roles 1 1 1 + 60 compute-admin-aggregates 0.5 1 1 + 61 objectstore-quotas 0.5 1 1 + 62 compute-admin-servers-pause 1 1 1 + 63 compute-admin-servers-suspend 1 1 1 + 64 identity-admin-tenants 0 1 0 + 65 compute-admin-avail-zone 0 1 1 + 66 identity-admin-services 1 1 1 + 67 volume-extra-specs 1 1 1 + 68 compute-admin-flavors 0.5 1 1 + 69 compute-admin-server 1 1 1 + 70 compute-admin-services 1 1 1 + 71 compute-admin-fixed-ips 0.5 1 1 + 72 compute-admin-quota 1 1 1 + 73 compute-admin-hypervisor 1 1 1 + 74 compute-admin-hosts 1 1 1 +===== ================================= ===================== ========== ======== + +.. _scorecard: https://docs.google.com/a/dreamhost.com/spreadsheet/ccc?key=0Av62KoL8f9kAdFo4V1ZLUFM0OHlrRnFpQUkxSHJ5QWc&usp=drive_web#gid=6 + +.. _capabilities: https://github.com/stackforge/refstack/tree/master/defcore/havana diff --git a/resolutions/20140617-defcore-capabilities-scoring/defcore.csv b/resolutions/20140617-defcore-capabilities-scoring/defcore.csv new file mode 100644 index 000000000..48e0f273e --- /dev/null +++ b/resolutions/20140617-defcore-capabilities-scoring/defcore.csv @@ -0,0 +1,75 @@ +,,Criteria Weight,8.33,8.33,8.33,8.33,8.33,8.33,8.33,8.33,8.33,8.33,8.33,8.33,0,, +,,,Shows Proven Usage,,,Aligns with Technical Direction,,,Plays Well with Others,,,Takes a System View,,,,, +Candidate Capabilities,Count,Score,Widely Deployed,Used By Tools,Used By Clients,TC Future Direction,Complete,Stable,Discoverable,Doc'd,Core in Last Rel.,Foundational,Atomic,Proximity,Non-Admin,Description,xref +compute-servers,73,100,1,1,1,1,1,1,1,1,1,1,1,1,1,Basic Nova functions (launch instances), +volume,30,100,1,1,1,1,1,1,1,1,1,1,1,1,1,, +compute-volume,16,100,1,1,1,1,1,1,1,1,1,1,1,1,1,Attach/Detach functionality only, +compute-quotas,2,100,1,1,1,1,1,1,1,1,1,1,1,1,1,, +compute-flavors,15,96,1,1,1,0.5,1,1,1,1,1,1,1,1,1,, +images-v1,19,92,1,1,1,1,1,1,1,1,0,1,1,1,1,, +compute-auth,14,92,1,1,1,0.5,1,1,1,0.5,1,1,1,1,1,, +images-v2,5,92,1,1,1,1,1,1,1,1,0,1,1,1,1,, +objectstore-object,17,83,0.5,1,1,1,1,1,0.5,1,0,1,1,1,1,, +compute-keypairs,17,83,1,1,1,1,1,1,1,1,1,0,1,0,1,Injects keys into VMs, +compute-servers-metadata,16,83,1,1,1,1,1,1,1,1,1,1,0,0,1,Tagging, +objectstore-container,5,83,0.5,1,1,1,1,1,0.5,1,0,1,1,1,1,, +volume-snapshots,2,83,1,1,1,1,1,1,1,1,1,0,0,1,1,, +compute-images,37,79,0.5,1,1,0,1,1,1,1,1,0,1,1,1,, +compute-floating-ips,14,79,1,1,1,0.5,1,1,1,1,0,0,1,1,1,, +compute-instance-actions,4,79,1,1,1,1,1,1,1,0.5,0,1,1,0,1,, +compute-security-groups,27,71,1,1,1,0.5,1,1,0,1,0,0,1,1,1,, +compute-image-metadata,12,67,1,0,0,0,1,1,1,1,1,0,1,1,1,allows users add arbitrary keys and values on create, +objectstore-container-quota,3,67,1,0,0,0.5,1,1,0.5,1,1,1,1,0,1,, +compute-virtual-interfaces,2,67,0.5,1,1,0.5,1,0,1,1,0,1,1,0,1,There are COMPETITING VERSIONS that cause Interop pain, +objectstore-container-acl,11,62,1,0,0,0,1,1,0.5,1,1,1,1,0,1,, +objectstore-acct-services,8,62,1,0,0,0,1,1,0.5,1,1,1,1,0,1,, +objectstore-container-staticweb,2,62,1,0,0,0,1,1,0.5,1,1,1,1,0,1,, +,?,58,1,0,0,1,1,0,1,1,0,1,1,0,1,Used w/ middleware (LDAP or AD), +compute-usage,6,58,0,1,0,0,1,1,1,1,0,0,1,1,1,Used by Dashboard, +compute-limits,2,58,1,1,0,1,1,1,1,1,0,0,0,0,1,Works with rate limiting, +networks-extensions,1,58,0,0,0,1,1,1,1,1,0,1,1,0,1,, +networks-l2,14,50,0,0,0,1,0,0,1,1,0,1,1,1,1,, +compute-ext-disk-config,4,50,1,0,1,0,1,0,1,1,0,0,1,0,1,controls how the disk is partitioned when you manage a server,https://github.com/openstack/tempest/blob/master/tempest/api/compute/servers/test_disk_config.py +networks-l3,3,50,0,0,0,1,0,0,1,1,0,1,1,1,1,, +compute-live-migration,3,42,0,0,0,1,0,0,1,1,0,1,1,0,1,, +compute-servers-personality,3,42,1,0,0,0,1,1,1,1,0,0,0,0,1,, +networks-floating-ips,1,37,0,0,0,1,0,0,1,1,0,0.5,1,0,1,,http://docs.openstack.org/admin-guide-cloud/content/l3_workflow.html +networks-security-groups,5,33,0,0,0,1,0,0,1,1,0,0,0,1,1,, +networks-lbaas,12,25,0,0,0,1,0,0,1,1,0,0,0,0,1,,http://docs.openstack.org/admin-guide-cloud/content/fwaas_workflow.html +orch-stacks,20,21,0,0,0,0,0,0,0.5,1,0,1,0,0,1,, +compute-multiple-create,7,21,0,0,0,0.5,0,0,1,0,0,0,0,1,1,, +networks-vpn,3,17,0,0,0,1,0,0,1,0,0,0,0,0,1,, +compute-attach-interface,1,17,0,0,0,0,0,0,1,0,0,0,1,0,1,used to attach NIC to running VM, +networks-quotas,1,17,0,0,0,1,0,0,1,0,0,0,0,0,1,, +compute-auth-v3,1,8,0,0,0,1,0,0,0,0,0,0,0,0,1,, +compute-volume-proxy,?,0,,,,0,,,,,0,,,,,Maps to the old os-volume extensions, +compute-volume-ebs,?,0,,,,0,,,,,0,,,,,, +compute-console-log,1,-17,0,0,0,1,0,0,0,0,0,0,1,0,-1,, +identity-admin-v3-roles,5,-25,0,0,0,1,0,0,0,0,0,1,1,0,-1,, +identity-admin-v3-endpoints,3,-25,0,0,0,1,0,0,0,0,0,1,1,0,-1,, +identity-admin-v3-credentials,2,-25,0,0,0,1,0,0,0,0,0,1,1,0,-1,, +identity-admin-v3-domains,2,-25,0,0,0,1,0,0,0,0,0,1,1,0,-1,, +identity-admin-v3-policies,2,-25,0,0,0,1,0,0,0,0,0,1,1,0,-1,, +identity-admin-v3-users,2,-25,0,0,0,1,0,0,0,0,0,1,1,0,-1,, +identity-admin-v3-services,1,-25,0,0,0,1,0,0,0,0,0,1,1,0,-1,, +identity-admin-v3-tokens,1,-25,0,0,0,1,0,0,0,0,0,1,1,0,-1,, +identity-admin-v3-projects,15,-33,0,0,0,1,0,0,0,0,0,1,1,1,-1,, +volume-multi-backend,2,-42,0,0,0,1,1,1,0,1,0,0,1,0,-1,, +identity-admin-users,31,-54,1,0,0,0,1,1,1,0.5,0,0,1,1,-1,, +identity-admin-roles,23,-58,0,0,0,1,1,1,1,1,0,1,1,0,-1,, +compute-admin-aggregates,18,-62,1,0.5,0.5,0.5,1,1,0,1,0,0,1,1,-1,,https://blueprints.launchpad.net/nova/+spec/host-aggregates +objectstore-quotas,4,-67,1,0,0,0.5,1,1,0.5,1,1,1,1,0,-1,, +compute-admin-servers-pause,3,-67,1,1,0,1,1,1,1,0,0,0,1,1,-1,admin only, +compute-admin-servers-suspend,3,-67,1,1,0,1,1,1,1,0,0,0,1,1,-1,admin only, +identity-admin-tenants,20,-71,1,1,1,0,1,0,1,0.5,0,1,1,1,-1,, +compute-admin-avail-zone,4,-83,1,1,1,0,1,1,1,1,1,1,1,0,-1,, +identity-admin-services,2,-87,1,1,1,1,1,1,1,0.5,0,1,1,1,-1,, +volume-extra-specs,13,-92,1,1,1,1,1,1,0,1,1,1,1,1,-1,, +compute-admin-flavors,24,-96,1,1,1,0.5,1,1,1,1,1,1,1,1,-1,related to compute flavors, +compute-admin-server,11,-96,1,1,1,1,1,1,1,1,1,0.5,1,1,-1,, +compute-admin-services,9,-96,1,1,1,1,1,1,1,1,1,0.5,1,1,-1,, +compute-admin-fixed-ips,8,-96,1,1,1,0.5,1,1,1,1,1,1,1,1,-1,, +compute-admin-quota,9,-100,1,1,1,1,1,1,1,1,1,1,1,1,-1,, +compute-admin-hypervisor,8,-100,1,1,1,1,1,1,1,1,1,1,1,1,-1,, +compute-admin-hosts,7,-100,1,1,1,1,1,1,1,1,1,1,1,1,-1,, +,,,59.42%,48.55%,44.20%,71.13%,68.12%,62.32%,72.46%,71.74%,35.21%,64.49%,84.06%,50.72%,18.84%,, \ No newline at end of file diff --git a/resolutions/20140617-defcore-capabilities-scoring/extract.py b/resolutions/20140617-defcore-capabilities-scoring/extract.py new file mode 100644 index 000000000..60acb39d9 --- /dev/null +++ b/resolutions/20140617-defcore-capabilities-scoring/extract.py @@ -0,0 +1,41 @@ +#!/usr/bin/env python +"""Extract relevant columns. +""" + +import csv +import sys + +with open('defcore.csv', 'r') as infile: + reader = csv.reader(infile) + read_iter = iter(reader) + + # Read past the 2 header lines + read_iter.next() + read_iter.next() + + rows = [[row[0]] + row[6:9] for row in read_iter] + + # Ignore the percentages at the bottom + del rows[-1] + + # Add the spreadsheet row numbers + for i, row in enumerate(rows, 3): + row.insert(0, str(i)) + print rows[0] + rows[0][0] = 'Row' + + # Candidate Capabilities,TC Future Direction,Complete,Stable + widths = [] + for i in range(len(rows[0])): + widths.append(max(len(row[i])+2 for row in rows)) + + fmt = '{0:>%d} {1:<%d} {2:^%d} {3:^%d} {4:^%d}' % tuple(widths) + + header = ' '.join('=' * wid for wid in widths) + + print header + print fmt.format(*rows[0]) + print header + for row in rows[1:]: + print fmt.format(*row) + print header