Add close-election utility and archive rendering
* close-election [ptl|tc] generate a yaml archive in doc/source * docs render the results pages based on the archive * add documentation about the whole election officials process Change-Id: I8f737f33befc1e8af52dac9c059f73e2874eb5f8
This commit is contained in:
parent
045f550d5e
commit
72e0775ae7
2
.gitignore
vendored
2
.gitignore
vendored
@ -14,3 +14,5 @@ candidates/events.rst
|
||||
.projects*yaml
|
||||
.projects*.pkl
|
||||
.testrepository
|
||||
doc/source/archive_toc.rst
|
||||
doc/source/*/*.rst
|
||||
|
119
README.rst
119
README.rst
@ -1,13 +1,112 @@
|
||||
==================
|
||||
openstack/election
|
||||
==================
|
||||
|
||||
This repository contains OpenStack Elections reference documents
|
||||
and track candidate lists and elections' results.
|
||||
and tooling to run elections.
|
||||
|
||||
Directory structure:
|
||||
|
||||
candidates/
|
||||
<OpenStack codename>/ e.g mitaka (case matters)
|
||||
<Project>/ e.g Nova (case matters)
|
||||
<Candidate_Name>.txt
|
||||
TC/
|
||||
<Candidate_Name>.txt
|
||||
results/
|
||||
Only edititable by the Election officials
|
||||
Election officials process
|
||||
==========================
|
||||
|
||||
Preparation
|
||||
-----------
|
||||
|
||||
A month before election starts:
|
||||
|
||||
* Prepare new election, e.g.:
|
||||
* tox -evenv -- new-election.py pike
|
||||
* Edit elections details (timeline, cycle timeframe):
|
||||
* edit configuration.yaml
|
||||
* Update index.rst to include ptl.rst
|
||||
* Commit to update website
|
||||
|
||||
A couple of weeks before election starts
|
||||
* Send 'First announce'
|
||||
|
||||
|
||||
PTL Candidacy round
|
||||
-------------------
|
||||
|
||||
When PTL Candidacy start
|
||||
* Send 'Opening PTL candidacy round'
|
||||
|
||||
During the PTL Candidacy round:
|
||||
* Validate candidacy, e.g.:
|
||||
* tox -evenv -- check-new-candidacy, or
|
||||
* tox -evenv -- check-candidacy change_id
|
||||
* To +2 a candidate:
|
||||
* check commit link is indeed valid
|
||||
* check filename is ircname
|
||||
* cursory check the candidacy statement
|
||||
* To +Workflow, checks the previous +2 details, find another commits using --limit 5 (optionals)
|
||||
|
||||
* Check candidate list and fixes badly generated name using the exception.txt file
|
||||
|
||||
A couple of days before the candidacy submission ends:
|
||||
* Render statistics and send 'Motivation call for PTL candidacy round', e.g.:
|
||||
* tox -evenv -- render-statistics
|
||||
|
||||
When PTL Candidacy submission ends:
|
||||
* Send 'PTL nomination ending'
|
||||
|
||||
|
||||
PTL Election round
|
||||
------------------
|
||||
|
||||
When PreferredEmailDeadLine is reached:
|
||||
* Generate ATC rolls, e.g.:
|
||||
* ./tools/generate-rolls.sh
|
||||
|
||||
When PTL Election begins:
|
||||
* Create CIVS page ( https://wiki.openstack.org/wiki/Election_Officiating_Guidelines#Running_the_election_itself )
|
||||
* Upload rolls
|
||||
* Send 'PTL election opening'
|
||||
|
||||
A couple of days before the PTL Election ends:
|
||||
* Send 'PTL vote motivation call'
|
||||
|
||||
When PTL Election ends:
|
||||
* close the election and udpate the results:
|
||||
* tox -evenv -- close-election ptl
|
||||
* edit doc/sources/pike/ptl.yaml
|
||||
* update index.rst to include tc.rst instead of ptl.rst
|
||||
* Commit the change and review the results
|
||||
* Send 'PTL results'
|
||||
|
||||
|
||||
TC Candidacy round
|
||||
------------------
|
||||
|
||||
When TC Candidacy starts:
|
||||
* Send 'TC Candidacy Opening'
|
||||
|
||||
During the TC Candidacy round:
|
||||
* To +2 a candidate:
|
||||
* check candidate profile using http://www.openstack.org/community/members/
|
||||
* check filename is ircname
|
||||
* cursory check the candidacy statement
|
||||
* To +Workflow, check the previous +2 details
|
||||
|
||||
A couple of days before the candidacy submission ends:
|
||||
* Send 'Motivation call for TC Candidacy round'
|
||||
|
||||
When TC Candidacy submission ends:
|
||||
* Send 'TC nomiation ending'
|
||||
|
||||
|
||||
TC Election round
|
||||
-----------------
|
||||
* Create CIVS page
|
||||
* Upload rolls
|
||||
* Send 'TC election opening'
|
||||
|
||||
A couple of days before the TC Election ends:
|
||||
* Send 'TC vote motivation call'
|
||||
|
||||
When TC Election ends:
|
||||
* close the election and update the results:
|
||||
* tox -e venv -- close-election tc
|
||||
* edit doc/source/pike/tc.yaml
|
||||
* Commit the change and review the results
|
||||
* Send 'TC results'
|
||||
|
@ -15,6 +15,7 @@
|
||||
|
||||
import os
|
||||
import urllib
|
||||
import yaml
|
||||
|
||||
from jinja2 import FileSystemLoader
|
||||
from jinja2.environment import Environment
|
||||
@ -44,11 +45,54 @@ def render_list(list_type, candidates_list):
|
||||
)
|
||||
|
||||
|
||||
def build_archive(serie, list_type):
|
||||
db_file = os.path.join(".", "doc", "source", serie, "%s.yaml" % list_type)
|
||||
if not os.path.isfile(db_file):
|
||||
return
|
||||
db = yaml.safe_load(open(db_file))
|
||||
# Check for appointed or incumbent footnote
|
||||
db['tags'] = {}
|
||||
for project in db['projects']:
|
||||
for candidate in db['candidates'][project]:
|
||||
if candidate['elected'] == 'TC-APPOINTED':
|
||||
db['tags']['TC-APPOINTED'] = True
|
||||
elif candidate['elected'] == 'INCUMBENT-PTL':
|
||||
db['tags']['INCUMBENT-PTL'] = True
|
||||
output = os.path.join(".", "doc", "source", serie, "%s.rst" % list_type)
|
||||
template_name = "%s_archive.jinja" % list_type
|
||||
template_dir = os.path.join(".", "doc", "source", "_exts")
|
||||
with open(output, "w") as out:
|
||||
out.write(
|
||||
render_template(
|
||||
template_name,
|
||||
db,
|
||||
template_dir=template_dir
|
||||
).encode('utf-8')
|
||||
)
|
||||
return True
|
||||
|
||||
|
||||
def build_lists(app):
|
||||
# Current candidates
|
||||
candidates_list = utils.build_candidates_list()
|
||||
render_list("ptl", candidates_list)
|
||||
render_list("tc", candidates_list)
|
||||
|
||||
# Archived elections
|
||||
previous_toc = [
|
||||
".. toctree::",
|
||||
" :maxdepth: 1",
|
||||
" :titlesonly:",
|
||||
""
|
||||
]
|
||||
for previous in utils.PAST_ELECTIONS:
|
||||
if build_archive(previous, "ptl"):
|
||||
previous_toc.append(" %s/ptl.rst" % previous)
|
||||
if build_archive(previous, "tc"):
|
||||
previous_toc.append(" %s/tc.rst" % previous)
|
||||
toc = os.path.join(".", "doc", "source", "archive_toc.rst")
|
||||
open(toc, "w").write("\n".join(previous_toc))
|
||||
|
||||
|
||||
def setup(app):
|
||||
app.info('loading candidates extension')
|
||||
|
41
doc/source/_exts/ptl_archive.jinja
Normal file
41
doc/source/_exts/ptl_archive.jinja
Normal file
@ -0,0 +1,41 @@
|
||||
======================
|
||||
{{ election.capitalize() }} PTL
|
||||
======================
|
||||
|
||||
{% for project in projects %}
|
||||
* {{ project.replace('_', ' ') }}
|
||||
|
||||
{% for candidate in candidates[project] %}{% if candidate['elected'] and 'url' in candidate %}
|
||||
* `{{ candidate['fullname'] }} ({{ candidate['ircname'] }}) <{{ candidate['url'] }}>`_
|
||||
{% elif candidate['elected'] %}
|
||||
* {{ candidate['fullname'] }} ({{ candidate['ircname'] }}) {% if candidate['elected'] == 'INCUMBENT-PTL' %}[#IncumbentPTL]_{% else %}[#TCAppointed]_{% endif %}
|
||||
{% endif %}{% endfor %}
|
||||
|
||||
{% endfor %}
|
||||
|
||||
{% if 'TC-APPOINTED' in tags %}
|
||||
.. [#TCAppointed] By TC Appointment
|
||||
{% endif %}
|
||||
{% if 'INCUMBENT-PTL' in tags %}
|
||||
.. [#IncumbentPTL] Incumbent PTL
|
||||
{% endif %}
|
||||
|
||||
Results
|
||||
-------
|
||||
{% for project in projects %}{% if project in elections_results %}
|
||||
|
||||
* `{{ project }} <{{ elections_results[project] }}>`_
|
||||
{% endif %}{% endfor %}
|
||||
|
||||
|
||||
{{ election.capitalize() }} PTL Candidates
|
||||
======================
|
||||
|
||||
{% for project in projects %}
|
||||
* {{ project.replace('_', ' ') }}
|
||||
|
||||
{% for candidate in candidates[project] %}{% if 'url' in candidate %}
|
||||
* `{{ candidate['fullname'] }} ({{ candidate['ircname'] }}) <{{ candidate['url'] }}>`_
|
||||
{% endif %}{% endfor %}
|
||||
|
||||
{% endfor %}
|
16
doc/source/_exts/tc_archive.jinja
Normal file
16
doc/source/_exts/tc_archive.jinja
Normal file
@ -0,0 +1,16 @@
|
||||
======================
|
||||
{{ election.capitalize() }} elected TC members
|
||||
======================
|
||||
{% for candidate in candidates['TC'] %}{% if candidate['elected'] %}
|
||||
* `{{ candidate['fullname'] }} ({{ candidate['ircname'] }}) <{{ candidate['url'] }}>`_
|
||||
{% endif %}{% endfor %}
|
||||
|
||||
Results
|
||||
-------
|
||||
* `TC <{{ elections_results['TC'] }}>`_
|
||||
|
||||
{{ election.capitalize() }} TC Candidates
|
||||
======================
|
||||
{% for candidate in candidates['TC'] %}
|
||||
* `{{ candidate['fullname'] }} ({{ candidate['ircname'] }}) <{{ candidate['url'] }}>`_
|
||||
{% endfor %}
|
@ -17,10 +17,12 @@ Below is the official list of candidates for the current round.
|
||||
.. TODO: Change from ptl.rst to tc.rst when TC rounds starts
|
||||
.. include:: ../../candidates/tc.rst
|
||||
|
||||
.. include:: ocata_ptl_results.rst
|
||||
|
||||
.. TODO: Adds TC Results and a link to `TC Candidates list`_ when TC candidacies are over
|
||||
.. TODO: Adds PTL Results and a link to `PTL Candidates list`_ when PTL candidacies are over
|
||||
Previous elections
|
||||
==================
|
||||
|
||||
.. include:: archive_toc.rst
|
||||
|
||||
|
||||
Election Officials
|
||||
==================
|
||||
@ -149,9 +151,6 @@ The candidacy is then confirmed by elections officials through gerrit vote.
|
||||
See above `How to submit a candidacy`_ documentation.
|
||||
|
||||
|
||||
.. include:: ocata_ptl_candidates.rst
|
||||
.. TODO: add TC Candidates list when TC elections are over
|
||||
|
||||
.. seealso::
|
||||
|
||||
See the `Election Officiating Guidelines`_ page in the wiki for details on the
|
||||
|
449
doc/source/ocata/ptl.yaml
Normal file
449
doc/source/ocata/ptl.yaml
Normal file
@ -0,0 +1,449 @@
|
||||
candidates:
|
||||
Astara:
|
||||
- email: ryan.petrello@dreamhost.com
|
||||
fullname: Ryan Petrello
|
||||
ircname: ryanpetrello
|
||||
elected: INCUMBENT-PTL
|
||||
Barbican:
|
||||
- elected: true
|
||||
email: dmccowan@cisco.com
|
||||
fullname: Dave Mccowan
|
||||
ircname: dave-mccowan
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Barbican/dave-mccowan.txt
|
||||
Chef_OpenStack:
|
||||
- elected: true
|
||||
email: s@cassiba.com
|
||||
fullname: Samuel Cassiba
|
||||
ircname: sc\`
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Chef_OpenStack/sc%60.txt
|
||||
Cinder:
|
||||
- elected: true
|
||||
email: sean_mcginnis@dell.com
|
||||
fullname: Sean McGinnis
|
||||
ircname: smcginnis
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Cinder/smcginnis.txt
|
||||
Cloudkitty:
|
||||
- elected: true
|
||||
email: christophe.sauthier@objectif-libre.com
|
||||
fullname: Christophe Sauthier
|
||||
ircname: huats
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Cloudkitty/huats.txt
|
||||
Community_App_Catalog:
|
||||
- elected: true
|
||||
email: doc@aedo.net
|
||||
fullname: Christopher Aedo
|
||||
ircname: docaedo
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Community_App_Catalog/docaedo.txt
|
||||
Congress:
|
||||
- elected: true
|
||||
email: ekcs.openstack@gmail.com
|
||||
fullname: Eric Kao
|
||||
ircname: ekcs
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Congress/ekcs.txt
|
||||
Designate:
|
||||
- elected: true
|
||||
email: graham.hayes@hpe.com
|
||||
fullname: Graham Hayes
|
||||
ircname: mugsie
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Designate/mugsie.txt
|
||||
Documentation:
|
||||
- elected: true
|
||||
email: openstack@lanabrindley.com
|
||||
fullname: Lana Brindley
|
||||
ircname: loquacities
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Documentation/loquacities.txt
|
||||
Dragonflow:
|
||||
- elected: true
|
||||
email: omer.anson@toganetworks.com
|
||||
fullname: Omer Anson
|
||||
ircname: oanson
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Dragonflow/oanson.txt
|
||||
Ec2_Api:
|
||||
- elected: true
|
||||
email: alexandrelevine@gmail.com
|
||||
fullname: Alexandre Levine
|
||||
ircname: alexandrelevine
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Ec2_Api/alexandrelevine.txt
|
||||
Freezer:
|
||||
- elected: false
|
||||
email: deklan.dieterly@hpe.com
|
||||
fullname: Deklan Dieterly
|
||||
ircname: ddieterly
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Freezer/ddieterly.txt
|
||||
- elected: true
|
||||
email: pi3rra@root.gg
|
||||
fullname: Pierre Mathieu
|
||||
ircname: slashme
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Freezer/slashme.txt
|
||||
Fuel:
|
||||
- elected: true
|
||||
email: ashtokolov@mirantis.com
|
||||
fullname: Alexey Shtokolov
|
||||
ircname: ashtokolov
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Fuel/ashtokolov.txt
|
||||
Glance:
|
||||
- elected: true
|
||||
email: brian.rosmaita@rackspace.com
|
||||
fullname: Brian Rosmaita
|
||||
ircname: rosmaita
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Glance/rosmaita.txt
|
||||
Heat:
|
||||
- elected: true
|
||||
email: ramishra@redhat.com
|
||||
fullname: Rabi Mishra
|
||||
ircname: ramishra
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Heat/ramishra.txt
|
||||
Horizon:
|
||||
- elected: true
|
||||
email: r1chardj0n3s@gmail.com
|
||||
fullname: Richard Jones
|
||||
ircname: r1chardj0n3s
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Horizon/r1chardj0n3s.txt
|
||||
I18n:
|
||||
- elected: true
|
||||
email: ianyrchoi@gmail.com
|
||||
fullname: Ian Y. Choi
|
||||
ircname: ianychoi
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/I18n/ianychoi.txt
|
||||
Infrastructure:
|
||||
- elected: true
|
||||
email: fungi@yuggoth.org
|
||||
fullname: Jeremy Stanley
|
||||
ircname: fungi
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Infrastructure/fungi.txt
|
||||
Ironic:
|
||||
- elected: false
|
||||
email: dtantsur@redhat.com
|
||||
fullname: Dmitry Tantsur
|
||||
ircname: dtantsur
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Ironic/dtantsur.txt
|
||||
- elected: true
|
||||
email: jim@jimrollenhagen.com
|
||||
fullname: Jim Rollenhagen
|
||||
ircname: jroll
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Ironic/jroll.txt
|
||||
Karbor:
|
||||
- elected: true
|
||||
email: ficoos@gmail.com
|
||||
fullname: Saggi Mizrahi
|
||||
ircname: saggi
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Karbor/saggi.txt
|
||||
Keystone:
|
||||
- elected: false
|
||||
email: samueldmq@gmail.com
|
||||
fullname: Samuel de Medeiros Queiroz
|
||||
ircname: samueldmq
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Keystone/samueldmq.txt
|
||||
- elected: true
|
||||
email: s.martinelli@gmail.com
|
||||
fullname: Steve Martinelli
|
||||
ircname: stevemar
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Keystone/stevemar.txt
|
||||
Kolla:
|
||||
- elected: false
|
||||
email: zhang.lei.fly@gmail.com
|
||||
fullname: Jeffrey Zhang
|
||||
ircname: jeffrey4l
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Kolla/jeffrey4l.txt
|
||||
- elected: true
|
||||
email: inc007@gmail.com
|
||||
fullname: Michal Jastrzebski
|
||||
ircname: inc0
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Kolla/inc0.txt
|
||||
Kuryr:
|
||||
- elected: true
|
||||
email: antonisp@celebdor.com
|
||||
fullname: Antoni Segura Puimedon
|
||||
ircname: apuimedo
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Kuryr/apuimedo.txt
|
||||
Magnum:
|
||||
- elected: true
|
||||
email: adrian.otto@rackspace.com
|
||||
fullname: Adrian Otto
|
||||
ircname: Adrian_Otto
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Magnum/Adrian_Otto.txt
|
||||
- elected: false
|
||||
email: hongbin.lu@huawei.com
|
||||
fullname: Hongbin Lu
|
||||
ircname: hongbin
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Magnum/hongbin.txt
|
||||
Manila:
|
||||
- elected: true
|
||||
email: ben@swartzlander.org
|
||||
fullname: Ben Swartzlander
|
||||
ircname: bswartz
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Manila/bswartz.txt
|
||||
Mistral:
|
||||
- elected: true
|
||||
email: renat.akhmerov@gmail.com
|
||||
fullname: Renat Akhmerov
|
||||
ircname: rakhmerov
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Mistral/rakhmerov.txt
|
||||
Monasca:
|
||||
- elected: true
|
||||
email: roland.hochmuth@hp.com
|
||||
fullname: Roland Hochmuth
|
||||
ircname: rhochmuth
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Monasca/Roland_Hochmuth.txt
|
||||
Murano:
|
||||
- elected: true
|
||||
email: k.zaitsev@me.com
|
||||
fullname: Kirill Zaitsev
|
||||
ircname: kzaitsev_mb
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Murano/kzaitsev_mb.txt
|
||||
Neutron:
|
||||
- elected: true
|
||||
email: armamig@gmail.com
|
||||
fullname: Armando Migliaccio
|
||||
ircname: armax
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Neutron/armax.txt
|
||||
Nova:
|
||||
- elected: true
|
||||
email: mriedem@us.ibm.com
|
||||
fullname: Matt Riedemann
|
||||
ircname: mriedem
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Nova/mriedem.txt
|
||||
OpenStackAnsible:
|
||||
- elected: true
|
||||
email: andy.mccrae@gmail.com
|
||||
fullname: Andy Mccrae
|
||||
ircname: andymccr
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/OpenStackAnsible/andymccr.txt
|
||||
OpenStackClient:
|
||||
- elected: true
|
||||
email: dtroyer@gmail.com
|
||||
fullname: Dean Troyer
|
||||
ircname: dtroyer
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/OpenStackClient/dtroyer.txt
|
||||
OpenStackSalt:
|
||||
- email: ales.komarek@tcpcloud.eu
|
||||
fullname: Ales Komarek
|
||||
ircname: cznewt
|
||||
elected: INCUMBENT-PTL
|
||||
OpenStack_Charms:
|
||||
- elected: true
|
||||
email: james.page@ubuntu.com
|
||||
fullname: James Page
|
||||
ircname: jamespage
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/OpenStack_Charms/jamespage.txt
|
||||
OpenStack_UX:
|
||||
- email: pkruithofjr@gmail.com
|
||||
fullname: Piet Kruithof
|
||||
ircname: Piet
|
||||
elected: TC-APPOINTED
|
||||
Oslo:
|
||||
- elected: true
|
||||
email: jxharlow@godaddy.com
|
||||
fullname: Joshua Harlow
|
||||
ircname: harlowja
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Oslo/harlowja.txt
|
||||
Packaging_Deb:
|
||||
- elected: true
|
||||
email: zigo@debian.org
|
||||
fullname: Thomas Goirand
|
||||
ircname: zigo
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Packaging_Deb/zigo.txt
|
||||
Packaging_Rpm:
|
||||
- elected: true
|
||||
email: hguemar@fedoraproject.org
|
||||
fullname: "Ha\xEFkel Gu\xE9mar"
|
||||
ircname: hguemar
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Packaging_Rpm/hguemar.txt
|
||||
Puppet_OpenStack:
|
||||
- elected: true
|
||||
email: aschultz@redhat.com
|
||||
fullname: Alex Schultz
|
||||
ircname: mwhahaha
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Puppet_OpenStack/mwhahaha.txt
|
||||
Quality_Assurance:
|
||||
- elected: true
|
||||
email: ken-oomichi@wx.jp.nec.com
|
||||
fullname: Ken'ichi Ohmichi
|
||||
ircname: oomichi
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Quality_Assurance/oomichi.txt
|
||||
- elected: false
|
||||
email: masayuki@igawa.me
|
||||
fullname: Masayuki Igawa
|
||||
ircname: masayukig
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Quality_Assurance/masayukig.txt
|
||||
Rally:
|
||||
- elected: true
|
||||
email: akurilin@mirantis.com
|
||||
fullname: Andrey Kurilin
|
||||
ircname: andreykurilin
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Rally/andreykurilin.txt
|
||||
RefStack:
|
||||
- elected: true
|
||||
email: cdiep@us.ibm.com
|
||||
fullname: Catherine Diep
|
||||
ircname: catherineD
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/RefStack/catherineD.txt
|
||||
Release_Management:
|
||||
- elected: true
|
||||
email: doug@doughellmann.com
|
||||
fullname: Doug Hellmann
|
||||
ircname: dhellmann
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Release_Management/dhellmann.txt
|
||||
Requirements:
|
||||
- elected: true
|
||||
email: tony@bakeyournoodle.com
|
||||
fullname: Tony Breeds
|
||||
ircname: tonyb
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Requirements/tonyb.txt
|
||||
Sahara:
|
||||
- elected: true
|
||||
email: vgridnev@mirantis.com
|
||||
fullname: Vitaly Gridnev
|
||||
ircname: vgridnev
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Sahara/vgridnev.txt
|
||||
Searchlight:
|
||||
- elected: true
|
||||
email: steven.j.mclellan@gmail.com
|
||||
fullname: Steve Mclellan
|
||||
ircname: sjmc7
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Searchlight/sjmc7.txt
|
||||
Security:
|
||||
- email: hyakuhei@gmail.com
|
||||
fullname: Robert Clark
|
||||
ircname: hyakuhei
|
||||
elected: TC-APPOINTED
|
||||
Senlin:
|
||||
- elected: true
|
||||
email: yanyanhu@cn.ibm.com
|
||||
fullname: Yanyan Hu
|
||||
ircname: yanyanhu
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Senlin/yanyanhu.txt
|
||||
Solum:
|
||||
- elected: true
|
||||
email: kulkarni.devdatta@gmail.com
|
||||
fullname: Devdatta Kulkarni
|
||||
ircname: devkulkarni
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Solum/devkulkarni.txt
|
||||
Stable_Branch_Maintenance:
|
||||
- elected: true
|
||||
email: tony@bakeyournoodle.com
|
||||
fullname: Tony Breeds
|
||||
ircname: tonyb
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Stable_Branch_Maintenance/tonyb.txt
|
||||
Swift:
|
||||
- elected: true
|
||||
email: me@not.mn
|
||||
fullname: John Dickinson
|
||||
ircname: notmyname
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Swift/notmyname.txt
|
||||
Tacker:
|
||||
- elected: true
|
||||
email: srics.r@gmail.com
|
||||
fullname: Sridhar Ramaswamy
|
||||
ircname: sridhar_ram
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Tacker/sridhar_ram.txt
|
||||
Telemetry:
|
||||
- elected: true
|
||||
email: julien@danjou.info
|
||||
fullname: Julien Danjou
|
||||
ircname: jd__
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Telemetry/jd__.txt
|
||||
Tripleo:
|
||||
- elected: true
|
||||
email: emilien@redhat.com
|
||||
fullname: Emilien Macchi
|
||||
ircname: emilienm
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Tripleo/emilienm.txt
|
||||
Trove:
|
||||
- elected: true
|
||||
email: amrith@tesora.com
|
||||
fullname: Amrith Kumar
|
||||
ircname: amrith
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Trove/amrith.txt
|
||||
Vitrage:
|
||||
- elected: true
|
||||
email: ifat.afek@nokia.com
|
||||
fullname: Ifat Afek
|
||||
ircname: ifat_afek
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Vitrage/ifat_afek.txt
|
||||
Watcher:
|
||||
- elected: true
|
||||
email: antoine.cabot@b-com.com
|
||||
fullname: Antoine Cabot
|
||||
ircname: acabot
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Watcher/acabot.txt
|
||||
Winstackers:
|
||||
- elected: true
|
||||
email: cbelu@cloudbasesolutions.com
|
||||
fullname: Claudiu Belu
|
||||
ircname: claudiub
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Winstackers/claudiub.txt
|
||||
Zaqar:
|
||||
- elected: true
|
||||
email: flwang@catalyst.net.nz
|
||||
fullname: Fei Long Wang
|
||||
ircname: flwang
|
||||
url: https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Zaqar/flwang.txt
|
||||
election: ocata
|
||||
elections_results:
|
||||
Freezer: http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_662fe1dfea3b2980
|
||||
Ironic: http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_5bbba65c5879783c
|
||||
Keystone: http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_f0432662b678f99f
|
||||
Kolla: http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_9fa13adc6f6e7148
|
||||
Magnum: http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_2fd00175baa579a6
|
||||
Quality_Assurance: http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_745c895dcf12c405
|
||||
projects:
|
||||
- Astara
|
||||
- Barbican
|
||||
- Chef_OpenStack
|
||||
- Cinder
|
||||
- Cloudkitty
|
||||
- Community_App_Catalog
|
||||
- Congress
|
||||
- Designate
|
||||
- Documentation
|
||||
- Dragonflow
|
||||
- Ec2_Api
|
||||
- Freezer
|
||||
- Fuel
|
||||
- Glance
|
||||
- Heat
|
||||
- Horizon
|
||||
- I18n
|
||||
- Infrastructure
|
||||
- Ironic
|
||||
- Karbor
|
||||
- Keystone
|
||||
- Kolla
|
||||
- Kuryr
|
||||
- Magnum
|
||||
- Manila
|
||||
- Mistral
|
||||
- Monasca
|
||||
- Murano
|
||||
- Neutron
|
||||
- Nova
|
||||
- OpenStackAnsible
|
||||
- OpenStackClient
|
||||
- OpenStackSalt
|
||||
- OpenStack_Charms
|
||||
- OpenStack_UX
|
||||
- Oslo
|
||||
- Packaging_Deb
|
||||
- Packaging_Rpm
|
||||
- Puppet_OpenStack
|
||||
- Quality_Assurance
|
||||
- Rally
|
||||
- RefStack
|
||||
- Release_Management
|
||||
- Requirements
|
||||
- Sahara
|
||||
- Searchlight
|
||||
- Security
|
||||
- Senlin
|
||||
- Solum
|
||||
- Stable_Branch_Maintenance
|
||||
- Swift
|
||||
- Tacker
|
||||
- Telemetry
|
||||
- Tripleo
|
||||
- Trove
|
||||
- Vitrage
|
||||
- Watcher
|
||||
- Winstackers
|
||||
- Zaqar
|
@ -1,240 +0,0 @@
|
||||
Ocata PTL Candidates
|
||||
======================
|
||||
* Astara
|
||||
|
||||
|
||||
* Barbican
|
||||
|
||||
* `Dave Mccowan (dave-mccowan) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Barbican/dave-mccowan.txt>`_
|
||||
|
||||
* Chef OpenStack
|
||||
|
||||
* `Samuel Cassiba (sc\`) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Chef_OpenStack/sc%60.txt>`_
|
||||
|
||||
* Cinder
|
||||
|
||||
* `Sean McGinnis (smcginnis) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Cinder/smcginnis.txt>`_
|
||||
|
||||
* Cloudkitty
|
||||
|
||||
* `Christophe Sauthier (huats) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Cloudkitty/huats.txt>`_
|
||||
|
||||
* Community App Catalog
|
||||
|
||||
* `Christopher Aedo (docaedo) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Community_App_Catalog/docaedo.txt>`_
|
||||
|
||||
* Congress
|
||||
|
||||
* `Eric Kao (ekcs) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Congress/ekcs.txt>`_
|
||||
|
||||
* Designate
|
||||
|
||||
* `Graham Hayes (mugsie) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Designate/mugsie.txt>`_
|
||||
|
||||
* Documentation
|
||||
|
||||
* `Lana Brindley (loquacities) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Documentation/loquacities.txt>`_
|
||||
|
||||
* Dragonflow
|
||||
|
||||
* `Omer Anson (oanson) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Dragonflow/oanson.txt>`_
|
||||
|
||||
* Ec2 Api
|
||||
|
||||
* `Alexandre Levine (alexandrelevine) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Ec2_Api/alexandrelevine.txt>`_
|
||||
|
||||
* Freezer
|
||||
|
||||
* `Deklan Dieterly (ddieterly) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Freezer/ddieterly.txt>`_
|
||||
* `Pierre Mathieu (slashme) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Freezer/slashme.txt>`_
|
||||
|
||||
* Fuel
|
||||
|
||||
* `Alexey Shtokolov (ashtokolov) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Fuel/ashtokolov.txt>`_
|
||||
|
||||
* Glance
|
||||
|
||||
* `Brian Rosmaita (rosmaita) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Glance/rosmaita.txt>`_
|
||||
|
||||
* Heat
|
||||
|
||||
* `Rabi Mishra (ramishra) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Heat/ramishra.txt>`_
|
||||
|
||||
* Horizon
|
||||
|
||||
* `Richard Jones (r1chardj0n3s) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Horizon/r1chardj0n3s.txt>`_
|
||||
|
||||
* I18n
|
||||
|
||||
* `Ian Y. Choi (ianychoi) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/I18n/ianychoi.txt>`_
|
||||
|
||||
* Infrastructure
|
||||
|
||||
* `Jeremy Stanley (fungi) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Infrastructure/fungi.txt>`_
|
||||
|
||||
* Ironic
|
||||
|
||||
* `Dmitry Tantsur (dtantsur) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Ironic/dtantsur.txt>`_
|
||||
* `Jim Rollenhagen (jroll) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Ironic/jroll.txt>`_
|
||||
|
||||
* Karbor
|
||||
|
||||
* `Saggi Mizrahi (saggi) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Karbor/saggi.txt>`_
|
||||
|
||||
* Keystone
|
||||
|
||||
* `Samuel de Medeiros Queiroz (samueldmq) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Keystone/samueldmq.txt>`_
|
||||
* `Steve Martinelli (stevemar) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Keystone/stevemar.txt>`_
|
||||
|
||||
* Kolla
|
||||
|
||||
* `Jeffrey Zhang (jeffrey4l) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Kolla/jeffrey4l.txt>`_
|
||||
* `Michal Jastrzebski (inc0) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Kolla/inc0.txt>`_
|
||||
|
||||
* Kuryr
|
||||
|
||||
* `Antoni Segura Puimedon (apuimedo) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Kuryr/apuimedo.txt>`_
|
||||
|
||||
* Magnum
|
||||
|
||||
* `Adrian Otto (Adrian_Otto) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Magnum/Adrian_Otto.txt>`_
|
||||
* `Hongbin Lu (hongbin) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Magnum/hongbin.txt>`_
|
||||
|
||||
* Manila
|
||||
|
||||
* `Ben Swartzlander (bswartz) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Manila/bswartz.txt>`_
|
||||
|
||||
* Mistral
|
||||
|
||||
* `Renat Akhmerov (rakhmerov) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Mistral/rakhmerov.txt>`_
|
||||
|
||||
* Monasca
|
||||
|
||||
* `Roland Hochmuth (rhochmuth) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Monasca/rhochmuth.txt>`_
|
||||
|
||||
* Murano
|
||||
|
||||
* `Kirill Zaitsev (kzaitsev_mb) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Murano/kzaitsev_mb.txt>`_
|
||||
|
||||
* Neutron
|
||||
|
||||
* `Armando Migliaccio (armax) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Neutron/armax.txt>`_
|
||||
|
||||
* Nova
|
||||
|
||||
* `Matt Riedemann (mriedem) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Nova/mriedem.txt>`_
|
||||
|
||||
* OpenStackAnsible
|
||||
|
||||
* `Andy Mccrae (andymccr) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/OpenStackAnsible/andymccr.txt>`_
|
||||
|
||||
* OpenStackClient
|
||||
|
||||
* `Dean Troyer (dtroyer) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/OpenStackClient/dtroyer.txt>`_
|
||||
|
||||
* OpenStackSalt
|
||||
|
||||
|
||||
* OpenStack Charms
|
||||
|
||||
* `James Page (jamespage) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/OpenStack_Charms/jamespage.txt>`_
|
||||
|
||||
* OpenStack UX
|
||||
|
||||
|
||||
* Oslo
|
||||
|
||||
* `Joshua Harlow (harlowja) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Oslo/harlowja.txt>`_
|
||||
|
||||
* Packaging Deb
|
||||
|
||||
* `Thomas Goirand (zigo) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Packaging_Deb/zigo.txt>`_
|
||||
|
||||
* Packaging Rpm
|
||||
|
||||
* `Haïkel Guémar (hguemar) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Packaging_Rpm/hguemar.txt>`_
|
||||
|
||||
* Puppet OpenStack
|
||||
|
||||
* `Alex Schultz (mwhahaha) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Puppet_OpenStack/mwhahaha.txt>`_
|
||||
|
||||
* Quality Assurance
|
||||
|
||||
* `Ken'ichi Ohmichi (oomichi) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Quality_Assurance/oomichi.txt>`_
|
||||
* `Masayuki Igawa (masayukig) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Quality_Assurance/masayukig.txt>`_
|
||||
|
||||
* Rally
|
||||
|
||||
* `Andrey Kurilin (andreykurilin) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Rally/andreykurilin.txt>`_
|
||||
|
||||
* RefStack
|
||||
|
||||
* `Catherine Diep (catherineD) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/RefStack/catherineD.txt>`_
|
||||
|
||||
* Release Management
|
||||
|
||||
* `Doug Hellmann (dhellmann) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Release_Management/dhellmann.txt>`_
|
||||
|
||||
* Requirements
|
||||
|
||||
* `Tony Breeds (tonyb) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Requirements/tonyb.txt>`_
|
||||
|
||||
* Sahara
|
||||
|
||||
* `Vitaly Gridnev (vgridnev) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Sahara/vgridnev.txt>`_
|
||||
|
||||
* Searchlight
|
||||
|
||||
* `Steve Mclellan (sjmc7) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Searchlight/sjmc7.txt>`_
|
||||
|
||||
* Security
|
||||
|
||||
|
||||
* Senlin
|
||||
|
||||
* `Yanyan Hu (yanyanhu) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Senlin/yanyanhu.txt>`_
|
||||
|
||||
* Solum
|
||||
|
||||
* `Devdatta Kulkarni (devkulkarni) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Solum/devkulkarni.txt>`_
|
||||
|
||||
* Stable Branch Maintenance
|
||||
|
||||
* `Tony Breeds (tonyb) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Stable_Branch_Maintenance/tonyb.txt>`_
|
||||
|
||||
* Swift
|
||||
|
||||
* `John Dickinson (notmyname) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Swift/notmyname.txt>`_
|
||||
|
||||
* Tacker
|
||||
|
||||
* `Sridhar Ramaswamy (sridhar_ram) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Tacker/sridhar_ram.txt>`_
|
||||
|
||||
* Telemetry
|
||||
|
||||
* `Julien Danjou (jd__) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Telemetry/jd__.txt>`_
|
||||
|
||||
* Tripleo
|
||||
|
||||
* `Emilien Macchi (emilienm) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Tripleo/emilienm.txt>`_
|
||||
|
||||
* Trove
|
||||
|
||||
* `Amrith Kumar (amrith) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Trove/amrith.txt>`_
|
||||
|
||||
* Vitrage
|
||||
|
||||
* `Ifat Afek (ifat_afek) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Vitrage/ifat_afek.txt>`_
|
||||
|
||||
* Watcher
|
||||
|
||||
* `Antoine Cabot (acabot) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Watcher/acabot.txt>`_
|
||||
|
||||
* Winstackers
|
||||
|
||||
* `Claudiu Belu (claudiub) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Winstackers/claudiub.txt>`_
|
||||
|
||||
* Zaqar
|
||||
|
||||
* `Fei Long Wang (flwang) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Zaqar/flwang.txt>`_
|
||||
|
@ -1,251 +0,0 @@
|
||||
Ocata PTL
|
||||
=========
|
||||
|
||||
* Astara
|
||||
|
||||
* Ryan Petrello [#IncumbentPTL]_
|
||||
|
||||
* Barbican
|
||||
|
||||
* `Dave Mccowan (dave-mccowan) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Barbican/dave-mccowan.txt>`_
|
||||
|
||||
* Chef OpenStack
|
||||
|
||||
* `Samuel Cassiba (sc\`) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Chef_OpenStack/sc%60.txt>`_
|
||||
|
||||
* Cinder
|
||||
|
||||
* `Sean McGinnis (smcginnis) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Cinder/smcginnis.txt>`_
|
||||
|
||||
* Cloudkitty
|
||||
|
||||
* `Christophe Sauthier (huats) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Cloudkitty/huats.txt>`_
|
||||
|
||||
* Community App Catalog
|
||||
|
||||
* `Christopher Aedo (docaedo) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Community_App_Catalog/docaedo.txt>`_
|
||||
|
||||
* Congress
|
||||
|
||||
* `Eric Kao (ekcs) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Congress/ekcs.txt>`_
|
||||
|
||||
* Designate
|
||||
|
||||
* `Graham Hayes (mugsie) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Designate/mugsie.txt>`_
|
||||
|
||||
* Documentation
|
||||
|
||||
* `Lana Brindley (loquacities) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Documentation/loquacities.txt>`_
|
||||
|
||||
* Dragonflow
|
||||
|
||||
* `Omer Anson (oanson) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Dragonflow/oanson.txt>`_
|
||||
|
||||
* Ec2 Api
|
||||
|
||||
* `Alexandre Levine (alexandrelevine) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Ec2_Api/alexandrelevine.txt>`_
|
||||
|
||||
* Freezer
|
||||
|
||||
* `Pierre Mathieu (slashme) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Freezer/slashme.txt>`_
|
||||
|
||||
* Fuel
|
||||
|
||||
* `Alexey Shtokolov (ashtokolov) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Fuel/ashtokolov.txt>`_
|
||||
|
||||
* Glance
|
||||
|
||||
* `Brian Rosmaita (rosmaita) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Glance/rosmaita.txt>`_
|
||||
|
||||
* Heat
|
||||
|
||||
* `Rabi Mishra (ramishra) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Heat/ramishra.txt>`_
|
||||
|
||||
* Horizon
|
||||
|
||||
* `Richard Jones (r1chardj0n3s) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Horizon/r1chardj0n3s.txt>`_
|
||||
|
||||
* I18n
|
||||
|
||||
* `Ian Y. Choi (ianychoi) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/I18n/ianychoi.txt>`_
|
||||
|
||||
* Infrastructure
|
||||
|
||||
* `Jeremy Stanley (fungi) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Infrastructure/fungi.txt>`_
|
||||
|
||||
* Ironic
|
||||
|
||||
* `Jim Rollenhagen (jroll) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Ironic/jroll.txt>`_
|
||||
|
||||
* Karbor
|
||||
|
||||
* `Saggi Mizrahi (saggi) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Karbor/saggi.txt>`_
|
||||
|
||||
* Keystone
|
||||
|
||||
* `Steve Martinelli (stevemar) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Keystone/stevemar.txt>`_
|
||||
|
||||
* Kolla
|
||||
|
||||
* `Michal Jastrzebski (inc0) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Kolla/inc0.txt>`_
|
||||
|
||||
* Kuryr
|
||||
|
||||
* `Antoni Segura Puimedon (apuimedo) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Kuryr/apuimedo.txt>`_
|
||||
|
||||
* Magnum
|
||||
|
||||
* `Adrian Otto (Adrian_Otto) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Magnum/Adrian_Otto.txt>`_
|
||||
|
||||
* Manila
|
||||
|
||||
* `Ben Swartzlander (bswartz) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Manila/bswartz.txt>`_
|
||||
|
||||
* Mistral
|
||||
|
||||
* `Renat Akhmerov (rakhmerov) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Mistral/rakhmerov.txt>`_
|
||||
|
||||
* Monasca
|
||||
|
||||
* `Roland Hochmuth (rhochmuth) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Monasca/rhochmuth.txt>`_
|
||||
|
||||
* Murano
|
||||
|
||||
* `Kirill Zaitsev (kzaitsev_mb) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Murano/kzaitsev_mb.txt>`_
|
||||
|
||||
* Neutron
|
||||
|
||||
* `Armando Migliaccio (armax) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Neutron/armax.txt>`_
|
||||
|
||||
* Nova
|
||||
|
||||
* `Matt Riedemann (mriedem) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Nova/mriedem.txt>`_
|
||||
|
||||
* OpenStackAnsible
|
||||
|
||||
* `Andy Mccrae (andymccr) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/OpenStackAnsible/andymccr.txt>`_
|
||||
|
||||
* OpenStackClient
|
||||
|
||||
* `Dean Troyer (dtroyer) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/OpenStackClient/dtroyer.txt>`_
|
||||
|
||||
* OpenStackSalt
|
||||
|
||||
* Ales Komarek [#IncumbentPTL]_
|
||||
|
||||
* OpenStack Charms
|
||||
|
||||
* `James Page (jamespage) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/OpenStack_Charms/jamespage.txt>`_
|
||||
|
||||
* OpenStack UX
|
||||
|
||||
* Piet Kruithof [#TCAppointed]_
|
||||
|
||||
* Oslo
|
||||
|
||||
* `Joshua Harlow (harlowja) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Oslo/harlowja.txt>`_
|
||||
|
||||
* Packaging Deb
|
||||
|
||||
* `Thomas Goirand (zigo) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Packaging_Deb/zigo.txt>`_
|
||||
|
||||
* Packaging Rpm
|
||||
|
||||
* `Haïkel Guémar (hguemar) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Packaging_Rpm/hguemar.txt>`_
|
||||
|
||||
* Puppet OpenStack
|
||||
|
||||
* `Alex Schultz (mwhahaha) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Puppet_OpenStack/mwhahaha.txt>`_
|
||||
|
||||
* Quality Assurance
|
||||
|
||||
* `Ken'ichi Ohmichi (oomichi) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Quality_Assurance/oomichi.txt>`_
|
||||
|
||||
* Rally
|
||||
|
||||
* `Andrey Kurilin (andreykurilin) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Rally/andreykurilin.txt>`_
|
||||
|
||||
* RefStack
|
||||
|
||||
* `Catherine Diep (catherineD) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/RefStack/catherineD.txt>`_
|
||||
|
||||
* Release Management
|
||||
|
||||
* `Doug Hellmann (dhellmann) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Release_Management/dhellmann.txt>`_
|
||||
|
||||
* Requirements
|
||||
|
||||
* `Tony Breeds (tonyb) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Requirements/tonyb.txt>`_
|
||||
|
||||
* Sahara
|
||||
|
||||
* `Vitaly Gridnev (vgridnev) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Sahara/vgridnev.txt>`_
|
||||
|
||||
* Searchlight
|
||||
|
||||
* `Steve Mclellan (sjmc7) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Searchlight/sjmc7.txt>`_
|
||||
|
||||
* Security
|
||||
|
||||
* Robert Clark [#TCAppointed]_
|
||||
|
||||
* Senlin
|
||||
|
||||
* `Yanyan Hu (yanyanhu) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Senlin/yanyanhu.txt>`_
|
||||
|
||||
* Solum
|
||||
|
||||
* `Devdatta Kulkarni (devkulkarni) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Solum/devkulkarni.txt>`_
|
||||
|
||||
* Stable Branch Maintenance
|
||||
|
||||
* `Tony Breeds (tonyb) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Stable_Branch_Maintenance/tonyb.txt>`_
|
||||
|
||||
* Swift
|
||||
|
||||
* `John Dickinson (notmyname) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Swift/notmyname.txt>`_
|
||||
|
||||
* Tacker
|
||||
|
||||
* `Sridhar Ramaswamy (sridhar_ram) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Tacker/sridhar_ram.txt>`_
|
||||
|
||||
* Telemetry
|
||||
|
||||
* `Julien Danjou (jd__) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Telemetry/jd__.txt>`_
|
||||
|
||||
* Tripleo
|
||||
|
||||
* `Emilien Macchi (emilienm) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Tripleo/emilienm.txt>`_
|
||||
|
||||
* Trove
|
||||
|
||||
* `Amrith Kumar (amrith) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Trove/amrith.txt>`_
|
||||
|
||||
* Vitrage
|
||||
|
||||
* `Ifat Afek (ifat_afek) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Vitrage/ifat_afek.txt>`_
|
||||
|
||||
* Watcher
|
||||
|
||||
* `Antoine Cabot (acabot) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Watcher/acabot.txt>`_
|
||||
|
||||
* Winstackers
|
||||
|
||||
* `Claudiu Belu (claudiub) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Winstackers/claudiub.txt>`_
|
||||
|
||||
* Zaqar
|
||||
|
||||
* `Fei Long Wang (flwang) <https://git.openstack.org/cgit/openstack/election/plain/candidates/ocata/Zaqar/flwang.txt>`_
|
||||
|
||||
.. [#TCAppointed] By TC Appointment
|
||||
.. [#IncumbentPTL] Incumbent PTL
|
||||
|
||||
Elections results
|
||||
-----------------
|
||||
|
||||
* `Freezer <http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_662fe1dfea3b2980>`_
|
||||
* `Ironic <http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_5bbba65c5879783c>`_
|
||||
* `Keystone <http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_f0432662b678f99f>`_
|
||||
* `Kolla <http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_9fa13adc6f6e7148>`_
|
||||
* `Magnum <http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_2fd00175baa579a6>`_
|
||||
* `Quality Assurance <http://civs.cs.cornell.edu/cgi-bin/results.pl?id=E_745c895dcf12c405>`_
|
102
openstack_election/cmds/close_election.py
Executable file
102
openstack_election/cmds/close_election.py
Executable file
@ -0,0 +1,102 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License"); you may
|
||||
# not use this file except in compliance with the License. You may obtain
|
||||
# a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
|
||||
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
|
||||
# License for the specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
from __future__ import absolute_import
|
||||
from __future__ import print_function
|
||||
from __future__ import unicode_literals
|
||||
|
||||
import argparse
|
||||
import os
|
||||
import yaml
|
||||
|
||||
from openstack_election import utils
|
||||
|
||||
|
||||
def check_elected_candidate(candidates):
|
||||
for candidate in candidates:
|
||||
if candidate.get('elected'):
|
||||
return True
|
||||
return False
|
||||
|
||||
|
||||
def process(db, round):
|
||||
dirty = False
|
||||
|
||||
# Remove un-needed project
|
||||
if round == 'tc' and len(db['projects']) != 1:
|
||||
dirty = True
|
||||
db['projects'] = ['TC']
|
||||
db['candidates'] = {'TC': db['candidates']['TC']}
|
||||
if round == 'ptl' and 'TC' in db['projects']:
|
||||
dirty = True
|
||||
db['projects'].remove('TC')
|
||||
del db['candidates']['TC']
|
||||
|
||||
# Check for missing and elected candidates
|
||||
for project in db['projects']:
|
||||
candidates = db['candidates'][project]
|
||||
if len(candidates) == 0:
|
||||
print("[W] Appoints candidate for %s" % project)
|
||||
candidates.append({
|
||||
'ircname': 'INSERT_IRCNAME',
|
||||
'email': 'INSERT_EMAIL',
|
||||
'fullname': 'INSERT_FULLNAME',
|
||||
'elected': 'TC-APPOINTED_OR_INCUMBENT-PTL',
|
||||
})
|
||||
dirty = True
|
||||
elif len(candidates) > 1:
|
||||
if not check_elected_candidate(candidates):
|
||||
print("[W] Set elected attribute for winner of %s" % project)
|
||||
for candidate in candidates:
|
||||
candidate['elected'] = False
|
||||
dirty = True
|
||||
if project not in db.setdefault('elections_results', {}):
|
||||
print("[W] Set election id for %s" % project)
|
||||
db['elections_results'][project] = 'INSERT-RESULT-LINK'
|
||||
dirty = True
|
||||
elif not candidates[0].get('elected'):
|
||||
candidates[0]['elected'] = True
|
||||
dirty = True
|
||||
return dirty
|
||||
|
||||
|
||||
def main():
|
||||
desc = 'Generate or update an election archive for site rendering'
|
||||
parser = argparse.ArgumentParser(description=desc)
|
||||
parser.add_argument('-v', '--verbose', action="count", default=0,
|
||||
help='Increase program verbosity')
|
||||
parser.add_argument('-r', '--release', default=utils.SERIES_NAME,
|
||||
help='Which nominations to look at')
|
||||
parser.add_argument('-b', '--basedir',
|
||||
default=os.getcwd(),
|
||||
help='Path to git clone of openstack/election')
|
||||
parser.add_argument('round', choices=('ptl', 'tc'))
|
||||
|
||||
args = parser.parse_args()
|
||||
|
||||
args.outputdir = os.path.join(args.basedir, 'doc', 'source', args.release)
|
||||
args.outputdir = os.path.expanduser(args.outputdir)
|
||||
|
||||
if not os.path.isdir(args.outputdir):
|
||||
os.mkdir(args.outputdir, 0755)
|
||||
|
||||
db_file = os.path.join(args.outputdir, "%s.yaml" % args.round)
|
||||
|
||||
if os.path.isfile(db_file):
|
||||
print("[+] Reloading candidate list %s" % db_file)
|
||||
db = yaml.safe_load(open(db_file))
|
||||
else:
|
||||
db = utils.build_candidates_list(args.release)
|
||||
|
||||
if process(db, args.round):
|
||||
open(db_file, "w").write(yaml.safe_dump(db, default_flow_style=False))
|
||||
print("[W] Proceed to manual update of %s" % db_file)
|
@ -43,6 +43,8 @@ CGIT_URL = 'https://git.openstack.org/cgit'
|
||||
PROJECTS_URL = ('%s/openstack/governance/plain/reference/projects.yaml' %
|
||||
(CGIT_URL))
|
||||
|
||||
PAST_ELECTIONS = ['ocata']
|
||||
|
||||
conf = yaml.load(open('configuration.yaml'))
|
||||
exceptions = None
|
||||
|
||||
|
@ -24,6 +24,8 @@ console_scripts =
|
||||
check-candidacy = openstack_election.cmds.check_candidacy:main
|
||||
check-candidacy-manual = openstack_election.cmds.check_manual:main
|
||||
render-statistics = openstack_election.cmds.render_statistics:main
|
||||
update-governance = openstack_election.cmds.update_governance:main
|
||||
close-election = openstack_election.cmds.close_election:main
|
||||
|
||||
[build_sphinx]
|
||||
all_files = 1
|
||||
|
Loading…
Reference in New Issue
Block a user