在Devstack基礎上開發dashboard(二)——從horizon源碼到運行

devstack版本: queens
運行環境: CentOS Linux release 7.5.1804

起因:windows編輯好的項目上傳服務器後,啓動失敗

在我從github上clone了horizon的源碼後,在windows上使用pycharm進行編輯,然後上傳到了服務端,重啓了apache,然後在調試過程中發現了各種各樣的問題,於是,我將服務端的horizon目錄整個清空,將本地的代碼推送到服務端後,發現重啓apache了,然而服務已經不可用了。看horizon的錯誤日誌,也會報告一些奇怪的錯誤,並且這些錯誤解決後也無法正常加載horizon。

解決方法

於是運行了unstack,然後重新stack了。重新stack之後horizon正常啓動了,然後通過stack.sh的日誌中,找到horizon部署時運行的腳本日誌:

2018-08-30 07:34:08.614 | +[3242mlib/horizon:configure_horizon:75         (B[m setup_develop /opt/stack/horizon
2018-08-30 07:34:08.617 | +[3242minc/python:setup_develop:510             (B[m local project_dir=/opt/stack/horizon
2018-08-30 07:34:08.620 | +[3242minc/python:setup_develop:511             (B[m local extras=
2018-08-30 07:34:08.623 | +[3242minc/python:setup_develop:512             (B[m _setup_package_with_constraints_edit /opt/stack/horizon -e
2018-08-30 07:34:08.626 | +[3242minc/python:_setup_package_with_constraints_edit:542 (B[m local project_dir=/opt/stack/horizon
2018-08-30 07:34:08.629 | +[3242minc/python:_setup_package_with_constraints_edit:543 (B[m local flags=-e
2018-08-30 07:34:08.632 | +[3242minc/python:_setup_package_with_constraints_edit:544 (B[m local extras=
2018-08-30 07:34:08.635 | ++[3242minc/python:_setup_package_with_constraints_edit:551 (B[m cd /opt/stack/horizon
2018-08-30 07:34:08.639 | ++[3242minc/python:_setup_package_with_constraints_edit:551 (B[m pwd
2018-08-30 07:34:08.641 | +[3242minc/python:_setup_package_with_constraints_edit:551 (B[m project_dir=/opt/stack/horizon
2018-08-30 07:34:08.644 | +[3242minc/python:_setup_package_with_constraints_edit:553 (B[m '[' -n /opt/stack/requirements ']'
2018-08-30 07:34:08.647 | +[3242minc/python:_setup_package_with_constraints_edit:555 (B[m local name
2018-08-30 07:34:08.650 | ++[3242minc/python:_setup_package_with_constraints_edit:556 (B[m awk '/^name.*=/ {print $3}' /opt/stack/horizon/setup.cfg
2018-08-30 07:34:08.654 | +[3242minc/python:_setup_package_with_constraints_edit:556 (B[m name=horizon
2018-08-30 07:34:08.656 | +[3242minc/python:_setup_package_with_constraints_edit:558 (B[m /opt/stack/requirements/.venv/bin/edit-constraints /opt/stack/requirements/upper-constraints.txt -- horizon '-e file:///opt/stack/horizon#egg=horizon'
2018-08-30 07:34:08.923 | +[3242minc/python:_setup_package_with_constraints_edit:562 (B[m setup_package /opt/stack/horizon -e
2018-08-30 07:34:08.926 | +[3242minc/python:setup_package:578             (B[m local project_dir=/opt/stack/horizon
2018-08-30 07:34:08.928 | +[3242minc/python:setup_package:579             (B[m local flags=-e
2018-08-30 07:34:08.931 | +[3242minc/python:setup_package:580             (B[m local extras=
2018-08-30 07:34:08.934 | +[3242minc/python:setup_package:584             (B[m [[ -n -e ]]
2018-08-30 07:34:08.937 | +[3242minc/python:setup_package:584             (B[m [[ -z '' ]]
2018-08-30 07:34:08.939 | +[3242minc/python:setup_package:584             (B[m [[ ! -e =~ ^-.* ]]
2018-08-30 07:34:08.942 | +[3242minc/python:setup_package:589             (B[m [[ ! -z '' ]]
2018-08-30 07:34:08.945 | +[3242minc/python:setup_package:593             (B[m pip_install -e /opt/stack/horizon
2018-08-30 07:34:09.325 | +[3242minc/python:pip_install:349               (B[m local install_test_reqs=
2018-08-30 07:34:09.327 | +[3242minc/python:pip_install:350               (B[m local test_req=/opt/stack/horizon/test-requirements.txt
2018-08-30 07:34:09.330 | +[3242minc/python:pip_install:351               (B[m [[ -e /opt/stack/horizon/test-requirements.txt ]]
2018-08-30 07:34:09.333 | +[3242minc/python:pip_install:352               (B[m install_test_reqs='-r /opt/stack/horizon/test-requirements.txt'
2018-08-30 07:34:09.335 | +[3242minc/python:pip_install:359               (B[m sudo -H http_proxy= https_proxy= no_proxy= PIP_FIND_LINKS= SETUPTOOLS_SYS_PATH_TECHNIQUE=rewrite /usr/bin/pip2.7 install -c /opt/stack/requirements/upper-constraints.txt -r /opt/stack/horizon/test-requirements.txt -e /opt/stack/horizon

這裏安裝horizon的依賴包

2018-08-30 07:34:09.786 | Ignoring EditorConfig: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.794 | Ignoring EditorConfig: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.838 | Ignoring argh: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.838 | Ignoring argh: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.847 | Ignoring blinker: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.848 | Ignoring blinker: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.851 | Ignoring brotlipy: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.852 | Ignoring brotlipy: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.866 | Ignoring cssutils: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.867 | Ignoring cssutils: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.881 | Ignoring dnspython3: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.882 | Ignoring dnspython3: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.912 | Ignoring h2: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.913 | Ignoring h2: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.916 | Ignoring hpack: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.918 | Ignoring hpack: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.919 | Ignoring html2text: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.920 | Ignoring html2text: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.921 | Ignoring hyperframe: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.922 | Ignoring hyperframe: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.930 | Ignoring jsbeautifier: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.931 | Ignoring jsbeautifier: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.937 | Ignoring kaitaistruct: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.938 | Ignoring kaitaistruct: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:09.959 | Ignoring mypy: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:09.960 | Ignoring mypy: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:10.008 | Ignoring pathtools: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:10.009 | Ignoring pathtools: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:10.096 | Ignoring ruamel.yaml: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:10.097 | Ignoring ruamel.yaml: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:10.111 | Ignoring sortedcontainers: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:10.112 | Ignoring sortedcontainers: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:10.139 | Ignoring tornado: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:10.140 | Ignoring tornado: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:10.146 | Ignoring typed-ast: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:10.147 | Ignoring typed-ast: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:10.153 | Ignoring urwid: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:10.154 | Ignoring urwid: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:10.159 | Ignoring watchdog: markers 'python_version == "3.4"' don't match your environment
2018-08-30 07:34:10.160 | Ignoring watchdog: markers 'python_version == "3.5"' don't match your environment
2018-08-30 07:34:10.180 | Obtaining file:///opt/stack/horizon
2018-08-30 07:34:11.943 | Obtaining horizon from file:///opt/stack/horizon#egg=horizon (from -c /opt/stack/requirements/upper-constraints.txt (line 1))
2018-08-30 07:34:13.594 | Requirement already satisfied: Babel===2.5.3 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 3))
2018-08-30 07:34:13.596 | Requirement already satisfied: Django===1.11.9 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 5))
2018-08-30 07:34:13.598 | Requirement already satisfied: Pint===0.8.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 19))
2018-08-30 07:34:13.600 | Requirement already satisfied: PyYAML===3.12 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 25))
2018-08-30 07:34:13.602 | Requirement already satisfied: XStatic===1.0.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 37))
2018-08-30 07:34:13.602 | Requirement already satisfied: XStatic-Angular===1.5.8.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 38))
2018-08-30 07:34:13.605 | Requirement already satisfied: XStatic-Angular-Bootstrap===2.2.0.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 39))
2018-08-30 07:34:13.605 | Requirement already satisfied: XStatic-Angular-FileUpload===12.0.4.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 40))
2018-08-30 07:34:13.605 | Requirement already satisfied: XStatic-Angular-Gettext===2.3.8.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 41))
2018-08-30 07:34:13.607 | Requirement already satisfied: XStatic-Angular-Schema-Form===0.8.13.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 42))
2018-08-30 07:34:13.607 | Requirement already satisfied: XStatic-Angular-lrdragndrop===1.0.2.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 43))
2018-08-30 07:34:13.608 | Requirement already satisfied: XStatic-Bootstrap-Datepicker===1.3.1.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 44))
2018-08-30 07:34:13.610 | Requirement already satisfied: XStatic-Bootstrap-SCSS===3.3.7.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 45))
2018-08-30 07:34:13.611 | Requirement already satisfied: XStatic-D3===3.5.17.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 46))
2018-08-30 07:34:13.612 | Requirement already satisfied: XStatic-Font-Awesome===4.7.0.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 47))
2018-08-30 07:34:13.613 | Requirement already satisfied: XStatic-Hogan===2.0.0.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 48))
2018-08-30 07:34:13.615 | Requirement already satisfied: XStatic-JQuery-Migrate===1.2.1.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 49))
2018-08-30 07:34:13.616 | Requirement already satisfied: XStatic-JQuery.TableSorter===2.14.5.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 50))
2018-08-30 07:34:13.617 | Requirement already satisfied: XStatic-JQuery.quicksearch===2.0.3.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 51))
2018-08-30 07:34:13.618 | Requirement already satisfied: XStatic-JSEncrypt===2.3.1.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 52))
2018-08-30 07:34:13.619 | Requirement already satisfied: XStatic-Jasmine===2.4.1.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 53))
2018-08-30 07:34:13.620 | Requirement already satisfied: XStatic-Rickshaw===1.5.0.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 55))
2018-08-30 07:34:13.621 | Requirement already satisfied: XStatic-Spin===1.2.5.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 56))
2018-08-30 07:34:13.622 | Requirement already satisfied: XStatic-bootswatch===3.3.7.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 58))
2018-08-30 07:34:13.624 | Requirement already satisfied: XStatic-jQuery===1.10.2.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 59))
2018-08-30 07:34:13.625 | Requirement already satisfied: XStatic-jquery-ui===1.12.0.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 60))
2018-08-30 07:34:13.626 | Requirement already satisfied: XStatic-mdi===1.4.57.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 61))
2018-08-30 07:34:13.627 | Requirement already satisfied: XStatic-objectpath===1.2.1.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 62))
2018-08-30 07:34:13.629 | Requirement already satisfied: XStatic-roboto-fontface===0.5.0.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 63))
2018-08-30 07:34:13.630 | Requirement already satisfied: XStatic-smart-table===1.4.13.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 64))
2018-08-30 07:34:13.631 | Requirement already satisfied: XStatic-term.js===0.0.7.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 65))
2018-08-30 07:34:13.632 | Requirement already satisfied: XStatic-tv4===1.2.7.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 66))
2018-08-30 07:34:13.633 | Requirement already satisfied: coverage===4.4.2 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 112))
2018-08-30 07:34:13.635 | Requirement already satisfied: django-babel===0.6.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 129))
2018-08-30 07:34:13.638 | Requirement already satisfied: django-compressor===2.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 130))
2018-08-30 07:34:13.641 | Requirement already satisfied: django-pyscss===2.0.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 134))
2018-08-30 07:34:13.644 | Requirement already satisfied: doc8===0.8.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 138))
2018-08-30 07:34:13.649 | Requirement already satisfied: docutils===0.14 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 142))
2018-08-30 07:34:13.650 | Requirement already satisfied: futurist===1.6.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 166))
2018-08-30 07:34:13.658 | Requirement already satisfied: iso8601===0.1.12 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 198))
2018-08-30 07:34:13.660 | Requirement already satisfied: keystoneauth1===3.6.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 215))
2018-08-30 07:34:13.689 | Requirement already satisfied: mock===2.0.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 231))
2018-08-30 07:34:13.701 | Requirement already satisfied: monotonic===1.4 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 234))
2018-08-30 07:34:13.703 | Requirement already satisfied: mox3===0.24.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 236))
2018-08-30 07:34:13.705 | Requirement already satisfied: netaddr===0.7.19 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 244))
2018-08-30 07:34:13.707 | Requirement already satisfied: nodeenv===1.2.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 250))
2018-08-30 07:34:13.709 | Requirement already satisfied: os-service-types===1.2.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 277))
2018-08-30 07:34:13.711 | Requirement already satisfied: oslo.concurrency===3.26.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 285))
2018-08-30 07:34:13.719 | Requirement already satisfied: oslo.config===5.2.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 286))
2018-08-30 07:34:13.724 | Requirement already satisfied: oslo.i18n===3.19.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 289))
2018-08-30 07:34:13.728 | Requirement already satisfied: oslo.policy===1.33.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 293))
2018-08-30 07:34:13.734 | Requirement already satisfied: oslo.serialization===2.24.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 297))
2018-08-30 07:34:13.738 | Requirement already satisfied: oslo.utils===3.35.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 299))
2018-08-30 07:34:13.748 | Requirement already satisfied: osprofiler===2.3.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 304))
2018-08-30 07:34:13.755 | Requirement already satisfied: pathlib===1.0.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 310))
2018-08-30 07:34:13.756 | Requirement already satisfied: pbr===3.1.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 315))
2018-08-30 07:34:13.757 | Requirement already satisfied: prettytable===0.7.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 323))
2018-08-30 07:34:13.758 | Requirement already satisfied: pyScss===1.3.4 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 331))
2018-08-30 07:34:13.761 | Requirement already satisfied: pymongo===3.6.0 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 349))
2018-08-30 07:34:13.765 | Requirement already satisfied: pyparsing===2.2.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 351))
2018-08-30 07:34:13.766 | Requirement already satisfied: python-cinderclient===3.5.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 365))
2018-08-30 07:34:13.774 | Requirement already satisfied: python-glanceclient===2.10.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 373))
2018-08-30 07:34:13.782 | Requirement already satisfied: python-keystoneclient===3.15.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 380))
2018-08-30 07:34:13.790 | Requirement already satisfied: python-neutronclient===6.7.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 391))
2018-08-30 07:34:13.802 | Requirement already satisfied: python-novaclient===10.1.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 392))
2018-08-30 07:34:13.810 | Requirement already satisfied: python-swiftclient===3.5.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 406))
2018-08-30 07:34:13.816 | Requirement already satisfied: pytz===2017.3 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 413))
2018-08-30 07:34:13.818 | Requirement already satisfied: rcssmin===1.0.6 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 419))
2018-08-30 07:34:13.820 | Requirement already satisfied: requests===2.18.4 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 424))
2018-08-30 07:34:13.833 | Requirement already satisfied: restructuredtext-lint===1.1.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 433))
2018-08-30 07:34:13.835 | Requirement already satisfied: rfc3986===1.1.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 435))
2018-08-30 07:34:13.836 | Requirement already satisfied: rjsmin===1.0.12 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 436))
2018-08-30 07:34:13.838 | Requirement already satisfied: selenium===3.8.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 449))
2018-08-30 07:34:13.839 | Requirement already satisfied: semantic-version===2.6.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 450))
2018-08-30 07:34:13.841 | Requirement already satisfied: simplejson===3.13.2 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 455))
2018-08-30 07:34:13.842 | Requirement already satisfied: six===1.11.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 457))
2018-08-30 07:34:13.843 | Requirement already satisfied: stevedore===1.28.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 478))
2018-08-30 07:34:13.846 | Requirement already satisfied: testscenarios===0.5.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 493))
2018-08-30 07:34:13.849 | Requirement already satisfied: testtools===2.3.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 494))
2018-08-30 07:34:13.856 | Requirement already satisfied: traceback2===1.4.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 502))
2018-08-30 07:34:13.857 | Requirement already satisfied: unittest2===1.1.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 513))
2018-08-30 07:34:13.861 | Requirement already satisfied: urllib3===1.22 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 515))
2018-08-30 07:34:13.870 | Requirement already satisfied: warlock===1.2.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 523))
2018-08-30 07:34:13.873 | Requirement already satisfied: wrapt===1.10.11 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 531))
2018-08-30 07:34:13.874 | Requirement already satisfied: xvfbwrapper===0.2.9 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 536))
2018-08-30 07:34:13.876 | Requirement already satisfied: hacking!=0.13.0,<0.14,>=0.12.0 in /usr/lib/python2.7/site-packages (from -r /opt/stack/horizon/test-requirements.txt (line 10))
2018-08-30 07:34:13.882 | Requirement already satisfied: bandit>=1.4.0 in /usr/lib/python2.7/site-packages (from -r /opt/stack/horizon/test-requirements.txt (line 12))
2018-08-30 07:34:13.887 | Requirement already satisfied: flake8-import-order==0.12 in /usr/lib/python2.7/site-packages (from -r /opt/stack/horizon/test-requirements.txt (line 15))
2018-08-30 07:34:13.889 | Requirement already satisfied: django-appconf===1.0.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 128))
2018-08-30 07:34:13.890 | Requirement already satisfied: chardet===3.0.4 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 103))
2018-08-30 07:34:13.892 | Requirement already satisfied: futures===3.2.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 165))
2018-08-30 07:34:13.893 | Requirement already satisfied: contextlib2===0.5.5 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 110))
2018-08-30 07:34:13.894 | Requirement already satisfied: funcsigs===1.0.2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 162))
2018-08-30 07:34:13.897 | Requirement already satisfied: fixtures===3.0.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 156))
2018-08-30 07:34:13.902 | Requirement already satisfied: enum34===1.1.6 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 148))
2018-08-30 07:34:13.903 | Requirement already satisfied: fasteners===0.14.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 155))
2018-08-30 07:34:13.905 | Requirement already satisfied: debtcollector===1.19.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 121))
2018-08-30 07:34:13.911 | Requirement already satisfied: msgpack===0.5.1 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 238))
2018-08-30 07:34:13.912 | Requirement already satisfied: netifaces===0.10.6 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 245))
2018-08-30 07:34:13.914 | Requirement already satisfied: WebOb===1.7.4 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 34))
2018-08-30 07:34:13.919 | Requirement already satisfied: pyOpenSSL===17.5.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 330))
2018-08-30 07:34:13.925 | Requirement already satisfied: osc-lib===1.9.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 283))
2018-08-30 07:34:13.934 | Requirement already satisfied: cliff===2.11.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 106))
2018-08-30 07:34:13.943 | Requirement already satisfied: os-client-config===1.29.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 272))
2018-08-30 07:34:13.947 | Requirement already satisfied: idna===2.6 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 192))
2018-08-30 07:34:13.949 | Requirement already satisfied: certifi===2018.1.18 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 101))
2018-08-30 07:34:13.950 | Requirement already satisfied: extras===1.0.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 153))
2018-08-30 07:34:13.951 | Requirement already satisfied: python-mimeparse===1.6.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 387))
2018-08-30 07:34:13.952 | Requirement already satisfied: linecache2===1.0.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 224))
2018-08-30 07:34:13.953 | Requirement already satisfied: argparse in /usr/lib/python2.7/site-packages (from unittest2===1.1.0->-c /opt/stack/requirements/upper-constraints.txt (line 513))
2018-08-30 07:34:13.954 | Requirement already satisfied: jsonschema===2.6.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 208))
2018-08-30 07:34:13.959 | Requirement already satisfied: jsonpatch===1.21 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 204))
2018-08-30 07:34:13.960 | Requirement already satisfied: mccabe==0.2.1 in /usr/lib/python2.7/site-packages (from hacking!=0.13.0,<0.14,>=0.12.0->-r /opt/stack/horizon/test-requirements.txt (line 10))
2018-08-30 07:34:13.962 | Requirement already satisfied: pep8==1.5.7 in /usr/lib/python2.7/site-packages (from hacking!=0.13.0,<0.14,>=0.12.0->-r /opt/stack/horizon/test-requirements.txt (line 10))
2018-08-30 07:34:13.964 | Requirement already satisfied: flake8<2.6.0,>=2.5.4 in /usr/lib/python2.7/site-packages (from hacking!=0.13.0,<0.14,>=0.12.0->-r /opt/stack/horizon/test-requirements.txt (line 10))
2018-08-30 07:34:13.969 | Requirement already satisfied: pyflakes==0.8.1 in /usr/lib/python2.7/site-packages (from hacking!=0.13.0,<0.14,>=0.12.0->-r /opt/stack/horizon/test-requirements.txt (line 10))
2018-08-30 07:34:13.970 | Requirement already satisfied: GitPython===2.1.8 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 11))
2018-08-30 07:34:13.972 | Requirement already satisfied: pycodestyle in /usr/lib/python2.7/site-packages (from flake8-import-order==0.12->-r /opt/stack/horizon/test-requirements.txt (line 15))
2018-08-30 07:34:13.975 | Requirement already satisfied: setuptools in /usr/lib/python2.7/site-packages (from flake8-import-order==0.12->-r /opt/stack/horizon/test-requirements.txt (line 15))
2018-08-30 07:34:13.978 | Requirement already satisfied: cryptography===2.1.4 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 115))
2018-08-30 07:34:13.997 | Requirement already satisfied: openstacksdk===0.11.3 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 266))
2018-08-30 07:34:14.012 | Requirement already satisfied: cmd2===0.7.9 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 107))
2018-08-30 07:34:14.014 | Requirement already satisfied: unicodecsv===0.14.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 512))
2018-08-30 07:34:14.016 | Requirement already satisfied: appdirs===1.4.3 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 76))
2018-08-30 07:34:14.017 | Requirement already satisfied: requestsexceptions===1.4.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 432))
2018-08-30 07:34:14.018 | Requirement already satisfied: functools32===3.2.3.post2 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 163))
2018-08-30 07:34:14.019 | Requirement already satisfied: jsonpointer===2.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 207))
2018-08-30 07:34:14.020 | Requirement already satisfied: gitdb2===2.0.3 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 169))
2018-08-30 07:34:14.022 | Requirement already satisfied: cffi===1.11.4 in /usr/lib64/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 102))
2018-08-30 07:34:14.024 | Requirement already satisfied: asn1crypto===0.24.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 79))
2018-08-30 07:34:14.025 | Requirement already satisfied: ipaddress===1.0.19 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 196))
2018-08-30 07:34:14.026 | Requirement already satisfied: dogpile.cache===0.6.4 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 143))
2018-08-30 07:34:14.027 | Requirement already satisfied: decorator===4.2.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 122))
2018-08-30 07:34:14.028 | Requirement already satisfied: deprecation===1.0.1 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 125))
2018-08-30 07:34:14.029 | Requirement already satisfied: munch===2.2.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 239))
2018-08-30 07:34:14.031 | Requirement already satisfied: jmespath===0.9.3 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 200))
2018-08-30 07:34:14.033 | Requirement already satisfied: pyperclip===1.6.0 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 352))
2018-08-30 07:34:14.034 | Requirement already satisfied: smmap2===2.0.3 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 459))
2018-08-30 07:34:14.035 | Requirement already satisfied: pycparser===2.18 in /usr/lib/python2.7/site-packages (from -c /opt/stack/requirements/upper-constraints.txt (line 335))
2018-08-30 07:34:14.036 | Installing collected packages: horizon
2018-08-30 07:34:14.036 |   Found existing installation: horizon 13.0.2.dev13
2018-08-30 07:34:14.038 |     Uninstalling horizon-13.0.2.dev13:
2018-08-30 07:34:14.045 |       Successfully uninstalled horizon-13.0.2.dev13
2018-08-30 07:34:14.045 |   Running setup.py develop for horizon
2018-08-30 07:34:16.310 | Successfully installed horizon
2018-08-30 07:34:16.415 | You are using pip version 9.0.3, however version 18.0 is available.
2018-08-30 07:34:16.415 | You should consider upgrading via the 'pip install --upgrade pip' command.
2018-08-30 07:34:16.440 | +[3242minc/python:pip_install:366               (B[m result=0
2018-08-30 07:34:16.443 | +[3242minc/python:pip_install:368               (B[m time_stop pip_install
2018-08-30 07:34:16.445 | +[3242mfunctions-common:time_stop:2251          (B[m local name
2018-08-30 07:34:16.448 | +[3242mfunctions-common:time_stop:2252          (B[m local end_time
2018-08-30 07:34:16.451 | +[3242mfunctions-common:time_stop:2253          (B[m local elapsed_time
2018-08-30 07:34:16.453 | +[3242mfunctions-common:time_stop:2254          (B[m local total
2018-08-30 07:34:16.456 | +[3242mfunctions-common:time_stop:2255          (B[m local start_time
2018-08-30 07:34:16.458 | +[3242mfunctions-common:time_stop:2257          (B[m name=pip_install
2018-08-30 07:34:16.461 | +[3242mfunctions-common:time_stop:2258          (B[m start_time=1535614448958
2018-08-30 07:34:16.464 | +[3242mfunctions-common:time_stop:2260          (B[m [[ -z 1535614448958 ]]
2018-08-30 07:34:16.467 | ++[3242mfunctions-common:time_stop:2263          (B[m date +%s%3N
2018-08-30 07:34:16.470 | +[3242mfunctions-common:time_stop:2263          (B[m end_time=1535614456467
2018-08-30 07:34:16.473 | +[3242mfunctions-common:time_stop:2264          (B[m elapsed_time=7509
2018-08-30 07:34:16.475 | +[3242mfunctions-common:time_stop:2265          (B[m total=83594
2018-08-30 07:34:16.478 | +[3242mfunctions-common:time_stop:2267          (B[m _TIME_START[$name]=
2018-08-30 07:34:16.481 | +[3242mfunctions-common:time_stop:2268          (B[m _TIME_TOTAL[$name]=91103
2018-08-30 07:34:16.484 | +[3242minc/python:pip_install:369               (B[m return 0
2018-08-30 07:34:16.487 | +[3242minc/python:setup_package:595             (B[m [[ -e == \-\e ]]
2018-08-30 07:34:16.490 | +[3242minc/python:setup_package:596             (B[m safe_chown -R stack /opt/stack/horizon/horizon.egg-info
2018-08-30 07:34:16.493 | +[3242mfunctions-common:safe_chown:2152         (B[m _safe_permission_operation chown -R stack /opt/stack/horizon/horizon.egg-info
2018-08-30 07:34:16.510 | +[3242mfunctions-common:_safe_permission_operation:2005 (B[m sudo chown -R stack /opt/stack/horizon/horizon.egg-info
2018-08-30 07:34:16.520 | +[3242mlib/horizon:configure_horizon:81         (B[m cd /opt/stack/horizon
2018-08-30 07:34:16.524 | +[3242mlib/horizon:configure_horizon:81         (B[m /usr/bin/python manage.py compilemessages

這裏運行命令編譯Django的國際化配置文件

2018-08-30 07:34:16.955 | No handlers could be found for logger "openstack_dashboard.settings"
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/eo/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/id/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/es/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/ru/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/fr/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/de/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/pt_BR/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/ko_KR/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/ja/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/zh_CN/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/openstack_auth/locale/en_GB/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file releasenotes.po in /opt/stack/horizon/releasenotes/source/locale/id/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file releasenotes.po in /opt/stack/horizon/releasenotes/source/locale/de/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file releasenotes.po in /opt/stack/horizon/releasenotes/source/locale/pt_BR/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file releasenotes.po in /opt/stack/horizon/releasenotes/source/locale/ko_KR/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file releasenotes.po in /opt/stack/horizon/releasenotes/source/locale/ja/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file releasenotes.po in /opt/stack/horizon/releasenotes/source/locale/zh_CN/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file releasenotes.po in /opt/stack/horizon/releasenotes/source/locale/en_GB/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/eo/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/eo/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/fi_FI/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/ca/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/it/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/it/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/nl_NL/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/nl_NL/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/cs/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/cs/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/id/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/id/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/es/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/es/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/ru/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/ru/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/pt/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/en_AU/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/en_AU/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/sl_SI/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/fil/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/fr/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/fr/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/de/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/de/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/pt_BR/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/pt_BR/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/zh_TW/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/zh_TW/LC_MESSAGES
2018-08-30 07:34:17.765 | processing file django.po in /opt/stack/horizon/horizon/locale/pa_IN/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/pa_IN/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/horizon/locale/hu/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/horizon/locale/ko_KR/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/ko_KR/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/horizon/locale/hi/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/horizon/locale/tr_TR/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/tr_TR/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/horizon/locale/es_MX/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/horizon/locale/ja/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/ja/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/horizon/locale/zh_CN/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/zh_CN/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/horizon/locale/sr/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/horizon/locale/en_GB/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/en_GB/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/horizon/locale/pl_PL/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/horizon/locale/pl_PL/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/eo/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/eo/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/brx/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/it/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/it/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/mni/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/nl_NL/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/cs/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/cs/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/id/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/id/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/es/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/es/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/bn_IN/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ru/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/ru/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/kok/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ne/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/en_AU/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/en_AU/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/gu/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/as/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ta/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/fr/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/fr/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/de/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/de/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/pt_BR/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/pt_BR/LC_MESSAGES
2018-08-30 07:34:18.287 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/zh_TW/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/zh_TW/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/pa_IN/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ko_KR/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/ko_KR/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/hi/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/tr_TR/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/tr_TR/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/mai/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ja/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/ja/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/zh_CN/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/zh_CN/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/sr/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/kn/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ur/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ks/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/en_GB/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/en_GB/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/mr/LC_MESSAGES
2018-08-30 07:34:18.605 | processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/pl_PL/LC_MESSAGES
2018-08-30 07:34:18.615 | +[3242mlib/horizon:configure_horizon:84         (B[m local local_settings=/opt/stack/horizon/openstack_dashboard/local/local_settings.py

...

這裏會將local_settings.py文件內容配置好,作爲horizon的配置文件

...

2018-08-30 07:34:18.798 | +[3242mlib/horizon:configure_horizon:102        (B[m '[' -f /opt/stack/data/ca-bundle.pem ']'
2018-08-30 07:34:18.801 | +[3242mlib/horizon:configure_horizon:106        (B[m is_service_enabled ldap
2018-08-30 07:34:18.817 | +[3242mfunctions-common:is_service_enabled:1908 (B[m return 1
2018-08-30 07:34:18.820 | +[3242mlib/horizon:configure_horizon:111        (B[m sudo mkdir -p /opt/stack/horizon/.blackhole
2018-08-30 07:34:18.829 | +[3242mlib/horizon:configure_horizon:113        (B[m local horizon_conf
2018-08-30 07:34:18.833 | ++[3242mlib/horizon:configure_horizon:114        (B[m apache_site_config_for horizon
2018-08-30 07:34:18.836 | ++[3242mlib/apache:apache_site_config_for:168    (B[m local site=horizon
2018-08-30 07:34:18.840 | ++[3242mlib/apache:apache_site_config_for:169    (B[m is_ubuntu
2018-08-30 07:34:18.843 | ++[3242mfunctions-common:is_ubuntu:462           (B[m [[ -z rpm ]]
2018-08-30 07:34:18.846 | ++[3242mfunctions-common:is_ubuntu:465           (B[m '[' rpm = deb ']'
2018-08-30 07:34:18.850 | ++[3242mlib/apache:apache_site_config_for:172    (B[m is_fedora
2018-08-30 07:34:18.853 | ++[3242mfunctions-common:is_fedora:435           (B[m [[ -z CentOS ]]
2018-08-30 07:34:18.856 | ++[3242mfunctions-common:is_fedora:439           (B[m '[' CentOS = Fedora ']'
2018-08-30 07:34:18.860 | ++[3242mfunctions-common:is_fedora:439           (B[m '[' CentOS = 'Red Hat' ']'
2018-08-30 07:34:18.863 | ++[3242mfunctions-common:is_fedora:440           (B[m '[' CentOS = RedHatEnterpriseServer ']'
2018-08-30 07:34:18.866 | ++[3242mfunctions-common:is_fedora:441           (B[m '[' CentOS = CentOS ']'
2018-08-30 07:34:18.870 | ++[3242mlib/apache:apache_site_config_for:174    (B[m local enabled_site_file=/etc/httpd/conf.d/horizon.conf
2018-08-30 07:34:18.873 | ++[3242mlib/apache:apache_site_config_for:175    (B[m '[' -f /etc/httpd/conf.d/horizon.conf ']'
2018-08-30 07:34:18.877 | ++[3242mlib/apache:apache_site_config_for:176    (B[m echo /etc/httpd/conf.d/horizon.conf
2018-08-30 07:34:18.880 | +[3242mlib/horizon:configure_horizon:114        (B[m horizon_conf=/etc/httpd/conf.d/horizon.conf
2018-08-30 07:34:18.883 | +[3242mlib/horizon:configure_horizon:118        (B[m sudo sh -c 'sed -e "
2018-08-30 07:34:18.883 |         s,%USER%,stack,g;
2018-08-30 07:34:18.883 |         s,%GROUP%,stack,g;
2018-08-30 07:34:18.883 |         s,%HORIZON_DIR%,/opt/stack/horizon,g;
2018-08-30 07:34:18.883 |         s,%APACHE_NAME%,httpd,g;
2018-08-30 07:34:18.883 |         s,%DEST%,/opt/stack,g;
2018-08-30 07:34:18.883 |         s,%WEBROOT%,/dashboard,g;
2018-08-30 07:34:18.883 |     " /opt/stack/devstack/files/apache-horizon.template >/etc/httpd/conf.d/horizon.conf'

從上邊的stack.sh的日誌中看到的主要是安裝horizon的依賴,編譯Django國際化的文件和生成了Django需要用到的local_settings.py這個配置文件。於是,將stack.sh生成的local_settings.py備份出來,刪除了stack.sh生成的horizon目錄,重新上傳源碼horizon,運行stack.sh中的三個關鍵步驟,將需要的東西都安裝好。
其中運行如下命令時報錯:

python manage.py compilemessages
Traceback (most recent call last):
  File "manage.py", line 23, 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 308, in execute
    settings.INSTALLED_APPS
  File "/usr/lib/python2.7/site-packages/django/conf/__init__.py", line 56, in __getattr__
    self._setup(name)
  File "/usr/lib/python2.7/site-packages/django/conf/__init__.py", line 41, in _setup
    self._wrapped = Settings(settings_module)
  File "/usr/lib/python2.7/site-packages/django/conf/__init__.py", line 110, in __init__
    mod = importlib.import_module(self.SETTINGS_MODULE)
  File "/usr/lib64/python2.7/importlib/__init__.py", line 37, in import_module
    __import__(name)
  File "/opt/stack/horizon/openstack_dashboard/settings.py", line 377, in <module>
    from local.local_settings import *  # noqa: F403,H303
  File "/opt/stack/horizon/openstack_dashboard/local/local_settings.py", line 151, in <module>
    os.path.join(LOCAL_PATH, '.secret_key_store'))
  File "/opt/stack/horizon/horizon/utils/secret_key.py", line 70, in generate_or_read_from_file
    key = read_from_file(key_file)
  File "/opt/stack/horizon/horizon/utils/secret_key.py", line 51, in read_from_file
    os.path.abspath(key_file))
horizon.utils.secret_key.FilePermissionError: Insecure permissions on key file /opt/stack/horizon/openstack_dashboard/local/.secret_key_store, should be 0600.

可以看到是密鑰權限不對,所以運行:

chmod 600 /opt/stack/horizon/openstack_dashboard/local/.secret_key_store

然後再次運行:

python manage.py compilemessages

打印如下日誌:

processing file django.po in /opt/stack/horizon/openstack_auth/locale/eo/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_auth/locale/id/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_auth/locale/es/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_auth/locale/fr/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_auth/locale/de/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_auth/locale/pt_BR/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_auth/locale/ko_KR/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_auth/locale/es_MX/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_auth/locale/ja/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_auth/locale/zh_CN/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_auth/locale/en_GB/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/eo/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/eo/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/fi_FI/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/ca/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/it/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/it/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/nl_NL/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/nl_NL/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/cs/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/cs/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/id/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/id/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/es/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/es/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/ru/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/ru/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/pt/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/en_AU/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/en_AU/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/sl_SI/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/fil/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/fr/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/fr/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/de/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/de/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/pt_BR/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/pt_BR/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/zh_TW/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/zh_TW/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/pa_IN/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/pa_IN/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/hu/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/ko_KR/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/ko_KR/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/hi/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/tr_TR/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/tr_TR/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/es_MX/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/ja/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/ja/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/zh_CN/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/zh_CN/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/sr/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/en_GB/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/en_GB/LC_MESSAGES
processing file django.po in /opt/stack/horizon/horizon/locale/pl_PL/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/horizon/locale/pl_PL/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/eo/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/eo/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/brx/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/it/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/it/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/mni/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/nl_NL/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/cs/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/cs/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/id/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/id/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/es/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/es/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/bn_IN/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ru/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/ru/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/kok/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ne/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/en_AU/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/en_AU/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/gu/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/as/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ta/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/fr/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/fr/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/de/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/de/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/pt_BR/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/pt_BR/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/zh_TW/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/zh_TW/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/pa_IN/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ko_KR/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/ko_KR/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/hi/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/tr_TR/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/tr_TR/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/mai/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ja/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/ja/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/zh_CN/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/zh_CN/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/sr/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/kn/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ur/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/ks/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/en_GB/LC_MESSAGES
processing file djangojs.po in /opt/stack/horizon/openstack_dashboard/locale/en_GB/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/mr/LC_MESSAGES
processing file django.po in /opt/stack/horizon/openstack_dashboard/locale/pl_PL/LC_MESSAGES

可見編譯成功了。

但是重啓apache仍然無法訪問。報錯頁面如下:
horizon登錄錯誤

看頁面可見是沒有靜態資源導致,查找網上說明,執行了如下命令:

python manage.py collectstatic --noinput
python manage.py compress --force

可見到一堆拷貝靜態文件的日誌,然後壓縮輸出的信息如下:

Found 'compress' tags in:
        /opt/stack/horizon/openstack_dashboard/templates/horizon/_scripts.html
        /opt/stack/horizon/openstack_dashboard/templates/horizon/_conf.html
        /opt/stack/horizon/openstack_dashboard/templates/_stylesheets.html
        /opt/stack/horizon/openstack_dashboard/templates/serial_console.html
Compressing... done
Compressed 7 block(s) from 4 template(s) for 2 context(s).

命令執行成功後,重啓apache:

sudo systemctl restart httpd

然後就可以進入登錄頁面了!!
horizon登錄

如此一來,解決了從本地pycharm編輯文件後,上傳到devstack服務端無法運行horizon,甚至是運行後無法訪問服務的各種奇怪問題。經過上邊的步驟,可以自己隨時將本地編輯好的最新代碼同步到服務器上進行調試。

注意:關鍵是需要注意備份local_settings.py文件,裏面配置了horizon訪問各個服務需要的配置。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章