docs/source/install.rst
changeset 101 8b2786685e8b
parent 85 e2b79f699cf2
equal deleted inserted replaced
100:119b9c2f3022 101:8b2786685e8b
    14 
    14 
    15 - a *Memcached* or *Redis* server, to store sessions and cache (can be changed through Beaker configuration)
    15 - a *Memcached* or *Redis* server, to store sessions and cache (can be changed through Beaker configuration)
    16 
    16 
    17 Optional tools also include:
    17 Optional tools also include:
    18 
    18 
       
    19 - an *LDAP* server for authentication
       
    20 
    19 - an *ElasticSearch* server for full text indexing (see *PyAMS_content_es* package)
    21 - an *ElasticSearch* server for full text indexing (see *PyAMS_content_es* package)
    20 
    22 
    21 - a *WebSockets* server using AsyncIO. This is used to manage notifications (see *PyAMS_notify* and *PyAMS_notify_ws*
    23 - a *WebSockets* server using AsyncIO. This is used to manage notifications (see *PyAMS_notify* and *PyAMS_notify_ws*
    22   packages). An *out of the box* environment can be built using *pyams_asyncio* scaffold provided by *pyams_base*
    24   packages). An *out of the box* environment can be built using *pyams_notify* scaffold.
    23   package.
    25 
    24 
    26 
    25 
    27 PyAMS also needs that you use a ZEO server, as several background processes needing a concurrent access to ZODB are
    26 You can also choose to use a local ZODB instance, or a ZEO server (which can be local or remote, but is required if
    28 started by PyAMS main process. See :ref:`zeo` to know how to create a ZEO server with the help of PyAMS tools.
    27 you want to use PyAMS in a muti-processes configuration).
       
    28 
    29 
    29 
    30 
    30 Creating initial buildout
    31 Creating initial buildout
    31 -------------------------
    32 -------------------------
    32 
    33 
    33 PyAMS provides a new Pyramid scaffold, called *pyams*, provided by the *pyams_base* package.
    34 PyAMS provides a new Pyramid scaffold, called *pyams*, generated via a *cookiecutter* template.
    34 
    35 
    35 A simple option to install PyAMS is to create a buildout environment including *Pyramid* and all *PyAMS* packages:
    36 A simple option to install PyAMS is to create a buildout environment including *Pyramid* and all *PyAMS* packages:
    36 
    37 
    37 .. code-block:: bash
    38 .. code-block:: bash
    38 
    39 
    39     # mkdir /var/local/
    40     # mkdir /var/local/
    40     # pip3 install virtualenv
    41     # pip3 install virtualenv
    41     # virtualenv --python=python3.5 env
    42     # virtualenv --python=python3.5 env
    42     # cd env
    43     # cd env
    43     # . bin/activate
    44     # . bin/activate
    44     (pyams) # pip3.5 install cookiecutter
    45     (env) # pip3.5 install cookiecutter
    45     (pyams) # cookiecutter hg+http://hg.ztfy.org/pyams/scaffolds/pyams
    46     (env) # cookiecutter hg+http://hg.ztfy.org/pyams/scaffolds/pyams
    46 
    47 
    47 CookieCutter will ask for for a small set of input variables that you can change or not.
    48 *CookieCutter* will ask you for a small set of input variables that you can change or not:
       
    49 
       
    50 - **pyams_release**: version of PyAMS configuration file to use. "latest" (default value) will point to last release;
       
    51   you can also choose to point to a given release ("0.1.4" for example)
       
    52 
       
    53 - **project_name**: current environment name in "human form"
       
    54 
       
    55 - **project_slug**: "technical" package name, based on project name
       
    56 
       
    57 - **virtual_hostname**: Apache virtual-host name
       
    58 
       
    59 - **webapp_name**: web application package name ("webapp" as default)
       
    60 
       
    61 - **webapp_port**: TCP/IP port to use when running application outside Apache ("6543" as default)
       
    62 
       
    63 - **eggs_directory**: relative or absolute path to directory containing downloaded eggs; this directory can be
       
    64   shared with other projects ("eggs" as default)
       
    65 
       
    66 - **logs_directory**: absolute path to directory containing Apache's log files
       
    67 
       
    68 - **run_user**: user name under which Apache process will run ("www-data" as default)
       
    69 
       
    70 - **run_group**: group name under which Apache process will run ("www-data" as default)
       
    71 
       
    72 - **beaker_backend**: name of Beaker backend to use to store sessions and cache data ("redis" as default)
       
    73 
       
    74 - **beaker_server**: IP address and port of Beaker backend server ("127.0.0.1:6379" as default)
       
    75 
       
    76 - **zeo_server**: IP address and port of ZEO server ("127.0.0.1:8100" as default); WARNING: ZEO server installation
       
    77   is not part of application installation; another "zeo_server" cookiecutter receipe is available for that.
       
    78 
       
    79 - **zeo_storage**: name of ZEO storage to use
       
    80 
       
    81 - **zeo_username**: ZEO user name
       
    82 
       
    83 - **zeo_password**: ZEO password
       
    84 
       
    85 - **zeo_realm**: ZEO authentication realm
       
    86 
       
    87 - **zeo_blobs_dir**: local directory to use to store cache of ZODB blobs; cache size is limited to 1GB as default
       
    88 
       
    89 - **use_postgresql**: specify if PostgreSQL access is required; if so, please check that PostgreSQL development files
       
    90   are available to compile PsycoPG2 extension
       
    91 
       
    92 - **use_oracle**: specify if Oracle access is available; if so, please check that Oracle development files are
       
    93   available to compile cx_Oracle extension, and that ORACLE_HOME environment variable is correctly defined
       
    94 
       
    95 - **use_ldap**: specify if LDAP access will be required for authentication
       
    96 
       
    97 - **use_elasticsearch**: specify if an ElasticSearch server will be used for indexation
       
    98 
       
    99 - **elasticsearch_server**: URL used to access Elasticsearch server ("http://127.0.0.1:9200" as default); this URL can
       
   100   include login and password ("http://login:password@127.0.0.1:9200"), if required...
       
   101 
       
   102 - **elasticsearch_index**: name of Eslasticsearch index to use ("pyams" as default)
       
   103 
       
   104 - **create_elasticsearch_index**: specify if Elasticsearch index should be created after installation is complete
       
   105 
       
   106 - **define_elasticsearch_mappings** : specify if Elasticsearch mappings should be defined after installation is complete
       
   107 
       
   108 - **smtp_server**: DNS name of SMTP server ("localhost" as default)
       
   109 
       
   110 - **smtp_server_name**: "human" name given to SMTP server ("pyams" as default)
       
   111 
       
   112 - **pyams_scheduler**: TCP/IP address and port to use to access PyAMS tasks scheduler process ("127.0.0.1:5555" as
       
   113   default)
       
   114 
       
   115 - **pyams_medias_converter**: TCP/IP address and port to use to access PyAMS medias converter process ("127.0.0.1:5556"
       
   116   as default)
       
   117 
       
   118 - **pyams_es_indexer**: TCP/IP address and port to use to access PyAMS Elasticsearch indexer process ("127.0.0.1:5557"
       
   119   as default)
       
   120 
       
   121 - **use_notifications**: specify if PyAMS notifications services are to be used
       
   122 
       
   123 - **pyams_ws_notify**: TCP/IP address and port of PyAMS websockets server managing notifications service
       
   124   ("127.0.0.1:8081" as default)
       
   125 
       
   126 - **lexicon_languages**: NLTK lexicon languages to use ("en:english fr:french" as default)
       
   127 
       
   128 - **extension_package**: name of a PyAMS extension package to include in environment configuration
       
   129 
       
   130 - **need_pyams_gis**: specify if PyAMS GIS features are to be used by given extension package; if so, please check
       
   131   that *libgdal* development files are available and on Debian, you have to specify environment variables for
       
   132   C_INCLUDE_PATH and CPLUS_INCLUDE_PATH pointing to */usr/include/gdal* directory. WARNING: you have to check also
       
   133   that your *libgdal* release is matching "GDAL" release given in PyAMS configuration file (actually 2.1.0).
       
   134 
    48 
   135 
    49 You can then check, and eventually update, the proposed Buildout configuration file *buildout.cfg*, to add or remove
   136 You can then check, and eventually update, the proposed Buildout configuration file *buildout.cfg*, to add or remove
    50 packages or update settings to your needs. Then finalize Bootstrap initialization:
   137 packages or update settings to your needs. Then finalize Bootstrap initialization:
    51 
   138 
    52 .. code-block:: bash
   139 .. code-block:: bash
    53 
   140 
    54     (pyams) # python3.5 bootstrap.py
   141     (env) # python3.5 bootstrap.py
    55     (pyams) # ./bin/buildout
   142     (env) # ./bin/buildout
    56 
   143 
    57 This last operation can be quite long, as many packages have to downloaded, compiled and installed in the virtual
   144 This last operation can be quite long, as many packages have to downloaded, compiled and installed in the virtual
    58 environment. If you encounter any compile error, just install the required dependencies and restart the buildout.
   145 environment. If you encounter any compile error, just install the required dependencies and restart the buildout.
    59 
   146 
    60 
   147 
    64 The project generated from *pyams* scaffold is based on default Pyramid's *zodb* scaffold, but it adds:
   151 The project generated from *pyams* scaffold is based on default Pyramid's *zodb* scaffold, but it adds:
    65 
   152 
    66 - a custom application factory, in the *webapp* directory (see :ref:`site`)
   153 - a custom application factory, in the *webapp* directory (see :ref:`site`)
    67 
   154 
    68 - a set of directories to store runtime data, in the *var* directory; each directory contains a *README.txt* file
   155 - a set of directories to store runtime data, in the *var* directory; each directory contains a *README.txt* file
    69   which should be self-explanatory to indicate what this directory should contain, including a ZODB or a ZEO cache
   156   which should be self-explanatory to indicate what this directory should contain, including a ZEO cache
    70 
   157 
    71 - a set of configuration files, in the *etc* directory; here are standard *development.ini* and *production.ini*
   158 - a set of configuration files, in the *etc* directory; here are standard *development.ini* and *production.ini*
    72   configuration files, two ZODB configuration files (*zodb.conf.fs* for a single FileStorage application process, and
   159   configuration files, a ZODB configuration files (*zodb-zeo.conf*) for a ZEO client storage and two Apache
    73   *zodb.conf.zeo* for a ZEO client storage; default configuration defined in INI files is based on a single file
   160   configurations (for Apache 2.2 and 2.4) using *mod_wsgi*.
    74   storage) and two Apache configurations (for Apache 2.2 and 2.4) using *mod_wsgi*.
       
    75 
   161 
    76 Once the project have been created from the scaffold, you are free to update all the configuration files.
   162 Once the project have been created from the scaffold, you are free to update all the configuration files.
    77 
   163 
    78 If you need to add packages to the environment, you have to add them to the *buildout.cfg* file **AND** to the INI
   164 If you need to add packages to the environment, you have to add them to the *buildout.cfg* file **AND** to the INI
    79 file (in the *pyramid.includes* section) before running the *buildout* another time; don't forget to add the
   165 file (in the *pyramid.includes* section) before running the *buildout* another time; don't forget to add the
    92 
   178 
    93 From a shell, just type:
   179 From a shell, just type:
    94 
   180 
    95 .. code-block:: bash
   181 .. code-block:: bash
    96 
   182 
    97     (pyams) # ./bin/pyams_upgrade etc/development.ini
   183     (env) # ./bin/pyams_upgrade etc/development.ini
    98 
   184 
    99 This process requires that every package is correctly included into *pyramid.includes* directive from selected
   185 This process requires that every package is correctly included into *pyramid.includes* directive from selected
   100 configuration file.
   186 configuration file.
   101 
   187 
   102 
   188 
   106 When database upgrade process has ended, you can start the web application process with the standard Pyramid's
   192 When database upgrade process has ended, you can start the web application process with the standard Pyramid's
   107 *pserve* command line tool:
   193 *pserve* command line tool:
   108 
   194 
   109 .. code-block:: bash
   195 .. code-block:: bash
   110 
   196 
   111     (pyams) # ./bin/pserve etc/development.ini
   197     (env) # ./bin/pserve etc/development.ini
   112 
   198 
   113 In standard debug mode, all registered components are displayed in the console, until the final line (here using ZEO):
   199 In standard debug mode, all registered components are displayed in the console, until the final line (here using ZEO):
   114 
   200 
   115 .. code-block:: bash
   201 .. code-block:: bash
   116 
   202 
   117     2016-12-28 10:58:46,347 INFO  [ZEO.ClientStorage][MainThread] [('localhost', 8100)] ClientStorage (pid=30133) created RW/normal for storage: 'pyams'
   203     2017-06-19 17:21:40,495 INFO  [ZEO.ClientStorage][MainThread] [('localhost', 8100)] ClientStorage (pid=23253) created RW/normal for storage: 'pyams'
   118     2016-12-28 10:58:46,349 DEBUG [ZODB.blob][MainThread] (30133) Blob directory `/var/local/env/pyams/db/blobs` has layout marker set. Selected `bushy` layout.
   204     2017-06-19 17:21:40,497 DEBUG [ZODB.blob][MainThread] (23253) Blob directory `var/db/blobs` has layout marker set. Selected `bushy` layout.
   119     2016-12-28 10:58:46,349 WARNI [ZODB.blob][MainThread] (30133) Blob dir /var/local/env/pyams/db/blobs/ has insecure mode setting
   205     2017-06-19 17:21:40,497 WARNI [ZODB.blob][MainThread] (23253) Blob dir var/db/blobs/ has insecure mode setting
   120     2016-12-28 10:58:46,349 INFO  [ZEO.cache][MainThread] created temporary cache file 5
   206     2017-06-19 17:21:40,498 INFO  [ZEO.cache][MainThread] created temporary cache file 4
   121     2016-12-28 10:58:46,373 BLATH [ZEO.zrpc][MainThread] (30133) CM.connect(): starting ConnectThread
   207     2017-06-19 17:21:40,517 BLATH [ZEO.zrpc][MainThread] (23253) CM.connect(): starting ConnectThread
   122     2016-12-28 10:58:46,374 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (30133) CT: attempting to connect on 1 sockets
   208     2017-06-19 17:21:40,518 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CT: attempting to connect on 1 sockets
   123     2016-12-28 10:58:46,380 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (30133) CW: attempt to connect to ('127.0.0.1', 8100)
   209     2017-06-19 17:21:40,524 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CW: attempt to connect to ('127.0.0.1', 8100)
   124     2016-12-28 10:58:46,380 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (30133) CW: connect_ex(('127.0.0.1', 8100)) returned EINPROGRESS
   210     2017-06-19 17:21:40,525 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CW: connect_ex(('127.0.0.1', 8100)) returned EINPROGRESS
   125     2016-12-28 10:58:46,381 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (30133) CT: select() 0, 1, 0
   211     2017-06-19 17:21:40,525 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CT: select() 0, 1, 0
   126     2016-12-28 10:58:46,381 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (30133) CW: connect_ex(('127.0.0.1', 8100)) returned 0
   212     2017-06-19 17:21:40,526 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CW: connect_ex(('127.0.0.1', 8100)) returned 0
   127     2016-12-28 10:58:46,382 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] Testing connection <ManagedClientConnection ('127.0.0.1', 8100)>
   213     2017-06-19 17:21:40,526 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] Testing connection <ManagedClientConnection ('127.0.0.1', 8100)>
   128     2016-12-28 10:58:46,383 INFO  [ZEO.zrpc.Connection(b'C')][[('localhost', 8100)] zeo client networking thread] (127.0.0.1:8100) received handshake b'Z3101'
   214     2017-06-19 17:21:40,527 INFO  [ZEO.zrpc.Connection(b'C')][[('localhost', 8100)] zeo client networking thread] (127.0.0.1:8100) received handshake b'Z4'
   129     2016-12-28 10:58:46,483 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] Server authentication protocol None
   215     2017-06-19 17:21:40,628 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] Server authentication protocol None
   130     2016-12-28 10:58:46,484 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] Connected to storage: ('localhost', 8100)
   216     2017-06-19 17:21:40,629 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] Connected to storage: ('localhost', 8100)
   131     2016-12-28 10:58:46,485 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] No verification necessary -- empty cache
   217     2017-06-19 17:21:40,630 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] No verification necessary -- empty cache
   132     2016-12-28 10:58:46,486 DEBUG [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] pickled inval None b'\x03\xbc>\x1a\x166f"'
   218     2017-06-19 17:21:40,631 DEBUG [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] pickled inval None b'\x03\xc0\n*g\xcf\xcd\xbb'
   133     2016-12-28 10:58:46,488 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (30133) CM.connect_done(preferred=1)
   219     2017-06-19 17:21:40,633 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CM.connect_done(preferred=1)
   134     2016-12-28 10:58:46,489 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (30133) CT: exiting thread: Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])
       
   135     2016-12-28 10:58:46,676 DEBUG [config][MainThread] include /var/local/env/pyams/eggs/pyams_template-0.1.0-py3.4.egg/pyams_template/configure.zcml
       
   136     2016-12-28 10:58:46,677 DEBUG [config][MainThread] include /var/local/env/pyams/eggs/pyramid_zcml-1.0.0-py3.4.egg/pyramid_zcml/configure.zcml
       
   137     2016-12-28 10:58:46,678 DEBUG [config][MainThread] include /var/local/env/pyams/eggs/pyramid_zcml-1.0.0-py3.4.egg/pyramid_zcml/meta.zcml
       
   138     2016-12-28 10:58:46,684 DEBUG [config][MainThread] include /var/local/env/pyams/eggs/pyams_template-0.1.0-py3.4.egg/pyams_template/meta.zcml
       
   139     2016-12-28 10:58:46,710 DEBUG [config][MainThread] include /var/local/env/pyams/eggs/pyams_viewlet-0.1.0-py3.4.egg/pyams_viewlet/configure.zcml
       
   140     2016-12-28 10:58:46,711 DEBUG [config][MainThread] include /var/local/env/pyams/eggs/pyramid_zcml-1.0.0-py3.4.egg/pyramid_zcml/configure.zcml
       
   141     2016-12-28 10:58:46,711 DEBUG [config][MainThread] include /var/local/env/pyams/eggs/pyramid_zcml-1.0.0-py3.4.egg/pyramid_zcml/meta.zcml
       
   142     2016-12-28 10:58:46,746 DEBUG [config][MainThread] include /var/local/env/pyams/eggs/zope.browserpage-4.1.0-py3.4.egg/zope/browserpage/meta.zcml
       
   143     2016-12-28 10:58:46,825 DEBUG [config][MainThread] include /var/local/env/pyams/eggs/pyams_template-0.1.0-py3.4.egg/pyams_template/meta.zcml
       
   144     ...
   220     ...
   145     2016-12-28 11:02:01,354 DEBUG [PyAMS (utils)][MainThread] Registering adapter <function WfSharedContentIndexInfo at 0x7f506aa9a0d0> for (<InterfaceClass pyams_content.shared.common.interfaces.IWfSharedContent>,) providing <InterfaceClass pyams_content_es.interfaces.IDocumentIndexInfo>
   221     2017-06-19 17:22:39,342 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_content.shared.common.zmi.dashboard.SharedToolDashboardModifiedColumn'> for (<InterfaceClass zope.interface.Interface>, <InterfaceClass pyams_skin.layer.IPyAMSLayer>, <InterfaceClass pyams_content.shared.common.interfaces.zmi.ISharedToolDashboardTable>) providing <InterfaceClass z3c.table.interfaces.IColumn>
   146     2016-12-28 11:02:01,370 DEBUG [PyAMS (utils)][MainThread] Registering utility <class 'pyams_content_es.site.ContentIndexerGenerationsChecker'> named 'PyAMS content indexer' providing <InterfaceClass pyams_utils.interfaces.site.ISiteGenerations>
   222     2017-06-19 17:22:39,342 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_content.shared.common.zmi.dashboard.SharedToolDashboardNameAdapter'> for (<InterfaceClass pyams_content.shared.common.interfaces.ISharedTool>, <InterfaceClass pyams_skin.layer.IPyAMSLayer>, <InterfaceClass pyams_content.shared.common.interfaces.zmi.IDashboardTable>) providing <InterfaceClass pyams_skin.interfaces.container.ITableElementName>
   147     2016-12-28 11:02:01,383 DEBUG [PyAMS (pagelet)][MainThread] Registering pagelet view "test-indexer-process.html" for <InterfaceClass pyams_content_es.interfaces.IContentIndexerUtility> (<class 'pyams_content_es.zmi.ContentIndexerProcessTestForm'>)
   223     2017-06-19 17:22:39,343 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_content.shared.common.zmi.dashboard.SharedToolDashboardNameColumn'> for (<InterfaceClass zope.interface.Interface>, <InterfaceClass pyams_skin.layer.IPyAMSLayer>, <InterfaceClass pyams_content.shared.common.interfaces.zmi.ISharedToolDashboardTable>) providing <InterfaceClass z3c.table.interfaces.IColumn>
   148     2016-12-28 11:02:01,387 DEBUG [PyAMS (pagelet)][MainThread] Registering pagelet view "properties.html" for <InterfaceClass pyams_content_es.interfaces.IContentIndexerUtility> (<class 'pyams_content_es.zmi.ContentIndexerUtilityPropertiesEditForm'>)
   224     2017-06-19 17:22:39,344 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_content.shared.common.zmi.dashboard.SharedToolDashboardOwnerColumn'> for (<InterfaceClass zope.interface.Interface>, <InterfaceClass pyams_skin.layer.IPyAMSLayer>, <InterfaceClass pyams_content.shared.common.interfaces.zmi.ISharedToolDashboardTable>) providing <InterfaceClass z3c.table.interfaces.IColumn>
   149     2016-12-28 11:02:01,400 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_default_theme.configuration.StaticConfiguration'> for (<InterfaceClass pyams_utils.interfaces.site.IStaticConfigurationManager>, <InterfaceClass pyams_default_theme.layer.IPyAMSDefaultLayer>, <InterfaceClass zope.interface.Interface>) providing <InterfaceClass pyams_skin.interfaces.configuration.IStaticConfiguration>
   225     2017-06-19 17:22:39,344 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_content.shared.common.zmi.dashboard.SharedToolDashboardOwnerModifiedValues'> for (<InterfaceClass pyams_content.shared.common.interfaces.ISharedTool>, <InterfaceClass pyams_skin.layer.IPyAMSLayer>, <class 'pyams_content.shared.common.zmi.dashboard.SharedToolDashboardOwnerModifiedTable'>) providing <InterfaceClass z3c.table.interfaces.IValues>
   150     2016-12-28 11:02:01,403 DEBUG [PyAMS (pagelet)][MainThread] Registering pagelet view "" for <InterfaceClass zope.interface.Interface> (<class 'pyams_default_theme.page.BaseIndexPage'>)
   226     2017-06-19 17:22:39,345 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_content.shared.common.zmi.dashboard.SharedToolDashboardOwnerWaitingValues'> for (<InterfaceClass pyams_content.shared.common.interfaces.ISharedTool>, <InterfaceClass pyams_skin.layer.IPyAMSLayer>, <class 'pyams_content.shared.common.zmi.dashboard.SharedToolDashboardOwnerWaitingTable'>) providing <InterfaceClass z3c.table.interfaces.IValues>
   151     2016-12-28 11:02:01,410 DEBUG [PyAMS (utils)][MainThread] Registering utility <class 'pyams_default_theme.skin.PyAMSDefaultSkin'> named 'PyAMS default skin' providing <InterfaceClass pyams_skin.interfaces.ISkin>
   227     ...
   152     2016-12-28 11:02:01,411 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'pyams_default_theme.skin.ResourcesAdapter'> for (<InterfaceClass zope.interface.Interface>, <InterfaceClass pyams_default_theme.layer.IPyAMSDefaultLayer>, <InterfaceClass zope.interface.Interface>) providing <InterfaceClass pyams_skin.interfaces.resources.IResources>
   228     2017-06-19 17:22:40,221 DEBUG [PyAMS (utils)][MainThread] Registering adapter <class 'onf_website.root.SiteRootStaticConfiguration'> for (<InterfaceClass onf_website.root.interfaces.ISiteRoot>, <InterfaceClass zope.interface.Interface>, <InterfaceClass zope.interface.Interface>) providing <InterfaceClass pyams_skin.interfaces.configuration.IStaticConfiguration>
   153     Starting server in PID 30235.
   229     2017-06-19 17:22:40,222 DEBUG [PyAMS (utils)][MainThread] Registering adapter <function site_root_tools_configuration_factory at 0x7fbc923bb158> for (<InterfaceClass onf_website.root.interfaces.ISiteRoot>,) providing <InterfaceClass onf_website.root.interfaces.ISiteRootToolsConfiguration>
   154     serving on http://0.0.0.0:6543
   230     2017-06-19 17:22:40,233 DEBUG [PyAMS (utils)][MainThread] Registering adapter <function NewsManagerRestrictionsFactory at 0x7fbc92266ae8> for (<InterfaceClass onf_website.shared.news.interfaces.INewsManager>,) providing <InterfaceClass pyams_content.shared.common.interfaces.IManagerRestrictionsFactory>
       
   231     2017-06-19 17:22:40,244 DEBUG [config][MainThread] include onf_website/configure.zcml
       
   232     2017-06-19 17:22:40,245 DEBUG [config][MainThread] include eggs/pyramid_zcml-1.1.0-py3.5.egg/pyramid_zcml/configure.zcml
       
   233     2017-06-19 17:22:40,246 DEBUG [config][MainThread] include eggs/pyramid_zcml-1.1.0-py3.5.egg/pyramid_zcml/meta.zcml
       
   234     2017-06-19 17:22:40,252 DEBUG [config][MainThread] include eggs/zope.i18n-4.1.0-py3.5.egg/zope/i18n/meta.zcml
       
   235     2017-06-19 17:22:40,253 DEBUG [zope.i18n][MainThread] register directory onf_website/src/onf_website/locales
       
   236     2017-06-19 17:22:40,258 DEBUG [config][MainThread] include webapp/webapp/configure.zcml
       
   237     ...
       
   238     2017-06-19 17:22:41,288 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CM.connect_done(preferred=1)
       
   239     2017-06-19 17:22:41,288 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CT: exiting thread: Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])
       
   240     2017-06-19 17:22:41,303 DEBUG [PyAMS (scheduler][MainThread] Adding scheduler job for task 'Compactage ZEO'
       
   241     2017-06-19 17:22:41,304 INFO  [apscheduler.scheduler][MainThread] Adding job tentatively -- it will be properly scheduled when the scheduler starts
       
   242     2017-06-19 17:22:41,305 DEBUG [PyAMS (scheduler][MainThread] Starting tasks scheduler <SchedulerProcess(SchedulerProcess-1, initial)>...
       
   243     2017-06-19 17:22:41,313 INFO  [apscheduler.scheduler][MainThread] Added job "Compactage ZEO" to job store "default"
       
   244     2017-06-19 17:22:41,314 INFO  [apscheduler.scheduler][MainThread] Scheduler started
       
   245     2017-06-19 17:22:41,314 DEBUG [apscheduler.scheduler][APScheduler] Looking for jobs to run
       
   246     2017-06-19 17:22:41,315 DEBUG [apscheduler.scheduler][APScheduler] Next wakeup is due at 2017-06-20 03:00:00+02:00 (in 34638.684629 seconds)
       
   247     2017-06-19 17:22:41,326 INFO  [ZEO.ClientStorage][MainThread] [('localhost', 8100)] ClientStorage (pid=23253) created RW/normal for storage: 'pyams'
       
   248     2017-06-19 17:22:41,327 DEBUG [ZODB.blob][MainThread] (23253) Blob directory `var/db/blobs` has layout marker set. Selected `bushy` layout.
       
   249     2017-06-19 17:22:41,328 WARNI [ZODB.blob][MainThread] (23253) Blob dir var/db/blobs/ has insecure mode setting
       
   250     2017-06-19 17:22:41,329 INFO  [ZEO.cache][MainThread] created temporary cache file 15
       
   251     2017-06-19 17:22:41,382 BLATH [ZEO.zrpc][MainThread] (23253) CM.connect(): starting ConnectThread
       
   252     2017-06-19 17:22:41,383 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CT: attempting to connect on 1 sockets
       
   253     2017-06-19 17:22:41,383 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CW: attempt to connect to ('127.0.0.1', 8100)
       
   254     2017-06-19 17:22:41,384 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CW: connect_ex(('127.0.0.1', 8100)) returned EINPROGRESS
       
   255     2017-06-19 17:22:41,385 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CT: select() 0, 1, 0
       
   256     2017-06-19 17:22:41,385 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CW: connect_ex(('127.0.0.1', 8100)) returned 0
       
   257     2017-06-19 17:22:41,386 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] Testing connection <ManagedClientConnection ('127.0.0.1', 8100)>
       
   258     2017-06-19 17:22:41,386 INFO  [ZEO.zrpc.Connection(b'C')][[('localhost', 8100)] zeo client networking thread] (127.0.0.1:8100) received handshake b'Z4'
       
   259     2017-06-19 17:22:41,487 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] Server authentication protocol None
       
   260     2017-06-19 17:22:41,488 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] Connected to storage: ('localhost', 8100)
       
   261     2017-06-19 17:22:41,489 INFO  [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] [('localhost', 8100)] No verification necessary -- empty cache
       
   262     2017-06-19 17:22:41,490 DEBUG [ZEO.ClientStorage][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] pickled inval None b'\x03\xc0\n*g\xcf\xcd\xbb'
       
   263     2017-06-19 17:22:41,492 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CM.connect_done(preferred=1)
       
   264     2017-06-19 17:22:41,493 BLATH [ZEO.zrpc][Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])] (23253) CT: exiting thread: Connect([(<AddressFamily.AF_INET: 2>, ('localhost', 8100))])
       
   265     2017-06-19 17:22:41,498 DEBUG [PyAMS (media)][MainThread] Starting medias conversion process <MediaConversionProcess(MediaConversionProcess-2, initial)>...
       
   266     2017-06-19 17:22:41,503 DEBUG [PyAMS (content.es)][MainThread] Starting content indexer process <ContentIndexerProcess(ContentIndexerProcess-3, initial)>...
       
   267     Starting server in PID 23253.
       
   268     Serving on http://0.0.0.0:6543
   155 
   269 
   156 From this point, you can launch a browser and open URL *http://127.0.0.1:6543/admin* to get access to PyAMS
   270 From this point, you can launch a browser and open URL *http://127.0.0.1:6543/admin* to get access to PyAMS
   157 management interface; default login is "admin/admin", that you may change as soon as possible...
   271 management interface; default login is "admin/admin", that you may change as soon as possible...