Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
synnefo
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
itminedu
synnefo
Commits
05556197
Commit
05556197
authored
Sep 02, 2014
by
Christos Stavrakakis
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feature-admin-release-0.16' of
https://github.com/apyrgio/synnefo
into release-0.16
parents
b6d58d1d
109b1a38
Changes
260
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
260 changed files
with
93037 additions
and
9 deletions
+93037
-9
.gitignore
.gitignore
+4
-1
Changelog
Changelog
+12
-1
NEWS
NEWS
+12
-0
ci/ci_wheezy.conf
ci/ci_wheezy.conf
+2
-1
ci/config
ci/config
+1
-0
ci/schemas/one_node_wheezy/packages.conf
ci/schemas/one_node_wheezy/packages.conf
+1
-0
ci/schemas/one_node_wheezy/setups.conf
ci/schemas/one_node_wheezy/setups.conf
+1
-0
ci/tests.sh
ci/tests.sh
+18
-5
devflow.conf
devflow.conf
+2
-0
docs/admin-guide.rst
docs/admin-guide.rst
+119
-0
docs/install-guide-debian.rst
docs/install-guide-debian.rst
+40
-0
snf-admin-app/MANIFEST.in
snf-admin-app/MANIFEST.in
+4
-0
snf-admin-app/distribute_setup.py
snf-admin-app/distribute_setup.py
+485
-0
snf-admin-app/setup.py
snf-admin-app/setup.py
+172
-0
snf-admin-app/synnefo_admin/__init__.py
snf-admin-app/synnefo_admin/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/__init__.py
snf-admin-app/synnefo_admin/admin/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/actions.py
snf-admin-app/synnefo_admin/admin/actions.py
+188
-0
snf-admin-app/synnefo_admin/admin/associations.py
snf-admin-app/synnefo_admin/admin/associations.py
+150
-0
snf-admin-app/synnefo_admin/admin/exceptions.py
snf-admin-app/synnefo_admin/admin/exceptions.py
+36
-0
snf-admin-app/synnefo_admin/admin/middleware/__init__.py
snf-admin-app/synnefo_admin/admin/middleware/__init__.py
+57
-0
snf-admin-app/synnefo_admin/admin/models.py
snf-admin-app/synnefo_admin/admin/models.py
+0
-0
snf-admin-app/synnefo_admin/admin/queries_common.py
snf-admin-app/synnefo_admin/admin/queries_common.py
+193
-0
snf-admin-app/synnefo_admin/admin/resources/__init__.py
snf-admin-app/synnefo_admin/admin/resources/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/resources/auth_providers/__init__.py
.../synnefo_admin/admin/resources/auth_providers/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/resources/auth_providers/actions.py
...p/synnefo_admin/admin/resources/auth_providers/actions.py
+16
-0
snf-admin-app/synnefo_admin/admin/resources/auth_providers/filters.py
...p/synnefo_admin/admin/resources/auth_providers/filters.py
+15
-0
snf-admin-app/synnefo_admin/admin/resources/auth_providers/utils.py
...app/synnefo_admin/admin/resources/auth_providers/utils.py
+15
-0
snf-admin-app/synnefo_admin/admin/resources/auth_providers/views.py
...app/synnefo_admin/admin/resources/auth_providers/views.py
+85
-0
snf-admin-app/synnefo_admin/admin/resources/groups/__init__.py
...dmin-app/synnefo_admin/admin/resources/groups/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/resources/groups/actions.py
...admin-app/synnefo_admin/admin/resources/groups/actions.py
+16
-0
snf-admin-app/synnefo_admin/admin/resources/groups/filters.py
...admin-app/synnefo_admin/admin/resources/groups/filters.py
+15
-0
snf-admin-app/synnefo_admin/admin/resources/groups/utils.py
snf-admin-app/synnefo_admin/admin/resources/groups/utils.py
+15
-0
snf-admin-app/synnefo_admin/admin/resources/groups/views.py
snf-admin-app/synnefo_admin/admin/resources/groups/views.py
+73
-0
snf-admin-app/synnefo_admin/admin/resources/ip_logs/__init__.py
...min-app/synnefo_admin/admin/resources/ip_logs/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/resources/ip_logs/filters.py
...dmin-app/synnefo_admin/admin/resources/ip_logs/filters.py
+69
-0
snf-admin-app/synnefo_admin/admin/resources/ip_logs/utils.py
snf-admin-app/synnefo_admin/admin/resources/ip_logs/utils.py
+49
-0
snf-admin-app/synnefo_admin/admin/resources/ip_logs/views.py
snf-admin-app/synnefo_admin/admin/resources/ip_logs/views.py
+106
-0
snf-admin-app/synnefo_admin/admin/resources/ips/__init__.py
snf-admin-app/synnefo_admin/admin/resources/ips/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/resources/ips/actions.py
snf-admin-app/synnefo_admin/admin/resources/ips/actions.py
+68
-0
snf-admin-app/synnefo_admin/admin/resources/ips/filters.py
snf-admin-app/synnefo_admin/admin/resources/ips/filters.py
+75
-0
snf-admin-app/synnefo_admin/admin/resources/ips/utils.py
snf-admin-app/synnefo_admin/admin/resources/ips/utils.py
+83
-0
snf-admin-app/synnefo_admin/admin/resources/ips/views.py
snf-admin-app/synnefo_admin/admin/resources/ips/views.py
+212
-0
snf-admin-app/synnefo_admin/admin/resources/networks/__init__.py
...in-app/synnefo_admin/admin/resources/networks/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/resources/networks/actions.py
...min-app/synnefo_admin/admin/resources/networks/actions.py
+94
-0
snf-admin-app/synnefo_admin/admin/resources/networks/filters.py
...min-app/synnefo_admin/admin/resources/networks/filters.py
+78
-0
snf-admin-app/synnefo_admin/admin/resources/networks/utils.py
...admin-app/synnefo_admin/admin/resources/networks/utils.py
+55
-0
snf-admin-app/synnefo_admin/admin/resources/networks/views.py
...admin-app/synnefo_admin/admin/resources/networks/views.py
+204
-0
snf-admin-app/synnefo_admin/admin/resources/projects/__init__.py
...in-app/synnefo_admin/admin/resources/projects/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/resources/projects/actions.py
...min-app/synnefo_admin/admin/resources/projects/actions.py
+115
-0
snf-admin-app/synnefo_admin/admin/resources/projects/filters.py
...min-app/synnefo_admin/admin/resources/projects/filters.py
+137
-0
snf-admin-app/synnefo_admin/admin/resources/projects/utils.py
...admin-app/synnefo_admin/admin/resources/projects/utils.py
+143
-0
snf-admin-app/synnefo_admin/admin/resources/projects/views.py
...admin-app/synnefo_admin/admin/resources/projects/views.py
+262
-0
snf-admin-app/synnefo_admin/admin/resources/users/__init__.py
...admin-app/synnefo_admin/admin/resources/users/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/resources/users/actions.py
snf-admin-app/synnefo_admin/admin/resources/users/actions.py
+88
-0
snf-admin-app/synnefo_admin/admin/resources/users/filters.py
snf-admin-app/synnefo_admin/admin/resources/users/filters.py
+165
-0
snf-admin-app/synnefo_admin/admin/resources/users/utils.py
snf-admin-app/synnefo_admin/admin/resources/users/utils.py
+133
-0
snf-admin-app/synnefo_admin/admin/resources/users/views.py
snf-admin-app/synnefo_admin/admin/resources/users/views.py
+235
-0
snf-admin-app/synnefo_admin/admin/resources/vms/__init__.py
snf-admin-app/synnefo_admin/admin/resources/vms/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/resources/vms/actions.py
snf-admin-app/synnefo_admin/admin/resources/vms/actions.py
+145
-0
snf-admin-app/synnefo_admin/admin/resources/vms/filters.py
snf-admin-app/synnefo_admin/admin/resources/vms/filters.py
+91
-0
snf-admin-app/synnefo_admin/admin/resources/vms/utils.py
snf-admin-app/synnefo_admin/admin/resources/vms/utils.py
+43
-0
snf-admin-app/synnefo_admin/admin/resources/vms/views.py
snf-admin-app/synnefo_admin/admin/resources/vms/views.py
+233
-0
snf-admin-app/synnefo_admin/admin/resources/volumes/__init__.py
...min-app/synnefo_admin/admin/resources/volumes/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/resources/volumes/actions.py
...dmin-app/synnefo_admin/admin/resources/volumes/actions.py
+46
-0
snf-admin-app/synnefo_admin/admin/resources/volumes/filters.py
...dmin-app/synnefo_admin/admin/resources/volumes/filters.py
+109
-0
snf-admin-app/synnefo_admin/admin/resources/volumes/utils.py
snf-admin-app/synnefo_admin/admin/resources/volumes/utils.py
+48
-0
snf-admin-app/synnefo_admin/admin/resources/volumes/views.py
snf-admin-app/synnefo_admin/admin/resources/volumes/views.py
+217
-0
snf-admin-app/synnefo_admin/admin/routers.py
snf-admin-app/synnefo_admin/admin/routers.py
+54
-0
snf-admin-app/synnefo_admin/admin/static/config.rb
snf-admin-app/synnefo_admin/admin/static/config.rb
+24
-0
snf-admin-app/synnefo_admin/admin/static/css/icon-fonts.css
snf-admin-app/synnefo_admin/admin/static/css/icon-fonts.css
+1758
-0
snf-admin-app/synnefo_admin/admin/static/css/ie.css
snf-admin-app/synnefo_admin/admin/static/css/ie.css
+5
-0
snf-admin-app/synnefo_admin/admin/static/css/jquery.dataTables.css
...-app/synnefo_admin/admin/static/css/jquery.dataTables.css
+399
-0
snf-admin-app/synnefo_admin/admin/static/css/main-light.css
snf-admin-app/synnefo_admin/admin/static/css/main-light.css
+8067
-0
snf-admin-app/synnefo_admin/admin/static/css/main.css
snf-admin-app/synnefo_admin/admin/static/css/main.css
+8067
-0
snf-admin-app/synnefo_admin/admin/static/css/print.css
snf-admin-app/synnefo_admin/admin/static/css/print.css
+3
-0
snf-admin-app/synnefo_admin/admin/static/css/screen.css
snf-admin-app/synnefo_admin/admin/static/css/screen.css
+59
-0
snf-admin-app/synnefo_admin/admin/static/css/theme1.css
snf-admin-app/synnefo_admin/admin/static/css/theme1.css
+67
-0
snf-admin-app/synnefo_admin/admin/static/fonts/font-icons.eot
...admin-app/synnefo_admin/admin/static/fonts/font-icons.eot
+0
-0
snf-admin-app/synnefo_admin/admin/static/fonts/font-icons.svg
...admin-app/synnefo_admin/admin/static/fonts/font-icons.svg
+43
-0
snf-admin-app/synnefo_admin/admin/static/fonts/font-icons.ttf
...admin-app/synnefo_admin/admin/static/fonts/font-icons.ttf
+0
-0
snf-admin-app/synnefo_admin/admin/static/fonts/font-icons.woff
...dmin-app/synnefo_admin/admin/static/fonts/font-icons.woff
+0
-0
snf-admin-app/synnefo_admin/admin/static/fonts/snf-font.eot
snf-admin-app/synnefo_admin/admin/static/fonts/snf-font.eot
+0
-0
snf-admin-app/synnefo_admin/admin/static/fonts/snf-font.svg
snf-admin-app/synnefo_admin/admin/static/fonts/snf-font.svg
+643
-0
snf-admin-app/synnefo_admin/admin/static/fonts/snf-font.ttf
snf-admin-app/synnefo_admin/admin/static/fonts/snf-font.ttf
+0
-0
snf-admin-app/synnefo_admin/admin/static/fonts/snf-font.woff
snf-admin-app/synnefo_admin/admin/static/fonts/snf-font.woff
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/Sorting icons.psd
...n-app/synnefo_admin/admin/static/images/Sorting icons.psd
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/back_disabled.png
...n-app/synnefo_admin/admin/static/images/back_disabled.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/back_enabled.png
...in-app/synnefo_admin/admin/static/images/back_enabled.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/back_enabled_hover.png
.../synnefo_admin/admin/static/images/back_enabled_hover.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/favicon.ico
snf-admin-app/synnefo_admin/admin/static/images/favicon.ico
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/forward_disabled.png
...pp/synnefo_admin/admin/static/images/forward_disabled.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/forward_enabled.png
...app/synnefo_admin/admin/static/images/forward_enabled.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/forward_enabled_hover.png
...nnefo_admin/admin/static/images/forward_enabled_hover.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/sort_asc.png
snf-admin-app/synnefo_admin/admin/static/images/sort_asc.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/sort_asc_disabled.png
...p/synnefo_admin/admin/static/images/sort_asc_disabled.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/sort_both.png
...admin-app/synnefo_admin/admin/static/images/sort_both.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/sort_desc.png
...admin-app/synnefo_admin/admin/static/images/sort_desc.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/images/sort_desc_disabled.png
.../synnefo_admin/admin/static/images/sort_desc_disabled.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/img/glyphicons-halflings.png
...p/synnefo_admin/admin/static/img/glyphicons-halflings.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/img/ip.png
snf-admin-app/synnefo_admin/admin/static/img/ip.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/img/network.png
snf-admin-app/synnefo_admin/admin/static/img/network.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/img/roughcloth.png
snf-admin-app/synnefo_admin/admin/static/img/roughcloth.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/img/user.png
snf-admin-app/synnefo_admin/admin/static/img/user.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/img/vm.png
snf-admin-app/synnefo_admin/admin/static/img/vm.png
+0
-0
snf-admin-app/synnefo_admin/admin/static/js/HighchartsDarkTheme.js
...-app/synnefo_admin/admin/static/js/HighchartsDarkTheme.js
+216
-0
snf-admin-app/synnefo_admin/admin/static/js/Highcharts_drilldown.src.js
...synnefo_admin/admin/static/js/Highcharts_drilldown.src.js
+585
-0
snf-admin-app/synnefo_admin/admin/static/js/bootstrap.js
snf-admin-app/synnefo_admin/admin/static/js/bootstrap.js
+1951
-0
snf-admin-app/synnefo_admin/admin/static/js/charts.js
snf-admin-app/synnefo_admin/admin/static/js/charts.js
+605
-0
snf-admin-app/synnefo_admin/admin/static/js/charts_common.js
snf-admin-app/synnefo_admin/admin/static/js/charts_common.js
+59
-0
snf-admin-app/synnefo_admin/admin/static/js/common.js
snf-admin-app/synnefo_admin/admin/static/js/common.js
+322
-0
snf-admin-app/synnefo_admin/admin/static/js/datatables.bootstrap.js
...app/synnefo_admin/admin/static/js/datatables.bootstrap.js
+103
-0
snf-admin-app/synnefo_admin/admin/static/js/demohighcharts.js
...admin-app/synnefo_admin/admin/static/js/demohighcharts.js
+369
-0
snf-admin-app/synnefo_admin/admin/static/js/details.js
snf-admin-app/synnefo_admin/admin/static/js/details.js
+167
-0
snf-admin-app/synnefo_admin/admin/static/js/highstock.src.js
snf-admin-app/synnefo_admin/admin/static/js/highstock.src.js
+21967
-0
snf-admin-app/synnefo_admin/admin/static/js/ie7.js
snf-admin-app/synnefo_admin/admin/static/js/ie7.js
+38
-0
snf-admin-app/synnefo_admin/admin/static/js/jquery-2.0.3.js
snf-admin-app/synnefo_admin/admin/static/js/jquery-2.0.3.js
+8829
-0
snf-admin-app/synnefo_admin/admin/static/js/jquery.cookie.js
snf-admin-app/synnefo_admin/admin/static/js/jquery.cookie.js
+117
-0
snf-admin-app/synnefo_admin/admin/static/js/jquery.dataTables.js
...in-app/synnefo_admin/admin/static/js/jquery.dataTables.js
+14383
-0
snf-admin-app/synnefo_admin/admin/static/js/jquery.js
snf-admin-app/synnefo_admin/admin/static/js/jquery.js
+4
-0
snf-admin-app/synnefo_admin/admin/static/js/stats.js
snf-admin-app/synnefo_admin/admin/static/js/stats.js
+55
-0
snf-admin-app/synnefo_admin/admin/static/js/tables.js
snf-admin-app/synnefo_admin/admin/static/js/tables.js
+1042
-0
snf-admin-app/synnefo_admin/admin/static/js/temp-charts.js
snf-admin-app/synnefo_admin/admin/static/js/temp-charts.js
+614
-0
snf-admin-app/synnefo_admin/admin/static/js/timelineData.js
snf-admin-app/synnefo_admin/admin/static/js/timelineData.js
+1862
-0
snf-admin-app/synnefo_admin/admin/static/js/underscore.js
snf-admin-app/synnefo_admin/admin/static/js/underscore.js
+1343
-0
snf-admin-app/synnefo_admin/admin/static/sass/_bars-btns.scss
...admin-app/synnefo_admin/admin/static/sass/_bars-btns.scss
+281
-0
snf-admin-app/synnefo_admin/admin/static/sass/_bootstrap.scss
...admin-app/synnefo_admin/admin/static/sass/_bootstrap.scss
+48
-0
snf-admin-app/synnefo_admin/admin/static/sass/_details.scss
snf-admin-app/synnefo_admin/admin/static/sass/_details.scss
+247
-0
snf-admin-app/synnefo_admin/admin/static/sass/_extra.scss
snf-admin-app/synnefo_admin/admin/static/sass/_extra.scss
+359
-0
snf-admin-app/synnefo_admin/admin/static/sass/_filters.scss
snf-admin-app/synnefo_admin/admin/static/sass/_filters.scss
+102
-0
snf-admin-app/synnefo_admin/admin/static/sass/_global.scss
snf-admin-app/synnefo_admin/admin/static/sass/_global.scss
+7
-0
snf-admin-app/synnefo_admin/admin/static/sass/_loaders.scss
snf-admin-app/synnefo_admin/admin/static/sass/_loaders.scss
+42
-0
snf-admin-app/synnefo_admin/admin/static/sass/_modals.scss
snf-admin-app/synnefo_admin/admin/static/sass/_modals.scss
+247
-0
snf-admin-app/synnefo_admin/admin/static/sass/_palette1.scss
snf-admin-app/synnefo_admin/admin/static/sass/_palette1.scss
+12
-0
snf-admin-app/synnefo_admin/admin/static/sass/_settings.scss
snf-admin-app/synnefo_admin/admin/static/sass/_settings.scss
+58
-0
snf-admin-app/synnefo_admin/admin/static/sass/_tables.scss
snf-admin-app/synnefo_admin/admin/static/sass/_tables.scss
+210
-0
snf-admin-app/synnefo_admin/admin/static/sass/_theme-light.scss
...min-app/synnefo_admin/admin/static/sass/_theme-light.scss
+906
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_alerts.scss
...pp/synnefo_admin/admin/static/sass/bootstrap/_alerts.scss
+67
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_badges.scss
...pp/synnefo_admin/admin/static/sass/bootstrap/_badges.scss
+55
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_breadcrumbs.scss
...nnefo_admin/admin/static/sass/bootstrap/_breadcrumbs.scss
+26
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_button-groups.scss
...efo_admin/admin/static/sass/bootstrap/_button-groups.scss
+226
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_buttons.scss
...p/synnefo_admin/admin/static/sass/bootstrap/_buttons.scss
+159
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_carousel.scss
.../synnefo_admin/admin/static/sass/bootstrap/_carousel.scss
+232
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_close.scss
...app/synnefo_admin/admin/static/sass/bootstrap/_close.scss
+35
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_code.scss
...-app/synnefo_admin/admin/static/sass/bootstrap/_code.scss
+63
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_component-animations.scss
...in/admin/static/sass/bootstrap/_component-animations.scss
+29
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_dropdowns.scss
...synnefo_admin/admin/static/sass/bootstrap/_dropdowns.scss
+213
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_forms.scss
...app/synnefo_admin/admin/static/sass/bootstrap/_forms.scss
+436
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_glyphicons.scss
...ynnefo_admin/admin/static/sass/bootstrap/_glyphicons.scss
+233
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_grid.scss
...-app/synnefo_admin/admin/static/sass/bootstrap/_grid.scss
+84
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_input-groups.scss
...nefo_admin/admin/static/sass/bootstrap/_input-groups.scss
+162
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_jumbotron.scss
...synnefo_admin/admin/static/sass/bootstrap/_jumbotron.scss
+44
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_labels.scss
...pp/synnefo_admin/admin/static/sass/bootstrap/_labels.scss
+64
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_list-group.scss
...ynnefo_admin/admin/static/sass/bootstrap/_list-group.scss
+110
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_media.scss
...app/synnefo_admin/admin/static/sass/bootstrap/_media.scss
+56
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_mixins.scss
...pp/synnefo_admin/admin/static/sass/bootstrap/_mixins.scss
+948
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_modals.scss
...pp/synnefo_admin/admin/static/sass/bootstrap/_modals.scss
+139
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_navbar.scss
...pp/synnefo_admin/admin/static/sass/bootstrap/_navbar.scss
+632
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_navs.scss
...-app/synnefo_admin/admin/static/sass/bootstrap/_navs.scss
+246
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_normalize.scss
...synnefo_admin/admin/static/sass/bootstrap/_normalize.scss
+423
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_pager.scss
...app/synnefo_admin/admin/static/sass/bootstrap/_pager.scss
+55
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_pagination.scss
...ynnefo_admin/admin/static/sass/bootstrap/_pagination.scss
+88
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_panels.scss
...pp/synnefo_admin/admin/static/sass/bootstrap/_panels.scss
+241
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_popovers.scss
.../synnefo_admin/admin/static/sass/bootstrap/_popovers.scss
+133
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_print.scss
...app/synnefo_admin/admin/static/sass/bootstrap/_print.scss
+101
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_progress-bars.scss
...efo_admin/admin/static/sass/bootstrap/_progress-bars.scss
+80
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_responsive-utilities.scss
...in/admin/static/sass/bootstrap/_responsive-utilities.scss
+74
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_scaffolding.scss
...nnefo_admin/admin/static/sass/bootstrap/_scaffolding.scss
+134
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_tables.scss
...pp/synnefo_admin/admin/static/sass/bootstrap/_tables.scss
+233
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_theme.scss
...app/synnefo_admin/admin/static/sass/bootstrap/_theme.scss
+247
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_thumbnails.scss
...ynnefo_admin/admin/static/sass/bootstrap/_thumbnails.scss
+38
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_tooltip.scss
...p/synnefo_admin/admin/static/sass/bootstrap/_tooltip.scss
+95
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_type.scss
...-app/synnefo_admin/admin/static/sass/bootstrap/_type.scss
+284
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_utilities.scss
...synnefo_admin/admin/static/sass/bootstrap/_utilities.scss
+56
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_variables.scss
...synnefo_admin/admin/static/sass/bootstrap/_variables.scss
+904
-0
snf-admin-app/synnefo_admin/admin/static/sass/bootstrap/_wells.scss
...app/synnefo_admin/admin/static/sass/bootstrap/_wells.scss
+28
-0
snf-admin-app/synnefo_admin/admin/static/sass/icon-fonts.scss
...admin-app/synnefo_admin/admin/static/sass/icon-fonts.scss
+374
-0
snf-admin-app/synnefo_admin/admin/static/sass/ie.scss
snf-admin-app/synnefo_admin/admin/static/sass/ie.scss
+5
-0
snf-admin-app/synnefo_admin/admin/static/sass/main-light.scss
...admin-app/synnefo_admin/admin/static/sass/main-light.scss
+6
-0
snf-admin-app/synnefo_admin/admin/static/sass/main.scss
snf-admin-app/synnefo_admin/admin/static/sass/main.scss
+6
-0
snf-admin-app/synnefo_admin/admin/static/sass/print.scss
snf-admin-app/synnefo_admin/admin/static/sass/print.scss
+3
-0
snf-admin-app/synnefo_admin/admin/static/sass/screen.scss
snf-admin-app/synnefo_admin/admin/static/sass/screen.scss
+6
-0
snf-admin-app/synnefo_admin/admin/tables.py
snf-admin-app/synnefo_admin/admin/tables.py
+39
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_action_modal.html
...pp/synnefo_admin/admin/templates/admin/_action_modal.html
+65
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_base_list_head.html
.../synnefo_admin/admin/templates/admin/_base_list_head.html
+53
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_base_list_tail.html
.../synnefo_admin/admin/templates/admin/_base_list_tail.html
+6
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_base_main_item_head.html
...efo_admin/admin/templates/admin/_base_main_item_head.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_base_main_item_tail.html
...efo_admin/admin/templates/admin/_base_main_item_tail.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_details_h4_lt.html
...p/synnefo_admin/admin/templates/admin/_details_h4_lt.html
+11
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_ip_details.html
...-app/synnefo_admin/admin/templates/admin/_ip_details.html
+41
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_ip_log_details.html
.../synnefo_admin/admin/templates/admin/_ip_log_details.html
+19
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_network_details.html
...synnefo_admin/admin/templates/admin/_network_details.html
+37
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_nic_details.html
...app/synnefo_admin/admin/templates/admin/_nic_details.html
+56
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_project_details.html
...synnefo_admin/admin/templates/admin/_project_details.html
+114
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_quota_details.html
...p/synnefo_admin/admin/templates/admin/_quota_details.html
+32
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_user_details.html
...pp/synnefo_admin/admin/templates/admin/_user_details.html
+71
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_vm_actions.html
...-app/synnefo_admin/admin/templates/admin/_vm_actions.html
+31
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_vm_details.html
...-app/synnefo_admin/admin/templates/admin/_vm_details.html
+111
-0
snf-admin-app/synnefo_admin/admin/templates/admin/_volume_details.html
.../synnefo_admin/admin/templates/admin/_volume_details.html
+67
-0
snf-admin-app/synnefo_admin/admin/templates/admin/action_list_horizontal.html
...o_admin/admin/templates/admin/action_list_horizontal.html
+10
-0
snf-admin-app/synnefo_admin/admin/templates/admin/action_list_vertical.html
...efo_admin/admin/templates/admin/action_list_vertical.html
+14
-0
snf-admin-app/synnefo_admin/admin/templates/admin/action_modal_list.html
...ynnefo_admin/admin/templates/admin/action_modal_list.html
+17
-0
snf-admin-app/synnefo_admin/admin/templates/admin/admin_404.html
...in-app/synnefo_admin/admin/templates/admin/admin_404.html
+6
-0
snf-admin-app/synnefo_admin/admin/templates/admin/admin_405.html
...in-app/synnefo_admin/admin/templates/admin/admin_405.html
+6
-0
snf-admin-app/synnefo_admin/admin/templates/admin/auth_provider_list.html
...nnefo_admin/admin/templates/admin/auth_provider_list.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/base.html
snf-admin-app/synnefo_admin/admin/templates/admin/base.html
+119
-0
snf-admin-app/synnefo_admin/admin/templates/admin/base_details.html
...app/synnefo_admin/admin/templates/admin/base_details.html
+105
-0
snf-admin-app/synnefo_admin/admin/templates/admin/base_list.html
...in-app/synnefo_admin/admin/templates/admin/base_list.html
+27
-0
snf-admin-app/synnefo_admin/admin/templates/admin/charts.html
...admin-app/synnefo_admin/admin/templates/admin/charts.html
+51
-0
snf-admin-app/synnefo_admin/admin/templates/admin/filter_bool.html
...-app/synnefo_admin/admin/templates/admin/filter_bool.html
+15
-0
snf-admin-app/synnefo_admin/admin/templates/admin/filter_char.html
...-app/synnefo_admin/admin/templates/admin/filter_char.html
+11
-0
snf-admin-app/synnefo_admin/admin/templates/admin/filter_choice.html
...pp/synnefo_admin/admin/templates/admin/filter_choice.html
+16
-0
snf-admin-app/synnefo_admin/admin/templates/admin/filter_list.html
...-app/synnefo_admin/admin/templates/admin/filter_list.html
+7
-0
snf-admin-app/synnefo_admin/admin/templates/admin/filter_multichoice.html
...nnefo_admin/admin/templates/admin/filter_multichoice.html
+17
-0
snf-admin-app/synnefo_admin/admin/templates/admin/filter_number.html
...pp/synnefo_admin/admin/templates/admin/filter_number.html
+7
-0
snf-admin-app/synnefo_admin/admin/templates/admin/group_list.html
...n-app/synnefo_admin/admin/templates/admin/group_list.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/home.html
snf-admin-app/synnefo_admin/admin/templates/admin/home.html
+36
-0
snf-admin-app/synnefo_admin/admin/templates/admin/ip.html
snf-admin-app/synnefo_admin/admin/templates/admin/ip.html
+48
-0
snf-admin-app/synnefo_admin/admin/templates/admin/ip_details.html
...n-app/synnefo_admin/admin/templates/admin/ip_details.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/ip_list.html
...dmin-app/synnefo_admin/admin/templates/admin/ip_list.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/ip_log_list.html
...-app/synnefo_admin/admin/templates/admin/ip_log_list.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/massive_modal.html
...pp/synnefo_admin/admin/templates/admin/massive_modal.html
+40
-0
snf-admin-app/synnefo_admin/admin/templates/admin/network_details.html
.../synnefo_admin/admin/templates/admin/network_details.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/network_list.html
...app/synnefo_admin/admin/templates/admin/network_list.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/networks_list.html
...pp/synnefo_admin/admin/templates/admin/networks_list.html
+69
-0
snf-admin-app/synnefo_admin/admin/templates/admin/project_details.html
.../synnefo_admin/admin/templates/admin/project_details.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/project_list.html
...app/synnefo_admin/admin/templates/admin/project_list.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/stats.html
snf-admin-app/synnefo_admin/admin/templates/admin/stats.html
+56
-0
snf-admin-app/synnefo_admin/admin/templates/admin/subnav.html
...admin-app/synnefo_admin/admin/templates/admin/subnav.html
+29
-0
snf-admin-app/synnefo_admin/admin/templates/admin/table.html
snf-admin-app/synnefo_admin/admin/templates/admin/table.html
+51
-0
snf-admin-app/synnefo_admin/admin/templates/admin/user_details.html
...app/synnefo_admin/admin/templates/admin/user_details.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/user_list.html
...in-app/synnefo_admin/admin/templates/admin/user_list.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/vm_details.html
...n-app/synnefo_admin/admin/templates/admin/vm_details.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/vm_list.html
...dmin-app/synnefo_admin/admin/templates/admin/vm_list.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/volume_details.html
...p/synnefo_admin/admin/templates/admin/volume_details.html
+1
-0
snf-admin-app/synnefo_admin/admin/templates/admin/volume_list.html
...-app/synnefo_admin/admin/templates/admin/volume_list.html
+1
-0
snf-admin-app/synnefo_admin/admin/templatetags/__init__.py
snf-admin-app/synnefo_admin/admin/templatetags/__init__.py
+0
-0
snf-admin-app/synnefo_admin/admin/templatetags/admin_tags.py
snf-admin-app/synnefo_admin/admin/templatetags/admin_tags.py
+411
-0
snf-admin-app/synnefo_admin/admin/tests/__init__.py
snf-admin-app/synnefo_admin/admin/tests/__init__.py
+20
-0
snf-admin-app/synnefo_admin/admin/tests/common.py
snf-admin-app/synnefo_admin/admin/tests/common.py
+215
-0
snf-admin-app/synnefo_admin/admin/tests/projects.py
snf-admin-app/synnefo_admin/admin/tests/projects.py
+40
-0
snf-admin-app/synnefo_admin/admin/tests/users.py
snf-admin-app/synnefo_admin/admin/tests/users.py
+162
-0
snf-admin-app/synnefo_admin/admin/tests/utils.py
snf-admin-app/synnefo_admin/admin/tests/utils.py
+212
-0
snf-admin-app/synnefo_admin/admin/tests/views.py
snf-admin-app/synnefo_admin/admin/tests/views.py
+147
-0
snf-admin-app/synnefo_admin/admin/urls.py
snf-admin-app/synnefo_admin/admin/urls.py
+36
-0
snf-admin-app/synnefo_admin/admin/utils.py
snf-admin-app/synnefo_admin/admin/utils.py
+288
-0
snf-admin-app/synnefo_admin/admin/views.py
snf-admin-app/synnefo_admin/admin/views.py
+358
-0
snf-admin-app/synnefo_admin/admin_settings.py
snf-admin-app/synnefo_admin/admin_settings.py
+146
-0
snf-admin-app/synnefo_admin/app_settings/__init__.py
snf-admin-app/synnefo_admin/app_settings/__init__.py
+23
-0
snf-admin-app/synnefo_admin/app_settings/default/__init__.py
snf-admin-app/synnefo_admin/app_settings/default/__init__.py
+14
-0
snf-admin-app/synnefo_admin/conf/20-snf-admin-app-general.conf
...dmin-app/synnefo_admin/conf/20-snf-admin-app-general.conf
+92
-0
snf-admin-app/synnefo_admin/urls.py
snf-admin-app/synnefo_admin/urls.py
+6
-0
snf-common/synnefo/settings/test.py
snf-common/synnefo/settings/test.py
+5
-1
snf-deploy/conf/packages.conf
snf-deploy/conf/packages.conf
+1
-0
snf-deploy/conf/setups.conf
snf-deploy/conf/setups.conf
+1
-0
snf-deploy/files/etc/synnefo/admin.conf
snf-deploy/files/etc/synnefo/admin.conf
+3
-0
snf-deploy/snfdeploy/components.py
snf-deploy/snfdeploy/components.py
+64
-0
snf-deploy/snfdeploy/constants.py
snf-deploy/snfdeploy/constants.py
+1
-0
snf-deploy/snfdeploy/context.py
snf-deploy/snfdeploy/context.py
+1
-0
snf-deploy/snfdeploy/fabfile.py
snf-deploy/snfdeploy/fabfile.py
+1
-0
snf-deploy/snfdeploy/roles.py
snf-deploy/snfdeploy/roles.py
+1
-0
No files found.
.gitignore
View file @
05556197
...
...
@@ -9,6 +9,8 @@ share/
build/
include/
!snf-cyclades-app/synnefo/ui/static/snf/extra/noVNC/include/
_sass/
.sass-cache/
*.pt.py
*.installed.cfg
*.sqlite
...
...
@@ -21,7 +23,7 @@ selenium-server-standalone-2.0b2.jar
.settings/
settings.d/*-local.conf
*.egg-info
dist
#
dist
_build
.coverage
...
...
@@ -32,6 +34,7 @@ pithos/data
*/synnefo/versions/*.py
*/pithos/*/version.py
!*/synnefo/versions/__init__.py
snf-admin-app/synnefo_admin/version.py
snf-astakos-app/astakos/version.py
snf-tools/synnefo_tools/version.py
snf-quotaholder-app/quotaholder_django/version.py
...
...
Changelog
View file @
05556197
...
...
@@ -6,7 +6,7 @@ Unified Changelog file for Synnefo versions >= 0.13
Since v0.13 most of the Synnefo components have been merged into a single
repository and have aligned versions.
v0.1
5next
v0.1
6
=========
Released: UNRELEASED
...
...
@@ -216,6 +216,17 @@ Pithos
specifically requested or an invalid value is passed, the disposition type
is set to 'inline'.
Admin
-----
* Introduce Administrator Dashboard, which provides the following:
* Graphic access to the details of various Synnefo entities (users, VMs,
Projects).
* Intuitive filtering.
* Multiple actions and notifications.
* Charts and statistics generation.
.. _Changelog-0.15.2:
v0.15.2
...
...
NEWS
View file @
05556197
...
...
@@ -5,6 +5,18 @@ Unified NEWS file for Synnefo versions >= 0.13
Since v0.13 all Synnefo components have been merged into a single repository.
.. _NEWS-0.16:
v0.16
=======
Released: UNRELEASED
The most notables changes are:
* Addition of an Administrator Dashboard (Admin) to manage and view various
Synnefo entities.
.. _NEWS-0.15.2:
v0.15.2
...
...
ci/ci_wheezy.conf
View file @
05556197
...
...
@@ -74,7 +74,7 @@ cmd_options = --images "name:.*" --flavors "name:C1R512D2file" --no-ipv6
[
Unit
Tests
]
component
=
astakos
cyclades
pithos
astakosclient
component
=
astakos
cyclades
pithos
astakosclient
admin
[
Repository
]
...
...
@@ -89,5 +89,6 @@ projects =
snf
-
pithos
-
backend
snf
-
cyclades
-
gtools
snf
-
cyclades
-
app
snf
-
admin
-
app
snf
-
pithos
-
app
snf
-
tools
ci/config
View file @
05556197
...
...
@@ -9,4 +9,5 @@ PROJECTS="\
snf-cyclades-gtools\
snf-cyclades-app\
snf-pithos-app\
snf-admin-app\
snf-tools"
ci/schemas/one_node_wheezy/packages.conf
View file @
05556197
...
...
@@ -7,5 +7,6 @@ curl = 7.26.0-1+wheezy9
snf
-
image
=
unstable
snf
-
ganeti
=
unstable
ganeti2
=
unstable
python
-
django
-
eztables
=
0
.
3
.
3
-
1
~
snf
~
0
.
2
[
ubuntu
]
ci/schemas/one_node_wheezy/setups.conf
View file @
05556197
...
...
@@ -13,6 +13,7 @@ db = node
mq
=
node
astakos
=
node
cyclades
=
node
admin
=
node
pithos
=
node
cms
=
node
stats
=
node
...
...
ci/tests.sh
View file @
05556197
...
...
@@ -4,7 +4,7 @@ set -e
runAstakosTests
()
{
if
[
-z
"
$astakos_tests
"
]
;
then return
;
fi
export
SYNNEFO_EXCLUDE_PACKAGES
=
"snf-cyclades-app"
export
SYNNEFO_EXCLUDE_PACKAGES
=
"snf-cyclades-app
snf-admin-app snf-pithos-app
"
CURRENT_COMPONENT
=
astakos
createSnfManageTest
$astakos_tests
runTest
...
...
@@ -13,16 +13,25 @@ runAstakosTests () {
runCycladesTests
()
{
if
[
-z
"
$cyclades_tests
"
]
;
then return
;
fi
export
SYNNEFO_EXCLUDE_PACKAGES
=
"snf-pithos-app snf-astakos-app"
export
SYNNEFO_EXCLUDE_PACKAGES
=
"snf-pithos-app snf-astakos-app
snf-admin-app
"
CURRENT_COMPONENT
=
synnefo
createSnfManageTest
$cyclades_tests
runTest
}
runAdminTests
()
{
if
[
-z
"
$admin_tests
"
]
;
then return
;
fi
export
SYNNEFO_EXCLUDE_PACKAGES
=
"snf-pithos-app"
CURRENT_COMPONENT
=
synnefo_admin
createSnfManageTest
$admin_tests
runTest
}
runPithosTests
()
{
if
[
-z
"
$pithos_tests
"
]
;
then return
;
fi
export
SYNNEFO_EXCLUDE_PACKAGES
=
"snf-cyclades-app"
export
SYNNEFO_EXCLUDE_PACKAGES
=
"snf-cyclades-app
snf-astakos-app
"
CURRENT_COMPONENT
=
pithos
createSnfManageTest
$pithos_tests
runTest
...
...
@@ -118,7 +127,7 @@ extract_tests () {
append
"
${
c
}
_tests"
"
$(
eval
"echo
\$
"
${
c
}
"_all_tests"
)
"
return
elif
contains
$1
"
$c
."
;
then
append
"
${
c
}
_tests"
$(
echo
$1
|
sed
-e
's/[a-z]*\.//g'
)
append
"
${
c
}
_tests"
$(
echo
$1
|
sed
-e
's/
^
[a-z]*\.//g'
)
return
fi
fi
...
...
@@ -131,12 +140,14 @@ export SYNNEFO_SETTINGS_DIR=/tmp/snf-test-settings
astakos_all_tests
=
"im quotaholder_app oa2"
cyclades_all_tests
=
"api db logic plankton quotas vmapi helpdesk userdata volume"
admin_all_tests
=
"admin"
pithos_all_tests
=
"api"
astakosclient_all_tests
=
"astakosclient"
ALL_COMPONENTS
=
"astakos cyclades pithos astakosclient"
ALL_COMPONENTS
=
"astakos cyclades
admin
pithos astakosclient"
astakos_tests
=
""
cyclades_tests
=
""
admin_tests
=
""
pithos_tests
=
""
astakosclient_tests
=
""
...
...
@@ -170,6 +181,7 @@ echo "| Component | Tests"
echo
"|---------------|----------------------------"
echo
"| Astakos |
$astakos_tests
"
echo
"| Cyclades |
$cyclades_tests
"
echo
"| Admin |
$admin_tests
"
echo
"| Pithos |
$pithos_tests
"
echo
"| Astakosclient |
$astakosclient_tests
"
echo
"|===============|============================"
...
...
@@ -183,5 +195,6 @@ fi
# For each component, run the specified tests.
runAstakosTests
runCycladesTests
runAdminTests
runPithosTests
runAstakosclientTests
devflow.conf
View file @
05556197
...
...
@@ -7,6 +7,8 @@
version_file
=
"snf-astakos-app/astakos/version.py"
[[
snf
-
cyclades
-
app
]]
version_file
=
"snf-cyclades-app/synnefo/versions/app.py"
[[
snf
-
admin
-
app
]]
version_file
=
"snf-admin-app/synnefo_admin/version.py"
[[
snf
-
cyclades
-
gtools
]]
version_file
=
"snf-cyclades-gtools/synnefo/versions/ganeti.py"
[[
snf
-
pithos
-
app
]]
...
...
docs/admin-guide.rst
View file @
05556197
...
...
@@ -1651,6 +1651,124 @@ these messages and properly updates the state of the Cyclades DB. Subsequent
requests
to
the
Cyclades
API
,
will
retrieve
the
updated
state
from
the
DB
.
Admin
Dashboard
(
Admin
)
=======================
Introduction
------------
Admin
is
the
Synnefo
component
that
provides
to
trusted
users
the
ability
to
manage
and
view
various
different
Synnefo
entities
such
as
users
,
VMs
,
projects
etc
.
Additionally
,
it
automatically
generates
charts
and
statistics
using
data
from
the
Astakos
/
Cyclades
stats
.
Access
and
permissions
----------------------
The
Admin
dashboard
can
be
accessed
by
default
from
the
`/
admin
/`
URL
.
Since
there
is
no
login
form
,
the
user
must
login
on
Astakos
first
and
then
visit
the
above
URL
.
Access
will
be
granted
only
to
users
that
belong
to
a
predefined
list
of
Astakos
groups
.
By
default
,
there
are
three
group
categories
that
are
mapped
1
-
to
-
1
to
Astakos
groups
:
*
ADMIN_READONLY_GROUP
:
'admin-readonly'
*
ADMIN_HELPDESK_GROUP
:
'helpdesk'
*
ADMIN_GROUP
:
'admin'
The
group
categories
can
be
changed
using
the
`
ADMIN_PERMITTED_GROUPS
`
setting
.
In
order
to
change
the
Astakos
group
that
a
category
corresponds
to
,
the
administrator
can
specify
the
group
that
he
/
she
wants
in
the
`
ADMIN_READONLY_GROUP
`,
`
ADMIN_HELPDESK_GROUP
`
or
`
ADMIN_GROUP
`
settings
.
Note
that
while
any
user
that
belongs
to
the
`
ADMIN_PERMITTED_GROUPS
`
has
the
same
access
to
the
administrator
dashboard
,
the
actions
that
are
allowed
for
a
group
may
differ
.
That
's because Admin implements a Role-Based Access Control
(RBAC) policy, which can be changed from the `ADMIN_RBAC` setting. By default,
users in the `ADMIN_READONLY_GROUP` cannot perform any actions. On the other
hand, users in the `ADMIN_GROUP` can perform all actions. In the middle of the
spectrum is the `ADMIN_HELPDESK_GROUP`, which by default performs a small
subset of reversible actions.
Seting up Admin
---------------
Admin is bundled by default with a list of sane settings. The most important
one, `ADMIN_ENABLED`, is set to `True` and defines whether Admin will be used
or not. Therefore, the administrator only needs to create the necessary Astakos
groups and add trusted users in them. The following example will create an
admin group and will add a user in it:
.. code-block:: console
snf-manage group-add admin
snf-manage user-modify --add-group=admin <user_id>
That'
s
all
that
is
required
for
a
single
-
node
setup
.
For
a
multi
-
node
setup
,
please
consult
the
following
section
:
Multi
-
node
Setup
~~~~~~~~~~~~~~~~
Admin
by
design
does
not
use
the
Astakos
/
Cyclades
API
for
any
action
.
Instead
,
it
requires
direct
access
to
the
Astakos
/
Cyclades
database
as
well
as
the
settings
of
their
nodes
.
As
a
result
,
when
installing
Admin
in
a
node
,
the
Astakos
and
Cyclades
packages
will
also
be
installed
.
In
order
to
disable
the
Astakos
/
Cyclades
API
in
the
Admin
node
,
the
administrator
can
add
the
following
line
in
`
99
-
local
.
conf
`:
..
code
-
block
::
console
ROOT_URLCONF
=
"synnefo_admin.admin.urls"
As
a
result
,
Admin
will
be
accessible
by
this
URL
:
`<
Admin_Node_URL
>/`.
If
the
administrator
wishes
to
use
the
default
URL
(`<
Admin_Node_URL
>/
admin
/`),
then
the
following
line
must
be
added
instead
.
..
code
-
block
::
console
ROOT_URLCONF
=
"synnefo_admin.urls"
Furthermore
,
if
Astakos
and
Cyclades
have
separate
databases
,
then
they
must
be
defined
in
the
`
DATABASES
`
setting
of
`
10
-
snf
-
webproject
-
database
.
conf
`.
An
example
setup
is
the
following
:
..
code
-
block
::
console
DATABASES
=
{
'default'
:
{
'ENGINE'
:
'django.db.backends.postgresql_psycopg2'
,
'NAME'
:
'snf_apps_cyclades'
,
'HOST'
:
<
Cyclades
host
>,
<...
snip
..>
},
'cyclades'
:
{
'ENGINE'
:
'django.db.backends.postgresql_psycopg2'
,
'NAME'
:
'snf_apps_cyclades'
,
'HOST'
:
<
Cyclades
host
>,
<...
snip
..>
},
'astakos'
:
{
'ENGINE'
:
'django.db.backends.postgresql_psycopg2'
,
'NAME'
:
'snf_apps_astakos'
,
'HOST'
:
<
Cyclades
host
>,
<...
snip
..>
}
}
DATABASE_ROUTERS
=
[
'synnefo_admin.admin.routers.AdminRouter'
]
You
may
notice
that
there
are
three
databases
instead
of
two
.
That
's because
Django requires that every `DATABASES` setting has a *default* database. In our
case, we suggest that you use as default the Cyclades database. Finally, you
must not forget to add the `DATABASE_ROUTERS` setting in the above example that
must always be used in multi-db setups.
Disabling Admin
---------------
The easiest way to disable the Admin Dashboard is to set the `ADMIN_ENABLED`
setting to False.
List of all Synnefo components
==============================
...
...
@@ -1664,6 +1782,7 @@ They are also available from our apt repository: ``apt.dev.grnet.gr``
* `snf-pithos-webclient <http://www.synnefo.org/docs/pithos-webclient/latest/index.html>`_
* `snf-cyclades-app <http://www.synnefo.org/docs/snf-cyclades-app/latest/index.html>`_
* `snf-cyclades-gtools <http://www.synnefo.org/docs/snf-cyclades-gtools/latest/index.html>`_
* `snf-admin-app <http://www.synnefo.org/docs/snf-admin-app/latest/index.html>`_
* `astakosclient <http://www.synnefo.org/docs/astakosclient/latest/index.html>`_
* `snf-vncauthproxy <https://github.com/grnet/snf-vncauthproxy>`_
* `snf-image <http://www.synnefo.org/docs/snf-image/latest/index.html/>`_
...
...
docs/install-guide-debian.rst
View file @
05556197
...
...
@@ -2538,3 +2538,43 @@ SSH or RDP (for windows machines).
Congratulations. You have successfully installed the whole Synnefo stack and
connected all components.
Installation of Admin on node1
==============================
This section describes the installation of Admin. Admin is a Synnefo component
that provides to trusted users the ability to manage and view various different
Synnefo entities such as users, VMs, projects etc.
We will install Admin on node1. To do so, we install the corresponding
package by running on node1 the following command:
.. code-block:: console
# apt-get install snf-admin-app
Once the package is installed, we are done. We can proceed with testing Admin.
Testing of Admin
================
In order to test the Admin Dashboard, we need a user that belongs to the
`admin` group. We will use the user that was created in `Testing of Astakos`_
section:
.. code-block:: console
root@node1:~ # snf-manage group-add admin
root@node1:~ # snf-manage user-modify 1 --add-group=admin
Then, you need to login to the Astakos node by visiting the following URL:
``http://node1.example.com/astakos``
Once you login successfully, you can access the Admin Dashboard from this URL:
``http://node1.example.com/admin/``
This should redirect you to the **Users** table, where there should be an entry
with this user.
snf-admin-app/MANIFEST.in
0 → 100644
View file @
05556197
recursive-include synnefo_admin/admin/static *
recursive-include synnefo_admin/docs/ *.rst
include distribute_setup.py
snf-admin-app/distribute_setup.py
0 → 100644
View file @
05556197
#!python
"""Bootstrap distribute installation
If you want to use setuptools in your package's setup.py, just include this
file in the same directory with it, and add this to the top of your setup.py::
from distribute_setup import use_setuptools
use_setuptools()
If you want to require a specific version of setuptools, set a download
mirror, or use an alternate download directory, you can do so by supplying
the appropriate options to ``use_setuptools()``.
This file can also be run as a script to install or upgrade setuptools.
"""
import
os
import
sys
import
time
import
fnmatch
import
tempfile
import
tarfile
from
distutils
import
log
try
:
from
site
import
USER_SITE
except
ImportError
:
USER_SITE
=
None
try
:
import
subprocess
def
_python_cmd
(
*
args
):
args
=
(
sys
.
executable
,)
+
args
return
subprocess
.
call
(
args
)
==
0
except
ImportError
:
# will be used for python 2.3
def
_python_cmd
(
*
args
):
args
=
(
sys
.
executable
,)
+
args
# quoting arguments if windows
if
sys
.
platform
==
'win32'
:
def
quote
(
arg
):
if
' '
in
arg
:
return
'"%s"'
%
arg
return
arg
args
=
[
quote
(
arg
)
for
arg
in
args
]
return
os
.
spawnl
(
os
.
P_WAIT
,
sys
.
executable
,
*
args
)
==
0
DEFAULT_VERSION
=
"0.6.10"
DEFAULT_URL
=
"http://pypi.python.org/packages/source/d/distribute/"
SETUPTOOLS_FAKED_VERSION
=
"0.6c11"
SETUPTOOLS_PKG_INFO
=
"""
\
Metadata-Version: 1.0
Name: setuptools
Version: %s
Summary: xxxx
Home-page: xxx
Author: xxx
Author-email: xxx
License: xxx
Description: xxx
"""
%
SETUPTOOLS_FAKED_VERSION
def
_install
(
tarball
):
# extracting the tarball
tmpdir
=
tempfile
.
mkdtemp
()
log
.
warn
(
'Extracting in %s'
,
tmpdir
)
old_wd
=
os
.
getcwd
()
try
:
os
.
chdir
(
tmpdir
)
tar
=
tarfile
.
open
(
tarball
)
_extractall
(
tar
)
tar
.
close
()
# going in the directory
subdir
=
os
.
path
.
join
(
tmpdir
,
os
.
listdir
(
tmpdir
)[
0
])
os
.
chdir
(
subdir
)
log
.
warn
(
'Now working in %s'
,
subdir
)
# installing
log
.
warn
(
'Installing Distribute'
)
if
not
_python_cmd
(
'setup.py'
,
'install'
):
log
.
warn
(
'Something went wrong during the installation.'
)
log
.
warn
(
'See the error message above.'
)
finally
:
os
.
chdir
(
old_wd
)
def
_build_egg
(
egg
,
tarball
,
to_dir
):
# extracting the tarball
tmpdir
=
tempfile
.
mkdtemp
()
log
.
warn
(
'Extracting in %s'
,
tmpdir
)
old_wd
=
os
.
getcwd
()
try
:
os
.
chdir
(
tmpdir
)
tar
=
tarfile
.
open
(
tarball
)
_extractall
(
tar
)
tar
.
close
()
# going in the directory
subdir
=
os
.
path
.
join
(
tmpdir
,
os
.
listdir
(
tmpdir
)[
0
])
os
.
chdir
(
subdir
)
log
.
warn
(
'Now working in %s'
,
subdir
)
# building an egg
log
.
warn
(
'Building a Distribute egg in %s'
,
to_dir
)
_python_cmd
(
'setup.py'
,
'-q'
,
'bdist_egg'
,
'--dist-dir'
,
to_dir
)
finally
:
os
.
chdir
(
old_wd
)
# returning the result
log
.
warn
(
egg
)
if
not
os
.
path
.
exists
(
egg
):
raise
IOError
(
'Could not build the egg.'
)
def
_do_download
(
version
,
download_base
,
to_dir
,
download_delay
):
egg
=
os
.
path
.
join
(
to_dir
,
'distribute-%s-py%d.%d.egg'
%
(
version
,
sys
.
version_info
[
0
],
sys
.
version_info
[
1
]))
if
not
os
.
path
.
exists
(
egg
):
tarball
=
download_setuptools
(
version
,
download_base
,
to_dir
,
download_delay
)
_build_egg
(
egg
,
tarball
,
to_dir
)
sys
.
path
.
insert
(
0
,
egg
)
import
setuptools
setuptools
.
bootstrap_install_from
=
egg
def
use_setuptools
(
version
=
DEFAULT_VERSION
,
download_base
=
DEFAULT_URL
,
to_dir
=
os
.
curdir
,
download_delay
=
15
,
no_fake
=
True
):
# making sure we use the absolute path
to_dir
=
os
.
path
.
abspath
(
to_dir
)
was_imported
=
'pkg_resources'
in
sys
.
modules
or
\
'setuptools'
in
sys
.
modules
try
:
try
:
import
pkg_resources
if
not
hasattr
(
pkg_resources
,
'_distribute'
):
if
not
no_fake
:
_fake_setuptools
()
raise
ImportError
except
ImportError
:
return
_do_download
(
version
,
download_base
,
to_dir
,
download_delay
)
try
:
pkg_resources
.
require
(
"distribute>="
+
version
)
return
except
pkg_resources
.
VersionConflict
:
e
=
sys
.
exc_info
()[
1
]