示例#1
0
        fields = l.split("\t")
        name = fields[vacation_headers["Person"]]
        start = fields[vacation_headers["Start Date"]]
        end = fields[vacation_headers["End Date"]]
        note = fields[vacation_headers["Note"]]

        if not name:
            continue
        if name not in vacations:
            vacations[name] = []
        vacations[name].append(parse_vacation_data(name, start, end, note, condition_vacation))

    # Expand dates
    for v in vacations:
        vacations[v] = expand_dates(vacations[v])
    return vacations

def wiki_date_str_to_date(date_str):
    if date_str == "":
        return None
    result = datetime.datetime.strptime(date_str, "%d-%b-%Y")
    return result


if __name__ == "__main__":
    configurator = ServiceConfigurator()
    configurator.parse_args()

    condVacationator = CondVacationator(configurator.get_config(), configurator.should_listen())
    condVacationator.process_data()
示例#2
0
                assignments_by_quarter[q] = []

        # Output assignments by quarter
        # TODO: Get rid of the ID
        cur_id = 1
        for q in quarters:
            print >>output, "\t=====%s" % str(q)
            for person in assignments_by_quarter[q]:
                name = person['name']
                print >>output, "\t\t%d\t%s\t%s\t%s\t%s\t%s" % (
                        cur_id, name, self.team, person['track'], person['skill'],
                        vacation_parser.format_vacation(vacation_map[name]))
                cur_id = cur_id + 1
        return

    def print_people_lines(self, artists_parser, output):
        print >>output, "=====people"
        parsed_artists = artists_parser.get_records()
        for person in parsed_artists:
            print >>output, "\t%s\t%s" % (person['name'], person['skill'])
        return


if __name__ == "__main__":
    configurator = ServiceConfigurator()
    configurator.parse_args()

    condQPlan = CondQPlan(configurator.get_config(), configurator.should_listen())
    condQPlan.process_data()

示例#3
0
    def get_processed_data(self):
        self.ratchet_hub.log_info(self.name, "Start appifying")
        p = None
        result = ""

        try:
            [cond_data] = self.get_inputs()

            qplan_path = "%s/apps/filters/QPlan/dist/build/qplan/qplan" % self.src_root

            p = subprocess.Popen(qplan_path, stdin=subprocess.PIPE, stdout=subprocess.PIPE, shell=True)
            result = p.communicate(input=cond_data)[0]
        except Exception, e:
            self.ratchet_hub.log_error(self.name, "Exception happened running qplan: %s" % e)
            raise

        if p.returncode != 0:
            err_msg = "Something went wrong with the qplan filter (%d)" % p.returncode
            self.ratchet_hub.log_error(self.name, err_msg)
            raise Exception(err_msg)

        self.ratchet_hub.log_info(self.name, "Done appifying")
        return result

if __name__ == "__main__":
    configurator = ServiceConfigurator()
    configurator.parse_args()

    app = AppQPlan(configurator.get_config(), configurator.should_listen())
    app.process_data()
示例#4
0
        hub_port = int(config.get('Ratchet Hub', 'port'))
        self.ratchet_hub = RatchetHub(hub_host, hub_port)

        vantage_config = self.ratchet_hub.get_vantage_config()
        snapshot_host = vantage_config['host']
        snapshot_port = int(vantage_config['snapshot_sub_port'])
        self.web_host = vantage_config['host']
        self.web_port = int(vantage_config['web_port'])

        ratchet_hub_info = self.ratchet_hub.get_ratchet_hub_info()
        self.name = "%s/VantageUpdaterService" % (ratchet_hub_info['org_name'])

        Subscriber.__init__(self, snapshot_host, snapshot_port, [
                                                   "=====app vantage"
                                                  ])
        return

    # @Override
    def ping(self):
        self.ratchet_hub.log_info(self.name, "Asking web app to update")
        h = httplib.HTTPConnection('%s:%d' % (self.web_host, self.web_port))
        h.request("POST","/update", "", {"Content-type": "application/text"})
        return

if __name__ == "__main__":
    configurator = ServiceConfigurator()
    configurator.parse_args()
    updater = VantageUpdaterService(configurator.get_config())

    updater.run()
示例#5
0
            for quarter in parsed_data[team].keys():
                quarter_data = parsed_data[team][quarter]

                for tri_index in range(len(quarter_data['triages'])):
                    triage = quarter_data['triages'][tri_index]
                    divisions = quarter_data['tracks']

                    for div_index in range(len(divisions)):
                        division = divisions[div_index]
                        team_skills = quarter_data['skills']
                        chart_stats = quarter_data['staffing_stats'][tri_index][div_index]
                        chart_stats = self.manpower_to_num_staff(chart_stats, quarter_data['num_weeks'])

                        # Print regular records
                        print >>output, "\t%s" % "\t".join([
                            team,
                            division,
                            quarter,
                            triage,
                            self.pack_staff_stats(chart_stats['available'], skills, team_skills),
                            self.pack_staff_stats(chart_stats['required'], skills, team_skills),
                            self.pack_staff_stats(chart_stats['net_left'], skills, team_skills)
                            ])
        return

if __name__ == "__main__":
    configurator = ServiceConfigurator()
    configurator.parse_args()
    appVantage = AppVantage(configurator.get_config(), configurator.should_listen())
    appVantage.process_data()