wakame-vdc-webui 10.11.0
Sign up to get free protection for your applications and to get access to all the features.
- data/INSTALL.txt +21 -0
- data/LICENSE +202 -0
- data/NOTICE +1 -0
- data/README +256 -0
- data/Rakefile +42 -0
- data/app/controllers/accounts_controller.rb +15 -0
- data/app/controllers/application_controller.rb +5 -0
- data/app/controllers/dialog_controller.rb +80 -0
- data/app/controllers/home_controller.rb +5 -0
- data/app/controllers/host_pools_controller.rb +26 -0
- data/app/controllers/images_controller.rb +28 -0
- data/app/controllers/information_controller.rb +10 -0
- data/app/controllers/instances_controller.rb +59 -0
- data/app/controllers/keypairs_controller.rb +64 -0
- data/app/controllers/security_groups_controller.rb +59 -0
- data/app/controllers/sessions_controller.rb +25 -0
- data/app/controllers/snapshots_controller.rb +48 -0
- data/app/controllers/storage_pools_controller.rb +27 -0
- data/app/controllers/users_controller.rb +3 -0
- data/app/controllers/volumes_controller.rb +86 -0
- data/app/helpers/accounts_helper.rb +2 -0
- data/app/helpers/application_helper.rb +23 -0
- data/app/helpers/dialog_helper.rb +2 -0
- data/app/helpers/home_helper.rb +2 -0
- data/app/helpers/host_pools_helper.rb +2 -0
- data/app/helpers/images_helper.rb +2 -0
- data/app/helpers/information_helper.rb +2 -0
- data/app/helpers/instances_helper.rb +2 -0
- data/app/helpers/keypairs_helper.rb +2 -0
- data/app/helpers/security_groups_helper.rb +2 -0
- data/app/helpers/sessions_helper.rb +2 -0
- data/app/helpers/snapshots_helper.rb +2 -0
- data/app/helpers/storage_pools_helper.rb +2 -0
- data/app/helpers/users_helper.rb +2 -0
- data/app/helpers/volumes_helper.rb +2 -0
- data/app/models/account.rb +104 -0
- data/app/models/authz.rb +102 -0
- data/app/models/base_new.rb +311 -0
- data/app/models/dcmgr_resource/account.rb +5 -0
- data/app/models/dcmgr_resource/base.rb +51 -0
- data/app/models/dcmgr_resource/host_pool.rb +11 -0
- data/app/models/dcmgr_resource/image.rb +11 -0
- data/app/models/dcmgr_resource/instance.rb +37 -0
- data/app/models/dcmgr_resource/mock.rb +15 -0
- data/app/models/dcmgr_resource/netfilter_group.rb +29 -0
- data/app/models/dcmgr_resource/ssh_key_pair.rb +25 -0
- data/app/models/dcmgr_resource/storage_pool.rb +11 -0
- data/app/models/dcmgr_resource/volume.rb +48 -0
- data/app/models/dcmgr_resource/volume_snapshot.rb +35 -0
- data/app/models/information.rb +9 -0
- data/app/models/schema.rb +51 -0
- data/app/models/tag.rb +121 -0
- data/app/models/tag_mapping.rb +25 -0
- data/app/models/user.rb +46 -0
- data/app/views/accounts/index.html.erb +68 -0
- data/app/views/dialog/attach_volume.html.erb +13 -0
- data/app/views/dialog/create_and_edit_security_group.html.erb +32 -0
- data/app/views/dialog/create_snapshot.html.erb +7 -0
- data/app/views/dialog/create_ssh_keypair.html.erb +15 -0
- data/app/views/dialog/create_volume.html.erb +18 -0
- data/app/views/dialog/create_volume_from_snapshot.html.erb +7 -0
- data/app/views/dialog/delete_security_group.html.erb +4 -0
- data/app/views/dialog/delete_snapshot.html.erb +7 -0
- data/app/views/dialog/delete_ssh_keypair.html.erb +4 -0
- data/app/views/dialog/delete_volume.html.erb +7 -0
- data/app/views/dialog/detach_volume.html.erb +7 -0
- data/app/views/dialog/launch_instance.html.erb +70 -0
- data/app/views/dialog/reboot_instances.html.erb +7 -0
- data/app/views/dialog/start_instances.html.erb +8 -0
- data/app/views/dialog/stop_instances.html.erb +7 -0
- data/app/views/dialog/terminate_instances.html.erb +7 -0
- data/app/views/home/index.html.erb +55 -0
- data/app/views/host_pools/index.html.erb +103 -0
- data/app/views/images/index.html.erb +126 -0
- data/app/views/information/index.html.erb +25 -0
- data/app/views/instances/index.html.erb +134 -0
- data/app/views/keypairs/index.html.erb +104 -0
- data/app/views/layouts/_footer.html.erb +4 -0
- data/app/views/layouts/_header.html.erb +14 -0
- data/app/views/layouts/_informationarea.html.erb +18 -0
- data/app/views/layouts/_login_header.erb +4 -0
- data/app/views/layouts/_service_health.erb +27 -0
- data/app/views/layouts/_sidemenu.html.erb +58 -0
- data/app/views/layouts/application.html.erb +34 -0
- data/app/views/layouts/login.html.erb +25 -0
- data/app/views/security_groups/index.html.erb +114 -0
- data/app/views/sessions/new.html.erb +27 -0
- data/app/views/snapshots/index.html.erb +110 -0
- data/app/views/storage_pools/index.html.erb +98 -0
- data/app/views/volumes/index.html.erb +117 -0
- data/config.ru +4 -0
- data/config/application.rb +48 -0
- data/config/boot.rb +13 -0
- data/config/database.yml +20 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +28 -0
- data/config/environments/production.rb +49 -0
- data/config/environments/test.rb +35 -0
- data/config/initializers/backtrace_silencers.rb +7 -0
- data/config/initializers/dcmgr_gui.rb +14 -0
- data/config/initializers/inflections.rb +10 -0
- data/config/initializers/mime_types.rb +5 -0
- data/config/initializers/secret_token.rb +7 -0
- data/config/initializers/session_store.rb +8 -0
- data/config/locales/en.yml +5 -0
- data/config/routes.rb +109 -0
- data/db/seeds.rb +7 -0
- data/extras/authentication.rb +94 -0
- data/extras/util.rb +5 -0
- data/lib/tasks/dcmgr_gui.rake +51 -0
- data/public/404.html +26 -0
- data/public/422.html +26 -0
- data/public/500.html +26 -0
- data/public/favicon.ico +0 -0
- data/public/images/app_active.gif +0 -0
- data/public/images/app_passive.gif +0 -0
- data/public/images/body_bg.gif +0 -0
- data/public/images/btn_change.gif +0 -0
- data/public/images/btn_create_security_group.gif +0 -0
- data/public/images/btn_create_snapshot.gif +0 -0
- data/public/images/btn_create_volume.gif +0 -0
- data/public/images/btn_createkey.gif +0 -0
- data/public/images/btn_de_register.gif +0 -0
- data/public/images/btn_delete_security_group.gif +0 -0
- data/public/images/btn_delete_snapshot.gif +0 -0
- data/public/images/btn_delete_volume.gif +0 -0
- data/public/images/btn_deletekey.gif +0 -0
- data/public/images/btn_healthdetail.gif +0 -0
- data/public/images/btn_hide.gif +0 -0
- data/public/images/btn_launch.gif +0 -0
- data/public/images/btn_next.gif +0 -0
- data/public/images/btn_prev.gif +0 -0
- data/public/images/btn_refresh.gif +0 -0
- data/public/images/btn_register_new_ami.gif +0 -0
- data/public/images/btn_savechange.gif +0 -0
- data/public/images/btn_show.gif +0 -0
- data/public/images/btn_show_accesskey.png +0 -0
- data/public/images/bup_btn_healthdetail.gif +0 -0
- data/public/images/bup_btn_refresh.gif +0 -0
- data/public/images/clear.gif +0 -0
- data/public/images/content_bg.png +0 -0
- data/public/images/content_foot_bg.gif +0 -0
- data/public/images/content_head_bg.gif +0 -0
- data/public/images/footer_bg.gif +0 -0
- data/public/images/head_gradation_bg.gif +0 -0
- data/public/images/header_logo.gif +0 -0
- data/public/images/icon_blockstore.gif +0 -0
- data/public/images/icon_caution.gif +0 -0
- data/public/images/icon_health.gif +0 -0
- data/public/images/icon_images.gif +0 -0
- data/public/images/icon_information.gif +0 -0
- data/public/images/icon_instances.gif +0 -0
- data/public/images/icon_resource.gif +0 -0
- data/public/images/icon_resource01.gif +0 -0
- data/public/images/icon_resource02.gif +0 -0
- data/public/images/icon_resource03.gif +0 -0
- data/public/images/icon_resource04.gif +0 -0
- data/public/images/icon_rss.gif +0 -0
- data/public/images/icon_security.gif +0 -0
- data/public/images/icon_service.gif +0 -0
- data/public/images/icon_service_stat.gif +0 -0
- data/public/images/icon_stop.gif +0 -0
- data/public/images/icon_summary.gif +0 -0
- data/public/images/icon_ttl_accskey.gif +0 -0
- data/public/images/icon_ttl_detail.gif +0 -0
- data/public/images/icon_ttl_instance.gif +0 -0
- data/public/images/icon_ttl_personal_inf.gif +0 -0
- data/public/images/infra_active.gif +0 -0
- data/public/images/infra_passive.gif +0 -0
- data/public/images/lastelement_bg.gif +0 -0
- data/public/images/lastelement_bg.png +0 -0
- data/public/images/listicon_useast.gif +0 -0
- data/public/images/loader_ball.gif +0 -0
- data/public/images/loader_boxes.gif +0 -0
- data/public/images/loading.gif +0 -0
- data/public/images/mainarea_bottom_bg.gif +0 -0
- data/public/images/mainarea_content_bg.gif +0 -0
- data/public/images/mainarea_h3_bg.gif +0 -0
- data/public/images/mainarea_wide_bottom_bg.gif +0 -0
- data/public/images/mainarea_wide_content_bg.gif +0 -0
- data/public/images/mainarea_wide_h3_bg.gif +0 -0
- data/public/images/menu_list_header.gif +0 -0
- data/public/images/menu_list_header_current.gif +0 -0
- data/public/images/plat_active.gif +0 -0
- data/public/images/plat_passive.gif +0 -0
- data/public/images/regionselect_bg.gif +0 -0
- data/public/images/select_bg_126.gif +0 -0
- data/public/images/select_bg_139.gif +0 -0
- data/public/images/sidemenu_bg.gif +0 -0
- data/public/images/sidemenu_bottom.gif +0 -0
- data/public/images/sidemenu_top.gif +0 -0
- data/public/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- data/public/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- data/public/images/ui-bg_flat_10_000000_40x100.png +0 -0
- data/public/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- data/public/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- data/public/images/ui-bg_glass_55_fcf0ba_1x400.png +0 -0
- data/public/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- data/public/images/ui-bg_gloss-wave_100_ece8da_500x100.png +0 -0
- data/public/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- data/public/images/ui-bg_highlight-hard_100_f5f3e5_1x100.png +0 -0
- data/public/images/ui-bg_highlight-hard_100_fafaf4_1x100.png +0 -0
- data/public/images/ui-bg_highlight-hard_15_459e00_1x100.png +0 -0
- data/public/images/ui-bg_highlight-hard_95_cccccc_1x100.png +0 -0
- data/public/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- data/public/images/ui-bg_highlight-soft_25_67b021_1x100.png +0 -0
- data/public/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- data/public/images/ui-bg_highlight-soft_95_ffedad_1x100.png +0 -0
- data/public/images/ui-bg_inset-soft_15_2b2922_1x100.png +0 -0
- data/public/images/ui-icons_222222_256x240.png +0 -0
- data/public/images/ui-icons_228ef1_256x240.png +0 -0
- data/public/images/ui-icons_808080_256x240.png +0 -0
- data/public/images/ui-icons_847e71_256x240.png +0 -0
- data/public/images/ui-icons_8dc262_256x240.png +0 -0
- data/public/images/ui-icons_cd0a0a_256x240.png +0 -0
- data/public/images/ui-icons_eeeeee_256x240.png +0 -0
- data/public/images/ui-icons_ef8c08_256x240.png +0 -0
- data/public/images/ui-icons_ffd27a_256x240.png +0 -0
- data/public/images/ui-icons_ffffff_256x240.png +0 -0
- data/public/images/vtip_arrow.png +0 -0
- data/public/javascripts/controls.js +965 -0
- data/public/javascripts/dcmgr_gui/application.js +91 -0
- data/public/javascripts/dcmgr_gui/core.js +539 -0
- data/public/javascripts/dcmgr_gui/dashboard_panel.js +34 -0
- data/public/javascripts/dcmgr_gui/host_pool_panel.js +83 -0
- data/public/javascripts/dcmgr_gui/image_panel.js +242 -0
- data/public/javascripts/dcmgr_gui/instance_panel.js +197 -0
- data/public/javascripts/dcmgr_gui/security_group_panel.js +196 -0
- data/public/javascripts/dcmgr_gui/snapshot_panel.js +168 -0
- data/public/javascripts/dcmgr_gui/sshkeypair_panel.js +161 -0
- data/public/javascripts/dcmgr_gui/storage_pool_panel.js +99 -0
- data/public/javascripts/dcmgr_gui/volume_panel.js +311 -0
- data/public/javascripts/dragdrop.js +974 -0
- data/public/javascripts/effects.js +1123 -0
- data/public/javascripts/jquery-1.4.2.min.js +154 -0
- data/public/javascripts/jquery-ui-1.8.4.custom.min.js +763 -0
- data/public/javascripts/jquery.loadmask.min.js +10 -0
- data/public/javascripts/jquery.tmpl.js +486 -0
- data/public/javascripts/jsdeferred.jquery.js +385 -0
- data/public/javascripts/prototype.js +6001 -0
- data/public/javascripts/rails.js +175 -0
- data/public/robots.txt +5 -0
- data/public/stylesheets/common.css +1236 -0
- data/public/stylesheets/dialog.css +67 -0
- data/public/stylesheets/jquery-ui-1.8.4.custom.css +572 -0
- data/public/stylesheets/jquery.loadmask.css +40 -0
- data/public/stylesheets/reset.css +71 -0
- data/public/stylesheets/style.css +7 -0
- data/public/stylesheets/vtip.css +28 -0
- data/script/rails +6 -0
- data/test/functional/accounts_controller_test.rb +8 -0
- data/test/functional/dialog_controller_test.rb +8 -0
- data/test/functional/home_controller_test.rb +8 -0
- data/test/functional/host_pools_controller_test.rb +8 -0
- data/test/functional/images_controller_test.rb +8 -0
- data/test/functional/information_controller_test.rb +8 -0
- data/test/functional/instances_controller_test.rb +8 -0
- data/test/functional/keypairs_controller_test.rb +8 -0
- data/test/functional/security_groups_controller_test.rb +8 -0
- data/test/functional/sessions_controller_test.rb +8 -0
- data/test/functional/snapshots_controller_test.rb +8 -0
- data/test/functional/storage_pools_controller_test.rb +8 -0
- data/test/functional/users_controller_test.rb +8 -0
- data/test/functional/volumes_controller_test.rb +8 -0
- data/test/performance/browsing_test.rb +9 -0
- data/test/test_helper.rb +13 -0
- data/test/unit/helpers/accounts_helper_test.rb +4 -0
- data/test/unit/helpers/dialog_helper_test.rb +4 -0
- data/test/unit/helpers/home_helper_test.rb +4 -0
- data/test/unit/helpers/host_pools_helper_test.rb +4 -0
- data/test/unit/helpers/images_helper_test.rb +4 -0
- data/test/unit/helpers/information_helper_test.rb +4 -0
- data/test/unit/helpers/instances_helper_test.rb +4 -0
- data/test/unit/helpers/keypairs_helper_test.rb +4 -0
- data/test/unit/helpers/security_groups_helper_test.rb +4 -0
- data/test/unit/helpers/sessions_helper_test.rb +4 -0
- data/test/unit/helpers/snapshots_helper_test.rb +4 -0
- data/test/unit/helpers/storage_pools_helper_test.rb +4 -0
- data/test/unit/helpers/users_helper_test.rb +4 -0
- data/test/unit/helpers/volumes_helper_test.rb +4 -0
- metadata +399 -0
@@ -0,0 +1,34 @@
|
|
1
|
+
DcmgrGUI.prototype.dashboardPanel = function(){
|
2
|
+
|
3
|
+
var bt_refresh = new DcmgrGUI.Refresh();
|
4
|
+
var loading_image = DcmgrGUI.Util.getLoadingImage('ball');
|
5
|
+
|
6
|
+
bt_refresh.element.bind('dcmgrGUI.refresh', function(){
|
7
|
+
|
8
|
+
$("#total_instance").empty().html(loading_image);
|
9
|
+
$("#total_image").empty().html(loading_image);
|
10
|
+
$("#total_volume").empty().html(loading_image);
|
11
|
+
$("#total_snapshot").empty().html(loading_image);
|
12
|
+
$("#total_security_group").empty().html(loading_image);
|
13
|
+
$("#total_keypair").empty().html(loading_image);
|
14
|
+
|
15
|
+
parallel({
|
16
|
+
total_instance: $.getJSON('/instances/total.json'),
|
17
|
+
total_image: $.getJSON('/images/total.json'),
|
18
|
+
total_volume: $.getJSON('/volumes/total.json'),
|
19
|
+
total_snapshot: $.getJSON('/snapshots/total.json'),
|
20
|
+
total_security_group: $.getJSON('/security_groups/total.json'),
|
21
|
+
total_keypair: $.getJSON('/keypairs/total.json')
|
22
|
+
}).next(function(results) {
|
23
|
+
$('#total_instance').html(results.total_instance);
|
24
|
+
$('#total_image').html(results.total_image);
|
25
|
+
$('#total_volume').html(results.total_volume);
|
26
|
+
$('#total_snapshot').html(results.total_snapshot);
|
27
|
+
$('#total_security_group').html(results.total_security_group);
|
28
|
+
$('#total_keypair').html(results.total_keypair);
|
29
|
+
});
|
30
|
+
|
31
|
+
});
|
32
|
+
|
33
|
+
bt_refresh.element.trigger('dcmgrGUI.refresh');
|
34
|
+
}
|
@@ -0,0 +1,83 @@
|
|
1
|
+
DcmgrGUI.prototype.hostPoolPanel = function(){
|
2
|
+
|
3
|
+
var total = 0;
|
4
|
+
var maxrow = 10;
|
5
|
+
var page = 1;
|
6
|
+
var list_request = {
|
7
|
+
"url":DcmgrGUI.Util.getPagePath('/host_pools/list/',1),
|
8
|
+
"data" : DcmgrGUI.Util.getPagenateData(page,maxrow)
|
9
|
+
};
|
10
|
+
|
11
|
+
DcmgrGUI.List.prototype.getEmptyData = function(){
|
12
|
+
return [{
|
13
|
+
"id":'',
|
14
|
+
"uuid":'',
|
15
|
+
"node_id":'',
|
16
|
+
"host_pool_id":'',
|
17
|
+
"status":''
|
18
|
+
}]
|
19
|
+
}
|
20
|
+
|
21
|
+
DcmgrGUI.Detail.prototype.getEmptyData = function(){
|
22
|
+
return {
|
23
|
+
"id":'-',
|
24
|
+
"uuid":'-',
|
25
|
+
"node_id":'-',
|
26
|
+
"host_pool_id":'-',
|
27
|
+
"status":'-',
|
28
|
+
"created_at":'-',
|
29
|
+
"updated_at":'-'
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
var c_pagenate = new DcmgrGUI.Pagenate({
|
34
|
+
row:maxrow,
|
35
|
+
total:total
|
36
|
+
});
|
37
|
+
|
38
|
+
var c_list = new DcmgrGUI.List({
|
39
|
+
element_id:'#display_host_pools',
|
40
|
+
template_id:'#hostPoolsListTemplate',
|
41
|
+
maxrow:maxrow,
|
42
|
+
page:page
|
43
|
+
});
|
44
|
+
|
45
|
+
c_list.setDetailTemplate({
|
46
|
+
template_id:'#hostPoolsDetailTemplate',
|
47
|
+
detail_path:'/host_pools/show/'
|
48
|
+
});
|
49
|
+
|
50
|
+
c_list.element.bind('dcmgrGUI.contentChange',function(event,params){
|
51
|
+
var host_pool = params.data.host_pool;
|
52
|
+
c_pagenate.changeTotal(host_pool.owner_total);
|
53
|
+
c_list.setData(host_pool.results);
|
54
|
+
c_list.multiCheckList(c_list.detail_template);
|
55
|
+
});
|
56
|
+
|
57
|
+
var bt_refresh = new DcmgrGUI.Refresh();
|
58
|
+
|
59
|
+
bt_refresh.element.bind('dcmgrGUI.refresh',function(){
|
60
|
+
c_list.page = c_pagenate.current_page;
|
61
|
+
list_request.url = DcmgrGUI.Util.getPagePath('/host_pools/list/',c_list.page);
|
62
|
+
list_request.data = DcmgrGUI.Util.getPagenateData(c_pagenate.start,c_pagenate.row);
|
63
|
+
c_list.element.trigger('dcmgrGUI.updateList',{request:list_request})
|
64
|
+
|
65
|
+
//update detail
|
66
|
+
$.each(c_list.checked_list,function(check_id,obj){
|
67
|
+
$($('#detail').find('#'+check_id)).remove();
|
68
|
+
c_list.checked_list[check_id].c_detail.update({
|
69
|
+
url:DcmgrGUI.Util.getPagePath('/host_pools/show/',check_id)
|
70
|
+
},true);
|
71
|
+
});
|
72
|
+
});
|
73
|
+
|
74
|
+
c_pagenate.element.bind('dcmgrGUI.updatePagenate',function(){
|
75
|
+
c_list.clearCheckedList();
|
76
|
+
$('#detail').html('');
|
77
|
+
bt_refresh.element.trigger('dcmgrGUI.refresh');
|
78
|
+
});
|
79
|
+
|
80
|
+
//list
|
81
|
+
c_list.setData(null);
|
82
|
+
c_list.update(list_request,true);
|
83
|
+
}
|
@@ -0,0 +1,242 @@
|
|
1
|
+
DcmgrGUI.prototype.imagePanel = function(){
|
2
|
+
var total = 0;
|
3
|
+
var maxrow = 10;
|
4
|
+
var page = 1;
|
5
|
+
var list_request = {
|
6
|
+
"url":DcmgrGUI.Util.getPagePath('/images/list/',page),
|
7
|
+
"data" : DcmgrGUI.Util.getPagenateData(page,maxrow)
|
8
|
+
}
|
9
|
+
|
10
|
+
DcmgrGUI.List.prototype.getEmptyData = function(){
|
11
|
+
return [{
|
12
|
+
"id":'',
|
13
|
+
"wmi_id":'',
|
14
|
+
"source":'',
|
15
|
+
"owner":'',
|
16
|
+
"visibility":'',
|
17
|
+
"state":''
|
18
|
+
}]
|
19
|
+
}
|
20
|
+
|
21
|
+
DcmgrGUI.Detail.prototype.getEmptyData = function(){
|
22
|
+
return {
|
23
|
+
"name" : "-",
|
24
|
+
"description" : "-",
|
25
|
+
"source" : "-",
|
26
|
+
"owner" : "-",
|
27
|
+
"visibility" : "-",
|
28
|
+
"product_code" : "-",
|
29
|
+
"state" : "-",
|
30
|
+
"karnel_id":"-",
|
31
|
+
"platform" : "-",
|
32
|
+
"root_device_type":"-",
|
33
|
+
"root_device":"-",
|
34
|
+
"image_size":"-",
|
35
|
+
"block_devices":"-",
|
36
|
+
"virtualization":"",
|
37
|
+
"state_reason":"-"
|
38
|
+
}
|
39
|
+
}
|
40
|
+
var c_pagenate = new DcmgrGUI.Pagenate({
|
41
|
+
row:maxrow,
|
42
|
+
total:total
|
43
|
+
});
|
44
|
+
|
45
|
+
var c_list = new DcmgrGUI.List({
|
46
|
+
element_id:'#display_images',
|
47
|
+
template_id:'#imagesListTemplate',
|
48
|
+
maxrow:maxrow,
|
49
|
+
page:page
|
50
|
+
});
|
51
|
+
|
52
|
+
c_list.setDetailTemplate({
|
53
|
+
template_id:'#imagesDetailTemplate',
|
54
|
+
detail_path:'/images/show/'
|
55
|
+
});
|
56
|
+
|
57
|
+
c_list.element.bind('dcmgrGUI.contentChange',function(event,params){
|
58
|
+
var image = params.data.image;
|
59
|
+
c_pagenate.changeTotal(image.owner_total);
|
60
|
+
c_list.setData(image.results);
|
61
|
+
c_list.singleCheckList(c_list.detail_template);
|
62
|
+
});
|
63
|
+
|
64
|
+
var bt_refresh = new DcmgrGUI.Refresh();
|
65
|
+
|
66
|
+
bt_refresh.element.bind('dcmgrGUI.refresh',function(){
|
67
|
+
c_list.page = c_pagenate.current_page;
|
68
|
+
list_request.url = DcmgrGUI.Util.getPagePath('/images/list/',c_pagenate.current_page);
|
69
|
+
list_request.data = DcmgrGUI.Util.getPagenateData(c_pagenate.start,c_pagenate.row);
|
70
|
+
c_list.element.trigger('dcmgrGUI.updateList',{request:list_request})
|
71
|
+
|
72
|
+
//update detail
|
73
|
+
$.each(c_list.checked_list,function(check_id,obj){
|
74
|
+
|
75
|
+
//remove
|
76
|
+
$($('#detail').find('#'+check_id)).remove();
|
77
|
+
|
78
|
+
//update
|
79
|
+
c_list.checked_list[check_id].c_detail.update({
|
80
|
+
url:DcmgrGUI.Util.getPagePath('/images/show/',check_id)
|
81
|
+
},true);
|
82
|
+
});
|
83
|
+
});
|
84
|
+
|
85
|
+
c_pagenate.element.bind('dcmgrGUI.updatePagenate',function(){
|
86
|
+
c_list.clearCheckedList();
|
87
|
+
$('#detail').html('');
|
88
|
+
bt_refresh.element.trigger('dcmgrGUI.refresh');
|
89
|
+
});
|
90
|
+
|
91
|
+
var bt_launch_instance = new DcmgrGUI.Dialog({
|
92
|
+
target:'.launch_instance',
|
93
|
+
width:583,
|
94
|
+
height:600,
|
95
|
+
title:'Launch Instance',
|
96
|
+
path:'/launch_instance',
|
97
|
+
callback: function(){
|
98
|
+
var self = this;
|
99
|
+
|
100
|
+
var loading_image = DcmgrGUI.Util.getLoadingImage('boxes');
|
101
|
+
$(this).find('#select_host_pool').empty().html(loading_image);
|
102
|
+
$(this).find('#select_ssh_key_pair').empty().html(loading_image);
|
103
|
+
$(this).find("#left_select_list").mask("Loading...");
|
104
|
+
|
105
|
+
parallel({
|
106
|
+
//get host_pools
|
107
|
+
host_pools:
|
108
|
+
$.ajax({
|
109
|
+
"type": "GET",
|
110
|
+
"async": true,
|
111
|
+
"url": '/host_pools/show_host_pools.json',
|
112
|
+
"dataType": "json",
|
113
|
+
success: function(json,status){
|
114
|
+
var select_html = '<select id="host_pool" name="host_pool"></select>';
|
115
|
+
$(self).find('#select_host_pool').empty().html(select_html);
|
116
|
+
|
117
|
+
var results = json.host_pool.results;
|
118
|
+
var size = results.length;
|
119
|
+
var select_host_pool = $(self).find('#host_pool');
|
120
|
+
for (var i=0; i < size ; i++) {
|
121
|
+
var uuid = results[i].result.uuid;
|
122
|
+
var html = '<option value="'+ uuid +'">'+uuid+'</option>';
|
123
|
+
select_host_pool.append(html);
|
124
|
+
}
|
125
|
+
}
|
126
|
+
}),
|
127
|
+
//get ssh key pairs
|
128
|
+
ssh_keypairs:
|
129
|
+
$.ajax({
|
130
|
+
"type": "GET",
|
131
|
+
"async": true,
|
132
|
+
"url": '/keypairs/all.json',
|
133
|
+
"dataType": "json",
|
134
|
+
"data": "",
|
135
|
+
success: function(json,status){
|
136
|
+
var select_html = '<select id="ssh_key_pair" name="host_pool"></select>';
|
137
|
+
$(self).find('#select_ssh_key_pair').empty().html(select_html);
|
138
|
+
|
139
|
+
var results = json.ssh_key_pair.results;
|
140
|
+
var size = results.length;
|
141
|
+
var select_keypair = $(self).find('#ssh_key_pair');
|
142
|
+
for (var i=0; i < size ; i++) {
|
143
|
+
var name = results[i].result.name;
|
144
|
+
var ssh_keypair_id = results[i].result.id;
|
145
|
+
var html = '<option id="'+ ssh_keypair_id +'" value="'+ name +'">'+name+'</option>'
|
146
|
+
select_keypair.append(html);
|
147
|
+
}
|
148
|
+
}
|
149
|
+
}),
|
150
|
+
//get security groups
|
151
|
+
security_groups:
|
152
|
+
$.ajax({
|
153
|
+
"type": "GET",
|
154
|
+
"async": true,
|
155
|
+
"url": '/security_groups/all.json',
|
156
|
+
"dataType": "json",
|
157
|
+
"data": "",
|
158
|
+
success: function(json,status){
|
159
|
+
var data = [];
|
160
|
+
var results = json.netfilter_group.results;
|
161
|
+
var size = results.length
|
162
|
+
for (var i=0; i < size ; i++) {
|
163
|
+
data.push({
|
164
|
+
"value" : results[i].result.uuid,
|
165
|
+
"name" : results[i].result.name
|
166
|
+
});
|
167
|
+
}
|
168
|
+
|
169
|
+
var security_group = new DcmgrGUI.ItemSelector({
|
170
|
+
'left_select_id' : '#left_select_list',
|
171
|
+
'right_select_id' : "#right_select_list",
|
172
|
+
"data" : data
|
173
|
+
});
|
174
|
+
|
175
|
+
$(self).find('#right_button').click(function(){
|
176
|
+
security_group.leftToRight();
|
177
|
+
});
|
178
|
+
|
179
|
+
$(self).find('#left_button').click(function(){
|
180
|
+
security_group.rightToLeft();
|
181
|
+
});
|
182
|
+
}
|
183
|
+
})
|
184
|
+
}).next(function(results) {
|
185
|
+
bt_launch_instance.disabledButton('Launch',false);
|
186
|
+
$("#left_select_list").unmask();
|
187
|
+
});
|
188
|
+
},
|
189
|
+
button:{
|
190
|
+
"Launch": function() {
|
191
|
+
var image_id = $(this).find('#image_id').val();
|
192
|
+
var host_pool_id = $(this).find('#host_pool').find('option:selected').val();
|
193
|
+
var host_name = $(this).find('#host_name').val();
|
194
|
+
var instance_spec = $(this).find('#instance_spec').val();
|
195
|
+
var ssh_key_pair = $(this).find('#ssh_key_pair').find('option:selected').text();
|
196
|
+
var launch_in = $(this).find('#right_select_list').find('option');
|
197
|
+
var user_data = $(this).find('#user_data').val();
|
198
|
+
var nf_group = [];
|
199
|
+
$.each(launch_in,function(i){
|
200
|
+
nf_group.push("nf_group[]="+ $(this).text());
|
201
|
+
});
|
202
|
+
var nf_strings = nf_group.join('&');
|
203
|
+
|
204
|
+
var data = "image_id="+image_id
|
205
|
+
+"&host_pool_id="+host_pool_id
|
206
|
+
+"&instance_spec_id="+instance_spec
|
207
|
+
+"&host_name="+host_name
|
208
|
+
+"&user_data="+user_data
|
209
|
+
+"&"+nf_strings
|
210
|
+
+"&ssh_key="+ssh_key_pair;
|
211
|
+
|
212
|
+
$.ajax({
|
213
|
+
"type": "POST",
|
214
|
+
"async": true,
|
215
|
+
"url": '/instances',
|
216
|
+
"dataType": "json",
|
217
|
+
"data": data,
|
218
|
+
success: function(json,status){
|
219
|
+
bt_refresh.element.trigger('dcmgrGUI.refresh');
|
220
|
+
}
|
221
|
+
});
|
222
|
+
$(this).dialog("close");
|
223
|
+
}
|
224
|
+
}
|
225
|
+
});
|
226
|
+
|
227
|
+
bt_launch_instance.element.bind('dialogopen',function(){
|
228
|
+
bt_launch_instance.disabledButton('Launch',true);
|
229
|
+
});
|
230
|
+
|
231
|
+
bt_launch_instance.target.bind('click',function(){
|
232
|
+
var id = c_list.currentChecked();
|
233
|
+
if( id ){
|
234
|
+
bt_launch_instance.open({"ids":[id]});
|
235
|
+
}
|
236
|
+
return false;
|
237
|
+
});
|
238
|
+
|
239
|
+
//list
|
240
|
+
c_list.setData(null);
|
241
|
+
c_list.update(list_request,true);
|
242
|
+
}
|
@@ -0,0 +1,197 @@
|
|
1
|
+
DcmgrGUI.prototype.instancePanel = function(){
|
2
|
+
var total = 0;
|
3
|
+
var maxrow = 10;
|
4
|
+
var page = 1;
|
5
|
+
var list_request = {
|
6
|
+
"url" : DcmgrGUI.Util.getPagePath('/instances/list/',1),
|
7
|
+
"data" : DcmgrGUI.Util.getPagenateData(page,maxrow)
|
8
|
+
};
|
9
|
+
|
10
|
+
DcmgrGUI.List.prototype.getEmptyData = function(){
|
11
|
+
return [{
|
12
|
+
"id":'',
|
13
|
+
"instance_id":'',
|
14
|
+
"owner":'',
|
15
|
+
"wmi_id":'',
|
16
|
+
"state":'',
|
17
|
+
"private_ip":'',
|
18
|
+
"type":''
|
19
|
+
}]
|
20
|
+
}
|
21
|
+
|
22
|
+
DcmgrGUI.Detail.prototype.getEmptyData = function(){
|
23
|
+
return {
|
24
|
+
"instance_id":'-',
|
25
|
+
"wmi_id":'-',
|
26
|
+
"zone":'-',
|
27
|
+
"security_groups":'-',
|
28
|
+
"type":'-',
|
29
|
+
"status":'-',
|
30
|
+
"owner":'-'
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
var c_pagenate = new DcmgrGUI.Pagenate({
|
35
|
+
row:maxrow,
|
36
|
+
total:total
|
37
|
+
});
|
38
|
+
|
39
|
+
var c_list = new DcmgrGUI.List({
|
40
|
+
element_id:'#display_instances',
|
41
|
+
template_id:'#instancesListTemplate',
|
42
|
+
maxrow:maxrow,
|
43
|
+
page:page
|
44
|
+
});
|
45
|
+
|
46
|
+
var detail_filter = new DcmgrGUI.Filter();
|
47
|
+
detail_filter.add(function(data){
|
48
|
+
data.item.memory_size = data.item.memory_size + 'MB';
|
49
|
+
return data;
|
50
|
+
});
|
51
|
+
|
52
|
+
c_list.setDetailTemplate({
|
53
|
+
template_id:'#instancesDetailTemplate',
|
54
|
+
detail_path:'/instances/show/',
|
55
|
+
filter: detail_filter
|
56
|
+
});
|
57
|
+
|
58
|
+
c_list.element.bind('dcmgrGUI.contentChange',function(event,params){
|
59
|
+
var instance = params.data.instance;
|
60
|
+
c_pagenate.changeTotal(instance.owner_total);
|
61
|
+
c_list.setData(instance.results);
|
62
|
+
c_list.multiCheckList(c_list.detail_template);
|
63
|
+
});
|
64
|
+
|
65
|
+
c_list.filter.add(function(data){
|
66
|
+
var results = data.instance.results;
|
67
|
+
var size = results.length;
|
68
|
+
for(var i = 0; i < size; i++) {
|
69
|
+
results[i].result.memory_size = results[i].result.memory_size + 'MB';
|
70
|
+
}
|
71
|
+
return data;
|
72
|
+
});
|
73
|
+
|
74
|
+
var bt_refresh = new DcmgrGUI.Refresh();
|
75
|
+
|
76
|
+
var instance_action_helper = function(action){
|
77
|
+
|
78
|
+
var instances = $(this).find('#instances').find('li');
|
79
|
+
var ids = [];
|
80
|
+
|
81
|
+
$.each(instances, function() {
|
82
|
+
ids.push($(this).text());
|
83
|
+
});
|
84
|
+
|
85
|
+
var data = $.param({ids:ids});
|
86
|
+
|
87
|
+
$.ajax({
|
88
|
+
"type": "POST",
|
89
|
+
"async": true,
|
90
|
+
"url": '/instances/'+ action,
|
91
|
+
"dataType": "json",
|
92
|
+
"data": data,
|
93
|
+
success: function(json, status) {
|
94
|
+
bt_refresh.element.trigger('dcmgrGUI.refresh');
|
95
|
+
}
|
96
|
+
});
|
97
|
+
|
98
|
+
$(this).dialog("close");
|
99
|
+
};
|
100
|
+
|
101
|
+
var bt_instance_start = new DcmgrGUI.Dialog({
|
102
|
+
target:'.start_instances',
|
103
|
+
width:400,
|
104
|
+
height:200,
|
105
|
+
title:'Start Instances',
|
106
|
+
path:'/start_instances',
|
107
|
+
button:{
|
108
|
+
"Close": function() { $(this).dialog("close"); },
|
109
|
+
"Yes, Start": function() {
|
110
|
+
$(this).dialog("close");
|
111
|
+
}
|
112
|
+
}
|
113
|
+
});
|
114
|
+
|
115
|
+
var bt_instance_stop = new DcmgrGUI.Dialog({
|
116
|
+
target:'.stop_instances',
|
117
|
+
width:400,
|
118
|
+
height:200,
|
119
|
+
title:'Stop Instances',
|
120
|
+
path:'/stop_instances',
|
121
|
+
button:{
|
122
|
+
"Close": function() { $(this).dialog("close"); },
|
123
|
+
"Yes, Stop": function() {
|
124
|
+
$(this).dialog("close");
|
125
|
+
}
|
126
|
+
}
|
127
|
+
});
|
128
|
+
|
129
|
+
var bt_instance_reboot = new DcmgrGUI.Dialog({
|
130
|
+
target:'.reboot_instances',
|
131
|
+
width:400,
|
132
|
+
height:200,
|
133
|
+
title:'Reboot Instances',
|
134
|
+
path:'/reboot_instances',
|
135
|
+
button:{
|
136
|
+
"Close": function() { $(this).dialog("close"); },
|
137
|
+
"Yes, Reboot": function() {
|
138
|
+
instance_action_helper.call(this,'reboot');
|
139
|
+
}
|
140
|
+
}
|
141
|
+
});
|
142
|
+
|
143
|
+
var bt_instance_terminate = new DcmgrGUI.Dialog({
|
144
|
+
target:'.terminate_instances',
|
145
|
+
width:400,
|
146
|
+
height:200,
|
147
|
+
title:'Terminate Instances',
|
148
|
+
path:'/terminate_instances',
|
149
|
+
button:{
|
150
|
+
"Close": function() { $(this).dialog("close"); },
|
151
|
+
"Yes, Terminate": function() {
|
152
|
+
instance_action_helper.call(this,'terminate');
|
153
|
+
}
|
154
|
+
}
|
155
|
+
});
|
156
|
+
|
157
|
+
bt_instance_start.target.bind('click',function(){
|
158
|
+
bt_instance_start.open(c_list.getCheckedInstanceIds());
|
159
|
+
});
|
160
|
+
|
161
|
+
bt_instance_stop.target.bind('click',function(){
|
162
|
+
bt_instance_stop.open(c_list.getCheckedInstanceIds());
|
163
|
+
});
|
164
|
+
|
165
|
+
bt_instance_reboot.target.bind('click',function(){
|
166
|
+
bt_instance_reboot.open(c_list.getCheckedInstanceIds());
|
167
|
+
});
|
168
|
+
|
169
|
+
bt_instance_terminate.target.bind('click',function(){
|
170
|
+
bt_instance_terminate.open(c_list.getCheckedInstanceIds());
|
171
|
+
});
|
172
|
+
|
173
|
+
bt_refresh.element.bind('dcmgrGUI.refresh',function(){
|
174
|
+
c_list.page = c_pagenate.current_page;
|
175
|
+
list_request.url = DcmgrGUI.Util.getPagePath('/instances/list/',c_list.page);
|
176
|
+
list_request.data = DcmgrGUI.Util.getPagenateData(c_pagenate.start,c_pagenate.row);
|
177
|
+
c_list.element.trigger('dcmgrGUI.updateList',{request:list_request})
|
178
|
+
|
179
|
+
//update detail
|
180
|
+
$.each(c_list.checked_list,function(check_id,obj){
|
181
|
+
$($('#detail').find('#'+check_id)).remove();
|
182
|
+
c_list.checked_list[check_id].c_detail.update({
|
183
|
+
url:DcmgrGUI.Util.getPagePath('/instances/show/',check_id)
|
184
|
+
},true);
|
185
|
+
});
|
186
|
+
});
|
187
|
+
|
188
|
+
c_pagenate.element.bind('dcmgrGUI.updatePagenate',function(){
|
189
|
+
c_list.clearCheckedList();
|
190
|
+
$('#detail').html('');
|
191
|
+
bt_refresh.element.trigger('dcmgrGUI.refresh');
|
192
|
+
});
|
193
|
+
|
194
|
+
//list
|
195
|
+
c_list.setData(null);
|
196
|
+
c_list.update(list_request,true);
|
197
|
+
}
|