From 39805ad90ed170454c993c4b722ccb1160b10dfe Mon Sep 17 00:00:00 2001 From: Mrt134 Date: Mon, 16 Jan 2017 15:22:19 -0500 Subject: [PATCH] Remove redundant "docs" directory: - All SysAdm docs now live in the sysadm-docs repo (https://github.com/trueos/sysadm-docs). - This new repo has its own issue tracker; any docs issues are to be reported there. --- docs/api_reference/Makefile | 216 - docs/api_reference/classes/beadm.rst | 397 -- docs/api_reference/classes/dispatcher.rst | 181 - docs/api_reference/classes/firewall.rst | 558 --- docs/api_reference/classes/fs.rst | 96 - docs/api_reference/classes/index.rst | 9 - docs/api_reference/classes/iocage.rst | 1612 ------- docs/api_reference/classes/iohyve.rst | 1049 ----- docs/api_reference/classes/lifepreserver.rst | 1123 ----- docs/api_reference/classes/logs.rst | 84 - docs/api_reference/classes/network.rst | 99 - docs/api_reference/classes/pkg.rst | 1185 ----- docs/api_reference/classes/services.rst | 352 -- docs/api_reference/classes/systemmanager.rst | 839 ---- docs/api_reference/classes/updates.rst | 390 -- docs/api_reference/classes/users.rst | 556 --- docs/api_reference/classes/zfs.rst | 360 -- docs/api_reference/conf.py | 257 -- docs/api_reference/events.rst | 293 -- docs/api_reference/getstarted.rst | 795 ---- docs/api_reference/index.rst | 17 - docs/api_reference/sysadm_circle_red.png | Bin 5011 -> 0 bytes .../themes/trueos_style/README.md | 19 - .../themes/trueos_style/breadcrumbs.html | 20 - .../themes/trueos_style/footer.html | 36 - .../themes/trueos_style/layout.html | 172 - .../themes/trueos_style/search.html | 49 - .../themes/trueos_style/searchbox.html | 9 - .../trueos_style/static/css/badge_only.css | 2 - .../trueos_style/static/css/font_awesome.css | 1734 ------- .../trueos_style/static/css/trueos_style.css | 4107 ----------------- .../trueos_style/static/fonts/FontAwesome.otf | Bin 62856 -> 0 bytes .../static/fonts/Inconsolata-Bold.ttf | Bin 47064 -> 0 bytes .../trueos_style/static/fonts/Inconsolata.ttf | Bin 63184 -> 0 bytes .../trueos_style/static/fonts/Lato-Bold.ttf | Bin 82368 -> 0 bytes .../static/fonts/Lato-Regular.ttf | Bin 81980 -> 0 bytes .../static/fonts/RobotoSlab-Bold.ttf | Bin 36596 -> 0 bytes .../static/fonts/RobotoSlab-Regular.ttf | Bin 36276 -> 0 bytes .../static/fonts/fontawesome-webfont.eot | Bin 38205 -> 0 bytes .../static/fonts/fontawesome-webfont.svg | 414 -- .../static/fonts/fontawesome-webfont.ttf | Bin 80652 -> 0 bytes .../static/fonts/fontawesome-webfont.woff | Bin 44432 -> 0 bytes .../trueos_style/static/js/modernizr.min.js | 4 - .../themes/trueos_style/static/js/theme.js | 131 - .../themes/trueos_style/theme.conf | 13 - .../themes/trueos_style/versions.html | 37 - docs/client_handbook/Makefile | 216 - .../_static/trueos_style/README.md | 19 - .../_static/trueos_style/breadcrumbs.html | 20 - .../_static/trueos_style/footer.html | 36 - .../_static/trueos_style/layout.html | 172 - .../_static/trueos_style/search.html | 49 - .../_static/trueos_style/searchbox.html | 9 - .../trueos_style/static/css/badge_only.css | 2 - .../trueos_style/static/css/font_awesome.css | 1734 ------- .../trueos_style/static/css/trueos_style.css | 4107 ----------------- .../trueos_style/static/fonts/FontAwesome.otf | Bin 62856 -> 0 bytes .../static/fonts/Inconsolata-Bold.ttf | Bin 47064 -> 0 bytes .../trueos_style/static/fonts/Inconsolata.ttf | Bin 63184 -> 0 bytes .../trueos_style/static/fonts/Lato-Bold.ttf | Bin 82368 -> 0 bytes .../static/fonts/Lato-Regular.ttf | Bin 81980 -> 0 bytes .../static/fonts/RobotoSlab-Bold.ttf | Bin 36596 -> 0 bytes .../static/fonts/RobotoSlab-Regular.ttf | Bin 36276 -> 0 bytes .../static/fonts/fontawesome-webfont.eot | Bin 38205 -> 0 bytes .../static/fonts/fontawesome-webfont.svg | 414 -- .../static/fonts/fontawesome-webfont.ttf | Bin 80652 -> 0 bytes .../static/fonts/fontawesome-webfont.woff | Bin 44432 -> 0 bytes .../trueos_style/static/js/modernizr.min.js | 4 - .../_static/trueos_style/static/js/theme.js | 131 - .../_static/trueos_style/theme.conf | 13 - .../_static/trueos_style/versions.html | 37 - docs/client_handbook/conf.py | 472 -- docs/client_handbook/images/appcafe1.png | Bin 117229 -> 0 bytes docs/client_handbook/images/appcafe2.png | Bin 148011 -> 0 bytes docs/client_handbook/images/appcafe3.png | Bin 84036 -> 0 bytes docs/client_handbook/images/appcafe4.png | Bin 140053 -> 0 bytes docs/client_handbook/images/appcafe5.png | Bin 77574 -> 0 bytes docs/client_handbook/images/appcafe6.png | Bin 152317 -> 0 bytes docs/client_handbook/images/appcafe7.png | Bin 295586 -> 0 bytes docs/client_handbook/images/appcafe8.png | Bin 90552 -> 0 bytes docs/client_handbook/images/be1.png | Bin 14446 -> 0 bytes docs/client_handbook/images/be1a.png | Bin 24570 -> 0 bytes docs/client_handbook/images/be2.png | Bin 4045 -> 0 bytes docs/client_handbook/images/firewall1.png | Bin 26635 -> 0 bytes docs/client_handbook/images/install1b.png | Bin 2627 -> 0 bytes docs/client_handbook/images/login5.png | Bin 447972 -> 0 bytes docs/client_handbook/images/lpreserver1.png | Bin 36594 -> 0 bytes docs/client_handbook/images/lpreserver2.png | Bin 32436 -> 0 bytes docs/client_handbook/images/lpreserver3.png | Bin 56344 -> 0 bytes docs/client_handbook/images/lpreserver4.png | Bin 49487 -> 0 bytes docs/client_handbook/images/lpreserver5.png | Bin 49965 -> 0 bytes docs/client_handbook/images/lpreserver6.png | Bin 38930 -> 0 bytes docs/client_handbook/images/restore1.png | Bin 101701 -> 0 bytes docs/client_handbook/images/restore2.png | Bin 24254 -> 0 bytes docs/client_handbook/images/service1.png | Bin 29188 -> 0 bytes docs/client_handbook/images/ssl1.png | Bin 161048 -> 0 bytes docs/client_handbook/images/ssl2.png | Bin 19719 -> 0 bytes docs/client_handbook/images/ssl3.png | Bin 20242 -> 0 bytes docs/client_handbook/images/ssl4.png | Bin 14885 -> 0 bytes docs/client_handbook/images/task1.png | Bin 146807 -> 0 bytes docs/client_handbook/images/update1.png | Bin 45974 -> 0 bytes docs/client_handbook/images/update4.png | Bin 52538 -> 0 bytes docs/client_handbook/images/update4a.png | Bin 29253 -> 0 bytes docs/client_handbook/images/upgrade1.png | Bin 74005 -> 0 bytes docs/client_handbook/images/upgrade1a.png | Bin 28648 -> 0 bytes docs/client_handbook/images/upgrade1b.png | Bin 86320 -> 0 bytes docs/client_handbook/images/upgrade2.png | Bin 43993 -> 0 bytes docs/client_handbook/images/user1.png | Bin 21621 -> 0 bytes docs/client_handbook/images/user2.png | Bin 26049 -> 0 bytes docs/client_handbook/images/user3.png | Bin 34826 -> 0 bytes docs/client_handbook/images/user4.png | Bin 20875 -> 0 bytes docs/client_handbook/images/user5.png | Bin 28266 -> 0 bytes docs/client_handbook/index.rst | 23 - docs/client_handbook/make.bat | 281 -- .../po/ar/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/ar/LC_MESSAGES/index.po | 45 - .../po/ar/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/ar/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/bg/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/bg/LC_MESSAGES/index.po | 45 - .../po/bg/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/bg/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/da/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/da/LC_MESSAGES/index.po | 45 - .../po/da/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/da/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/de/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/de/LC_MESSAGES/index.po | 45 - .../po/de/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/de/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/es/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/es/LC_MESSAGES/index.po | 45 - .../po/es/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/es/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/fr/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/fr/LC_MESSAGES/index.po | 45 - .../po/fr/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/fr/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/id/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/id/LC_MESSAGES/index.po | 45 - .../po/id/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/id/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/it/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/it/LC_MESSAGES/index.po | 45 - .../po/it/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/it/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/pt_BR/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/pt_BR/LC_MESSAGES/index.po | 45 - .../po/pt_BR/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/pt_BR/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/tr/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/tr/LC_MESSAGES/index.po | 45 - .../po/tr/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/tr/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/uk/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/uk/LC_MESSAGES/index.po | 45 - .../po/uk/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/uk/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/zh_CN/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/zh_CN/LC_MESSAGES/index.po | 45 - .../po/zh_CN/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/zh_CN/LC_MESSAGES/sysadmclient.po | 3008 ------------ .../po/zh_HK/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/zh_HK/LC_MESSAGES/index.po | 45 - .../po/zh_HK/LC_MESSAGES/sysadmclient.mo | Bin 369 -> 0 bytes .../po/zh_HK/LC_MESSAGES/sysadmclient.po | 3008 ------------ docs/client_handbook/sysadm_circle_red.png | Bin 5011 -> 0 bytes docs/client_handbook/sysadmclient.rst | 1709 ------- docs/server_handbook/Makefile | 216 - docs/server_handbook/basics.rst | 157 - docs/server_handbook/conf.py | 288 -- docs/server_handbook/index.rst | 23 - docs/server_handbook/introduction.rst | 67 - docs/server_handbook/make.bat | 263 -- docs/server_handbook/manage.rst | 40 - .../po/ar/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/ar/LC_MESSAGES/basics.po | 237 - .../po/ar/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/ar/LC_MESSAGES/index.po | 36 - .../po/ar/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/ar/LC_MESSAGES/introduction.po | 186 - .../po/ar/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/ar/LC_MESSAGES/manage.po | 58 - .../po/bg/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/bg/LC_MESSAGES/basics.po | 237 - .../po/bg/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/bg/LC_MESSAGES/index.po | 36 - .../po/bg/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/bg/LC_MESSAGES/introduction.po | 186 - .../po/bg/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/bg/LC_MESSAGES/manage.po | 58 - .../po/da/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/da/LC_MESSAGES/basics.po | 237 - .../po/da/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/da/LC_MESSAGES/index.po | 36 - .../po/da/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/da/LC_MESSAGES/introduction.po | 186 - .../po/da/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/da/LC_MESSAGES/manage.po | 58 - .../po/de/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/de/LC_MESSAGES/basics.po | 237 - .../po/de/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/de/LC_MESSAGES/index.po | 36 - .../po/de/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/de/LC_MESSAGES/introduction.po | 186 - .../po/de/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/de/LC_MESSAGES/manage.po | 58 - .../po/es/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/es/LC_MESSAGES/basics.po | 237 - .../po/es/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/es/LC_MESSAGES/index.po | 36 - .../po/es/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/es/LC_MESSAGES/introduction.po | 186 - .../po/es/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/es/LC_MESSAGES/manage.po | 58 - .../po/fr/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/fr/LC_MESSAGES/basics.po | 237 - .../po/fr/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/fr/LC_MESSAGES/index.po | 36 - .../po/fr/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/fr/LC_MESSAGES/introduction.po | 186 - .../po/fr/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/fr/LC_MESSAGES/manage.po | 58 - .../po/id/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/id/LC_MESSAGES/basics.po | 237 - .../po/id/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/id/LC_MESSAGES/index.po | 36 - .../po/id/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/id/LC_MESSAGES/introduction.po | 186 - .../po/id/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/id/LC_MESSAGES/manage.po | 58 - .../po/it/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/it/LC_MESSAGES/basics.po | 237 - .../po/it/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/it/LC_MESSAGES/index.po | 36 - .../po/it/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/it/LC_MESSAGES/introduction.po | 186 - .../po/it/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/it/LC_MESSAGES/manage.po | 58 - .../po/pt_BR/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/pt_BR/LC_MESSAGES/basics.po | 237 - .../po/pt_BR/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/pt_BR/LC_MESSAGES/index.po | 36 - .../po/pt_BR/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/pt_BR/LC_MESSAGES/introduction.po | 186 - .../po/pt_BR/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/pt_BR/LC_MESSAGES/manage.po | 58 - .../po/tr/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/tr/LC_MESSAGES/basics.po | 237 - .../po/tr/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/tr/LC_MESSAGES/index.po | 36 - .../po/tr/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/tr/LC_MESSAGES/introduction.po | 186 - .../po/tr/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/tr/LC_MESSAGES/manage.po | 58 - .../po/uk/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/uk/LC_MESSAGES/basics.po | 237 - .../po/uk/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/uk/LC_MESSAGES/index.po | 36 - .../po/uk/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/uk/LC_MESSAGES/introduction.po | 186 - .../po/uk/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/uk/LC_MESSAGES/manage.po | 58 - .../po/zh_CN/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/zh_CN/LC_MESSAGES/basics.po | 237 - .../po/zh_CN/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/zh_CN/LC_MESSAGES/index.po | 36 - .../po/zh_CN/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/zh_CN/LC_MESSAGES/introduction.po | 186 - .../po/zh_CN/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/zh_CN/LC_MESSAGES/manage.po | 58 - .../po/zh_HK/LC_MESSAGES/basics.mo | Bin 369 -> 0 bytes .../po/zh_HK/LC_MESSAGES/basics.po | 237 - .../po/zh_HK/LC_MESSAGES/index.mo | Bin 369 -> 0 bytes .../po/zh_HK/LC_MESSAGES/index.po | 36 - .../po/zh_HK/LC_MESSAGES/introduction.mo | Bin 369 -> 0 bytes .../po/zh_HK/LC_MESSAGES/introduction.po | 186 - .../po/zh_HK/LC_MESSAGES/manage.mo | Bin 369 -> 0 bytes .../po/zh_HK/LC_MESSAGES/manage.po | 58 - docs/server_handbook/sysadm_circle_red.png | Bin 5011 -> 0 bytes .../themes/trueos_style/README.md | 19 - .../themes/trueos_style/breadcrumbs.html | 20 - .../themes/trueos_style/footer.html | 36 - .../themes/trueos_style/layout.html | 172 - .../themes/trueos_style/search.html | 49 - .../themes/trueos_style/searchbox.html | 9 - .../trueos_style/static/css/badge_only.css | 2 - .../trueos_style/static/css/font_awesome.css | 1734 ------- .../trueos_style/static/css/trueos_style.css | 4107 ----------------- .../trueos_style/static/fonts/FontAwesome.otf | Bin 62856 -> 0 bytes .../static/fonts/Inconsolata-Bold.ttf | Bin 47064 -> 0 bytes .../trueos_style/static/fonts/Inconsolata.ttf | Bin 63184 -> 0 bytes .../trueos_style/static/fonts/Lato-Bold.ttf | Bin 82368 -> 0 bytes .../static/fonts/Lato-Regular.ttf | Bin 81980 -> 0 bytes .../static/fonts/RobotoSlab-Bold.ttf | Bin 36596 -> 0 bytes .../static/fonts/RobotoSlab-Regular.ttf | Bin 36276 -> 0 bytes .../static/fonts/fontawesome-webfont.eot | Bin 38205 -> 0 bytes .../static/fonts/fontawesome-webfont.svg | 414 -- .../static/fonts/fontawesome-webfont.ttf | Bin 80652 -> 0 bytes .../static/fonts/fontawesome-webfont.woff | Bin 44432 -> 0 bytes .../trueos_style/static/js/modernizr.min.js | 4 - .../themes/trueos_style/static/js/theme.js | 131 - .../themes/trueos_style/theme.conf | 13 - .../themes/trueos_style/versions.html | 37 - 304 files changed, 80874 deletions(-) delete mode 100644 docs/api_reference/Makefile delete mode 100644 docs/api_reference/classes/beadm.rst delete mode 100644 docs/api_reference/classes/dispatcher.rst delete mode 100644 docs/api_reference/classes/firewall.rst delete mode 100644 docs/api_reference/classes/fs.rst delete mode 100644 docs/api_reference/classes/index.rst delete mode 100644 docs/api_reference/classes/iocage.rst delete mode 100644 docs/api_reference/classes/iohyve.rst delete mode 100644 docs/api_reference/classes/lifepreserver.rst delete mode 100644 docs/api_reference/classes/logs.rst delete mode 100644 docs/api_reference/classes/network.rst delete mode 100644 docs/api_reference/classes/pkg.rst delete mode 100644 docs/api_reference/classes/services.rst delete mode 100644 docs/api_reference/classes/systemmanager.rst delete mode 100644 docs/api_reference/classes/updates.rst delete mode 100644 docs/api_reference/classes/users.rst delete mode 100644 docs/api_reference/classes/zfs.rst delete mode 100644 docs/api_reference/conf.py delete mode 100644 docs/api_reference/events.rst delete mode 100644 docs/api_reference/getstarted.rst delete mode 100644 docs/api_reference/index.rst delete mode 100644 docs/api_reference/sysadm_circle_red.png delete mode 100644 docs/api_reference/themes/trueos_style/README.md delete mode 100644 docs/api_reference/themes/trueos_style/breadcrumbs.html delete mode 100644 docs/api_reference/themes/trueos_style/footer.html delete mode 100644 docs/api_reference/themes/trueos_style/layout.html delete mode 100644 docs/api_reference/themes/trueos_style/search.html delete mode 100644 docs/api_reference/themes/trueos_style/searchbox.html delete mode 100644 docs/api_reference/themes/trueos_style/static/css/badge_only.css delete mode 100644 docs/api_reference/themes/trueos_style/static/css/font_awesome.css delete mode 100644 docs/api_reference/themes/trueos_style/static/css/trueos_style.css delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/FontAwesome.otf delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/Inconsolata-Bold.ttf delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/Inconsolata.ttf delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/Lato-Bold.ttf delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/Lato-Regular.ttf delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/RobotoSlab-Bold.ttf delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/RobotoSlab-Regular.ttf delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/fontawesome-webfont.eot delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/fontawesome-webfont.svg delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/fontawesome-webfont.ttf delete mode 100644 docs/api_reference/themes/trueos_style/static/fonts/fontawesome-webfont.woff delete mode 100644 docs/api_reference/themes/trueos_style/static/js/modernizr.min.js delete mode 100644 docs/api_reference/themes/trueos_style/static/js/theme.js delete mode 100644 docs/api_reference/themes/trueos_style/theme.conf delete mode 100644 docs/api_reference/themes/trueos_style/versions.html delete mode 100644 docs/client_handbook/Makefile delete mode 100644 docs/client_handbook/_static/trueos_style/README.md delete mode 100644 docs/client_handbook/_static/trueos_style/breadcrumbs.html delete mode 100644 docs/client_handbook/_static/trueos_style/footer.html delete mode 100644 docs/client_handbook/_static/trueos_style/layout.html delete mode 100644 docs/client_handbook/_static/trueos_style/search.html delete mode 100644 docs/client_handbook/_static/trueos_style/searchbox.html delete mode 100644 docs/client_handbook/_static/trueos_style/static/css/badge_only.css delete mode 100644 docs/client_handbook/_static/trueos_style/static/css/font_awesome.css delete mode 100644 docs/client_handbook/_static/trueos_style/static/css/trueos_style.css delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/FontAwesome.otf delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/Inconsolata-Bold.ttf delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/Inconsolata.ttf delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/Lato-Bold.ttf delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/Lato-Regular.ttf delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/RobotoSlab-Bold.ttf delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/RobotoSlab-Regular.ttf delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/fontawesome-webfont.eot delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/fontawesome-webfont.svg delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/fontawesome-webfont.ttf delete mode 100644 docs/client_handbook/_static/trueos_style/static/fonts/fontawesome-webfont.woff delete mode 100644 docs/client_handbook/_static/trueos_style/static/js/modernizr.min.js delete mode 100644 docs/client_handbook/_static/trueos_style/static/js/theme.js delete mode 100644 docs/client_handbook/_static/trueos_style/theme.conf delete mode 100644 docs/client_handbook/_static/trueos_style/versions.html delete mode 100644 docs/client_handbook/conf.py delete mode 100644 docs/client_handbook/images/appcafe1.png delete mode 100644 docs/client_handbook/images/appcafe2.png delete mode 100644 docs/client_handbook/images/appcafe3.png delete mode 100644 docs/client_handbook/images/appcafe4.png delete mode 100644 docs/client_handbook/images/appcafe5.png delete mode 100644 docs/client_handbook/images/appcafe6.png delete mode 100644 docs/client_handbook/images/appcafe7.png delete mode 100644 docs/client_handbook/images/appcafe8.png delete mode 100644 docs/client_handbook/images/be1.png delete mode 100644 docs/client_handbook/images/be1a.png delete mode 100644 docs/client_handbook/images/be2.png delete mode 100644 docs/client_handbook/images/firewall1.png delete mode 100644 docs/client_handbook/images/install1b.png delete mode 100644 docs/client_handbook/images/login5.png delete mode 100644 docs/client_handbook/images/lpreserver1.png delete mode 100644 docs/client_handbook/images/lpreserver2.png delete mode 100644 docs/client_handbook/images/lpreserver3.png delete mode 100644 docs/client_handbook/images/lpreserver4.png delete mode 100644 docs/client_handbook/images/lpreserver5.png delete mode 100644 docs/client_handbook/images/lpreserver6.png delete mode 100644 docs/client_handbook/images/restore1.png delete mode 100644 docs/client_handbook/images/restore2.png delete mode 100644 docs/client_handbook/images/service1.png delete mode 100644 docs/client_handbook/images/ssl1.png delete mode 100644 docs/client_handbook/images/ssl2.png delete mode 100644 docs/client_handbook/images/ssl3.png delete mode 100644 docs/client_handbook/images/ssl4.png delete mode 100644 docs/client_handbook/images/task1.png delete mode 100644 docs/client_handbook/images/update1.png delete mode 100644 docs/client_handbook/images/update4.png delete mode 100644 docs/client_handbook/images/update4a.png delete mode 100644 docs/client_handbook/images/upgrade1.png delete mode 100644 docs/client_handbook/images/upgrade1a.png delete mode 100644 docs/client_handbook/images/upgrade1b.png delete mode 100644 docs/client_handbook/images/upgrade2.png delete mode 100644 docs/client_handbook/images/user1.png delete mode 100644 docs/client_handbook/images/user2.png delete mode 100644 docs/client_handbook/images/user3.png delete mode 100644 docs/client_handbook/images/user4.png delete mode 100644 docs/client_handbook/images/user5.png delete mode 100644 docs/client_handbook/index.rst delete mode 100644 docs/client_handbook/make.bat delete mode 100644 docs/client_handbook/po/ar/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/ar/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/ar/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/ar/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/bg/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/bg/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/bg/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/bg/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/da/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/da/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/da/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/da/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/de/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/de/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/de/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/de/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/es/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/es/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/es/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/es/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/fr/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/fr/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/fr/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/fr/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/id/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/id/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/id/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/id/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/it/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/it/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/it/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/it/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/pt_BR/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/pt_BR/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/pt_BR/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/pt_BR/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/tr/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/tr/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/tr/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/tr/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/uk/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/uk/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/uk/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/uk/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/zh_CN/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/zh_CN/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/zh_CN/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/zh_CN/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/po/zh_HK/LC_MESSAGES/index.mo delete mode 100644 docs/client_handbook/po/zh_HK/LC_MESSAGES/index.po delete mode 100644 docs/client_handbook/po/zh_HK/LC_MESSAGES/sysadmclient.mo delete mode 100644 docs/client_handbook/po/zh_HK/LC_MESSAGES/sysadmclient.po delete mode 100644 docs/client_handbook/sysadm_circle_red.png delete mode 100644 docs/client_handbook/sysadmclient.rst delete mode 100644 docs/server_handbook/Makefile delete mode 100644 docs/server_handbook/basics.rst delete mode 100644 docs/server_handbook/conf.py delete mode 100644 docs/server_handbook/index.rst delete mode 100644 docs/server_handbook/introduction.rst delete mode 100644 docs/server_handbook/make.bat delete mode 100644 docs/server_handbook/manage.rst delete mode 100644 docs/server_handbook/po/ar/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/ar/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/ar/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/ar/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/ar/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/ar/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/ar/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/ar/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/bg/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/bg/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/bg/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/bg/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/bg/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/bg/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/bg/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/bg/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/da/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/da/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/da/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/da/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/da/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/da/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/da/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/da/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/de/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/de/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/de/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/de/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/de/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/de/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/de/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/de/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/es/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/es/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/es/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/es/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/es/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/es/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/es/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/es/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/fr/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/fr/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/fr/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/fr/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/fr/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/fr/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/fr/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/fr/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/id/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/id/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/id/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/id/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/id/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/id/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/id/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/id/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/it/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/it/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/it/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/it/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/it/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/it/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/it/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/it/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/pt_BR/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/pt_BR/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/pt_BR/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/pt_BR/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/pt_BR/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/pt_BR/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/pt_BR/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/pt_BR/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/tr/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/tr/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/tr/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/tr/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/tr/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/tr/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/tr/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/tr/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/uk/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/uk/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/uk/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/uk/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/uk/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/uk/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/uk/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/uk/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/zh_CN/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/zh_CN/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/zh_CN/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/zh_CN/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/zh_CN/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/zh_CN/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/zh_CN/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/zh_CN/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/po/zh_HK/LC_MESSAGES/basics.mo delete mode 100644 docs/server_handbook/po/zh_HK/LC_MESSAGES/basics.po delete mode 100644 docs/server_handbook/po/zh_HK/LC_MESSAGES/index.mo delete mode 100644 docs/server_handbook/po/zh_HK/LC_MESSAGES/index.po delete mode 100644 docs/server_handbook/po/zh_HK/LC_MESSAGES/introduction.mo delete mode 100644 docs/server_handbook/po/zh_HK/LC_MESSAGES/introduction.po delete mode 100644 docs/server_handbook/po/zh_HK/LC_MESSAGES/manage.mo delete mode 100644 docs/server_handbook/po/zh_HK/LC_MESSAGES/manage.po delete mode 100644 docs/server_handbook/sysadm_circle_red.png delete mode 100644 docs/server_handbook/themes/trueos_style/README.md delete mode 100644 docs/server_handbook/themes/trueos_style/breadcrumbs.html delete mode 100644 docs/server_handbook/themes/trueos_style/footer.html delete mode 100644 docs/server_handbook/themes/trueos_style/layout.html delete mode 100644 docs/server_handbook/themes/trueos_style/search.html delete mode 100644 docs/server_handbook/themes/trueos_style/searchbox.html delete mode 100644 docs/server_handbook/themes/trueos_style/static/css/badge_only.css delete mode 100644 docs/server_handbook/themes/trueos_style/static/css/font_awesome.css delete mode 100644 docs/server_handbook/themes/trueos_style/static/css/trueos_style.css delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/FontAwesome.otf delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/Inconsolata-Bold.ttf delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/Inconsolata.ttf delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/Lato-Bold.ttf delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/Lato-Regular.ttf delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/RobotoSlab-Bold.ttf delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/RobotoSlab-Regular.ttf delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/fontawesome-webfont.eot delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/fontawesome-webfont.svg delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/fontawesome-webfont.ttf delete mode 100644 docs/server_handbook/themes/trueos_style/static/fonts/fontawesome-webfont.woff delete mode 100644 docs/server_handbook/themes/trueos_style/static/js/modernizr.min.js delete mode 100644 docs/server_handbook/themes/trueos_style/static/js/theme.js delete mode 100644 docs/server_handbook/themes/trueos_style/theme.conf delete mode 100644 docs/server_handbook/themes/trueos_style/versions.html diff --git a/docs/api_reference/Makefile b/docs/api_reference/Makefile deleted file mode 100644 index 69df769..0000000 --- a/docs/api_reference/Makefile +++ /dev/null @@ -1,216 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -SPHINXINTL = sphinx-intl -PAPER = -BUILDDIR = _build - -# User-friendly check for sphinx-build -SPHINXBUILDCHECK= := $(shell which $(SPHINXBUILD) 2>/dev/null) -.ifndef SPHINXBUILDCHECK -.error "The '$(SPHINXBUILD)' command was not found. Make sure you have Sphinx installed, then set the SPHINXBUILD environment variable to point to the full path of the '$(SPHINXBUILD)' executable. Alternatively you can add the directory with the executable to your PATH. If you don\'t have Sphinx installed, grab it from http://sphinx-doc.org/)" -.endif - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . -# the i18n builder cannot share the environment and doctrees with the others -I18NSPHINXOPTS = $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) . - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest gettext - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " latexpdfja to make LaTeX files and run them through platex/dvipdfmx" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " texinfo to make Texinfo files" - @echo " info to make Texinfo files and run them through makeinfo" - @echo " gettext to make PO message catalogs" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " xml to make Docutils-native XML files" - @echo " pseudoxml to make pseudoxml-XML files for display purposes" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - @echo " i18n to fetch and prep the i18n files" - -i18n: - $(MAKE) gettext - $(SPHINXINTL) -p $(BUILDDIR)/locale -d ./po update \ - -l ar \ - -l bg \ - -l da \ - -l de \ - -l es \ - -l fr \ - -l id \ - -l it \ - -l pt_BR \ - -l tr \ - -l uk \ - -l zh_CN \ - -l zh_HK - $(SPHINXINTL) -d ./po build - -clean: - rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html -.if exists(po) -.if exists($(BUILDDIR)/locale-po) - @rm -rf $(BUILDDIR)/locale-po -.endif - @cp -r ./po $(BUILDDIR)/locale-po - $(SPHINXBUILD) -D language='bg' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-bg - $(SPHINXBUILD) -D language='da' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-da - $(SPHINXBUILD) -D language='de' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-de - $(SPHINXBUILD) -D language='es' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-es - $(SPHINXBUILD) -D language='fr' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-fr - $(SPHINXBUILD) -D language='id' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-id - $(SPHINXBUILD) -D language='it' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-it - $(SPHINXBUILD) -D language='pt_BR' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-pt_BR - $(SPHINXBUILD) -D language='tr' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-tr - $(SPHINXBUILD) -D language='uk' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-uk - $(SPHINXBUILD) -D language='zh_CN' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-zh_CN - $(SPHINXBUILD) -D language='zh_HK' -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html-zh_HK -.endif - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/PC-BSDUserGuide.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/PC-BSDUserGuide.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/PC-BSDUserGuide" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/PC-BSDUserGuide" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -latexpdfja: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through platex and dvipdfmx..." - $(MAKE) -C $(BUILDDIR)/latex all-pdf-ja - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -texinfo: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo - @echo "Build finished. The Texinfo files are in $(BUILDDIR)/texinfo." - @echo "Run \`make' in that directory to run these through makeinfo" \ - "(use \`make info' here to do that automatically)." - -info: - $(SPHINXBUILD) -b texinfo $(ALLSPHINXOPTS) $(BUILDDIR)/texinfo - @echo "Running Texinfo files through makeinfo..." - make -C $(BUILDDIR)/texinfo info - @echo "makeinfo finished; the Info files are in $(BUILDDIR)/texinfo." - -gettext: - $(SPHINXBUILD) -b gettext $(I18NSPHINXOPTS) $(BUILDDIR)/locale - @echo - @echo "Build finished. The message catalogs are in $(BUILDDIR)/locale." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." - -xml: - $(SPHINXBUILD) -b xml $(ALLSPHINXOPTS) $(BUILDDIR)/xml - @echo - @echo "Build finished. The XML files are in $(BUILDDIR)/xml." - -pseudoxml: - $(SPHINXBUILD) -b pseudoxml $(ALLSPHINXOPTS) $(BUILDDIR)/pseudoxml - @echo - @echo "Build finished. The pseudo-XML files are in $(BUILDDIR)/pseudoxml." diff --git a/docs/api_reference/classes/beadm.rst b/docs/api_reference/classes/beadm.rst deleted file mode 100644 index 464a512..0000000 --- a/docs/api_reference/classes/beadm.rst +++ /dev/null @@ -1,397 +0,0 @@ -.. _beadm: - -beadm -***** - -The beadm class is used to manage boot environments. - -Every beadm class request contains several parameters: - -+---------------+-----------+----------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+========================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+-----------+----------------------------------------+ -| name | beadm | | -| | | | -+---------------+-----------+----------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+-----------+----------------------------------------+ -| action | | Supported actions include "listbes", | -| | | "renamebe", "activatebe", "createbe", | -| | | "destroybe", "mountbe", and "umountbe" | -+---------------+-----------+----------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: listbes, beadm - -.. _List Boot Environments: - -List Boot Environments -====================== - -The "listbes" action retrieves the list of boot environments. For each -boot environment, the response includes its name, its flags (where "R" -is active on reboot, "N" is active now and "-" is inactive), the date it -was created, its mount point, its nickname, and its size. - -**REST Request** - -:: - - PUT /sysadm/beadm - { - "action" : "listbes" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "beadm", - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "action" : "listbes" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "listbes": { - "11.0-CURRENTJAN2016-up-20160128_150853": { - "active": "NR", - "date": "2016-01-28", - "mount": "/", - "nick": "14:57", - "space": "10.2G" - }, - "initial": { - "active": "-", - "date": "2016-01-28", - "mount": "-", - "nick": "07:00", - "space": "1.2G" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: renamebe, beadm - -.. _Rename a Boot Environment: - -Rename a Boot Environment -========================= - -The "renamebe" action renames the specified boot environment. When using -this action, specify the new name as the "source" and the boot -environment as the "target". - -**REST Request** - -:: - - PUT /sysadm/beadm - { - "source" : "newname", - "action" : "renamebe", - "target" : "bootthingy" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "beadm", - "id" : "fooid", - "args" : { - "source" : "newname", - "target" : "bootthingy", - "action" : "renamebe" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "renamebe": { - "source": "newname", - "target": "bootthingy" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: activatebe, beadm - -.. _Activate Boot Environment: - -Activate Boot Environment -========================= - -The "activatebe" action activates the specified boot environment -(target) so that it will be the default at next boot. - -**REST Request** - -:: - - PUT /sysadm/beadm - { - "target" : "bootthingy", - "action" : "activatebe" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "beadm", - "args" : { - "action" : "activatebe", - "target" : "bootthingy" - }, - "namespace" : "sysadm", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "activatebe": { - "target": "bootthingy" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: createbe, beadm - -.. _Create Boot Environment: - -Create Boot Environment -======================= - -The "create" action creates a new boot environment. Specify the name of -the boot environment as the "newbe". By default, this action clones the -active boot environment. To specify another, inactive boot environment, -also include "clonefrom" to specify which boot environment to clone from. - -**REST Request** - -:: - - PUT /sysadm/beadm - { - "action" : "createbe", - "newbe" : "red", - "clonefrom" : "green" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "newbe" : "red", - "clonefrom" : "green", - "action" : "createbe" - }, - "namespace" : "sysadm", - "name" : "beadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "createbe": { - "clonefrom": "green", - "newbe": "red" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: destroybe, beadm - -.. _Destroy a Boot Environment: - -Destroy a Boot Environment -========================== - -The "destroybe" action destroys the specified "target" boot environment -and forcefully unmounts it. - -**REST Request** - -:: - - PUT /sysadm/beadm - { - "target" : "red", - "action" : "destroybe" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "destroybe", - "target" : "red" - }, - "name" : "beadm", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "destroybe": { - "target": "red" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: mountbe, beadm - -.. _Mount a Boot Environment: - -Mount a Boot Environment -======================== - -The "mountbe" action mounts the specified boot environment. Use the -optional "mountpoint" argument to specify the mount point. - -**REST Request** - -:: - - PUT /sysadm/beadm - { - "mountpoint" : "/tmp/mounteddir/", - "action" : "mountbe", - "be" : "green" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "name" : "beadm", - "args" : { - "mountpoint" : "/tmp/mounteddir/", - "be" : "green", - "action" : "mountbe" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "mountbe": { - "be": "green", - "mountpoint": "/tmp/mountdir" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: umountbe, beadm - -.. _Unmount a Boot Environment: - -Unmount a Boot Environment -========================== - -The "umountbe" action forcibly unmounts the specified boot environment, -even if it is in use. - -**REST Request** - -:: - - PUT /sysadm/beadm - { - "action" : "umountbe", - "be" : "green" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "beadm", - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "be" : "green", - "action" : "umountbe" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "umountbe": { - "be": "green" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/classes/dispatcher.rst b/docs/api_reference/classes/dispatcher.rst deleted file mode 100644 index 0a7027c..0000000 --- a/docs/api_reference/classes/dispatcher.rst +++ /dev/null @@ -1,181 +0,0 @@ -.. _dispatcher: - -dispatcher -********** - -The dispatcher class is used to spin up external processes on demand, -such as a user running a custom system setup script. - -Every dispatcher class request contains several parameters: - -+---------------+------------+--------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+============+======================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+------------+--------------------------------------+ -| name | dispatcher | | -| | | | -+---------------+------------+--------------------------------------+ -| namespace | rpc | | -| | | | -+---------------+------------+--------------------------------------+ -| action | | Actions include "list", "kill", and | -| | | "run". | -+---------------+------------+--------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: list, dispatcher -.. _List Processes: - -List Processes -============== - -The "list" action lists all the currently running or pending processes -within the dispatcher queues. Possible queues are "no_queue", -"pkg_queue", and "iocage_queue". - -**REST Request** - -:: - - PUT /rpc/dispatcher - { - "action" : "list" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "list" - }, - "namespace" : "rpc", - "name" : "dispatcher", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "jobs": { - "pkg_queue": { - "sysadm_pkg_install-{9c079421-ace9-4b6e-8870-d023b48f4c49}": { - "commands": [ - "pkg install -y --repository \"pcbsd-major\"misc/pcbsd-meta-mate" - ], - "queue_position": "0", - "state": "running" - } - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "rpc" - } - -.. index:: kill, dispatcher - -.. _Kill Processes: - -Kill Processes -============== - -The "kill" action allows a user with full access to cancel pending or -running jobs within the dispatcher system. - -**REST Request** - -:: - - PUT /rpc/dispatcher - { - "action" : "kill", - "job_id" : "sysadm_pkg_install-{9c079421-ace9-4b6e-8870-d023b48f4c49}" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "kill", - "job_id" : "sysadm_pkg_install-{9c079421-ace9-4b6e-8870-d023b48f4c49}" - }, - "namespace" : "rpc", - "name" : "dispatcher", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "killed": { - "jobs": ["sysadm_pkg_install-{9c079421-ace9-4b6e-8870-d023b48f4c49}"] - } - }, - "id": "fooid", - "name": "response", - "namespace": "rpc" - } - -.. index:: run, dispatcher -.. _Run Processes: - -Run Process(es) -=============== - -The "run" action allows a user with full access to create new jobs -within the dispatcher system. - -**REST Request** - -:: - - PUT /rpc/dispatcher - { - "action" : "run", - "job_id" : "", - "multi_job_id" : ["", "", ""] - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "run", - "job_id" : "", - "multi_job_id" : ["", "", ""] - }, - "namespace" : "rpc", - "name" : "dispatcher", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "started": ["job_id", "multi-job_id"] - }, - "id": "fooid", - "name": "response", - "namespace": "rpc" - } diff --git a/docs/api_reference/classes/firewall.rst b/docs/api_reference/classes/firewall.rst deleted file mode 100644 index bb8b432..0000000 --- a/docs/api_reference/classes/firewall.rst +++ /dev/null @@ -1,558 +0,0 @@ -.. _firewall: - -firewall -******** - -The firewall class is used for managing the "ipfw" firewall on the system. - -.. note:: This class does *not* manage a "pf" firewall. - -Every user request will have several parameters: - -+---------------+-----------+---------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+=======================================+ -| id | | any unique value for the request; | -| | | examples include a hash, checksum, | -| | | or uuid | -+---------------+-----------+---------------------------------------+ -| name | firewall | | -| | | | -+---------------+-----------+---------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+-----------+---------------------------------------+ -| action | | "known_ports", "list_open", "status", | -| | | "open", "close", "start", "stop", | -| | | "restart", "enable", "disable", and | -| | | "reset-defaults" | -+---------------+-----------+---------------------------------------+ - -.. index:: knownports, firewall - -.. _knownports: - -Known Ports -=========== - -:command:`known_ports` will return a list of all known ports and any -names or descriptions for them. This is a static list; it does not -reflect which ports are in use or opened on the system. It is meant to -help match a port to a name or description. - -**REST Request** - -:: - - PUT /sysadm/firewall - { - "action" : "known_ports" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "args" : { - "action" : "known_ports" - }, - "name" : "firewall" - } - -**Response** - -.. code-block:: json - - { - "args": { - "1/tcp": { - "description": "#TCP Port Service Multiplexer", - "name": "tcpmux", - "port": "1/tcp" - }, - "1/udp": { - "description": "#TCP Port Service Multiplexer", - "name": "tcpmux", - "port": "1/udp" - }, - "100/tcp": { - "description": "#[unauthorized use]", - "name": "newacct", - "port": "100/tcp" - } - } - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: listopen, firewall - -.. _listopen: - -List Open -========= - -:command:`list_open` returns an array of all the open port/type -combinations for the firewall. - -**REST Request** - -.. code-block:: none - - PUT /sysadm/firewall - { - "action" : "list_open" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "list_open" - }, - "id" : "fooid", - "name" : "firewall", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "openports": [ - "5353/udp" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: status, firewall - -.. _status: - -Status -====== - -:command:`status` returns the current state of the firewall. - -**REST Request** - -.. code-block:: none - - PUT /sysadm/firewall - { - "action" : "status" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "firewall", - "args" : { - "action" : "status" - }, - "id" : "fooid", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "is_enabled": "true", - "is_running": "true" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: open, firewall - -.. _open: - -Open -==== - -:command:`open` will allow traffic through a specified port. The -action requires the argument:: - - "ports":[/, /] - -**REST Request** - -.. code-block:: none - - PUT /sysadm/firewall - { - "action" : "open", - "ports" : [ - "12151/tcp" - ] - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "firewall", - "args" : { - "ports" : [ - "12151/tcp" - ], - "action" : "open" - }, - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: close, firewall - -.. _close: - -Close -===== - -:command:`close` will close the designated ports in the firewall. An -additional statement is required: :: - - "ports":["/", ""/""] - -**REST Request** - -.. code-block:: none - - PUT /sysadm/firewall - { - "action" : "close", - "ports" : [ - "12151/tcp" - ] - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "name" : "firewall", - "args" : { - "ports" : [ - "12151/tcp" - ], - "action" : "close" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: start, firewall - -.. _firewallstart: - -Start -===== - -:command:`start` will turn on the firewall. - -**REST Request** - -.. code-block:: none - - PUT /sysadm/firewall - { - "action" : "start" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "start" - }, - "namespace" : "sysadm", - "name" : "firewall" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: stop, firewall - -.. _firewallstop: - -Stop -==== - -:command:`stop` will turn off the firewall. - -**REST Request** - -.. code-block:: none - - PUT /sysadm/firewall - { - "action" : "stop" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "stop" - }, - "namespace" : "sysadm", - "name" : "firewall" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: restart, firewall - -.. _firewallrestart: - -Restart -======= - -:command:`restart` will reload the firewall. This will catch any -settings changes and is not generally needed. - -**REST Request** - -.. code-block:: none - - PUT /sysadm/firewall - { - "action" : "restart" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "restart" - }, - "namespace" : "sysadm", - "name" : "firewall" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: enable, firewall - -.. _firewallenable: - -Enable -====== - -:command:`enable` will automatically start the firewall on bootup. - -**REST Request** - -.. code-block:: none - - PUT /sysadm/firewall - { - "action" : "enable" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "enable" - }, - "namespace" : "sysadm", - "name" : "firewall" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: disable, firewall - -.. _firewalldisable: - -Disable -======= - -:command:`disable` Flags the system to not start the firewall on bootup. - -**REST Request** - -.. code-block:: none - - PUT /sysadm/firewall - { - "action" : "disable" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "disable" - }, - "namespace" : "sysadm", - "name" : "firewall" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: resetdefaults, firewall - -.. _resetdefaults: - -Reset Defaults -============== - -:command:`reset-defaults` will reset all the firewall settings back -to the defaults and restart the firewall. - -.. warning:: This will only work in |trueos|; the API call will return - an error if used with FreeBSD. - -**REST Request** - -.. code-block:: none - - PUT /sysadm/firewall - { - "action" : "reset-defaults" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "reset-defaults" - }, - "namespace" : "sysadm", - "name" : "firewall" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/classes/fs.rst b/docs/api_reference/classes/fs.rst deleted file mode 100644 index 943ae66..0000000 --- a/docs/api_reference/classes/fs.rst +++ /dev/null @@ -1,96 +0,0 @@ -.. _fs: - -fs -** - -The fs class is used to manage the files and directories on the system. - -Every fs class request contains several parameters: - -+---------------+-----------+--------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+======================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+-----------+--------------------------------------+ -| name | fs | | -| | | | -+---------------+-----------+--------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+-----------+--------------------------------------+ -| action | | Actions include "dirlist". | -| | | | -+---------------+-----------+--------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: dirlist, fs - -.. _List Directory: - -List Directory -============== - -The "dirlist" action lists the contents of the specified directory. - -**REST Request** - -:: - - PUT /sysadm/fs - { - "dir" : "/root", - "action" : "dirlist" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "dir" : "/root", - "action" : "dirlist" - }, - "id" : "fooid", - "name" : "fs", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "dirlist": { - "VirtualBox VMs": { - "dir": true - }, - "freenas-auto.iso": { - "group": "wheel", - "owner": "root", - "size": 408049664 - }, - "ixbuild": { - "dir": true - }, - "pc-sysinstall.cfg": { - "group": "wheel", - "owner": "root", - "size": 1741 - }, - "pc-sysinstall.log": { - "group": "wheel", - "owner": "root", - "size": 125408 - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/classes/index.rst b/docs/api_reference/classes/index.rst deleted file mode 100644 index 1153996..0000000 --- a/docs/api_reference/classes/index.rst +++ /dev/null @@ -1,9 +0,0 @@ -.. _classes: - -Classes -======= - -.. toctree:: - :glob: - - * diff --git a/docs/api_reference/classes/iocage.rst b/docs/api_reference/classes/iocage.rst deleted file mode 100644 index 51c9257..0000000 --- a/docs/api_reference/classes/iocage.rst +++ /dev/null @@ -1,1612 +0,0 @@ -.. _iocage: - -iocage -****** - -The iocage class is used to manage jails, which provide a light-weight, -operating system-level virtualization for running applications or -services. - -Every iocage class request contains the following parameters: - -+---------------+-----------+------------------------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+======================================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+-----------+------------------------------------------------------+ -| name | iocage | | -| | | | -+---------------+-----------+------------------------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+-----------+------------------------------------------------------+ -| action | | Actions include "activatepool", "capjail", | -| | | "cleanall", "cleanjails", "cleanreleases", | -| | | "cleantemplates", "clonejail", "createjail", | -| | | "deactivatepool", "destroyjail", "df", | -| | | "execjail", "getdefaultsettings", "getjailsettings", | -| | | "listjails", "startjail", and "stopjail". | -+---------------+-----------+------------------------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: getdefaultsettings, iocage - -.. _Default Settings: - -Default Settings -================ - -The "getdefaultsettings" action lists all of the global settings that -apply to all jails. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "getdefaultsettings" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "getdefaultsettings": { - "defaults": { - "allow_chflags": "0", - "allow_mount": "0", - "allow_mount_devfs": "0", - "allow_mount_nullfs": "0", - "allow_mount_procfs": "0", - "allow_mount_tmpfs": "0", - "allow_mount_zfs": "0", - "allow_quotas": "0", - "allow_raw_sockets": "0", - "allow_set_hostname": "1", - "allow_socket_af": "0", - "allow_sysvipc": "0", - "available": "426G", - "boot": "off", - "bpf": "off", - "children_max": "0", - "compression": "lz4", - "compressratio": "1.00x", - "coredumpsize": "off", - "count": "1", - "cpuset": "off", - "cputime": "off", - "datasize": "off", - "dedup": "off", - "defaultrouter": "none", - "defaultrouter6": "none", - "devfs_ruleset": "4", - "dhcp": "off", - "enforce_statfs": "2", - "exec_clean": "1", - "exec_fib": "0", - "exec_jail_user": "root", - "exec_poststart": "/usr/bin/true", - "exec_poststop": "/usr/bin/true", - "exec_prestart": "/usr/bin/true", - "exec_prestop": "/usr/bin/true", - "exec_start": "/bin/sh /etc/rc", - "exec_stop": "/bin/sh /etc/rc.shutdown", - "exec_system_jail_user": "0", - "exec_system_user": "root", - "exec_timeout": "60", - "ftpfiles": "base.txz doc.txz lib32.txz src.txz", - "ftphost": "ftp.freebsd.org", - "gitlocation": "https://github.com", - "hack88": "0", - "host_domainname": "none", - "host_hostname": "442a5843-c6bd-11e5-bbe9-fcaa14deb15d", - "host_hostuuid": "442a5843-c6bd-11e5-bbe9-fcaa14deb15d", - "hostid": "4145fbb8-c5b6-11e5-9f2f-fcaa14deb15d", - "interfaces": "vnet0:bridge0,vnet1:bridge1", - "ip4": "new", - "ip4_addr": "none", - "ip4_autoend": "none", - "ip4_autostart": "none", - "ip4_autosubnet": "none", - "ip4_saddrsel": "1", - "ip6": "new", - "ip6_addr": "none", - "ip6_saddrsel": "1", - "istemplate": "no", - "jail_zfs": "off", - "jail_zfs_dataset": "iocage/jails/442a5843-c6bd-11e5-bbe9-fcaa14deb15d/data", - "jail_zfs_mountpoint": "none", - "last_started": "none", - "login_flags": "-f root", - "maxproc": "off", - "memorylocked": "off", - "memoryuse": "8G:log", - "mount_devfs": "1", - "mount_fdescfs": "1", - "mount_linprocfs": "0", - "mount_procfs": "0", - "mountpoint": "/iocage/.defaults", - "msgqqueued": "off", - "msgqsize": "off", - "nmsgq": "off", - "notes": "none", - "nsemop": "off", - "nshm": "off", - "nthr": "off", - "openfiles": "off", - "origin": "-", - "owner": "root", - "pcpu": "off", - "pkglist": "none", - "priority": "99", - "pseudoterminals": "off", - "quota": "none", - "release": "11.0-CURRENTJAN2016", - "reservation": "none", - "resolver": "none", - "rlimits": "off", - "securelevel": "2", - "shmsize": "off", - "stacksize": "off", - "stop_timeout": "30", - "swapuse": "off", - "sync_target": "none", - "sync_tgt_zpool": "none", - "tag": "2016-01-29@14:19:49", - "type": "basejail", - "used": "96K", - "vmemoryuse": "off", - "vnet": "off", - "vnet0_mac": "none", - "vnet1_mac": "none", - "vnet2_mac": "none", - "vnet3_mac": "none", - "wallclock": "off" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "getdefaultsettings" - }, - "id" : "fooid", - "name" : "iocage", - "namespace" : "sysadm" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "getdefaultsettings": { - "defaults": { - "allow_chflags": "0", - "allow_mount": "0", - "allow_mount_devfs": "0", - "allow_mount_nullfs": "0", - "allow_mount_procfs": "0", - "allow_mount_tmpfs": "0", - "allow_mount_zfs": "0", - "allow_quotas": "0", - "allow_raw_sockets": "0", - "allow_set_hostname": "1", - "allow_socket_af": "0", - "allow_sysvipc": "0", - "available": "426G", - "boot": "off", - "bpf": "off", - "children_max": "0", - "compression": "lz4", - "compressratio": "1.00x", - "coredumpsize": "off", - "count": "1", - "cpuset": "off", - "cputime": "off", - "datasize": "off", - "dedup": "off", - "defaultrouter": "none", - "defaultrouter6": "none", - "devfs_ruleset": "4", - "dhcp": "off", - "enforce_statfs": "2", - "exec_clean": "1", - "exec_fib": "0", - "exec_jail_user": "root", - "exec_poststart": "/usr/bin/true", - "exec_poststop": "/usr/bin/true", - "exec_prestart": "/usr/bin/true", - "exec_prestop": "/usr/bin/true", - "exec_start": "/bin/sh /etc/rc", - "exec_stop": "/bin/sh /etc/rc.shutdown", - "exec_system_jail_user": "0", - "exec_system_user": "root", - "exec_timeout": "60", - "ftpfiles": "base.txz doc.txz lib32.txz src.txz", - "ftphost": "ftp.freebsd.org", - "gitlocation": "https://github.com", - "hack88": "0", - "host_domainname": "none", - "host_hostname": "442a5843-c6bd-11e5-bbe9-fcaa14deb15d", - "host_hostuuid": "442a5843-c6bd-11e5-bbe9-fcaa14deb15d", - "hostid": "4145fbb8-c5b6-11e5-9f2f-fcaa14deb15d", - "interfaces": "vnet0:bridge0,vnet1:bridge1", - "ip4": "new", - "ip4_addr": "none", - "ip4_autoend": "none", - "ip4_autostart": "none", - "ip4_autosubnet": "none", - "ip4_saddrsel": "1", - "ip6": "new", - "ip6_addr": "none", - "ip6_saddrsel": "1", - "istemplate": "no", - "jail_zfs": "off", - "jail_zfs_dataset": "iocage/jails/442a5843-c6bd-11e5-bbe9-fcaa14deb15d/data", - "jail_zfs_mountpoint": "none", - "last_started": "none", - "login_flags": "-f root", - "maxproc": "off", - "memorylocked": "off", - "memoryuse": "8G:log", - "mount_devfs": "1", - "mount_fdescfs": "1", - "mount_linprocfs": "0", - "mount_procfs": "0", - "mountpoint": "/iocage/.defaults", - "msgqqueued": "off", - "msgqsize": "off", - "nmsgq": "off", - "notes": "none", - "nsemop": "off", - "nshm": "off", - "nthr": "off", - "openfiles": "off", - "origin": "-", - "owner": "root", - "pcpu": "off", - "pkglist": "none", - "priority": "99", - "pseudoterminals": "off", - "quota": "none", - "release": "11.0-CURRENTJAN2016", - "reservation": "none", - "resolver": "none", - "rlimits": "off", - "securelevel": "2", - "shmsize": "off", - "stacksize": "off", - "stop_timeout": "30", - "swapuse": "off", - "sync_target": "none", - "sync_tgt_zpool": "none", - "tag": "2016-01-29@14:19:49", - "type": "basejail", - "used": "96K", - "vmemoryuse": "off", - "vnet": "off", - "vnet0_mac": "none", - "vnet1_mac": "none", - "vnet2_mac": "none", - "vnet3_mac": "none", - "wallclock": "off" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: listjails, iocage - -.. _List Jails: - -List Jails -========== - -The "listjails" action lists information about currently installed jails. -For each jail, the response includes the UUID of the jail, whether or -not the jail has been configured to start at system boot, the jail ID -(only applies to running jails), whether or not the jail is running, a -friendly name for the jail (tag), and the type of jail (basejail or -thickjail). - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "listjails" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "listjails": { - "611c89ae-c43c-11e5-9602-54ee75595566": { - "boot": "off", - "ip4": "-", - "jid": "-", - "state": "down", - "tag": "testjail", - "type": "basejail" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "listjails" - }, - "name" : "iocage", - "id" : "fooid", - "namespace" : "sysadm" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "listjails": { - "611c89ae-c43c-11e5-9602-54ee75595566": { - "boot": "off", - "ip4": "-", - "jid": "-", - "state": "down", - "tag": "testjail", - "type": "basejail" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: getjailsettings, iocage - -.. _Jail Settings: - -Jail Settings -============= - -The "getjailsettings" action lists settings that apply to the specified -jail. This action supports 4 modes: - -* Specify a property and a jail. - -* Specify a property and *-r* for all downloaded releases. - -* Specify *all* properties for the specified jail. - -* Specify the jail. - -Here is an example of specifying the property and the jail: - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "jail" : "test", - "action" : "getjailsettings", - "prop" : "vnet" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "iocage", - "id" : "fooid", - "namespace" : "sysadm", - "args" : { - "prop" : "vnet", - "action" : "getjailsettings", - "jail" : "test" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "getjailsettings": { - "test": { - "vnet": "off" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -Here is an example of using *-r* and a specifed property: - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "switches" : "-r", - "prop" : "vnet", - "action" : "getjailsettings" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "iocage", - "namespace" : "sysadm", - "args" : { - "prop" : "vnet", - "action" : "getjailsettings", - "switches" : "-r" - }, - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "getjailsettings": { - "9b8e1033-d065-11e5-8209-d05099728dbf": { - "TAG": "test", - "vnet": "off" - }, - "b67065a9-cfb9-11e5-8209-d05099728dbf": { - "TAG": "2016-02-09@23:47:04", - "vnet": "off" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -An example of specifying either *all* and a jail, or just specifying the -jail, as both modes produce identical outputs: - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "jail" : "test", - "action" : "getjailsettings", - "prop" : "all" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "iocage", - "namespace" : "sysadm", - "args" : { - "jail" : "test", - "action" : "getjailsettings", - "prop" : "all" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "getjailsettings": { - "test": { - "allow_chflags": "0", - "allow_mount": "0", - "allow_mount_devfs": "0", - "allow_mount_nullfs": "0", - "allow_mount_procfs": "0", - "allow_mount_tmpfs": "0", - "allow_mount_zfs": "0", - "allow_quotas": "0", - "allow_raw_sockets": "0", - "allow_set_hostname": "1", - "allow_socket_af": "0", - "allow_sysvipc": "0", - "available": "83.4G", - "boot": "off", - "bpf": "off", - "branch": "-", - "children_max": "0", - "compression": "lz4", - "compressratio": "2.27x", - "coredumpsize": "off", - "count": "1", - "cpuset": "off", - "cputime": "off", - "datasize": "off", - "dedup": "off", - "defaultrouter": "none", - "defaultrouter6": "none", - "devfs_ruleset": "4", - "dhcp": "off", - "enforce_statfs": "2", - "exec_clean": "1", - "exec_fib": "0", - "exec_jail_user": "root", - "exec_poststart": "/usr/bin/true", - "exec_poststop": "/usr/bin/true", - "exec_prestart": "/usr/bin/true", - "exec_prestop": "/usr/bin/true", - "exec_start": "/bin/sh /etc/rc", - "exec_stop": "/bin/sh /etc/rc.shutdown", - "exec_system_jail_user": "0", - "exec_system_user": "root", - "exec_timeout": "60", - "ftpdir": "-", - "ftpfiles": "-", - "ftphost": "-", - "ftplocaldir": "-", - "gitlocation": "https", - "hack88": "0", - "host_domainname": "none", - "host_hostname": "9b8e1033-d065-11e5-8209-d05099728dbf", - "host_hostuuid": "9b8e1033-d065-11e5-8209-d05099728dbf", - "hostid": "a60db2df-3c0e-11e5-8986-d05099728dbf", - "interfaces": "vnet0", - "ip4": "new", - "ip4_addr": "none", - "ip4_autoend": "none", - "ip4_autostart": "none", - "ip4_autosubnet": "none", - "ip4_saddrsel": "1", - "ip6": "new", - "ip6_addr": "none", - "ip6_saddrsel": "1", - "istemplate": "no", - "jail_zfs": "off", - "jail_zfs_dataset": "iocage/jails/9b7f1420-d065-11e5-8209-d05099728dbf/data", - "jail_zfs_mountpoint": "none", - "last_started": "2016-02-10_20", - "login_flags": "-f root", - "maxproc": "off", - "memorylocked": "off", - "memoryuse": "8G", - "mount_devfs": "1", - "mount_fdescfs": "1", - "mount_linprocfs": "0", - "mount_procfs": "0", - "mountpoint": "/iocage/jails/9b8e1033-d065-11e5-8209-d05099728dbf", - "msgqqueued": "off", - "msgqsize": "off", - "nmsgq": "off", - "notes": "none", - "nsemop": "off", - "nshm": "off", - "nthr": "off", - "openfiles": "off", - "origin": "-", - "owner": "root", - "pcpu": "off", - "pkglist": "none", - "priority": "99", - "pseudoterminals": "off", - "quota": "none", - "release": "10.2-RELEASE", - "reservation": "none", - "resolver": "none", - "rlimits": "off", - "securelevel": "2", - "shmsize": "off", - "stacksize": "off", - "start": "-", - "stop_timeout": "30", - "swapuse": "off", - "sync_stat": "-", - "sync_target": "none", - "sync_tgt_zpool": "none", - "tag": "test", - "template": "-", - "type": "basejail", - "used": "1.76M", - "vmemoryuse": "off", - "vnet": "off", - "vnet0_mac": "none", - "vnet1_mac": "none", - "vnet2_mac": "none", - "vnet3_mac": "none", - "wallclock": "off" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: df, iocage - -.. _List Resource Usage: - -List Resource Usage -=================== - -The "df" action lists resource usage for all jails. For each jail, the -response includes: CRT (compression ratio), RES (reserved space), QTA -(disk quota), USE (used space), AVA (available space), and TAG (jail -name). - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "df" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "iocage", - "id" : "fooid", - "args" : { - "action" : "df" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "df": { - "f250ab25-d062-11e5-8209-d05099728dbf": { - "ava": "83.4G", - "crt": "2.30x", - "qta": "none", - "res": "none", - "tag": "test", - "use": "1.69M" - }, - "f39318ae-d064-11e5-8209-d05099728dbf": { - "ava": "83.4G", - "crt": "2.30x", - "qta": "none", - "res": "none", - "tag": "test2", - "use": "1.69M" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: startjail, iocage - -.. _Start a Jail: - -Start a Jail -============ - -The "startjail" action starts the specified jail. - -.. warning:: A jail can be started only once. If the jail is already - running, an error message will be generated. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "startjail", - "jail" : "test" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "startjail": { - "test": { - "* Starting 0bf985de-ca0f-11e5-8d45-d05099728dbf (test)": "", - "+ Started (shared IP mode) OK": "", - "+ Starting services OK": "" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "action" : "startjail", - "jail" : "test" - }, - "name" : "iocage" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "startjail": { - "test": { - "INFO": " 0bf985de-ca0f-11e5-8d45-d05099728dbf (test) is already up" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: stopjail, iocage - -.. _Stop a Jail: - -Stop a Jail -=========== - -The "stopjail" action stops the specified jail. - -.. warning:: A jail can be only stopped once. If the jail has already - stopped, an error message will be generated. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "stopjail", - "jail" : "test" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "stopjail": { - "test": { - "* Stopping 0bf985de-ca0f-11e5-8d45-d05099728dbf (test)": "", - "+ Removing jail process OK": "", - "+ Running post-stop OK": "", - "+ Running pre-stop OK": "", - "+ Stopping services OK": "" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "jail" : "test", - "action" : "stopjail" - }, - "namespace" : "sysadm", - "id" : "fooid", - "name" : "iocage" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "stopjail": { - "test": { - "INFO": " 0bf985de-ca0f-11e5-8d45-d05099728dbf (test) is already down" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: capjail, iocage - -.. _Cap a Jail: - -Cap a Jail -=========== - -The "capjail" action re-applies resource limits to a running jail. Use -this action when you make a change to the specified jail's resources and -want to apply the changes without restarting the jail. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "jail" : "test", - "action" : "capjail" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "jail" : "test", - "action" : "capjail" - }, - "namespace" : "sysadm", - "name" : "iocage", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "capjail": { - "success": "jail test capped." - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: clonejail, iocage - -.. _Clone a Jail: - -Clone a Jail -============ - -The "clonejail" action clones the specified "jail". By default, the -clone will inherit that jail's properties. Use "props" to specify any -properties that should differ. All available properties are described in -`iocage(8) `_. - -In this example, the "tag" property is specified so that the new jail -has a different name than the jail it was cloned from. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "props" : "tag=newtest", - "jail" : "test", - "action" : "clonejail" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "iocage", - "args" : { - "action" : "clonejail", - "jail" : "test", - "props" : "tag=newtest" - }, - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "clonejail": { - "jail": "test", - "props": "tag=newtest", - "success": { - "Successfully created": " 5e1fe97e-cfba-11e5-8209-d05099728dbf (newtest)" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -In this example, no properties are specified so iocage populates its own -values and the props returned in the response is empty: - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "clonejail", - "jail" : "test" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "jail" : "test", - "action" : "clonejail" - }, - "name" : "iocage", - "namespace" : "sysadm", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "clonejail": { - "jail": "test", - "props": "", - "success": { - "Successfully created": " 89e78032-cfba-11e5-8209-d05099728dbf (2016-02-09@23" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: createjail, iocage - -.. _Create a Jail: - -Create a Jail -============= - -The "createjail" action creates a jail. - -In this example, the "tag" property sets the name of the new jail and -the "release" property specifies which template to use. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "createjail", - "props" : "tag=test release=10.2-RELEASE" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "props" : "tag=test release=10.2-RELEASE", - "action" : "createjail" - }, - "namespace" : "sysadm", - "name" : "iocage", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "createjail": { - "props": "tag=test release=10.2-RELEASE", - "success": { - "Successfully created": " 3030c554-d05e-11e5-8209-d05099728dbf (test)" - }, - "switches": "" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -In this example, the **-e** switch, which creates an empty jail, is -specified using "switches". Refer to -`iocage(8) `_ -for the list of available switches. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "switches" : "-e", - "action" : "createjail", - "props" : "tag=emptytest" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "args" : { - "props" : "tag=emptytest", - "action" : "createjail", - "switches" : "-e" - }, - "name" : "iocage", - "id" : "fooid" - } - -**Response** - -:: - - { - "args": { - "createjail": { - "props": "tag=emptytest", - "success": { - "uuid": "1325b8bc-d05e-11e5-8209-d05099728dbf" - }, - "switches": "-e" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - - .. index:: destroyjail, iocage - -.. _Destroy a Jail: - -Destroy a Jail -============== - -The "destroyjail" action destroys the specified jail. This action is -irreversible and does not prompt for confirmation, but will fail if the -jail is running. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "destroyjail", - "jail" : "test" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "destroyjail", - "jail" : "test" - }, - "name" : "iocage", - "id" : "fooid", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "destroyjail": { - "success": { - "Destroying": " 3030c554-d05e-11e5-8209-d05099728dbf" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: execjail, iocage - -.. _Run Command: - -Run Command -=========== - -The "execjail" action executes the specified "command" under the -privileges of the specified "user" in the specified "jail". The response -will indicate whether or not command execution succeeded as well as any -output from the command. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "execjail", - "jail" : "test", - "command" : "echo hi", - "user" : "root" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "iocage", - "args" : { - "user" : "root", - "action" : "execjail", - "jail" : "test", - "command" : "echo hi" - }, - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "execjail": { - "success": { - "hi": "" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: cleanjails, iocage - -.. _Clean Jails: - -Clean Jails -=========== - -The "cleanjails" action destroys all existing jail datasets, including -all data stored in the jails. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "cleanjails" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "args" : { - "action" : "cleanjails" - }, - "id" : "fooid", - "name" : "iocage" - } - -**Response** - -.. code-block:: json - - { - "args": { - "cleanjails": { - "success": "All jails have been cleaned." - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: cleanreleases, iocage - -.. _Clean Releases: - -Clean Releases -============== - -The "cleanreleases" action deletes all releases that have been fetched. -Since basejails rely on releases, do not run this action if any -basejails still exist. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "cleanreleases" - } - -**WebSocket Request** - -**REST Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "args" : { - "action" : "cleanreleases" - }, - "name" : "iocage" - } - -**Response** - -**REST Request** - -.. code-block:: json - - { - "args": { - "cleanreleases": { - "success": "All RELEASEs have been cleaned." - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: cleantemplates, iocage - -.. _Clean Templates: - -Clean Templates -=============== - -The "cleantemplates" action destroys all existing jail templates. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "cleantemplates" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "cleantemplates" - }, - "name" : "iocage", - "id" : "fooid", - "namespace" : "sysadm" - } - -**Response** - -:: - - { - "args": { - "cleantemplates": { - "success": "All templates have been cleaned." - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: cleanall, iocage - -.. _Clean All: - -Clean All -========= - -The "cleanall" action destroys everything associated with iocage. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "cleanall" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "args" : { - "action" : "cleanall" - }, - "id" : "fooid", - "name" : "iocage" - } - -**Response** - -.. code-block:: json - - { - "args": { - "cleanall": { - "success": "All iocage datasets have been cleaned." - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: activatepool, iocage - -.. _Activate a Pool: - -Activate a Pool -=============== - -The "activatepool" action can be used to specify the ZFS pool to store -jails. If you do not specify the pool, the response will indicate the -current setting. - -These examples specify the pool to use: - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "activatepool", - "pool" : "tank" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "activatepool": { - "success": "pool tank activated." - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "activatepool", - "pool" : "tank" - }, - "name" : "iocage", - "id" : "fooid", - "namespace" : "sysadm" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "activatepool": { - "success": "pool tank activated." - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -These examples show responses when the pool is not specified: - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "activatepool" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "activatepool": { - "currently active": { - "pool": " tank" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "activatepool" - }, - "namespace" : "sysadm", - "name" : "iocage", - "id" : "fooid" - } - -**WebSocket Response** - -:: - - { - "args": { - "activatepool": { - "currently active": { - "pool": " tank" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: deactivatepool, iocage - -.. _Deactivate a Pool: - -Deactivate a Pool -================= - -Since only one pool can be active, the "deactivatepool" action can be -used to deactivate a currently active pool. This should be done before -using the "activatepool" action to activate a different pool. When a -pool is deactivated, no data is removed. However, you won't have access -to its jails unless you move those datasets to the newly activated pool -or activate the old pool again. - -**REST Request** - -:: - - PUT /sysadm/iocage - { - "action" : "deactivatepool", - "pool" : "tank" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "deactivatepool": { - "success": "pool tank deactivated." - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "iocage", - "args" : { - "pool" : "tank", - "action" : "deactivatepool" - }, - "namespace" : "sysadm" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "deactivatepool": { - "success": "pool tank deactivated." - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/classes/iohyve.rst b/docs/api_reference/classes/iohyve.rst deleted file mode 100644 index 1c4466f..0000000 --- a/docs/api_reference/classes/iohyve.rst +++ /dev/null @@ -1,1049 +0,0 @@ -.. _iohyve: - -iohyve -****** - -The iohyve class is used to manage virtual machines (VMs) running in the -bhyve type 2 hypervisor. - -Every iohyve class request contains the following parameters: - -+---------------+-----------+------------------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+================================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+-----------+------------------------------------------------+ -| name | iohyve | | -| | | | -+---------------+-----------+------------------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+-----------+------------------------------------------------+ -| action | | Actions include "adddisk", "create", | -| | | "delete", "deletedisk", "fetchiso", | -| | | "getprops", "install", "issetup", "listdisks", | -| | | "listisos", "listvms", "renameiso", | -| | | "resizedisk", "rmiso", "setprop", "setup", | -| | | "start", "stop", and "version" | -+---------------+-----------+------------------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: listvms, iohyve - -.. _List VMs: - -List VMs -======== - -The "listvms" action lists information about currently installed VMs. -For each VM, the response includes the VM's name, description, whether -or not it is scheduled to start when the host system boots, whether or -not it is currently running, and whether or not the VM is currently -loaded into memory. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "action" : "listvms" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "listvms": { - "testguest": { - "description": "February 1, 2016 at 03:11:57 PM EST", - "rcboot": "NO", - "running": "NO", - "vmm": "YES" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "args" : { - "action" : "listvms" - }, - "name" : "iohyve", - "id" : "fooid" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "listvms": { - "testguest": { - "description": "February 1, 2016 at 03:11:57 PM EST", - "rcboot": "NO", - "running": "NO", - "vmm": "YES" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: fetchiso, iohyve - -.. _Fetch ISO: - -Fetch ISO -========= - -The "fetchiso" action is used to retrieve the installation ISO. It is -used with the "url" argument which contains the ISO address beginning -with *http://*, *ftp://*, or *file://*. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "url" : "ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/10.1/FreeBSD-10.1-RELEASE-amd64-disc1.iso", - "action" : "fetchiso" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "iohyve", - "args" : { - "url" : "ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/10.1/FreeBSD-10.1-RELEASE-amd64-disc1.iso", - "action" : "fetchiso" - }, - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "fetchiso": { - "command": "iohyve fetch ftp://ftp.freebsd.org/pub/FreeBSD/releases/amd64/amd64/ISO-IMAGES/10.1/FreeBSD-10.1-RELEASE-amd64-disc1.iso", - "comment": "Task Queued", - "queueid": "{b3a8b980-a564-4ff8-86a2-1971bd4f58d1}" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -**Dispatcher Events System Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "sysadm/iohyve", - "state" : "finished", - "filename" : "", - "percent_done" : "%", - "download_rate" : "", - "process_details" : { - "time_finished" : "", - "cmd_list" : ["", ""], - "return_codes/" : "", - "return_codes/" : "", - "process_id" : "", - "state" : "finished" - } - } - } - -.. index:: listisos, iohyve - -.. _List ISOs: - -List ISOs -========= - -The "listisos" action lists all the known ISO files which iohyve can use. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "action" : "listisos" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "iohyve", - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "action" : "listisos" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "listisos": [ - "TRUEOS10.2-RELEASE-08-19-2015-x64-netinstall.iso" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: renameiso, iohyve - -.. _Rename ISO: - -Rename ISO -========== - -The "renameiso" action is used to to rename an existing ISO file on disk. -Specify the existing name with "source" and the new name with "target". - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "source" : "test.iso", - "target" : "102.iso", - "action" : "renameiso" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "target" : "102.iso", - "source" : "test.iso", - "action" : "renameiso" - }, - "id" : "fooid", - "name" : "iohyve", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "renameiso": { - "source": "test.iso", - "target": "102.iso" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: rmiso, iohyve - -.. _Remove ISO: - -Remove ISO -========== - -The "rmiso" action is used to to remove an existing ISO file from disk. -Specify the ISO's name as the "target". - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "action" : "rmiso", - "target" : "FreeBSD-10.2-RELEASE-amd64-bootonly.iso" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "iohyve", - "args" : { - "target" : "FreeBSD-10.2-RELEASE-amd64-bootonly.iso", - "action" : "rmiso" - }, - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "rmiso": { - "target": "FreeBSD-10.2-RELEASE-amd64-bootonly.iso" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: setup, iohyve - -.. _Setup iohyve: - -Setup iohyve -============ - -The "setup" action performs the initial setup of iohyve. It is mandatory -to specify the FreeBSD device name of the "nic" and the ZFS "pool" to -use. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "nic" : "re0", - "pool" : "tank", - "action" : "setup" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "iohyve", - "args" : { - "pool" : "tank", - "nic" : "re0", - "action" : "setup" - }, - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "setup": { - "nic": "re0", - "pool": "tank" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: issetup, iohyve - -.. _Determine iohyve Setup: - -Determine iohyve Setup -====================== - -The "issetup" action queries if iohyve has been setup and returns either -"true" or "false". - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "action" : "issetup" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "args" : { - "action" : "issetup" - }, - "name" : "iohyve" - } - -**Response** - -.. code-block:: json - - { - "args": { - "issetup": { - "setup": "true" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: create, iohyve - -.. _Create Guest: - -Create Guest -============ - -The "create" action creates a new iohyve guest of the specified "name" -and "size". - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "action" : "create", - "name" : "bsdguest", - "size" : "10G" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "iohyve", - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "name" : "bsdguest", - "action" : "create", - "size" : "10G" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "create": { - "name": "bsdguest", - "size": "10G" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: install, iohyve - -.. _Install Guest: - -Install Guest -============= - -The "install" action starts the iohyve installation of the specified -guest from the specified ISO. This action only boots the VM with the ISO; -to do the actual installation, run :command:`iohyve console ` from -the system. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "name" : "bsdguest", - "iso" : "FreeBSD-10.2-RELEASE-amd64-disc1.iso", - "action" : "install" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "iohyve", - "id" : "fooid", - "args" : { - "action" : "install", - "iso" : "FreeBSD-10.2-RELEASE-amd64-disc1.iso", - "name" : "bsdguest" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "install": { - "iso": "FreeBSD-10.2-RELEASE-amd64-disc1.iso", - "name": "bsdguest" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: start, iohyve - -.. _Start VM: - -Start VM -======== - -The "start" action starts the specified VM. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "action" : "start", - "name" : "bsdguest" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "iohyve", - "id" : "fooid", - "args" : { - "action" : "start", - "name" : "bsdguest" - }, - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "start": { - "name": "bsdguest" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: stop, iohyve - -.. _Stop VM: - -Stop VM -======= - -The "stop" action stops the specified VM. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "action" : "stop", - "name" : "bsdguest" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "stop", - "name" : "bsdguest" - }, - "name" : "iohyve", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "stop": { - "name": "bsdguest" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: delete, iohyve - -.. _Delete a VM: - -Delete a VM -=========== - -The "delete" action deletes the specified iohyve guest. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "action" : "delete", - "name" : "bsdguest" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "action" : "delete", - "name" : "bsdguest" - }, - "name" : "iohyve" - } - -**Response** - -.. code-block:: json - - { - "args": { - "delete": { - "name": "bsdguest" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: adddisk, iohyve - -.. _Add a Disk: - -Add a Disk -========== - -The "adddisk" action adds and creates a disk for a VM. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "name" : "bsdguest", - "action" : "adddisk", - "size" : "10G" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "size" : "10G", - "name" : "bsdguest", - "action" : "adddisk" - }, - "id" : "fooid", - "namespace" : "sysadm", - "name" : "iohyve" - } - -**Response** - -.. code-block:: json - - { - "args": { - "adddisk": { - "bsdguest": { - "size": "10G" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: listdisks, iohyve - -.. _List Disks: - -List Disks -========== - -The "listdisks" action lists the disks connected to the specified VM. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "name" : "bsdguest", - "action" : "listdisks" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "listdisks", - "name" : "bsdguest" - }, - "id" : "fooid", - "namespace" : "sysadm", - "name" : "iohyve" - } - -**Response** - -.. code-block:: json - - { - "args": { - "listdisks": { - "disk0": "10G" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: resizedisk, iohyve - -.. _Resize a Disk: - -Resize a Disk -============= - -The "resizedisk" action **increases** the specified disk in the -specified VM. The new specified size must be larger than the current -size. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "disk" : "disk0", - "name" : "bsdguest", - "action" : "resizedisk", - "size" : "20G" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "iohyve", - "id" : "fooid", - "args" : { - "size" : "20G", - "action" : "resizedisk", - "disk" : "disk0", - "name" : "bsdguest" - }, - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "resizedisk": { - "disk": "disk0", - "name": "bsdguest", - "size": "20G" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: deletedisk, iohyve - -.. _Delete a Disk: - -Delete a Disk -============= - -The "deletedisk" action removes the specified disk from the specified VM. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "disk" : "disk1", - "name" : "bsdguest", - "action" : "deletedisk" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "id" : "fooid", - "name" : "iohyve", - "args" : { - "name" : "bsdguest", - "action" : "deletedisk", - "disk" : "disk1" - } - } - -**Response** - -:: - - { - "args": { - "deletedisk": { - "disk": "disk1", - "name": "bsdguest" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - - .. index:: version, iohyve - -.. _List Version: - -List Version -============ - -The "version" action displays the iohyve version. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "action" : "version" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "args" : { - "action" : "version" - }, - "id" : "fooid", - "name" : "iohyve" - } - -**Response** - -.. code-block:: json - - { - "args": { - "version": { - "version": "iohyve v0.7.3 2016/01/08 Bear in a Datacenter Edition" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: getprops, iohyve - -.. _List Guest Properties: - -List Guest Properties -===================== - -The "getprops" action lists the properties for the specified guest. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "action" : "getprops", - "name" : "bsdguest" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "args" : { - "name" : "bsdguest", - "action" : "getprops" - }, - "name" : "iohyve" - } - -**Response** - -.. code-block:: json - - { - "args": { - "getprops": { - "bsdguest": { - "autogrub": "\\n", - "bargs": "-A_-H_-P", - "boot": "0", - "con": "nmdm0", - "cpu": "1", - "description": "Tue", - "install": "no", - "loader": "bhyveload", - "name": "bsdguest", - "os": "default", - "persist": "1", - "ram": "256M", - "size": "10G", - "tap": "tap0" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: setprop, iohyve - -.. _Set Guest Properties: - -Set Guest Properties -==================== - -The "setprop" action can be used to modify the properties for the -specified guest. For each property, specify its name and desired value. -Use "getprops" to see the current properties and values for the guest. - -**REST Request** - -:: - - PUT /sysadm/iohyve - { - "ram" : "512M", - "name" : "bsdguest", - "action" : "setprop" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "ram" : "512M", - "name" : "bsdguest", - "action" : "setprop" - }, - "name" : "iohyve" - } - -**Response** - -.. code-block:: json - - { - "args": { - "setprop": { - "bsdguest": { - "ram": "512M" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/classes/lifepreserver.rst b/docs/api_reference/classes/lifepreserver.rst deleted file mode 100644 index e58a587..0000000 --- a/docs/api_reference/classes/lifepreserver.rst +++ /dev/null @@ -1,1123 +0,0 @@ -.. _lifepreserver: - -lifepreserver -************* - -The lifepreserver class is used to manage and retrieve information about -scheduled snapshots and replication. - -Every lifepreserver class request contains the following parameters: - -+---------------+---------------+---------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===============+=======================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+---------------+---------------------------------------+ -| name | lifepreserver | | -| | | | -+---------------+---------------+---------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+---------------+---------------------------------------+ -| action | | Actions include "addreplication", | -| | | "createsnap", "cronscrub", "cronsnap" | -| | | "initreplication", "listcron", | -| | | "listreplication", "listsnap", | -| | | "removesnap", "removereplication", | -| | | "revertsnap", "runreplication", | -| | | "savesettings", and "settings" | -+---------------+---------------+---------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: listcron, Life Preserver - -.. _List Schedules: - -List Schedules -============== - -The "listcron" action retrieves the information for each Life Preserver -scheduled task. If snapshots have been configured for a ZFS pool, it -lists the number of snapshots to keep and the time that snapshots are -taken. If scrubs have been configured on that ZFS pool, it also lists -the time that ZFS scrubs occur. - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "action" : "listcron" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "listcron": { - "tank1": { - "keep": "3", - "schedule": "daily@18" - "scrub": "daily@22" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "listcron" - }, - "name" : "lifepreserver", - "namespace" : "sysadm", - "id" : "fooid" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "listcron": { - "tank1": { - "keep": "3", - "schedule": "daily@18" - "scrub": "daily@22" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: cronsnap, Life Preserver - -.. _Create a Snapshot Schedule: - -Create a Snapshot Schedule -========================== - -The "cronsnap" action is used to create snapshot schedules for Life -Preserver. This action supports the following parameters: - -+---------------+------------------------------------------------------+ -| **Parameter** | **Description** | -| | | -+===============+======================================================+ -| pool | Name of the ZFS pool to snapshot. | -| | | -+---------------+------------------------------------------------------+ -| keep | Specify the number of snapshots to keep. | -| | | -+---------------+------------------------------------------------------+ -| frequency | Specify when to take the snapshots. Possible values | -| | are "daily@XX" (where XX is the number of the hour), | -| | "hourly", "30min", "10min", "5min" or "none" | -| | (disables snapshots) | -+---------------+------------------------------------------------------+ - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "pool" : "mytank", - "keep" : "10", - "frequency" : "daily@11", - "action" : "cronsnap" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "cronsnap": { - "frequency": "daily@11", - "keep": "10", - "pool": "mytank" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "cronsnap", - "keep" : "10", - "frequency" : "daily@11", - "pool" : "mytank" - }, - "namespace" : "sysadm", - "name" : "lifepreserver", - "id" : "fooid" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "cronsnap": { - "frequency": "daily@11", - "keep": "10", - "pool": "mytank" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: cronscrub, Life Preserver - -.. _Create a Scrub Schedule: - -Create a Scrub Schedule -======================= - -The "cronscrub" action is used to schedule a ZFS scrub. This action -supports the following parameters: - -+---------------+----------------------------------------------------+ -| **Parameter** | **Description** | -| | | -+===============+====================================================+ -| pool | Name of ZFS pool to scrub. | -| | | -+---------------+----------------------------------------------------+ -| frequency | Specify when to perform the scrub. Possible values | -| | are "daily@XX", "weekly@YY@XX", and monthly@ZZ@XX, | -| | where "XX" is the hour, "YY" is the day of week | -| | ("01" for Monday through "07" for Sunday), "ZZ" is | -| | the day of month, and "none"disables scrubs. | -| | | -+---------------+----------------------------------------------------+ - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "action" : "cronscrub", - "pool" : "tank", - "frequency" : "daily@22" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "cronscrub": { - "frequency": "daily@22", - "pool": "tank" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "cronscrub", - "pool" : "tank", - "frequency" : "daily@22" - }, - "namespace" : "sysadm", - "name" : "lifepreserver", - "id" : "fooid" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "cronscrub": { - "frequency": "daily@22", - "pool": "tank" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: createsnap, Life Preserver - -.. _Create a Snapshot: - -Create a Snapshot -================= - -The "createsnap" action creates a one-time snapshot of the specified -dataset. - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "snap" : "mytestsnap", - "dataset" : "tank", - "comment" : "Testing", - "action" : "createsnap" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "comment" : "Testing", - "dataset" : "tank", - "action" : "createsnap", - "snap" : "mytestsnap" - }, - "name" : "lifepreserver", - "namespace" : "sysadm", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "createsnap": { - "comment": "Testing", - "dataset": "tank", - "snap": "mytestsnap" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: listsnap, Life Preserver - -.. _List Snapshots: - -List Snapshots -============== - -The "listsnap" action retrieves the list of saved snapshots. - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "pool" : "tank1", - "action" : "listsnap" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "listsnap": { - "tank1@auto-2016-01-04-18-00-00": { - "comment": "Automated Snapshot" - }, - "tank1@auto-2016-01-05-18-00-00": { - "comment": "Automated Snapshot" - }, - "tank1@auto-2016-01-06-18-00-00": { - "comment": "Automated Snapshot" - }, - "tank1@auto-2016-01-07-18-00-00": { - "comment": "Automated Snapshot" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "lifepreserver", - "args" : { - "pool" : "tank1", - "action" : "listsnap" - }, - "namespace" : "sysadm", - "id" : "fooid" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "listsnap": { - "tank1@auto-2016-01-04-18-00-00": { - "comment": "Automated Snapshot" - }, - "tank1@auto-2016-01-05-18-00-00": { - "comment": "Automated Snapshot" - }, - "tank1@auto-2016-01-06-18-00-00": { - "comment": "Automated Snapshot" - }, - "tank1@auto-2016-01-07-18-00-00": { - "comment": "Automated Snapshot" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: revertsnap, Life Preserver - -.. _Revert a Snapshot: - -Revert a Snapshot -================= - -The "revertsnap" action is used to rollback the contents of the -specified dataset to the point in time that the specified snapshot was -taken. - -.. danger:: Performing this operation will revert the contents of the - dataset back in time, meaning that all changes to the - dataset's files that occurred since the snapshot was taken - will be lost. - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "snap" : "auto-2016-01-09-18-00-00", - "dataset" : "tank1/usr/jails", - "action" : "revertsnap" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "revertsnap": { - "dataset": "tank1/usr/jails", - "snap": "auto-2016-01-09-18-00-00" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "dataset" : "tank1/usr/jails", - "action" : "revertsnap", - "snap" : "auto-2016-01-09-18-00-00" - }, - "namespace" : "sysadm", - "name" : "lifepreserver", - "id" : "fooid" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "revertsnap": { - "dataset": "tank1/usr/jails", - "snap": "auto-2016-01-09-18-00-00" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: removesnap, Life Preserver - -.. _Remove a Snapshot: - -Remove a Snapshot -================= - -The "removesnap" action is used to remove a ZFS snapshot from the -specified dataset or pool. - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "dataset" : "tank1/usr/jails", - "snap" : "auto-2016-01-09-18-00-00", - "action" : "removesnap" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "removesnap": { - "dataset": "tank1/usr/jails", - "snap": "auto-2016-01-09-18-00-00" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "snap" : "auto-2016-01-09-18-00-00", - "action" : "removesnap", - "dataset" : "tank1/usr/jails" - }, - "name" : "lifepreserver", - "namespace" : "sysadm", - "id" : "fooid" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "removesnap": { - "dataset": "tank1/usr/jails", - "snap": "auto-2016-01-09-18-00-00" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: addreplication, Life Preserver - -.. _Add Replication: - -Add Replication -=============== - -The "addreplication" action is used to create a replication task in Life -Preserver. This action supports several parameters: - -+---------------+-----------------------------------------------------+ -| **Parameter** | **Description** | -| | | -+===============+=====================================================+ -| host | Remote hostname or IP address. | -| | | -+---------------+-----------------------------------------------------+ -| port | SSH port number on remote system. | -| | | -+---------------+-----------------------------------------------------+ -| user | User must exist on remote system. | -| | | -+---------------+-----------------------------------------------------+ -| password | The password for *user* on remote system. | -| | | -+---------------+-----------------------------------------------------+ -| dataset | Name of local dataset to replicate. | -| | | -+---------------+-----------------------------------------------------+ -| remotedataset | Path to the dataset on the remote system. | -| | | -+---------------+-----------------------------------------------------+ -| frequency | When to replicate. Supported times are "XX" (hour), | -| | "sync" (as snapshot is created, not recommended for | -| | frequent snapshots), "hour" (hourly), "30min" | -| | (every 30 minutes), "10min" (every 10 minutes), or | -| | "manual" (only when requested by user) | -| | | -+---------------+-----------------------------------------------------+ - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "action" : "addreplication", - "password" : "mypass", - "dataset" : "tank1", - "remotedataset" : "tank/backups", - "user" : "backupuser", - "frequency" : "22", - "port" : "22", - "host" : "192.168.0.10" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "addreplication": { - "frequency": "22", - "host": "192.168.0.10", - "ldataset": "tank1", - "port": "22", - "rdataset": "tank/backups", - "user": "backupuser" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "lifepreserver", - "args" : { - "action" : "addreplication", - "user" : "backupuser", - "dataset" : "tank1", - "frequency" : "22", - "port" : "22", - "password" : "mypass", - "host" : "192.168.0.10", - "remotedataset" : "tank/backups" - }, - "id" : "fooid" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "addreplication": { - "frequency": "22", - "host": "192.168.0.10", - "ldataset": "tank1", - "port": "22", - "rdataset": "tank/backups", - "user": "backupuser" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: removereplication, Life Preserver - -.. _Remove Replication: - -Remove Replication -================== - -The "removereplication" action is used to delete an existing replication -task. Note that this action only deletes the task - it does not remove -any already replicated data from the remote system. - -This action supports several parameters: - -+---------------+-----------------------------------------------------+ -| **Parameter** | **Description** | -| | | -+===============+=====================================================+ -| host | Remote hostname or IP address. | -| | | -+---------------+-----------------------------------------------------+ -| dataset | Name of local dataset to remove from replication. | -| | | -+---------------+-----------------------------------------------------+ - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "dataset" : "tank", - "host" : "192.168.0.10", - "action" : "removereplication" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "removereplication": { - "dataset": "tank", - "host": "192.168.0.10" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "removereplication", - "dataset" : "tank", - "host" : "192.168.0.10" - }, - "name" : "lifepreserver", - "namespace" : "sysadm" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "removereplication": { - "dataset": "tank", - "host": "192.168.0.10" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: listreplication, Life Preserver - -.. _List Replications: - -List Replications -================= - -The "listreplication" action is used to retrieve the settings of -configured replication tasks. For each task, the response includes the -name of the local ZFS pool or dataset to replicate, the IP address and -listening port number of the remote system to replicate to, when the -replication occurs (see the "frequency" description in -:ref:`Add Replication`), the name of the dataset on the remote system to -store the replicated data ("rdset"), and the name of the replication -user account. - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "action" : "listreplication" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "listreplication": { - "tank1->192.168.0.9": { - "dataset": "tank1", - "frequency": "22", - "host": "192.168.0.9", - "port": "22", - "rdset": "tank/backups", - "user": "backups" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "args" : { - "action" : "listreplication" - }, - "id" : "fooid", - "name" : "lifepreserver" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "listreplication": { - "tank1->192.168.0.9": { - "dataset": "tank1", - "frequency": "22", - "host": "192.168.0.9", - "port": "22", - "rdset": "tank/backups", - "user": "backups" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: runreplication, Life Preserver - -.. _Start Replication: - -Start Replication -================= - -The "runreplication" action can be used to manually replicate the -specified dataset to the specified remote server. - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "host" : "10.0.10.100", - "dataset" : "mypool", - "action" : "runreplication" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "runreplication": { - "dataset": "mypool", - "host": "10.0.10.100" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "lifepreserver", - "args" : { - "host" : "10.0.10.100", - "dataset" : "mypool", - "action" : "runreplication" - }, - "namespace" : "sysadm" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "runreplication": { - "dataset": "mypool", - "host": "10.0.10.100" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: initreplication, Life Preserver - -.. _Initialize Replication: - -Initialize Replication -====================== - -The "initreplication" action can be used to clear the replication data -on the remote server. This is useful if a replication becomes stuck. -After running this action, issue a "runreplication" action to start a -new replication. - -The "initreplication" action supports the following parameters: - -+---------------+-----------------------------------------------------+ -| **Parameter** | **Description** | -| | | -+===============+=====================================================+ -| host | Remote hostname or IP address. | -| | | -+---------------+-----------------------------------------------------+ -| dataset | Name of local dataset or pool being replicated. | -| | | -+---------------+-----------------------------------------------------+ - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "dataset" : "tank1", - "host" : "192.168.0.9", - "action" : "initreplication" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "initreplication": { - "dataset": "tank1", - "host": "192.168.0.9" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "host" : "192.168.0.9", - "dataset" : "tank1", - "action" : "initreplication" - }, - "namespace" : "sysadm", - "name" : "lifepreserver" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "initreplication": { - "dataset": "tank1", - "host": "192.168.0.9" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: settings, Life Preserver - -.. _View Settings: - -View Settings -============= - -The "settings" action returns the system-wide settings of the Life -Preserver utility. The returned settings include the disk percentage -used at which Life Preserver will issue a warning, the level at which an -email will be sent, the email address to send notifications to, and -whether or not snapshots are taken recursively (include all child -datasets). - -Run :command:`lpreserver help set` for more information about each -available setting. - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "action" : "settings" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "settings": { - "diskwarn": "85%", - "email": "WARN", - "emailaddress": "me@mycompany.com", - "recursive": "ON" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "settings" - }, - "namespace" : "sysadm", - "name" : "lifepreserver" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "settings": { - "diskwarn": "85%", - "email": "WARN", - "emailaddress": "me@mycompany.com", - "recursive": "ON" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: savesettings, Life Preserver - -.. _Save Settings: - -Save Settings -============= - -The "savesettings" action can be used to modify the system-wide settings -of the Life Preserver utility. This action supports the following -parameters: - -+---------------+-----------------------------------------------------+ -| **Parameter** | **Description** | -| | | -+===============+=====================================================+ -| duwarn | Disk percentage (from 0-99) at which to warn of low | -| | disk space. | -+---------------+-----------------------------------------------------+ -| email | Email address to send notifications. | -| | | -+---------------+-----------------------------------------------------+ -| emailopts | Conditions which trigger an email notification. | -| | Possible values are "ALL" (every snapshot, warning | -| | and error),"WARN" (warnings and errors--this is the | -| | default condition), or "ERROR" (errors only). | -+---------------+-----------------------------------------------------+ -| recursive | Whether or not to include all child datasets in the | -| | snapshot; possible values are "true" or "false" | -+---------------+-----------------------------------------------------+ - -**REST Request** - -:: - - PUT /sysadm/lifepreserver - { - "emailopts" : "ALL", - "duwarn" : "70", - "recursive" : "true", - "action" : "savesettings", - "email" : "kris@example.org" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "savesettings": { - "duwarn": "70", - "email": "kris@example.org", - "emailopts": "ALL", - "recursive": "true" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "emailopts" : "ALL", - "action" : "savesettings", - "duwarn" : "70", - "recursive" : "true", - "email" : "kris@example.org" - }, - "id" : "fooid", - "namespace" : "sysadm", - "name" : "lifepreserver" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "savesettings": { - "duwarn": "70", - "email": "kris@example.org", - "emailopts": "ALL", - "recursive": "true" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } diff --git a/docs/api_reference/classes/logs.rst b/docs/api_reference/classes/logs.rst deleted file mode 100644 index 6f7ace3..0000000 --- a/docs/api_reference/classes/logs.rst +++ /dev/null @@ -1,84 +0,0 @@ -.. _logs: - -logs -**** - -The logs class is used to interact with the log files created by the -SysAdmâ„¢ server. - -Every logs class request contains the following parameters: - -+---------------+-----------+-----------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+=========================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+-----------+-----------------------------------------+ -| name | logs | | -| | | | -+---------------+-----------+-----------------------------------------+ -| namespace | rpc | | -| | | | -+---------------+-----------+-----------------------------------------+ -| action | | Supported actions include "read_logs". | -| | | | -+---------------+-----------+-----------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: read_logs, logs - -.. _Read Logs: - -Read Logs -========= - -The "read_logs" action can be used to display log entries. It supports -the following optional arguments: - -* **logs:** Used to specify an array or string of log type(s). Valid - types are "hostinfo", "dispatcher", "events-dispatcher", - "events-lifepreserver", and "events-state". - -* **time_format:** Used to specify the format for "start_time" and - "end_time". Valid Formats are "time_t_seconds", "epoch_mseconds, - "relative_[day/month/second]", or a - `QDateTime String code `_. - -* **start_time:** Displays log entries that occurred after the time - specified using a valid "time_format". - -* **end_time:** Displays log entries that occurred before the time - specified using a valid "time_format". - -If the "time_format" is not specified, or if the "start_time" or -"end_time" are not defined, the end time will be the current date and -time and the start time will be 12 hours previous. - -If the "logs" argument is missing or empty, then all logs matching the -search parameters will be returned. - -For example, this input returns all log entries within the last hour: - -.. code-block:: json - - { - "action" : "read_logs", - "time_format" : "relative_second", - "start_time" : "-3600" - } - -And will return this format: - -.. code-block:: json - - { - "args" : { - "" : { - "" : "", - "" : "" - } - } - } diff --git a/docs/api_reference/classes/network.rst b/docs/api_reference/classes/network.rst deleted file mode 100644 index 579b144..0000000 --- a/docs/api_reference/classes/network.rst +++ /dev/null @@ -1,99 +0,0 @@ -.. _network: - -network -******* - -The network class is used to manage and retrieve information from -Ethernet and wireless network devices. - -Every network class request contains the following parameters: - -+---------------+-----------+-------------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+===========================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+-----------+-------------------------------------------+ -| name | network | | -| | | | -+---------------+-----------+-------------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+-----------+-------------------------------------------+ -| action | | Supported actions include "list-devices". | -| | | | -+---------------+-----------+-------------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: list-devices, network - -.. _List Devices: - -List Devices -============ - -The "list-devices" action lists information about currently recognized -network devices. For each network device, the response includes the -device's MAC address, description, IPv4 address, IPv6 address, whether -or not the device is active, whether or not the device is configured -using DHCP, whether or not the device is wireless, its subnet mask, and -its current status. - -**REST Request** - -:: - - PUT /sysadm/network - { - "action" : "list-devices" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "args" : { - "action" : "list-devices" - }, - "id" : "fooid", - "name" : "network" - } - -**Response** - -.. code-block:: json - - { - "args": { - "lo0": { - "MAC": "00:00:00:00:00:00", - "description": "", - "ipv4": "127.0.0.1", - "ipv6": "::1", - "is_active": "true", - "is_dhcp": "false", - "is_wireless": "false", - "netmask": "255.0.0.0", - "status": "no carrier" - }, - "re0": { - "MAC": "fc:aa:14:77:a0:8d", - "description": "RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet", - "ipv4": "192.168.1.130", - "ipv6": "fe80::feaa:14ff:fe77:a08d%re0", - "is_active": "true", - "is_dhcp": "true", - "is_wireless": "false", - "netmask": "255.255.255.0", - "status": "active" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/classes/pkg.rst b/docs/api_reference/classes/pkg.rst deleted file mode 100644 index 25fcd16..0000000 --- a/docs/api_reference/classes/pkg.rst +++ /dev/null @@ -1,1185 +0,0 @@ -.. _pkg: - -pkg -*** - -The pkg class is used to manage software packages. - -Every pkg class request contains several parameters: - -+---------------+-----------+-------------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+===========================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+-----------+-------------------------------------------+ -| name | pkg | | -| | | | -+---------------+-----------+-------------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+-----------+-------------------------------------------+ -| action | | Supported actions include | -| | | "list_categories", "list_repos", | -| | | "pkg_audit", "pkg_autoremove", | -| | | "pkg_check_upgrade", "pkg_info", | -| | | "pkg_install", "pkg_lock", "pkg_remove", | -| | | "pkg_search", "pkg_unlock", "pkg_update", | -| | | and "pkg_upgrade" | -| | | | -+---------------+-----------+-------------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: pkg_info, pkg - -.. _Package Information: - -Package Information -=================== - -The "pkg_info" action reads the pkg database directly and returns any -relevant information. The following arguments are optional: - -* **"repo"**: Unless specified, defaults to the local package repository. - -* **"pkg_origins"**: Unless specified, information for all installed - packages will be listed. - -* **"category"**: Limits the results to packages within the specified - category. - -* **"result"**: Must be set to "full" to retrieve all of the information - with multiple possible values, such as "dependencies", "options", and - "licences". - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "pkg_origins" : [ - "x11/lumina" - ], - "repo" : "local", - "action" : "pkg_info" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "pkg", - "namespace" : "sysadm", - "args" : { - "repo" : "local", - "action" : "pkg_info", - "pkg_origins" : [ - "x11/lumina" - ] - }, - "id" : "fooid" - } - -**Response** - -:: - - { - "args": { - "pkg_info": { - "x11/lumina": { - "arch": "FreeBSD:11:amd64", - "automatic": "0", - "comment": "Lumina Desktop Environment", - "dep_formula": "", - "dependencies": [ - "x11-toolkits/qt5-gui", - "x11/qt5-x11extras", - "x11-wm/fluxbox", - "x11/libXdamage", - "devel/qt5-linguist", - "x11/numlockx" - ], - "desc": "Lumina-DE is a lightweight, BSD licensed desktop environment.", - "files": [ - "/usr/local/share/licenses/lumina-0.8.8_2,1/catalog.mk", - "/usr/local/share/licenses/lumina-0.8.8_2,1/LICENSE", - "/usr/local/share/licenses/lumina-0.8.8_2,1/BSD3CLAUSE", - "/usr/local/bin/Lumina-DE", - "/usr/local/bin/lumina-config", - "/usr/local/bin/lumina-fileinfo", - "/usr/local/bin/lumina-fm", - "/usr/local/bin/lumina-info", - "/usr/local/bin/lumina-open", - "/usr/local/bin/lumina-screenshot", - "/usr/local/bin/lumina-search", - "/usr/local/bin/lumina-xconfig", - "/usr/local/etc/luminaDesktop.conf.dist", - "/usr/local/include/LuminaOS.h" - ], - "flatsize": "12324767", - "icon": "\\\"http://www.pcbsd.org/appcafe/icons/x11_lumina.png\\\"", - "id": "2541", - "licenselogic": "1", - "licenses": [ - "BSD3CLAUSE" - ], - "locked": "0", - "maintainer": "kmoore@FreeBSD.org", - "manifestdigest": "2$0$4ypg5zrco9upyuioczmo3uwbtdd5yart7xuit6fx3gjrn1k979qb", - "message": "The Lumina Desktop Environment has been installed!", - "mtree_id": "", - "name": "lumina", - "options": { - "MULTIMEDIA": "on", - "PCBSD": "on" - }, - "origin": "x11/lumina", - "pkg_format_version": "", - "prefix": "/usr/local", - "repo_type": "binary", - "repository": "pcbsd-major", - "screen1": "\\\"http://www.pcbsd.org/appcafe/screenshots/x11/lumina/screen1.png\\\"", - "shlibs_provided": [ - "libLuminaUtils.so.1" - ], - "shlibs_required": [ - "libxcb.so.1", - "libxcb-composite.so.0", - "libxcb-damage.so.0", - "libXdamage.so.1", - "libxcb-util.so.1", - "libGL.so.1" - ], - "time": "1458334158", - "version": "0.8.8_2,1", - "www": "http://lumina-desktop.org" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: pkg_search, pkg - -.. _Search Packages: - -Search Packages -=============== - -The "pkg_search" action searches the package database for pkgs which -match the given "search_term" (required). These parameters are optional: - -* **"repo"**: May be used to specify searching the specified repository. - If not specified, the local package database is searched. - -* **"category"**: May be used to restrict searches to the specified - package category. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "repo" : "pcbsd-major", - "category" : "www", - "action" : "pkg_search", - "search_term" : "fire", - "search_excludes" : ["", ""] - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "name" : "pkg", - "args" : { - "action" : "pkg_search", - "search_term" : "fire", - "search_excludes" : ["", ""], - "category" : "www", - "repo" : "pcbsd-major" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "pkg_search": { - "results_order" : ["www/firefox", "www/firefox-esr", "www/firefox-esr-i18n", "www/firefox-pulse"], - "www/firefox": { - "arch": "FreeBSD:11:amd64", - "cksum": "cc72c379afbd66d152cf06b7d2a14ada413f338071ecb9b084899c94d39f951e", - "comment": "Web browser based on the browser portion of Mozilla", - "cpe": "cpe:2.3:a:mozilla:firefox:45.0:::::freebsd11:x64:1", - "dep_formula": "", - "desc": "Mozilla Firefox is a free and open source web browser descended from the\nMozilla Application Suite. It is small, fast and easy to use, and offers\nmany advanced features:\n\n o Popup Blocking\n o Tabbed Browsing\n o Live Bookmarks (ie. RSS)\n o Extensions\n o Themes\n o FastFind\n o Improved Security\n\nWWW: http://www.mozilla.com/firefox", - "flatsize": "96435169", - "icon": "\\\\\\\"http://www.pcbsd.org/appcafe/icons/www_firefox.png\\\\\\\"", - "id": "12147", - "licenselogic": "1", - "maintainer": "gecko@FreeBSD.org", - "manifestdigest": "2$0$hcbb9x7urbs9nw1e44chw9bwxn339983b6q9mixxdn5ghdwuh9ny", - "name": "firefox", - "no_provide_shlib": "yes", - "olddigest": "", - "origin": "www/firefox", - "osversion": "", - "path": "All/firefox-45.0_1,1.txz", - "pkg_format_version": "", - "pkgsize": "39935776", - "prefix": "/usr/local", - "screen1": "\\\\\\\"http://www.pcbsd.org/appcafe/screenshots/www/firefox/screen1.png\\\\\\\"", - "screen2": "\\\\\\\"http://www.pcbsd.org/appcafe/screenshots/www/firefox/screen2.png\\\\\\\"", - "version": "45.0_1,1", - "www": "http://www.mozilla.com/firefox" - }, - "www/firefox-esr": { - "arch": "FreeBSD:11:amd64", - "cksum": "811545c4da089b52db54ddee04af2ea8c439eb12e708f478b09141cdcca7aec5", - "comment": "Web browser based on the browser portion of Mozilla", - "cpe": "cpe:2.3:a:mozilla:firefox_esr:38.7.0:::::freebsd11:x64", - "dep_formula": "", - "desc": "Mozilla Firefox is a free and open source web browser descended from the\nMozilla Application Suite. It is small, fast and easy to use, and offers\nmany advanced features:\n\n o Popup Blocking\n o Tabbed Browsing\n o Live Bookmarks (ie. RSS)\n o Extensions\n o Themes\n o FastFind\n o Improved Security\n\nWWW: http://www.mozilla.com/firefox", - "flatsize": "86940998", - "icon": "\\\\\\\"http://www.pcbsd.org/appcafe/icons/www_firefox-esr.png\\\\\\\"", - "id": "656", - "licenselogic": "1", - "maintainer": "gecko@FreeBSD.org", - "manifestdigest": "2$0$km1kyyxoae47gyhp9gx7wz7pcnsn6jnc8yxgpz63iyynaxi7ia8y", - "name": "firefox-esr", - "no_provide_shlib": "yes", - "olddigest": "", - "origin": "www/firefox-esr", - "osversion": "", - "path": "All/firefox-esr-38.7.0,1.txz", - "pkg_format_version": "", - "pkgsize": "36352676", - "prefix": "/usr/local", - "version": "38.7.0,1", - "www": "http://www.mozilla.com/firefox" - }, - "www/firefox-esr-i18n": { - "arch": "FreeBSD:11:*", - "cksum": "c389f2960fa77548435e0b905b3ef6ddb48957b76c2d8346de1f9f97dd7b23ca", - "comment": "Localized interface for Firefox", - "dep_formula": "", - "desc": "Language packs for Firefox\n\nWWW: http://www.mozilla.org/projects/l10n/", - "flatsize": "102671800", - "id": "17350", - "licenselogic": "1", - "maintainer": "gecko@FreeBSD.org", - "manifestdigest": "2$0$wzmx16rcynpdej5eckeg6c8w8z6r7oha86cmjfth4pnfu9iojdmb", - "name": "firefox-esr-i18n", - "olddigest": "", - "origin": "www/firefox-esr-i18n", - "osversion": "", - "path": "All/firefox-esr-i18n-38.7.0.txz", - "pkg_format_version": "", - "pkgsize": "10449532", - "prefix": "/usr/local", - "version": "38.7.0", - "www": "http://www.mozilla.org/projects/l10n/" - }, - "www/firefox-i18n": { - "arch": "FreeBSD:11:*", - "cksum": "11ca74215bb2c9032a316692b02d4b675cc2102b0e6c9c9f79e85cb6a292e689", - "comment": "Localized interface for Firefox", - "dep_formula": "", - "desc": "Language packs for Firefox\n\nWWW: http://www.mozilla.org/projects/l10n/", - "flatsize": "107852121", - "id": "11462", - "licenselogic": "1", - "maintainer": "gecko@FreeBSD.org", - "manifestdigest": "2$0$hozjo4sqt3kn4rqak7hfr4zubt3yahigcnhmbwad7xtuqt1qxntb", - "name": "firefox-i18n", - "olddigest": "", - "origin": "www/firefox-i18n", - "osversion": "", - "path": "All/firefox-i18n-45.0.txz", - "pkg_format_version": "", - "pkgsize": "10295024", - "prefix": "/usr/local", - "version": "45.0", - "www": "http://www.mozilla.org/projects/l10n/" - }, - "www/firefox-pulse": { - "arch": "FreeBSD:11:amd64", - "cksum": "76bcc4096c378a647c4517ab8fac64d3ecbf2c08a1e47ab0eb9061d95d86c195", - "comment": "Web browser based on the browser portion of Mozilla", - "cpe": "cpe:2.3:a:mozilla:firefox:45.0:::::freebsd11:x64:1", - "dep_formula": "", - "desc": "Mozilla Firefox is a free and open source web browser descended from the\nMozilla Application Suite. It is small, fast and easy to use, and offers\nmany advanced features:\n\n o Popup Blocking\n o Tabbed Browsing\n o Live Bookmarks (ie. RSS)\n o Extensions\n o Themes\n o FastFind\n o Improved Security\n\nWWW: http://www.mozilla.com/firefox", - "flatsize": "96438909", - "icon": "\\\\\\\"http://www.pcbsd.org/appcafe/icons/www_firefox-pulse.png\\\\\\\"", - "id": "5534", - "licenselogic": "1", - "maintainer": "gecko@FreeBSD.org", - "manifestdigest": "2$0$8mb8qqmcqu3ja8uy4x9nqgyeennjemumrb1q6ugyege76i4rdefb", - "name": "firefox-pulse", - "no_provide_shlib": "yes", - "olddigest": "", - "origin": "www/firefox-pulse", - "osversion": "", - "path": "All/firefox-pulse-45.0_1,1.txz", - "pkg_format_version": "", - "pkgsize": "39959876", - "prefix": "/usr/local", - "screen1": "\\\\\\\"http://www.pcbsd.org/appcafe/screenshots/www/firefox/screen1.png\\\\\\\"", - "screen2": "\\\\\\\"http://www.pcbsd.org/appcafe/screenshots/www/firefox/screen2.png\\\\\\\"", - "version": "45.0_1,1", - "www": "http://www.mozilla.com/firefox" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: list_categories, pkg - -.. _List Categories: - -List Categories -=============== - -The "list_categories" action lists all the known, non-empty categories -within the specified repository or, if no repository is specified, the -local repository. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "repo" : "local", - "action" : "list_categories" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "list_categories", - "repo" : "local" - }, - "namespace" : "sysadm", - "name" : "pkg" - } - -**Response** - -.. code-block:: json - - { - "args": { - "list_categories": [ - "ports-mgmt", - "x11", - "gnome", - "textproc", - "devel", - "python", - "misc", - "print", - "graphics", - "security", - "x11-fonts", - "lang", - "ipv6", - "perl5", - "converters", - "math", - "x11-toolkits", - "sysutils", - "dns", - "net", - "accessibility", - "databases", - "shells", - "x11-themes", - "multimedia", - "audio", - "www", - "ftp", - "net-im", - "archivers", - "comms", - "java", - "deskutils", - "kde", - "mail", - "editors", - "emulators", - "games", - "irc", - "japanese", - "news", - "x11-servers", - "tk", - "net-mgmt", - "ruby", - "x11-drivers", - "x11-wm", - "x11-clocks", - "kld", - "tcl", - "enlightenment", - "linux" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: list_repos, pkg - -.. _List Repositories: - -List Repositories -================= - -The "list_repositories" action scans the package repository configuration -files and returns the names of the available repositories. All of the -repositories returned by this action are valid as the optional "repo" -argument for the other pkg API actions. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "action" : "list_repos" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "name" : "pkg", - "args" : { - "action" : "list_repos" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "list_repos": [ - "local", - "pcbsd-major" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: pkg_audit, pkg - -.. _Audit Packages: - -Audit Packages -============== - -The "pkg_audit" action performs an audit of all installed packages and -reports any packages with known vulnerabilities as well as other -packages which are impacted by those vulnerabilities. - -.. note:: The vulnerability information will be returned as a dispatcher - event as this action just queues up the results of the :command:`pkg` - operation. This is due to a limitation of :command:`pkg`, as it only - supports one process call at a time. Refer to the - :ref:`Dispatcher Subsystem` for instructions on how to subscribe to - and query dispatcher events. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "action" : "pkg_audit" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "pkg_audit" - }, - "name" : "pkg", - "id" : "fooid", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "pkg_audit": { - "proc_cmd": "pkg audit -qr", - "proc_id": "sysadm_pkg_audit-{257cc46b-9178-4990-810a-12416ddfad79}", - "status": "pending" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -**Dispatcher Events System Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "sysadm/pkg", - "state" : "finished", - "pkg_log" : "", - "action" : "pkg_audit", - "process_details" : { - "time_finished" : "", - "cmd_list" : ["", ""], - "return_codes/" : "", - "return_codes/" : "", - "process_id" : "", - "state" : "finished" - } - } - } - -.. index:: pkg_upgrade, pkg - -.. _Upgrade Packages: - -Upgrade Packages -================ - -The "pkg_upgrade" action upgrades all currently installed packages. The -messages from the upgrade will be returned as a dispatcher event. Refer -to the :ref:`Dispatcher Subsystem` for instructions on how to subscribe -to and query dispatcher events. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "action" : "pkg_upgrade" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "pkg_upgrade" - }, - "name" : "pkg", - "namespace" : "sysadm", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "pkg_upgrade": { - "proc_cmd": "pkg upgrade -y", - "proc_id": "sysadm_pkg_upgrade-{19ace7c9-0d83-4a0d-9249-0b56cb105762}", - "status": "pending" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -**Dispatcher Events System Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "sysadm/pkg", - "state" : "finished", - "pkg_log" : "", - "action" : "pkg_upgrade", - "process_details" : { - "time_finished" : "", - "cmd_list" : ["", ""], - "return_codes/" : "", - "return_codes/" : "", - "process_id" : "", - "state" : "finished" - } - } - } - -.. index:: pkg_check_upgrade, pkg - -.. _Check Packages: - -Check Packages -============== - -The "pkg_check_upgrade" action checks to see if there are any package -updates available and returns that information as a dispatcher event. -Refer to the :ref:`Dispatcher Subsystem` for instructions on how to -subscribe to and query dispatcher events. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "action" : "pkg_check_upgrade" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "pkg_check_upgrade" - }, - "namespace" : "sysadm", - "name" : "pkg", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "pkg_check_upgrade": { - "proc_cmd": "pkg upgrade -n", - "proc_id": "sysadm_pkg_check_upgrade-{c5e9d9a1-7c49-4a70-9d7c-4a84277c83b0}", - "status": "pending" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -**Dispatcher Events System Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "sysadm/pkg", - "state" : "finished", - "pkg_log" : "", - "action" : "pkg_check_upgrade", - "updates_available" : "true/false", - "process_details" : { - "time_finished" : "", - "cmd_list" : ["", ""], - "return_codes/" : "", - "return_codes/" : "", - "process_id" : "", - "state" : "finished" - } - } - } - -.. index:: pkg_update, pkg - -.. _Update Package Database: - -Update Package Database -======================= - -The "pkg_update" action instructs :command:`pkg` to update its databases. -This action is typically not required. It returns any information as a -dispatcher event. Refer to the :ref:`Dispatcher Subsystem` for -instructions on how to subscribe to and query dispatcher events. - -If you include "force" = "true", it forces :command:`pkg` to completely -resync all of its databases with all known repositories which may take -some time. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "force" : "true", - "action" : "pkg_update" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "pkg", - "namespace" : "sysadm", - "args" : { - "force" : "true", - "action" : "pkg_update" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "pkg_update": { - "proc_cmd": "pkg update -f", - "proc_id": "sysadm_pkg_update-{8d65bbc5-fefc-4f34-8743-167e61a54c4c}", - "status": "pending" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -**Dispatcher Events System Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "sysadm/pkg", - "state" : "finished", - "pkg_log" : "", - "action" : "pkg_update", - "process_details" : { - "time_finished" : "", - "cmd_list" : ["", ""], - "return_codes/" : "", - "return_codes/" : "", - "process_id" : "", - "state" : "finished" - } - } - } - -.. index:: pkg_lock, pkg_unlock, pkg - -.. _LockUnlock Packages: - -Lock/Unlock Packages -==================== - -The "pkg_lock" action locks the specified "pkg_origins" so that it will -be skipped during a package upgrade and remain at its current version. -When using "pkg_origins", specify either a single package origin string -or an array of package origins. - -The "pkg_unlock" action unlocks the previously locked "pkg_origins" so -that it is no longer skipped during a package upgrade. - -Both actions return any information as a dispatcher event. Refer to the -:ref:`Dispatcher Subsystem` for instructions on how to subscribe to and -query dispatcher events. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "pkg_origins" : [ - "misc/pcbsd-base" - ], - "action" : "pkg_lock" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "id" : "fooid", - "name" : "pkg", - "args" : { - "pkg_origins" : [ - "misc/pcbsd-base" - ], - "action" : "pkg_lock" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "pkg_lock": { - "proc_cmd": "pkg lock -y misc/pcbsd-base", - "proc_id": "sysadm_pkg_lock-{352f7f66-d036-4c16-8978-67950957bf22}", - "status": "pending" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -**Dispatcher Events System Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "sysadm/pkg", - "state" : "finished", - "pkg_log" : "", - "action" : "pkg_lock", - "process_details" : { - "time_finished" : "", - "cmd_list" : ["", ""], - "return_codes/" : "", - "return_codes/" : "", - "process_id" : "", - "state" : "finished" - } - } - } - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "action" : "pkg_unlock", - "pkg_origins" : "misc/pcbsd-base" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "pkg_unlock", - "pkg_origins" : "misc/pcbsd-base" - }, - "name" : "pkg", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "pkg_unlock": { - "proc_cmd": "pkg unlock -y misc/pcbsd-base", - "proc_id": "sysadm_pkg_unlock-{d1771b41-c1ca-480a-a3ce-42d4eddbfae8}", - "status": "pending" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -**Dispatcher Events System Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "sysadm/pkg", - "state" : "finished", - "pkg_log" : "", - "action" : "pkg_unlock", - "process_details" : { - "time_finished" : "", - "cmd_list" : ["", ""], - "return_codes/" : "", - "return_codes/" : "", - "process_id" : "", - "state" : "finished" - } - } - } - -.. index:: pkg_install, pkg - -.. _Install Packages: - -Install Packages -================ - -The "pkg_install" action installs the specified "pkg_origins" on the -system. When using "pkg_origins", specify either a single package origin -string or an array of package origins. Unless the "repo" is specified, -:command:`pkg` will automatically determine the repository. The install -messages will be returned as a dispatcher event. Refer to the -:ref:`Dispatcher Subsystem` for instructions on how to subscribe to and -query dispatcher events. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "pkg_origins" : "games/angband", - "action" : "pkg_install", - "repo" : "pcbsd-major" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "pkg", - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "action" : "pkg_install", - "pkg_origins" : "games/angband", - "repo" : "pcbsd-major" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "pkg_install": { - "proc_cmd": "pkg install -y --repository \"pcbsd-major\" games/angband", - "proc_id": "sysadm_pkg_install-{ae444472-47df-4a65-91eb-013cc82ce4ad}", - "status": "pending" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -**Dispatcher Events System Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "sysadm/pkg", - "state" : "finished", - "pkg_log" : "", - "action" : "pkg_install", - "process_details" : { - "time_finished" : "", - "cmd_list" : ["", ""], - "return_codes/" : "", - "return_codes/" : "", - "process_id" : "", - "state" : "finished" - } - } - } - -.. index:: pkg_remove, pkg - -.. _Uninstall Packages: - -Uninstall Packages -================== - -The "pkg_remove" action uninstalls the specified "pkg_origins" from the -system. When using "pkg_origins", specify either a single package origin -string or an array of package origins. - -The optional "recursive" argument can be set to "true" or "false". The -default is "true", which means that other packages which depend on this -package will also be removed so that there are no broken dependencies. - -The uninstall messages will be returned as a dispatcher event. Refer to -the :ref:`Dispatcher Subsystem` for instructions on how to subscribe to -and query dispatcher events. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "recursive" : "false", - "action" : "pkg_remove", - "pkg_origins" : "games/angband" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "pkg", - "namespace" : "sysadm", - "args" : { - "action" : "pkg_remove", - "recursive" : "false", - "pkg_origins" : "games/angband" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "pkg_remove": { - "proc_cmd": "pkg delete -y games/angband", - "proc_id": "sysadm_pkg_remove-{2aa844aa-f6a8-4e8f-ae71-b56af735ccb8}", - "status": "pending" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -**Dispatcher Events System Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "sysadm/pkg", - "state" : "finished", - "pkg_log" : "", - "action" : "pkg_remove", - "process_details" : { - "time_finished" : "", - "cmd_list" : ["", ""], - "return_codes/" : "", - "return_codes/" : "", - "process_id" : "", - "state" : "finished" - } - } - } - -.. index:: pkg_autoremove, pkg - -.. _Prune Packages: - -Prune Packages -============== - -The "pkg_autoremove" action prunes all orphaned packages on the system. - -**REST Request** - -:: - - PUT /sysadm/pkg - { - "action" : "pkg_autoremove" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "pkg_autoremove" - }, - "name" : "pkg", - "namespace" : "sysadm", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "pkg_autoremove": { - "proc_cmd": "pkg autoremove -y", - "proc_id": "sysadm_pkg_autoremove-{19ace7c9-0d83-4a0d-9249-0b56cb105762}", - "status": "pending" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/classes/services.rst b/docs/api_reference/classes/services.rst deleted file mode 100644 index e537275..0000000 --- a/docs/api_reference/classes/services.rst +++ /dev/null @@ -1,352 +0,0 @@ -.. _services: - -services -******** - -The services class manages all the background daemons on the system. - -Every services class request contains several parameters: - -+----------------+------------+---------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+================+============+=======================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+----------------+------------+---------------------------------------+ -| name | services | | -| | | | -+----------------+------------+---------------------------------------+ -| namespace | sysadm | | -| | | | -+----------------+------------+---------------------------------------+ -| action | | Actions include "disable", "enable", | -| | | "list_services", "restart", "start", | -| | | and "stop" | -+----------------+------------+---------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: disable, services - -.. _disable: - -Disable -======= - -The :command:`disable` command will tag the service to no longer -startup upon (re)booting the system. - -**REST Request** - -:: - - PUT /sysadm/services - { - "action": "disable", - "services": [ - "cupsd" - ] - } - -**WebSocket Request** - -.. code-block:: json - - { - "args": { - "action": "disable", - "services": [ - "cupsd" - ] - }, - "name" : "services", - "id" : "fooid", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "services_disabled": [ - "cupsd" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - - -.. index:: enable, services - -.. _enable: - -Enable -====== - -The :command:`enable` command will mark the service for startup upon -(re)booting the system. - -**REST Request** - -:: - - PUT /sysadm/services - { - "action": "enable", - "services": [ - "cupsd" - ] - } - -**WebSocket Request** - -.. code-block:: json - - { - "args": { - "action": "enable", - "services": [ - "cupsd" - ] - }, - "name" : "services", - "id" : "fooid", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "services_enabled": [ - "cupsd" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - - -.. index:: list_services, services - -.. _list services: - -List Services -============= - -The list_services action returns a list of all services available on -the system. - -.. note:: The response message has been shortened for the example. - Many more services will be typically listed. - -**REST Request** - -:: - - PUT /sysadm/services - { - "action" : "list_services" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "list_services" - }, - "id" : "fooid", - "namespace" : "sysadm", - "name" : "services" - } - -**Response** - -.. code-block:: json - - { - "args": { - "services": { - "accounting": { - "description": "", - "is_enabled": "false", - "name": "accounting", - "path": "/etc/rc.d/accounting", - "tag": "accounting_enable", - "is_running": "false" - }, - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: restart, services - -.. _restart: - -Restart -======= - -:command:`restart` will stop, then immediately start the specified -service(s). - -**REST Request** - -:: - - PUT /sysadm/services - { - "action": "restart", - "services": [ - "cupsd" - ] - } - -**WebSocket Request** - -.. code-block:: json - - { - "args": { - "action": "restart", - "services": [ - "cupsd" - ] - }, - "name" : "services", - "id" : "fooid", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "services_restarted": [ - "cupsd" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: start, services - -.. _start: - -Start -===== - -The :command:`start` command will start a specified service(s). - -**REST Request** - -:: - - PUT /sysadm/services - { - "action": "start", - "services": [ - "cupsd" - ] - } - -**WebSocket Request** - -.. code-block:: json - - { - "args": { - "action": "start", - "services": [ - "cupsd" - ] - }, - "name" : "services", - "id" : "fooid", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "services_started": [ - "cupsd" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - - -.. index:: stop, services - -.. _stop: - -Stop -==== - -The :command:`stop` command will halt a specified service(s). - -**REST Request** - -:: - - PUT /sysadm/services - { - "action": "stop", - "services": [ - "cupsd" - ] - } - -**WebSocket Request** - -.. code-block:: json - - { - "args": { - "action": "stop", - "services": [ - "cupsd" - ] - }, - "name" : "services", - "id" : "fooid", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "services_stopped": [ - "cupsd" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/classes/systemmanager.rst b/docs/api_reference/classes/systemmanager.rst deleted file mode 100644 index 5144e25..0000000 --- a/docs/api_reference/classes/systemmanager.rst +++ /dev/null @@ -1,839 +0,0 @@ -.. _systemmanager: - -systemmanager -************* - -The systemmanager class is used to retrieve information about the system. -Every systemmanager class request contains several parameters: - -+---------------+---------------+---------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===============+=======================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+---------------+---------------------------------------+ -| name | systemmanager | | -| | | | -+---------------+---------------+---------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+---------------+---------------------------------------+ -| action | | Actions include "batteryinfo", | -| | | "cpupercentage", "cputemps", | -| | | "externalmounts", "halt", "killproc", | -| | | "memorystats", "procinfo", "reboot", | -| | | "setsysctl", "sysctllist", and | -| | | "systemmanager" | -+---------------+---------------+---------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: memorystats, systemmanager - -.. _Memory Statistics: - -Memory Statistics -================= - -The "memorystats" action returns memory statistics, including the amount -of active, cached, free, inactive, and total physical (wired) memory. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "action" : "memorystats" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "memorystats": { - "active": "818", - "cache": "69", - "free": "4855", - "inactive": "2504", - "wired": "1598" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "memorystats" - }, - "namespace" : "sysadm", - "name" : "systemmanager" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "memorystats": { - "active": "826", - "cache": "69", - "free": "4847", - "inactive": "2505", - "wired": "1598" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: cpupercentage, systemmanager - -.. _CPU Usage: - -CPU Usage -========= - -The "cpupercentage" action returns the usage percentage of each CPU. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "action" : "cpupercentage" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "cpupercentage": { - "busytotal": "28", - "cpu1": { - "busy": "28" - }, - "cpu2": { - "busy": "31" - }, - "cpu3": { - "busy": "29" - }, - "cpu4": { - "busy": "24" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "cpupercentage" - }, - "name" : "systemmanager", - "id" : "fooid", - "namespace" : "sysadm" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "cpupercentage": { - "busytotal": "28", - "cpu1": { - "busy": "28" - }, - "cpu2": { - "busy": "31" - }, - "cpu3": { - "busy": "29" - }, - "cpu4": { - "busy": "24" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: cputemps, systemmanager - -.. _CPU Temperature: - -CPU Temperature -=============== - -The "cputemps" action returns the temperature of each CPU. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "action" : "cputemps" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "cputemps": { - "cpu0": "27.0C", - "cpu1": "34.0C", - "cpu2": "33.0C", - "cpu3": "31.0C" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "cputemps" - }, - "id" : "fooid", - "name" : "systemmanager", - "namespace" : "sysadm" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "cputemps": { - "cpu0": "34.0C", - "cpu1": "32.0C", - "cpu2": "34.0C", - "cpu3": "31.0C" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: procinfo, systemmanager - -.. _Process Information: - -Process Information -=================== - -The "procinfo" action lists information about each running process. -Since a system will have many running processes, the responses in this -section only show one process as an example of the type of information -listed by this action. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "action" : "procinfo" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "procinfo": { - "228": { - "command": "adjkerntz", - "cpu": "3", - "nice": "0", - "pri": "52", - "res": "1968K", - "size": "8276K", - "state": "pause", - "thr": "1", - "time": "0:00", - "username": "root", - "wcpu": "0.00%" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "name" : "systemmanager", - "args" : { - "action" : "procinfo" - } - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "procinfo": { - "228": { - "command": "adjkerntz", - "cpu": "3", - "nice": "0", - "pri": "52", - "res": "1968K", - "size": "8276K", - "state": "pause", - "thr": "1", - "time": "0:00", - "username": "root", - "wcpu": "0.00%" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: killproc, systemmanager - -.. _Kill a Process: - -Kill a Process -============== - -The "killproc" action can be used to send a specified signal to the -specified Process ID (PID). The following signals are supported: INT, -QUIT, ABRT, KILL, ALRM, or TERM. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "signal" : "KILL", - "pid" : "13939", - "action" : "killproc" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "killproc": { - "action": "killproc", - "pid": "13939", - "signal": "KILL" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "args" : { - "pid" : "13939", - "action" : "killproc", - "signal" : "KILL" - }, - "id" : "fooid", - "name" : "systemmanager" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "killproc": { - "action": "killproc", - "pid": "13939", - "signal": "KILL" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: batteryinfo, systemmanager - -.. _Battery Information: - -Battery Information -=================== - -The "batteryinfo" action will indicate whether or not a battery exists. -If it does, it will also report its current charge percentage level -(1-99), its status (offline, charging, on backup, or unknown), and -estimated time left (in seconds). - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "action" : "batteryinfo" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "batteryinfo": { - "battery": "false" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "systemmanager", - "id" : "fooid", - "args" : { - "action" : "batteryinfo" - } - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "batteryinfo": { - "battery": "false" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: externalmounts, systemmanager - -.. _List External Mounts: - -List External Mounts -==================== - -The "externalmounts" action returns a list of mounted external devices. -Supported device types are UNKNOWN, USB, HDRIVE (external hard drive), -DVD, and SDCARD. For each mounted device, the response will include the -device name, filesystem, mount path, and device type. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "action" : "externalmounts" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "externalmounts": { - "/dev/fuse": { - "filesystem": "fusefs", - "path": "/usr/home/kris/.gvfs", - "type": "UNKNOWN" - } - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "name" : "systemmanager", - "args" : { - "action" : "externalmounts" - } - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "externalmounts": { - "/dev/fuse": { - "filesystem": "fusefs", - "path": "/usr/home/kris/.gvfs", - "type": "UNKNOWN" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: systemmanager - -.. _System Information: - -System Information -================== - -The "systemmanager" action lists system information, including the -architecture, number of CPUs, type of CPU, hostname, kernel name and -version, system version and patch level, total amount of RAM, and the -system's uptime. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "action" : "systemmanager" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "systemmanager": { - "arch": "amd64", - "cpucores": "4", - "cputype": "Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz", - "hostname": "krisdesktop", - "kernelident": "GENERIC", - "kernelversion": "10.2-RELEASE-p11", - "systemversion": "10.2-RELEASE-p12", - "totalmem": 10720, - "uptime": "up 2 days 5:09" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "systemmanager" - }, - "id" : "fooid", - "name" : "systemmanager", - "namespace" : "sysadm" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "systemmanager": { - "arch": "amd64", - "cpucores": "4", - "cputype": "Intel(R) Xeon(R) CPU E3-1220 v3 @ 3.10GHz", - "hostname": "krisdesktop", - "kernelident": "GENERIC", - "kernelversion": "10.2-RELEASE-p11", - "systemversion": "10.2-RELEASE-p12", - "totalmem": 10720, - "uptime": "up 2 days 5:09" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: sysctllist, systemmanager - -.. _List Sysctls: - -List Sysctls -============ - -The "sysctllist" action lists returns the list of all configurable -sysctl values. Since there are many, the example responses in this -section have been truncated. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "action" : "sysctllist" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "sysctllist": { - "compat.ia32.maxdsiz": "536870912", - "compat.ia32.maxssiz": "67108864", - "compat.ia32.maxvmem": "0", - "compat.linux.osname": "Linux", - "compat.linux.osrelease": "2.6.18", - "compat.linux.oss_version": "198144", - "compat.linux32.maxdsiz": "536870912", - "compat.linux32.maxssiz": "67108864", - "compat.linux32.maxvmem": "0", - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "systemmanager", - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "action" : "sysctllist" - } - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "sysctllist": { - "compat.ia32.maxdsiz": "536870912", - "compat.ia32.maxssiz": "67108864", - "compat.ia32.maxvmem": "0", - "compat.linux.osname": "Linux", - "compat.linux.osrelease": "2.6.18", - "compat.linux.oss_version": "198144", - "compat.linux32.maxdsiz": "536870912", - "compat.linux32.maxssiz": "67108864", - "compat.linux32.maxvmem": "0", - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: setsysctl, systemmanager - -.. _Set a Sysctl: - -Set a Sysctl -============ - -The "setsysctl" action sets the specified configurable sysctl to the -specified value. The response indicates that the old value was changed -to the new value. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "value" : "0", - "sysctl" : "security.jail.mount_devfs_allowed", - "action" : "setsysctl" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "setsysctl": { - "response": "security.jail.mount_devfs_allowed: 1 -> 0", - "sysctl": "security.jail.mount_devfs_allowed", - "value": "0" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "value" : "0", - "action" : "setsysctl", - "sysctl" : "security.jail.mount_devfs_allowed" - }, - "name" : "systemmanager", - "namespace" : "sysadm", - "id" : "fooid" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "setsysctl": { - "response": "security.jail.mount_devfs_allowed: 1 -> 0", - "sysctl": "security.jail.mount_devfs_allowed", - "value": "0" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: halt, systemmanager - -.. _Halt the System: - -Halt the System -=============== - -The "halt" action shuts down the system. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "action" : "halt" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "halt" - }, - "name" : "systemmanager", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "halt": { - "response": "true" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: reboot, systemmanager - -.. _Reboot the System: - -Reboot the System -================= - -The "reboot" action reboots the system. - -**REST Request** - -:: - - PUT /sysadm/systemmanager - { - "action" : "reboot" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "args" : { - "action" : "reboot" - }, - "name" : "systemmanager", - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "reboot": { - "response": "true" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/classes/updates.rst b/docs/api_reference/classes/updates.rst deleted file mode 100644 index 7db85f9..0000000 --- a/docs/api_reference/classes/updates.rst +++ /dev/null @@ -1,390 +0,0 @@ -.. _update: - -update -****** - -The update class is used to check for and manage system and software -updates. - -Every update class request contains several parameters: - -+----------------+------------+---------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+================+============+=======================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+----------------+------------+---------------------------------------+ -| name | update | | -| | | | -+----------------+------------+---------------------------------------+ -| namespace | sysadm | | -| | | | -+----------------+------------+---------------------------------------+ -| action | | Actions include "changesettings", | -| | | "checkupdates", "listbranches", | -| | | "listsettings", "startupdate", | -| | | "stopupdate" | -+----------------+------------+---------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: changesettings, update - -.. _Change Settings: - -Change Settings -=============== - -Use :command:`changesettings` to change the various updatemanager -settings (maxbe, package_set, package_url, auto_update). - -**REST Request** - -:: - - PUT /sysadm/update - { - "action" : "changesettings", - "maxbe" : "6" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "update", - "namespace" : "sysadm", - "args" : { - "maxbe" : "6", - "action" : "changesettings" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "changesettings": { - "result": "success" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: checkupdates, update - -.. _Check for Updates: - -Check for Updates -================= - -The "checkupdates" action queries the update server to see if any -updates are available. If an update is available, the response will -indicate if it is a system security update, an upgrade to a newer -version of the operating system, a system patch, or an update to -installed software packages. - -**REST Request** - -:: - - PUT /sysadm/update - { - "action" : "checkupdates" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "last_check" : "", - "checkupdates": { - "status": "updatesavailable", - "details": "" - }, - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "update", - "args" : { - "action" : "checkupdates", - "force":"[true/false]" - }, - "namespace" : "sysadm", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "last_check" : "", - "checkupdates": { - "status": "updatesavailable", - "details": "" - }, - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: listbranches, update - -.. _List Branches: - -List Branches -============= - -The "listbranches" action retrieves the list of available branches -(operating system versions). The currently installed version will be -listed as "active". - -**REST Request** - -:: - - PUT /sysadm/update - { - "action" : "listbranches" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "listbranches": { - "10.2-RELEASE": "active", - "11.0-CURRENTJAN2016": "available" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "listbranches" - }, - "namespace" : "sysadm", - "name" : "update", - "id" : "fooid" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "listbranches": { - "10.2-RELEASE": "active", - "11.0-CURRENTJAN2016": "available" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: listsettings, update - -.. _List Settings: - -List Settings -============= - -:command:`listsettings` shows all of the current settings. - -**REST Request** - -:: - - PUT /sysadm/update - { - "action" : "listsettings" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "listsettings" - }, - "id" : "fooid", - "namespace" : "sysadm", - "name" : "update" - } - -**Response** - -.. code-block:: json - - { - "args": { - "listsettings": { - "maxbe": " 5", - "package_set": " EDGE" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: startupdate, update - -.. _Start Updates: - -Start Updates -============= - -The "startupdate" action starts the specified update. You must specify a -"target" to indicate the type of update to perform. The available -targets are: - -* **chbranch:** Will update to the specified "branch" (operating system - version). You can determine which branches are available by using the - "listbranches" action. - -* **pkgupdate:** Only updates installed software. - -* **standalone:** Only apply the update specified as a "tag". Use the - "checkupdates" action to determine the name (tag) of the update to - specify. - -**REST Request** - -:: - - PUT /sysadm/update - { - "action" : "startupdate", - "target" : "pkgupdate" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "startupdate": { - "queueid": "611c89ae-c43c-11e5-9602-54ee75595566", - "command": "pc-updatemanager pkgupdate", - "comment": "Task Queued" - } - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "startupdate", - "target" : "pkgupdate" - }, - "name" : "update", - "id" : "fooid", - "namespace" : "sysadm" - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "startupdate": { - "queueid": "611c89ae-c43c-11e5-9602-54ee75595566", - "command": "pc-updatemanager pkgupdate", - "comment": "Task Queued" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -**Dispatcher Events System Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "sysadm/update", - "state" : "finished", - "update_log" : "", - "process_details" : { - "time_finished" : "", - "cmd_list" : ["", ""], - "return_codes/" : "", - "return_codes/" : "", - "process_id" : "", - "state" : "finished" - } - } - } - -.. index:: stopupdate, update - -.. _Stop Updates: - -Stop Updates -============ - -This will look for any currently-running pc-updatemanager processes -and kill/stop them as needed. - -**Websocket Request** - -.. code-block:: json - - { - "id":"dummy", - "namespace":"sysadm", - "name":"update", - "args": { - "action":"stopupdate" - } - } - -**Websocket Response** - -.. code-block:: json - - { - "args":{ - "stopupdate": { - "result": "success" - } - } - } \ No newline at end of file diff --git a/docs/api_reference/classes/users.rst b/docs/api_reference/classes/users.rst deleted file mode 100644 index 171f14c..0000000 --- a/docs/api_reference/classes/users.rst +++ /dev/null @@ -1,556 +0,0 @@ -.. _users: - -users -***** - -The users class is used to manage users and groups on the system. -Every user request will have several parameters: - -+----------------+------------+----------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+================+============+========================================+ -| id | | any unique value for the request; | -| | | examples include a hash, checksum, | -| | | or uuid | -+----------------+------------+----------------------------------------+ -| name | users | | -| | | | -+----------------+------------+----------------------------------------+ -| namespace | sysadm | | -| | | | -+----------------+------------+----------------------------------------+ -| action | | "groupadd", "groupdelete", "groupmod", | -| | | "groupshow", "personacrypt_listdevs", | -| | | "useradd", "userdelete", "usermod", | -| | | "usershow" | -+----------------+------------+----------------------------------------+ - -.. index:: groupadd, users - -.. _groupadd: - -Group Add -========= - -:command:`groupadd` will create a new group on the system. The "name" -field is required, the "gid" and "users" fields are optional. - -**REST Request** - -:: - - PUT /sysadm/users - { - "action" : "groupadd", - "name" : "testgroup" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "args" : { - "action" : "groupadd", - "name" : "testgroup" - }, - "name" : "users" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: groupdelete, users - -.. _groupdelete: - -Group Delete -============ - -:command:`groupdelete` deletes the designated group. - -**REST Request** - -:: - - PUT /sysadm/users - { - "action" : "groupdelete", - "name" : "groupToDelete" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "namespace" : "sysadm", - "args" : { - "action" : "groupdelete", - "name" : "" - }, - "name" : "users" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: groupmod, users - -.. _groupmod: - -Group Modify -============ - -:command:`goupmod` modifies a given group on the system. There are two -required fields: "name": "", and any **one** of three -choices: - -* **users**: [""] Will set the list of users for this - group. -* **add_users**: [""] Will add the listed users to the - current users. -* **remove_users**: [""] Will remove the listed users - from the current users. - -**REST Request** - -:: - - PUT sysadm/users - - { - "action": "groupmod" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id":"sample", - "namespace":"sysadm", - "name":"users", - "args":{ - "action":"groupmod", - "name":"operator", - "users":["user1","user2"] - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: groupshow, users - -.. _groupshow: - -Group Show -========== - -The action :command:`groupshow` lists all the known groups on the -system and any users associated with them (if all access) or which -ones the current user is in (if limited access). - -**REST Request** - -:: - - PUT /sysadm/users - - { - "action" : "groupshow" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "users", - "namespace" : "sysadm", - "args" : { - "action" : "groupshow" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "_dhcp": { - "gid": "65", - "name": "_dhcp", - "users": [ - "" - ] - }, - "_ntp": { - "gid": "123", - "name": "_ntp", - "users": [ - "" - ] - }, - "_pflogd": { - "gid": "64", - "name": "_pflogd", - "users": [ - "" - ] - }, - "_tss": { - "gid": "601", - "name": "_tss", - "users": [ - "" - ] - }, - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: personacryptlistdevs, users - -.. _personacryptlistdevs: - -Personacrypt List Devices -========================= - -:command:`personacrypt_listdevs` will run personacrypt and return any -removeable devices which may be used as PC devices. - -**REST Request** - -:: - - PUT /sysadm/users - - { - "action" : "personacrypt_listdevs" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "users", - "id" : "fooid", - "args" : { - "action" : "personacrypt_listdevs" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "da0": " 7.5G" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: useradd, users - -.. _useradd: - -User Add -======== - -The `useradd` action will add a new user account on the system. There -are a number of required and optional fields to add to the initial -request: - -+---------------+----------------+----------------------------------------------------+ -| **Name** | **Required/** | **Description** | -| | **Optional** | | -+===============+================+====================================================+ -| change | Optional | Sets a time for the password to expire on the new | -| | | account. | -+---------------+----------------+----------------------------------------------------+ -| class | Optional | Sets the login class for the user being created. | -| | | | -+---------------+----------------+----------------------------------------------------+ -| comment | Optional | This field sets the contents of the psswd GECOS | -| | | field, which normally contains up to four | -| | | comma-separated fields containing the user's full | -| | | name, location, and work and home phone numbers. | -+---------------+----------------+----------------------------------------------------+ -| expire | Optional | Sets account expiration date, formatted as either | -| | | a UNIX time in decimal or a date in 'dd-mmm-yyyy' | -| | | format. | -+---------------+----------------+----------------------------------------------------+ -| group | Optional | Sets the account's primary group to the given | -| | | group, either by name or group number. | -+---------------+----------------+----------------------------------------------------+ -| home_dir | Optional | Sets the account's home directory. | -| | | | -+---------------+----------------+----------------------------------------------------+ -| name/user id | Required | A unique string of characters which identifies the | -| (uid) | | new user. | -+---------------+----------------+----------------------------------------------------+ -| other_groups | Optional | Sets secondary group memberships for an account. | -| | | | -+---------------+----------------+----------------------------------------------------+ -| password | Required | Locks the user account unless a unique string of | -| | | characters is typed into the system first. | -+---------------+----------------+----------------------------------------------------+ -| shell | Optional | Configure the user's login to a shell program. | -| | | The full path to the shell program is required. | -+---------------+----------------+----------------------------------------------------+ - -**REST Request** - -:: - - PUT /sysadm/users - - { - "password" : "test", - "name" : "test2", - "action" : "useradd" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "users", - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "password" : "test", - "name" : "test2", - "action" : "useradd" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: userdelete, users - -.. _userdelete: - -User Delete -=========== - -The :command:`userdelete` action will remove a user account from the -system. The request requires a "name" field with the desired username -value. The optional "clean_home" field will remove the user's home -directory and all files within it. Its default value is "true". - -**REST Request** - -:: - - PUT /sysadm/users - - { - "name" : "test", - "action" : "userdelete" - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "users", - "args" : { - "action" : "userdelete", - "name" : "test" - }, - "namespace" : "sysadm" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: usermod, users - -.. _usermod: - -User Mod -======== - -The :command:`usermod` action is similar to the :command:`useradd` -action, but performs changes to an existing user only. A user with -limited access may modify their own account settings with this command, -but no other user's settings. The field "newname" can also be added to -the request to alter the existing user name. - -**REST Request** - -:: - - PUT /sysadm/users - - { - "action" : "usermod", - "comment" : "somecomment", - "name" : "test2" - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "users", - "namespace" : "sysadm", - "args" : { - "name" : "test2", - "comment" : "somecomment", - "action" : "usermod" - }, - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "result": "success" - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: usershow, users - -.. _usershow: - -User Show -========= - -:command:`usershow` will display all user accounts registered on the -system, regardless of active/inactive status. - -**REST Request** - -:: - - PUT /sysadm/users - - { - "action" : "usershow" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "name" : "users", - "id" : "fooid", - "args" : { - "action" : "usershow" - } - } - -**Response** - -.. code-block:: json - - { - "args": { - "_dhcp": { - "canremove": "false", - "change": "0", - "class": "", - "comment": "dhcp programs", - "expire": "0", - "gid": "65", - "home_dir": "/var/empty", - "name": "_dhcp", - "shell": "/usr/sbin/nologin", - "uid": "65" - }, - "_ntp": { - "change": "0", - "class": "", - "comment": "NTP Daemon", - "expire": "0", - "gid": "123", - "home_dir": "/var/empty", - "name": "_ntp", - "shell": "/usr/sbin/nologin", - "uid": "123" - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/classes/zfs.rst b/docs/api_reference/classes/zfs.rst deleted file mode 100644 index 9041dce..0000000 --- a/docs/api_reference/classes/zfs.rst +++ /dev/null @@ -1,360 +0,0 @@ -.. _zfs: - -zfs -*** - -The zfs class is used to manage and retrieve information about ZFS pools. - -Every zfs class request contains several parameters: - -+---------------+-----------+-------------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+===========================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+-----------+-------------------------------------------+ -| name | zfs | | -| | | | -+---------------+-----------+-------------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+-----------+-------------------------------------------+ -| action | | Actions include "list_pools", "datasets". | -| | | | -+---------------+-----------+-------------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: list_pools, zfs - -.. _List Pools: - -List Pools -========== - -The "list_pools" action lists pool information. For each ZFS pool, the -response includes the pool name, the amount of space that has been -physically allocated, whether or not an alternate root has been defined, -capacity (percent used), the deduplication ratio, amount of -uninitialized space (expandsz, which usually applies to LUNs), -percentage of fragmentation, amount of free space, pool health, and -total size. This action is the equivalent of running -:command:`zpool list` from the command line. - -**REST Request** - -:: - - PUT /sysadm/zfs - { - "action" : "list_pools" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "args" : { - "action" : "list_pools" - }, - "name" : "zfs", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "list_pools" : { - "tank": { - "alloc": "71.8G", - "altroot": "-", - "cap": "32%", - "dedup": "1.00x", - "expandsz": "-", - "frag": "18%", - "free": "148G", - "health": "ONLINE", - "size": "220G" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } - -.. index:: datasets, zfs - -.. _List Datasets: - -List Datasets -============= - -The "datasets" action lists the ZFS datasets on the specified pool. - -**REST Request** - -:: - - PUT /sysadm/zfs - { - "action" : "datasets", - "zpool" : "tank" - } - -**WebSocket Request** - -.. code-block:: json - - { - "namespace" : "sysadm", - "id" : "fooid", - "args" : { - "action" : "datasets", - "zpool" : "tank" - }, - "name" : "zfs" - } - -**Response** - -.. code-block:: json - - { - "args": { - "datasets": { - "tank": { - "avail": "320G", - "mountpoint": "none", - "refer": "96K", - "used": "125G" - }, - "tank/ROOT": { - "avail": "320G", - "mountpoint": "none", - "refer": "96K", - "used": "63.7G" - }, - "tank/ROOT/11.0-CURRENTAPRIL2016-up-20160418_124146": { - "avail": "320G", - "mountpoint": "/", - "refer": "34.7G", - "used": "63.7G" - }, - "tank/ROOT/11.0-CURRENTFEB2016-up-20160303_094216": { - "avail": "320G", - "mountpoint": "/", - "refer": "29.7G", - "used": "272K" - }, - "tank/ROOT/11.0-CURRENTMAR2016-up-20160304_102405": { - "avail": "320G", - "mountpoint": "/", - "refer": "30.5G", - "used": "248K" - }, - "tank/ROOT/11.0-CURRENTMAR2016-up-20160315_092952": { - "avail": "320G", - "mountpoint": "/", - "refer": "31.2G", - "used": "256K" - }, - "tank/ROOT/11.0-CURRENTMAR2016-up-20160318_090405": { - "avail": "320G", - "mountpoint": "/", - "refer": "34.7G", - "used": "280K" - }, - "tank/ROOT/initial": { - "avail": "320G", - "mountpoint": "/mnt", - "refer": "5.60G", - "used": "232K" - }, - "tank/iocage": { - "avail": "320G", - "mountpoint": "/iocage", - "refer": "152K", - "used": "1.13G" - }, - "tank/iocage/.defaults": { - "avail": "320G", - "mountpoint": "/iocage/.defaults", - "refer": "96K", - "used": "992K" - }, - "tank/iocage/download": { - "avail": "320G", - "mountpoint": "/iocage/download", - "refer": "96K", - "used": "203M" - }, - "tank/iocage/download/10.2-RELEASE": { - "avail": "320G", - "mountpoint": "/iocage/download/10.2-RELEASE", - "refer": "202M", - "used": "202M" - }, - "tank/iocage/jails": { - "avail": "320G", - "mountpoint": "/iocage/jails", - "refer": "104K", - "used": "1000K" - }, - "tank/iocage/releases": { - "avail": "320G", - "mountpoint": "/iocage/releases", - "refer": "96K", - "used": "953M" - }, - "tank/iocage/releases/10.2-RELEASE": { - "avail": "320G", - "mountpoint": "/iocage/releases/10.2-RELEASE", - "refer": "96K", - "used": "952M" - }, - "tank/iocage/releases/10.2-RELEASE/root": { - "avail": "320G", - "mountpoint": "/iocage/releases/10.2-RELEASE/root", - "refer": "825M", - "used": "951M" - }, - "tank/iocage/templates": { - "avail": "320G", - "mountpoint": "/iocage/templates", - "refer": "96K", - "used": "992K" - }, - "tank/iohyve": { - "avail": "320G", - "mountpoint": "/iohyve", - "refer": "96K", - "used": "22.8G" - }, - "tank/iohyve/Firmware": { - "avail": "320G", - "mountpoint": "/iohyve/Firmware", - "refer": "96K", - "used": "992K" - }, - "tank/iohyve/ISO": { - "avail": "320G", - "mountpoint": "/iohyve/ISO", - "refer": "96K", - "used": "453M" - }, - "tank/iohyve/ISO/FreeBSD-10.1-RELEASE-amd64-bootonly.iso": { - "avail": "320G", - "mountpoint": "/iohyve/ISO/FreeBSD-10.1-RELEASE-amd64-bootonly.iso", - "refer": "219M", - "used": "220M" - }, - "tank/iohyve/ISO/FreeBSD-10.2-RELEASE-amd64-bootonly.iso": { - "avail": "320G", - "mountpoint": "/iohyve/ISO/FreeBSD-10.2-RELEASE-amd64-bootonly.iso", - "refer": "231M", - "used": "232M" - }, - "tank/iohyve/bsdguest": { - "avail": "320G", - "mountpoint": "/iohyve/bsdguest", - "refer": "96K", - "used": "22.4G" - }, - "tank/iohyve/bsdguest/disk0": { - "avail": "341G", - "mountpoint": "-", - "refer": "1.75G", - "used": "22.4G" - }, - "tank/tmp": { - "avail": "320G", - "mountpoint": "/tmp", - "refer": "2.95M", - "used": "18.3M" - }, - "tank/usr": { - "avail": "320G", - "mountpoint": "none", - "refer": "96K", - "used": "37.5G" - }, - "tank/usr/home": { - "avail": "320G", - "mountpoint": "/usr/home", - "refer": "96K", - "used": "27.8G" - }, - "tank/usr/home/kris": { - "avail": "320G", - "mountpoint": "/usr/home/kris", - "refer": "21.9G", - "used": "27.8G" - }, - "tank/usr/jails": { - "avail": "320G", - "mountpoint": "/usr/jails", - "refer": "96K", - "used": "992K" - }, - "tank/usr/obj": { - "avail": "320G", - "mountpoint": "/usr/obj", - "refer": "4.68G", - "used": "4.75G" - }, - "tank/usr/ports": { - "avail": "320G", - "mountpoint": "/usr/ports", - "refer": "2.20G", - "used": "2.96G" - }, - "tank/usr/src": { - "avail": "320G", - "mountpoint": "/usr/src", - "refer": "1.82G", - "used": "2.01G" - }, - "tank/var": { - "avail": "320G", - "mountpoint": "none", - "refer": "96K", - "used": "13.5M" - }, - "tank/var/audit": { - "avail": "320G", - "mountpoint": "/var/audit", - "refer": "96K", - "used": "992K" - }, - "tank/var/log": { - "avail": "320G", - "mountpoint": "/var/log", - "refer": "1.43M", - "used": "5.21M" - }, - "tank/var/mail": { - "avail": "320G", - "mountpoint": "/var/mail", - "refer": "120K", - "used": "1.21M" - }, - "tank/var/tmp": { - "avail": "320G", - "mountpoint": "/var/tmp", - "refer": "3.20M", - "used": "5.99M" - } - } - }, - "id": "fooid", - "name": "response", - "namespace": "sysadm" - } \ No newline at end of file diff --git a/docs/api_reference/conf.py b/docs/api_reference/conf.py deleted file mode 100644 index 46f454b..0000000 --- a/docs/api_reference/conf.py +++ /dev/null @@ -1,257 +0,0 @@ -# -*- coding: utf-8 -*- -# -# FreeNAS documentation build configuration file, created by -# sphinx-quickstart on Mon Sep 9 10:34:28 2013. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = ['sphinxcontrib.httpdomain'] - -# -- Options for automatic Figure numbering -numfig = True -numfig_secnum_depth = (2) - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'SysAdmâ„¢ API Reference Guide' -copyright = u'2015 - 2016, iXsystems' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '1.0' -# The full version, including alpha/beta/rc tags. -release = '1.0' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = ['_build'] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - -#Option to add text substitutions to all .rst files being built. -rst_prolog = """ -.. |freenas| replace:: FreeNAS\ :sup:`"""u'\u00AE'"""` -.. |truenas| replace:: TrueNAS\ :sup:`"""u'\u00AE'"""` -.. |pcbsd| replace:: PC-BSD\ :sup:`"""u'\u00AE'"""` -.. |trueos| replace:: TrueOS\ :sup:`"""u'\u00AE'"""` -.. |appcafe| replace:: AppCafe\ :sup:`"""u'\u00AE'"""` -.. |lumina| replace:: Lumina\ :sup:`"""u'\u00AE'"""` -.. |sysadm| replace:: SysAdm\ :sup:`"""u'\u2122'"""` -""" - -# -- Option to change :menuselection: arrow ----------------------------- - -from docutils import nodes, utils -from docutils.parsers.rst import roles -from sphinx.roles import _amp_re - -def patched_menusel_role(typ, rawtext, text, lineno, inliner, options={}, content=[]): - text = utils.unescape(text) - if typ == 'menuselection': - text = text.replace('-->', u'\u2192') # Here is the patch - - spans = _amp_re.split(text) - - node = nodes.literal(rawtext=rawtext) - for i, span in enumerate(spans): - span = span.replace('&&', '&') - if i == 0: - if len(span) > 0: - textnode = nodes.Text(span) - node += textnode - continue - accel_node = nodes.inline() - letter_node = nodes.Text(span[0]) - accel_node += letter_node - accel_node['classes'].append('accelerator') - node += accel_node - textnode = nodes.Text(span[1:]) - node += textnode - - node['classes'].append(typ) - return [node], [] - -# Use 'patched_menusel_role' function for processing the 'menuselection' role -roles.register_local_role("menuselection", patched_menusel_role) - -# -- Options for HTML output --------------------------------------------------- - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'trueos_style' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# Add any paths that contain custom themes here, relative to this directory. -html_theme_path = ['themes'] - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -html_logo = 'sysadm_circle_red.png' - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -#html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -html_show_sourcelink = False - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -html_show_sphinx = False - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'SysAdm API' - - -# -- Options for LaTeX output -------------------------------------------------- - -latex_elements = { -# The paper size ('letterpaper' or 'a4paper'). -#'papersize': 'letterpaper', - -# The font size ('10pt', '11pt' or '12pt'). -#'pointsize': '10pt', - -# Additional stuff for the LaTeX preamble. -#'preamble': '', -} - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'SysAdm.tex', u'SysAdm API', - u'iXsystems', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True \ No newline at end of file diff --git a/docs/api_reference/events.rst b/docs/api_reference/events.rst deleted file mode 100644 index eb51b51..0000000 --- a/docs/api_reference/events.rst +++ /dev/null @@ -1,293 +0,0 @@ -.. _Events: - -Events -====== - -The "events" namespace can be used to setup and receive asynchronous -updates about system status and other types of system notifications. - -.. warning:: The events namespace does not really translate over to REST - which was not designed for asynchronous events. For this - reason, only Websocket examples are used in this section. - -Every events request contains several parameters, seen here in -:numref:`Table %s `. - -.. _eventpar: -.. table:: Event Request Parameters - - +---------------+-----------+--------------------------------------+ - | **Parameter** | **Value** | **Description** | - | | | | - +===============+===========+======================================+ - | id | | Any unique value for the request, | - | | | including a hash, checksum, or uuid. | - +---------------+-----------+--------------------------------------+ - | name | | Supported values are "subscribe" or | - | | | "unsubscribe". | - +---------------+-----------+--------------------------------------+ - | namespace | events | | - | | | | - +---------------+-----------+--------------------------------------+ - | args | | Values vary by type of class. | - | | | | - +---------------+-----------+--------------------------------------+ - -Subsystems can also be tracked using the events namespace. Currently, -there are three trackable subsystems: Dispatcher, Life Preserver, and -System State. Use this template to subscribe to various subsystem event -notifications: - -**Websocket Request** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "subscribe", - "id" : "sampleID", - "args" : ["dispatcher", "life-preserver", "system-state"] - } - -Once subscribed, events will be received as they are produced. To -unsubscribe from events, repeat the request, using -:command:`"unsubscribe"` for the :command:`"name"`. - -Here is an example reply from the Life Preserver subsystem: - -**Websocket Reply** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "life_preserver", - "id" : "" - "args" : { - "message" : "", - "priority" : "/", - "class" : "[snapshot/replication]" - } - } - -Dispatcher ----------- - -The Dispatcher subsystem is used by |sysadm| to process external -commands and return specific information from the utility. This is -managed on the server as a separate process, and will not interrupt -primary server tasks. Subscribe to the Dispatcher subsystem for event -updates with this request: - -**Websocket Request** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "subscribe", - "id" : "sampleID", - "args" : ["dispatcher"] - } - -The Dispatcher event log will display three different states: *pending*, -*running*, and *finished*. Depending upon the current state, the log can -change in some minor but noteworthy ways. The following sample logs will -reflect the differences between these states: - -.. note:: The variable **event_system** will only appear when one of - the three available systems initiates the request and response. - Additional elements tied to these systems will also appear. - -**Dispatcher Response: Pending** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "state" : "pending", - "process_id" : "" - } - } - -**Dispatcher Response: Running** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "", - "state" : "running", - "process_id" : "", - "process_details" : { - "state" : "running", - "process_id" : "", - "time_started" : "", - "cmd_list" : ["", ""], - "" : "", - "return_codes/" : "", - "current_cmd" : "", - } - } - } - -**Dispatcher Response: Finished** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "", - "state" : "finished", - "process_id" : "", - "process_details" : { - "state" : "finished", - "process_id" : "", - "time_started" : "", - "time_finished" : "", - "cmd_list" : ["", ""], - "" : "", - "" : "", - "return_codes/" : "", - "return_codes/" : "" - } - } - } - -Individual classes such as iohyve will move these dispatcher elements -into a "process_details" section. Tailored sample responses will be -provided in these classes' individual documentation pages. Here is a -generalized sample: - -**Dispatcher Class Event Message** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "none", - "args" : { - "event_system" : "/", - "state" : "", - "" : "", - "process_details" : "" - } - } - -For specific details on these special types of events please refer to -the :ref:`classes` section of this guide. - -Life Preserver --------------- - -Subscribe to the Life Preserver subsystem for event updates with this: - -**Websocket Request** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "subscribe", - "id" : "sampleID", - "args" : ["life-preserver"] - } - -**Websocket Event Message** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "life_preserver", - "id" : "none", - "args" : { - "message" : "", - "priority" : "", - "class" : "snapshot/replication" - } - } - -System State ------------- - -Subscribe to the System State subsystem for event updates with this: - -**Websocket Request** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "subscribe", - "id" : "sampleID", - "args" : ["system-state"] - } - -**Websocket Event Message** - -This message will appear if the host name has changed and a priority -error has occurred: - -.. code-block:: json - - { - "namespace" : "events", - "name" : "system_state", - "id" : "none", - "args" : { - "hostname" : "", - "hostnamechanged" : "true", - "zpools" : { - "" : { - "size" : "<107G>", - "alloc" : "<13.1G>", - "free" : "<93.9G>", - "frag" : "<6%>", - "expandsz" : "<->", - "dedup" : "<1.00x>", - "altroot" : "<->", - "capacity" : "<12%>", - "health" : "", - "priority" : "" - } - } - } - } - -Bridge ------- - -Bridge events are automatically received by any system connected to a -bridge, with no subscription required. This event will get sent out any -time a new connection/disconnection is made from the bridge which -impacts the current connection. A client will only get the event when a -server connects/disconnects or vice versa. - -**Websocket Reply: Connected Bridge** - -.. code-block:: json - - { - "id" : "", - "namespace" : "events", - "name" : "bridge", - "args" : { - "available_connections" : ["ID1", "ID2", ""] - } - } - -.. tip:: Available_connections are **all** the connections available at - the time, **not** a difference from a previous state. There may - be both new ID's in the list and ID's which are no longer - listed. \ No newline at end of file diff --git a/docs/api_reference/getstarted.rst b/docs/api_reference/getstarted.rst deleted file mode 100644 index 9df8af0..0000000 --- a/docs/api_reference/getstarted.rst +++ /dev/null @@ -1,795 +0,0 @@ -.. _Getting Started: - -Getting Started -*************** - -Welcome to the SysAdmâ„¢ API (application programming interface) -Reference Guide! SysAdmâ„¢ is a complex utility with many integral -subsystems and classes, and this reference guide will attempt to -accurately represent the initialization, core features, and intricacies -of the utility. - -This handbook will be heavily utilizing the Websocket specification and -JSON (JavaScript Object Notation) format. For detailed descriptions of -these items, please refer to their respective websites at -http://www.websocket.org and http://json.org/. - -The |sysadm| API Reference Guide is freely available for sharing and -redistribution under the terms of the -`Creative Commons Attribution License `_. -This means you have permission to copy, distribute, translate, and adapt -the work as long as you attribute the |lumina| Project as the original -source of the Handbook. - -.. _Authentication: - -Authentication -============== - -Once a websocket connection is made to the server, the client needs to -use the authentication class to authenticate itself to obtain access to -the SysAdmâ„¢ service. Every authentication class request contains the -following parameters: - -+----------------+------------+---------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+================+============+=======================================+ -| id | | any unique value for the request; | -| | | examples include a hash, checksum, | -| | | or uuid | -+----------------+------------+---------------------------------------+ -| name | auth | | -| | | | -+----------------+------------+---------------------------------------+ -| namespace | rpc | | -| | | | -+----------------+------------+---------------------------------------+ -| args | | values vary by type of authentication | -| | | request | -+----------------+------------+---------------------------------------+ - -There are three options for server authentication: username and password, -token authentication, and pre-registered SSL certifications. SSL -certification requests are handled by both server and bridge, while -token authentication and username/password requests are server side only. - -.. tip:: Individual servers can be configured to refuse username and - password requests altogether. - -**1. Username and Password:** - - **WebSocket Request: (Server only)** - - .. code-block:: json - - { - "namespace" : "rpc", - "name" : "auth", - "id" : "sampleID", - "args" : { - "username" : "myuser", - "password" : "mypassword" - } - } - -.. tip:: When connecting to the localhost, the password field may be - left empty for non-root user access. - -**2. Token Authentication: (Server only)** - - **WebSocket Request** - - .. code-block:: json - - { - "namespace" : "rpc", - "name" : "auth_token", - "id" : "sampleID", - "args" : { - "token" : "MySavedAuthToken" - } - } - -Here is an example of using a pre-registered SSL certificate to request -authentication. Note that this is a two-step process with only a 30 -seconds window of validity, so this is best left to automated systems -rather than direct user requests. - -**3.1. SSL Certificate Authentication: (Server and Bridge)** - - **WebSocket Request (Stage 1 - Initial Request)** - - .. code-block:: json - - { - "namespace" : "rpc", - "name" : "auth_ssl", - "id" : "sampleID", - "args" : "" - } - - **WebSocket Reply (Stage 1)** - - .. code-block:: json - - { - "args": { - "test_string" : "" - }, - "id": "sampleID", - "name": "response", - "namespace": "rpc" - } - -On receipt of the "test_string", the user-side client must encrypt that -string with the desired SSL certificate/key combination, then return -that encrypted string back to the server (Stage 2) within 30 seconds of -the initial stage 1 reply. The encrypted string should also be -base64-encoded before insertion into the stage 2 JSON request to ensure -accurate transport back to the server. - - **WebSocket Request (Stage 2 - Return Encoded String)** - - .. code-block:: json - - { - "namespace" : "rpc", - "name" : "auth_ssl", - "id" : "sampleID", - "args" : { - "encrypted_string" : "" - } - } - -A successful authentication will provide a similar reply: - - **WebSocket Reply** - - .. code-block:: json - - { - "args": [ - "SampleAuthenticationToken", - 300 - ], - "id": "sampleID", - "name": "response", - "namespace": "rpc" - } - -.. note:: The first element of the "args" array is the authentication - token for later use, while the second element is - the number of seconds the token will remain valid. The token - is reset after every successful communication with the - websocket. In this example, it is set to 5 minutes of - inactivity before the token is invalidated. The websocket - server is currently set to close any connection to a client - after 10 minutes of inactivity. - -An invalid authentication or a system request after the user session -has timed out due to inactivity will have a specific message: - -**WebSocket Reply** - - .. code-block:: json - - { - "args": { - "code": 401, - "message": "Unauthorized" - }, - "id": "sampleID", - "name": "error", - "namespace": "rpc" - } - -To clear a pre-saved authentication token, such as signing out: - -**WebSocket Request** - - .. code-block:: json - - { - "namespace" : "rpc", - "name" : "auth_clear", - "id" : "sampleID", - "args" : "junk argument" - } - - - -**3.2. Alternate SSL Certificate Authentication Initiation (server -through bridge)** - -This is an alternate method for stage 1 of the SSL Certificate -Authentication method. In this case, the initial request has specified -using a base 64 encoded key, to which the server will respond with its -own encrypted message. This prevents the bridge from being able to -decrypt messages between client and server for the duration of the -connection. - - **WebSocket Request (Stage 1 - Initial Request)** - - .. code-block:: json - - { - "namespace" : "rpc", - "name" : "auth_ssl", - "id" : "sampleID", - "args" : { - "action" : "auth_ssl", - "md5_key" : "" - } - } - - - **WebSocket Reply (Stage 1)** - - .. code-block:: json - - { - "args": { - "test_string" : "", - "new_ssl_key" : ["", "", ""] - }, - "id": "sampleID", - "name": "response", - "namespace": "rpc" - } - - -.. danger:: In the reply above, both values for "test_string" and - "new_ssl_key" are encrypted with the public SSL key matching - the md5 sum from the initial request and then base 64 - encoded for transport. All future messages are bulk - encrypted with the "new_ssl_key", which is a new randomly - generated private key only known to the server and client. - For example, the following section {"id", "name", - "namespace","args"} will now be encrypted with the private - key in one block prior to transport through the bridge. - -.. _SSL Certificate Management: - -SSL Certificate Management -========================== - -Several actions are available for managing the SSL certificates used for -authentication. - -+---------------+-----------+---------------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+=============================================+ -| id | | Any unique value for the request; examples | -| | | include a hash, checksum, or uuid. | -+---------------+-----------+---------------------------------------------+ -| name | settings | | -| | | | -+---------------+-----------+---------------------------------------------+ -| namespace | sysadm | | -| | | | -+---------------+-----------+---------------------------------------------+ -| action | | Actions include "list_ssl_certs", | -| | | "register_ssl_cert", and "revoke_ssl_cert". | -+---------------+-----------+---------------------------------------------+ - -The rest of this section provides examples of the available *actions* -for each type of request, along with their responses. - -.. index:: list_ssl_certs, settings - -.. _List SSL Certificates: - -List SSL Certificates ---------------------- - -The "list_ssl_certificates" action lists the known and registered -certificates. For each certificate, the response includes the username, -public key, and the certificate's details. - -**Websocket Request** - -.. code-block:: json - - { - "id" : "example_id", - "name" : "settings", - "namespace": "sysadm", - "args" : { - "action" : "list_ssl_certificates" - } - } - -**Websocket Response** - -.. code-block:: json - - { - "id" : "example_id", - "name" : "response", - "namespace": "sysadm", - "args" : { - "" : { - "" : "" - } - } - } - -.. note:: The "" value is base64 encoded. - -.. index:: register_ssl_cert, settings - -.. _Register a SSL Certificate: - -Register a SSL Certificate --------------------------- - -The "register_ssl_certificate" action registers the specified -certificate on the server. Once registered, a user is allowed to -authenticate without a password as long as that same certificate is -loaded in any future connections. When using this action, The "pub_key" -needs to match the public key of one of the certificates currently -loaded into the server/client connection. - -**Websocket Request** - -.. code-block:: json - - { - "id" : "example_id", - "name" : "settings", - "namespace": "sysadm", - "args" : { - "action" : "register_ssl_certificate", - "pub_key" : "", - "nickname" : "", - "email" : "" - } - } - -**Websocket Response** - -.. code-block:: json - - { - "id" : "example_id", - "name" : "response", - "namespace": "sysadm", - "args" : {} - } - -.. note:: The "nickname" and "email" arguments are optional, and may not - be seen in all responses. - -.. index:: revoke_ssl_cert, settings - -.. _Revoke a SSL Certificate: - -Revoke a SSL Certificate ------------------------- - -The "revoke_ssl_certificate" action revokes a currently registered -certificate so that it can no longer be used for authentication. The -"pub_key" must be specified and must match one of the keys given by the -"list_ssl_certs" action, but does not need to match any currently loaded -certificates. The "user" is optional and allows a connection with full -administrative privileges to revoke a certificate belonging to another -user. - -**Websocket Request** - -.. code-block:: json - - { - "id" : "example_id", - "name" : "settings", - "namespace": "sysadm", - "args" : { - "action" : "revoke_ssl_certificate", - "pub_key" : "", - "user" : "" - } - } - -**Websocket Response** - -.. code-block:: json - - { - "id" : "example_id", - "name" : "response", - "namespace": "sysadm", - "args" : {} - } - -.. note:: If the current user has full administrative access, - "list_ssl_certs" will return the registered certificates for - all users on the system. Otherwise, it will only return the - certificates for the current user. Similarly, - "revoke_ssl_cert" may be used to remove certificates - registered to other users only if the current user/connection - has full administrative access; otherwise, it may only be used - to manage the current user's certificates. - -.. index:: dispatcher, events - -.. _Dispatcher Subsystem: - -Dispatcher Subsystem -==================== - -The dispatcher subsystem is designed for running external utilities or -scripts in an asynchronous fashion. Any connected client can subscribe -to per-connection event notifications about dispatcher processes through -the events system, but only users in the *wheel* group have the -authority to directly submit new jobs for the dispatcher. - -.. note:: Other subsystems may also use the dispatcher for long-running - processes in the background, and these subsystems may allow - non-wheel group users to perform these tasks as necessary. - Also, the events namespace does not really translate over to - REST which was not designed for asyncronous events. For this - reason, only Websocket examples are used in this section. - -The format of "dispatcher" event requests is as follows: - -+---------------+-------------+--------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+=============+======================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+-------------+--------------------------------------+ -| name | subscribe | use the desired action | -| | unsubscribe | | -+---------------+-------------+--------------------------------------+ -| namespace | events | | -| | | | -+---------------+-------------+--------------------------------------+ -| args | dispatcher | | -| | | | -+---------------+-------------+--------------------------------------+ - -For example, to subscribe to dispatcher events: - -.. code-block:: json - - { - "namespace" : "events", - "name" : "subscribe", - "id" : "sampleID", - "args" : ["dispatcher"] - } - -Once subscribed, the requested events will be received as they are -produced. To unsubscribe from event notifications, repeat the request, -using "unsubscribe" for the "name". For example, to unsubscribe from -dispatcher events: - -.. code-block:: json - - { - "namespace" : "events", - "name" : "unsubscribe", - "id" : "sampleID", - "args" : ["dispatcher"] - } - -This response indicates that a dispatcher event occurred: - -.. code-block:: json - - { - "namespace" : "events", - "name" : "event", - "id" : "", - "args" : { - "name" : "dispatcher", - "args" : "" - } - } - -A "dispatcher" query contains several parameters: - -+---------------+------------+--------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+============+======================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+------------+--------------------------------------+ -| name | dispatcher | | -| | | | -+---------------+------------+--------------------------------------+ -| namespace | events | | -| | | | -+---------------+------------+--------------------------------------+ -| action | | "run" submits process commands | -| | | | -+---------------+------------+--------------------------------------+ - -Dispatcher events have the following syntax: - -**Websocket Request** - -.. code-block:: json - - { - "namespace" : "events", - "name" : "dispatcher", - "id" : "", - "args" : { - "cmd_list" : ["/bin/echo something"], - "log" : "[Running Command: /bin/echo something ]something\n", - "proc_id" : "procID", - "success" : "true", - "time_finished" : "2016-02-02T13:45:13", - "time_started" : "2016-02-02T13:45:13" - } - } - -Any user within the *wheel* group can use the "run" action to submit a -new job to the dispatcher: - -**REST Request** - -.. code-block:: none - - PUT /rpc/dispatcher - -.. code-block:: json - - { - "action" : "run", - "procID2" : [ - "echo chainCmd1", - "echo chainCmd2" - ], - "procID1" : "echo sample1" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "started": [ - "procID1", - "procID2" - ] - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "name" : "dispatcher", - "namespace" : "rpc", - "id" : "fooid", - "args" : { - "procID1" : "echo sample1", - "procID2" : [ - "echo chainCmd1", - "echo chainCmd2" - ], - "action" : "run" - } - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "started": [ - "procID1", - "procID2" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "rpc" - } - -When submitting a job to the dispatcher, there are several points to -remember: - -* Process commands are not the same as shell commands. A dispatcher - process command uses the syntax " ", - similar to a simple shell command. However, complex shell operations - with pipes or test statements will not function properly within a - dispatcher process. - -* There are two types of jobs: a single string entry for simple commands, - and an array of strings for a chain of commands. A chain of commands - is treated as a single process, and the commands are run sequentially - until either a command fails (returns non-0 or the process crashes), - or until there are no more commands to run. - -* A chain of commands is useful for multi-step operations but is not - considered a replacement for a good shell script on the server. - -.. _Server Subsystems: - -Server Subsystems -================= - -The RPC namespace can be used to get information about SysAdmâ„¢ server -subsystems. This namespace supports the following parameters: - -+---------------+-----------+------------------------------------------+ -| **Parameter** | **Value** | **Description** | -| | | | -+===============+===========+==========================================+ -| id | | Any unique value for the request, | -| | | including a hash, checksum, or uuid. | -+---------------+-----------+------------------------------------------+ -| name | | Supported names are "query", "identify", | -| | | and "list_ssl_checksums" | -+---------------+-----------+------------------------------------------+ -| namespace | rpc | | -| | | | -+---------------+-----------+------------------------------------------+ -| args | | Can be any data. | -| | | | -+---------------+-----------+------------------------------------------+ - -The rest of this section provides examples of the available *names* for -each type of request, along with their responses. - -.. index:: query, rpc - -.. _Query Subsystems: - -Query Subsystems ----------------- - -An RPC query can be issued to probe all the known subsystems and return -which ones are currently available and what level of read and write -access the user has. This subsystem is used only by the server. - -**REST Request** - -:: - - PUT /rpc/query - { - "junk" : "junk" - } - -**REST Response** - -.. code-block:: json - - { - "args": { - "rpc/dispatcher": "read/write", - "rpc/syscache": "read", - "sysadm/lifepreserver": "read/write", - "sysadm/network": "read/write" - } - } - -**WebSocket Request** - -.. code-block:: json - - { - "id" : "fooid", - "name" : "query", - "namespace" : "rpc", - "args" : { - "junk" : "junk" - } - } - -**WebSocket Response** - -.. code-block:: json - - { - "args": { - "rpc/dispatcher": "read/write", - "rpc/syscache": "read", - "sysadm/lifepreserver": "read/write", - "sysadm/network": "read/write" - }, - "id": "fooid", - "name": "response", - "namespace": "rpc" - } - -.. index:: identify, rpc - -.. _Identify Subsystem: - -Identify Subsystem ------------------- - -To identify the type of SysAdmâ„¢ system, use :command:`identify`. Possible -identities are "server", "bridge", and "client," with all three system -types using this subsystem. - -**REST Request** - -:: - - PUT /rpc/identify - {} - -**WebSocket Request** - -.. code-block:: json - - { - "args" : {}, - "namespace" : "rpc", - "id" : "fooid", - "name" : "identify" - } - -**Response** - -.. code-block:: json - - { - "args": { - "type": "server", - "hostname": "" - }, - "id": "fooid", - "name": "response", - "namespace": "rpc" - } - -.. index:: list_ssl_checksums, rpc - -.. _List SSL Checksums: - -List SSL Checksums ------------------- - -Used by both server and client, :command:`list_ssl_checksums` will list -the MD5 checksums of all known SSL keys. - -**REST Request** - -:: - - PUT /rpc/settings - { - "action" : "list_ssl_checksums" - } - -**WebSocket Request** - -.. code-block:: json - - { - "args" : { - "action" : "list_ssl_checksums" - }, - "namespace" : "rpc", - "name" : "settings", - "id" : "fooid" - } - -**Response** - -.. code-block:: json - - { - "args": { - "md5_keys": [ - "0`H\u0013\r*\u00023\u000bc" - ] - }, - "id": "fooid", - "name": "response", - "namespace": "rpc" - } \ No newline at end of file diff --git a/docs/api_reference/index.rst b/docs/api_reference/index.rst deleted file mode 100644 index 8993c17..0000000 --- a/docs/api_reference/index.rst +++ /dev/null @@ -1,17 +0,0 @@ -SysAdmâ„¢ API Reference Guide -=========================== - -.. toctree:: - :numbered: - :maxdepth: 4 - - getstarted - events - classes/index - -Indices and tables -================== - -* :ref:`genindex` -* :ref:`modindex` -* :ref:`search` diff --git a/docs/api_reference/sysadm_circle_red.png b/docs/api_reference/sysadm_circle_red.png deleted file mode 100644 index 06795866446d3e7aba272943da45a87086c55849..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5011 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 - -
-  - diff --git a/docs/api_reference/themes/trueos_style/footer.html b/docs/api_reference/themes/trueos_style/footer.html deleted file mode 100644 index 21328b9..0000000 --- a/docs/api_reference/themes/trueos_style/footer.html +++ /dev/null @@ -1,36 +0,0 @@ -
- {% if next or prev %} - - {% endif %} - -
- -
-

- {%- if show_copyright %} - {%- if hasdoc('copyright') %} - {% trans path=pathto('copyright'), copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %} - {%- else %} - {% trans copyright=copyright|e %}© Copyright {{ copyright }}.{% endtrans %} - {%- endif %} - {%- endif %} - - {%- if last_updated %} - {% trans last_updated=last_updated|e %}Last updated on {{ last_updated }}.{% endtrans %} - {%- endif %} -

-
- - {%- if show_sphinx %} - {% trans %}Built with Sphinx using a theme provided by Read the Docs{% endtrans %}. - {%- endif %} - -
- diff --git a/docs/api_reference/themes/trueos_style/layout.html b/docs/api_reference/themes/trueos_style/layout.html deleted file mode 100644 index 678aa83..0000000 --- a/docs/api_reference/themes/trueos_style/layout.html +++ /dev/null @@ -1,172 +0,0 @@ -{# TEMPLATE VAR SETTINGS #} -{%- set url_root = pathto('', 1) %} -{%- if url_root == '#' %}{% set url_root = '' %}{% endif %} -{%- if not embedded and docstitle %} - {%- set titlesuffix = " — "|safe + docstitle|e %} -{%- else %} - {%- set titlesuffix = "" %} -{%- endif %} - - - - - - - {{ metatags }} - - {% block htmltitle %} - {{ title|striptags|e }}{{ titlesuffix }} - {% endblock %} - - {# FAVICON #} - {% if favicon %} - - {% endif %} - - {# CSS #} - - {# OPENSEARCH #} - {% if use_opensearch %} - - {% endif %} - - - - {% for cssfile in css_files %} - - {% endfor %} - - {% for cssfile in extra_css_files %} - - {% endfor %} - - {%- block linktags %} - {%- if hasdoc('about') %} - - {%- endif %} - {%- if hasdoc('genindex') %} - - {%- endif %} - {%- if hasdoc('search') %} - - {%- endif %} - {%- if hasdoc('copyright') %} - - {%- endif %} - - {%- if parents %} - - {%- endif %} - {%- if next %} - - {%- endif %} - {%- if prev %} - - {%- endif %} - {%- endblock %} - {%- block extrahead %} {% endblock %} - - {# Keep modernizr in head - http://modernizr.com/docs/#installing #} - - - - - - -
- - {# SIDE NAV, TOGGLES ON MOBILE #} - - -
- - {# MOBILE NAV, TRIGGERS SIDE NAV ON TOGGLE #} - - - - {# PAGE CONTENT #} -
-
- {% include "breadcrumbs.html" %} -
-
- {% block body %}{% endblock %} -
-
- {% include "footer.html" %} -
-
- -
- -
- {% include "versions.html" %} - - - {%- for scriptfile in script_files %} - - {%- endfor %} - - - - - {# STICKY NAVIGATION #} - {% if theme_sticky_navigation %} - - {% endif %} - - {%- block footer %} {% endblock %} - - - diff --git a/docs/api_reference/themes/trueos_style/search.html b/docs/api_reference/themes/trueos_style/search.html deleted file mode 100644 index cb5f86e..0000000 --- a/docs/api_reference/themes/trueos_style/search.html +++ /dev/null @@ -1,49 +0,0 @@ -{# - basic/search.html - ~~~~~~~~~~~~~~~~~ - - Template for the search page. - - :copyright: Copyright 2007-2013 by the Sphinx team, see AUTHORS. - :license: BSD, see LICENSE for details. -#} -{%- extends "layout.html" %} -{% set title = _('Search') %} -{% set script_files = script_files + ['_static/searchtools.js'] %} -{% block footer %} - - {# this is used when loading the search index using $.ajax fails, - such as on Chrome for documents on localhost #} - - {{ super() }} -{% endblock %} -{% block body %} - - - {% if search_performed %} -

{{ _('Search Results') }}

- {% if not search_results %} -

{{ _('Your search did not match any documents. Please make sure that all words are spelled correctly and that you\'ve selected enough categories.') }}

- {% endif %} - {% endif %} -
- {% if search_results %} -
    - {% for href, caption, context in search_results %} -
  • - {{ caption }} -

    {{ context|e }}

    -
  • - {% endfor %} -
- {% endif %} -
-{% endblock %} diff --git a/docs/api_reference/themes/trueos_style/searchbox.html b/docs/api_reference/themes/trueos_style/searchbox.html deleted file mode 100644 index 35ad52c..0000000 --- a/docs/api_reference/themes/trueos_style/searchbox.html +++ /dev/null @@ -1,9 +0,0 @@ -{%- if builder != 'singlehtml' %} -
-
- - - -
-
-{%- endif %} diff --git a/docs/api_reference/themes/trueos_style/static/css/badge_only.css b/docs/api_reference/themes/trueos_style/static/css/badge_only.css deleted file mode 100644 index 7e17fb1..0000000 --- a/docs/api_reference/themes/trueos_style/static/css/badge_only.css +++ /dev/null @@ -1,2 +0,0 @@ -.fa:before{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:before,.clearfix:after{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-weight:normal;font-style:normal;src:url("../font/fontawesome_webfont.eot");src:url("../font/fontawesome_webfont.eot?#iefix") format("embedded-opentype"),url("../font/fontawesome_webfont.woff") format("woff"),url("../font/fontawesome_webfont.ttf") format("truetype"),url("../font/fontawesome_webfont.svg#FontAwesome") format("svg")}.fa:before{display:inline-block;font-family:FontAwesome;font-style:normal;font-weight:normal;line-height:1;text-decoration:inherit}a .fa{display:inline-block;text-decoration:inherit}li .fa{display:inline-block}li .fa-large:before,li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-0.8em}ul.fas li .fa{width:0.8em}ul.fas li .fa-large:before,ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before{content:""}.icon-book:before{content:""}.fa-caret-down:before{content:""}.icon-caret-down:before{content:""}.fa-caret-up:before{content:""}.icon-caret-up:before{content:""}.fa-caret-left:before{content:""}.icon-caret-left:before{content:""}.fa-caret-right:before{content:""}.icon-caret-right:before{content:""}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;border-top:solid 10px #343131;font-family:"Lato","proxima-nova","Helvetica Neue",Arial,sans-serif;z-index:400}.rst-versions a{color:#2980B9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27AE60;*zoom:1}.rst-versions .rst-current-version:before,.rst-versions .rst-current-version:after{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book{float:left}.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#E74C3C;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#F1C40F;color:#000}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:gray;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:solid 1px #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px}.rst-versions.rst-badge .icon-book{float:none}.rst-versions.rst-badge .fa-book{float:none}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book{float:left}.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge .rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width: 768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}img{width:100%;height:auto}} -/*# sourceMappingURL=badge_only.css.map */ diff --git a/docs/api_reference/themes/trueos_style/static/css/font_awesome.css b/docs/api_reference/themes/trueos_style/static/css/font_awesome.css deleted file mode 100644 index 44d16ce..0000000 --- a/docs/api_reference/themes/trueos_style/static/css/font_awesome.css +++ /dev/null @@ -1,1734 +0,0 @@ -/*! - * Font Awesome 4.2.0 by @davegandy - http://fontawesome.io - @fontawesome - * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) - */ - -@font-face { - font-family: 'FontAwesome'; - src: url("../fonts/fontawesome-webfont.eot?v=4.2.0"); - src: url("../fonts/fontawesome-webfont.eot?#iefix&v=4.2.0") format("embedded-opentype"), url("../fonts/fontawesome-webfont.woff?v=4.2.0") format("woff"), url("../fonts/fontawesome-webfont.ttf?v=4.2.0") format("truetype"), url("../fonts/fontawesome-webfont.svg?v=4.2.0#fontawesomeregular") format("svg"); - font-weight: normal; - font-style: normal -} -.fa, -.wy-menu-vertical li span.toctree-expand, -.wy-menu-vertical li.on a span.toctree-expand, -.wy-menu-vertical li.current>a span.toctree-expand, -.rst-content .admonition-title, -.rst-content h1 .headerlink, -.rst-content h2 .headerlink, -.rst-content p.caption .headerlink, -.rst-content h3 .headerlink, -.rst-content h4 .headerlink, -.rst-content h5 .headerlink, -.rst-content h6 .headerlink, -.rst-content dl dt .headerlink, -.rst-content tt.download span:first-child, -.rst-content code.download span:first-child, -.icon { - display: inline-block; - font: normal normal normal 14px/1 FontAwesome; - font-size: inherit; - text-rendering: auto; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale -} -.fa-lg { - font-size: 1.33333em; - line-height: 0.75em; - vertical-align: -15% -} -.fa-2x { - font-size: 2em -} -.fa-3x { - font-size: 3em -} -.fa-4x { - font-size: 4em -} -.fa-5x { - font-size: 5em -} -.fa-fw { - width: 1.28571em; - text-align: center -} -.fa-ul { - padding-left: 0; - margin-left: 2.14286em; - list-style-type: none -} -.fa-ul>li { - position: relative -} -.fa-li { - position: absolute; - left: -2.14286em; - width: 2.14286em; - top: 0.14286em; - text-align: center -} -.fa-li.fa-lg { - left: -1.85714em -} -.fa-border { - padding: .2em .25em .15em; - border: solid 0.08em #eee; - border-radius: .1em -} -.pull-right { - float: right -} -.pull-left { - float: left -} -.fa.pull-left, -.wy-menu-vertical li span.pull-left.toctree-expand, -.wy-menu-vertical li.on a span.pull-left.toctree-expand, -.wy-menu-vertical li.current>a span.pull-left.toctree-expand, -.rst-content .pull-left.admonition-title, -.rst-content h1 .pull-left.headerlink, -.rst-content h2 .pull-left.headerlink, -.rst-content p.caption .pull-left.headerlink, -.rst-content h3 .pull-left.headerlink, -.rst-content h4 .pull-left.headerlink, -.rst-content h5 .pull-left.headerlink, -.rst-content h6 .pull-left.headerlink, -.rst-content dl dt .pull-left.headerlink, -.rst-content tt.download span.pull-left:first-child, -.rst-content code.download span.pull-left:first-child, -.pull-left.icon { - margin-right: .3em -} -.fa.pull-right, -.wy-menu-vertical li span.pull-right.toctree-expand, -.wy-menu-vertical li.on a span.pull-right.toctree-expand, -.wy-menu-vertical li.current>a span.pull-right.toctree-expand, -.rst-content .pull-right.admonition-title, -.rst-content h1 .pull-right.headerlink, -.rst-content h2 .pull-right.headerlink, -.rst-content p.caption .pull-right.headerlink, -.rst-content h3 .pull-right.headerlink, -.rst-content h4 .pull-right.headerlink, -.rst-content h5 .pull-right.headerlink, -.rst-content h6 .pull-right.headerlink, -.rst-content dl dt .pull-right.headerlink, -.rst-content tt.download span.pull-right:first-child, -.rst-content code.download span.pull-right:first-child, -.pull-right.icon { - margin-left: .3em -} -.fa-spin { - -webkit-animation: fa-spin 2s infinite linear; - animation: fa-spin 2s infinite linear -} -@-webkit-keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg) - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg) - } -} -@keyframes fa-spin { - 0% { - -webkit-transform: rotate(0deg); - transform: rotate(0deg) - } - 100% { - -webkit-transform: rotate(359deg); - transform: rotate(359deg) - } -} -.fa-rotate-90 { - filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=1); - -webkit-transform: rotate(90deg); - -ms-transform: rotate(90deg); - transform: rotate(90deg) -} -.fa-rotate-180 { - filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=2); - -webkit-transform: rotate(180deg); - -ms-transform: rotate(180deg); - transform: rotate(180deg) -} -.fa-rotate-270 { - filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=3); - -webkit-transform: rotate(270deg); - -ms-transform: rotate(270deg); - transform: rotate(270deg) -} -.fa-flip-horizontal { - filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=0); - -webkit-transform: scale(-1, 1); - -ms-transform: scale(-1, 1); - transform: scale(-1, 1) -} -.fa-flip-vertical { - filter: progid: DXImageTransform.Microsoft.BasicImage(rotation=2); - -webkit-transform: scale(1, -1); - -ms-transform: scale(1, -1); - transform: scale(1, -1) -} -:root .fa-rotate-90, -:root .fa-rotate-180, -:root .fa-rotate-270, -:root .fa-flip-horizontal, -:root .fa-flip-vertical { - filter: none -} -.fa-stack { - position: relative; - display: inline-block; - width: 2em; - height: 2em; - line-height: 2em; - vertical-align: middle -} -.fa-stack-1x, -.fa-stack-2x { - position: absolute; - left: 0; - width: 100%; - text-align: center -} -.fa-stack-1x { - line-height: inherit -} -.fa-stack-2x { - font-size: 2em -} -.fa-inverse { - color: #fff -} -.fa-glass:before { - content: "\f000" -} -.fa-music:before { - content: "\f001" -} -.fa-search:before, -.icon-search:before { - content: "\f002" -} -.fa-envelope-o:before { - content: "\f003" -} -.fa-heart:before { - content: "\f004" -} -.fa-star:before { - content: "\f005" -} -.fa-star-o:before { - content: "\f006" -} -.fa-user:before { - content: "\f007" -} -.fa-film:before { - content: "\f008" -} -.fa-th-large:before { - content: "\f009" -} -.fa-th:before { - content: "\f00a" -} -.fa-th-list:before { - content: "\f00b" -} -.fa-check:before { - content: "\f00c" -} -.fa-remove:before, -.fa-close:before, -.fa-times:before { - content: "\f00d" -} -.fa-search-plus:before { - content: "\f00e" -} -.fa-search-minus:before { - content: "\f010" -} -.fa-power-off:before { - content: "\f011" -} -.fa-signal:before { - content: "\f012" -} -.fa-gear:before, -.fa-cog:before { - content: "\fa013" -} -.fa-trash-o:before { - content: "\f014" -} -.fa-home:before, -.icon-home:before { - content: "\f015" -} -.fa-file-o:before { - content: "\f016" -} -.fa-clock-o:before { - content: "\f017" -} -.fa-road:before { - content: "\f018" -} -.fa-download:before, -.rst-content tt.download span:first-child:before, -.rst-content code.download span:first-child:before { - content: "\f019" -} -.fa-arrow-circle-o-down:before { - content: "\f01a" -} -.fa-arrow-circle-o-up:before { - content: "\f01b" -} -.fa-inbox:before { - content: "\f01c" -} -.fa-play-circle-o:before { - content: "\f01d" -} -.fa-rotate-right:before, -.fa-repeat:before { - content: "\f01e" -} -.fa-refresh:before { - content: "\f021" -} -.fa-list-alt:before { - content: "\f022" -} -.fa-lock:before { - content: "\f023" -} -.fa-flag:before { - content: "\f024" -} -.fa-headphones:before { - content: "\f025" -} -.fa-volume-off:before { - content: "\f026" -} -.fa-volume-down:before { - content: "\f027" -} -.fa-volume-up:before { - content: "\f028" -} -.fa-qrcode:before { - content: "\F029 " -} -.fa-barcode:before { - content: "\F02A " -} -.fa-tag:before { - content: "\F02B " -} -.fa-tags:before { - content: "\F02C " -} -.fa-book:before, -.icon-book:before { - content: "\F02D " -} -.fa-bookmark:before { - content: "\F02E " -} -.fa-print:before { - content: "\F02F " -} -.fa-camera:before { - content: "\F030 " -} -.fa-font:before { - content: "\F031 " -} -.fa-bold:before { - content: "\F032 " -} -.fa-italic:before { - content: "\F033 " -} -.fa-text-height:before { - content: "\F034 " -} -.fa-text-width:before { - content: "\F035 " -} -.fa-align-left:before { - content: "\F036 " -} -.fa-align-center:before { - content: "\F037 " -} -.fa-align-right:before { - content: "\F038 " -} -.fa-align-justify:before { - content: "\F039 " -} -.fa-list:before { - content: "\F03A " -} -.fa-dedent:before, -.fa-outdent:before { - content: "\F03B " -} -.fa-indent:before { - content: "\F03C " -} -.fa-video-camera:before { - content: "\F03D " -} -.fa-photo:before, -.fa-image:before, -.fa-picture-o:before { - content: "\F03E " -} -.fa-pencil:before { - content: "\F040 " -} -.fa-map-marker:before { - content: "\F041 " -} -.fa-adjust:before { - content: "\F042 " -} -.fa-tint:before { - content: "\F043 " -} -.fa-edit:before, -.fa-pencil-square-o:before { - content: "\F044 " -} -.fa-share-square-o:before { - content: "\F045 " -} -.fa-check-square-o:before { - content: "\F046 " -} -.fa-arrows:before { - content: "\F047 " -} -.fa-step-backward:before { - content: "\F048 " -} -.fa-fast-backward:before { - content: "\F049 " -} -.fa-backward:before { - content: "\F04A " -} -.fa-play:before { - content: "\F04B " -} -.fa-pause:before { - content: "\F04C " -} -.fa-stop:before { - content: "\F04D " -} -.fa-forward:before { - content: "\F04E " -} -.fa-fast-forward:before { - content: "\F050 " -} -.fa-step-forward:before { - content: "\F051 " -} -.fa-eject:before { - content: "\F052 " -} -.fa-chevron-left:before { - content: "\F053 " -} -.fa-chevron-right:before { - content: "\F054 " -} -.fa-plus-circle:before { - content: "\F055 " -} -.fa-minus-circle:before { - content: "\F056 " -} -.fa-times-circle:before, -.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before { - content: "\F057 " -} -.fa-check-circle:before, -.wy-inline-validate.wy-inline-validate-success .wy-input-context:before { - content: "\F058 " -} -.fa-question-circle:before { - content: "\F059 " -} -.fa-info-circle:before { - content: "\F05A " -} -.fa-crosshairs:before { - content: "\F05B " -} -.fa-times-circle-o:before { - content: "\F05C " -} -.fa-check-circle-o:before { - content: "\F05D " -} -.fa-ban:before { - content: "\F05E " -} -.fa-arrow-left:before { - content: "\F060 " -} -.fa-arrow-right:before { - content: "\F061 " -} -.fa-arrow-up:before { - content: "\F062 " -} -.fa-arrow-down:before { - content: "\F063 " -} -.fa-mail-forward:before, -.fa-share:before { - content: "\F064 " -} -.fa-expand:before { - content: "\F065 " -} -.fa-compress:before { - content: "\F066 " -} -.fa-plus:before { - content: "\F067 " -} -.fa-minus:before { - content: "\F068 " -} -.fa-asterisk:before { - content: "\F069 " -} -.fa-exclamation-circle:before, -.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, -.wy-inline-validate.wy-inline-validate-info .wy-input-context:before, -.rst-content .admonition-title:before { - content: "\F06A " -} -.fa-gift:before { - content: "\F06B " -} -.fa-leaf:before { - content: "\F06C " -} -.fa-fire:before, -.icon-fire:before { - content: "\F06D " -} -.fa-eye:before { - content: "\F06E " -} -.fa-eye-slash:before { - content: "\F070 " -} -.fa-warning:before, -.fa-exclamation-triangle:before { - content: "\F071 " -} -.fa-plane:before { - content: "\F072 " -} -.fa-calendar:before { - content: "\F073 " -} -.fa-random:before { - content: "\F074 " -} -.fa-comment:before { - content: "\F075 " -} -.fa-magnet:before { - content: "\F076 " -} -.fa-chevron-up:before { - content: "\F077 " -} -.fa-chevron-down:before { - content: "\F078 " -} -.fa-retweet:before { - content: "\F079 " -} -.fa-shopping-cart:before { - content: "\F07A " -} -.fa-folder:before { - content: "\F07B " -} -.fa-folder-open:before { - content: "\F07C " -} -.fa-arrows-v:before { - content: "\F07D " -} -.fa-arrows-h:before { - content: "\F07E " -} -.fa-bar-chart-o:before, -.fa-bar-chart:before { - content: "\F080 " -} -.fa-twitter-square:before { - content: "\F081 " -} -.fa-facebook-square:before { - content: "\F082 " -} -.fa-camera-retro:before { - content: "\F083 " -} -.fa-key:before { - content: "\F084 " -} -.fa-gears:before, -.fa-cogs:before { - content: "\F085 " -} -.fa-comments:before { - content: "\F086 " -} -.fa-thumbs-o-up:before { - content: "\F087 " -} -.fa-thumbs-o-down:before { - content: "\F088 " -} -.fa-star-half:before { - content: "\F089 " -} -.fa-heart-o:before { - content: "\F08A " -} -.fa-sign-out:before { - content: "\F08B " -} -.fa-linkedin-square:before { - content: "\F08C " -} -.fa-thumb-tack:before { - content: "\F08D " -} -.fa-external-link:before { - content: "\F08E " -} -.fa-sign-in:before { - content: "\F090 " -} -.fa-trophy:before { - content: "\F091 " -} -.fa-github-square:before { - content: "\F092 " -} -.fa-upload:before { - content: "\F093 " -} -.fa-lemon-o:before { - content: "\F094 " -} -.fa-phone:before { - content: "\F095 " -} -.fa-square-o:before { - content: "\F096 " -} -.fa-bookmark-o:before { - content: "\F097 " -} -.fa-phone-square:before { - content: "\F098 " -} -.fa-twitter:before { - content: "\F099 " -} -.fa-facebook:before { - content: "\F09A " -} -.fa-github:before, -.icon-github:before { - content: "\F09B " -} -.fa-unlock:before { - content: "\F09C " -} -.fa-credit-card:before { - content: "\F09D " -} -.fa-rss:before { - content: "\F09E " -} -.fa-hdd-o:before { - content: "\F0A0 " -} -.fa-bullhorn:before { - content: "\F0A1 " -} -.fa-bell:before { - content: "\F0F3 " -} -.fa-certificate:before { - content: "\F0A3 " -} -.fa-hand-o-right:before { - content: "\F0A4 " -} -.fa-hand-o-left:before { - content: "\F0A5 " -} -.fa-hand-o-up:before { - content: "\F0A6 " -} -.fa-hand-o-down:before { - content: "\F0A7 " -} -.fa-arrow-circle-left:before, -.icon-circle-arrow-left:before { - content: "\F0A8 " -} -.fa-arrow-circle-right:before, -.icon-circle-arrow-right:before { - content: "\F0A9 " -} -.fa-arrow-circle-up:before { - content: "\F0AA " -} -.fa-arrow-circle-down:before { - content: "\F0AB " -} -.fa-globe:before { - content: "\F0AC " -} -.fa-wrench:before { - content: "\F0AD " -} -.fa-tasks:before { - content: "\F0AE " -} -.fa-filter:before { - content: "\F0B0 " -} -.fa-briefcase:before { - content: "\F0B1 " -} -.fa-arrows-alt:before { - content: "\F0B2 " -} -.fa-group:before, -.fa-users:before { - content: "\F0C0 " -} -.fa-chain:before, -.fa-link:before, -.icon-link:before { - content: "\f0c1" -} -.fa-cloud:before { - content: "\F0C2 " -} -.fa-flask:before { - content: "\F0C3 " -} -.fa-cut:before, -.fa-scissors:before { - content: "\F0C4 " -} -.fa-copy:before, -.fa-files-o:before { - content: "\F0C5 " -} -.fa-paperclip:before { - content: "\F0C6 " -} -.fa-save:before, -.fa-floppy-o:before { - content: "\F0C7 " -} -.fa-square:before { - content: "\F0C8 " -} -.fa-navicon:before, -.fa-reorder:before, -.fa-bars:before { - content: "\F0C9 " -} -.fa-list-ul:before { - content: "\F0CA " -} -.fa-list-ol:before { - content: "\F0CB " -} -.fa-strikethrough:before { - content: "\F0CC " -} -.fa-underline:before { - content: "\F0CD " -} -.fa-table:before { - content: "\F0CE " -} -.fa-magic:before { - content: "\F0D0 " -} -.fa-truck:before { - content: "\F0D1 " -} -.fa-pinterest:before { - content: "\F0D2 " -} -.fa-pinterest-square:before { - content: "\F0D3 " -} -.fa-google-plus-square:before { - content: "\f0fe" -} -.fa-google-plus:before { - content: "\F0D5 " -} -.fa-money:before { - content: "\F0D6 " -} -.fa-caret-down:before, -.wy-dropdown .caret:before, -.icon-caret-down:before { - content: "\F0D7 " -} -.fa-caret-up:before { - content: "\F0D8 " -} -.fa-caret-left:before { - content: "\F0D9 " -} -.fa-caret-right:before { - content: "\F0DA " -} -.fa-columns:before { - content: "\F0DB " -} -.fa-unsorted:before, -.fa-sort:before { - content: "\F0DC " -} -.fa-sort-down:before, -.fa-sort-desc:before { - content: "\F0DD " -} -.fa-sort-up:before, -.fa-sort-asc:before { - content: "\F0DE " -} -.fa-envelope:before { - content: "\F0E0 " -} -.fa-linkedin:before { - content: "\F0E1 " -} -.fa-rotate-left:before, -.fa-undo:before { - content: "\F0E2 " -} -.fa-legal:before, -.fa-gavel:before { - content: "\F0E3 " -} -.fa-dashboard:before, -.fa-tachometer:before { - content: "\F0E4 " -} -.fa-comment-o:before { - content: "\F0E5 " -} -.fa-comments-o:before { - content: "\F0E6 " -} -.fa-flash:before, -.fa-bolt:before { - content: "\F0E7 " -} -.fa-sitemap:before { - content: "\F0E8 " -} -.fa-umbrella:before { - content: "\F0E9 " -} -.fa-paste:before, -.fa-clipboard:before { - content: "\F0EA " -} -.fa-lightbulb-o:before { - content: "\F0EB " -} -.fa-exchange:before { - content: "\F0EC " -} -.fa-cloud-download:before { - content: "\F0ED " -} -.fa-cloud-upload:before { - content: "\F0EE " -} -.fa-user-md:before { - content: "\F0F0 " -} -.fa-stethoscope:before { - content: "\F0F1 " -} -.fa-suitcase:before { - content: "\F0F2 " -} -.fa-bell-o:before { - content: "\F0A2 " -} -.fa-coffee:before { - content: "\F0F4 " -} -.fa-cutlery:before { - content: "\F0F5 " -} -.fa-file-text-o:before { - content: "\F0F6 " -} -.fa-building-o:before { - content: "\F0F7 " -} -.fa-hospital-o:before { - content: "\F0F8 " -} -.fa-ambulance:before { - content: "\F0F9 " -} -.fa-medkit:before { - content: "\F0FA " -} -.fa-fighter-jet:before { - content: "\F0FB " -} -.fa-beer:before { - content: "\F0FC " -} -.fa-h-square:before { - content: "\F0FD " -} -.fa-plus-square:before { - content: "\F0FE " -} -.fa-angle-double-left:before { - content: "\F100 " -} -.fa-angle-double-right:before { - content: "\F101 " -} -.fa-angle-double-up:before { - content: "\F102 " -} -.fa-angle-double-down:before { - content: "\F103 " -} -.fa-angle-left:before { - content: "\F104 " -} -.fa-angle-right:before { - content: "\F105 " -} -.fa-angle-up:before { - content: "\F106 " -} -.fa-angle-down:before { - content: "\F107 " -} -.fa-desktop:before { - content: "\F108 " -} -.fa-laptop:before { - content: "\F109 " -} -.fa-tablet:before { - content: "\F10A " -} -.fa-mobile-phone:before, -.fa-mobile:before { - content: "\F10B " -} -.fa-circle-o:before { - content: "\F10C " -} -.fa-quote-left:before { - content: "\F10D " -} -.fa-quote-right:before { - content: "\F10E " -} -.fa-spinner:before { - content: "\F110 " -} -.fa-circle:before { - content: "\F111 " -} -.fa-mail-reply:before, -.fa-reply:before { - content: "\F112 " -} -.fa-github-alt:before { - content: "\F113 " -} -.fa-folder-o:before { - content: "\F114 " -} -.fa-folder-open-o:before { - content: "\F115 " -} -.fa-smile-o:before { - content: "\F118 " -} -.fa-frown-o:before { - content: "\F119 " -} -.fa-meh-o:before { - content: "\F11A " -} -.fa-gamepad:before { - content: "\F11B " -} -.fa-keyboard-o:before { - content: "\F11C " -} -.fa-flag-o:before { - content: "\F11D " -} -.fa-flag-checkered:before { - content: "\F11E " -} -.fa-terminal:before { - content: "\F120 " -} -.fa-code:before { - content: "\F121 " -} -.fa-mail-reply-all:before, -.fa-reply-all:before { - content: "\F122 " -} -.fa-star-half-empty:before, -.fa-star-half-full:before, -.fa-star-half-o:before { - content: "\F123 " -} -.fa-location-arrow:before { - content: "\F124 " -} -.fa-crop:before { - content: "\F125 " -} -.fa-code-fork:before { - content: "\F126 " -} -.fa-unlink:before, -.fa-chain-broken:before { - content: "\F127 " -} -.fa-question:before { - content: "\F128 " -} -.fa-info:before { - content: "\F129 " -} -.fa-exclamation:before { - content: "\F12A " -} -.fa-superscript:before { - content: "\F12B " -} -.fa-subscript:before { - content: "\F12C " -} -.fa-eraser:before { - content: "\F12D " -} -.fa-puzzle-piece:before { - content: "\F12E " -} -.fa-microphone:before { - content: "\F130 " -} -.fa-microphone-slash:before { - content: "\F131 " -} -.fa-shield:before { - content: "\F132 " -} -.fa-calendar-o:before { - content: "\F133 " -} -.fa-fire-extinguisher:before { - content: "\F134 " -} -.fa-rocket:before { - content: "\F135 " -} -.fa-maxcdn:before { - content: "\F136 " -} -.fa-chevron-circle-left:before { - content: "\F137 " -} -.fa-chevron-circle-right:before { - content: "\F138 " -} -.fa-chevron-circle-up:before { - content: "\F139 " -} -.fa-chevron-circle-down:before { - content: "\F13A " -} -.fa-html5:before { - content: "\F13B " -} -.fa-css3:before { - content: "\F13C " -} -.fa-anchor:before { - content: "\F13D " -} -.fa-unlock-alt:before { - content: "\F13E " -} -.fa-bullseye:before { - content: "\F140 " -} -.fa-ellipsis-h:before { - content: "\F141 " -} -.fa-ellipsis-v:before { - content: "\F142 " -} -.fa-rss-square:before { - content: "\F143 " -} -.fa-play-circle:before { - content: "\F144 " -} -.fa-ticket:before { - content: "\F145 " -} -.fa-minus-square:before { - content: "\f146" -} -.fa-minus-square-o:before, -.wy-menu-vertical li.on a span.toctree-expand:before, -.wy-menu-vertical li.current>a span.toctree-expand:before { - content: "\f147" -} -.fa-level-up:before { - content: "\F148 " -} -.fa-level-down:before { - content: "\F149 " -} -.fa-check-square:before { - content: "\F14A " -} -.fa-pencil-square:before { - content: "\F14B " -} -.fa-external-link-square:before { - content: "\F14C " -} -.fa-share-square:before { - content: "\F14D " -} -.fa-compass:before { - content: "\F14E " -} -.fa-toggle-down:before, -.fa-caret-square-o-down:before { - content: "\F150 " -} -.fa-toggle-up:before, -.fa-caret-square-o-up:before { - content: "\F151 " -} -.fa-toggle-right:before, -.fa-caret-square-o-right:before { - content: "\F152 " -} -.fa-euro:before, -.fa-eur:before { - content: "\F153 " -} -.fa-gbp:before { - content: "\F154 " -} -.fa-dollar:before, -.fa-usd:before { - content: "\F155 " -} -.fa-rupee:before, -.fa-inr:before { - content: "\F156 " -} -.fa-cny:before, -.fa-rmb:before, -.fa-yen:before, -.fa-jpy:before { - content: "\F157 " -} -.fa-ruble:before, -.fa-rouble:before, -.fa-rub:before { - content: "\F158 " -} -.fa-won:before, -.fa-krw:before { - content: "\F159 " -} -.fa-bitcoin:before, -.fa-btc:before { - content: "\F15A " -} -.fa-file:before { - content: "\F15B " -} -.fa-file-text:before { - content: "\F15C " -} -.fa-sort-alpha-asc:before { - content: "\F15D " -} -.fa-sort-alpha-desc:before { - content: "\F15E " -} -.fa-sort-amount-asc:before { - content: "\F160 " -} -.fa-sort-amount-desc:before { - content: "\F161 " -} -.fa-sort-numeric-asc:before { - content: "\F162 " -} -.fa-sort-numeric-desc:before { - content: "\F163 " -} -.fa-thumbs-up:before { - content: "\F164 " -} -.fa-thumbs-down:before { - content: "\F165 " -} -.fa-youtube-square:before { - content: "\F166 " -} -.fa-youtube:before { - content: "\F167 " -} -.fa-xing:before { - content: "\F168 " -} -.fa-xing-square:before { - content: "\F169 " -} -.fa-youtube-play:before { - content: "\F16A " -} -.fa-dropbox:before { - content: "\F16B " -} -.fa-stack-overflow:before { - content: "\F16C " -} -.fa-instagram:before { - content: "\F16D " -} -.fa-flickr:before { - content: "\F16E " -} -.fa-adn:before { - content: "\F170 " -} -.fa-bitbucket:before, -.icon-bitbucket:before { - content: "\F171 " -} -.fa-bitbucket-square:before { - content: "\F172 " -} -.fa-tumblr:before { - content: "\F173 " -} -.fa-tumblr-square:before { - content: "\F174 " -} -.fa-long-arrow-down:before { - content: "\F175 " -} -.fa-long-arrow-up:before { - content: "\F176 " -} -.fa-long-arrow-left:before { - content: "\F177 " -} -.fa-long-arrow-right:before { - content: "\F178 " -} -.fa-apple:before { - content: "\F179 " -} -.fa-windows:before { - content: "\F17A " -} -.fa-android:before { - content: "\F17B " -} -.fa-linux:before { - content: "\F17C " -} -.fa-dribbble:before { - content: "\F17D " -} -.fa-skype:before { - content: "\F17E " -} -.fa-foursquare:before { - content: "\F180 " -} -.fa-trello:before { - content: "\F181 " -} -.fa-female:before { - content: "\F182 " -} -.fa-male:before { - content: "\F183 " -} -.fa-gittip:before { - content: "\F184 " -} -.fa-sun-o:before { - content: "\F185 " -} -.fa-moon-o:before { - content: "\F186 " -} -.fa-archive:before { - content: "\F187 " -} -.fa-bug:before { - content: "\F188 " -} -.fa-vk:before { - content: "\F189 " -} -.fa-weibo:before { - content: "\F18A " -} -.fa-renren:before { - content: "\F18B " -} -.fa-pagelines:before { - content: "\F18C " -} -.fa-stack-exchange:before { - content: "\F18D " -} -.fa-arrow-circle-o-right:before { - content: "\F18E " -} -.fa-arrow-circle-o-left:before { - content: "\F190 " -} -.fa-toggle-left:before, -.fa-caret-square-o-left:before { - content: "\F191 " -} -.fa-dot-circle-o:before { - content: "\F192 " -} -.fa-wheelchair:before { - content: "\F193 " -} -.fa-vimeo-square:before { - content: "\F194 " -} -.fa-turkish-lira:before, -.fa-try:before { - content: "\F195 " -} -.fa-plus-square-o:before, -.wy-menu-vertical li span.toctree-expand:before { - content: "\f196" -} -.fa-space-shuttle:before { - content: "\F197 " -} -.fa-slack:before { - content: "\F198 " -} -.fa-envelope-square:before { - content: "\F199 " -} -.fa-wordpress:before { - content: "\F19A " -} -.fa-openid:before { - content: "\F19B " -} -.fa-institution:before, -.fa-bank:before, -.fa-university:before { - content: "\F19C " -} -.fa-mortar-board:before, -.fa-graduation-cap:before { - content: "\F19D " -} -.fa-yahoo:before { - content: "\F19E " -} -.fa-google:before { - content: "\F1A0 " -} -.fa-reddit:before { - content: "\F1A1 " -} -.fa-reddit-square:before { - content: "\F1A2 " -} -.fa-stumbleupon-circle:before { - content: "\F1A3 " -} -.fa-stumbleupon:before { - content: "\F1A4 " -} -.fa-delicious:before { - content: "\F1A5 " -} -.fa-digg:before { - content: "\F1A6 " -} -.fa-pied-piper:before { - content: "\F1A7 " -} -.fa-pied-piper-alt:before { - content: "\F1A8 " -} -.fa-drupal:before { - content: "\F1A9 " -} -.fa-joomla:before { - content: "\F1AA " -} -.fa-language:before { - content: "\F1AB " -} -.fa-fax:before { - content: "\F1AC " -} -.fa-building:before { - content: "\F1AD " -} -.fa-child:before { - content: "\F1AE " -} -.fa-paw:before { - content: "\F1B0 " -} -.fa-spoon:before { - content: "\F1B1 " -} -.fa-cube:before { - content: "\F1B2 " -} -.fa-cubes:before { - content: "\F1B3 " -} -.fa-behance:before { - content: "\F1B4 " -} -.fa-behance-square:before { - content: "\F1B5 " -} -.fa-steam:before { - content: "\F1B6 " -} -.fa-steam-square:before { - content: "\F1B7 " -} -.fa-recycle:before { - content: "\F1B8 " -} -.fa-automobile:before, -.fa-car:before { - content: "\F1B9 " -} -.fa-cab:before, -.fa-taxi:before { - content: "\F1BA " -} -.fa-tree:before { - content: "\F1BB " -} -.fa-spotify:before { - content: "\F1BC " -} -.fa-deviantart:before { - content: "\F1BD " -} -.fa-soundcloud:before { - content: "\F1BE " -} -.fa-database:before { - content: "\F1C0 " -} -.fa-file-pdf-o:before { - content: "\F1C1 " -} -.fa-file-word-o:before { - content: "\F1C2 " -} -.fa-file-excel-o:before { - content: "\F1C3 " -} -.fa-file-powerpoint-o:before { - content: "\F1C4 " -} -.fa-file-photo-o:before, -.fa-file-picture-o:before, -.fa-file-image-o:before { - content: "\F1C5 " -} -.fa-file-zip-o:before, -.fa-file-archive-o:before { - content: "\F1C6 " -} -.fa-file-sound-o:before, -.fa-file-audio-o:before { - content: "\F1C7 " -} -.fa-file-movie-o:before, -.fa-file-video-o:before { - content: "\F1C8 " -} -.fa-file-code-o:before { - content: "\F1C9 " -} -.fa-vine:before { - content: "\F1CA " -} -.fa-codepen:before { - content: "\F1CB " -} -.fa-jsfiddle:before { - content: "\F1CC " -} -.fa-life-bouy:before, -.fa-life-buoy:before, -.fa-life-saver:before, -.fa-support:before, -.fa-life-ring:before { - content: "\F1CD " -} -.fa-circle-o-notch:before { - content: "\F1CE " -} -.fa-ra:before, -.fa-rebel:before { - content: "\F1D0 " -} -.fa-ge:before, -.fa-empire:before { - content: "\F1D1 " -} -.fa-git-square:before { - content: "\F1D2 " -} -.fa-git:before { - content: "\F1D3 " -} -.fa-hacker-news:before { - content: "\F1D4 " -} -.fa-tencent-weibo:before { - content: "\F1D5 " -} -.fa-qq:before { - content: "\F1D6 " -} -.fa-wechat:before, -.fa-weixin:before { - content: "\F1D7 " -} -.fa-send:before, -.fa-paper-plane:before { - content: "\F1D8 " -} -.fa-send-o:before, -.fa-paper-plane-o:before { - content: "\F1D9 " -} -.fa-history:before { - content: "\F1DA " -} -.fa-circle-thin:before { - content: "\F1DB " -} -.fa-header:before { - content: "\F1DC " -} -.fa-paragraph:before { - content: "\F1DD " -} -.fa-sliders:before { - content: "\F1DE " -} -.fa-share-alt:before { - content: "\F1E0 " -} -.fa-share-alt-square:before { - content: "\F1E1 " -} -.fa-bomb:before { - content: "\F1E2 " -} -.fa-soccer-ball-o:before, -.fa-futbol-o:before { - content: "\F1E3 " -} -.fa-tty:before { - content: "\F1E4 " -} -.fa-binoculars:before { - content: "\F1E5 " -} -.fa-plug:before { - content: "\F1E6 " -} -.fa-slideshare:before { - content: "\F1E7 " -} -.fa-twitch:before { - content: "\F1E8 " -} -.fa-yelp:before { - content: "\F1E9 " -} -.fa-newspaper-o:before { - content: "\F1EA " -} -.fa-wifi:before { - content: "\F1EB " -} -.fa-calculator:before { - content: "\F1EC " -} -.fa-paypal:before { - content: "\F1ED " -} -.fa-google-wallet:before { - content: "\F1EE " -} -.fa-cc-visa:before { - content: "\F1F0 " -} -.fa-cc-mastercard:before { - content: "\F1F1 " -} -.fa-cc-discover:before { - content: "\F1F2 " -} -.fa-cc-amex:before { - content: "\F1F3 " -} -.fa-cc-paypal:before { - content: "\F1F4 " -} -.fa-cc-stripe:before { - content: "\F1F5 " -} -.fa-bell-slash:before { - content: "\F1F6 " -} -.fa-bell-slash-o:before { - content: "\F1F7 " -} -.fa-trash:before { - content: "\F1F8 " -} -.fa-copyright:before { - content: "\F1F9 " -} -.fa-at:before { - content: "\F1FA " -} -.fa-eyedropper:before { - content: "\F1FB " -} -.fa-paint-brush:before { - content: "\F1FC " -} -.fa-birthday-cake:before { - content: "\F1FD " -} -.fa-area-chart:before { - content: "\F1FE " -} -.fa-pie-chart:before { - content: "\F200 " -} -.fa-line-chart:before { - content: "\F201 " -} -.fa-lastfm:before { - content: "\F202 " -} -.fa-lastfm-square:before { - content: "\F203 " -} -.fa-toggle-off:before { - content: "\F204 " -} -.fa-toggle-on:before { - content: "\F205 " -} -.fa-bicycle:before { - content: "\F206 " -} -.fa-bus:before { - content: "\F207 " -} -.fa-ioxhost:before { - content: "\F208 " -} -.fa-angellist:before { - content: "\F209 " -} -.fa-cc:before { - content: "\F20A " -} -.fa-shekel:before, -.fa-sheqel:before, -.fa-ils:before { - content: "\F20B " -} -.fa-meanpath:before { - content: "\F20C " -} \ No newline at end of file diff --git a/docs/api_reference/themes/trueos_style/static/css/trueos_style.css b/docs/api_reference/themes/trueos_style/static/css/trueos_style.css deleted file mode 100644 index 62b2787..0000000 --- a/docs/api_reference/themes/trueos_style/static/css/trueos_style.css +++ /dev/null @@ -1,4107 +0,0 @@ -/**** Hand built CSS theme ****/ -/*** original ****/ -/*""""""""""""""""""""""""""""""""""""""""""""""""""""""""* - | Copied css with fa-entities fixed - sourced externally | - | to reduce the size/complexity of this css. (BEGIN) | - *""""""""""""""""""""""""""""""""""""""""""""""""""""""""*/ -@import 'font_awesome.css'; - -/* { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box -} */ - -article, -aside, -details, -figcaption, -figure, -footer, -header, -hgroup, -nav, -section { - display: block -} -audio, -canvas, -video { - display: inline-block; - *display: inline; - *zoom: 1 -} -audio:not([controls]) { - display: none -} -[hidden] { - display: none -} -html { - font-size: 100%; - -webkit-text-size-adjust: 100%; - -ms-text-size-adjust: 100% -} -body { - margin: 0 -} -a:hover, -a:active { - outline: 0 -} -abbr[title] { - border-bottom: 1px dotted -} -b, -strong { - font-weight: bold -} -blockquote { - margin: 0 -} -dfn { - font-style: italic -} -ins { - background: #ff9; - color: #000; - text-decoration: none -} -mark { - background: #ff0; - color: #000; - font-style: italic; - font-weight: bold -} -pre, -code, -.rst-content tt, -.rst-content code, -kbd, -samp { - font-family: monospace, serif; - _font-family: "courier new", monospace; - font-size: 1em -} -pre { - white-space: pre -} -q { - quotes: none -} -q:before, -q:after { - content: ""; - content: none -} -small { - font-size: 85% -} -sub, -sup { - font-size: 75%; - line-height: 0; - position: relative; - vertical-align: baseline -} -sup { - top: -0.5em -} -sub { - bottom: -0.25em -} -ul, -ol, -dl { - margin: 0; - padding: 0; - list-style: none; - list-style-image: none -} -/* custom */ -ul.simple { - margin-bottom: 16px; - line-height: 26px; -} -/* Custom */ -li { - list-style: none -} -dd { - margin: 0 -} -img { - border: 0; - -ms-interpolation-mode: bicubic; - vertical-align: middle; - max-width: 100% -} -svg:not(:root) { - overflow: hidden -} -figure { - margin: 0 -} -form { - margin: 0 -} -fieldset { - border: 0; - margin: 0; - padding: 0 -} -label { - cursor: pointer -} -legend { - border: 0; - *margin-left: -7px; - padding: 0; - white-space: normal -} -button, -input, -select, -textarea { - font-size: 100%; - margin: 0; - vertical-align: baseline; - *vertical-align: middle -} -button, -input { - line-height: normal -} -button, -input[type="button"], -input[type="reset"], -input[type="submit"] { - cursor: pointer; - -webkit-appearance: button; - *overflow: visible -} -button[disabled], -input[disabled] { - cursor: default -} -input[type="checkbox"], -input[type="radio"] { - box-sizing: border-box; - padding: 0; - *width: 13px; - *height: 13px -} -input[type="search"] { - -webkit-appearance: textfield; - -moz-box-sizing: content-box; - -webkit-box-sizing: content-box; - box-sizing: content-box -} -input[type="search"]::-webkit-search-decoration, -input[type="search"]::-webkit-search-cancel-button { - -webkit-appearance: none -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0 -} -textarea { - overflow: auto; - vertical-align: top; - resize: vertical -} -table { - border-collapse: collapse; - border-spacing: 0 -} -td { - vertical-align: top -} -.chromeframe { - margin: 0.2em 0; - background: #ccc; - color: #000; - padding: 0.2em 0 -} -.ir { - display: block; - border: 0; - text-indent: -999em; - overflow: hidden; - background-color: transparent; - background-repeat: no-repeat; - text-align: left; - direction: ltr; - *line-height: 0 -} -.ir br { - display: none -} -.hidden { - display: none; - visibility: hidden -} -.visuallyhidden { - border: 0; - clip: rect(0 0 0 0); - height: 1px; - margin: -1px; - overflow: hidden; - padding: 0; - position: absolute; - width: 1px -} -.visuallyhidden.focusable:active, -.visuallyhidden.focusable:focus { - clip: auto; - height: auto; - margin: 0; - overflow: visible; - position: static; - width: auto -} -.invisible { - visibility: hidden -} -.relative { - position: relative -} -big, -small { - font-size: 100% -} -@media print { - html, - body, - section { - background: none !important - } - * { - box-shadow: none !important; - text-shadow: none !important; - filter: none !important; - -ms-filter: none !important - } - a, - a:visited { - text-decoration: underline - } - .ir a:after, - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: "" - } - pre, - blockquote { - page-break-inside: avoid - } - thead { - display: table-header-group - } - tr, - img { - page-break-inside: avoid - } - img { - max-width: 100% !important - } - @page { - margin: 0.5cm - } - p, - h2, - .rst-content p.caption, - h3 { - orphans: 3; - widows: 3 - } - h2, - .rst-content p.caption, - h3 { - page-break-after: avoid - } -} -.fa:before, -.wy-menu-vertical li span.toctree-expand:before, -.wy-menu-vertical li.on a span.toctree-expand:before, -.wy-menu-vertical li.current>a span.toctree-expand:before, -.rst-content .admonition-title:before, -.rst-content h1 .headerlink:before, -.rst-content h2 .headerlink:before, -.rst-content p.caption .headerlink:before, -.rst-content h3 .headerlink:before, -.rst-content h4 .headerlink:before, -.rst-content h5 .headerlink:before, -.rst-content h6 .headerlink:before, -.rst-content dl dt .headerlink:before, -.rst-content tt.download span:first-child:before, -.rst-content code.download span:first-child:before, -.icon:before, -.wy-dropdown .caret:before, -.wy-inline-validate.wy-inline-validate-success .wy-input-context:before, -.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before, -.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, -.wy-inline-validate.wy-inline-validate-info .wy-input-context:before, -.wy-alert, -.rst-content .note, -.rst-content .attention, -.rst-content .caution, -.rst-content .danger, -.rst-content .error, -.rst-content .hint, -.rst-content .important, -.rst-content .tip, -.rst-content .warning, -.rst-content .seealso, -.rst-content .admonition-todo, -.btn, -input[type="text"], -input[type="password"], -input[type="email"], -input[type="url"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="datetime"], -input[type="datetime-local"], -input[type="week"], -input[type="number"], -input[type="search"], -input[type="tel"], -input[type="color"], -select, -textarea, -.wy-menu-vertical li.on a, -.wy-menu-vertical li.current>a, -.wy-side-nav-search>a, -.wy-side-nav-search .wy-dropdown>a, -.wy-nav-top a { - -webkit-font-smoothing: antialiased -} -.clearfix { - *zoom: 1 -} -.clearfix:before, -.clearfix:after { - display: table; - content: "" -} -.clearfix:after { - clear: both -} - -.fa, -.wy-menu-vertical li span.toctree-expand, -.wy-menu-vertical li.on a span.toctree-expand, -.wy-menu-vertical li.current>a span.toctree-expand, -.rst-content .admonition-title, -.rst-content h1 .headerlink, -.rst-content h2 .headerlink, -.rst-content p.caption .headerlink, -.rst-content h3 .headerlink, -.rst-content h4 .headerlink, -.rst-content h5 .headerlink, -.rst-content h6 .headerlink, -.rst-content dl dt .headerlink, -.rst-content tt.download span:first-child, -.rst-content code.download span:first-child, -.icon, -.wy-dropdown .caret, -.wy-inline-validate.wy-inline-validate-success .wy-input-context, -.wy-inline-validate.wy-inline-validate-danger .wy-input-context, -.wy-inline-validate.wy-inline-validate-warning .wy-input-context, -.wy-inline-validate.wy-inline-validate-info .wy-input-context { - font-family: inherit -} -.fa:before, -.wy-menu-vertical li span.toctree-expand:before, -.wy-menu-vertical li.on a span.toctree-expand:before, -.wy-menu-vertical li.current>a span.toctree-expand:before, -.rst-content .admonition-title:before, -.rst-content h1 .headerlink:before, -.rst-content h2 .headerlink:before, -.rst-content p.caption .headerlink:before, -.rst-content h3 .headerlink:before, -.rst-content h4 .headerlink:before, -.rst-content h5 .headerlink:before, -.rst-content h6 .headerlink:before, -.rst-content dl dt .headerlink:before, -.rst-content tt.download span:first-child:before, -.rst-content code.download span:first-child:before, -.icon:before, -.wy-dropdown .caret:before, -.wy-inline-validate.wy-inline-validate-success .wy-input-context:before, -.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before, -.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before, -.wy-inline-validate.wy-inline-validate-info .wy-input-context:before { - font-family: "FontAwesome"; - display: inline-block; - font-style: normal; - font-weight: normal; - line-height: 1; - text-decoration: inherit -} -a .fa, -a .wy-menu-vertical li span.toctree-expand, -.wy-menu-vertical li a span.toctree-expand, -.wy-menu-vertical li.on a span.toctree-expand, -.wy-menu-vertical li.current>aAdd RSS Feed, View Feed Details, Settings, and -Update Feeds Now span.toctree-expand, -a .rst-content .admonition-title, -.rst-content a .admonition-title, -a .rst-content h1 .headerlink, -.rst-content h1 a .headerlink, -a .rst-content h2 .headerlink, -.rst-content h2 a .headerlink, -a .rst-content p.caption .headerlink, -.rst-content p.caption a .headerlink, -a .rst-content h3 .headerlink, -.rst-content h3 a .headerlink, -a .rst-content h4 .headerlink, -.rst-content h4 a .headerlink, -a .rst-content h5 .headerlink, -.rst-content h5 a .headerlink, -a .rst-content h6 .headerlink, -.rst-content h6 a .headerlink, -a .rst-content dl dt .headerlink, -.rst-content dl dt a .headerlink, -a .rst-content tt.download span:first-child, -.rst-content tt.download a span:first-child, -a .rst-content code.download span:first-child, -.rst-content code.download a span:first-child, -a .icon { - display: inline-block; - text-decoration: inherit -} -.btn .fa, -.btn .wy-menu-vertical li span.toctree-expand, -.wy-menu-vertical li .btn span.toctree-expand, -.btn .wy-menu-vertical li.on a span.toctree-expand, -.wy-menu-vertical li.on a .btn span.toctree-expand, -.btn .wy-menu-vertical li.current>a span.toctree-expand, -.wy-menu-vertical li.current>a .btn span.toctree-expand, -.btn .rst-content .admonition-title, -.rst-content .btn .admonition-title, -.btn .rst-content h1 .headerlink, -.rst-content h1 .btn .headerlink, -.btn .rst-content h2 .headerlink, -.rst-content h2 .btn .headerlink, -.btn .rst-content p.caption .headerlink, -.rst-content p.caption .btn .headerlink, -.btn .rst-content h3 .headerlink, -.rst-content h3 .btn .headerlink, -.btn .rst-content h4 .headerlink, -.rst-content h4 .btn .headerlink, -.btn .rst-content h5 .headerlink, -.rst-content h5 .btn .headerlink, -.btn .rst-content h6 .headerlink, -.rst-content h6 .btn .headerlink, -.btn .rst-content dl dt .headerlink, -.rst-content dl dt .btn .headerlink, -.btn .rst-content tt.download span:first-child, -.rst-content tt.download .btn span:first-child, -.btn .rst-content code.download span:first-child, -.rst-content code.download .btn span:first-child, -.btn .icon, -.nav .fa, -.nav .wy-menu-vertical li span.toctree-expand, -.wy-menu-vertical li .nav span.toctree-expand, -.nav .wy-menu-vertical li.on a span.toctree-expand, -.wy-menu-vertical li.on a .nav span.toctree-expand, -.nav .wy-menu-vertical li.current>a span.toctree-expand, -.wy-menu-vertical li.current>a .nav span.toctree-expand, -.nav .rst-content .admonition-title, -.rst-content .nav .admonition-title, -.nav .rst-content h1 .headerlink, -.rst-content h1 .nav .headerlink, -.nav .rst-content h2 .headerlink, -.rst-content h2 .nav .headerlink, -.nav .rst-content p.caption .headerlink, -.rst-content p.caption .nav .headerlink, -.nav .rst-content h3 .headerlink, -.rst-content h3 .nav .headerlink, -.nav .rst-content h4 .headerlink, -.rst-content h4 .nav .headerlink, -.nav .rst-content h5 .headerlink, -.rst-content h5 .nav .headerlink, -.nav .rst-content h6 .headerlink, -.rst-content h6 .nav .headerlink, -.nav .rst-content dl dt .headerlink, -.rst-content dl dt .nav .headerlink, -.nav .rst-content tt.download span:first-child, -.rst-content tt.download .nav span:first-child, -.nav .rst-content code.download span:first-child, -.rst-content code.download .nav span:first-child, -.nav .icon { - display: inline -} -.btn .fa.fa-large, -.btn .wy-menu-vertical li span.fa-large.toctree-expand, -.wy-menu-vertical li .btn span.fa-large.toctree-expand, -.btn .rst-content .fa-large.admonition-title, -.rst-content .btn .fa-large.admonition-title, -.btn .rst-content h1 .fa-large.headerlink, -.rst-content h1 .btn .fa-large.headerlink, -.btn .rst-content h2 .fa-large.headerlink, -.rst-content h2 .btn .fa-large.headerlink, -.btn .rst-content p.caption .fa-large.headerlink, -.rst-content p.caption .btn .fa-large.headerlink, -.btn .rst-content h3 .fa-large.headerlink, -.rst-content h3 .btn .fa-large.headerlink, -.btn .rst-content h4 .fa-large.headerlink, -.rst-content h4 .btn .fa-large.headerlink, -.btn .rst-content h5 .fa-large.headerlink, -.rst-content h5 .btn .fa-large.headerlink, -.btn .rst-content h6 .fa-large.headerlink, -.rst-content h6 .btn .fa-large.headerlink, -.btn .rst-content dl dt .fa-large.headerlink, -.rst-content dl dt .btn .fa-large.headerlink, -.btn .rst-content tt.download span.fa-large:first-child, -.rst-content tt.download .btn span.fa-large:first-child, -.btn .rst-content code.download span.fa-large:first-child, -.rst-content code.download .btn span.fa-large:first-child, -.btn .fa-large.icon, -.nav .fa.fa-large, -.nav .wy-menu-vertical li span.fa-large.toctree-expand, -.wy-menu-vertical li .nav span.fa-large.toctree-expand, -.nav .rst-content .fa-large.admonition-title, -.rst-content .nav .fa-large.admonition-title, -.nav .rst-content h1 .fa-large.headerlink, -.rst-content h1 .nav .fa-large.headerlink, -.nav .rst-content h2 .fa-large.headerlink, -.rst-content h2 .nav .fa-large.headerlink, -.nav .rst-content p.caption .fa-large.headerlink, -.rst-content p.caption .nav .fa-large.headerlink, -.nav .rst-content h3 .fa-large.headerlink, -.rst-content h3 .nav .fa-large.headerlink, -.nav .rst-content h4 .fa-large.headerlink, -.rst-content h4 .nav .fa-large.headerlink, -.nav .rst-content h5 .fa-large.headerlink, -.rst-content h5 .nav .fa-large.headerlink, -.nav .rst-content h6 .fa-large.headerlink, -.rst-content h6 .nav .fa-large.headerlink, -.nav .rst-content dl dt .fa-large.headerlink, -.rst-content dl dt .nav .fa-large.headerlink, -.nav .rst-content tt.download span.fa-large:first-child, -.rst-content tt.download .nav span.fa-large:first-child, -.nav .rst-content code.download span.fa-large:first-child, -.rst-content code.download .nav span.fa-large:first-child, -.nav .fa-large.icon { - line-height: 0.9em -} -.btn .fa.fa-spin, -.btn .wy-menu-vertical li span.fa-spin.toctree-expand, -.wy-menu-vertical li .btn span.fa-spin.toctree-expand, -.btn .rst-content .fa-spin.admonition-title, -.rst-content .btn .fa-spin.admonition-title, -.btn .rst-content h1 .fa-spin.headerlink, -.rst-content h1 .btn .fa-spin.headerlink, -.btn .rst-content h2 .fa-spin.headerlink, -.rst-content h2 .btn .fa-spin.headerlink, -.btn .rst-content p.caption .fa-spin.headerlink, -.rst-content p.caption .btn .fa-spin.headerlink, -.btn .rst-content h3 .fa-spin.headerlink, -.rst-content h3 .btn .fa-spin.headerlink, -.btn .rst-content h4 .fa-spin.headerlink, -.rst-content h4 .btn .fa-spin.headerlink, -.btn .rst-content h5 .fa-spin.headerlink, -.rst-content h5 .btn .fa-spin.headerlink, -.btn .rst-content h6 .fa-spin.headerlink, -.rst-content h6 .btn .fa-spin.headerlink, -.btn .rst-content dl dt .fa-spin.headerlink, -.rst-content dl dt .btn .fa-spin.headerlink, -.btn .rst-content tt.download span.fa-spin:first-child, -.rst-content tt.download .btn span.fa-spin:first-child, -.btn .rst-content code.download span.fa-spin:first-child, -.rst-content code.download .btn span.fa-spin:first-child, -.btn .fa-spin.icon, -.nav .fa.fa-spin, -.nav .wy-menu-vertical li span.fa-spin.toctree-expand, -.wy-menu-vertical li .nav span.fa-spin.toctree-expand, -.nav .rst-content .fa-spin.admonition-title, -.rst-content .nav .fa-spin.admonition-title, -.nav .rst-content h1 .fa-spin.headerlink, -.rst-content h1 .nav .fa-spin.headerlink, -.nav .rst-content h2 .fa-spin.headerlink, -.rst-content h2 .nav .fa-spin.headerlink, -.nav .rst-content p.caption .fa-spin.headerlink, -.rst-content p.caption .nav .fa-spin.headerlink, -.nav .rst-content h3 .fa-spin.headerlink, -.rst-content h3 .nav .fa-spin.headerlink, -.nav .rst-content h4 .fa-spin.headerlink, -.rst-content h4 .nav .fa-spin.headerlink, -.nav .rst-content h5 .fa-spin.headerlink, -.rst-content h5 .nav .fa-spin.headerlink, -.nav .rst-content h6 .fa-spin.headerlink, -.rst-content h6 .nav .fa-spin.headerlink, -.nav .rst-content dl dt .fa-spin.headerlink, -.rst-content dl dt .nav .fa-spin.headerlink, -.nav .rst-content tt.download span.fa-spin:first-child, -.rst-content tt.download .nav span.fa-spin:first-child, -.nav .rst-content code.download span.fa-spin:first-child, -.rst-content code.download .nav span.fa-spin:first-child, -.nav .fa-spin.icon { - display: inline-block -} -.btn.fa:before, -.wy-menu-vertical li span.btn.toctree-expand:before, -.rst-content .btn.admonition-title:before, -.rst-content h1 .btn.headerlink:before, -.rst-content h2 .btn.headerlink:before, -.rst-content p.caption .btn.headerlink:before, -.rst-content h3 .btn.headerlink:before, -.rst-content h4 .btn.headerlink:before, -.rst-content h5 .btn.headerlink:before, -.rst-content h6 .btn.headerlink:before, -.rst-content dl dt .btn.headerlink:before, -.rst-content tt.download span.btn:first-child:before, -.rst-content code.download span.btn:first-child:before, -.btn.icon:before { - opacity: 0.5; - -webkit-transition: opacity 0.05s ease-in; - -moz-transition: opacity 0.05s ease-in; - transition: opacity 0.05s ease-in -} -.btn.fa:hover:before, -.wy-menu-vertical li span.btn.toctree-expand:hover:before, -.rst-content .btn.admonition-title:hover:before, -.rst-content h1 .btn.headerlink:hover:before, -.rst-content h2 .btn.headerlink:hover:before, -.rst-content p.caption .btn.headerlink:hover:before, -.rst-content h3 .btn.headerlink:hover:before, -.rst-content h4 .btn.headerlink:hover:before, -.rst-content h5 .btn.headerlink:hover:before, -.rst-content h6 .btn.headerlink:hover:before, -.rst-content dl dt .btn.headerlink:hover:before, -.rst-content tt.download span.btn:first-child:hover:before, -.rst-content code.download span.btn:first-child:hover:before, -.btn.icon:hover:before { - opacity: 1 -} -.btn-mini .fa:before, -.btn-mini .wy-menu-vertical li span.toctree-expand:before, -.wy-menu-vertical li .btn-mini span.toctree-expand:before, -.btn-mini .rst-content .admonition-title:before, -.rst-content .btn-mini .admonition-title:before, -.btn-mini .rst-content h1 .headerlink:before, -.rst-content h1 .btn-mini .headerlink:before, -.btn-mini .rst-content h2 .headerlink:before, -.rst-content h2 .btn-mini .headerlink:before, -.btn-mini .rst-content p.caption .headerlink:before, -.rst-content p.caption .btn-mini .headerlink:before, -.btn-mini .rst-content h3 .headerlink:before, -.rst-content h3 .btn-mini .headerlink:before, -.btn-mini .rst-content h4 .headerlink:before, -.rst-content h4 .btn-mini .headerlink:before, -.btn-mini .rst-content h5 .headerlink:before, -.rst-content h5 .btn-mini .headerlink:before, -.btn-mini .rst-content h6 .headerlink:before, -.rst-content h6 .btn-mini .headerlink:before, -.btn-mini .rst-content dl dt .headerlink:before, -.rst-content dl dt .btn-mini .headerlink:before, -.btn-mini .rst-content tt.download span:first-child:before, -.rst-content tt.download .btn-mini span:first-child:before, -.btn-mini .rst-content code.download span:first-child:before, -.rst-content code.download .btn-mini span:first-child:before, -.btn-mini .icon:before { - font-size: 14px; - vertical-align: -15% -} -.wy-alert, -.rst-content .note, -.rst-content .attention, -.rst-content .caution, -.rst-content .danger, -.rst-content .error, -.rst-content .hint, -.rst-content .important, -.rst-content .tip, -.rst-content .warning, -.rst-content .seealso, -.rst-content .admonition-todo { - padding: 12px; - line-height: 24px; - margin-bottom: 24px; - background: #e7f2fa -} -.wy-alert-title, -.rst-content .admonition-title { - color: #fff; - font-weight: bold; - display: block; - color: #fff; - background: #6ab0de; - margin: -12px; - padding: 6px 12px; - margin-bottom: 12px -} -.wy-alert.wy-alert-danger, -.rst-content .wy-alert-danger.note, -.rst-content .wy-alert-danger.attention, -.rst-content .wy-alert-danger.caution, -.rst-content .danger, -.rst-content .error, -.rst-content .wy-alert-danger.hint, -.rst-content .wy-alert-danger.important, -.rst-content .wy-alert-danger.tip, -.rst-content .wy-alert-danger.warning, -.rst-content .wy-alert-danger.seealso, -.rst-content .wy-alert-danger.admonition-todo { - background: #fdf3f2 -} -.wy-alert.wy-alert-danger .wy-alert-title, -.rst-content .wy-alert-danger.note .wy-alert-title, -.rst-content .wy-alert-danger.attention .wy-alert-title, -.rst-content .wy-alert-danger.caution .wy-alert-title, -.rst-content .danger .wy-alert-title, -.rst-content .error .wy-alert-title, -.rst-content .wy-alert-danger.hint .wy-alert-title, -.rst-content .wy-alert-danger.important .wy-alert-title, -.rst-content .wy-alert-danger.tip .wy-alert-title, -.rst-content .wy-alert-danger.warning .wy-alert-title, -.rst-content .wy-alert-danger.seealso .wy-alert-title, -.rst-content .wy-alert-danger.admonition-todo .wy-alert-title, -.wy-alert.wy-alert-danger .rst-content .admonition-title, -.rst-content .wy-alert.wy-alert-danger .admonition-title, -.rst-content .wy-alert-danger.note .admonition-title, -.rst-content .wy-alert-danger.attention .admonition-title, -.rst-content .wy-alert-danger.caution .admonition-title, -.rst-content .danger .admonition-title, -.rst-content .error .admonition-title, -.rst-content .wy-alert-danger.hint .admonition-title, -.rst-content .wy-alert-danger.important .admonition-title, -.rst-content .wy-alert-danger.tip .admonition-title, -.rst-content .wy-alert-danger.warning .admonition-title, -.rst-content .wy-alert-danger.seealso .admonition-title, -.rst-content .wy-alert-danger.admonition-todo .admonition-title { - background: #f23e35 -} -.wy-alert.wy-alert-warning, -.rst-content .wy-alert-warning.note, -.rst-content .attention, -.rst-content .caution, -.rst-content .wy-alert-warning.danger, -.rst-content .wy-alert-warning.error, -.rst-content .wy-alert-warning.hint, -.rst-content .wy-alert-warning.important, -.rst-content .wy-alert-warning.tip, -.rst-content .warning, -.rst-content .wy-alert-warning.seealso, -.rst-content .admonition-todo { - background: #ffd386 -} -.wy-alert.wy-alert-warning .wy-alert-title, -.rst-content .wy-alert-warning.note .wy-alert-title, -.rst-content .attention .wy-alert-title, -.rst-content .caution .wy-alert-title, -.rst-content .wy-alert-warning.danger .wy-alert-title, -.rst-content .wy-alert-warning.error .wy-alert-title, -.rst-content .wy-alert-warning.hint .wy-alert-title, -.rst-content .wy-alert-warning.important .wy-alert-title, -.rst-content .wy-alert-warning.tip .wy-alert-title, -.rst-content .warning .wy-alert-title, -.rst-content .wy-alert-warning.seealso .wy-alert-title, -.rst-content .admonition-todo .wy-alert-title, -.wy-alert.wy-alert-warning .rst-content .admonition-title, -.rst-content .wy-alert.wy-alert-warning .admonition-title, -.rst-content .wy-alert-warning.note .admonition-title, -.rst-content .attention .admonition-title, -.rst-content .caution .admonition-title, -.rst-content .wy-alert-warning.danger .admonition-title, -.rst-content .wy-alert-warning.error .admonition-title, -.rst-content .wy-alert-warning.hint .admonition-title, -.rst-content .wy-alert-warning.important .admonition-title, -.rst-content .wy-alert-warning.tip .admonition-title, -.rst-content .warning .admonition-title, -.rst-content .wy-alert-warning.seealso .admonition-title, -.rst-content .admonition-todo .admonition-title { - background: #ed6c1c -} -.wy-alert.wy-alert-info, -.rst-content .note, -.rst-content .wy-alert-info.attention, -.rst-content .wy-alert-info.caution, -.rst-content .wy-alert-info.danger, -.rst-content .wy-alert-info.error, -.rst-content .wy-alert-info.hint, -.rst-content .wy-alert-info.important, -.rst-content .wy-alert-info.tip, -.rst-content .wy-alert-info.warning, -.rst-content .seealso, -.rst-content .wy-alert-info.admonition-todo { - background: #e4f5ff -} -.wy-alert.wy-alert-info .wy-alert-title, -.rst-content .note .wy-alert-title, -.rst-content .wy-alert-info.attention .wy-alert-title, -.rst-content .wy-alert-info.caution .wy-alert-title, -.rst-content .wy-alert-info.danger .wy-alert-title, -.rst-content .wy-alert-info.error .wy-alert-title, -.rst-content .wy-alert-info.hint .wy-alert-title, -.rst-content .wy-alert-info.important .wy-alert-title, -.rst-content .wy-alert-info.tip .wy-alert-title, -.rst-content .wy-alert-info.warning .wy-alert-title, -.rst-content .seealso .wy-alert-title, -.rst-content .wy-alert-info.admonition-todo .wy-alert-title, -.wy-alert.wy-alert-info .rst-content .admonition-title, -.rst-content .wy-alert.wy-alert-info .admonition-title, -.rst-content .note .admonition-title, -.rst-content .wy-alert-info.attention .admonition-title, -.rst-content .wy-alert-info.caution .admonition-title, -.rst-content .wy-alert-info.danger .admonition-title, -.rst-content .wy-alert-info.error .admonition-title, -.rst-content .wy-alert-info.hint .admonition-title, -.rst-content .wy-alert-info.important .admonition-title, -.rst-content .wy-alert-info.tip .admonition-title, -.rst-content .wy-alert-info.warning .admonition-title, -.rst-content .seealso .admonition-title, -.rst-content .wy-alert-info.admonition-todo .admonition-title { - background: #69adfa -} -.wy-alert.wy-alert-success, -.rst-content .wy-alert-success.note, -.rst-content .wy-alert-success.attention, -.rst-content .wy-alert-success.caution, -.rst-content .wy-alert-success.danger, -.rst-content .wy-alert-success.error, -.rst-content .hint, -.rst-content .important, -.rst-content .tip, -.rst-content .wy-alert-success.warning, -.rst-content .wy-alert-success.seealso, -.rst-content .wy-alert-success.admonition-todo { - background: #cfe8c4 -} -.wy-alert.wy-alert-success .wy-alert-title, -.rst-content .wy-alert-success.note .wy-alert-title, -.rst-content .wy-alert-success.attention .wy-alert-title, -.rst-content .wy-alert-success.caution .wy-alert-title, -.rst-content .wy-alert-success.danger .wy-alert-title, -.rst-content .wy-alert-success.error .wy-alert-title, -.rst-content .hint .wy-alert-title, -.rst-content .important .wy-alert-title, -.rst-content .tip .wy-alert-title, -.rst-content .wy-alert-success.warning .wy-alert-title, -.rst-content .wy-alert-success.seealso .wy-alert-title, -.rst-content .wy-alert-success.admonition-todo .wy-alert-title, -.wy-alert.wy-alert-success .rst-content .admonition-title, -.rst-content .wy-alert.wy-alert-success .admonition-title, -.rst-content .wy-alert-success.note .admonition-title, -.rst-content .wy-alert-success.attention .admonition-title, -.rst-content .wy-alert-success.caution .admonition-title, -.rst-content .wy-alert-success.danger .admonition-title, -.rst-content .wy-alert-success.error .admonition-title, -.rst-content .hint .admonition-title, -.rst-content .important .admonition-title, -.rst-content .tip .admonition-title, -.rst-content .wy-alert-success.warning .admonition-title, -.rst-content .wy-alert-success.seealso .admonition-title, -.rst-content .wy-alert-success.admonition-todo .admonition-title { - background: #59c267 -} -.wy-alert.wy-alert-neutral, -.rst-content .wy-alert-neutral.note, -.rst-content .wy-alert-neutral.attention, -.rst-content .wy-alert-neutral.caution, -.rst-content .wy-alert-neutral.danger, -.rst-content .wy-alert-neutral.error, -.rst-content .wy-alert-neutral.hint, -.rst-content .wy-alert-neutral.important, -.rst-content .wy-alert-neutral.tip, -.rst-content .wy-alert-neutral.warning, -.rst-content .wy-alert-neutral.seealso, -.rst-content .wy-alert-neutral.admonition-todo { - background: #f3f6f6 -} -.wy-alert.wy-alert-neutral .wy-alert-title, -.rst-content .wy-alert-neutral.note .wy-alert-title, -.rst-content .wy-alert-neutral.attention .wy-alert-title, -.rst-content .wy-alert-neutral.caution .wy-alert-title, -.rst-content .wy-alert-neutral.danger .wy-alert-title, -.rst-content .wy-alert-neutral.error .wy-alert-title, -.rst-content .wy-alert-neutral.hint .wy-alert-title, -.rst-content .wy-alert-neutral.important .wy-alert-title, -.rst-content .wy-alert-neutral.tip .wy-alert-title, -.rst-content .wy-alert-neutral.warning .wy-alert-title, -.rst-content .wy-alert-neutral.seealso .wy-alert-title, -.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title, -.wy-alert.wy-alert-neutral .rst-content .admonition-title, -.rst-content .wy-alert.wy-alert-neutral .admonition-title, -.rst-content .wy-alert-neutral.note .admonition-title, -.rst-content .wy-alert-neutral.attention .admonition-title, -.rst-content .wy-alert-neutral.caution .admonition-title, -.rst-content .wy-alert-neutral.danger .admonition-title, -.rst-content .wy-alert-neutral.error .admonition-title, -.rst-content .wy-alert-neutral.hint .admonition-title, -.rst-content .wy-alert-neutral.important .admonition-title, -.rst-content .wy-alert-neutral.tip .admonition-title, -.rst-content .wy-alert-neutral.warning .admonition-title, -.rst-content .wy-alert-neutral.seealso .admonition-title, -.rst-content .wy-alert-neutral.admonition-todo .admonition-title { - color: #404040; - background: #e1e4e5 -} -.wy-alert.wy-alert-neutral a, -.rst-content .wy-alert-neutral.note a, -.rst-content .wy-alert-neutral.attention a, -.rst-content .wy-alert-neutral.caution a, -.rst-content .wy-alert-neutral.danger a, -.rst-content .wy-alert-neutral.error a, -.rst-content .wy-alert-neutral.hint a, -.rst-content .wy-alert-neutral.important a, -.rst-content .wy-alert-neutral.tip a, -.rst-content .wy-alert-neutral.warning a, -.rst-content .wy-alert-neutral.seealso a, -.rst-content .wy-alert-neutral.admonition-todo a { - color: #2980B9 -} -.wy-alert p:last-child, -.rst-content .note p:last-child, -.rst-content .attention p:last-child, -.rst-content .caution p:last-child, -.rst-content .danger p:last-child, -.rst-content .error p:last-child, -.rst-content .hint p:last-child, -.rst-content .important p:last-child, -.rst-content .tip p:last-child, -.rst-content .warning p:last-child, -.rst-content .seealso p:last-child, -.rst-content .admonition-todo p:last-child { - margin-bottom: 0 -} -.wy-tray-container { - position: fixed; - bottom: 0px; - left: 0; - z-index: 600 -} -.wy-tray-container li { - display: block; - width: 300px; - background: transparent; - color: #fff; - text-align: center; - box-shadow: 0 5px 5px 0 rgba(0, 0, 0, 0.1); - padding: 0 24px; - min-width: 20%; - opacity: 0; - height: 0; - line-height: 56px; - overflow: hidden; - -webkit-transition: all 0.3s ease-in; - -moz-transition: all 0.3s ease-in; - transition: all 0.3s ease-in -} -.wy-tray-container li.wy-tray-item-success { - background: #27AE60 -} -.wy-tray-container li.wy-tray-item-info { - background: #2980B9 -} -.wy-tray-container li.wy-tray-item-warning { - background: #E67E22 -} -.wy-tray-container li.wy-tray-item-danger { - background: #E74C3C -} -.wy-tray-container li.on { - opacity: 1; - height: 56px -} -@media screen and (max-width: 768px) { - .wy-tray-container { - bottom: auto; - top: 0; - width: 100% - } - .wy-tray-container li { - width: 100% - } -} -button { - font-size: 100%; - margin: 0; - vertical-align: baseline; - *vertical-align: middle; - cursor: pointer; - line-height: normal; - -webkit-appearance: button; - *overflow: visible -} -button::-moz-focus-inner, -input::-moz-focus-inner { - border: 0; - padding: 0 -} -button[disabled] { - cursor: default -} -.btn { - display: inline-block; - border-radius: 2px; - line-height: normal; - white-space: nowrap; - text-align: center; - cursor: pointer; - font-size: 100%; - padding: 6px 12px 8px 12px; - color: #fff; - border: 1px solid rgba(0, 0, 0, 0.1); - background-color: #27AE60; - text-decoration: none; - font-weight: normal; - font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; - box-shadow: 0px 1px 2px -1px rgba(255, 255, 255, 0.5) inset, 0px -2px 0px 0px rgba(0, 0, 0, 0.1) inset; - outline-none: false; - vertical-align: middle; - *display: inline; - zoom: 1; - -webkit-user-drag: none; - -webkit-user-select: none; - -moz-user-select: none; - -ms-user-select: none; - user-select: none; - -webkit-transition: all 0.1s linear; - -moz-transition: all 0.1s linear; - transition: all 0.1s linear -} -.btn-hover { - background: #2e8ece; - color: #fff -} -.btn:hover { - background: #2cc36b; - color: #fff -} -.btn:focus { - background: #2cc36b; - outline: 0 -} -.btn:active { - box-shadow: 0px -1px 0px 0px rgba(0, 0, 0, 0.05) inset, 0px 2px 0px 0px rgba(0, 0, 0, 0.1) inset; - padding: 8px 12px 6px 12px -} -.btn:visited { - color: #fff -} -.btn:disabled { - background-image: none; - filter: progid: DXImageTransform.Microsoft.gradient(enabled false); - filter: alpha(opacity=40); - opacity: 0.4; - cursor: not-allowed; - box-shadow: none -} -.btn-disabled { - background-image: none; - filter: progid: DXImageTransform.Microsoft.gradient(enabled false); - filter: alpha(opacity=40); - opacity: 0.4; - cursor: not-allowed; - box-shadow: none -} -.btn-disabled:hover, -.btn-disabled:focus, -.btn-disabled:active { - background-image: none; - filter: progid: DXImageTransform.Microsoft.gradient(enabled false); - filter: alpha(opacity=40); - opacity: 0.4; - cursor: not-allowed; - box-shadow: none -} -.btn::-moz-focus-inner { - padding: 0; - border: 0 -} -.btn-small { - font-size: 80% -} -.btn-info { - background-color: #2980B9 !important -} -.btn-info:hover { - background-color: #2e8ece !important -} -.btn-neutral { - background-color: #f3f6f6 !important; - color: #404040 !important -} -.btn-neutral:hover { - background-color: #e5ebeb !important; - color: #404040 -} -.btn-neutral:visited { - color: #404040 !important -} -.btn-success { - background-color: #27AE60 !important -} -.btn-success:hover { - background-color: #295 !important -} -.btn-danger { - background-color: #E74C3C !important -} -.btn-danger:hover { - background-color: #ea6153 !important -} -.btn-warning { - background-color: #E67E22 !important -} -.btn-warning:hover { - background-color: #e98b39 !important -} -.btn-invert { - background-color: #222 -} -.btn-invert:hover { - background-color: #2f2f2f !important -} -.btn-link { - background-color: transparent !important; - color: #2980B9; - box-shadow: none; - border-color: transparent !important -} -.btn-link:hover { - background-color: transparent !important; - color: #409ad5 !important; - box-shadow: none -} -.btn-link:active { - background-color: transparent !important; - color: #409ad5 !important; - box-shadow: none -} -.btn-link:visited { - color: #9B59B6 -} -.wy-btn-group .btn, -.wy-control .btn { - vertical-align: middle -} -.wy-btn-group { - margin-bottom: 24px; - *zoom: 1 -} -.wy-btn-group:before, -.wy-btn-group:after { - display: table; - content: "" -} -.wy-btn-group:after { - clear: both -} -.wy-dropdown { - position: relative; - display: inline-block -} -.wy-dropdown-active .wy-dropdown-menu { - display: block -} -.wy-dropdown-menu { - position: absolute; - left: 0; - display: none; - float: left; - top: 100%; - min-width: 100%; - background: #fcfcfc; - z-index: 100; - border: solid 1px #cfd7dd; - box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.1); - padding: 12px -} -.wy-dropdown-menu>dd>a { - display: block; - clear: both; - color: #404040; - white-space: nowrap; - font-size: 90%; - padding: 0 12px; - cursor: pointer -} -.wy-dropdown-menu>dd>a:hover { - background: #2980B9; - color: #fff -} -.wy-dropdown-menu>dd.divider { - border-top: solid 1px #cfd7dd; - margin: 6px 0 -} -.wy-dropdown-menu>dd.search { - padding-bottom: 12px -} -.wy-dropdown-menu>dd.search input[type="search"] { - width: 100% -} -.wy-dropdown-menu>dd.call-to-action { - background: #e3e3e3; - text-transform: uppercase; - font-weight: 500; - font-size: 80% -} -.wy-dropdown-menu>dd.call-to-action:hover { - background: #e3e3e3 -} -.wy-dropdown-menu>dd.call-to-action .btn { - color: #fff -} -.wy-dropdown.wy-dropdown-up .wy-dropdown-menu { - bottom: 100%; - top: auto; - left: auto; - right: 0 -} -.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu { - background: #fcfcfc; - margin-top: 2px -} -.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a { - padding: 6px 12px -} -.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover { - background: #2980B9; - color: #fff -} -.wy-dropdown.wy-dropdown-left .wy-dropdown-menu { - right: 0; - left: auto; - text-align: right -} -.wy-dropdown-arrow:before { - content: " "; - border-bottom: 5px solid #f5f5f5; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - position: absolute; - display: block; - top: -4px; - left: 50%; - margin-left: -3px -} -.wy-dropdown-arrow.wy-dropdown-arrow-left:before { - left: 11px -} -.wy-form-stacked select { - display: block -} -.wy-form-aligned input, -.wy-form-aligned textarea, -.wy-form-aligned select, -.wy-form-aligned .wy-help-inline, -.wy-form-aligned label { - display: inline-block; - *display: inline; - *zoom: 1; - vertical-align: middle -} -.wy-form-aligned .wy-control-group>label { - display: inline-block; - vertical-align: middle; - width: 10em; - margin: 6px 12px 0 0; - float: left -} -.wy-form-aligned .wy-control { - float: left -} -.wy-form-aligned .wy-control label { - display: block -} -.wy-form-aligned .wy-control select { - margin-top: 6px -} -fieldset { - border: 0; - margin: 0; - padding: 0 -} -legend { - display: block; - width: 100%; - border: 0; - padding: 0; - white-space: normal; - margin-bottom: 24px; - font-size: 150%; - *margin-left: -7px -} -label { - display: block; - margin: 0 0 0.3125em 0; - color: #333; - font-size: 90% -} -input, -select, -textarea { - font-size: 100%; - margin: 0; - vertical-align: baseline; - *vertical-align: middle -} -.wy-control-group { - margin-bottom: 24px; - *zoom: 1; - max-width: 68em; - margin-left: auto; - margin-right: auto; - *zoom: 1 -} -.wy-control-group:before, -.wy-control-group:after { - display: table; - content: "" -} -.wy-control-group:after { - clear: both -} -.wy-control-group:before, -.wy-control-group:after { - display: table; - content: "" -} -.wy-control-group:after { - clear: both -} -.wy-control-group.wy-control-group-required>label:after { - content: " *"; - color: #E74C3C -} -.wy-control-group .wy-form-full, -.wy-control-group .wy-form-halves, -.wy-control-group .wy-form-thirds { - padding-bottom: 12px -} -.wy-control-group .wy-form-full select, -.wy-control-group .wy-form-halves select, -.wy-control-group .wy-form-thirds select { - width: 100% -} -.wy-control-group .wy-form-full input[type="text"], -.wy-control-group .wy-form-full input[type="password"], -.wy-control-group .wy-form-full input[type="email"], -.wy-control-group .wy-form-full input[type="url"], -.wy-control-group .wy-form-full input[type="date"], -.wy-control-group .wy-form-full input[type="month"], -.wy-control-group .wy-form-full input[type="time"], -.wy-control-group .wy-form-full input[type="datetime"], -.wy-control-group .wy-form-full input[type="datetime-local"], -.wy-control-group .wy-form-full input[type="week"], -.wy-control-group .wy-form-full input[type="number"], -.wy-control-group .wy-form-full input[type="search"], -.wy-control-group .wy-form-full input[type="tel"], -.wy-control-group .wy-form-full input[type="color"], -.wy-control-group .wy-form-halves input[type="text"], -.wy-control-group .wy-form-halves input[type="password"], -.wy-control-group .wy-form-halves input[type="email"], -.wy-control-group .wy-form-halves input[type="url"], -.wy-control-group .wy-form-halves input[type="date"], -.wy-control-group .wy-form-halves input[type="month"], -.wy-control-group .wy-form-halves input[type="time"], -.wy-control-group .wy-form-halves input[type="datetime"], -.wy-control-group .wy-form-halves input[type="datetime-local"], -.wy-control-group .wy-form-halves input[type="week"], -.wy-control-group .wy-form-halves input[type="number"], -.wy-control-group .wy-form-halves input[type="search"], -.wy-control-group .wy-form-halves input[type="tel"], -.wy-control-group .wy-form-halves input[type="color"], -.wy-control-group .wy-form-thirds input[type="text"], -.wy-control-group .wy-form-thirds input[type="password"], -.wy-control-group .wy-form-thirds input[type="email"], -.wy-control-group .wy-form-thirds input[type="url"], -.wy-control-group .wy-form-thirds input[type="date"], -.wy-control-group .wy-form-thirds input[type="month"], -.wy-control-group .wy-form-thirds input[type="time"], -.wy-control-group .wy-form-thirds input[type="datetime"], -.wy-control-group .wy-form-thirds input[type="datetime-local"], -.wy-control-group .wy-form-thirds input[type="week"], -.wy-control-group .wy-form-thirds input[type="number"], -.wy-control-group .wy-form-thirds input[type="search"], -.wy-control-group .wy-form-thirds input[type="tel"], -.wy-control-group .wy-form-thirds input[type="color"] { - width: 100% -} -.wy-control-group .wy-form-full { - float: left; - display: block; - margin-right: 2.35765%; - width: 100%; - margin-right: 0 -} -.wy-control-group .wy-form-full:last-child { - margin-right: 0 -} -.wy-control-group .wy-form-halves { - float: left; - display: block; - margin-right: 2.35765%; - width: 48.82117% -} -.wy-control-group .wy-form-halves:last-child { - margin-right: 0 -} -.wy-control-group .wy-form-halves:nth-of-type(2n) { - margin-right: 0 -} -.wy-control-group .wy-form-halves:nth-of-type(2n+1) { - clear: left -} -.wy-control-group .wy-form-thirds { - float: left; - display: block; - margin-right: 2.35765%; - width: 31.76157% -} -.wy-control-group .wy-form-thirds:last-child { - margin-right: 0 -} -.wy-control-group .wy-form-thirds:nth-of-type(3n) { - margin-right: 0 -} -.wy-control-group .wy-form-thirds:nth-of-type(3n+1) { - clear: left -} -.wy-control-group.wy-control-group-no-input .wy-control { - margin: 6px 0 0 0; - font-size: 90% -} -.wy-control-no-input { - display: inline-block; - margin: 6px 0 0 0; - font-size: 90% -} -.wy-control-group.fluid-input input[type="text"], -.wy-control-group.fluid-input input[type="password"], -.wy-control-group.fluid-input input[type="email"], -.wy-control-group.fluid-input input[type="url"], -.wy-control-group.fluid-input input[type="date"], -.wy-control-group.fluid-input input[type="month"], -.wy-control-group.fluid-input input[type="time"], -.wy-control-group.fluid-input input[type="datetime"], -.wy-control-group.fluid-input input[type="datetime-local"], -.wy-control-group.fluid-input input[type="week"], -.wy-control-group.fluid-input input[type="number"], -.wy-control-group.fluid-input input[type="search"], -.wy-control-group.fluid-input input[type="tel"], -.wy-control-group.fluid-input input[type="color"] { - width: 100% -} -.wy-form-message-inline { - display: inline-block; - padding-left: 0.3em; - color: #666; - vertical-align: middle; - font-size: 90% -} -.wy-form-message { - display: block; - color: #999; - font-size: 70%; - margin-top: 0.3125em; - font-style: italic -} -.wy-form-message p { - font-size: inherit; - font-style: italic; - margin-bottom: 6px -} -.wy-form-message p:last-child { - margin-bottom: 0 -} -input { - line-height: normal -} -input[type="button"], -input[type="reset"], -input[type="submit"] { - -webkit-appearance: button; - cursor: pointer; - font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; - *overflow: visible -} -input[type="text"], -input[type="password"], -input[type="email"], -input[type="url"], -input[type="date"], -input[type="month"], -input[type="time"], -input[type="datetime"], -input[type="datetime-local"], -input[type="week"], -input[type="number"], -input[type="search"], -input[type="tel"], -input[type="color"] { - -webkit-appearance: none; - padding: 6px; - display: inline-block; - border: 1px solid #ccc; - font-size: 80%; - font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; - box-shadow: inset 0 1px 3px #ddd; - border-radius: 0; - -webkit-transition: border 0.3s linear; - -moz-transition: border 0.3s linear; - transition: border 0.3s linear -} -input[type="datetime-local"] { - padding: 0.34375em 0.625em -} -input[disabled] { - cursor: default -} -input[type="checkbox"], -input[type="radio"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; - padding: 0; - margin-right: 0.3125em; - *height: 13px; - *width: 13px -} -input[type="search"] { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box -} -input[type="search"]::-webkit-search-cancel-button, -input[type="search"]::-webkit-search-decoration { - -webkit-appearance: none -} -input[type="text"]:focus, -input[type="password"]:focus, -input[type="email"]:focus, -input[type="url"]:focus, -input[type="date"]:focus, -input[type="month"]:focus, -input[type="time"]:focus, -input[type="datetime"]:focus, -input[type="datetime-local"]:focus, -input[type="week"]:focus, -input[type="number"]:focus, -input[type="search"]:focus, -input[type="tel"]:focus, -input[type="color"]:focus { - outline: 0; - outline: thin dotted \\9; - border-color: #333 -} -input.no-focus:focus { - border-color: #ccc !important -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus { - outline: thin dotted #333; - outline: 1px auto #129FEA -} -input[type="text"][disabled], -input[type="password"][disabled], -input[type="email"][disabled], -input[type="url"][disabled], -input[type="date"][disabled], -input[type="month"][disabled], -input[type="time"][disabled], -input[type="datetime"][disabled], -input[type="datetime-local"][disabled], -input[type="week"][disabled], -input[type="number"][disabled], -input[type="search"][disabled], -input[type="tel"][disabled], -input[type="color"][disabled] { - cursor: not-allowed; - background-color: #fafafa -} -input:focus:invalid, -textarea:focus:invalid, -select:focus:invalid { - color: #E74C3C; - border: 1px solid #E74C3C -} -input:focus:invalid:focus, -textarea:focus:invalid:focus, -select:focus:invalid:focus { - border-color: #E74C3C -} -input[type="file"]:focus:invalid:focus, -input[type="radio"]:focus:invalid:focus, -input[type="checkbox"]:focus:invalid:focus { - outline-color: #E74C3C -} -input.wy-input-large { - padding: 12px; - font-size: 100% -} -textarea { - overflow: auto; - vertical-align: top; - width: 100%; - font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif -} -select, -textarea { - padding: 0.5em 0.625em; - display: inline-block; - border: 1px solid #ccc; - font-size: 80%; - box-shadow: inset 0 1px 3px #ddd; - -webkit-transition: border 0.3s linear; - -moz-transition: border 0.3s linear; - transition: border 0.3s linear -} -select { - border: 1px solid #ccc; - background-color: #fff -} -select[multiple] { - height: auto -} -select:focus, -textarea:focus { - outline: 0 -} -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - cursor: not-allowed; - background-color: #fafafa -} -input[type="radio"][disabled], -input[type="checkbox"][disabled] { - cursor: not-allowed -} -.wy-checkbox, -.wy-radio { - margin: 6px 0; - color: #404040; - display: block -} -.wy-checkbox input, -.wy-radio input { - vertical-align: baseline -} -.wy-form-message-inline { - display: inline-block; - *display: inline; - *zoom: 1; - vertical-align: middle -} -.wy-input-prefix, -.wy-input-suffix { - white-space: nowrap; - padding: 6px -} -.wy-input-prefix .wy-input-context, -.wy-input-suffix .wy-input-context { - line-height: 27px; - padding: 0 8px; - display: inline-block; - font-size: 80%; - background-color: #f3f6f6; - border: solid 1px #ccc; - color: #999 -} -.wy-input-suffix .wy-input-context { - border-left: 0 -} -.wy-input-prefix .wy-input-context { - border-right: 0 -} -.wy-switch { - width: 36px; - height: 12px; - margin: 12px 0; - position: relative; - border-radius: 4px; - background: #ccc; - cursor: pointer; - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out -} -.wy-switch:before { - position: absolute; - content: ""; - display: block; - width: 18px; - height: 18px; - border-radius: 4px; - background: #999; - left: -3px; - top: -3px; - -webkit-transition: all 0.2s ease-in-out; - -moz-transition: all 0.2s ease-in-out; - transition: all 0.2s ease-in-out -} -.wy-switch:after { - content: "false"; - position: absolute; - left: 48px; - display: block; - font-size: 12px; - color: #ccc -} -.wy-switch.active { - background: #1e8449 -} -.wy-switch.active:before { - left: 24px; - background: #27AE60 -} -.wy-switch.active:after { - content: "true" -} -.wy-switch.disabled, -.wy-switch.active.disabled { - cursor: not-allowed -} -.wy-control-group.wy-control-group-error .wy-form-message, -.wy-control-group.wy-control-group-error>label { - color: #E74C3C -} -.wy-control-group.wy-control-group-error input[type="text"], -.wy-control-group.wy-control-group-error input[type="password"], -.wy-control-group.wy-control-group-error input[type="email"], -.wy-control-group.wy-control-group-error input[type="url"], -.wy-control-group.wy-control-group-error input[type="date"], -.wy-control-group.wy-control-group-error input[type="month"], -.wy-control-group.wy-control-group-error input[type="time"], -.wy-control-group.wy-control-group-error input[type="datetime"], -.wy-control-group.wy-control-group-error input[type="datetime-local"], -.wy-control-group.wy-control-group-error input[type="week"], -.wy-control-group.wy-control-group-error input[type="number"], -.wy-control-group.wy-control-group-error input[type="search"], -.wy-control-group.wy-control-group-error input[type="tel"], -.wy-control-group.wy-control-group-error input[type="color"] { - border: solid 1px #E74C3C -} -.wy-control-group.wy-control-group-error textarea { - border: solid 1px #E74C3C -} -.wy-inline-validate { - white-space: nowrap -} -.wy-inline-validate .wy-input-context { - padding: 0.5em 0.625em; - display: inline-block; - font-size: 80% -} -.wy-inline-validate.wy-inline-validate-success .wy-input-context { - color: #27AE60 -} -.wy-inline-validate.wy-inline-validate-danger .wy-input-context { - color: #E74C3C -} -.wy-inline-validate.wy-inline-validate-warning .wy-input-context { - color: #E67E22 -} -.wy-inline-validate.wy-inline-validate-info .wy-input-context { - color: #2980B9 -} -.rotate-90 { - -webkit-transform: rotate(90deg); - -moz-transform: rotate(90deg); - -ms-transform: rotate(90deg); - -o-transform: rotate(90deg); - transform: rotate(90deg) -} -.rotate-180 { - -webkit-transform: rotate(180deg); - -moz-transform: rotate(180deg); - -ms-transform: rotate(180deg); - -o-transform: rotate(180deg); - transform: rotate(180deg) -} -.rotate-270 { - -webkit-transform: rotate(270deg); - -moz-transform: rotate(270deg); - -ms-transform: rotate(270deg); - -o-transform: rotate(270deg); - transform: rotate(270deg) -} -.mirror { - -webkit-transform: scaleX(-1); - -moz-transform: scaleX(-1); - -ms-transform: scaleX(-1); - -o-transform: scaleX(-1); - transform: scaleX(-1) -} -.mirror.rotate-90 { - -webkit-transform: scaleX(-1) rotate(90deg); - -moz-transform: scaleX(-1) rotate(90deg); - -ms-transform: scaleX(-1) rotate(90deg); - -o-transform: scaleX(-1) rotate(90deg); - transform: scaleX(-1) rotate(90deg) -} -.mirror.rotate-180 { - -webkit-transform: scaleX(-1) rotate(180deg); - -moz-transform: scaleX(-1) rotate(180deg); - -ms-transform: scaleX(-1) rotate(180deg); - -o-transform: scaleX(-1) rotate(180deg); - transform: scaleX(-1) rotate(180deg) -} -.mirror.rotate-270 { - -webkit-transform: scaleX(-1) rotate(270deg); - -moz-transform: scaleX(-1) rotate(270deg); - -ms-transform: scaleX(-1) rotate(270deg); - -o-transform: scaleX(-1) rotate(270deg); - transform: scaleX(-1) rotate(270deg) -} -@media only screen and (max-width: 480px) { - .wy-form button[type="submit"] { - margin: 0.7em 0 0 - } - .wy-form input[type="text"], - .wy-form input[type="password"], - .wy-form input[type="email"], - .wy-form input[type="url"], - .wy-form input[type="date"], - .wy-form input[type="month"], - .wy-form input[type="time"], - .wy-form input[type="datetime"], - .wy-form input[type="datetime-local"], - .wy-form input[type="week"], - .wy-form input[type="number"], - .wy-form input[type="search"], - .wy-form input[type="tel"], - .wy-form input[type="color"] { - margin-bottom: 0.3em; - display: block - } - .wy-form label { - margin-bottom: 0.3em; - display: block - } - .wy-form input[type="password"], - .wy-form input[type="email"], - .wy-form input[type="url"], - .wy-form input[type="date"], - .wy-form input[type="month"], - .wy-form input[type="time"], - .wy-form input[type="datetime"], - .wy-form input[type="datetime-local"], - .wy-form input[type="week"], - .wy-form input[type="number"], - .wy-form input[type="search"], - .wy-form input[type="tel"], - .wy-form input[type="color"] { - margin-bottom: 0 - } - .wy-form-aligned .wy-control-group label { - margin-bottom: 0.3em; - text-align: left; - display: block; - width: 100% - } - .wy-form-aligned .wy-control { - margin: 1.5em 0 0 0 - } - .wy-form .wy-help-inline, - .wy-form-message-inline, - .wy-form-message { - display: block; - font-size: 80%; - padding: 6px 0 - } -} -@media screen and (max-width: 768px) { - .tablet-hide { - display: none - } -} -@media screen and (max-width: 480px) { - .mobile-hide { - display: none - } -} -.float-left { - float: left -} -.float-right { - float: right -} -.full-width { - width: 100% -} -.wy-table, -.rst-content table.docutils, -.rst-content table.field-list { - border-collapse: collapse; - border-spacing: 0; - empty-cells: show; - margin-bottom: 24px; - line-height: 19px; -} -.wy-table caption, -.rst-content table.docutils caption, -.rst-content table.field-list caption { - color: #404040; - font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif; - font-size: 100%; - font-weight: 700; - padding: .2em; - text-align: left; - caption-side: bottom -} -.wy-table td, -.rst-content table.docutils td, -.rst-content table.field-list td, -.wy-table th, -.rst-content table.docutils th, -.rst-content table.field-list th { - font-size: 100%; - margin: 0; - overflow: visible; - padding: 8px 16px; -} -.wy-table td:first-child, -.rst-content table.docutils td:first-child, -.rst-content table.field-list td:first-child, -.wy-table th:first-child, -.rst-content table.docutils th:first-child, -.rst-content table.field-list th:first-child { - border-left-width: 0 -} -.wy-table thead, -.rst-content table.docutils thead, -.rst-content table.field-list thead { - color: #000; - text-align: left; - vertical-align: bottom; - white-space: nowrap -} -.wy-table thead th, -.rst-content table.docutils thead th, -.rst-content table.field-list thead th { - font-weight: bold; - border-bottom: solid 2px #e1e4e5 -} -.wy-table td, -.rst-content table.docutils td, -.rst-content table.field-list td { - background-color: transparent; - vertical-align: middle -} -.wy-table td p, -.rst-content table.docutils td p, -.rst-content table.field-list td p { -// line-height: 18px; - line-height: 19px; -} -.wy-table td p:last-child, -.rst-content table.docutils td p:last-child, -.rst-content table.field-list td p:last-child { - margin-bottom: 0 -} -.wy-table .wy-table-cell-min, -.rst-content table.docutils .wy-table-cell-min, -.rst-content table.field-list .wy-table-cell-min { - width: 1%; - padding-right: 0 -} -.wy-table .wy-table-cell-min input[type=checkbox], -.rst-content table.docutils .wy-table-cell-min input[type=checkbox], -.rst-content table.field-list .wy-table-cell-min input[type=checkbox], -.wy-table .wy-table-cell-min input[type=checkbox], -.rst-content table.docutils .wy-table-cell-min input[type=checkbox], -.rst-content table.field-list .wy-table-cell-min input[type=checkbox] { - margin: 0 -} -.wy-table-secondary { - color: gray; - font-size: 90% -} -.wy-table-tertiary { - color: gray; - font-size: 80% -} -.wy-table-odd td, -.wy-table-striped tr:nth-child(odd) td, -.rst-content table.docutils:not(.field-list) tr:nth-child(odd) td { - background-color: #e1e1d0; -} -.wy-table-odd td, -.wy-table-striped tr:nth-child(odd):hover td, -.rst-content table.docutils:not(.field-list) tr:nth-child(odd):hover td { - background-color: #85adad -} -.wy-table-even td, -.wy-table-striped tr:nth-child(even):hover td, -.rst-content table.docutils:not(.field-list) tr:nth-child(even):hover td { - background-color: #85adad -} -.wy-table tr, -.rst-content table.docutils th:hover{ - background-color: #85adad -} -.wy-table-backed { - background-color: #f3f6f6 -} -.wy-table-bordered-all, -.rst-content table.docutils { - border: 1px solid #e1e4e5 -} -.wy-table-bordered-all td, -.rst-content table.docutils td { - border-bottom: 1px solid #e1e4e5; - border-left: 1px solid #e1e4e5 -} -.wy-table-bordered-all tbody>tr:last-child td, -.rst-content table.docutils tbody>tr:last-child td { - border-bottom-width: 0 -} -.wy-table-bordered { - border: 1px solid #e1e4e5 -} -.wy-table-bordered-rows td { - border-bottom: 1px solid #e1e4e5 -} -.wy-table-bordered-rows tbody>tr:last-child td { - border-bottom-width: 0 -} -.wy-table-horizontal tbody>tr:last-child td { - border-bottom-width: 0 -} -.wy-table-horizontal td, -.wy-table-horizontal th { - border-width: 0 0 1px 0; - border-bottom: 1px solid #e1e4e5 -} -.wy-table-horizontal tbody>tr:last-child td { - border-bottom-width: 0 -} -.wy-table-responsive { - margin-bottom: 24px; - max-width: 100%; - overflow: auto -} -.wy-table-responsive table { - margin-bottom: 0 !important -} -.wy-table-responsive table td, -.wy-table-responsive table th { - white-space: inherit -} -a { - color: #0707ff; - text-decoration: none; - cursor: pointer -} -a:hover { - color: #0707ff; - text-decoration: underline -} -a:visited { - color: #8b0000 -} -html { - height: 100%; - overflow-x: hidden -} -body { - font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; - font-weight: normal; - color: #404040; - min-height: 100%; - overflow-x: hidden; - background: #edf0f2 -} -.wy-text-left { - text-align: left -} -.wy-text-center { - text-align: center -} -.wy-text-right { - text-align: right -} -.wy-text-large { - font-size: 120% -} -.wy-text-normal { - font-size: 100% -} -.wy-text-small, -small { - font-size: 80% -} -.wy-text-strike { - text-decoration: line-through -} -.wy-text-warning { - color: #E67E22 !important -} -a.wy-text-warning:hover { - color: #eb9950 !important -} -.wy-text-info { - color: #2980B9 !important -} -a.wy-text-info:hover { - color: #409ad5 !important -} -.wy-text-success { - color: #27AE60 !important -} -a.wy-text-success:hover { - color: #36d278 !important -} -.wy-text-danger { - color: #E74C3C !important -} -a.wy-text-danger:hover { - color: #ed7669 !important -} -.wy-text-neutral { - color: #404040 !important -} -a.wy-text-neutral:hover { - color: #595959 !important -} -h1, -h2, -.rst-content p.caption, -h3, -h4, -h5, -h6, -legend { - margin-top: 0; - font-weight: 700; - font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif -} -p { - line-height: 26px; - margin: 0; - font-size: 100%; - margin-bottom: 24px -} -h1 { - font-size: 2em -} -h2 { - font-size: 1.75em -} -h3 { - font-size: 1.5em -} -h4, -.rst-content p.caption { - font-size: 1.25em -} -h5 { - font-size: 1.1em -} -h6 { - font-size: 100% -} -hr { - display: block; - height: 1px; - border: 0; - border-top: 1px solid #e1e4e5; - margin: 24px 0; - padding: 0 -} -code, -.rst-content tt, -.rst-content code { - /*white-space: nowrap; - max-width: 100%; - background: #fff; - border: solid 1px #e1e4e5; - font-size: 75%; - padding: 0 5px; - font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; - color: #E74C3C; - overflow-x: auto*/ -} -code.code-large, -.rst-content tt.code-large { - font-size: 90% -} -.wy-plain-list-disc, -.rst-content .section ul, -.rst-content .toctree-wrapper ul, -article ul { - list-style: disc; - line-height: 24px; - margin-bottom: 24px -} -.wy-plain-list-disc li, -.rst-content .section ul li, -.rst-content .toctree-wrapper ul li, -article ul li { - list-style: disc; - margin-left: 24px -} -.wy-plain-list-disc li p:last-child, -.rst-content .section ul li p:last-child, -.rst-content .toctree-wrapper ul li p:last-child, -article ul li p:last-child { - margin-bottom: 0 -} -.wy-plain-list-disc li ul, -.rst-content .section ul li ul, -.rst-content .toctree-wrapper ul li ul, -article ul li ul { - margin-bottom: 0 -} -.wy-plain-list-disc li li, -.rst-content .section ul li li, -.rst-content .toctree-wrapper ul li li, -article ul li li { - list-style: circle -} -.wy-plain-list-disc li li li, -.rst-content .section ul li li li, -.rst-content .toctree-wrapper ul li li li, -article ul li li li { - list-style: square -} -.wy-plain-list-disc li ol li, -.rst-content .section ul li ol li, -.rst-content .toctree-wrapper ul li ol li, -article ul li ol li { - list-style: decimal -} -.wy-plain-list-decimal, -.rst-content .section ol, -.rst-content ol.arabic, -article ol { - list-style: decimal; - line-height: 24px; - margin-bottom: 24px -} -.wy-plain-list-decimal li, -.rst-content .section ol li, -.rst-content ol.arabic li, -article ol li { - list-style: decimal; - margin-left: 24px -} -.wy-plain-list-decimal li p:last-child, -.rst-content .section ol li p:last-child, -.rst-content ol.arabic li p:last-child, -article ol li p:last-child { - margin-bottom: 0 -} -.wy-plain-list-decimal li ul, -.rst-content .section ol li ul, -.rst-content ol.arabic li ul, -article ol li ul { - margin-bottom: 0 -} -.wy-plain-list-decimal li ul li, -.rst-content .section ol li ul li, -.rst-content ol.arabic li ul li, -article ol li ul li { - list-style: disc -} -.codeblock-example { - border: 1px solid #e1e4e5; - border-bottom: none; - padding: 24px; - padding-top: 48px; - font-weight: 500; - background: #fff; - position: relative -} -.codeblock-example:after { - content: "Example"; - position: absolute; - top: 0px; - left: 0px; - background: #9B59B6; - color: #fff; - padding: 6px 12px -} -.codeblock-example.prettyprint-example-only { - border: 1px solid #e1e4e5; - margin-bottom: 24px -} -.codeblock, -pre.literal-block, -.rst-content .literal-block, -.rst-content pre.literal-block, -div[class^='highlight'] { - border: 1px solid #e1e4e5; - padding: 0px; - overflow-x: auto; - background: #fff; - margin: 1px 0 24px 0 -} -.codeblock div[class^='highlight'], -pre.literal-block div[class^='highlight'], -.rst-content .literal-block div[class^='highlight'], -div[class^='highlight'] div[class^='highlight'] { - border: none; - background: none; - margin: 0 -} -div[class^='highlight'] td.code { - width: 100% -} -.linenodiv pre { - border-right: solid 1px #e6e9ea; - margin: 0; - padding: 12px 12px; - font-family: Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace; - font-size: 12px; - line-height: 1.5; - color: #d9d9d9 -} -div[class^='highlight'] pre { - white-space: pre; - margin: 0; - padding: 10px 10px; - font-family: 'Inconsolata', monospace; - font-size: 100%; - line-height: 1.5; - display: block; - overflow: auto; - color: #404040; - background: #E7EBF4 -} -@media print { - .codeblock, - pre.literal-block, - .rst-content .literal-block, - .rst-content pre.literal-block, - div[class^='highlight'], - div[class^='highlight'] pre { - white-space: pre-wrap - } -} -.hll { - background-color: #ffc; - margin: 0 -12px; - padding: 0 12px; - display: block -} -.c { - color: #998; - font-style: italic -} -.err { - color: #a61717; - background-color: #e3d2d2 -} -.k { - font-weight: bold -} -.o { - font-weight: bold -} -.cm { - color: #998; - font-style: italic -} -.cp { - color: #999; - font-weight: bold -} -.c1 { - color: #998; - font-style: italic -} -.cs { - color: #999; - font-weight: bold; - font-style: italic -} -.gd { - color: #000; - background-color: #fdd -} -.gd .x { - color: #000; - background-color: #faa -} -.ge { - font-style: italic -} -.gr { - color: #a00 -} -.gh { - color: #999 -} -.gi { - color: #000; - background-color: #dfd -} -.gi .x { - color: #000; - background-color: #afa -} -.go { - color: #888 -} -.gp { - color: #555 -} -.gs { - font-weight: bold -} -.gu { - color: purple; - font-weight: bold -} -.gt { - color: #a00 -} -.kc { - font-weight: bold -} -.kd { - font-weight: bold -} -.kn { - font-weight: bold -} -.kp { - font-weight: bold -} -.kr { - font-weight: bold -} -.kt { - color: #458; - font-weight: bold -} -.m { - color: #099 -} -.s { - color: #d14 -} -.n { - color: #333 -} -.na { - color: teal -} -.nb { - color: #0086b3 -} -.nc { - color: #458; - font-weight: bold -} -.no { - color: teal -} -.ni { - color: purple -} -.ne { - color: #900; - font-weight: bold -} -.nf { - color: #900; - font-weight: bold -} -.nn { - color: #555 -} -.nt { - color: navy -} -.nv { - color: teal -} -.ow { - font-weight: bold -} -.w { - color: #bbb -} -.mf { - color: #099 -} -.mh { - color: #099 -} -.mi { - color: #099 -} -.mo { - color: #099 -} -.sb { - color: #d14 -} -.sc { - color: #d14 -} -.sd { - color: #d14 -} -.s2 { - color: #d14 -} -.se { - color: #d14 -} -.sh { - color: #d14 -} -.si { - color: #d14 -} -.sx { - color: #d14 -} -.sr { - color: #009926 -} -.s1 { - color: #d14 -} -.ss { - color: #990073 -} -.bp { - color: #999 -} -.vc { - color: teal -} -.vg { - color: teal -} -.vi { - color: teal -} -.il { - color: #099 -} -.gc { - color: #999; - background-color: #EAF2F5 -} -.wy-breadcrumbs li { - display: inline-block -} -.wy-breadcrumbs li.wy-breadcrumbs-aside { - float: right -} -.wy-breadcrumbs li a { - display: inline-block; - padding: 5px -} -.wy-breadcrumbs li a:first-child { - padding-left: 0 -} -.wy-breadcrumbs-extra { - margin-bottom: 0; - color: #b3b3b3; - font-size: 80%; - display: inline-block -} -@media screen and (max-width: 480px) { - .wy-breadcrumbs-extra { - display: none - } - .wy-breadcrumbs li.wy-breadcrumbs-aside { - display: none - } -} -@media print { - .wy-breadcrumbs li.wy-breadcrumbs-aside { - display: none - } -} -.wy-affix { - position: fixed; - top: 1.618em -} -.wy-menu a:hover { - text-decoration: none -} -.wy-menu-horiz { - *zoom: 1 -} -.wy-menu-horiz:before, -.wy-menu-horiz:after { - display: table; - content: "" -} -.wy-menu-horiz:after { - clear: both -} -.wy-menu-horiz ul, -.wy-menu-horiz li { - display: inline-block -} -.wy-menu-horiz li:hover { - background: rgba(255, 255, 255, 0.1) -} -.wy-menu-horiz li.divide-left { - border-left: solid 1px #404040 -} -.wy-menu-horiz li.divide-right { - border-right: solid 1px #404040 -} -.wy-menu-horiz a { - height: 32px; - display: inline-block; - line-height: 32px; - padding: 0 16px -} -.wy-menu-vertical header, -.wy-menu-vertical p.caption { - height: 32px; - display: inline-block; - line-height: 32px; - padding: 0 1.618em; - margin-bottom: 0; - display: block; - font-weight: bold; - text-transform: uppercase; - font-size: 80%; - color: #555; - white-space: nowrap -} -.wy-menu-vertical ul { - margin-bottom: 0 -} -.wy-menu-vertical li.divide-top { - border-top: solid 1px #404040 -} -.wy-menu-vertical li.divide-bottom { - border-bottom: solid 1px #404040 -} -.wy-menu-vertical li.current { -// background: #e3e3e3 - background: #e3e3ff -} -.wy-menu-vertical li.current a { - color: white; - border-right: none; - padding: 0.4045em 2.427em -} -.wy-menu-vertical li.current a:hover { - color: #f5f5f5 -} -.wy-menu-vertical li code, -.wy-menu-vertical li .rst-content tt, -.rst-content .wy-menu-vertical li tt { - border: none; - background: inherit; - color: inherit; - padding-left: 0; - padding-right: 0 -} -.wy-menu-vertical li span.toctree-expand { - display: block; - float: left; - margin-left: -1.2em; - font-size: 0.8em; - line-height: 1.6em; - color: #4d4d4d -} -.wy-menu-vertical li.on a, -.wy-menu-vertical li.current>a { - color: #f5f5f5; - padding: 0.4045em 1.618em; - font-weight: bold; - position: relative; - background: rgba(176,0,0,1); - background: -moz-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: -webkit-gradient(left top, right top, color-stop(0%, rgba(176,0,0,1)), color-stop(6%, rgba(176,0,0,1)), color-stop(44%, rgba(181,7,7,1)), color-stop(95%, rgba(237,14,14,1)), color-stop(100%, rgba(237,14,14,1))); - background: -webkit-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: -o-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: -ms-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: linear-gradient(to right, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); -filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b00000', endColorstr='#ed0e0e', GradientType=1 ); - border: none; - border-bottom: none; - border-top: none; - padding-left: 1.618em -4px -} -.wy-menu-vertical li.on a:hover, -.wy-menu-vertical li.current>a:hover { - color:#f5f5f5 -} -.wy-menu-vertical li.on a:hover span.toctree-expand, -.wy-menu-vertical li.current>a:hover span.toctree-expand { - color: #f5f5f5 -} -.wy-menu-vertical li.on a span.toctree-expand, -.wy-menu-vertical li.current>a span.toctree-expand { - display: block; - font-size: 0.8em; - line-height: 1.6em; - color: #333 -} -.wy-menu-vertical li.toctree-l1.current li.toctree-l2>ul, -.wy-menu-vertical li.toctree-l2.current li.toctree-l3>ul { - display: none -} -.wy-menu-vertical li.toctree-l1.current li.toctree-l2.current>ul, -.wy-menu-vertical li.toctree-l2.current li.toctree-l3.current>ul { - display: block -} -.wy-menu-vertical li.toctree-l2.current>a { - background: rgba(176,0,0,1); - background: -moz-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: -webkit-gradient(left top, right top, color-stop(0%, rgba(176,0,0,1)), color-stop(6%, rgba(176,0,0,1)), color-stop(44%, rgba(181,7,7,1)), color-stop(95%, rgba(237,14,14,1)), color-stop(100%, rgba(237,14,14,1))); - background: -webkit-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: -o-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: -ms-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: linear-gradient(to right, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); -filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b00000', endColorstr='#ed0e0e', GradientType=1 ); - padding: 0.4045em 2.427em -} -.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a { - display: block; - line-height: 1.6em; - padding: 0.4045em 4.045em -} -.wy-menu-vertical li.toctree-l2 a:hover span.toctree-expand { - color: #f5f5f5 -} -.wy-menu-vertical li.toctree-l2 span.toctree-expand { - color: #a3a3a3 -} -.wy-menu-vertical li.toctree-l3 { - font-size: 0.9em; - background: #28343b -} -.wy-menu-vertical li.toctree-l3.current>a { - background: rgba(176,0,0,1); - background: -moz-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: -webkit-gradient(left top, right top, color-stop(0%, rgba(176,0,0,1)), color-stop(6%, rgba(176,0,0,1)), color-stop(44%, rgba(181,7,7,1)), color-stop(95%, rgba(237,14,14,1)), color-stop(100%, rgba(237,14,14,1))); - background: -webkit-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: -o-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: -ms-linear-gradient(left, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); - background: linear-gradient(to right, rgba(176,0,0,1) 0%, rgba(176,0,0,1) 6%, rgba(181,7,7,1) 44%, rgba(237,14,14,1) 95%, rgba(237,14,14,1) 100%); -filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b00000', endColorstr='#ed0e0e', GradientType=1 ); - color:#f5f5f5; - padding: 0.4045em 3.2em -} -.wy-menu-vertical li.toctree-l3.current>a:hover{ - color: #f5f5f5 -} -.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a { - display: block; - background: #890dod; - padding: 0.4045em 5.663em; - border-top: none; - border-bottom: none -} -.wy-menu-vertical li.toctree-l3 a:hover span.toctree-expand { - color: #f5f5f5 -} -.wy-menu-vertical li.toctree-l3 span.toctree-expand { - color: #969696 -} -.wy-menu-vertical li.toctree-l4 { - font-size: 0.9em -} -.wy-menu-vertical li.current ul { - display: block -} -.wy-menu-vertical li ul { - margin-bottom: 0; - display: none -} -.wy-menu-vertical .local-toc li ul { - display: block -} -.wy-menu-vertical li ul li a { - margin-bottom: 0; - color: #b3b3b3; - font-weight: normal -} -.wy-menu-vertical a { - display: inline-block; - line-height: 18px; - padding: 0.4045em 1.618em; - display: block; - position: relative; - font-size: 90%; - color: #f5f5f5 -} -/*hover color important applies to all levels*/ -.wy-menu-vertical a:hover { - background: rgba(115,0,0,1)!important; - background: -moz-linear-gradient(left, rgba(115,0,0,1) 0%, rgba(115,0,0,1) 6%, rgba(145,2,2,1) 44%, rgba(191,0,0,1) 95%, rgba(191,0,0,1) 100%)!important; - background: -webkit-gradient(left top, right top, color-stop(0%, rgba(115,0,0,1)), color-stop(6%, rgba(115,0,0,1)), color-stop(44%, rgba(145,2,2,1)), color-stop(95%, rgba(191,0,0,1)), color-stop(100%, rgba(191,0,0,1)))!important; - background: -webkit-linear-gradient(left, rgba(115,0,0,1) 0%, rgba(115,0,0,1) 6%, rgba(145,2,2,1) 44%, rgba(191,0,0,1) 95%, rgba(191,0,0,1) 100%)!important; - background: -o-linear-gradient(left, rgba(115,0,0,1) 0%, rgba(115,0,0,1) 6%, rgba(145,2,2,1) 44%, rgba(191,0,0,1) 95%, rgba(191,0,0,1) 100%)!important; - background: -ms-linear-gradient(left, rgba(115,0,0,1) 0%, rgba(115,0,0,1) 6%, rgba(145,2,2,1) 44%, rgba(191,0,0,1) 95%, rgba(191,0,0,1) 100%)!important; - background: linear-gradient(to right, rgba(115,0,0,1) 0%, rgba(115,0,0,1) 6%, rgba(145,2,2,1) 44%, rgba(191,0,0,1) 95%, rgba(191,0,0,1) 100%)!important; -filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#730000', endColorstr='#bf0000', GradientType=1 )!important; - cursor: pointer -} -/*changes color of + box to expand tree*/ -.wy-menu-vertical a:hover span.toctree-expand { - color: #f5f5f5 -} -.wy-menu-vertical a:active { - background-color: #2980B9; - cursor: pointer; - color: #fff -} -.wy-menu-vertical a:active span.toctree-expand { - color: #fff -} -.wy-side-nav-search { - z-index: 200; - background-color: #2980B9; - text-align: center; - padding: 0.809em; - display: block; - color: #fcfcfc; - margin-bottom: 0.809em -} -.wy-side-nav-search input[type=text] { - width: 90%; - padding: 6px 12px; - border-color: #2472a4 -} -.wy-side-nav-search img { - display: block; - margin: auto auto 0.809em auto; - height: 45px; - width: 45px; - background-color: #2980B9; - padding: 5px; - border-radius: 100% -} -.wy-side-nav-search>a, -.wy-side-nav-search .wy-dropdown>a { - color: #fcfcfc; - font-size: 100%; - font-weight: bold; - display: inline-block; - padding: 4px 6px; - margin-bottom: 0.809em -} -#wy-menu\ rst-imagebox2 { - margin-top: 15px; - margin-left: 20px; - margin-right: 20px; - border: 3px solid gray; - border-radius: 8px; - background: gray; - font-size: 75%; - margin-left: auto; - margin-right: auto; - } - - -#wy-menu\ rst-imagebox2 > a:nth-child(4) > img:nth-child(1) { - width: 75%; - margin: 0 auto; - display: block; -} - -.wy-side-nav-search>a:hover, -.wy-side-nav-search .wy-dropdown>a:hover { - background: rgba(255,255,255,0.1) none repeat scroll 0 0; -} -.wy-side-nav-search>a img.logo, -.wy-side-nav-search .wy-dropdown>a img.logo { - display: block; - margin: 0 auto; - height: auto; - width: auto; - border-radius: 0; - max-width: 100%; - background: transparent -} -.wy-side-nav-search>a.icon img.logo, -.wy-side-nav-search .wy-dropdown>a.icon img.logo { - margin-top: 0.85em -} -.wy-side-nav-search>div.version { - display: block; - text-align: center; - margin-top: -0.4045em; - margin-bottom: 0.809em; - font-weight: normal; - color: #f5f5f5 -} -.wy-nav .wy-menu-vertical header { - color: #2980B9 -} -.wy-nav .wy-menu-vertical a { - color: #b3b3b3 -} -.wy-nav .wy-menu-vertical a:hover { - background-color: #60695d -} -[data-menu-wrap] { - -webkit-transition: all 0.2s ease-in; - -moz-transition: all 0.2s ease-in; - transition: all 0.2s ease-in; - position: absolute; - opacity: 1; - width: 100%; - opacity: 0 -} -[data-menu-wrap].move-center { - left: 0; - right: auto; - opacity: 1 -} -[data-menu-wrap].move-left { - right: auto; - left: -100%; - opacity: 0 -} -[data-menu-wrap].move-right { - right: -100%; - left: auto; - opacity: 0 -} -.wy-body-for-nav { - background: left repeat-y #fcfcfc; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAyRpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMy1jMDExIDY2LjE0NTY2MSwgMjAxMi8wMi8wNi0xNDo1NjoyNyAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTNiAoTWFjaW50b3NoKSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDoxOERBMTRGRDBFMUUxMUUzODUwMkJCOThDMEVFNURFMCIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDoxOERBMTRGRTBFMUUxMUUzODUwMkJCOThDMEVFNURFMCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjE4REExNEZCMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjE4REExNEZDMEUxRTExRTM4NTAyQkI5OEMwRUU1REUwIi8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiA8P3hwYWNrZXQgZW5kPSJyIj8+EwrlwAAAAA5JREFUeNpiMDU0BAgwAAE2AJgB9BnaAAAAAElFTkSuQmCC); - background-size: 300px 1px -} -.wy-grid-for-nav { - position: absolute; - width: 100%; - height: 100% -} -.wy-nav-side { - position: fixed; - top: 0; - bottom: 0; - left: 0; - padding-bottom: .1em; - width: 300px; - overflow-x: hidden; - overflow-y: hidden; - min-height: 100%; - background: #343131; - z-index: 200 -} -.wy-nav-top { - display: none; - background: #2980B9; - color: #fff; - padding: 0.4045em 0.809em; - position: relative; - line-height: 50px; - text-align: center; - font-size: 100%; - *zoom: 1 -} -.wy-nav-top:before, -.wy-nav-top:after { - display: table; - content: "" -} -.wy-nav-top:after { - clear: both -} -.wy-nav-top a { - color: #fff; - font-weight: bold -} -.wy-nav-top img { - margin-right: 12px; - height: 45px; - width: 45px; - background-color: #2980B9; - padding: 5px; - border-radius: 100% -} -.wy-nav-top i { - font-size: 30px; - float: left; - cursor: pointer -} -.wy-nav-content-wrap { - margin-left: 300px; - background: #fcfcfc; - min-height: 100% -} -.wy-nav-content { - padding: 1.618em 3.236em; - height: 100%; - max-width: 800px; - margin: auto -} -.wy-body-mask { - position: fixed; - width: 100%; - height: 100%; - background: rgba(0, 0, 0, 0.2); - display: none; - z-index: 499 -} -.wy-body-mask.on { - display: block -} -footer { - color: #999 -} -footer p { - margin-bottom: 12px -} -.rst-footer-buttons { - *zoom: 1 -} -.rst-footer-buttons:before, -.rst-footer-buttons:after { - display: table; - content: "" -} -.rst-footer-buttons:after { - clear: both -} -#search-results .search li { - margin-bottom: 24px; - border-bottom: solid 1px #e1e4e5; - padding-bottom: 24px -} -#search-results .search li:first-child { - border-top: solid 1px #e1e4e5; - padding-top: 24px -} -#search-results .search li a { - font-size: 120%; - margin-bottom: 12px; - display: inline-block -} -#search-results .context { - color: gray; - font-size: 90% -} -@media screen and (max-width: 768px) { - .wy-body-for-nav { - background: #fcfcfc - } - .wy-nav-top { - display: block - } - .wy-nav-side { - left: -300px - } - .wy-nav-side.shift { - width: 85%; - left: 0 - } - .wy-nav-content-wrap { - margin-left: 0 - } - .wy-nav-content-wrap .wy-nav-content { - padding: 1.618em - } - .wy-nav-content-wrap.shift { - position: fixed; - min-width: 100%; - left: 85%; - top: 0; - height: 100%; - overflow: hidden - } -} -@media screen and (min-width: 1400px) { - .wy-nav-content-wrap { - background: rgba(0, 0, 0, 0.05) - } - .wy-nav-content { - margin: 0; - background: #fcfcfc - } -} -@media print { - .rst-versions, - footer, - .wy-nav-side { - display: none - } - .wy-nav-content-wrap { - margin-left: 0 - } -} -.rst-versions { - position: fixed; - bottom: 0; - left: 0; - width: 300px; - color: #fcfcfc; - background: #1f1d1d; - border-top: solid 10px #343131; - font-family: "Lato", "proxima-nova", "Helvetica Neue", Arial, sans-serif; - z-index: 400 -} -.rst-versions a { - color: #2980B9; - text-decoration: none -} -.rst-versions .rst-badge-small { - display: none -} -.rst-versions .rst-current-version { - padding: 12px; - background-color: #272525; - display: block; - text-align: right; - font-size: 90%; - cursor: pointer; - color: #27AE60; - *zoom: 1 -} -.rst-versions .rst-current-version:before, -.rst-versions .rst-current-version:after { - display: table; - content: "" -} -.rst-versions .rst-current-version:after { - clear: both -} -.rst-versions .rst-current-version .fa, -.rst-versions .rst-current-version .wy-menu-vertical li span.toctree-expand, -.wy-menu-vertical li .rst-versions .rst-current-version span.toctree-expand, -.rst-versions .rst-current-version .rst-content .admonition-title, -.rst-content .rst-versions .rst-current-version .admonition-title, -.rst-versions .rst-current-version .rst-content h1 .headerlink, -.rst-content h1 .rst-versions .rst-current-version .headerlink, -.rst-versions .rst-current-version .rst-content h2 .headerlink, -.rst-content h2 .rst-versions .rst-current-version .headerlink, -.rst-versions .rst-current-version .rst-content p.caption .headerlink, -.rst-content p.caption .rst-versions .rst-current-version .headerlink, -.rst-versions .rst-current-version .rst-content h3 .headerlink, -.rst-content h3 .rst-versions .rst-current-version .headerlink, -.rst-versions .rst-current-version .rst-content h4 .headerlink, -.rst-content h4 .rst-versions .rst-current-version .headerlink, -.rst-versions .rst-current-version .rst-content h5 .headerlink, -.rst-content h5 .rst-versions .rst-current-version .headerlink, -.rst-versions .rst-current-version .rst-content h6 .headerlink, -.rst-content h6 .rst-versions .rst-current-version .headerlink, -.rst-versions .rst-current-version .rst-content dl dt .headerlink, -.rst-content dl dt .rst-versions .rst-current-version .headerlink, -.rst-versions .rst-current-version .rst-content tt.download span:first-child, -.rst-content tt.download .rst-versions .rst-current-version span:first-child, -.rst-versions .rst-current-version .rst-content code.download span:first-child, -.rst-content code.download .rst-versions .rst-current-version span:first-child, -.rst-versions .rst-current-version .icon { - color: #fcfcfc -} -.rst-versions .rst-current-version .fa-book, -.rst-versions .rst-current-version .icon-book { - float: left -} -.rst-versions .rst-current-version .icon-book { - float: left -} -.rst-versions .rst-current-version.rst-out-of-date { - background-color: #E74C3C; - color: #fff -} -.rst-versions .rst-current-version.rst-active-old-version { - background-color: #F1C40F; - color: #000 -} -.rst-versions.shift-up .rst-other-versions { - display: block -} -.rst-versions .rst-other-versions { - font-size: 90%; - padding: 12px; - color: gray; - display: none -} -.rst-versions .rst-other-versions hr { - display: block; - height: 1px; - border: 0; - margin: 20px 0; - padding: 0; - border-top: solid 1px #413d3d -} -.rst-versions .rst-other-versions dd { - display: inline-block; - margin: 0 -} -.rst-versions .rst-other-versions dd a { - display: inline-block; - padding: 6px; - color: #fcfcfc -} -.rst-versions.rst-badge { - width: auto; - bottom: 20px; - right: 20px; - left: auto; - border: none; - max-width: 300px -} -.rst-versions.rst-badge .icon-book { - float: none -} -.rst-versions.rst-badge .fa-book, -.rst-versions.rst-badge .icon-book { - float: none -} -.rst-versions.rst-badge.shift-up .rst-current-version { - text-align: right -} -.rst-versions.rst-badge.shift-up .rst-current-version .fa-book, -.rst-versions.rst-badge.shift-up .rst-current-version .icon-book { - float: left -} -.rst-versions.rst-badge.shift-up .rst-current-version .icon-book { - float: left -} -.rst-versions.rst-badge .rst-current-version { - width: auto; - height: 30px; - line-height: 30px; - padding: 0 6px; - display: block; - text-align: center -} -/* Note the max width "toggle" */ -@media screen and (max-width: 768px) { - .rst-versions { - width: 85%; - display: none - } - .rst-versions.shift { - display: block - } - img { - width: 100%; - height: auto - } -} -.rst-content img { - max-width: 100%; - height: auto !important -} -.rst-content div.figure { - margin-bottom: 24px -} -.rst-content div.figure.align-center { - text-align: center -} -.rst-content .section>img, -.rst-content .section>a>img { - margin-bottom: 24px -} -.rst-content blockquote { - margin-left: 24px; - line-height: 24px; - margin-bottom: 24px -} -.rst-content .note .last, -.rst-content .attention .last, -.rst-content .caution .last, -.rst-content .danger .last, -.rst-content .error .last, -.rst-content .hint .last, -.rst-content .important .last, -.rst-content .tip .last, -.rst-content .warning .last, -.rst-content .seealso .last, -.rst-content .admonition-todo .last { - margin-bottom: 0 -} -.rst-content .admonition-title:before { - margin-right: 4px -} -.rst-content .admonition table { - border-color: rgba(0, 0, 0, 0.1) -} -.rst-content .admonition table td, -.rst-content .admonition table th { - background: transparent !important; - border-color: rgba(0, 0, 0, 0.1) !important -} -.rst-content .section ol.loweralpha, -.rst-content .section ol.loweralpha li { - list-style: lower-alpha -} -.rst-content .section ol.upperalpha, -.rst-content .section ol.upperalpha li { - list-style: upper-alpha -} -.rst-content .section ol p, -.rst-content .section ul p { - margin-bottom: 12px -} -.rst-content .line-block { - margin-left: 24px -} -.rst-content .topic-title { - font-weight: bold; - margin-bottom: 12px -} -.rst-content .toc-backref { - color: #404040 -} -.rst-content .align-right { - float: right; - margin: 0px 0px 24px 24px -} -.rst-content .align-left { - float: left; - margin: 0px 24px 24px 0px -} -.rst-content .align-center { - margin: auto; - display: block -} -.rst-content h1 .headerlink, -.rst-content h2 .headerlink, -.rst-content p.caption .headerlink, -.rst-content h3 .headerlink, -.rst-content h4 .headerlink, -.rst-content h5 .headerlink, -.rst-content h6 .headerlink, -.rst-content dl dt .headerlink, -.rst-content p.caption .headerlink { - display: none; - visibility: hidden; - font-size: 14px -} -.rst-content h1 .headerlink:after, -.rst-content h2 .headerlink:after, -.rst-content p.caption .headerlink:after, -.rst-content h3 .headerlink:after, -.rst-content h4 .headerlink:after, -.rst-content h5 .headerlink:after, -.rst-content h6 .headerlink:after, -.rst-content dl dt .headerlink:after, -.rst-content p.caption .headerlink:after { - visibility: visible; - content: "\F0C1 "; - font-family: FontAwesome; - display: inline-block -} -.rst-content h1:hover .headerlink, -.rst-content h2:hover .headerlink, -.rst-content p.caption:hover .headerlink, -.rst-content h3:hover .headerlink, -.rst-content h4:hover .headerlink, -.rst-content h5:hover .headerlink, -.rst-content h6:hover .headerlink, -.rst-content dl dt:hover .headerlink, -.rst-content p.caption:hover .headerlink { - display: inline-block -} -.rst-content .sidebar { - float: right; - width: 40%; - display: block; - margin: 0 0 24px 24px; - padding: 24px; - background: #f3f6f6; - border: solid 1px #e1e4e5 -} -.rst-content .sidebar p, -.rst-content .sidebar ul, -.rst-content .sidebar dl { - font-size: 90% -} -.rst-content .sidebar .last { - margin-bottom: 0 -} -.rst-content .sidebar .sidebar-title { - display: block; - font-family: "Roboto Slab", "ff-tisa-web-pro", "Georgia", Arial, sans-serif; - font-weight: bold; - background: #e1e4e5; - padding: 6px 12px; - margin: -24px; - margin-bottom: 24px; - font-size: 100% -} -.rst-content .highlighted { - background: #DDDD00; - display: inline-block; - font-weight: bold; - padding: 0px -} - -/* Custom */ -#search-results .highlighted { - background: #DDDD00; - display: inline-block; - font-weight: bold; - padding: 0px; - color: #000; -} -/*custom end */ - -.rst-content .footnote-reference, -.rst-content .citation-reference { - vertical-align: super; - font-size: 90% -} -.rst-content table.docutils.citation, -.rst-content table.docutils.footnote { - background: none; - border: none; - color: #999 -} -.rst-content table.docutils.citation td, -.rst-content table.docutils.citation tr, -.rst-content table.docutils.footnote td, -.rst-content table.docutils.footnote tr { - border: none; - background-color: transparent !important; - white-space: normal -} -.rst-content table.docutils.citation td.label, -.rst-content table.docutils.footnote td.label { - padding-left: 0; - padding-right: 0; - vertical-align: top -} -.rst-content table.field-list { - border: none -} -.rst-content table.field-list td { - border: none; - padding-top: 5px -} -.rst-content table.field-list td>strong { - display: inline-block; - margin-top: 3px -} -.rst-content table.field-list .field-name { - padding-right: 10px; - text-align: left; - white-space: nowrap -} -.rst-content table.field-list .field-body { - text-align: left; - padding-left: 0 -} -.rst-content tt, -.rst-content tt, -.rst-content code { - color: #000 -} -.rst-content tt big, -.rst-content tt em, -.rst-content tt big, -.rst-content code big, -.rst-content tt em, -.rst-content code em { - font-size: 100% !important; - line-height: normal -} -.rst-content tt .xref, -a .rst-content tt, -.rst-content tt .xref, -.rst-content code .xref, -a .rst-content tt, -a .rst-content code { - font-weight: bold -} -.rst-content a tt, -.rst-content a tt, -.rst-content a code { - color: #2980B9 -} -.rst-content dl { - margin-bottom: 24px -} -.rst-content dl dt { - font-weight: bold -} -.rst-content dl p, -.rst-content dl table, -.rst-content dl ul, -.rst-content dl ol { - margin-bottom: 12px !important -} -.rst-content dl dd { - margin: 0 0 12px 24px -} - -/**************************************************************************** - * Not real sure why they choose to special-case any
of class docutils * - * but it seems to be rather unhelpful and unused. Only ONE instance was * - * noticed which is commented out by // below. * - ****************************************************************************/ -/* BEGIN SECTION COMMENT OUT. - -.rst-content dl:not(.docutils) { - margin-bottom: 24px -} - - -//.rst-content dl:not(.docutils) dt { -// display: inline-block; -// margin: 6px 0; -// font-size: 90%; -// line-height: normal; -// background: #e7f2fa; -// color: #2980B9; -// border-top: solid 3px #6ab0de; -// padding: 6px; -// position: relative -//} - -.rst-content dl:not(.docutils) dt:before { - color: #6ab0de -} -.rst-content dl:not(.docutils) dt .headerlink { - color: #404040; - font-size: 100% !important -} -.rst-content dl:not(.docutils) dl dt { - margin-bottom: 6px; - border: none; - border-left: solid 3px #ccc; - background: #f0f0f0; - color: gray -} -.rst-content dl:not(.docutils) dl dt .headerlink { - color: #404040; - font-size: 100% !important -} -.rst-content dl:not(.docutils) dt:first-child { - margin-top: 0 -} -.rst-content dl:not(.docutils) tt, -.rst-content dl:not(.docutils) tt, -.rst-content dl:not(.docutils) code { - font-weight: bold -} -.rst-content dl:not(.docutils) tt.descname, -.rst-content dl:not(.docutils) tt.descclassname, -.rst-content dl:not(.docutils) tt.descname, -.rst-content dl:not(.docutils) code.descname, -.rst-content dl:not(.docutils) tt.descclassname, -.rst-content dl:not(.docutils) code.descclassname { - background-color: transparent; - border: none; - padding: 0; - font-size: 100% !important -} -.rst-content dl:not(.docutils) tt.descname, -.rst-content dl:not(.docutils) tt.descname, -.rst-content dl:not(.docutils) code.descname { - font-weight: bold -} -.rst-content dl:not(.docutils) .optional { - display: inline-block; - padding: 0 4px; - color: #000; - font-weight: bold -} -.rst-content dl:not(.docutils) .property { - display: inline-block; - padding-right: 8px -} - - -END SECTION COMMENT OUT. */ -/**************************************************************************** - * Not real sure why they choose to special-case any
of class docutils * - * but it seems to be rather unhelpful and unused. Only ONE instance was * - * noticed which is commented out by // near top of this section above. * - ****************************************************************************/ - -.rst-content .viewcode-link, -.rst-content .viewcode-back { - display: inline-block; - color: #27AE60; - font-size: 80%; - padding-left: 24px -} -.rst-content .viewcode-back { - display: block; - float: right -} -.rst-content p.rubric { - margin-bottom: 12px; - font-weight: bold -} -.rst-content tt.download, -.rst-content code.download { - background: inherit; - padding: inherit; - font-family: inherit; - font-size: inherit; - color: inherit; - border: inherit; - white-space: inherit -} -.rst-content tt.download span:first-child:before, -.rst-content code.download span:first-child:before { - margin-right: 4px -} -@media screen and (max-width: 480px) { - .rst-content .sidebar { - width: 100% - } -} -span[id*='MathJax-Span'] { - color: #404040 -} -.math { - text-align: center -} -@font-face { - font-family: "Inconsolata"; - font-style: normal; - font-weight: 400; - src: local("Inconsolata"), url(../fonts/Inconsolata.ttf) format("truetype") -} -@font-face { - font-family: "Inconsolata"; - font-style: normal; - font-weight: 700; - src: local("Inconsolata Bold"), local("Inconsolata-Bold"), url(../fonts/Inconsolata-Bold.ttf) format("truetype") -} -@font-face { - font-family: "Lato"; - font-style: normal; - font-weight: 400; - src: local("Lato Regular"), local("Lato-Regular"), url(../fonts/Lato-Regular.ttf) format("truetype") -} -@font-face { - font-family: "Lato"; - font-style: normal; - font-weight: 700; - src: local("Lato Bold"), local("Lato-Bold"), url(../fonts/Lato-Bold.ttf) format("truetype") -} -@font-face { - font-family: "Roboto Slab"; - font-style: normal; - font-weight: 400; - src: local("Roboto Slab Regular"), local("RobotoSlab-Regular"), url(../fonts/RobotoSlab-Regular.ttf) format("truetype") -} -@font-face { - font-family: "Roboto Slab"; - font-style: normal; - font-weight: 700; - src: local("Roboto Slab Bold"), local("RobotoSlab-Bold"), url(../fonts/RobotoSlab-Bold.ttf) format("truetype") -} - -/*""""""""""""""""""""""""""""""""""""""""""""""""""""""""* - | Copied css with fa-entities fixed - sourced externally | - | to reduce the size/complexity of this css. (END) | - *""""""""""""""""""""""""""""""""""""""""""""""""""""""""*/ - -.wy-nav-side, -div.related { - background: #28343b; - /*background-image:url("../transparentfireball.png"); - background-position: center center; - background-repeat: no-repeat;*/ -} -code.kbd, -code.file, -code.guilabel, -code.menuselection, -.kbd, -.file, -.guilabel, -.menuselection{ - background-color: #e6ede9; /* saturate from ecf0f3 to be more visible/blue on screen. */ - display: inline; - font-family:'Inconsolata', monospace; - font-size: 100%; - padding-right: 1px; - padding-left: 1px; - padding-top: 1px; - padding-bottom: 1px; - border-radius: 4px; - overflow: hidden; -} -code.kbd, .kbd { - border: thin solid #000; - font-weight: bold -} -code.file, .file { - border: hidden/*thin solid #999*/ -} -code.guilabel, .guilabel { - border:hidden; - font-weight:bold; - background:#e7f2fa; - text-transform: none -} -code.menuselection, .menuselection { - background-color: #e8ede6; - color: inherit; - border: hidden; - font-size: 100% -} -code.samp, .samp { - font-family: 'Inconsolata', monospace; - font-weight: bold; - font-size: 100%; -} -code.command, .command { - font-family:'Inconsolata', monospace; -} -th { - background-color: #ede; -} -.warning tt { - background: #efc2c2; -} -.note tt { - background: #d6d6d6; -} -.viewcode-back { - font-family: { - { - theme_bodyfont - } - } - ; -} -div.viewcode-block:target { - background-color: #f4debf; - border-top: 1px solid #ac9; - border-bottom: 1px solid #ac9; -} - -/*"""""""""""""""""""""""""""""""""""""""""""""""* - | spiffy_table adjusted for rst/RtD (BEGIN) | - *"""""""""""""""""""""""""""""""""""""""""""""""*/ - -table.docutils, -table.spiffy_table, -table.simple_table, -table.plain_table { - border: 2px solid darkgray; - border-collapse: collapse; -} -.simple_table th { - background-color: #f2f2f2; -} -th.simple_span { - background-color: #f2f2f2; -} -th.spiffy_span { - background-color: LemonChiffon; - background: -webkit-linear-gradient(MediumSpringGreen, LemonChiffon, LemonChiffon, LemonChiffon, MediumSpringGreen); - /* For Safari 5.1 to 6.0 */ - - background: -o-linear-gradient(MediumSpringGreen, LemonChiffon, LemonChiffon, LemonChiffon, MediumSpringGreen); - /* For Opera 11.1 to 12.0 */ - - background: -moz-linear-gradient(MediumSpringGreen, LemonChiffon, LemonChiffon, LemonChiffon, MediumSpringGreen); - /* For Firefox 3.6 to 15 */ - - background: linear-gradient(MediumSpringGreen, LemonChiffon, LemonChiffon, LemonChiffon, MediumSpringGreen); - /* Standard syntax (must be last) */ - - font-weight: 700; - text-align: center; - font-size: 125%; -} -.docutils tr:nth-child(odd) > td, -.spiffy_table tr:nth-child(odd) > td { - background-color: #e5e5e5; - /* was gainsboro then f2f2f2 */ -} -.docutils tr:nth-child(even) > td, -.spiffy_table tr:nth-child(even) > td { - background-color: white; -} -.spiffy_table tr > td.zero { - background-color: red; - color: white; -} -.spiffy_table tr > td.part { - background-color: yellow; -} -.spiffy_table tr > td.done { - background-color: green; -} -.docutils th, -.spiffy_table th { - background-color: #6699cc; - font-weight: 700; - text-align: left; - border-color: darkgray; - border-style: solid; - border-width: 1px 1px 2px; - padding: 5px; -} -.simple_table th { - font-weight: 700; - text-align: center; - border-color: darkgray; - border-style: solid; - border-width: 0px 1px 2px; - padding: 5px; -} -table.docutils caption, -.spiffy_table caption, -.simple_table caption { - font-weight: 700; - text-align: left; -} -.docutils td, -.spiffy_table td, -.simple_table td { - border-color: darkgray; - border-style: solid; - border-width: 1px; - padding: 5px; -} - -table.docutils td, table.docutils th { - padding: 1px 8px 1px 5px; - border-width: 0px 0px 1px; - border-style: none none solid; - border-color: -moz-use-text-color -moz-use-text-color #AAA; -} - -th { - background-color: #EDE; - text-align: left; - padding-right: 5px; -} - -table.docutils { - border-collapse: collapse; -} -/*"""""""""""""""""""""""""""""""""""""""""""""""* - | spiffy_table adjusted for rst/RtD (END) | - *"""""""""""""""""""""""""""""""""""""""""""""""*/ - - -/*"""""""""""""""""""""""""""""""""""""""""""* - | textboxes adjusted for rst/RtD (BEGIN) | - *"""""""""""""""""""""""""""""""""""""""""""*/ -.rst-content .danger, .rdangerbox { -border: 2px solid #8a8988; -border-radius: 5px; -background: #edbeb6; -color: #030303 -} - -.rst-content .warning, .rwarningbox { -border: 2px solid #8a8988; -border-radius: 5px; -color: #030303 -} - -.rst-content .note, .rnotebox { -border: 2px solid #8a8988; -border-radius: 5px; -color: #030303 -} - -.rst-content .important, .rimportantbox{ -border: 2px solid #8a8988; -border-radius: 5px; -color: #030303 -} - -.rst-content .tip, .rtipbox{ -border: 2px solid #8a8988; -border-radius: 5px; -color: #030303 -} - -.rversionbox { -border:solid #00E100; -background-color: #d7ffd7!important; -} - -.messagebox { -border-width:2px 6px 2px 2px; -border-collapse: collapse; -margin-top:1px; -margin-right: 4px; -margin-bottom:1px; -margin-left: 4px; -text-align:justify; -width:auto; -minimum-width:100px; -maximum-width: 45%; -font-size: 75%; -padding: 3px 3px 3px 3px; -// align:center; - display: inline-block; - vertical-align:inherit; - line-height:125%; -} - -.messageboxicon { -float:right; -margin: 0px 2px -2px 0px; -} - - -/*"""""""""""""""""""""""""""""""""""""""""""* - | textboxes adjusted for rst/RtD (END) | - *"""""""""""""""""""""""""""""""""""""""""""*/ - - -/*"""""""""""""""""""""""""""""""""""""""""""""""""""* - | Modified RtD css styles in part or whole (BEGIN) | - *"""""""""""""""""""""""""""""""""""""""""""""""""""*/ - -.wy-side-nav-search { - z-index: 200; - /*background-color: rgb(45, 175,255);*/ - background-color:background: #b5bdc8; -background: -moz-radial-gradient(center, ellipse cover, #b5bdc8 0%, #28343b 71%); -background: -webkit-radial-gradient(center, ellipse cover, #b5bdc8 0%,#28343b 71%); -background: radial-gradient(ellipse at center, #b5bdc8 0%,#28343b 71%); -filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#b5bdc8', endColorstr='#28343b',GradientType=1 ); - text-align: center; - padding: 0.809em; - display: block; - color: #FCFCFC; - margin-bottom: 0.809em; -} - .wy-nav-content { - padding: 1.618em 3.236em; - height: 100%; - max-width: 95%; - margin: auto; -} -/*.wy-menu-vertical li.on a, .wy-menu-vertical li.current > a { -// color: #404040; -// padding: 0.4045em 1.618em; -// font-weight: bold; -// position: relative; -// border-width: 1px medium; -// border-style: solid none; -// border-color: #C9C9C9 -moz-use-text-color; -// -moz-border-top-colors: none; -// -moz-border-right-colors: none; -// -moz-border-bottom-colors: none; -// -moz-border-left-colors: none; -// border-image: none; -// background: rgb(204, 204, 255) none repeat scroll 0% 0%; -}*/ -.wy-table thead th, -.rst-content table.docutils thead th, -.rst-content table.field-list thead th { - font-weight: bold; - border: solid 1px #bbb; - border-bottom: solid 2px #bbb; -} - -.wy-table-bordered-all, -.rst-content table.docutils { - border: 1px solid #bbb; -} -.wy-table-bordered-all td, -.rst-content table.docutils td { - border-bottom: 1px solid #bbb; - border-left: 1px solid #bbb; -} -.wy-table-bordered { - border: 1px solid #bbb; -} -.wy-table-bordered-rows td { - border-bottom: 1px solid #bbb; -} -.wy-table-horizontal td, -.wy-table-horizontal th { - border-width: 0 0 1px 0; - border-bottom: 1px solid #bbb; -} - -/*"""""""""""""""""""""""""""""""""""""""""""""""""""* - | Modified RtD css styles in part or whole (END) | - *"""""""""""""""""""""""""""""""""""""""""""""""""""*/ - -/*"""""""""""""""""""""""""""""""""""""""""""""""* - | Allow for printing from browser | - | with reasonable appearance (BEGIN) | - *"""""""""""""""""""""""""""""""""""""""""""""""*/ - -@media print { - .wy-side-nav-search { - display: none!important; - } - .wy-nav-top { - display: none!important; - } - .wy-nav-side { - display: none!important; - } - .wy-nav-content { - padding: 1.618em; - height: auto; - width: auto; - margin: auto; - } - .wy-breadcrumbs-nav { - display: none!important; - visibility: hidden!important; - } - -/* below is not my doing */ - html, - body, - section { - background: none!important; - } - * { - box-shadow: none!important; - text-shadow: none!important; - filter: none!important; - -ms-filter: none!important; - } - a, - a:visited { - text-decoration: underline; - } - .ir a:after, - a[href^="javascript:"]:after, - a[href^="#"]:after { - content: ""; - } - pre, - blockquote { - page-break-inside: avoid; - } - thead { - display: table-header-group; - } - tr, - img { - page-break-inside: avoid; - } - img { - max-width: 100%!important; - } - @page { - margin: .5cm; - } - p, - h2, - .rst-content p.caption, - h3 { - orphans: 3; - widows: 3; - } - h2, - .rst-content p.caption, - h3 { - page-break-after: avoid; - } -} - -/*"""""""""""""""""""""""""""""""""""""""""""""""* - | Allow for printing from browser | - | with reasonable appearance (END) | - *"""""""""""""""""""""""""""""""""""""""""""""""*/ diff --git a/docs/api_reference/themes/trueos_style/static/fonts/FontAwesome.otf b/docs/api_reference/themes/trueos_style/static/fonts/FontAwesome.otf deleted file mode 100644 index 8b0f54e47e1d356dcf1496942a50e228e0f1ee14..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62856 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