Pulling UMS fencepost offset into script argument

This commit is contained in:
Andrew Melton 2014-03-05 13:52:49 -05:00
parent d8c382744d
commit a5d4836e12
2 changed files with 17 additions and 7 deletions

View File

@ -65,6 +65,8 @@ select stacktach_instancereconcile.id,
stacktach_instancereconcile.deleted_at > %s)
) and stacktach_instancereconcile.launched_at < %s;"""
DEFAULT_UMS_OFFSET = 4 * 60 * 60 # 4 Hours
reconciler = None
@ -190,12 +192,14 @@ def _launch_audit_for_period(beginning, ending):
return launch_to_exists_fails, new_launches.count(), len(old_launches_dict)
def audit_for_period(beginning, ending, ums=False):
def audit_for_period(beginning, ending, ums=False, ums_offset=0):
beginning_decimal = dt.dt_to_decimal(beginning)
ending_decimal = dt.dt_to_decimal(ending)
if ums:
verifier_audit_func = usage_audit._verifier_audit_for_day_ums
def verifier_audit_func(start, end, model):
return usage_audit._verifier_audit_for_day_ums(start, end, model,
ums_offset)
else:
verifier_audit_func = usage_audit._verifier_audit_for_day
@ -272,8 +276,13 @@ if __name__ == '__main__':
type=str,
default='/etc/stacktach/reconciler-config.json')
parser.add_argument('--ums',
help="Use query to match UMS",
help="Use query to match UMS, "
"period length of 'day' required.",
action='store_true')
parser.add_argument('--ums-offset',
help="UMS' fencepost offset in seconds. Default: 4 days",
type=int,
default=DEFAULT_UMS_OFFSET)
args = parser.parse_args()
if args.ums and args.period_length != 'day':
@ -297,7 +306,8 @@ if __name__ == '__main__':
start, end = usage_audit.get_previous_period(time, args.period_length)
summary, details = audit_for_period(start, end, ums=args.ums)
summary, details = audit_for_period(start, end, ums=args.ums,
ums_offset=args.ums_offset)
if not args.store:
print make_json_report(summary, details)

View File

@ -103,7 +103,7 @@ def _verifier_audit_for_day(beginning, ending, exists_model):
return summary, detail
def _verifier_audit_for_day_ums(beginning, ending, exists_model):
def _verifier_audit_for_day_ums(beginning, ending, exists_model, ums_offset):
summary = {}
# NOTE(apmelton):
@ -114,9 +114,9 @@ def _verifier_audit_for_day_ums(beginning, ending, exists_model):
# audit_period_begin_timestamp >= sysdate-1||'12.00.00.000000000 AM')
# OR (created_date > sysdate-1||'04.00.00.000000000 AM' and
# audit_period_begin_timestamp < sysdate||'12.00.00.000000000 AM' ))
ums = (Q(raw__when__gte=beginning, raw__when__lte=beginning + (4*60*60),
ums = (Q(raw__when__gte=beginning, raw__when__lte=beginning + ums_offset,
audit_period_beginning__gte=beginning) |
Q(raw__when__gt=beginning + (4*60*60),
Q(raw__when__gt=beginning + ums_offset,
audit_period_beginning__lt=ending))
periodic_range = Q(audit_period_ending=(F('audit_period_beginning') +