From 7fbe7fb43a3a1bb341c4a789f4ff2dd0f8e034ee Mon Sep 17 00:00:00 2001 From: Josh Tan Date: Fri, 7 Mar 2014 14:22:13 -0600 Subject: [PATCH] Added logic to initialize Meeting object from yaml. Implemented crude display function to test correctness, by showing the initialized values of the Meeting. --- src/jobs.py | 31 ++++++++++++++++++++----------- src/meeting.py | 40 +++++++++++++++++++++------------------- 2 files changed, 41 insertions(+), 30 deletions(-) diff --git a/src/jobs.py b/src/jobs.py index 0fb8177..3f6f06c 100644 --- a/src/jobs.py +++ b/src/jobs.py @@ -3,23 +3,31 @@ import icalendar import pprint import sys import os +from meeting import Meeting class MeetingJobs: """Executes post, gate, and check jobs.""" - # make this a singleton? - - def __init__(self, publish_url): - self.publish_url = publish_url + yaml_dir = '../meetings' + publish_url = '127.0.0.1' - def execute_check(): + def execute_check(self): + meetings = self.create_meetings(self.yaml_dir) + meetings_display = "\n".join([m.display() for m in meetings]) + print(meetings_display) # testing purpose + # now convert meetings to a list of ical + + def execute_gate(self): pass - def execute_gate(): + def execute_post(self): pass - def execute_post(): - pass + def create_meetings(self, yaml_dir): + os.chdir(yaml_dir) + meetings_yaml = [yaml.load(open(f, 'r')) for f in os.listdir() if os.path.isfile(f) and ".yaml" in f] + meetings = [Meeting(y) for y in meetings_yaml] + return meetings def pprint_yaml(): """For now, this is a simple script to import all the yaml files and pretty print it.""" @@ -33,6 +41,7 @@ def pprint_yaml(): for m in meetings: print(yaml.dump(m)) -# main -pprint_yaml() - +# entry point +#pprint_yaml() +jobs = MeetingJobs() +jobs.execute_check() diff --git a/src/meeting.py b/src/meeting.py index b6ad63b..e9e162b 100644 --- a/src/meeting.py +++ b/src/meeting.py @@ -1,29 +1,31 @@ +import pprint + class Meeting: """An OpenStack meeting.""" - def __init__(self, yaml_file): + def __init__(self, yaml): # create yaml object from yaml file. use it initialize following fields. - - self.proj_name = yaml.name - self.uuid = yaml.uuid - self.chair = yaml.chair - self.descript = yaml.descript - self.agenda = yaml.agenda # this is a list of topics + self.project = yaml['project'] + self.chair = yaml['chair'] + self.description = yaml['description'] + self.agenda = pprint.pformat(yaml['agenda']) # this is a list of topics # create schedule object - self.schedule = newly_created_schedule_object + schedule = yaml['schedule'][0] + self.schedule = Schedule(schedule['time'], schedule['day'], schedule['irc'], schedule['period']) - # create checksum from something, perhaps entire object (this would - # be an easy way to check is anything has changed that needs to be - # published) - self.checksum = generated_checksum + def display(self): + return "project:\t%s\nchair:\t%s\ndescription:\t%s\nagenda:\t%s\nschedule:\t%s" % (self.project, self.chair, self.description, self.agenda, self.schedule.display()) - class Schedule: - """A meeting schedule.""" +class Schedule: + """A meeting schedule.""" - def __init__(self, time, day, irc, period): - self.time = time - self.day = day - self.irc = irc - self.period = period + def __init__(self, time, day, irc, period): + self.time = time + self.day = day + self.irc = irc + self.period = period + + def display(self): + return "Schedule:\n\ttime:\t%s\n\tday:\t%s\n\tirc:\t%s\n\tperiod:\t%s\n" % (self.time, self.day, self.irc, self.period)