scirius icon indicating copy to clipboard operation
scirius copied to clipboard

dbbackup/dbrestore/listbackups AttributeError: type object 'BaseCommand' has no attribute 'option_list'

Open Eagleman7 opened this issue 6 years ago • 12 comments

When using the following commands:

[dbbackup] dbbackup dbrestore listbackups

I am getting the following errors:

[root@DOMAIN-IDS scirius]# python manage.py listbackups
/usr/lib/python2.7/site-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.16) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 206, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 40, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/listbackups.py", line 8, in <module>
    from ._base import BaseDbBackupCommand
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/_base.py", line 9, in <module>
    class BaseDbBackupCommand(LabelCommand):
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/_base.py", line 13, in BaseDbBackupCommand
    option_list = BaseCommand.option_list + (
AttributeError: type object 'BaseCommand' has no attribute 'option_list'
[root@DOMAIN-IDS scirius]# python manage.py dbbackup
/usr/lib/python2.7/site-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.16) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 206, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 40, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/dbbackup.py", line 17, in <module>
    from ._base import BaseDbBackupCommand
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/_base.py", line 9, in <module>
    class BaseDbBackupCommand(LabelCommand):
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/_base.py", line 13, in BaseDbBackupCommand
    option_list = BaseCommand.option_list + (
AttributeError: type object 'BaseCommand' has no attribute 'option_list'
[root@DOMAIN-IDS scirius]# python manage.py dbrestore
/usr/lib/python2.7/site-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.16) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 206, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 40, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/dbrestore.py", line 17, in <module>
    from ._base import BaseDbBackupCommand
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/_base.py", line 9, in <module>
    class BaseDbBackupCommand(LabelCommand):
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/_base.py", line 13, in BaseDbBackupCommand
    option_list = BaseCommand.option_list + (
AttributeError: type object 'BaseCommand' has no attribute 'option_list'

I am on the scirius-2.0.1 release and have all the requirements installed:

Requirement already satisfied (use --upgrade to upgrade): daemon in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 1))
Requirement already satisfied (use --upgrade to upgrade): Django<2,>=1.11.10 in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 2))
Requirement already satisfied (use --upgrade to upgrade): django-bootstrap3 in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 3))
Requirement already satisfied (use --upgrade to upgrade): django-revproxy in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 4))
Requirement already satisfied (use --upgrade to upgrade): django-tables2<1.17 in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 5))
Requirement already satisfied (use --upgrade to upgrade): django-dbbackup<3.0 in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 6))
Requirement already satisfied (use --upgrade to upgrade): gitdb in /usr/lib64/python2.7/site-packages (from -r requirements.txt (line 7))
Requirement already satisfied (use --upgrade to upgrade): GitPython in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 8))
Requirement already satisfied (use --upgrade to upgrade): psutil in /usr/lib64/python2.7/site-packages (from -r requirements.txt (line 9))
Requirement already satisfied (use --upgrade to upgrade): Pygments in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 10))
Requirement already satisfied (use --upgrade to upgrade): pytz in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 11))
Requirement already satisfied (use --upgrade to upgrade): PyYAML in /usr/lib64/python2.7/site-packages (from -r requirements.txt (line 12))
Requirement already satisfied (use --upgrade to upgrade): requests in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 13))
Requirement already satisfied (use --upgrade to upgrade): six in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 14))
Requirement already satisfied (use --upgrade to upgrade): smmap in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 15))
Requirement already satisfied (use --upgrade to upgrade): urllib3<1.17 in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 16))
Requirement already satisfied (use --upgrade to upgrade): ipy in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 17))
Requirement already satisfied (use --upgrade to upgrade): elasticsearch in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 18))
Requirement already satisfied (use --upgrade to upgrade): django-ipware in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 19))
Requirement already satisfied (use --upgrade to upgrade): gunicorn in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 20))
Requirement already satisfied (use --upgrade to upgrade): djangorestframework in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 21))
Requirement already satisfied (use --upgrade to upgrade): markdown in /usr/lib64/python2.7/site-packages (from -r requirements.txt (line 22))
Requirement already satisfied (use --upgrade to upgrade): django-filter in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 23))
Requirement already satisfied (use --upgrade to upgrade): idstools in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 24))
Requirement already satisfied (use --upgrade to upgrade): enum34 in /usr/lib/python2.7/site-packages (from -r requirements.txt (line 25))
Requirement already satisfied (use --upgrade to upgrade): gitdb2>=2.0.0 in /usr/lib/python2.7/site-packages (from GitPython->-r requirements.txt (line 8))
Requirement already satisfied (use --upgrade to upgrade): idna<2.7,>=2.5 in /usr/lib/python2.7/site-packages (from requests->-r requirements.txt (line 13))
Requirement already satisfied (use --upgrade to upgrade): chardet<3.1.0,>=3.0.2 in /usr/lib/python2.7/site-packages (from requests->-r requirements.txt (line 13))
Requirement already satisfied (use --upgrade to upgrade): certifi>=2017.4.17 in /usr/lib/python2.7/site-packages (from requests->-r requirements.txt (line 13))
Requirement already satisfied (use --upgrade to upgrade): smmap2>=2.0.0 in /usr/lib/python2.7/site-packages (from gitdb2>=2.0.0->GitPython->-r requirements.txt (line 8))
You are using pip version 8.1.2, however version 10.0.1 is available.

Eagleman7 avatar Jun 20 '18 12:06 Eagleman7

probably a bug @regit ? Eagleman - what is the OS you are testing on ?

pevma avatar Jul 19 '18 10:07 pevma

Hi Peter,

I am running on CentOS 7 (1804)

Eagleman7 avatar Jul 19 '18 11:07 Eagleman7

Any update on this @pevma ?

Eagleman7 avatar Sep 09 '18 14:09 Eagleman7

In your settings file - can you try -

DBBACKUP_STORAGE_OPTIONS = {'location': '/var/backups/'}

and run it with sudo not as root. Any difference ?

pevma avatar Oct 09 '18 06:10 pevma

Hi @pevma

No difference:

[user@ips scirius]$ sudo python manage.py listbackups
/usr/lib/python2.7/site-packages/requests/__init__.py:80: RequestsDependencyWarning: urllib3 (1.16) or chardet (3.0.4) doesn't match a supported version!
  RequestsDependencyWarning)
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 364, in execute_from_command_line
    utility.execute()
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 356, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 206, in fetch_command
    klass = load_command_class(app_name, subcommand)
  File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 40, in load_command_class
    module = import_module('%s.management.commands.%s' % (app_name, name))
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/listbackups.py", line 8, in <module>
    from ._base import BaseDbBackupCommand
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/_base.py", line 9, in <module>
    class BaseDbBackupCommand(LabelCommand):
  File "/usr/lib/python2.7/site-packages/dbbackup/management/commands/_base.py", line 13, in BaseDbBackupCommand
    option_list = BaseCommand.option_list + (
AttributeError: type object 'BaseCommand' has no attribute 'option_list'

Eagleman7 avatar Oct 10 '18 07:10 Eagleman7

What is you Django version ? Can you do a pip show and paste the result?

regit avatar Oct 10 '18 07:10 regit

@regit

---
Metadata-Version: 2.1
Name: Django
Version: 1.11.12
Summary: A high-level Python Web framework that encourages rapid development and clean, pragmatic design.
Home-page: https://www.djangoproject.com/
Author: Django Software Foundation
Author-email: [email protected]
Installer: pip
License: BSD
Location: /usr/lib/python2.7/site-packages
Requires: pytz
Classifiers:
  Development Status :: 5 - Production/Stable
  Environment :: Web Environment
  Framework :: Django
  Intended Audience :: Developers
  License :: OSI Approved :: BSD License
  Operating System :: OS Independent
  Programming Language :: Python
  Programming Language :: Python :: 2
  Programming Language :: Python :: 2.7
  Programming Language :: Python :: 3
  Programming Language :: Python :: 3.4
  Programming Language :: Python :: 3.5
  Programming Language :: Python :: 3.6
  Topic :: Internet :: WWW/HTTP
  Topic :: Internet :: WWW/HTTP :: Dynamic Content
  Topic :: Internet :: WWW/HTTP :: WSGI
  Topic :: Software Development :: Libraries :: Application Frameworks
  Topic :: Software Development :: Libraries :: Python Modules
Entry-points:
  [console_scripts]
  django-admin = django.core.management:execute_from_command_line
You are using pip version 8.1.2, however version 18.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

Eagleman7 avatar Oct 10 '18 08:10 Eagleman7

ok can we have the output of pip freeze ?

regit avatar Oct 10 '18 13:10 regit

backports.ssl-match-hostname==3.5.0.1
certifi==2017.11.5
chardet==3.0.4
configobj==4.7.2
daemon==1.1
decorator==3.4.0
Django==1.11.12
django-bootstrap3==9.1.0
django-dbbackup==2.5.0
django-filter==1.1.0
django-filters==0.2.1
django-ipware==1.1.6
django-revproxy==0.9.13
django-tables2==1.15.0
django-webpack-loader==0.6.0
djangorestframework==3.8.2
elasticsearch==6.0.0
enum34==1.1.6
gitdb==0.6.4
gitdb2==2.0.3
GitPython==2.1.7
Glances==2.11.1
gunicorn==19.7.1
idna==2.6
idstools==0.6.3
iniparse==0.4
ipaddress==1.0.16
IPy==0.75
lockfile==0.9.1
Markdown==2.6.11
perf==0.1
policycoreutils-default-encoding==0.1
psutil==5.4.1
pycurl==7.19.0
Pygments==2.2.0
pygobject==3.22.0
pygpgme==0.3
pyinotify==0.9.6
pyliblzma==0.5.3
python-daemon==1.6
python-linux-procfs==0.4.9
pytz==2017.3
pyudev==0.15
pyxattr==0.5.1
PyYAML==3.12
requests==2.18.4
schedutils==0.4
seobject==0.1
sepolicy==1.1
setroubleshoot==1.1
six==1.11.0
slip==0.4.0
slip.dbus==0.4.0
smmap==0.9.0
smmap2==2.0.3
SSSDConfig==1.16.0
suricatasc==0.9
urlgrabber==3.10
urllib3==1.16
yum-metadata-parser==1.1.4

Eagleman7 avatar Oct 10 '18 17:10 Eagleman7

Any idea what this might cause @regit ?

Eagleman7 avatar Oct 16 '18 12:10 Eagleman7

OK, I can reproduce. Will try to push a fix rapidly.

regit avatar Oct 16 '18 18:10 regit

It is an requirements update that trigger this. It seems there is a change in Django breaking db-backup.

regit avatar Oct 16 '18 21:10 regit