Skip to content

altai/focus

Repository files navigation

After installing RPM:


1) Install/start Memcached
2) Install/start MySQL
3) Create MySQL database and populate it with invitations_dump.sql and
   configured_hostnames.sql files (in this order) from /etc/focus directory.
4) Open port 80 in firewall if any is installed
5) configure Nginx (/etc/nginx/conf.d/focus.conf)
   - set upload_store directive
     * value must consist from local_settings.py variable UPLOADS_DEFAULT_DEST and "/files/"
     * make sure the directory exists and is writable by nginx user
  - set proxy_pass directive (URL to access gunicorn server) if not satisfied with default
  - Nginx requires restart or reload after this operation

6) edit /etc/focus/local_settings.py
  - have running Memcached server
    * MEMCACHED_HOST default to '127.0.0.1:11211'
    * MEMCACHED_TIMEOUT - number of seconds for Memcached to store a value, 7200 by default (2 hours)
  - set credentials to Nova MySQL db (NOVA_RO_DATABASE_URI and NOVA_RW_DATABASE_URI)
  - set credentials to Invitations MySQL db (INVITATIONS_DATABASE_URI)
  - set URL to access ODB (NEO4J_API_URL)
  - set Keystone access configuration dictionary (KEYSTONE_CONF):
    * auth_uri - Keyston authentication URL for port 5000
    * admin_tenant_name - usually 'systenant'
    * admin_user - usually 'admin'
    * admin_password - Keystone password for admin_user
    * admin_tenant_id - ID of admin_tenant_name tenant
  - set SMTP server configuration
    * MAIL_SERVER is SMTP server host
    * MAIL_PORT is SMTP server port
    * MAIL_USERNAME is required if SMTP server requires authentication (for Gmail it must be full email address, not only username)
    * MAIL_PASSWORD is required if SMTP requires authentication
    * DEFAULT_MAIL_SENDER:
      = if SMTP server requires authentication (Gmail) then this variable must be equal to MAIL_USERNAME or be tuple of (<some name>, MAIL_USERNAME)
      = if SMTP server does not require authentication then this variable can contain email address or be tuple of (name, email)
    * MAIL_USE_TLS must be True if SMTP server requires it (e..g. Gmail)
  - set default uploads destination (UPLOADS_DEFAULT_DEST) (pay attention to Nginx configuration)
  - set difference between Focus and Keystone timezones (RELATIVE_TO_API_HOURS_SHIFT)
  - set path to log (file LOG_FILE).
  - set URL of zabbix proxy API (ZABBIX_PROXY_BASEURL)
  - set DB credentials to access Zabbix database (ZABBIX_PROXY_DB)
    * it must be dictionary of keys/values for MySQLdb to connect
    * example:{
       'host': 'localhost',
       'user': 'root',
       'db': 'zabbix',
       'passwd': 'foo'
       }
  - set path to directory writable by the web-aplication for zabbix proxy API service to store it's files (ZABBIX_PROXY_TMP)
  - set path to log (file ZABBIX_LOG_FILE). Default is /var/log/focus/zabbix_proxy.log

7) edit /etc/focus/gunicorn_config.py
  - bind: "<IP:port>"
  - workers: integer number of workers
  - timeout: leave as is, we require big number of seconds here
  - accesslog: Gunicorn access log
  - errorlog: Gunicorn error log
  - logger_class: Python class for Gunicorn logger. Leave it be 'focus.glogging.Logger' because it brings log rotation. Default (omitting this parameter in config) is simple file log.
  - LOG_MAX_BYTES: maxBytes argument for RotatingFileHandler. Used when logger_class is 'focus.glogging.Logger'.
  - LOG_BACKUP_COUNT: backupCount argument for RotatingFileHandler. Used when logger_class is 'focus.glogging.Logger'.

8) Start service focus (CentOS)


You can turn on HTTP logging for Keystone client(KEYSTONECLIENT_DEBUG).
To receive reports about errors on email list email addresses in ADMINS.