Opened 12 years ago

#135 new

GMOCMeasurement.addData() does not throw an error when invoked with bogus column names

Reported by: chaos@bbn.com Owned by: somebody
Priority: major Milestone: GEC15 demo
Component: Clients Version:
Keywords: v1.1.0 Cc:
Dependencies:

Description

When this code:

    print timevals
    foam_sliver_state = gmoc.SliverState()
    for rrd_time in sorted(timevals.keys()):
      foam_sliver_state.addData(rrd_time, timevals[rrd_time])
    print foam_sliver_state._values

is run with correct column names in timevals, it yields:

{1350524640: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524610: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524580: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524550: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524520: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524745: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524490: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524715: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524685: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524655: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524625: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524595: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524565: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524535: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524505: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524730: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524475: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524700: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}, 1350524670: {'pending': 0.0, 'enabled': 1.0, 'approved': 1.0, 'rejected': 0.0}}
[(1350524475, [1.0, 1.0, 0.0, 0.0]), (1350524490, [1.0, 1.0, 0.0, 0.0]), (1350524505, [1.0, 1.0, 0.0, 0.0]), (1350524520, [1.0, 1.0, 0.0, 0.0]), (1350524535, [1.0, 1.0, 0.0, 0.0]), (1350524550, [1.0, 1.0, 0.0, 0.0]), (1350524565, [1.0, 1.0, 0.0, 0.0]), (1350524580, [1.0, 1.0, 0.0, 0.0]), (1350524595, [1.0, 1.0, 0.0, 0.0]), (1350524610, [1.0, 1.0, 0.0, 0.0]), (1350524625, [1.0, 1.0, 0.0, 0.0]), (1350524640, [1.0, 1.0, 0.0, 0.0]), (1350524655, [1.0, 1.0, 0.0, 0.0]), (1350524670, [1.0, 1.0, 0.0, 0.0]), (1350524685, [1.0, 1.0, 0.0, 0.0]), (1350524700, [1.0, 1.0, 0.0, 0.0]), (1350524715, [1.0, 1.0, 0.0, 0.0]), (1350524730, [1.0, 1.0, 0.0, 0.0]), (1350524745, [1.0, 1.0, 0.0, 0.0])]

When the same code is run with bogus column names, it yields:

{1350524640: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524610: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524580: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524805: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524550: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524775: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524520: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524745: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524715: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524685: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524655: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524625: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524595: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524565: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524790: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524535: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524760: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524730: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524700: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}, 1350524670: {'pending_bogus': 0.0, 'rejected_bogus': 0.0, 'approved_bogus': 1.0, 'enabled_bogus': 1.0}}
[(1350524520, [None, None, None, None]), (1350524535, [None, None, None, None]), (1350524550, [None, None, None, None]), (1350524565, [None, None, None, None]), (1350524580, [None, None, None, None]), (1350524595, [None, None, None, None]), (1350524610, [None, None, None, None]), (1350524625, [None, None, None, None]), (1350524640, [None, None, None, None]), (1350524655, [None, None, None, None]), (1350524670, [None, None, None, None]), (1350524685, [None, None, None, None]), (1350524700, [None, None, None, None]), (1350524715, [None, None, None, None]), (1350524730, [None, None, None, None]), (1350524745, [None, None, None, None]), (1350524760, [None, None, None, None]), (1350524775, [None, None, None, None]), (1350524790, [None, None, None, None]), (1350524805, [None, None, None, None])]

This is confusing to the aggregate developer: addData() should throw an error when you give it a hash containing an invalid column name, rather than silently insert empty rows.

Change History (0)

Note: See TracTickets for help on using tickets.