Added command line tool information to README.rst

Added explanations and example scenarios about the command line usage for
jobs.py to the README.rst file.  A few syntax errors found in the
README.rst was fixed as well. Visit the following link for a preview of
the README.rst:

  http://rst.ninjs.org/?n=de7d3bc022f4ba2417bd3de97e33c91c&theme=nature

Additionally, the YAML file extention has been changed to '.yaml.' The
name of the meetings have also been capitalized. Spaces were added
in front of agenda list items.

Lastly, a minor issue was fixed where the iCals files was missing the .
in the file extension. It now can handle both '.yaml' and '.yml'
extentions when writting '.ical' files.

Change-Id: Iff6805a690339303ec58bf19883dcfbbf3d37d72
This commit is contained in:
gspindles 2014-05-05 00:51:12 -05:00
parent e6ec82a4c9
commit 6a5ee13854
11 changed files with 179 additions and 114 deletions

View File

@ -9,40 +9,101 @@ Currently, each team's meeting time and agenda are listed at:
This project replaces each meeting with well-defined YAML files.
This tool will run as a Jenkins job, so that each time a YAML meeting is
created, Jenkins will generate an iCal file.
created, Jenkins will generate an iCal file. Additionally, user can also run
the program locally to check for conflict before submitting the meeting changes
for review.
Getting Started
===============
Running locally
---------------
Running Locally from Command Line
---------------------------------
To test this project locally, you must have the following requirements
installed:
* Python 3.3+
* icalendar python library
* PyYaml
* `iCalendar` python library
* `PyYaml` python library
Before running this tool, first place some meeting YAML files in the meetings
directory. This directory already contains some meetings. To create your own
meeting, see the meetings/README file.
Before running this tool, first edit some meeting YAML files in the meetings
directory. This directory already contains YAML files for the meetings
found on the `Meetings <https://wiki.openstack.org/wiki/Meetings>`_ wiki page.
To create a new meeting YAML file, read the `YAML Meeting File` section below.
To run this tool, run
To start with, we need to clone the repository to a local directory. Afterward,
`cd` into the directory where the `jobs.py` script is found.
`$ python jobs.py`
::
in the gerrit-powered-agenda directory.
$ git clone https://git.openstack.org/cgit/openstack-infra/gerrit-powered-agenda
$ cd gerrit-powered-agenda/gerrit-powered-agenda/
The generated iCal files will appear in the /icals directory.
The different command line options are as follows. For help, use `-h`
(or `--help`) to show a list of options and exit.
As a Jenkins Job
----------------
::
$ python jobs.py -h
The `-t TEST` (or `--test TEST`) is used to execute a test. The valid values
for `TEST` are `check`, `gate` and `post`. It'd be a good idea to run a quick
check job to test for conflicts before pushing for review.
::
$ python jobs.py -t check
$ python jobs.py -t gate
$ python jobs.py -t post
For converting YAML files to iCal files, there are four flags to consider:
* Use the `-y YAML_DIR` (or `--yamldir YAML_DIR`) to specify the path to the
directory `YAML_DIR` where the YAML files are located. The default
`YAML_DIR` is `meetings` when this flag is not provided.
* Use the `-i ICAL_DIR` (or `--icaldir ICAL_DIR`) to specify the path to the
directory `ICAL_DIR` where the iCals files will be written to.
* Use the `-m MEETING_LIST_FILE` (or `--meetings MEETING_LIST_FILE`) to write
selected YAML files in `MEETING_LIST_FILE` to `ICAL_DIR`.
* Note: `MEETING_LIST_FILE` consists of names of YAML files per line.
* Add the `-c` (or `--convert`) to convert.
The following are a few scenarios:
* Read all the YAML files in meetings and output iCal files to iCals folder:
::
$ cd gerrit-powered-agenda/gerrit-powered-agenda/
$ mkdir ../iCals
$ python jobs.py -i ../iCals -c
* Read all the YAML files in myYAML folder and output iCal files to iCals
folder:
::
$ cd gerrit-powered-agenda/gerrit-powered-agenda/
$ mkdir ../iCals
$ python jobs.py -y ../myYAML -i ../iCals -c
* Read myMeetings.txt, select the YAML file listed in there from myYAML
directory, convert these files and write them to iCals folder:
::
$ cd gerrit-powered-agenda/gerrit-powered-agenda/
$ mkdir ../iCals
$ python jobs.py -y ../myYAML -m ../myMeetings.txt -i ../iCals -c
Running as a Jenkins Job
------------------------
When this project is complete, this tool will run as a Jenkins job. A developer
wishing to create a meeting will push a YAML file to Gerrit, which will then be
reviewed. If the review passes, Jenkins will run this tool to generate ical
files.
wishing to modify existing meetings or create a new meeting will push the
respecitve YAML file to Gerrit, which will then be reviewed. When the review
passes, Jenkins will run this tool to generate iCal files.
YAML Meeting File
=================
@ -59,10 +120,11 @@ Each meeting consists of:
* `project` -- the name of the project
* `schedule` -- a list of schedule each consisting of
- `time` -- time string in UTC
- `day` -- the day of week the meeting takes place
- `irc` -- the irc room in which the meeting is held
- `frequency` -- frequent occurence of the meeting
* `time` -- time string in UTC
* `day` -- the day of week the meeting takes place
* `irc` -- the irc room in which the meeting is held
* `frequency` -- frequent occurence of the meeting
* `chair` -- name of the meeting's chair
* `description` -- a paragraph description about the meeting
* `agenda` -- a paragraph consisting of the bulleted list of topics
@ -101,14 +163,15 @@ will be import into Python as a dictionary.
irc: openstack-meeting
frequency: weekly
* The chair is just a one liner. The might be left empty if there is not a chair.
* The chair is just a one liner. The might be left empty if there is not a
chair.
::
chair: Russell Bryant
* The project description is as follows. Use `>` to for the parapraph so new
lines are folded.
* The project description is as follows. Use `>` for parapraphs where new
lines are folded, or `|` for paragraphs where new lines are preserved.
::
@ -126,8 +189,8 @@ will be import into Python as a dictionary.
::
agenda: |
* general annoucement
* sub-teams
* bugs
* blueprints
* open discussion
* General annoucement
* Sub-teams
* Bugs
* Blueprints
* Open discussion

View File

@ -99,7 +99,7 @@ class Meeting:
cal.add_component(event)
# write ical files to disk
ical_filename = self.filename[:-4] + 'ics'
ical_filename = self.filename.split('.')[0] + '.ics'
if not os.path.exists(ical_dir):
os.makedirs(ical_dir)

View File

@ -1,10 +1,10 @@
project: Gantt (Scheduler) team meeting
project: Gantt (Scheduler) Team Meeting
schedule:
- time: '1500'
day: Tuesday
irc: openstack-meeting
frequency: weekly
chair: Don Dugger
description: >
agenda: |
*How will the current API work lead to actual scheduling
description: >
agenda: |
* How will the current API work lead to actual scheduling

View File

@ -0,0 +1,40 @@
project: Ironic Team Meeting
schedule:
- time: '1900'
day: Monday
irc: openstack-meeting
frequency: weekly
chair: Devananda van der Veen
description: >
If you're interested in bare metal deployments ith OpenStack, please join
us. This meeting is here we'll talk about the Ironic project, an evolution
of the Nova Baremetal driver.
agenda: |
* Greeting, roll-call and anouncements
* Regular Topics
** Blueprint status check: https://blueprints.launchpad.net/ironic
** Bug status check: https://wiki.openstack.org/wiki/BugTriage
* Call outs
** Nova Driver
*** Nova volume driver
*** Nova hostmanager
*** Refactor get_iscsi_initiator
** Functional testing with devstack
** Inteeration with TripleO
* I-3 planning
** Graduation requirements
*** Nova driver needs to land
*** We need ful CI (https://review.openstack.org/#/c/70348/)
** Feature freeze
*** What work / revies need to be prioritized
*** What can we realistically land
** Code cleanup
*** With mock vs. @mock
*** Node[property] vs node.property
* Open Discussion
* Adds max retry limit to sync_poer_state task(should e rely on driver |
health or not when preventing infinite syncs?)
https://revie.openstack.org/#/c/77420/2/ironic/conductor/manager.py
** Functional/Integration testing of vendor drivers (Tempest?)
** Driver architecture for Chassis object (Allo vendors to define behavior |
for the Chassis object like Auto node discovery etc)

View File

@ -1,38 +0,0 @@
project: Ironic team Meeting
schedule:
- time: '1900'
day: Monday
irc: openstack-meeting
frequency: weekly
chair: Devananda van der Veen
description: >
If you're interested in bare metal deployments ith OpenStack, please join
us. This meeting is here we'll talk about the Ironic project, an evolution
of the Nova Baremetal driver.
agenda: |
*Greeting, roll-call and anouncements
*Regular Topics
**blueprint status check: https://blueprints.launchpad.net/ironic
**bug status check: https://wiki.openstack.org/wiki/BugTriage
*Call outs
**Nova Driver
***Nova volume driver
***Nova hostmanager
***Refactor get_iscsi_initiator
**Functional testing with devstack
**Inteeration with TripleO
*I-3 planning
**Graduation requirements
***nova driver needs to land
***we need ful CI (https://review.openstack.org/#/c/70348/)
**feature freeze
***what work / revies need to be prioritized
***what can we realistically land
**code cleanup
***with mock vs. @mock
***node[property] vs node.property
*Open Discussion
*Adds max retry limit to sync_poer_state task(should e rely on driver | health or not when preventing infinite syncs?) https://revie.openstack.org/#/c/77420/2/ironic/conductor/manager.py
**Functional/Integration testing of vendor drivers (Tempest?)
**Driver architecture for Chassis object (Allo vendors to define behavior | for the Chassis object like Auto node discovery etc)

View File

@ -5,15 +5,15 @@ schedule:
irc: openstack-meeting-3
frequency: weekly
chair: Tracy Jones
description: >
description: >
This is a weekly meeting review Nova Bugs. The initial focus will be on
triaging bugs in the New state and ensuring that critical bugs are making
progress. Once the new queue is under control we will switch our focus to
reviewing incomplete bugs, removing assignees from stale bugs so others
can pick them up (especially low hanging fruit). In general we will follow
the policies documented here https://wiki.openstack.org/wiki/BugTriage
agenda: |
*Tag untagged
*Triage New
*Revie Critical
*Open Discussion
agenda: |
* Tag untagged
* Triage New
* Revie Critical
* Open Discussion

View File

@ -1,4 +1,4 @@
project: Nova Hyper-V team meeting
project: Nova Hyper-V Team Meeting
schedule:
- time: '1600'
day: Tuesday

View File

@ -1,16 +1,16 @@
project: OpenStack Project & Release Status meeting
project: OpenStack Project & Release Status Meeting
schedule:
- time: '2100'
day: Tuesday
irc: openstack-meeting
frequency: weekly
chair: Thierry Carrez
description: >
description: >
The whole OpenStack Team holds a public weekly Project & Release Status
meeting in #openstack-meetings, Tuesdays at 2100 UTC. Everyone is encouraged
to attend.
agenda: |
*Current RC status
*(add topics here)
*Incubated Projects
*Open Discussion
meeting in #openstack-meetings, Tuesdays at 2100 UTC. Everyone is
encouraged to attend.
agenda: |
* Current RC status
* (add topics here)
* Incubated Projects
* Open Discussion

View File

@ -5,14 +5,14 @@ schedule:
irc: openstack-meeting
frequency: weekly
chair: Thierry Carrez
description: >
description: >
The OpenStack Technical Committee is one of the governing bodies of the
OpenStack project. It is an elected group that represents the
contributors to the project, and has oversight on all technical matters.
The Technical Committee is formally defined in the OpenStack Foundation
bylas and further refined in the Technical Committee charter.
agenda: |
*Integrated projects and new requirements, Gap analysis for Ceilometer
*Bylas subcommitte report, proposed changes to the OpenStack Bylas
*Minor governance changes
*Open Discussion
agenda: |
* Integrated projects and new requirements, Gap analysis for Ceilometer
* Bylas subcommitte report, proposed changes to the OpenStack Bylas
* Minor governance changes
* Open Discussion

View File

@ -1,18 +1,18 @@
project: VMware API team meeting
project: VMware API Team Meeting
schedule:
- time: '1500'
day: Wednesday
irc: openstack-meeting
frequency: weekly
chair: Shan Hartsock
description: >
description: >
This is a weekly meeting to discuss blueprints and bugs related to VMwareAPI
integrations ith OpenStack. At present, this one meeting will cover all
these out into separate sub-teams. We maintain a channel for general
discussion of VMwareAPI on freenode IRC at openstack-vmware but formal meetings
are held in the official IRC meeting rooms for OpenStack.
agenda: |
*Refactorings priority order & assignments and schedule
*blueprint priority order after refactorings
**any exceptional blueprints which should be exempt from this rule
*Open Discussion
discussion of VMwareAPI on freenode IRC at openstack-vmware but formal
meetings are held in the official IRC meeting rooms for OpenStack.
agenda: |
* Refactorings priority order & assignments and schedule
* Blueprint priority order after refactorings
** Any exceptional blueprints which should be exempt from this rule
* Open Discussion

View File

@ -1,21 +1,21 @@
project: Xen Api team meeting
project: Xen Api Team Meeting
schedule:
- time: '1500'
day: Wednesday
irc: openstack-meeting
frequency: weekly
chair: John Garbutt
description: >
description: >
Meeting to discuss the status of Blueprints and bugs relating to the XenAPI
layer in #openstack-meeting, every Wednesday at 1500 UTC. (It used to be
every Wednesday at 1700 UTC, but this proved to late for the UK folks at
Citrix after daylight savings kicked in)
agenda: |
*Actions from last meeting
*Blueprints
**Discuss Icehouse-2 progress
*Docs
*Bugs & QA
**https://bugs.launchpad.net/nova/+bugs?field.tag=xenserver
**gating progress
*Open Discussion
agenda: |
* Actions from last meeting
* Blueprints
** Discuss Icehouse-2 progress
* Docs
* Bugs & QA
** https://bugs.launchpad.net/nova/+bugs?field.tag=xenserver
** Gating progress
* Open Discussion