wakame-vdc-webui 10.12.0 → 11.06.0
Sign up to get free protection for your applications and to get access to all the features.
- data/INSTALL-API.txt +14 -0
- data/Rakefile +5 -1
- data/app/api/config/environment.rb +9 -0
- data/app/controllers/accounts_controller.rb +39 -1
- data/app/controllers/application_controller.rb +73 -1
- data/app/controllers/instance_specs_controller.rb +11 -0
- data/app/controllers/instances_controller.rb +7 -3
- data/app/controllers/{images_controller.rb → machine_images_controller.rb} +2 -3
- data/app/controllers/sessions_controller.rb +6 -3
- data/app/controllers/snapshots_controller.rb +17 -6
- data/app/controllers/volumes_controller.rb +6 -2
- data/app/helpers/application_helper.rb +9 -5
- data/app/helpers/machine_images_helper.rb +2 -0
- data/app/models/account.rb +22 -4
- data/app/models/base_new.rb +11 -2
- data/app/models/dcmgr_resource/base.rb +13 -0
- data/app/models/dcmgr_resource/instance_spec.rb +7 -0
- data/app/models/dcmgr_resource/volume_snapshot.rb +6 -0
- data/app/models/information.rb +1 -1
- data/app/models/oauth_consumer.rb +15 -0
- data/app/models/oauth_token.rb +10 -0
- data/app/models/user.rb +34 -1
- data/app/views/accounts/index.html.erb +42 -67
- data/app/views/accounts/password.html.erb +35 -0
- data/app/views/dialog/attach_volume.html.erb +2 -2
- data/app/views/dialog/create_and_edit_security_group.html.erb +61 -28
- data/app/views/dialog/create_snapshot.html.erb +11 -4
- data/app/views/dialog/create_ssh_keypair.html.erb +2 -2
- data/app/views/dialog/create_volume.html.erb +3 -4
- data/app/views/dialog/create_volume_from_snapshot.html.erb +1 -1
- data/app/views/dialog/delete_security_group.html.erb +1 -1
- data/app/views/dialog/delete_snapshot.html.erb +1 -1
- data/app/views/dialog/delete_ssh_keypair.html.erb +1 -1
- data/app/views/dialog/delete_volume.html.erb +1 -1
- data/app/views/dialog/detach_volume.html.erb +1 -1
- data/app/views/dialog/launch_instance.html.erb +10 -14
- data/app/views/dialog/reboot_instances.html.erb +1 -1
- data/app/views/dialog/terminate_instances.html.erb +1 -1
- data/app/views/home/index.html.erb +11 -11
- data/app/views/host_pools/index.html.erb +87 -92
- data/app/views/instances/index.html.erb +50 -52
- data/app/views/keypairs/index.html.erb +16 -16
- data/app/views/layouts/_header.html.erb +6 -6
- data/app/views/layouts/_informationarea.html.erb +5 -5
- data/app/views/layouts/_login_header.erb +1 -1
- data/app/views/layouts/_sidemenu.html.erb +30 -28
- data/app/views/layouts/application.html.erb +19 -3
- data/app/views/layouts/login.html.erb +4 -4
- data/app/views/{images → machine_images}/index.html.erb +20 -39
- data/app/views/security_groups/index.html.erb +20 -23
- data/app/views/sessions/new.html.erb +10 -5
- data/app/views/snapshots/index.html.erb +28 -26
- data/app/views/storage_pools/index.html.erb +17 -22
- data/app/views/volumes/index.html.erb +32 -34
- data/config/application-cli.rb +33 -0
- data/config/{application-api.rb → cli_token.rb} +0 -0
- data/config/environment-cli.rb +4 -0
- data/config/environments/development.rb +19 -0
- data/config/initializers/dcmgr_gui.rb +8 -3
- data/config/initializers/sequel.rb +4 -0
- data/config/initializers/site.rb +8 -0
- data/config/locales/en.yml +307 -1
- data/config/locales/ja-JP.yml +4 -0
- data/config/locales/ja.yml +309 -0
- data/config/routes.rb +16 -9
- data/lib/cli/account.rb +264 -0
- data/lib/cli/base.rb +74 -0
- data/lib/cli/errors.rb +59 -0
- data/lib/cli/user.rb +226 -0
- data/lib/tasks/dcmgr_api.rake +65 -12
- data/lib/tasks/dcmgr_gui.rake +96 -4
- data/lib/tasks/dcmgr_oauth.rake +39 -0
- data/public/i18n/Messages.properties +0 -0
- data/public/images/Chevron.gif +0 -0
- data/public/images/ChevronOverlay.png +0 -0
- data/public/images/IconHome.gif +0 -0
- data/public/images/bg-box-body.gif +0 -0
- data/public/images/bg-box-body.png +0 -0
- data/public/images/bg-box-bottom.gif +0 -0
- data/public/images/bg-box-bottom.png +0 -0
- data/public/images/bg-box-top.gif +0 -0
- data/public/images/bg-box-top.png +0 -0
- data/public/images/cluetip/arrowdown.gif +0 -0
- data/public/images/cluetip/arrowleft.gif +0 -0
- data/public/images/cluetip/arrowright.gif +0 -0
- data/public/images/cluetip/arrowup.gif +0 -0
- data/public/images/cluetip/bl.gif +0 -0
- data/public/images/cluetip/bl.png +0 -0
- data/public/images/cluetip/br.gif +0 -0
- data/public/images/cluetip/br.png +0 -0
- data/public/images/cluetip/darrowdown.gif +0 -0
- data/public/images/cluetip/darrowleft.gif +0 -0
- data/public/images/cluetip/darrowright.gif +0 -0
- data/public/images/cluetip/darrowup.gif +0 -0
- data/public/images/cluetip/itunes.png +0 -0
- data/public/images/cluetip/rarrowdown.gif +0 -0
- data/public/images/cluetip/rarrowleft.gif +0 -0
- data/public/images/cluetip/rarrowright.gif +0 -0
- data/public/images/cluetip/rarrowup.gif +0 -0
- data/public/images/cluetip/tl.gif +0 -0
- data/public/images/cluetip/tl.png +0 -0
- data/public/images/cluetip/tr.gif +0 -0
- data/public/images/cluetip/tr.png +0 -0
- data/public/images/cluetip/wait.gif +0 -0
- data/public/images/dialog-error.png +0 -0
- data/public/images/dialog-help.png +0 -0
- data/public/images/dialog-information.png +0 -0
- data/public/images/dialog-warning.png +0 -0
- data/public/images/ui-bg_flat_55_fcf0ba_40x100.png +0 -0
- data/public/images/ui-bg_glass_10_136d76_1x400.png +0 -0
- data/public/images/ui-bg_glass_10_458845_1x400.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-soft_50_136d76_1x100.png +0 -0
- data/public/images/ui-bg_inset-soft_15_386b3d_1x100.png +0 -0
- data/public/images/ui-icons_4c9052_256x240.png +0 -0
- data/public/images/ui-icons_847e71_256x240.png +0 -0
- data/public/javascripts/dcmgr_gui/account_panel.js +6 -0
- data/public/javascripts/dcmgr_gui/application.js +78 -5
- data/public/javascripts/dcmgr_gui/core.js +409 -102
- data/public/javascripts/dcmgr_gui/dashboard_panel.js +12 -3
- data/public/javascripts/dcmgr_gui/host_pool_panel.js +1 -1
- data/public/javascripts/dcmgr_gui/image_panel.js +119 -65
- data/public/javascripts/dcmgr_gui/instance_panel.js +86 -44
- data/public/javascripts/dcmgr_gui/security_group_panel.js +135 -77
- data/public/javascripts/dcmgr_gui/snapshot_panel.js +119 -61
- data/public/javascripts/dcmgr_gui/sshkeypair_panel.js +71 -47
- data/public/javascripts/dcmgr_gui/storage_pool_panel.js +10 -10
- data/public/javascripts/dcmgr_gui/volume_panel.js +311 -155
- data/public/javascripts/jquery.cluetip.min.js +33 -0
- data/public/javascripts/jquery.easing.1.3.js +205 -0
- data/public/javascripts/jquery.hoverIntent.js +114 -0
- data/public/javascripts/jquery.i18n.properties-min.js +7 -0
- data/public/javascripts/jquery.jBreadCrumb.1.1.js +240 -0
- data/public/javascripts/sexyalertbox.v1.2.jquery.js +414 -0
- data/public/javascripts/ui.selectmenu.js +541 -0
- data/public/stylesheets/BreadCrumb.css +109 -0
- data/public/stylesheets/common.css +146 -86
- data/public/stylesheets/dialog.css +7 -7
- data/public/stylesheets/jquery-ui-1.8.4.custom.css +41 -40
- data/public/stylesheets/jquery.cluetip.css +179 -0
- data/public/stylesheets/sexyalertbox.css +67 -0
- data/public/stylesheets/ui.selectmenu.css +24 -0
- data/test/functional/{images_controller_test.rb → machine_images_controller_test.rb} +1 -1
- data/test/unit/helpers/machine_images_helper_test.rb +4 -0
- metadata +350 -221
- data/README +0 -256
- data/app/api/auth_server.rb +0 -28
- data/app/helpers/images_helper.rb +0 -2
- data/app/views/information/index.html.erb +0 -25
- data/app/views/layouts/_service_health.erb +0 -27
- data/test/unit/helpers/images_helper_test.rb +0 -4
@@ -16,6 +16,7 @@ module DcmgrResource
|
|
16
16
|
def self.create(params)
|
17
17
|
snapshot = self.new
|
18
18
|
snapshot.volume_id = params[:volume_id]
|
19
|
+
snapshot.destination = params[:destination]
|
19
20
|
snapshot.save
|
20
21
|
snapshot
|
21
22
|
end
|
@@ -31,5 +32,10 @@ module DcmgrResource
|
|
31
32
|
self.collection_name = @collection
|
32
33
|
result
|
33
34
|
end
|
35
|
+
|
36
|
+
def self.upload_destination
|
37
|
+
result = self.get(:upload_destination)
|
38
|
+
result
|
39
|
+
end
|
34
40
|
end
|
35
41
|
end
|
data/app/models/information.rb
CHANGED
@@ -0,0 +1,15 @@
|
|
1
|
+
require 'oauth'
|
2
|
+
class OauthConsumer < BaseNew
|
3
|
+
|
4
|
+
many_to_one :account
|
5
|
+
|
6
|
+
with_timestamps
|
7
|
+
|
8
|
+
inheritable_schema do
|
9
|
+
primary_key :id, :type=>Integer
|
10
|
+
String :key, :null => false, :size => 40
|
11
|
+
String :secret, :null => false, :size => 40
|
12
|
+
Integer :account_id, :null => false, :unique=>true
|
13
|
+
index :key, :unique=>true
|
14
|
+
end
|
15
|
+
end
|
data/app/models/user.rb
CHANGED
@@ -6,14 +6,33 @@ class User < BaseNew
|
|
6
6
|
plugin :subclasses
|
7
7
|
|
8
8
|
inheritable_schema do
|
9
|
+
Time :last_login_at, :null=>false
|
9
10
|
String :name, :fixed=>true, :size=>200, :null=>false
|
10
11
|
primary_key :id, :type=>Integer
|
11
|
-
String :login_id
|
12
|
+
String :login_id, :unique=>true
|
12
13
|
String :password, :null=>false
|
13
14
|
String :primary_account_id
|
15
|
+
String :locale, :size=>255, :null => false
|
16
|
+
String :time_zone, :size=>255, :null => false
|
14
17
|
end
|
15
18
|
|
16
19
|
many_to_many :accounts,:join_table => :users_accounts
|
20
|
+
|
21
|
+
def before_create
|
22
|
+
set(:locale => I18n.default_locale.to_s)
|
23
|
+
set(:time_zone => Time.zone.name)
|
24
|
+
set(:last_login_at => Time.now.utc)
|
25
|
+
super
|
26
|
+
end
|
27
|
+
|
28
|
+
# Removes all relations to accounts before deleting the record
|
29
|
+
def before_destroy
|
30
|
+
relations = self.accounts
|
31
|
+
for ss in 0...relations.length do
|
32
|
+
self.remove_account(relations[0])
|
33
|
+
end
|
34
|
+
super
|
35
|
+
end
|
17
36
|
|
18
37
|
class << self
|
19
38
|
def authenticate(login_id,password)
|
@@ -42,5 +61,19 @@ class User < BaseNew
|
|
42
61
|
salt = Digest::SHA1.hexdigest(DcmgrGui::Application.config.secret_token)
|
43
62
|
Digest::SHA1.hexdigest("--#{salt}--#{password}--")
|
44
63
|
end
|
64
|
+
|
65
|
+
def update_last_login(user_id)
|
66
|
+
u = User.find(:id => user_id)
|
67
|
+
u.last_login_at = Time.now
|
68
|
+
u.save
|
69
|
+
end
|
70
|
+
|
71
|
+
def update_settings(user_id, params)
|
72
|
+
u = User.find(:id => user_id)
|
73
|
+
p params
|
74
|
+
u.time_zone = params[:time_zone] || u.time_zone
|
75
|
+
u.locale = params[:locale] || u.locale
|
76
|
+
u.save
|
77
|
+
end
|
45
78
|
end
|
46
79
|
end
|
@@ -1,68 +1,43 @@
|
|
1
|
+
<% content_for :javascript do %>
|
2
|
+
<%= javascript_include_tag 'dcmgr_gui/account_panel.js' %>
|
3
|
+
<script type="text/javascript">
|
4
|
+
jQuery(function($){
|
5
|
+
dcmgrGUI.accountPanel();
|
6
|
+
});
|
7
|
+
</script>
|
8
|
+
<% end %>
|
9
|
+
<style type="text/css">
|
10
|
+
.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { text-align:center; float: none;}
|
11
|
+
</style>
|
1
12
|
<div id="mainarea_wide">
|
2
|
-
<h3><img src="images/icon_resource.gif"
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
</tr>
|
34
|
-
<tr>
|
35
|
-
<td class="color2">State, Province or Region:</td>
|
36
|
-
<td><input type="text" class="type02" /></td>
|
37
|
-
</tr>
|
38
|
-
<tr>
|
39
|
-
<td class="color2">ZIP or Postal Code:</td>
|
40
|
-
<td><input type="text" class="type02" /></td>
|
41
|
-
</tr>
|
42
|
-
<tr>
|
43
|
-
<td class="color2">Country:</td>
|
44
|
-
<td>
|
45
|
-
<select>
|
46
|
-
<option>Japan</option>
|
47
|
-
</select>
|
48
|
-
</td>
|
49
|
-
</tr>
|
50
|
-
<tr>
|
51
|
-
<td class="color2">Phone number:</td>
|
52
|
-
<td><input type="text" class="type02" /></td>
|
53
|
-
</tr>
|
54
|
-
<tr>
|
55
|
-
<td class="color2">Company Name:</td>
|
56
|
-
<td><input type="text" class="type02" /></td>
|
57
|
-
</tr>
|
58
|
-
<tr>
|
59
|
-
<td class="color2">Web Site URL:</td>
|
60
|
-
<td><input type="text" class="type02" /></td>
|
61
|
-
</tr>
|
62
|
-
</table>
|
63
|
-
</div>
|
64
|
-
<a href="#" class="savechange"></a>
|
65
|
-
<div class="spacer10"></div>
|
66
|
-
</div>
|
67
|
-
<div id="btm_maincontent_wide_last"></div>
|
68
|
-
</div>
|
13
|
+
<h3><img src="images/icon_resource.gif" /><%= t("accounts.header") %></h3>
|
14
|
+
<div class="maincontent account">
|
15
|
+
<div id="account_top">
|
16
|
+
<div id="account_password"><%= link_to t("accounts.password.header"), :action => 'password' %></a></div>
|
17
|
+
<div id="account_information">
|
18
|
+
<blockquote>
|
19
|
+
<h4><%= t("accounts.top.information") %></h4>
|
20
|
+
<hr />
|
21
|
+
<p><%= t("accounts.top.last_login") %>: <span id="last_login_at"><%= user_last_login_at %></span></p>
|
22
|
+
</blockquote>
|
23
|
+
</div><!-- account_information -->
|
24
|
+
<div id="account_settings">
|
25
|
+
<% form_for :account, :url=>{:action => 'update_settings'}, :html => {:id => "settings_form"} do |f| %>
|
26
|
+
<blockquote>
|
27
|
+
<h4><%= t("accounts.top.settings") %></h4>
|
28
|
+
<hr />
|
29
|
+
<div id="account_top_timezone">
|
30
|
+
<span><%= t("accounts.top.timezone") %></span><%= f.time_zone_select( :time_zone, nil, :default => @current_user.time_zone, :include_blank => true) %>
|
31
|
+
</div>
|
32
|
+
<div id="account_top_locale">
|
33
|
+
<span><%= t("accounts.top.locale") %></span>
|
34
|
+
<%= f.select(:locale, @locales, :selected => session[:locale], :selected => @current_user.locale) %>
|
35
|
+
</div>
|
36
|
+
<p id="account_submit"><%= f.submit t("accounts.top.submit") %></p>
|
37
|
+
<% end %>
|
38
|
+
</blockquote>
|
39
|
+
</div><!-- account_settings -->
|
40
|
+
</div><!-- account_top -->
|
41
|
+
</div><!-- maincontent -->
|
42
|
+
<div id="btm_maincontent_wide_last"></div>
|
43
|
+
</div><!-- mainarea_wide -->
|
@@ -0,0 +1,35 @@
|
|
1
|
+
<% content_for :javascript do %>
|
2
|
+
<%= javascript_include_tag 'jquery.jBreadCrumb.1.1.js' %>
|
3
|
+
<script type="text/javascript">
|
4
|
+
jQuery(function($){
|
5
|
+
$("#breadCrumb").jBreadCrumb();
|
6
|
+
});
|
7
|
+
</script>
|
8
|
+
<% end %>
|
9
|
+
<div id="mainarea_wide">
|
10
|
+
<h3><img src="/images/icon_resource.gif" /><%= t("accounts.header") %></h3>
|
11
|
+
<div class="maincontent account">
|
12
|
+
<div id="breadCrumb" class="breadCrumb module account">
|
13
|
+
<ul>
|
14
|
+
<li>
|
15
|
+
<a href="/accounts"><%= t("accounts.header") %></a>
|
16
|
+
</li>
|
17
|
+
<li>
|
18
|
+
<%= t("accounts.password.header") %>
|
19
|
+
</li>
|
20
|
+
</ul>
|
21
|
+
</div>
|
22
|
+
<div id="password">
|
23
|
+
<% form_for :account, :url=>{:action => 'password'}, :html => {:id => "change_password_form"} do |f| %>
|
24
|
+
<p><label for="password"><%= t("accounts.password.password") %><span class="required"> *</span></label><br /><input id="password" type="password" value="" name="password"></p>
|
25
|
+
<p><label for="new_password"><%= t("accounts.password.new_password") %><span class="required"> * </span></label><br /><input id="new_password" type="password" value="" name="new_password"></p>
|
26
|
+
<p><label for="confirm_password"><%= t("accounts.password.confirm_password") %><span class="required"> *</span></label><br /><input id="confirm_password" type="password" value="" name="confirm_password"></p>
|
27
|
+
<%= f.submit t("accounts.password.submit") %>
|
28
|
+
<% if @error_message %>
|
29
|
+
<p><div class="error_message"><%= @error_message %></div></p>
|
30
|
+
<% end %>
|
31
|
+
<% end %>
|
32
|
+
</div>
|
33
|
+
</div><!-- maincontent -->
|
34
|
+
<div id="btm_maincontent_wide_last"></div>
|
35
|
+
</div><!-- mainarea_wide -->
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<div id="attach_volume_dialog">
|
2
2
|
<table>
|
3
3
|
<tr>
|
4
|
-
<td
|
4
|
+
<td><%= t("dialog.attach_volume.volume_id") %>:</td>
|
5
5
|
<td id="view_volume_id"><%= @volume_id %></td>
|
6
6
|
<input id="volume_id" type="hidden" value="<%= @volume_id %>">
|
7
7
|
</tr>
|
8
8
|
<tr>
|
9
|
-
<td
|
9
|
+
<td><%= t("dialog.attach_volume.instance_id") %>:</td>
|
10
10
|
<td><input id="instance_id" type="text" value=""></td>
|
11
11
|
</tr>
|
12
12
|
</table>
|
@@ -1,32 +1,65 @@
|
|
1
1
|
<style type="text/css">
|
2
|
-
|
3
|
-
padding-top :
|
4
|
-
padding-
|
2
|
+
#create_security_group_dialog div {
|
3
|
+
padding-top :5px;
|
4
|
+
padding-bottom :5px;
|
5
5
|
}
|
6
6
|
</style>
|
7
7
|
<div id="create_security_group_dialog">
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
<
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
8
|
+
<div id="security_group_name_field">
|
9
|
+
<p><%= t("dialog.create_and_edit_security_group.name") %></p>
|
10
|
+
<% if @name %>
|
11
|
+
<input type="text" id="security_group_name" size="20" value="<%= @name %>" disabled>
|
12
|
+
<% else %>
|
13
|
+
<input type="text" id="security_group_name" size="20">
|
14
|
+
<% end %>
|
15
|
+
<input type="hidden" id="security_group_id" value="<%= @uuid %>">
|
16
|
+
</div>
|
17
|
+
<div id="security_group_description_field">
|
18
|
+
<p>
|
19
|
+
<%= t("dialog.create_and_edit_security_group.description") %>
|
20
|
+
</p>
|
21
|
+
<input type="text" id="security_group_description" size="43" value="<%= @description %>">
|
22
|
+
</div>
|
23
|
+
<div id="security_group_rule_field">
|
24
|
+
<p>
|
25
|
+
<%= t("dialog.create_and_edit_security_group.rule") %> [<span rel="#rule_help" id="security_group_help" title="Rule Help" style="color:red">?</span>]
|
26
|
+
</p>
|
27
|
+
</div>
|
28
|
+
<textarea id="security_group_rule" rows="10" cols="10" style="width:442px;height:320px" ><%= @rule %></textarea>
|
29
|
+
<div id="rule_help">
|
30
|
+
<pre>
|
31
|
+
SYNOPSIS
|
32
|
+
|
33
|
+
"protocol", "from port", "to port", "source cidr"
|
34
|
+
"protocol", "from port", "to port", "source account_id:group"
|
35
|
+
"protocol", "icmp type", "icmp code", "source cidr"
|
36
|
+
"protocol", "icmp type", "icmp code", "source account_id:group"
|
37
|
+
|
38
|
+
PARAMETERS
|
39
|
+
|
40
|
+
protocol:
|
41
|
+
tcp, udp, icmp
|
42
|
+
|
43
|
+
from port:
|
44
|
+
1 .. 65535
|
45
|
+
|
46
|
+
to port:
|
47
|
+
1 .. 65535
|
48
|
+
|
49
|
+
icmp type:
|
50
|
+
-1 or 0, 3, 5, 8, 11, 12, 13, 14, 15, 16, 17, 18
|
51
|
+
'-1' means wild card.
|
52
|
+
|
53
|
+
icmp code:
|
54
|
+
-1 or 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15
|
55
|
+
'-1' means wild card.
|
56
|
+
|
57
|
+
source account:group
|
58
|
+
ex. a-trustedx:default
|
59
|
+
|
60
|
+
source cidr:
|
61
|
+
ex. 0.0.0.0/0, 192.168.0.0/24
|
62
|
+
|
63
|
+
</pre>
|
64
|
+
</div>
|
65
|
+
</div>
|
@@ -1,7 +1,14 @@
|
|
1
|
-
<
|
1
|
+
<div id="create_snapshost_dialog">
|
2
|
+
<p><%= t("dialog.create_snapshot.message") %></p>
|
3
|
+
<% form_tag :action => "create_snapshot" do %>
|
2
4
|
<br />
|
5
|
+
store to:
|
6
|
+
<span id="select_destination">
|
7
|
+
</span>
|
3
8
|
<ul id="create_snapshots">
|
4
|
-
|
5
|
-
|
6
|
-
|
9
|
+
<% @volume_ids.each do |volume_id| %>
|
10
|
+
<li><%= volume_id %></li>
|
11
|
+
<% end %>
|
7
12
|
</ul>
|
13
|
+
<% end %>
|
14
|
+
</div>
|
@@ -1,12 +1,12 @@
|
|
1
1
|
<div id="create_ssh_keypair_dialog">
|
2
2
|
<table>
|
3
3
|
<tr>
|
4
|
-
<td
|
4
|
+
<td><%= t("dialog.create_ssh_keypair.keypair_name")%>:</td>
|
5
5
|
<td>
|
6
6
|
<input id="ssh_keypair_name" type="text" name="name" >
|
7
7
|
</td>
|
8
8
|
<tr>
|
9
|
-
<td
|
9
|
+
<td><%= t("dialog.create_ssh_keypair.download_once")%>: </td>
|
10
10
|
<td>
|
11
11
|
<input id="ssh_keypair_download_once" type="checkbox" name="download_once" checked>
|
12
12
|
</td>
|
@@ -1,18 +1,17 @@
|
|
1
1
|
<div id="create_volume_dialog">
|
2
2
|
<table>
|
3
3
|
<tr>
|
4
|
-
<td
|
4
|
+
<td><%= t("dialog.create_volume.size") %>:</td>
|
5
5
|
<td>
|
6
6
|
<input id="volume_size" type="text" name="size" size="2" maxlength="3">
|
7
7
|
<select id="unit">
|
8
8
|
<option value="gb">GB</option>
|
9
|
-
<option value="tb">TB</option>
|
10
9
|
</select>
|
11
10
|
</td>
|
12
11
|
<tr>
|
13
|
-
<td
|
12
|
+
<td><%= t("dialog.create_volume.storage") %>:</td>
|
14
13
|
<td id="select_storage_pool"></td>
|
15
14
|
</tr>
|
16
15
|
</tr>
|
17
16
|
</table>
|
18
|
-
</div>
|
17
|
+
</div>
|