From 96455478b1bcab701646133c4e2f9103759aeaa7 Mon Sep 17 00:00:00 2001 From: Furr Date: Thu, 20 Sep 2018 10:24:27 -0400 Subject: [PATCH 01/90] working on mongolog_purge commands --- .../management/commands/mongolog_purge.py | 48 +++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 mongolog/management/commands/mongolog_purge.py diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py new file mode 100644 index 0000000..5a37051 --- /dev/null +++ b/mongolog/management/commands/mongolog_purge.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- +# !/usr/bin/env python +from __future__ import print_function +import logging +import logging.config +import django +import json + +import pymongo +pymongo_version = int(pymongo.version.split(".")[0]) +if pymongo_version >= 3: + from pymongo.collection import ReturnDocument # noqa: F40 + +from mongolog.handlers import get_mongolog_handler + +from django.core.management.base import BaseCommand + +logger = logging.getLogger('console') + + +class Command(BaseCommand): + + def add_arguments(self, parser): + parser.add_argument( + '-p', '--purge', default=False, action='store_true', dest='purge', + help='Remove all old results', + ) + parser.add_argument( + '-d', '--d', default=14, type=int, action='store', dest='delete', + help='Remove documents more than -d={n} days old', + ) + + def __init__(self, *args, **kwargs): + super(Command, self).__init__(*args, **kwargs) + self.prev_object_id = None + + def purge(self): + print("Purging all mongolog documents") + + def delete(self, **options): + days = options['delete'] + print("Removing documents older than %s day's") + + def handle(self, *args, **options): + if options['purge']: + self.purge() + elif options['delete']: + self.delete(options) From bbe9209e11a1ad06a0c314aa4fa676637bfb32b9 Mon Sep 17 00:00:00 2001 From: Furr Date: Thu, 20 Sep 2018 10:26:47 -0400 Subject: [PATCH 02/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 5a37051..755610b 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -45,4 +45,4 @@ def handle(self, *args, **options): if options['purge']: self.purge() elif options['delete']: - self.delete(options) + self.delete(**options) From fde97d023504fbd5d35494df5a05d11a85b01071 Mon Sep 17 00:00:00 2001 From: Furr Date: Mon, 24 Sep 2018 10:29:26 -0400 Subject: [PATCH 03/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 755610b..4a5b556 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -39,7 +39,7 @@ def purge(self): def delete(self, **options): days = options['delete'] - print("Removing documents older than %s day's") + print("Removing documents older than %s day's" % days) def handle(self, *args, **options): if options['purge']: From ba5203a031c34e186d6cddedba3fe84cc7fb5294 Mon Sep 17 00:00:00 2001 From: Furr Date: Mon, 24 Sep 2018 10:30:42 -0400 Subject: [PATCH 04/90] import mongolog --- mongolog/management/commands/mongolog_purge.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 4a5b556..f3b67d1 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -12,6 +12,7 @@ from pymongo.collection import ReturnDocument # noqa: F40 from mongolog.handlers import get_mongolog_handler +from mongolog.models import Mongolog from django.core.management.base import BaseCommand @@ -39,6 +40,7 @@ def purge(self): def delete(self, **options): days = options['delete'] + print("Removing documents older than %s day's" % days) def handle(self, *args, **options): From 95baa2a64ec0558d33ebc0fa4a1b705c2d228c69 Mon Sep 17 00:00:00 2001 From: Furr Date: Mon, 24 Sep 2018 10:31:56 -0400 Subject: [PATCH 05/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index f3b67d1..7135161 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -40,7 +40,7 @@ def purge(self): def delete(self, **options): days = options['delete'] - + print(Mongolog.find() ) print("Removing documents older than %s day's" % days) def handle(self, *args, **options): From db5938e08e8aa5afb389a64c0d54d8ac5703960c Mon Sep 17 00:00:00 2001 From: Furr Date: Mon, 24 Sep 2018 10:35:59 -0400 Subject: [PATCH 06/90] Test loop --- mongolog/management/commands/mongolog_purge.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 7135161..8ea6204 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -14,6 +14,7 @@ from mongolog.handlers import get_mongolog_handler from mongolog.models import Mongolog +from django.utils import timezone from django.core.management.base import BaseCommand logger = logging.getLogger('console') @@ -40,6 +41,9 @@ def purge(self): def delete(self, **options): days = options['delete'] + for i in list(Mongolog.find({'created': {'$lte': timezone.now}})): + print(i) + print(Mongolog.find() ) print("Removing documents older than %s day's" % days) From e6984835a3cd6ba83a29224cea94ba6a2d5dd1b0 Mon Sep 17 00:00:00 2001 From: Furr Date: Mon, 24 Sep 2018 10:39:27 -0400 Subject: [PATCH 07/90] Query --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 8ea6204..e9faef3 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -41,7 +41,7 @@ def purge(self): def delete(self, **options): days = options['delete'] - for i in list(Mongolog.find({'created': {'$lte': timezone.now}})): + for i in list(Mongolog.find(query={'created': {'$lte': timezone.now}})): print(i) print(Mongolog.find() ) From 0309ad2495cea4b9b717d9f0a74f59af597a3188 Mon Sep 17 00:00:00 2001 From: Furr Date: Mon, 24 Sep 2018 10:40:51 -0400 Subject: [PATCH 08/90] now -> now() --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index e9faef3..007c073 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -41,7 +41,7 @@ def purge(self): def delete(self, **options): days = options['delete'] - for i in list(Mongolog.find(query={'created': {'$lte': timezone.now}})): + for i in list(Mongolog.find(query={'created': {'$lte': timezone.now()}})): print(i) print(Mongolog.find() ) From 95f908f68da365864b186b068068c0113aab7cf1 Mon Sep 17 00:00:00 2001 From: Furr Date: Mon, 24 Sep 2018 10:42:08 -0400 Subject: [PATCH 09/90] pretty print --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 007c073..bedb490 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -42,7 +42,7 @@ def purge(self): def delete(self, **options): days = options['delete'] for i in list(Mongolog.find(query={'created': {'$lte': timezone.now()}})): - print(i) + print(json.dumps(i, indent=4, sort_keys=True, default=str)) print(Mongolog.find() ) print("Removing documents older than %s day's" % days) From abe487dc7cb0f9e5041b8449ecac9a5526384f09 Mon Sep 17 00:00:00 2001 From: Furr Date: Mon, 24 Sep 2018 10:43:59 -0400 Subject: [PATCH 10/90] update datetime based on user pref --- mongolog/management/commands/mongolog_purge.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index bedb490..5547096 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -5,6 +5,7 @@ import logging.config import django import json +from datetime import datetime, timedelta import pymongo pymongo_version = int(pymongo.version.split(".")[0]) @@ -41,7 +42,11 @@ def purge(self): def delete(self, **options): days = options['delete'] - for i in list(Mongolog.find(query={'created': {'$lte': timezone.now()}})): + now = timezone.now() + query_date = now() - timedelta(days=days) + print("now(%s) - query_date(%s)" % (now, query_date)) + + for i in list(Mongolog.find(query={'created': {'$lte': query_date}})): print(json.dumps(i, indent=4, sort_keys=True, default=str)) print(Mongolog.find() ) From c787a23badadf4bdc4aef4174c41f19f6c317ee0 Mon Sep 17 00:00:00 2001 From: Furr Date: Mon, 24 Sep 2018 10:44:51 -0400 Subject: [PATCH 11/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 5547096..cb5bd8b 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -43,7 +43,7 @@ def purge(self): def delete(self, **options): days = options['delete'] now = timezone.now() - query_date = now() - timedelta(days=days) + query_date = now - timedelta(days=days) print("now(%s) - query_date(%s)" % (now, query_date)) for i in list(Mongolog.find(query={'created': {'$lte': query_date}})): From 357b8b013ec00c6fd286abeafbf408dc905c28b5 Mon Sep 17 00:00:00 2001 From: Furr Date: Mon, 24 Sep 2018 10:47:00 -0400 Subject: [PATCH 12/90] . --- mongolog/management/commands/mongolog_purge.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index cb5bd8b..c9d8a4c 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -46,10 +46,12 @@ def delete(self, **options): query_date = now - timedelta(days=days) print("now(%s) - query_date(%s)" % (now, query_date)) - for i in list(Mongolog.find(query={'created': {'$lte': query_date}})): + docs = list(Mongolog.find(query={'created': {'$lte': query_date}})) + for i in docs: print(json.dumps(i, indent=4, sort_keys=True, default=str)) print(Mongolog.find() ) + print("Total docs to remove: %s" % len(docs)) print("Removing documents older than %s day's" % days) def handle(self, *args, **options): From 3a961279dfe563cbf437a8f103f214ed75fab177 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:09:49 -0400 Subject: [PATCH 13/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index c9d8a4c..c161f49 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -57,5 +57,5 @@ def delete(self, **options): def handle(self, *args, **options): if options['purge']: self.purge() - elif options['delete']: + elif isinstance(options['delete'], int): self.delete(**options) From d00c575cc226b453eda41cb35ad9035f03c2d095 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:11:29 -0400 Subject: [PATCH 14/90] . --- mongolog/management/commands/mongolog_purge.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index c161f49..726a324 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -49,6 +49,7 @@ def delete(self, **options): docs = list(Mongolog.find(query={'created': {'$lte': query_date}})) for i in docs: print(json.dumps(i, indent=4, sort_keys=True, default=str)) + i.delete() print(Mongolog.find() ) print("Total docs to remove: %s" % len(docs)) From eba5cb0baf2d48eaf81e51373775e9edad299189 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:12:35 -0400 Subject: [PATCH 15/90] . --- mongolog/management/commands/mongolog_purge.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 726a324..99f2140 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -50,6 +50,7 @@ def delete(self, **options): for i in docs: print(json.dumps(i, indent=4, sort_keys=True, default=str)) i.delete() + print("Delete called") print(Mongolog.find() ) print("Total docs to remove: %s" % len(docs)) From e60c1a50c752e4afa181048b50ab0dc5cdbe3f44 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:15:43 -0400 Subject: [PATCH 16/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 99f2140..da1e7a4 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -47,7 +47,7 @@ def delete(self, **options): print("now(%s) - query_date(%s)" % (now, query_date)) docs = list(Mongolog.find(query={'created': {'$lte': query_date}})) - for i in docs: + for i in Mongolog.find(query={'created': {'$lte': query_date}}): print(json.dumps(i, indent=4, sort_keys=True, default=str)) i.delete() print("Delete called") From 8f598de590eccd937222b5965e8fb1f262300d5b Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:19:16 -0400 Subject: [PATCH 17/90] . --- mongolog/management/commands/mongolog_purge.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index da1e7a4..f9ba23f 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -11,6 +11,7 @@ pymongo_version = int(pymongo.version.split(".")[0]) if pymongo_version >= 3: from pymongo.collection import ReturnDocument # noqa: F40 +from pymongo import MongoClient from mongolog.handlers import get_mongolog_handler from mongolog.models import Mongolog @@ -22,6 +23,8 @@ class Command(BaseCommand): + client = MongoClient(handler.connection) + db = client.mongolog def add_arguments(self, parser): parser.add_argument( @@ -45,12 +48,12 @@ def delete(self, **options): now = timezone.now() query_date = now - timedelta(days=days) print("now(%s) - query_date(%s)" % (now, query_date)) - + print(self.db) docs = list(Mongolog.find(query={'created': {'$lte': query_date}})) for i in Mongolog.find(query={'created': {'$lte': query_date}}): print(json.dumps(i, indent=4, sort_keys=True, default=str)) - i.delete() - print("Delete called") + #self.db..delete() + #print("Delete called") print(Mongolog.find() ) print("Total docs to remove: %s" % len(docs)) From 199d2b9b0d71571517e0dee6781dd2e039190803 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:22:25 -0400 Subject: [PATCH 18/90] . --- mongolog/management/commands/mongolog_purge.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index f9ba23f..b7572d4 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -20,11 +20,12 @@ from django.core.management.base import BaseCommand logger = logging.getLogger('console') +handler = get_mongolog_handler() +client = MongoClient(handler.connection) +db = client.mongolog class Command(BaseCommand): - client = MongoClient(handler.connection) - db = client.mongolog def add_arguments(self, parser): parser.add_argument( From 3ac15907909dbe571436dd0b27f5204c1ab5e35f Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:24:19 -0400 Subject: [PATCH 19/90] . --- mongolog/management/commands/mongolog_purge.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index b7572d4..1d6224c 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -49,10 +49,11 @@ def delete(self, **options): now = timezone.now() query_date = now - timedelta(days=days) print("now(%s) - query_date(%s)" % (now, query_date)) - print(self.db) + print(db.mongolog) docs = list(Mongolog.find(query={'created': {'$lte': query_date}})) for i in Mongolog.find(query={'created': {'$lte': query_date}}): print(json.dumps(i, indent=4, sort_keys=True, default=str)) + db.mongolog #self.db..delete() #print("Delete called") From ed05761ff07fb5d32a14433d9ddaf6d5b77d0cce Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:39:43 -0400 Subject: [PATCH 20/90] . --- mongolog/management/commands/mongolog_purge.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 1d6224c..5bdb18a 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -60,6 +60,7 @@ def delete(self, **options): print(Mongolog.find() ) print("Total docs to remove: %s" % len(docs)) print("Removing documents older than %s day's" % days) + db.mongolog.delete_one(query_date) def handle(self, *args, **options): if options['purge']: From 82c060f7613852f319f571445b05604b7d29b569 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:51:19 -0400 Subject: [PATCH 21/90] . --- .../management/commands/mongolog_purge.py | 28 +++++++++---------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 5bdb18a..a5c8033 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -19,7 +19,10 @@ from django.utils import timezone from django.core.management.base import BaseCommand +# Is this actually used? logger = logging.getLogger('console') + +console = logging.getLogger('mongolog-int') handler = get_mongolog_handler() client = MongoClient(handler.connection) db = client.mongolog @@ -46,21 +49,18 @@ def purge(self): def delete(self, **options): days = options['delete'] - now = timezone.now() - query_date = now - timedelta(days=days) - print("now(%s) - query_date(%s)" % (now, query_date)) - print(db.mongolog) - docs = list(Mongolog.find(query={'created': {'$lte': query_date}})) - for i in Mongolog.find(query={'created': {'$lte': query_date}}): - print(json.dumps(i, indent=4, sort_keys=True, default=str)) - db.mongolog - #self.db..delete() - #print("Delete called") + query={ + 'created': { + '$lte': timezone.now() - timedelta(days=days) + } + }) - print(Mongolog.find() ) - print("Total docs to remove: %s" % len(docs)) - print("Removing documents older than %s day's" % days) - db.mongolog.delete_one(query_date) + console.warn("Removing documents older than %s day's", days) + #print("Removing documents older than %s day's" % days) + total = db.mongolog.find(query).count() + console.info("Total docs to remove: %s", total) + #print("Total docs to remove: %s" % total) + db.mongolog.delete_many(query) def handle(self, *args, **options): if options['purge']: From 062508528d09d3560472a428820a3cf858bea0c4 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:52:09 -0400 Subject: [PATCH 22/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index a5c8033..69b65ae 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -53,7 +53,7 @@ def delete(self, **options): 'created': { '$lte': timezone.now() - timedelta(days=days) } - }) + } console.warn("Removing documents older than %s day's", days) #print("Removing documents older than %s day's" % days) From 0283d43a13669e891724e11e1f44e4ebfbd70fe4 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 08:57:35 -0400 Subject: [PATCH 23/90] . --- .../management/commands/mongolog_purge.py | 25 +++++++++++++++---- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 69b65ae..795bf18 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -36,8 +36,12 @@ def add_arguments(self, parser): help='Remove all old results', ) parser.add_argument( - '-d', '--d', default=14, type=int, action='store', dest='delete', - help='Remove documents more than -d={n} days old', + '-d', '--delete', default=14, type=int, action='store', dest='delete', + help='Delete documents more than -d={n} days old', + ) + parser.add_argument( + '-f', '--force', default=False, type=bool, action='store_true', dest='force', + help='Do not prompt before removing documents', ) def __init__(self, *args, **kwargs): @@ -49,17 +53,28 @@ def purge(self): def delete(self, **options): days = options['delete'] + console.warn("Looking for documents older than %s day's", days) + query={ 'created': { '$lte': timezone.now() - timedelta(days=days) } } - console.warn("Removing documents older than %s day's", days) - #print("Removing documents older than %s day's" % days) total = db.mongolog.find(query).count() console.info("Total docs to remove: %s", total) - #print("Total docs to remove: %s" % total) + + if options['force']: + ans = 'n' + while 1: + console.warn("Would you like to proceed? Y/N") + ans = raw() + if ans.lower not in ['y', 'yes', 'n', 'no': + continue + if ans[0] == 'n': + console.log("You chose to not continue. Bye!") + sys.exit(1) + db.mongolog.delete_many(query) def handle(self, *args, **options): From 112f3f346ed9d37372f54a2d488494aac5481dd0 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:01:12 -0400 Subject: [PATCH 24/90] . --- mongolog/management/commands/mongolog_purge.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 795bf18..96fe2f4 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -62,20 +62,23 @@ def delete(self, **options): } total = db.mongolog.find(query).count() - console.info("Total docs to remove: %s", total) + console.warn("Total docs to remove: %s", total) if options['force']: ans = 'n' while 1: console.warn("Would you like to proceed? Y/N") ans = raw() - if ans.lower not in ['y', 'yes', 'n', 'no': + if ans.lower() not in ['y', 'yes', 'n', 'no']: continue - if ans[0] == 'n': - console.log("You chose to not continue. Bye!") + elif ans[0] == 'n': + console.log("You chose not to continue. Bye!") sys.exit(1) + elif ans[1] == 'y': + break db.mongolog.delete_many(query) + console.info("Total docs removed: %s", total) def handle(self, *args, **options): if options['purge']: From a1ee69a1a5cdde5953db49021de0320c91b50dc0 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:02:48 -0400 Subject: [PATCH 25/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 96fe2f4..75e74d7 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -40,7 +40,7 @@ def add_arguments(self, parser): help='Delete documents more than -d={n} days old', ) parser.add_argument( - '-f', '--force', default=False, type=bool, action='store_true', dest='force', + '-f', '--force', default=False, action='store_true', dest='force', help='Do not prompt before removing documents', ) From 0eec045c616aa0096e581021bb42ef3da7f12e2a Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:03:58 -0400 Subject: [PATCH 26/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 75e74d7..fa7ae09 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -64,7 +64,7 @@ def delete(self, **options): total = db.mongolog.find(query).count() console.warn("Total docs to remove: %s", total) - if options['force']: + if not options['force']: ans = 'n' while 1: console.warn("Would you like to proceed? Y/N") From 06e5a295b312ebb7ba8a433be20e72022f98ce71 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:04:51 -0400 Subject: [PATCH 27/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index fa7ae09..7b37738 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -68,7 +68,7 @@ def delete(self, **options): ans = 'n' while 1: console.warn("Would you like to proceed? Y/N") - ans = raw() + ans = input() if ans.lower() not in ['y', 'yes', 'n', 'no']: continue elif ans[0] == 'n': From 9984b608b481c5b57995eced02e7f466da7d1856 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:05:38 -0400 Subject: [PATCH 28/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 7b37738..933bc99 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -72,7 +72,7 @@ def delete(self, **options): if ans.lower() not in ['y', 'yes', 'n', 'no']: continue elif ans[0] == 'n': - console.log("You chose not to continue. Bye!") + console.info("You chose not to continue. Bye!") sys.exit(1) elif ans[1] == 'y': break From a88cac297653b131e86ce6ab95bad1f19064fe12 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:08:38 -0400 Subject: [PATCH 29/90] . --- .../management/commands/mongolog_purge.py | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 933bc99..d98078c 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -1,28 +1,24 @@ # -*- coding: utf-8 -*- -# !/usr/bin/env python from __future__ import print_function +import sys import logging import logging.config -import django -import json -from datetime import datetime, timedelta +from datetime import timedelta import pymongo -pymongo_version = int(pymongo.version.split(".")[0]) -if pymongo_version >= 3: - from pymongo.collection import ReturnDocument # noqa: F40 from pymongo import MongoClient from mongolog.handlers import get_mongolog_handler -from mongolog.models import Mongolog from django.utils import timezone from django.core.management.base import BaseCommand -# Is this actually used? -logger = logging.getLogger('console') +pymongo_version = int(pymongo.version.split(".")[0]) +if pymongo_version >= 3: + from pymongo.collection import ReturnDocument # noqa: F40 console = logging.getLogger('mongolog-int') + handler = get_mongolog_handler() client = MongoClient(handler.connection) db = client.mongolog @@ -54,8 +50,8 @@ def purge(self): def delete(self, **options): days = options['delete'] console.warn("Looking for documents older than %s day's", days) - - query={ + + query = { 'created': { '$lte': timezone.now() - timedelta(days=days) } From 80d83dbe6c05907f9a907a7d31e0a71969603b01 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:09:57 -0400 Subject: [PATCH 30/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index d98078c..7e3074e 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -64,7 +64,7 @@ def delete(self, **options): ans = 'n' while 1: console.warn("Would you like to proceed? Y/N") - ans = input() + ans = input().strip() if ans.lower() not in ['y', 'yes', 'n', 'no']: continue elif ans[0] == 'n': From 221ee4cb33b92f2c14d6e41ab647786d7a7ea525 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:10:38 -0400 Subject: [PATCH 31/90] . --- mongolog/management/commands/mongolog_purge.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 7e3074e..c9e0e3a 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -65,6 +65,7 @@ def delete(self, **options): while 1: console.warn("Would you like to proceed? Y/N") ans = input().strip() + console.error("You ans: %s", ans) if ans.lower() not in ['y', 'yes', 'n', 'no']: continue elif ans[0] == 'n': From d7a36b394130bb0c268145b4835aa83a67154ee1 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:11:32 -0400 Subject: [PATCH 32/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index c9e0e3a..eaaee9f 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -64,7 +64,7 @@ def delete(self, **options): ans = 'n' while 1: console.warn("Would you like to proceed? Y/N") - ans = input().strip() + ans = input().strip().lower() console.error("You ans: %s", ans) if ans.lower() not in ['y', 'yes', 'n', 'no']: continue From 107c19f19c1e2ce69764593fb4931417b15e2e30 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:12:23 -0400 Subject: [PATCH 33/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index eaaee9f..2a7e8f1 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -66,7 +66,7 @@ def delete(self, **options): console.warn("Would you like to proceed? Y/N") ans = input().strip().lower() console.error("You ans: %s", ans) - if ans.lower() not in ['y', 'yes', 'n', 'no']: + if ans not in ['y', 'yes', 'n', 'no']: continue elif ans[0] == 'n': console.info("You chose not to continue. Bye!") From 65fcee7e6a936a88e28098fbdda94ceb572b0d1a Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:16:41 -0400 Subject: [PATCH 34/90] . --- .../management/commands/mongolog_purge.py | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 2a7e8f1..a86906f 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -44,8 +44,27 @@ def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) self.prev_object_id = None + def confirm(self): + if not self.options['force']: + ans = 'n' + while 1: + console.warn("Would you like to proceed? Y/N") + ans = input().strip().lower() + console.error("You ans: %s", ans) + if ans not in ['y', 'yes', 'n', 'no']: + continue + elif ans[0] == 'n': + console.info("You chose not to continue. Bye!") + sys.exit(1) + elif ans[1] == 'y': + return True + def purge(self): print("Purging all mongolog documents") + print(self.options) + console.warn("You are about to delete all mongolog documents!!!") + if self.confirm(): + db.mongolog.delete_many({}) def delete(self, **options): days = options['delete'] @@ -60,22 +79,9 @@ def delete(self, **options): total = db.mongolog.find(query).count() console.warn("Total docs to remove: %s", total) - if not options['force']: - ans = 'n' - while 1: - console.warn("Would you like to proceed? Y/N") - ans = input().strip().lower() - console.error("You ans: %s", ans) - if ans not in ['y', 'yes', 'n', 'no']: - continue - elif ans[0] == 'n': - console.info("You chose not to continue. Bye!") - sys.exit(1) - elif ans[1] == 'y': - break - - db.mongolog.delete_many(query) - console.info("Total docs removed: %s", total) + if self.confirm(): + db.mongolog.delete_many(query) + console.info("Total docs removed: %s", total) def handle(self, *args, **options): if options['purge']: From 64eab7583b45332db326c75a7668619729f61b6c Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:18:02 -0400 Subject: [PATCH 35/90] . --- mongolog/management/commands/mongolog_purge.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index a86906f..f1299c7 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -44,8 +44,8 @@ def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) self.prev_object_id = None - def confirm(self): - if not self.options['force']: + def confirm(self, **options): + if not options['force']: ans = 'n' while 1: console.warn("Would you like to proceed? Y/N") @@ -79,12 +79,12 @@ def delete(self, **options): total = db.mongolog.find(query).count() console.warn("Total docs to remove: %s", total) - if self.confirm(): + if self.confirm(**options): db.mongolog.delete_many(query) console.info("Total docs removed: %s", total) def handle(self, *args, **options): if options['purge']: - self.purge() + self.purge(**options) elif isinstance(options['delete'], int): self.delete(**options) From dfb4b333ce6cc906c3dcec933f85279268216c79 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:19:54 -0400 Subject: [PATCH 36/90] . --- mongolog/management/commands/mongolog_purge.py | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index f1299c7..5964131 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -46,18 +46,19 @@ def __init__(self, *args, **kwargs): def confirm(self, **options): if not options['force']: - ans = 'n' while 1: console.warn("Would you like to proceed? Y/N") ans = input().strip().lower() - console.error("You ans: %s", ans) + if ans not in ['y', 'yes', 'n', 'no']: continue elif ans[0] == 'n': console.info("You chose not to continue. Bye!") sys.exit(1) elif ans[1] == 'y': - return True + break + + return True def purge(self): print("Purging all mongolog documents") From 56aaf1524a1679fc4374d17e42b23e891af0f34f Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:21:58 -0400 Subject: [PATCH 37/90] . --- mongolog/management/commands/mongolog_purge.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 5964131..a6cd800 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -49,13 +49,13 @@ def confirm(self, **options): while 1: console.warn("Would you like to proceed? Y/N") ans = input().strip().lower() - + console.error("Your ans: %s", ans) if ans not in ['y', 'yes', 'n', 'no']: continue elif ans[0] == 'n': console.info("You chose not to continue. Bye!") sys.exit(1) - elif ans[1] == 'y': + elif ans[0] == 'y': break return True From 9d043c8808d08f80f9313eea3df82e611c9459a3 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:23:29 -0400 Subject: [PATCH 38/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index a6cd800..49396d6 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -49,7 +49,7 @@ def confirm(self, **options): while 1: console.warn("Would you like to proceed? Y/N") ans = input().strip().lower() - console.error("Your ans: %s", ans) + if ans not in ['y', 'yes', 'n', 'no']: continue elif ans[0] == 'n': From d0a8eda5b264c7139d82df4d699f98c4b57a6498 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:24:28 -0400 Subject: [PATCH 39/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 49396d6..560f33d 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -60,7 +60,7 @@ def confirm(self, **options): return True - def purge(self): + def purge(self, **options): print("Purging all mongolog documents") print(self.options) console.warn("You are about to delete all mongolog documents!!!") From 70bc75cb06ca96eca11ad457b14f7f47c64015ed Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:25:31 -0400 Subject: [PATCH 40/90] . --- mongolog/management/commands/mongolog_purge.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 560f33d..c1ef93e 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -61,8 +61,6 @@ def confirm(self, **options): return True def purge(self, **options): - print("Purging all mongolog documents") - print(self.options) console.warn("You are about to delete all mongolog documents!!!") if self.confirm(): db.mongolog.delete_many({}) From f94f5b154884b867254088cb10edad3dbf477e51 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:26:20 -0400 Subject: [PATCH 41/90] . --- mongolog/management/commands/mongolog_purge.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index c1ef93e..8929204 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -61,6 +61,7 @@ def confirm(self, **options): return True def purge(self, **options): + console.error(options) console.warn("You are about to delete all mongolog documents!!!") if self.confirm(): db.mongolog.delete_many({}) From c564b53ea81609adda527e5c8d2fe98da8e692c2 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:27:27 -0400 Subject: [PATCH 42/90] . --- mongolog/management/commands/mongolog_purge.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 8929204..8268e63 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -61,9 +61,8 @@ def confirm(self, **options): return True def purge(self, **options): - console.error(options) console.warn("You are about to delete all mongolog documents!!!") - if self.confirm(): + if self.confirm(options): db.mongolog.delete_many({}) def delete(self, **options): From 1e7f27356a552d083eaa63bd70f3f54a1f9c469e Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:28:27 -0400 Subject: [PATCH 43/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 8268e63..6c42884 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -62,7 +62,7 @@ def confirm(self, **options): def purge(self, **options): console.warn("You are about to delete all mongolog documents!!!") - if self.confirm(options): + if self.confirm(**options): db.mongolog.delete_many({}) def delete(self, **options): From 79fbfc9d4eea98153ffd29f0b40f736e2f1dbe89 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:30:57 -0400 Subject: [PATCH 44/90] . --- mongolog/management/commands/mongolog_purge.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 6c42884..313dc35 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -39,6 +39,10 @@ def add_arguments(self, parser): '-f', '--force', default=False, action='store_true', dest='force', help='Do not prompt before removing documents', ) + parser.add_argument( + '-b', '--backup', default=False, action='store_true', dest='backup', + help='Backup collection before deleting', + ) def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) @@ -82,7 +86,14 @@ def delete(self, **options): db.mongolog.delete_many(query) console.info("Total docs removed: %s", total) + def backup(self, **options): + console.info("Backing up your documents...") + sys.exit(1) + def handle(self, *args, **options): + if options['backup']: + self.backup(**options) + if options['purge']: self.purge(**options) elif isinstance(options['delete'], int): From 1e306333e4e17c2a3f3ff7eef634e0ad2bf62882 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:39:28 -0400 Subject: [PATCH 45/90] . --- mongolog/management/commands/analog.py | 110 ------------------ .../management/commands/mongolog_purge.py | 1 + 2 files changed, 1 insertion(+), 110 deletions(-) delete mode 100644 mongolog/management/commands/analog.py diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py deleted file mode 100644 index 37a2886..0000000 --- a/mongolog/management/commands/analog.py +++ /dev/null @@ -1,110 +0,0 @@ -# -*- coding: utf-8 -*- -# !/usr/bin/env python -from __future__ import print_function -import logging -import logging.config -import django -import json - -import pymongo -pymongo_version = int(pymongo.version.split(".")[0]) -if pymongo_version >= 3: - from pymongo.collection import ReturnDocument # noqa: F40 - -from mongolog.handlers import get_mongolog_handler - -from django.core.management.base import BaseCommand - -logger = logging.getLogger('console') - - -class Command(BaseCommand): - if django.VERSION[1] <= 7: - from optparse import make_option - option_list = BaseCommand.option_list + ( - make_option( - '-l', '--limit', default=10, type=int, action='store', dest='limit', - help='Delete poll instead of closing it'), - make_option( - '-t', '--tail', default=False, action='store_true', dest='tail', - help='Tail the log file. By default it will limit to 10 results. Use --limit to change'), - make_option( - '-q', '--query', default=None, action='store', dest='query', - help='Pass in a search query to mongo.'), - ) - - def __init__(self, *args, **kwargs): - super(Command, self).__init__(*args, **kwargs) - self.prev_object_id = None - - def add_arguments(self, parser): - if django.VERSION[1] >= 7: - parser.add_argument( - '-l', '--limit', default=10, type=int, action='store', dest='limit', - help='Limit Results', - ) - parser.add_argument( - '-t', '--tail', default=False, action='store_true', dest='tail', - help='Tail the log file. By default it will limit to 10 results. Use --limit to change', - ) - parser.add_argument( - '-q', '--query', default=None, type=str, action='store', dest='query', - help='Pass in a search query to mongo.', - ) - - def print_results(self, results): - # older versions of pymongo didn't use a CommandCursor object to iterate over the results. - # We check by trying to convert to a list and if there is a TypeError we continue on - # and try to iterate over 'results' as thought it were a Cursor object. - try: - results = list(results['result']) - results.reverse() - except TypeError: - pass - - for r in results: - level = r.get('level', None) - if level == 'INFO': - logger.info(r) - elif level == 'WARNING': - logger.warn(r) - elif level == 'ERROR': - logger.error(r) - elif level == 'DEBUG': - logger.debug(r) - elif level == 'CRITICAL': - logger.critical(r) - elif level == 'MONGOLOG-INTERNAL' or level is None: - # Print nothing if it's a mongolog internal log - pass - else: - raise Exception("level(%s) not found" % level) - - def fetch_results(self, options): - query = options['query'] if options['query'] else {} - proj = {'_id': 1, 'level': 1, 'msg': 1} - limit = options['limit'] - return self.collection.aggregate([ - {"$match": query}, - {"$project": proj}, - {"$sort": {'created': pymongo.DESCENDING}}, - {"$limit": limit}, - ]) - - def tail(self, options): - initial = self.fetch_results(options) - self.print_results(initial) - raise NotImplementedError("--tail not finshed") - - def handle(self, *args, **options): - if options['query']: - options['query'] = json.loads(options['query']) - - handler = get_mongolog_handler('simple') - self.collection = handler.get_collection() - - if options['tail']: - self.tail(options) - else: - results = self.fetch_results(options) - self.print_results(results) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 313dc35..bff5617 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -88,6 +88,7 @@ def delete(self, **options): def backup(self, **options): console.info("Backing up your documents...") + subprocess.check_call(['mongodump']) sys.exit(1) def handle(self, *args, **options): From adf89ed9e73d93505f76a53e3c93d90b42e4b882 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:40:37 -0400 Subject: [PATCH 46/90] . --- mongolog/management/commands/mongolog_purge.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index bff5617..5b48f1b 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -4,6 +4,7 @@ import logging import logging.config from datetime import timedelta +import subprocess import pymongo from pymongo import MongoClient @@ -88,7 +89,7 @@ def delete(self, **options): def backup(self, **options): console.info("Backing up your documents...") - subprocess.check_call(['mongodump']) + subprocess.check_call(['mongodump'], shell=True) sys.exit(1) def handle(self, *args, **options): From 3737c72944dd6ee89ec59d315fd4a9dac452e85a Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:41:17 -0400 Subject: [PATCH 47/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 5b48f1b..3c55c3e 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -89,7 +89,7 @@ def delete(self, **options): def backup(self, **options): console.info("Backing up your documents...") - subprocess.check_call(['mongodump'], shell=True) + subprocess.check_call(['mongodump', '--db', 'mongolog'], shell=True) sys.exit(1) def handle(self, *args, **options): From da380d3e103ca8258c4722b2203cc88fcc5b1c4d Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:45:11 -0400 Subject: [PATCH 48/90] . --- mongolog/management/commands/mongolog_purge.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 3c55c3e..2011d75 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -89,7 +89,9 @@ def delete(self, **options): def backup(self, **options): console.info("Backing up your documents...") - subprocess.check_call(['mongodump', '--db', 'mongolog'], shell=True) + cmd = 'mongodump --db mongolog' + print("cmd: %s", % cmd) + subprocess.check_call(*cmd, shell=True) sys.exit(1) def handle(self, *args, **options): From db22f2137daad207f448ae8b7703479cfc044551 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:45:57 -0400 Subject: [PATCH 49/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 2011d75..c762a26 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -90,7 +90,7 @@ def delete(self, **options): def backup(self, **options): console.info("Backing up your documents...") cmd = 'mongodump --db mongolog' - print("cmd: %s", % cmd) + print("cmd: %s" % cmd) subprocess.check_call(*cmd, shell=True) sys.exit(1) From 4827678c2523d5ac957b96c1e399f79953842b54 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:47:18 -0400 Subject: [PATCH 50/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index c762a26..912d21f 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -91,7 +91,7 @@ def backup(self, **options): console.info("Backing up your documents...") cmd = 'mongodump --db mongolog' print("cmd: %s" % cmd) - subprocess.check_call(*cmd, shell=True) + subprocess.check_call(cmd.split(), shell=True) sys.exit(1) def handle(self, *args, **options): From 6e27d665fe958ea29941b352b4da26809820120c Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:52:39 -0400 Subject: [PATCH 51/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 912d21f..0c01526 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -90,8 +90,8 @@ def delete(self, **options): def backup(self, **options): console.info("Backing up your documents...") cmd = 'mongodump --db mongolog' + subprocess.check_call([cmd], shell=True) print("cmd: %s" % cmd) - subprocess.check_call(cmd.split(), shell=True) sys.exit(1) def handle(self, *args, **options): From c000f50ff62afa72ee36be287e2f44c35a5211c4 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 09:54:06 -0400 Subject: [PATCH 52/90] . --- mongolog/management/commands/mongolog_purge.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 0c01526..05cc981 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -91,8 +91,6 @@ def backup(self, **options): console.info("Backing up your documents...") cmd = 'mongodump --db mongolog' subprocess.check_call([cmd], shell=True) - print("cmd: %s" % cmd) - sys.exit(1) def handle(self, *args, **options): if options['backup']: From 5b435c5eb450ec3168f51407658af931f00bd40d Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 10:36:09 -0400 Subject: [PATCH 53/90] trying to use new collection --- mongolog/management/commands/mongolog_purge.py | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 05cc981..33fdba5 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -5,7 +5,6 @@ import logging.config from datetime import timedelta import subprocess - import pymongo from pymongo import MongoClient @@ -44,6 +43,10 @@ def add_arguments(self, parser): '-b', '--backup', default=False, action='store_true', dest='backup', help='Backup collection before deleting', ) + parser.add_argument( + '-c', '--collection', default='mongolog', type=str, action='store', dest='collection', + help='Which mongolog collection to use', + ) def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) @@ -68,7 +71,7 @@ def confirm(self, **options): def purge(self, **options): console.warn("You are about to delete all mongolog documents!!!") if self.confirm(**options): - db.mongolog.delete_many({}) + self.collection.delete_many({}) def delete(self, **options): days = options['delete'] @@ -80,11 +83,11 @@ def delete(self, **options): } } - total = db.mongolog.find(query).count() + total = self.collection.find(query).count() console.warn("Total docs to remove: %s", total) if self.confirm(**options): - db.mongolog.delete_many(query) + self.collection.delete_many(query) console.info("Total docs removed: %s", total) def backup(self, **options): @@ -93,6 +96,7 @@ def backup(self, **options): subprocess.check_call([cmd], shell=True) def handle(self, *args, **options): + self.collection = exec('db.%s' % options['collection']) if options['backup']: self.backup(**options) From 60363551c3c68a807494c79d073275e2d28273ec Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 10:38:22 -0400 Subject: [PATCH 54/90] . --- mongolog/management/commands/mongolog_purge.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 33fdba5..c099174 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -96,7 +96,8 @@ def backup(self, **options): subprocess.check_call([cmd], shell=True) def handle(self, *args, **options): - self.collection = exec('db.%s' % options['collection']) + self.collection = db.getattr(options['collection']) + #self.collection = exec('db.%s' % options['collection']) if options['backup']: self.backup(**options) From ee58ad35bf2e8769d4928751bd653a82e452cbed Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 10:39:09 -0400 Subject: [PATCH 55/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index c099174..a85e197 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -96,7 +96,7 @@ def backup(self, **options): subprocess.check_call([cmd], shell=True) def handle(self, *args, **options): - self.collection = db.getattr(options['collection']) + self.collection = getattr(db, options['collection']) #self.collection = exec('db.%s' % options['collection']) if options['backup']: self.backup(**options) From 47c5f258bcd252aa65acc251993f75051a5308df Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 10:51:47 -0400 Subject: [PATCH 56/90] . --- mongolog/handlers.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mongolog/handlers.py b/mongolog/handlers.py index 6e4be11..1828bc5 100644 --- a/mongolog/handlers.py +++ b/mongolog/handlers.py @@ -63,6 +63,7 @@ def get_mongolog_handler(logger_name=None, show_logger_names=False): logger = logging.getLogger(name) handler = None for _handler in logger.handlers: + print(isinstance(_handler, BaseMongoLogHandler), _handler) if isinstance(_handler, BaseMongoLogHandler): handler = _handler break From 166d48fa986e267f0cd76067028ad416213e2dfd Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 10:53:47 -0400 Subject: [PATCH 57/90] . --- mongolog/handlers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/handlers.py b/mongolog/handlers.py index 1828bc5..7c41ea4 100644 --- a/mongolog/handlers.py +++ b/mongolog/handlers.py @@ -63,7 +63,7 @@ def get_mongolog_handler(logger_name=None, show_logger_names=False): logger = logging.getLogger(name) handler = None for _handler in logger.handlers: - print(isinstance(_handler, BaseMongoLogHandler), _handler) + console.error((isinstance(_handler, BaseMongoLogHandler), _handler) ) if isinstance(_handler, BaseMongoLogHandler): handler = _handler break From 3a30c6518c137b959604fe7410d3de3190e993a5 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 13:38:44 -0400 Subject: [PATCH 58/90] . --- mongolog/models.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mongolog/models.py b/mongolog/models.py index 91c858e..7ce9c5f 100644 --- a/mongolog/models.py +++ b/mongolog/models.py @@ -47,6 +47,7 @@ def find(cls, logger=None, query=None, project=None, uuid=None, level=None, limi handler = get_mongolog_handler(logger_name=logger) client = MongoClient(handler.connection) db = client.mongolog + collection = getattr(db, logger) aggregate_commands = [] @@ -72,7 +73,7 @@ def find(cls, logger=None, query=None, project=None, uuid=None, level=None, limi if limit: aggregate_commands.append({"$limit": limit}) - results = db.mongolog.aggregate(aggregate_commands) + results = collection.aggregate(aggregate_commands) return results['result'] if isinstance(results, dict) else results From f16f3707abe61cecacb222a66d5f4d2d639a5a2f Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 13:45:46 -0400 Subject: [PATCH 59/90] . --- mongolog/handlers.py | 1 - 1 file changed, 1 deletion(-) diff --git a/mongolog/handlers.py b/mongolog/handlers.py index 7c41ea4..6e4be11 100644 --- a/mongolog/handlers.py +++ b/mongolog/handlers.py @@ -63,7 +63,6 @@ def get_mongolog_handler(logger_name=None, show_logger_names=False): logger = logging.getLogger(name) handler = None for _handler in logger.handlers: - console.error((isinstance(_handler, BaseMongoLogHandler), _handler) ) if isinstance(_handler, BaseMongoLogHandler): handler = _handler break From d65443039150e1d9f0e8069034c1767aea5335b5 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 13:47:10 -0400 Subject: [PATCH 60/90] lint cleanup --- mongolog/management/commands/mongolog_purge.py | 2 -- 1 file changed, 2 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index a85e197..f786772 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -50,7 +50,6 @@ def add_arguments(self, parser): def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) - self.prev_object_id = None def confirm(self, **options): if not options['force']: @@ -97,7 +96,6 @@ def backup(self, **options): def handle(self, *args, **options): self.collection = getattr(db, options['collection']) - #self.collection = exec('db.%s' % options['collection']) if options['backup']: self.backup(**options) From 8f123c59674112f1c383c5e461cf1df4c57c5ad0 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 14:06:20 -0400 Subject: [PATCH 61/90] . --- .../management/commands/mongolog_purge.py | 29 ++++++++++++++----- 1 file changed, 22 insertions(+), 7 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index f786772..77bd9b6 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -1,11 +1,22 @@ # -*- coding: utf-8 -*- +""" +Management command to handle deletion of previous mongolog records. + +Usage Examples: + +# Delete all records alder than 54 day's AFTER backing up the current collection 'bulkupload' + ./manage.py mongolog_purge -d 54 -b -c bulkupload + + # Delete all entries +./manage.py mongolog_purge -p -c bulkupload +""" from __future__ import print_function import sys import logging -import logging.config +# import logging.config from datetime import timedelta import subprocess -import pymongo +# import pymongo from pymongo import MongoClient from mongolog.handlers import get_mongolog_handler @@ -13,9 +24,9 @@ from django.utils import timezone from django.core.management.base import BaseCommand -pymongo_version = int(pymongo.version.split(".")[0]) -if pymongo_version >= 3: - from pymongo.collection import ReturnDocument # noqa: F40 +# pymongo_version = int(pymongo.version.split(".")[0]) +# if pymongo_version >= 3: +# from pymongo.collection import ReturnDocument # noqa: F40 console = logging.getLogger('mongolog-int') @@ -68,11 +79,13 @@ def confirm(self, **options): return True def purge(self, **options): + """ Purge all records from the collection """ console.warn("You are about to delete all mongolog documents!!!") if self.confirm(**options): self.collection.delete_many({}) def delete(self, **options): + """ Delete all records older than --days={n} """ days = options['delete'] console.warn("Looking for documents older than %s day's", days) @@ -89,15 +102,17 @@ def delete(self, **options): self.collection.delete_many(query) console.info("Total docs removed: %s", total) - def backup(self, **options): + def backup(self): + """ Backup the collection before deleting """ console.info("Backing up your documents...") cmd = 'mongodump --db mongolog' subprocess.check_call([cmd], shell=True) def handle(self, *args, **options): + """ Main processing handle """ self.collection = getattr(db, options['collection']) if options['backup']: - self.backup(**options) + self.backup() if options['purge']: self.purge(**options) From 294c538bb0cfd0859f82b6a1486e42474da5c9eb Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 14:10:40 -0400 Subject: [PATCH 62/90] . --- mongolog/management/commands/mongolog_purge.py | 3 +++ 1 file changed, 3 insertions(+) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 77bd9b6..73dfb3e 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -81,8 +81,11 @@ def confirm(self, **options): def purge(self, **options): """ Purge all records from the collection """ console.warn("You are about to delete all mongolog documents!!!") + if self.confirm(**options): + total = self.collection.find(query).count() self.collection.delete_many({}) + console.warn("Total docs to remove: %s", total) def delete(self, **options): """ Delete all records older than --days={n} """ From 9dba58f62d2d8e8b794b1431082b58108bcdc747 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 14:11:19 -0400 Subject: [PATCH 63/90] . --- mongolog/management/commands/mongolog_purge.py | 6 ------ 1 file changed, 6 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 73dfb3e..660206f 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -13,10 +13,8 @@ from __future__ import print_function import sys import logging -# import logging.config from datetime import timedelta import subprocess -# import pymongo from pymongo import MongoClient from mongolog.handlers import get_mongolog_handler @@ -24,10 +22,6 @@ from django.utils import timezone from django.core.management.base import BaseCommand -# pymongo_version = int(pymongo.version.split(".")[0]) -# if pymongo_version >= 3: -# from pymongo.collection import ReturnDocument # noqa: F40 - console = logging.getLogger('mongolog-int') handler = get_mongolog_handler() From 077aff6fb931e28c2e2a4d7f0e7e333ebed13d5f Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 14:16:38 -0400 Subject: [PATCH 64/90] Readded analog to get tests to pass --- mongolog/management/commands/analog.py | 110 +++++++++++++++++++++++++ 1 file changed, 110 insertions(+) create mode 100644 mongolog/management/commands/analog.py diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py new file mode 100644 index 0000000..37a2886 --- /dev/null +++ b/mongolog/management/commands/analog.py @@ -0,0 +1,110 @@ +# -*- coding: utf-8 -*- +# !/usr/bin/env python +from __future__ import print_function +import logging +import logging.config +import django +import json + +import pymongo +pymongo_version = int(pymongo.version.split(".")[0]) +if pymongo_version >= 3: + from pymongo.collection import ReturnDocument # noqa: F40 + +from mongolog.handlers import get_mongolog_handler + +from django.core.management.base import BaseCommand + +logger = logging.getLogger('console') + + +class Command(BaseCommand): + if django.VERSION[1] <= 7: + from optparse import make_option + option_list = BaseCommand.option_list + ( + make_option( + '-l', '--limit', default=10, type=int, action='store', dest='limit', + help='Delete poll instead of closing it'), + make_option( + '-t', '--tail', default=False, action='store_true', dest='tail', + help='Tail the log file. By default it will limit to 10 results. Use --limit to change'), + make_option( + '-q', '--query', default=None, action='store', dest='query', + help='Pass in a search query to mongo.'), + ) + + def __init__(self, *args, **kwargs): + super(Command, self).__init__(*args, **kwargs) + self.prev_object_id = None + + def add_arguments(self, parser): + if django.VERSION[1] >= 7: + parser.add_argument( + '-l', '--limit', default=10, type=int, action='store', dest='limit', + help='Limit Results', + ) + parser.add_argument( + '-t', '--tail', default=False, action='store_true', dest='tail', + help='Tail the log file. By default it will limit to 10 results. Use --limit to change', + ) + parser.add_argument( + '-q', '--query', default=None, type=str, action='store', dest='query', + help='Pass in a search query to mongo.', + ) + + def print_results(self, results): + # older versions of pymongo didn't use a CommandCursor object to iterate over the results. + # We check by trying to convert to a list and if there is a TypeError we continue on + # and try to iterate over 'results' as thought it were a Cursor object. + try: + results = list(results['result']) + results.reverse() + except TypeError: + pass + + for r in results: + level = r.get('level', None) + if level == 'INFO': + logger.info(r) + elif level == 'WARNING': + logger.warn(r) + elif level == 'ERROR': + logger.error(r) + elif level == 'DEBUG': + logger.debug(r) + elif level == 'CRITICAL': + logger.critical(r) + elif level == 'MONGOLOG-INTERNAL' or level is None: + # Print nothing if it's a mongolog internal log + pass + else: + raise Exception("level(%s) not found" % level) + + def fetch_results(self, options): + query = options['query'] if options['query'] else {} + proj = {'_id': 1, 'level': 1, 'msg': 1} + limit = options['limit'] + return self.collection.aggregate([ + {"$match": query}, + {"$project": proj}, + {"$sort": {'created': pymongo.DESCENDING}}, + {"$limit": limit}, + ]) + + def tail(self, options): + initial = self.fetch_results(options) + self.print_results(initial) + raise NotImplementedError("--tail not finshed") + + def handle(self, *args, **options): + if options['query']: + options['query'] = json.loads(options['query']) + + handler = get_mongolog_handler('simple') + self.collection = handler.get_collection() + + if options['tail']: + self.tail(options) + else: + results = self.fetch_results(options) + self.print_results(results) From 31cd7b6799b39691619fbbe5b18f7688fcddb699 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Tue, 25 Sep 2018 18:28:39 +0000 Subject: [PATCH 65/90] django > 2 compatibility for unit tests --- mongolog/tests.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mongolog/tests.py b/mongolog/tests.py index 01ea1d8..a3dc7bb 100644 --- a/mongolog/tests.py +++ b/mongolog/tests.py @@ -41,10 +41,18 @@ ) from mongolog.models import Mongolog +import django +django_version = django.VERSION[0] + from django.core.management import call_command from django.test import TestCase from django.test import Client -from django.core.urlresolvers import reverse + +if django_version < 2: + from django.core.urlresolvers import reverse +else: + from django.urls import reverse + from django.conf import settings LOGGING = settings.LOGGING console = logging.getLogger("console") From 71d96f090ea64e152da4e28bac2f9548ba036526 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 14:42:33 -0400 Subject: [PATCH 66/90] . --- mongolog/models.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/mongolog/models.py b/mongolog/models.py index 7ce9c5f..6067dfb 100644 --- a/mongolog/models.py +++ b/mongolog/models.py @@ -47,7 +47,11 @@ def find(cls, logger=None, query=None, project=None, uuid=None, level=None, limi handler = get_mongolog_handler(logger_name=logger) client = MongoClient(handler.connection) db = client.mongolog - collection = getattr(db, logger) + + if logger: + collection = getattr(db, logger) + else: + collection = db.mongolog aggregate_commands = [] From 61d90e4e4e1000ea6c25d4c7382bd7aa6a152df4 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 14:43:39 -0400 Subject: [PATCH 67/90] . --- mongolog/models.py | 1 + 1 file changed, 1 insertion(+) diff --git a/mongolog/models.py b/mongolog/models.py index 6067dfb..ed7e2bb 100644 --- a/mongolog/models.py +++ b/mongolog/models.py @@ -48,6 +48,7 @@ def find(cls, logger=None, query=None, project=None, uuid=None, level=None, limi client = MongoClient(handler.connection) db = client.mongolog + console.error("logger: %s" % logger) if logger: collection = getattr(db, logger) else: From ace0b99217637fc5496f555b97b893dda5041657 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Tue, 25 Sep 2018 18:47:19 +0000 Subject: [PATCH 68/90] Remove exception --- mongolog/models.py | 1 - 1 file changed, 1 deletion(-) diff --git a/mongolog/models.py b/mongolog/models.py index ed7e2bb..6067dfb 100644 --- a/mongolog/models.py +++ b/mongolog/models.py @@ -48,7 +48,6 @@ def find(cls, logger=None, query=None, project=None, uuid=None, level=None, limi client = MongoClient(handler.connection) db = client.mongolog - console.error("logger: %s" % logger) if logger: collection = getattr(db, logger) else: From e8fe2c0ee174d0cc786597b87b6def8ccc091833 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Tue, 25 Sep 2018 19:42:15 +0000 Subject: [PATCH 69/90] local tests passing --- mongolog/handlers.py | 4 ++++ mongolog/models.py | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/mongolog/handlers.py b/mongolog/handlers.py index 6e4be11..f63fe4b 100644 --- a/mongolog/handlers.py +++ b/mongolog/handlers.py @@ -51,18 +51,22 @@ def get_mongolog_handler(logger_name=None, show_logger_names=False): Return the first MongoLogHander found in the list of defined loggers. NOTE: If more than one is defined, only the first one is used. """ + console.warn(logger_name) if logger_name: logger_names = [logger_name] else: logger_names = [''] + list(logging.Logger.manager.loggerDict) + console.warn(logger_names) if show_logger_names: console.info("get_mongolog_handler(): Logger_names: %s", json.dumps(logger_names, indent=4, sort_keys=True, default=str)) for name in logger_names: logger = logging.getLogger(name) + console.warn(logger) handler = None for _handler in logger.handlers: + console.error("%s, %s, %s, %s", isinstance(_handler, BaseMongoLogHandler), _handler, type(_handler), _handler.name) if isinstance(_handler, BaseMongoLogHandler): handler = _handler break diff --git a/mongolog/models.py b/mongolog/models.py index 6067dfb..f62a0d8 100644 --- a/mongolog/models.py +++ b/mongolog/models.py @@ -49,10 +49,13 @@ def find(cls, logger=None, query=None, project=None, uuid=None, level=None, limi db = client.mongolog if logger: - collection = getattr(db, logger) + collection = getattr(db, handler.collection) else: collection = db.mongolog + print("collection: %s" % collection) + print("type(handler): %s" % type(handler)) + print("handler.collection: %s" % handler.collection) aggregate_commands = [] if not query: From c00dbc521e53d485d2909b45a6623a9673077c43 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 15:47:48 -0400 Subject: [PATCH 70/90] analog command updates --- mongolog/management/commands/analog.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py index 37a2886..ba61a3e 100644 --- a/mongolog/management/commands/analog.py +++ b/mongolog/management/commands/analog.py @@ -19,7 +19,7 @@ class Command(BaseCommand): - if django.VERSION[1] <= 7: + if django.VERSION[0] <= 1: from optparse import make_option option_list = BaseCommand.option_list + ( make_option( @@ -32,13 +32,14 @@ class Command(BaseCommand): '-q', '--query', default=None, action='store', dest='query', help='Pass in a search query to mongo.'), ) + else: def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) self.prev_object_id = None def add_arguments(self, parser): - if django.VERSION[1] >= 7: + if django.VERSION[0] >= 2: parser.add_argument( '-l', '--limit', default=10, type=int, action='store', dest='limit', help='Limit Results', From dd193dd06f42fb78e295f15ec791d361d1d2d276 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 15:50:17 -0400 Subject: [PATCH 71/90] updated travis and fixed syntax error --- .travis.yml | 2 ++ mongolog/management/commands/analog.py | 1 - 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 1c9dab9..b9e18ca 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,6 +8,8 @@ python: - "2.7" - "3.4" - "3.5" + - "3.6" + - "3.7" # - "3.5-dev" # 3.5 development branch # - "nightly" # currently points to 3.6-dev env: diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py index ba61a3e..7eead3d 100644 --- a/mongolog/management/commands/analog.py +++ b/mongolog/management/commands/analog.py @@ -32,7 +32,6 @@ class Command(BaseCommand): '-q', '--query', default=None, action='store', dest='query', help='Pass in a search query to mongo.'), ) - else: def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) From b52f84062c13eb10e3096103c21a48b3c87b71f5 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 15:53:53 -0400 Subject: [PATCH 72/90] Trying to figure out version stuff --- .travis.yml | 6 +++--- mongolog/management/commands/analog.py | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index b9e18ca..89b6db7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,9 +6,9 @@ language: python python: # - "2.6" # Just to old to support - "2.7" - - "3.4" - - "3.5" - - "3.6" + # - "3.4" + # - "3.5" + # - "3.6" - "3.7" # - "3.5-dev" # 3.5 development branch # - "nightly" # currently points to 3.6-dev diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py index 7eead3d..2e698d6 100644 --- a/mongolog/management/commands/analog.py +++ b/mongolog/management/commands/analog.py @@ -17,6 +17,7 @@ logger = logging.getLogger('console') +logger.warn(django.VERSION) class Command(BaseCommand): if django.VERSION[0] <= 1: From a1288bd00c06e81a81195e4e91adf8d46933ce7c Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Tue, 25 Sep 2018 20:28:54 +0000 Subject: [PATCH 73/90] removing old django code --- mongolog/management/commands/analog.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py index 37a2886..476c185 100644 --- a/mongolog/management/commands/analog.py +++ b/mongolog/management/commands/analog.py @@ -19,6 +19,7 @@ class Command(BaseCommand): + """ if django.VERSION[1] <= 7: from optparse import make_option option_list = BaseCommand.option_list + ( @@ -32,7 +33,7 @@ class Command(BaseCommand): '-q', '--query', default=None, action='store', dest='query', help='Pass in a search query to mongo.'), ) - + """ def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) self.prev_object_id = None From 0930bbf6efefd4051acb4dba718e393794615901 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 17:16:59 -0400 Subject: [PATCH 74/90] remove old options_list command line support --- mongolog/management/commands/analog.py | 27 +++++++++++++------------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py index 2e698d6..96e65ac 100644 --- a/mongolog/management/commands/analog.py +++ b/mongolog/management/commands/analog.py @@ -20,7 +20,7 @@ logger.warn(django.VERSION) class Command(BaseCommand): - if django.VERSION[0] <= 1: + if django.VERSION[1] <= 7: from optparse import make_option option_list = BaseCommand.option_list + ( make_option( @@ -39,19 +39,18 @@ def __init__(self, *args, **kwargs): self.prev_object_id = None def add_arguments(self, parser): - if django.VERSION[0] >= 2: - parser.add_argument( - '-l', '--limit', default=10, type=int, action='store', dest='limit', - help='Limit Results', - ) - parser.add_argument( - '-t', '--tail', default=False, action='store_true', dest='tail', - help='Tail the log file. By default it will limit to 10 results. Use --limit to change', - ) - parser.add_argument( - '-q', '--query', default=None, type=str, action='store', dest='query', - help='Pass in a search query to mongo.', - ) + parser.add_argument( + '-l', '--limit', default=10, type=int, action='store', dest='limit', + help='Limit Results', + ) + parser.add_argument( + '-t', '--tail', default=False, action='store_true', dest='tail', + help='Tail the log file. By default it will limit to 10 results. Use --limit to change', + ) + parser.add_argument( + '-q', '--query', default=None, type=str, action='store', dest='query', + help='Pass in a search query to mongo.', + ) def print_results(self, results): # older versions of pymongo didn't use a CommandCursor object to iterate over the results. From 7c6d09ef10cae5ee2d93b93c173ff1ae5b9e913e Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 17:21:49 -0400 Subject: [PATCH 75/90] fix flake8 issue --- mongolog/management/commands/analog.py | 1 - 1 file changed, 1 deletion(-) diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py index 3f0c985..493f453 100644 --- a/mongolog/management/commands/analog.py +++ b/mongolog/management/commands/analog.py @@ -17,7 +17,6 @@ logger = logging.getLogger('console') -logger.warn(django.VERSION) class Command(BaseCommand): """ From d9d74349c774c5f6a84d019285abf2dd7843a9d0 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 17:24:17 -0400 Subject: [PATCH 76/90] 3.7 => 3.6 --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 89b6db7..88fef95 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,8 @@ python: - "2.7" # - "3.4" # - "3.5" - # - "3.6" - - "3.7" + - "3.6" + #- "3.7" # - "3.5-dev" # 3.5 development branch # - "nightly" # currently points to 3.6-dev env: From 9552ee5a86b6f502e43eac9d333c3d734d8af010 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Tue, 25 Sep 2018 21:25:46 +0000 Subject: [PATCH 77/90] Tests pass locally --- mongolog/management/commands/analog.py | 1 - 1 file changed, 1 deletion(-) diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py index 493f453..5b00a55 100644 --- a/mongolog/management/commands/analog.py +++ b/mongolog/management/commands/analog.py @@ -3,7 +3,6 @@ from __future__ import print_function import logging import logging.config -import django import json import pymongo From 552b910f02e32dc75a57b9cd5753c2435cd1f2e7 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Tue, 25 Sep 2018 21:30:24 +0000 Subject: [PATCH 78/90] python 3.5, 3.6, and 3.7-dev --- .travis.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 88fef95..e280afa 100644 --- a/.travis.yml +++ b/.travis.yml @@ -6,10 +6,10 @@ language: python python: # - "2.6" # Just to old to support - "2.7" - # - "3.4" - # - "3.5" + - "3.4" + - "3.5" - "3.6" - #- "3.7" + - "3.7-dev" # - "3.5-dev" # 3.5 development branch # - "nightly" # currently points to 3.6-dev env: From be1cc6229fc11c120b0f004aafaa673765f954ad Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 17:38:31 -0400 Subject: [PATCH 79/90] removed unnecassary console logs --- mongolog/handlers.py | 4 ---- 1 file changed, 4 deletions(-) diff --git a/mongolog/handlers.py b/mongolog/handlers.py index f63fe4b..6e4be11 100644 --- a/mongolog/handlers.py +++ b/mongolog/handlers.py @@ -51,22 +51,18 @@ def get_mongolog_handler(logger_name=None, show_logger_names=False): Return the first MongoLogHander found in the list of defined loggers. NOTE: If more than one is defined, only the first one is used. """ - console.warn(logger_name) if logger_name: logger_names = [logger_name] else: logger_names = [''] + list(logging.Logger.manager.loggerDict) - console.warn(logger_names) if show_logger_names: console.info("get_mongolog_handler(): Logger_names: %s", json.dumps(logger_names, indent=4, sort_keys=True, default=str)) for name in logger_names: logger = logging.getLogger(name) - console.warn(logger) handler = None for _handler in logger.handlers: - console.error("%s, %s, %s, %s", isinstance(_handler, BaseMongoLogHandler), _handler, type(_handler), _handler.name) if isinstance(_handler, BaseMongoLogHandler): handler = _handler break From bfb0cd686232f8cedb4a465848b54fc021e4a501 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 17:39:42 -0400 Subject: [PATCH 80/90] Remove commented out code --- mongolog/management/commands/analog.py | 16 +--------------- 1 file changed, 1 insertion(+), 15 deletions(-) diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py index 5b00a55..167ecf2 100644 --- a/mongolog/management/commands/analog.py +++ b/mongolog/management/commands/analog.py @@ -18,21 +18,7 @@ class Command(BaseCommand): - """ - if django.VERSION[1] <= 7: - from optparse import make_option - option_list = BaseCommand.option_list + ( - make_option( - '-l', '--limit', default=10, type=int, action='store', dest='limit', - help='Delete poll instead of closing it'), - make_option( - '-t', '--tail', default=False, action='store_true', dest='tail', - help='Tail the log file. By default it will limit to 10 results. Use --limit to change'), - make_option( - '-q', '--query', default=None, action='store', dest='query', - help='Pass in a search query to mongo.'), - ) - """ + def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) self.prev_object_id = None From 25747ac3522bdac15822ad1304a3007af2f9d60d Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Tue, 25 Sep 2018 21:45:23 +0000 Subject: [PATCH 81/90] lint cleanup --- mongolog/management/commands/analog.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/analog.py b/mongolog/management/commands/analog.py index 167ecf2..c90d882 100644 --- a/mongolog/management/commands/analog.py +++ b/mongolog/management/commands/analog.py @@ -18,7 +18,7 @@ class Command(BaseCommand): - + def __init__(self, *args, **kwargs): super(Command, self).__init__(*args, **kwargs) self.prev_object_id = None From 0700705bb123d70f8378f99b3022054d49e0b809 Mon Sep 17 00:00:00 2001 From: Furr Date: Tue, 25 Sep 2018 17:51:48 -0400 Subject: [PATCH 82/90] Removed print statements --- mongolog/models.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/mongolog/models.py b/mongolog/models.py index f62a0d8..5d55458 100644 --- a/mongolog/models.py +++ b/mongolog/models.py @@ -53,9 +53,6 @@ def find(cls, logger=None, query=None, project=None, uuid=None, level=None, limi else: collection = db.mongolog - print("collection: %s" % collection) - print("type(handler): %s" % type(handler)) - print("handler.collection: %s" % handler.collection) aggregate_commands = [] if not query: From 2bdfbd06aec20b3307d7d1cacf83536bdf3a6e9d Mon Sep 17 00:00:00 2001 From: Furr Date: Wed, 26 Sep 2018 06:45:54 -0400 Subject: [PATCH 83/90] collection => logger --- mongolog/management/commands/mongolog_purge.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 660206f..63f215f 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -24,10 +24,6 @@ console = logging.getLogger('mongolog-int') -handler = get_mongolog_handler() -client = MongoClient(handler.connection) -db = client.mongolog - class Command(BaseCommand): @@ -49,8 +45,8 @@ def add_arguments(self, parser): help='Backup collection before deleting', ) parser.add_argument( - '-c', '--collection', default='mongolog', type=str, action='store', dest='collection', - help='Which mongolog collection to use', + '-l', '--logger', default='mongolog', type=str, action='store', dest='logger', + help='Which mongolog logger to use. The collection defined in the log handler will be used.', ) def __init__(self, *args, **kwargs): @@ -77,7 +73,7 @@ def purge(self, **options): console.warn("You are about to delete all mongolog documents!!!") if self.confirm(**options): - total = self.collection.find(query).count() + total = self.collection.find({}).count() self.collection.delete_many({}) console.warn("Total docs to remove: %s", total) @@ -107,7 +103,10 @@ def backup(self): def handle(self, *args, **options): """ Main processing handle """ - self.collection = getattr(db, options['collection']) + + handler = get_mongolog_handler(logger_name=options['logger']) + self.collection = handler.collection + if options['backup']: self.backup() From 315966b5a73ad2f9e6c4893e4d193d1ee64dddc5 Mon Sep 17 00:00:00 2001 From: Furr Date: Wed, 26 Sep 2018 07:01:28 -0400 Subject: [PATCH 84/90] . --- mongolog/management/commands/mongolog_purge.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 63f215f..384fb0c 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -73,7 +73,7 @@ def purge(self, **options): console.warn("You are about to delete all mongolog documents!!!") if self.confirm(**options): - total = self.collection.find({}).count() + total = self.collection.find().count() self.collection.delete_many({}) console.warn("Total docs to remove: %s", total) @@ -103,8 +103,12 @@ def backup(self): def handle(self, *args, **options): """ Main processing handle """ - handler = get_mongolog_handler(logger_name=options['logger']) + client = MongoClient(handler.connection) + db = client.mongolog + self.collection = getattr(db, options['collection']) + + raise Exception(type(self.collection), type(handler.collection)) self.collection = handler.collection if options['backup']: From e78eeb8c3bbf15e5391faf86fd85e52c333ff7ec Mon Sep 17 00:00:00 2001 From: Furr Date: Wed, 26 Sep 2018 07:02:43 -0400 Subject: [PATCH 85/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 384fb0c..391f61f 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -106,7 +106,7 @@ def handle(self, *args, **options): handler = get_mongolog_handler(logger_name=options['logger']) client = MongoClient(handler.connection) db = client.mongolog - self.collection = getattr(db, options['collection']) + self.collection = getattr(db, handler.collectionoption) raise Exception(type(self.collection), type(handler.collection)) self.collection = handler.collection From 0fd10f090df8da083d66a24a035c97e715295371 Mon Sep 17 00:00:00 2001 From: Furr Date: Wed, 26 Sep 2018 07:03:19 -0400 Subject: [PATCH 86/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 391f61f..445b65c 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -106,7 +106,7 @@ def handle(self, *args, **options): handler = get_mongolog_handler(logger_name=options['logger']) client = MongoClient(handler.connection) db = client.mongolog - self.collection = getattr(db, handler.collectionoption) + self.collection = getattr(db, handler.collection) raise Exception(type(self.collection), type(handler.collection)) self.collection = handler.collection From 4070120fcc63d25fc27bcf41e76a347d98a7ec6e Mon Sep 17 00:00:00 2001 From: Furr Date: Wed, 26 Sep 2018 07:04:42 -0400 Subject: [PATCH 87/90] . --- mongolog/management/commands/mongolog_purge.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 445b65c..89c90f3 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -108,9 +108,6 @@ def handle(self, *args, **options): db = client.mongolog self.collection = getattr(db, handler.collection) - raise Exception(type(self.collection), type(handler.collection)) - self.collection = handler.collection - if options['backup']: self.backup() From 6118e5179307957d99ade406b503b7804536a804 Mon Sep 17 00:00:00 2001 From: Furr Date: Wed, 26 Sep 2018 07:05:01 -0400 Subject: [PATCH 88/90] . --- mongolog/management/commands/mongolog_purge.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/mongolog_purge.py index 89c90f3..40e8127 100644 --- a/mongolog/management/commands/mongolog_purge.py +++ b/mongolog/management/commands/mongolog_purge.py @@ -73,7 +73,7 @@ def purge(self, **options): console.warn("You are about to delete all mongolog documents!!!") if self.confirm(**options): - total = self.collection.find().count() + total = self.collection.find({}).count() self.collection.delete_many({}) console.warn("Total docs to remove: %s", total) From 2a266defbf283307699b6934851d8509c4f64e14 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 26 Sep 2018 11:11:02 +0000 Subject: [PATCH 89/90] Updated change log and travis file and renamed management command --- .travis.yml | 11 ++++------- CHANGELOG | 5 +++++ .../commands/{mongolog_purge.py => ml_purge.py} | 0 3 files changed, 9 insertions(+), 7 deletions(-) rename mongolog/management/commands/{mongolog_purge.py => ml_purge.py} (100%) diff --git a/.travis.yml b/.travis.yml index e280afa..abca7b7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,20 +4,17 @@ # https://docs.djangoproject.com/en/1.9/releases/1.9/#django-1-9-release-notes language: python python: -# - "2.6" # Just to old to support - "2.7" - - "3.4" - - "3.5" + #- "3.4" + #- "3.5" - "3.6" - "3.7-dev" -# - "3.5-dev" # 3.5 development branch -# - "nightly" # currently points to 3.6-dev env: # Test out support for lowest/highest pymongo/django combos #- PYMONGO="==2.4" DJANGO="==1.8" #- PYMONGO=">=3.0" DJANGO=">=1.9" - - PYMONGO="==2.4" - - PYMONGO=">=3.0" + - PYMONGO=">=3.0" DJANGO="==1.9.4" + - PYMONGO=">=3.0" DJANGO=">=2.0" # command to install dependencies services: - mongodb diff --git a/CHANGELOG b/CHANGELOG index 72f6f8c..4a74018 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -1,6 +1,11 @@ Change Log ========== +v0.9.0 +------ + * Removed support for pymongo < 3.0 + * Added ml_purge command + v0.8.0 ------ * Mongolog.find utility for searching the logs diff --git a/mongolog/management/commands/mongolog_purge.py b/mongolog/management/commands/ml_purge.py similarity index 100% rename from mongolog/management/commands/mongolog_purge.py rename to mongolog/management/commands/ml_purge.py From bff0647683f10048bd6f64569614eea0d50a19ca Mon Sep 17 00:00:00 2001 From: Furr Date: Wed, 26 Sep 2018 07:20:06 -0400 Subject: [PATCH 90/90] added python 3.3 and 3.4 and updated CHANGELOG --- .travis.yml | 8 +++----- CHANGELOG | 3 ++- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.travis.yml b/.travis.yml index abca7b7..74794dd 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,15 +5,13 @@ language: python python: - "2.7" - #- "3.4" - #- "3.5" + - "3.4" + - "3.5" - "3.6" - "3.7-dev" env: # Test out support for lowest/highest pymongo/django combos - #- PYMONGO="==2.4" DJANGO="==1.8" - #- PYMONGO=">=3.0" DJANGO=">=1.9" - - PYMONGO=">=3.0" DJANGO="==1.9.4" + - PYMONGO=">=3.0" DJANGO="==1.9.8" - PYMONGO=">=3.0" DJANGO=">=2.0" # command to install dependencies services: diff --git a/CHANGELOG b/CHANGELOG index 4a74018..4fee22d 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -4,7 +4,8 @@ Change Log v0.9.0 ------ * Removed support for pymongo < 3.0 - * Added ml_purge command + * Removed support for Django < 1.9.8 + * Added ml_purge command for cleaning out log documents v0.8.0 ------