From 629a414f87da47641653394232ebc08c72299d11 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 23 Dec 2015 07:49:59 +0100 Subject: Custom command to manage imports with CLI --- ishtar_common/management/commands/ishtar_import.py | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 ishtar_common/management/commands/ishtar_import.py (limited to 'ishtar_common/management/commands/ishtar_import.py') diff --git a/ishtar_common/management/commands/ishtar_import.py b/ishtar_common/management/commands/ishtar_import.py new file mode 100644 index 000000000..49a7a0e64 --- /dev/null +++ b/ishtar_common/management/commands/ishtar_import.py @@ -0,0 +1,38 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +from django.core.management.base import BaseCommand, CommandError + +from ishtar_common import models + + +class Command(BaseCommand): + help = "./manage.py ishtar_import \n\n"\ + "Launch the importation a configured import.\n"\ + " must be: \"analyse\", \"import\" or \"archive\"." + + def handle(self, *args, **options): + if not args or len(args) < 2: + raise CommandError(" and are mandatory") + command = args[0] + if args[0] not in ["analyse", "import", "archive"]: + raise CommandError( + " must be: \"analyse\", \"import\" or \"archive\"." + ) + try: + imp = models.Import.objects.get(pk=args[1]) + except (ValueError, models.Import.DoesNotExist): + raise CommandError("{} is not a valid import ID".format(args[0])) + if command == 'analyse': + imp.initialize() + self.stdout.write("* {} analysed\n".format(imp)) + self.stdout.flush() + elif command == 'import': + self.stdout.write("* import {}\n".format(imp)) + imp.importation(output='cli') + self.stdout.write("* {} imported\n".format(imp)) + self.stdout.flush() + elif command == 'archive': + imp.archive() + self.stdout.write("*{} archived\n".format(imp)) + self.stdout.flush() -- cgit v1.2.3 From f9642e857242fff2774b432ab0ee2da2bf73ccfa Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 23 Dec 2015 08:29:29 +0100 Subject: Fix bad parameters for ishtar_import --- ishtar_common/management/commands/ishtar_import.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'ishtar_common/management/commands/ishtar_import.py') diff --git a/ishtar_common/management/commands/ishtar_import.py b/ishtar_common/management/commands/ishtar_import.py index 49a7a0e64..aba1e45d5 100644 --- a/ishtar_common/management/commands/ishtar_import.py +++ b/ishtar_common/management/commands/ishtar_import.py @@ -29,7 +29,7 @@ class Command(BaseCommand): self.stdout.flush() elif command == 'import': self.stdout.write("* import {}\n".format(imp)) - imp.importation(output='cli') + imp.importation() self.stdout.write("* {} imported\n".format(imp)) self.stdout.flush() elif command == 'archive': -- cgit v1.2.3