示例#1
0
    def handle(self, *args, **options):
        usage = "usage: %prog --action=[purge|import] \
            --kind=[ci/user-relations/all-relations/system-relations] \
            --content-types"

        if not options.get('action') or options.get(
                'action') not in self.actions:
            print(usage)
            print("Specify valid action: " + ','.join(self.actions))
            return
        if not options.get('kind') or options.get('kind') not in self.kinds:
            print(usage)
            print("You must specify valid kind: " + '|'.join(self.kinds))
            return
        content_types_names = dict([(x.app_label + '.' + x.model, x)
                                    for x in self.content_types])
        content_types_to_import = []
        id_to_import = None
        if options.get('ids'):
            id_to_import = int(options.get('ids'))
        if options.get('content_types'):
            t = options.get('content_types').split(',')
            for ct in t:
                if not content_types_names.get(ct, None):
                    print("Invalid content type: %s: " % ct)
                    return
                else:
                    content_types_to_import.append(
                        content_types_names.get(ct, None))
        else:
            content_types_to_import = self.content_types
        cimp = CIImporter()
        if options.get('action') == 'purge':
            if options.get('kind') == 'ci':
                cimp.purge_all_ci(content_types_to_import)
            elif options.get('kind') == 'all-relations':
                cimp.purge_all_relations()
            elif options.get('kind') == 'user-relations':
                cimp.purge_user_relations()
            elif options.get('kind') == 'system-relations':
                cimp.purge_system_relations()
        elif options.get('action') == 'import':
            if options.get('kind') == 'ci':
                cimp.import_all_ci(content_types_to_import, id_to_import)
            elif options.get('kind') == 'all-relations':
                for content_type in content_types_to_import:
                    cimp.import_relations(content_type, id_to_import)
            else:
                print("Invalid kind for this action")
                return
        logger.info('Ready.')
示例#2
0
 def handle(self, *args, **options):
     usage = "usage: %prog --action=[purge|import] \
         --kind=[ci/user-relations/all-relations/system-relations] \
         --content-types"
     if not options.get('action') or options.get(
             'action') not in self.actions:
         print(usage)
         print("Specify valid action: " + ','.join(self.actions))
         return
     if not options.get('kind') or options.get('kind') not in self.kinds:
         print(usage)
         print("You must specify valid kind: " + '|'.join(self.kinds))
         return
     content_types_names = dict(
         [(x.app_label + '.' + x.model, x) for x in self.content_types])
     content_types_to_import = []
     id_to_import = None
     if options.get('ids'):
         id_to_import = int(options.get('ids'))
     if options.get('content_types'):
         t = options.get('content_types').split(',')
         for ct in t:
             if not content_types_names.get(ct, None):
                 print("Invalid content type: %s: " % ct)
                 return
             else:
                 content_types_to_import.append(
                     content_types_names.get(ct, None))
     else:
         content_types_to_import = self.content_types
     cimp = CIImporter()
     if options.get('action') == 'purge':
         if options.get('kind') == 'ci':
             cimp.purge_all_ci(content_types_to_import)
         elif options.get('kind') == 'all-relations':
             cimp.purge_all_relations()
         elif options.get('kind') == 'user-relations':
             cimp.purge_user_relations()
         elif options.get('kind') == 'system-relations':
             cimp.purge_system_relations()
     elif options.get('action') == 'import':
         if options.get('kind') == 'ci':
             cimp.import_all_ci(content_types_to_import, id_to_import)
         elif options.get('kind') == 'all-relations':
             for content_type in content_types_to_import:
                 cimp.import_relations(content_type, id_to_import)
         else:
             print("Invalid kind for this action")
             return
     logger.info('Ready.')