Ejemplo n.º 1
0
  def post(self):
    parameters = pickle.loads(self.request.get('parameters'))

    parser = Parser()
    r = tasks.addTask(['parsecsv'], parser.run, parameters, settings.MAX_TASKSQUEUE_EXECUTED_TIME).get_result()

    if not r:
      new_schedule = Schedule()
      new_schedule.sendgrid_account = parameters.get('sendgrid_account')
      new_schedule.subject = parameters.get('subject')
      new_schedule.sender_name = parameters.get('sender_name')
      new_schedule.sender_email = parameters.get('sender_email')

      new_schedule.category = parameters.get('category')
      new_schedule.reply_to = parameters.get('reply_to')
      new_schedule.type = parameters.get('type')

      new_schedule.txt_object_name = parameters.get('txt_object_name')
      new_schedule.edm_object_name = parameters.get('edm_object_name')
      new_schedule.bucket_name = parameters.get('bucket_name')
      new_schedule.replace_edm_csv_property = parameters.get('replace_edm_csv_property')

      new_schedule.schedule_duration = int(parameters.get('schedule_duration'))
      new_schedule.ip_counts = int(parameters.get('ip_counts'))

      new_schedule.recipient_skip = int(parameters.get('recipient_skip'))
      new_schedule.hour_rate = int(parameters.get('hour_rate'))
      new_schedule.start_time = parameters.get('start_time')
      new_schedule.daily_capacity = int(parameters.get('daily_capacity'))

      new_schedule.error = 'add schedule job taskqueue fail. retry later.'

      new_schedule.is_dry_run = parameters.get('is_dry_run')
      new_schedule.dry_run_fail_rate = parameters.get('dry_run_fail_rate')

      new_schedule.put()
Ejemplo n.º 2
0
    def add_schedule_from_buffer(self, journey_buffer):
        r = pp.CreateFromDocument(journey_buffer)
        assert(None is r.sR)
        assert(None is not r.uR)
        assert(1 == len(r.uR.schedule))

        m = ScheduleXMLMessageFactory.build(r.uR.schedule[0], r, journey_buffer)

        ###### This code below checks that there are no schedules already stored
        # # We try to find a schedule, and replace it if we do
        # found = (Schedule
        #         .select()
        #         .where(
        #             Schedule.uid == m.uid,
        #             Schedule.rid == m.rid
        #         ))

        # count = found.count()
        # if count > 0:
        #     assert(count == 1)
        #     s = found[0]

        #     # Removing all relevant calling points
        #     CallingPoint.delete().where(
        #         CallingPoint.schedule == s
        #     ).execute()

        # else:
        #     s = Schedule()
        #     s.uid = m.uid
        #     s.rid = m.rid


        # Script assumes new schedules added, and overrides any existing
        s = Schedule()
        s.uid = m.uid
        s.rid = m.rid


        s.headcode = m.headcode
        s.start_date = m.start_date
        s.toc_code = m.toc_code
        s.category = m.category
        s.status = m.status
        s.active = m.active
        s.deleted = m.deleted
        s.cancel_tiploc = m.cancel_reason_tiploc
        s.cancel_code = m.cancel_reason_code
        s.cancel_near = m.cancel_reason_near
        s.save()

        for o in m.all_points:
            p = CallingPoint()
            p.tiploc = o.tiploc
            p.schedule = s
            p.activity_codes = o.planned_activity_codes
            p.cancelled = o.cancelled
            p.false_tiploc = o.false_tiploc
            p.route_delay = o.route_delay
            p.working_arrival = o.raw_working_arrival_time
            p.working_pass = o.raw_working_pass_time
            p.working_departure = o.raw_working_departure_time
            p.public_arrival = o.raw_public_arrival_time
            p.public_departure = o.raw_public_departure_time
            p.type = str(type(o))
            p.save()