jeffreyorourke removed a comment on issue #12867:
URL: https://github.com/apache/superset/issues/12867#issuecomment-789771510


   Hello! I am hoping you can help correct my attempted S3Cache configuration...
   
   ### Environment
   Python 3.7
   Superset 1.0.1
   
   ### Expected results
   For `superset init` to complete successfully.
   
   ### Actual results
   ```Traceback (most recent call last):
     File "/venv/bin/superset", line 8, in <module>
       sys.exit(superset())
     File "/venv/lib/python3.7/site-packages/click/core.py", line 829, in 
__call__
       return self.main(*args, **kwargs)
     File "/venv/lib/python3.7/site-packages/flask/cli.py", line 586, in main
       return super(FlaskGroup, self).main(*args, **kwargs)
     File "/venv/lib/python3.7/site-packages/click/core.py", line 782, in main
       rv = self.invoke(ctx)
     File "/venv/lib/python3.7/site-packages/click/core.py", line 1256, in 
invoke
       Command.invoke(self, ctx)
     File "/venv/lib/python3.7/site-packages/click/core.py", line 1066, in 
invoke
       return ctx.invoke(self.callback, **ctx.params)
     File "/venv/lib/python3.7/site-packages/click/core.py", line 610, in invoke
       return callback(*args, **kwargs)
     File "/venv/lib/python3.7/site-packages/click/decorators.py", line 21, in 
new_func
       return f(get_current_context(), *args, **kwargs)
     File "/venv/lib/python3.7/site-packages/flask/cli.py", line 425, in 
decorator
       with __ctx.ensure_object(ScriptInfo).load_app().app_context():
     File "/venv/lib/python3.7/site-packages/flask/cli.py", line 381, in 
load_app
       app = call_factory(self, self.create_app)
     File "/venv/lib/python3.7/site-packages/flask/cli.py", line 119, in 
call_factory
       return app_factory()
     File "/venv/lib/python3.7/site-packages/superset/app.py", line 69, in 
create_app
       raise ex
     File "/venv/lib/python3.7/site-packages/superset/app.py", line 62, in 
create_app
       app_initializer.init_app()
     File "/venv/lib/python3.7/site-packages/superset/app.py", line 548, in 
init_app
       self.configure_cache()
     File "/venv/lib/python3.7/site-packages/superset/app.py", line 570, in 
configure_cache
       cache_manager.init_app(self.flask_app)
     File "/venv/lib/python3.7/site-packages/superset/utils/cache_manager.py", 
line 48, in init_app
       **app.config["THUMBNAIL_CACHE_CONFIG"],
   TypeError: 'function' object is not a mapping
   ```
   
   ### Relevant lines from my superset_config.py 
   ```
   from flask import Flask
   from flask_caching import Cache
   from s3cache.s3cache import S3Cache
   from superset.config import *
   
   FEATURE_FLAGS: Dict[str, bool] = {
       "THUMBNAILS": True,
       "THUMBNAILS_SQLA_LISTENERS": True,
       "DASHBOARD_CACHE": True,
   }
   
   CACHE_CONFIG = {
       'CACHE_TYPE': 'redis',
       'CACHE_DEFAULT_TIMEOUT': 60 * 60 * 24,
       'CACHE_KEY_PREFIX': 'superset_',
       'CACHE_REDIS_HOST': 'localhost',
       'CACHE_REDIS_PORT': 6379,
       'CACHE_REDIS_DB': 1,
       'CACHE_REDIS_URL': 'redis://localhost:6379/0'
   }
   
   DATA_CACHE_CONFIG = {
       'CACHE_TYPE': 'redis',
       'CACHE_DEFAULT_TIMEOUT': 60 * 60 * 24, # 1 day default (in secs)
       'CACHE_KEY_PREFIX': 'superset_results',
       'CACHE_REDIS_URL': 'redis://localhost:6379/1',
   }
   
   # Async selenium thumbnail task will use the following user
   THUMBNAIL_SELENIUM_USER = "Admin"
   THUMBNAIL_CACHE_CONFIG: CacheConfig = {
       'CACHE_TYPE': 'redis',
       'CACHE_DEFAULT_TIMEOUT': 24*60*60*7,
       'CACHE_KEY_PREFIX': 'thumbnail_',
       'CACHE_NO_NULL_WARNING': True,
       'CACHE_REDIS_URL': 'redis://localhost:6379/2'
   }
   
   class CeleryConfig(object):
       BROKER_URL = "redis://localhost:6379/0"
       CELERY_IMPORTS = ("superset.sql_lab", "superset.tasks", 
"superset.tasks.thumbnails",)
       CELERY_RESULT_BACKEND = "redis://localhost:6379/0"
       CELERYD_LOG_LEVEL = 'DEBUG'
       CELERYD_PREFETCH_MULTIPLIER = 1
       CELERY_ACKS_LATE = True
        
   CELERY_CONFIG = CeleryConfig
   
   def init_thumbnail_cache(app: Flask) -> S3Cache:
       return S3Cache('mybucket-superset', 'thumbs_cache/')
   
   THUMBNAIL_CACHE_CONFIG = init_thumbnail_cache
   
   # On S3
   from s3cache.s3cache import S3Cache
   S3_CACHE_BUCKET = 'mybucket-superset'
   S3_CACHE_KEY_PREFIX = 'sql_lab_result'
   RESULTS_BACKEND = S3Cache(S3_CACHE_BUCKET, S3_CACHE_KEY_PREFIX)
   
   # On Redis
   from cachelib.redis import RedisCache
   RESULTS_BACKEND = RedisCache(
       host='localhost', port=6379, key_prefix='superset_results')
   ```
   
   ### How to reproduce the bug
   Run `superset init` after having followed the instructions in the 
documentation at 
https://github.com/apache/superset/blob/4cfcaebb612bd599f5cf29bf43fc75f387f17e76/docs/src/pages/docs/installation/caching.mdx
   
   ### Additional context
   I am guessing that I have missed something obvious... but I have been going 
around the block on this for a few days and can't seem to figure it out :(
   
   It would be great if you could advise how to fix this here, and possible 
also include a working example of how superset_config.py needs to be configured 
to enable S3Cache... 


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org



---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscr...@superset.apache.org
For additional commands, e-mail: notifications-h...@superset.apache.org

Reply via email to