wakame-vdc-webui 11.06.0 → 11.12.0
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +7 -7
- data/app/controllers/application_controller.rb +5 -1
- data/app/controllers/dialog_controller.rb +5 -8
- data/app/controllers/instances_controller.rb +25 -7
- data/app/controllers/keypairs_controller.rb +2 -3
- data/app/controllers/security_groups_controller.rb +14 -15
- data/app/controllers/sessions_controller.rb +4 -0
- data/app/controllers/snapshots_controller.rb +3 -3
- data/app/controllers/volumes_controller.rb +18 -12
- data/app/models/dcmgr_resource/instance.rb +18 -2
- data/app/models/dcmgr_resource/security_group.rb +38 -0
- data/app/models/dcmgr_resource/ssh_key_pair.rb +0 -1
- data/app/views/dialog/attach_volume.html.erb +7 -11
- data/app/views/dialog/create_and_edit_security_group.html.erb +10 -12
- data/app/views/dialog/create_ssh_keypair.html.erb +9 -14
- data/app/views/dialog/delete_security_group.html.erb +1 -1
- data/app/views/dialog/reboot_instances.html.erb +2 -2
- data/app/views/dialog/start_instances.html.erb +1 -1
- data/app/views/dialog/stop_instances.html.erb +2 -2
- data/app/views/instances/index.html.erb +114 -110
- data/app/views/keypairs/index.html.erb +4 -4
- data/app/views/layouts/login.html.erb +1 -1
- data/app/views/security_groups/index.html.erb +11 -11
- data/app/views/sessions/information.html.erb +0 -0
- data/app/views/sessions/new.html.erb +24 -31
- data/app/views/snapshots/index.html.erb +3 -0
- data/app/views/volumes/index.html.erb +0 -5
- data/config/application.rb +1 -1
- data/config/dcmgr_gui.yml +8 -0
- data/{app/api/config/environment.rb → config/environment-auth.rb} +1 -1
- data/config/environments/development.rb +1 -1
- data/config/environments/production.rb +38 -41
- data/config/environments/test.rb +1 -1
- data/config/initializers/site.rb +1 -1
- data/config/locales/en.yml +16 -7
- data/config/locales/ja.yml +6 -4
- data/config/routes.rb +3 -0
- data/db/migrations/0001_origin.rb +96 -0
- data/lib/cli/account.rb +43 -88
- data/lib/cli/user.rb +0 -37
- data/lib/tasks/dcmgr_gui.rake +2 -2
- data/public/i18n/Messages_en.properties +34 -0
- data/public/i18n/Messages_ja-JP.properties +0 -0
- data/public/i18n/Messages_ja.properties +32 -0
- data/public/javascripts/dcmgr_gui/application.js +7 -7
- data/public/javascripts/dcmgr_gui/core.js +33 -8
- data/public/javascripts/dcmgr_gui/image_panel.js +6 -8
- data/public/javascripts/dcmgr_gui/instance_panel.js +29 -29
- data/public/javascripts/dcmgr_gui/security_group_panel.js +8 -29
- data/public/javascripts/dcmgr_gui/sshkeypair_panel.js +2 -22
- data/public/javascripts/dcmgr_gui/volume_panel.js +16 -21
- data/public/javascripts/jquery-ui-1.8.4.custom.min.js +0 -0
- data/public/stylesheets/common.css +45 -0
- metadata +336 -332
- data/app/models/dcmgr_resource/netfilter_group.rb +0 -29
@@ -100,11 +100,6 @@ jQuery(function($){
|
|
100
100
|
<td class="title"><%= t("volumes.details.created_at") %>:</td>
|
101
101
|
<td colspan="7">${item.created_at}</td>
|
102
102
|
</tr>
|
103
|
-
<tr>
|
104
|
-
<td class="padcell"></td>
|
105
|
-
<td class="title"><%= t("volumes.details.updated_at") %>:</td>
|
106
|
-
<td colspan="7">${item.updated_at}</td>
|
107
|
-
</tr>
|
108
103
|
</table>
|
109
104
|
</div>
|
110
105
|
</script>
|
data/config/application.rb
CHANGED
@@ -3,7 +3,7 @@ require File.expand_path('../boot', __FILE__)
|
|
3
3
|
# require 'rails/all'
|
4
4
|
# require "active_record/railtie"
|
5
5
|
require "action_controller/railtie"
|
6
|
-
require "action_mailer/railtie"
|
6
|
+
#require "action_mailer/railtie"
|
7
7
|
require "active_resource/railtie"
|
8
8
|
require "rails/test_unit/railtie"
|
9
9
|
|
@@ -15,7 +15,7 @@ DcmgrGui::Application.configure do
|
|
15
15
|
config.action_controller.perform_caching = false
|
16
16
|
|
17
17
|
# Don't care if the mailer can't send
|
18
|
-
config.action_mailer.raise_delivery_errors = false
|
18
|
+
#config.action_mailer.raise_delivery_errors = false
|
19
19
|
|
20
20
|
# Print deprecation notices to the Rails logger
|
21
21
|
config.active_support.deprecation = :log
|
@@ -1,49 +1,46 @@
|
|
1
1
|
DcmgrGui::Application.configure do
|
2
2
|
# Settings specified here will take precedence over those in config/environment.rb
|
3
3
|
|
4
|
-
#
|
5
|
-
#
|
6
|
-
|
4
|
+
# In the development environment your application's code is reloaded on
|
5
|
+
# every request. This slows down response time but is perfect for development
|
6
|
+
# since you don't have to restart the webserver when you make code changes.
|
7
|
+
config.cache_classes = true
|
7
8
|
|
8
|
-
#
|
9
|
-
config.
|
10
|
-
config.action_controller.perform_caching = true
|
11
|
-
|
12
|
-
# Specifies the header that your server uses for sending files
|
13
|
-
config.action_dispatch.x_sendfile_header = "X-Sendfile"
|
14
|
-
|
15
|
-
# For nginx:
|
16
|
-
# config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
|
17
|
-
|
18
|
-
# If you have no front-end server that supports something like X-Sendfile,
|
19
|
-
# just comment this out and Rails will serve the files
|
20
|
-
|
21
|
-
# See everything in the log (default is :info)
|
22
|
-
# config.log_level = :debug
|
23
|
-
|
24
|
-
# Use a different logger for distributed setups
|
25
|
-
# config.logger = SyslogLogger.new
|
9
|
+
# Log error messages when you accidentally call methods on nil.
|
10
|
+
config.whiny_nils = true
|
26
11
|
|
27
|
-
#
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
# In production, Apache or nginx will already do this
|
32
|
-
config.serve_static_assets = false
|
33
|
-
|
34
|
-
# Enable serving of images, stylesheets, and javascripts from an asset server
|
35
|
-
# config.action_controller.asset_host = "http://assets.example.com"
|
36
|
-
|
37
|
-
# Disable delivery errors, bad email addresses will be ignored
|
38
|
-
# config.action_mailer.raise_delivery_errors = false
|
39
|
-
|
40
|
-
# Enable threaded mode
|
41
|
-
# config.threadsafe!
|
12
|
+
# Show full error reports and disable caching
|
13
|
+
config.consider_all_requests_local = false
|
14
|
+
config.action_view.debug_rjs = false
|
15
|
+
config.action_controller.perform_caching = true
|
42
16
|
|
43
|
-
#
|
44
|
-
#
|
17
|
+
# Don't care if the mailer can't send
|
18
|
+
#config.action_mailer.raise_delivery_errors = false
|
19
|
+
|
20
|
+
# Print deprecation notices to the Rails logger
|
21
|
+
config.active_support.deprecation = :log
|
22
|
+
|
23
|
+
# Only use best-standards-support built into browsers
|
24
|
+
config.action_dispatch.best_standards_support = :builtin
|
25
|
+
|
26
|
+
# Config authentication for WebAPI
|
27
|
+
# Setting proxy server
|
28
|
+
config.proxy_host = "127.0.0.1"
|
29
|
+
config.proxy_port = 8080
|
30
|
+
config.proxy_scheme = "http"
|
31
|
+
config.proxy_dcmgr_host = "127.0.0.1"
|
32
|
+
config.proxy_dcmgr_port = 9001
|
33
|
+
config.proxy_root_user = 'root'
|
34
|
+
config.proxy_nginx = '/opt/nginx/sbin/nginx'
|
35
|
+
|
36
|
+
# Setting authentication server
|
37
|
+
config.auth_host = "127.0.0.1"
|
38
|
+
config.auth_port = 3000
|
39
|
+
config.auth_root_user = 'root'
|
40
|
+
|
41
|
+
config.i18n.load_path += Dir[Rails.root.join('locales', '*.{rb,yml}').to_s]
|
42
|
+
config.i18n.default_locale = :en
|
43
|
+
#config.action_dispatch.x_sendfile_header = 'X-Accel-Redirect'
|
44
|
+
|
45
45
|
config.i18n.fallbacks = true
|
46
|
-
|
47
|
-
# Send deprecation notices to registered listeners
|
48
|
-
config.active_support.deprecation = :notify
|
49
46
|
end
|
data/config/environments/test.rb
CHANGED
@@ -23,7 +23,7 @@ DcmgrGui::Application.configure do
|
|
23
23
|
# Tell Action Mailer not to deliver emails to the real world.
|
24
24
|
# The :test delivery method accumulates sent emails in the
|
25
25
|
# ActionMailer::Base.deliveries array.
|
26
|
-
config.action_mailer.delivery_method = :test
|
26
|
+
#config.action_mailer.delivery_method = :test
|
27
27
|
|
28
28
|
# Use SQL instead of Active Record's schema dumper when creating the test database.
|
29
29
|
# This is necessary if your schema can't be completely dumped by the schema dumper,
|
data/config/initializers/site.rb
CHANGED
data/config/locales/en.yml
CHANGED
@@ -20,6 +20,8 @@ en:
|
|
20
20
|
attach: "Yes, Attach"
|
21
21
|
detach: "Yes, Detach"
|
22
22
|
launch: "Launch"
|
23
|
+
start: "Start"
|
24
|
+
stop: "Stop"
|
23
25
|
selectmenu:
|
24
26
|
select_action: "Select an Action"
|
25
27
|
select_region: "Region: "
|
@@ -34,10 +36,10 @@ en:
|
|
34
36
|
dialog:
|
35
37
|
terminate_instances:
|
36
38
|
header: "Terminate Instances"
|
37
|
-
message: "Are you sure you want to terminate
|
39
|
+
message: "Are you sure you want to terminate those instances?"
|
38
40
|
reboot_instances:
|
39
41
|
header: "Reboot Instances"
|
40
|
-
message: "Are you sure you want to reboot
|
42
|
+
message: "Are you sure you want to reboot those instances?"
|
41
43
|
launch_instance:
|
42
44
|
header: "Launch Instance"
|
43
45
|
wmi_id: "WMI ID"
|
@@ -77,7 +79,6 @@ en:
|
|
77
79
|
edit_security_group:
|
78
80
|
header: "Edit Security Group"
|
79
81
|
create_and_edit_security_group:
|
80
|
-
name: "Name"
|
81
82
|
description: "Description"
|
82
83
|
rule: "Rule"
|
83
84
|
delete_security_group:
|
@@ -85,11 +86,16 @@ en:
|
|
85
86
|
message: "Are you sure you want to delete the following security_group?"
|
86
87
|
create_ssh_keypair:
|
87
88
|
header: "Create SSH Key Pair"
|
88
|
-
keypair_name: "Key Pair Name"
|
89
89
|
download_once: "Download Once"
|
90
90
|
delete_ssh_keypair:
|
91
91
|
header: "Delete SSH Key Pair"
|
92
92
|
message: "Are you sure you want to delete the following key pair?"
|
93
|
+
start_instances:
|
94
|
+
header: "Start Instances"
|
95
|
+
message: "Are you sure you want to start those instances?"
|
96
|
+
stop_instances:
|
97
|
+
header: "Stop Instances"
|
98
|
+
message: "Are you sure you want to stop those instances?"
|
93
99
|
login:
|
94
100
|
sign_in: "Sign In"
|
95
101
|
user: "User"
|
@@ -127,6 +133,8 @@ en:
|
|
127
133
|
header: "Instance Actions"
|
128
134
|
terminate: "Terminate"
|
129
135
|
reboot: "Reboot"
|
136
|
+
start: "Start"
|
137
|
+
stop: "Stop"
|
130
138
|
list:
|
131
139
|
instance_id: "Instance ID"
|
132
140
|
wmi_id: "WMI ID"
|
@@ -229,6 +237,7 @@ en:
|
|
229
237
|
capacity: "Capacity"
|
230
238
|
origin_volume_id: "OriginVolumeID"
|
231
239
|
destination: "Destiantion"
|
240
|
+
backing_store: "BackingStore"
|
232
241
|
status: "Status"
|
233
242
|
created_at: "Created At"
|
234
243
|
updated_at: "Updated At"
|
@@ -257,12 +266,12 @@ en:
|
|
257
266
|
delete_security_group: "Delete Security Group"
|
258
267
|
edit_security_group: "Edit"
|
259
268
|
list:
|
260
|
-
name: "
|
269
|
+
name: "Security Group ID"
|
261
270
|
descriptions: "Description"
|
262
271
|
action: "Action"
|
263
272
|
details:
|
264
273
|
header: "Details"
|
265
|
-
name: "
|
274
|
+
name: "Security Group ID"
|
266
275
|
description: "Description"
|
267
276
|
created_at: "Created At"
|
268
277
|
updated_at: "Updated At"
|
@@ -277,7 +286,7 @@ en:
|
|
277
286
|
secret_access_key: "Secret Access Key"
|
278
287
|
details:
|
279
288
|
header: "Details"
|
280
|
-
|
289
|
+
uuid: "UUID"
|
281
290
|
fingerprint: "Fingerprint"
|
282
291
|
created_at: "Created"
|
283
292
|
updated_at: "Updated"
|
data/config/locales/ja.yml
CHANGED
@@ -19,6 +19,8 @@ ja:
|
|
19
19
|
attach: "アタッチ"
|
20
20
|
detach: "デタッチ"
|
21
21
|
launch: "起動"
|
22
|
+
start: "再開"
|
23
|
+
stop: "一時停止"
|
22
24
|
selectmenu:
|
23
25
|
select_action: "アクション"
|
24
26
|
select_region: "データセンタ: "
|
@@ -76,7 +78,6 @@ ja:
|
|
76
78
|
edit_security_group:
|
77
79
|
header: "セキュリティグループを編集"
|
78
80
|
create_and_edit_security_group:
|
79
|
-
name: "セキュリティグループ名"
|
80
81
|
description: "詳細"
|
81
82
|
rule: "ルール"
|
82
83
|
delete_security_group:
|
@@ -84,7 +85,6 @@ ja:
|
|
84
85
|
message: "セキュリティーグループを削除します。よろしいですか?"
|
85
86
|
create_ssh_keypair:
|
86
87
|
header: "キーペアを作成"
|
87
|
-
keypair_name: "キーペア名"
|
88
88
|
download_once: "1回限り"
|
89
89
|
delete_ssh_keypair:
|
90
90
|
header: "キーペアを削除"
|
@@ -126,6 +126,8 @@ ja:
|
|
126
126
|
header: "アクション"
|
127
127
|
terminate: "停止"
|
128
128
|
reboot: "再起動"
|
129
|
+
start: "再開"
|
130
|
+
stop: "一時停止"
|
129
131
|
list:
|
130
132
|
instance_id: "インスタンスID"
|
131
133
|
wmi_id: "WMI ID"
|
@@ -227,6 +229,7 @@ ja:
|
|
227
229
|
capacity: "容量"
|
228
230
|
origin_volume_id: "ボリューム元ID"
|
229
231
|
destination: "保存先"
|
232
|
+
backing_store: "バッキングストア"
|
230
233
|
status: "状態"
|
231
234
|
created_at: "作成日"
|
232
235
|
updated_at: "更新日"
|
@@ -260,7 +263,6 @@ ja:
|
|
260
263
|
action: "アクション"
|
261
264
|
details:
|
262
265
|
header: "詳細"
|
263
|
-
name: "名前"
|
264
266
|
description: "詳細"
|
265
267
|
created_at: "作成日"
|
266
268
|
updated_at: "更新日"
|
@@ -275,7 +277,7 @@ ja:
|
|
275
277
|
secret_access_key: "シークレットキー"
|
276
278
|
details:
|
277
279
|
header: "詳細"
|
278
|
-
|
280
|
+
uuid: "UUID"
|
279
281
|
fingerprint: "フィンガープリント"
|
280
282
|
created_at: "作成日"
|
281
283
|
updated_at: "更新日"
|
data/config/routes.rb
CHANGED
@@ -57,6 +57,8 @@ DcmgrGui::Application.routes.draw do
|
|
57
57
|
post 'instances/reboot' ,:to => 'instances#reboot'
|
58
58
|
post 'instances' ,:to => 'instances#create'
|
59
59
|
get 'instances/show/:id' ,:to => 'instances#show'
|
60
|
+
post 'instances/start' ,:to => 'instances#start'
|
61
|
+
post 'instances/stop' ,:to => 'instances#stop'
|
60
62
|
|
61
63
|
#instance_specs
|
62
64
|
get 'instance_specs/all' ,:to => 'instance_specs#show_instance_specs'
|
@@ -93,6 +95,7 @@ DcmgrGui::Application.routes.draw do
|
|
93
95
|
#sessions
|
94
96
|
get 'login' => 'sessions#new', :as => :login
|
95
97
|
get 'logout' => 'sessions#destroy', :as => :logout
|
98
|
+
get 'sessions/information', :to => 'sessions#information'
|
96
99
|
resource :session, :only => [:new, :create, :destroy]
|
97
100
|
|
98
101
|
#storage_pools
|
@@ -0,0 +1,96 @@
|
|
1
|
+
Sequel.migration do
|
2
|
+
up do
|
3
|
+
create_table(:accounts, :ignore_index_errors=>true) do
|
4
|
+
primary_key :id
|
5
|
+
String :uuid, :null=>false, :size=>8, :fixed=>true
|
6
|
+
DateTime :created_at, :null=>false
|
7
|
+
DateTime :updated_at, :null=>false
|
8
|
+
String :name, :null=>false, :size=>255
|
9
|
+
String :description, :size=>255
|
10
|
+
TrueClass :enable, :default=>true
|
11
|
+
DateTime :deleted_at
|
12
|
+
TrueClass :is_deleted, :default=>false
|
13
|
+
|
14
|
+
index [:uuid], :unique=>true, :name=>:uuid
|
15
|
+
end
|
16
|
+
|
17
|
+
create_table(:authzs) do
|
18
|
+
primary_key :id
|
19
|
+
DateTime :created_at, :null=>false
|
20
|
+
DateTime :updated_at, :null=>false
|
21
|
+
Integer :user_id, :null=>false
|
22
|
+
Integer :account_id, :null=>false
|
23
|
+
Integer :type_id, :null=>false
|
24
|
+
end
|
25
|
+
|
26
|
+
create_table(:information) do
|
27
|
+
primary_key :id
|
28
|
+
DateTime :created_at, :null=>false
|
29
|
+
DateTime :updated_at, :null=>false
|
30
|
+
String :title, :size=>255
|
31
|
+
String :link, :text=>true
|
32
|
+
String :description, :text=>true
|
33
|
+
end
|
34
|
+
|
35
|
+
create_table(:oauth_consumers, :ignore_index_errors=>true) do
|
36
|
+
primary_key :id
|
37
|
+
DateTime :created_at, :null=>false
|
38
|
+
DateTime :updated_at, :null=>false
|
39
|
+
String :key, :null=>false, :size=>40
|
40
|
+
String :secret, :null=>false, :size=>40
|
41
|
+
Integer :account_id, :null=>false
|
42
|
+
|
43
|
+
index [:account_id], :unique=>true, :name=>:account_id
|
44
|
+
index [:key], :unique=>true
|
45
|
+
end
|
46
|
+
|
47
|
+
create_table(:tag_mappings, :ignore_index_errors=>true) do
|
48
|
+
primary_key :id
|
49
|
+
Integer :tag_id, :null=>false
|
50
|
+
Integer :target_type
|
51
|
+
Integer :target_id, :null=>false
|
52
|
+
|
53
|
+
index [:tag_id, :target_type, :target_id]
|
54
|
+
end
|
55
|
+
|
56
|
+
create_table(:tags, :ignore_index_errors=>true) do
|
57
|
+
primary_key :id
|
58
|
+
String :uuid, :null=>false, :size=>8, :fixed=>true
|
59
|
+
DateTime :created_at, :null=>false
|
60
|
+
DateTime :updated_at, :null=>false
|
61
|
+
Integer :account_id, :null=>false
|
62
|
+
Integer :owner_id, :null=>false
|
63
|
+
String :name, :null=>false, :size=>32, :fixed=>true
|
64
|
+
|
65
|
+
index [:account_id]
|
66
|
+
index [:uuid], :unique=>true, :name=>:uuid
|
67
|
+
end
|
68
|
+
|
69
|
+
create_table(:users, :ignore_index_errors=>true) do
|
70
|
+
primary_key :id
|
71
|
+
String :uuid, :null=>false, :size=>8, :fixed=>true
|
72
|
+
DateTime :created_at, :null=>false
|
73
|
+
DateTime :updated_at, :null=>false
|
74
|
+
DateTime :last_login_at, :null=>false
|
75
|
+
String :name, :null=>false, :size=>200, :fixed=>true
|
76
|
+
String :login_id, :size=>255
|
77
|
+
String :password, :null=>false, :size=>255
|
78
|
+
String :primary_account_id, :size=>255
|
79
|
+
String :locale, :null=>false, :size=>255
|
80
|
+
String :time_zone, :null=>false, :size=>255
|
81
|
+
|
82
|
+
index [:login_id], :unique=>true, :name=>:login_id
|
83
|
+
index [:uuid], :unique=>true, :name=>:uuid
|
84
|
+
end
|
85
|
+
|
86
|
+
create_table(:users_accounts) do
|
87
|
+
primary_key :id
|
88
|
+
Integer :user_id, :null=>false
|
89
|
+
Integer :account_id, :null=>false
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
down do
|
94
|
+
drop_table(:accounts, :authzs, :information, :oauth_consumers, :tag_mappings, :tags, :users, :users_accounts)
|
95
|
+
end
|
96
|
+
end
|
data/lib/cli/account.rb
CHANGED
@@ -7,48 +7,11 @@ require 'yaml'
|
|
7
7
|
module Cli
|
8
8
|
class AccountCli < Base
|
9
9
|
namespace :account
|
10
|
-
#M=Dcmgr::Models
|
11
|
-
|
12
|
-
#no_tasks {
|
13
|
-
#def before_task
|
14
|
-
## Setup DB connections and load paths for dcmgr_gui
|
15
|
-
#root_dir = File.expand_path('../../../', __FILE__)
|
16
|
-
|
17
|
-
##get the database details
|
18
|
-
##TODO:get this path in a less hard-coded way?
|
19
|
-
#content = File.new(File.expand_path('../../frontend/dcmgr_gui/config/database.yml', root_dir)).read
|
20
|
-
#settings = YAML::load content
|
21
|
-
|
22
|
-
##load the database variables
|
23
|
-
##TODO: get environment from RAILS_ENV
|
24
|
-
#db_environment = 'development'
|
25
|
-
#db_adapter = settings[db_environment]['adapter']
|
26
|
-
#db_host = settings[db_environment]['host']
|
27
|
-
#db_name = settings[db_environment]['database']
|
28
|
-
#db_user = settings[db_environment]['user']
|
29
|
-
#db_pwd = settings[db_environment]['password']
|
30
|
-
|
31
|
-
##Connect to the database
|
32
|
-
#url = "#{db_adapter}://#{db_host}/#{db_name}?user=#{db_user}&password=#{db_pwd}"
|
33
|
-
#db = Sequel.connect(url)
|
34
|
-
|
35
|
-
##load the cli environment
|
36
|
-
#$LOAD_PATH.unshift File.expand_path('../../frontend/dcmgr_gui/config', root_dir)
|
37
|
-
#$LOAD_PATH.unshift File.expand_path('../../frontend/dcmgr_gui/app/models', root_dir)
|
38
|
-
##require 'account'
|
39
|
-
#require 'environment-cli'
|
40
|
-
|
41
|
-
##Associate the models with their respective database
|
42
|
-
#Account.db = db
|
43
|
-
#User.db = db
|
44
|
-
#end
|
45
|
-
#}
|
46
10
|
|
47
11
|
desc "add [options]", "Create a new account."
|
48
|
-
method_option :name, :type => :string, :aliases => "-n", :required => true, :desc => "The name for the new account."
|
12
|
+
method_option :name, :type => :string, :aliases => "-n", :required => true, :desc => "The name for the new account."
|
49
13
|
method_option :uuid, :type => :string, :aliases => "-u", :desc => "The UUID for the new account."
|
50
14
|
method_option :description, :type => :string, :aliases => "-d", :default => "", :desc => "The description for this account."
|
51
|
-
#method_option :verbose, :type => :boolean, :aliases => "-v", :desc => "Print feedback on what is happening."
|
52
15
|
def add
|
53
16
|
#Check if the data we got is valid
|
54
17
|
if options[:name] != nil && options[:name].length > 255
|
@@ -58,24 +21,6 @@ module Cli
|
|
58
21
|
raise "Account description can not be longer than 100 chracters."
|
59
22
|
end
|
60
23
|
|
61
|
-
#Put them in the backend
|
62
|
-
#fields = {:description => options[:description], :enabled => M::Account::ENABLED}
|
63
|
-
#fields.merge!({:uuid => options[:uuid]}) unless options[:uuid].nil?
|
64
|
-
|
65
|
-
#new_uuid = super(M::Account,fields)
|
66
|
-
|
67
|
-
##This should never happen as long as the databases remain synchronized.
|
68
|
-
#begin
|
69
|
-
#raise "A uuid collision occurred. This means the account databases are not synchronized." if Account[new_uuid] != nil
|
70
|
-
#rescue
|
71
|
-
#M::Account[new_uuid].delete
|
72
|
-
#raise
|
73
|
-
#end
|
74
|
-
|
75
|
-
#Put them in the frontend
|
76
|
-
#super(Account,{:uuid => new_uuid,:name => options[:name],:description => options[:description]})
|
77
|
-
|
78
|
-
#puts new_uuid
|
79
24
|
fields = {:name => options[:name],:description => options[:description], :enable => Account::ENABLED}
|
80
25
|
fields.merge!({:uuid => options[:uuid]}) unless options[:uuid].nil?
|
81
26
|
puts super(Account,fields)
|
@@ -85,8 +30,7 @@ module Cli
|
|
85
30
|
method_option :deleted, :type => :boolean, :default => false, :aliases => "-d", :desc => "Show deleted accounts."
|
86
31
|
def show(uuid = nil)
|
87
32
|
if uuid
|
88
|
-
|
89
|
-
acc = Account[uuid] || raise(Thor::Error, "Unknown Account UUID: #{uuid}")
|
33
|
+
acc = Account[uuid] || UnknownUUIDError.raise(uuid)
|
90
34
|
puts ERB.new(<<__END, nil, '-').result(binding)
|
91
35
|
Account UUID:
|
92
36
|
<%- if acc.class == Account -%>
|
@@ -135,22 +79,22 @@ __END
|
|
135
79
|
end
|
136
80
|
|
137
81
|
desc "modify UUID [options]", "Modify an existing account."
|
138
|
-
method_option :name, :type => :string, :aliases => "-n", :desc => "The new name for the account."
|
82
|
+
method_option :name, :type => :string, :aliases => "-n", :desc => "The new name for the account."
|
139
83
|
method_option :description, :type => :string, :aliases => "-d", :desc => "The new description for the account."
|
140
|
-
#method_option :verbose, :type => :boolean, :aliases => "-v", :desc => "Print feedback on what is happening."
|
141
84
|
def modify(uuid)
|
142
85
|
raise "Account name can not be longer than 255 characters." if options[:name] != nil && options[:name].length > 255
|
143
86
|
raise "Description can not be longer than 100 characters." if options[:description] != nil && options[:description].length > 100
|
144
87
|
super(Account,uuid,{:name => options[:name],:description => options[:description]})
|
145
|
-
#super(M::Account,uuid,{:description => options[:description]})
|
146
88
|
end
|
147
89
|
|
148
90
|
#TODO: show account to confirm deletion
|
149
91
|
desc "del UUID [options]", "Deletes an existing account."
|
150
92
|
method_option :verbose, :type => :boolean, :aliases => "-v", :desc => "Print feedback on what is happening."
|
151
93
|
def del(uuid)
|
94
|
+
to_do = Account[uuid]
|
95
|
+
Error.raise("Unknown frontend account UUID: #{uuid}", 100) if to_do == nil or to_do.is_deleted
|
96
|
+
|
152
97
|
super(Account,uuid)
|
153
|
-
#super(M::Account,uuid)
|
154
98
|
|
155
99
|
puts "Account #{uuid} has been deleted." if options[:verbose]
|
156
100
|
end
|
@@ -160,19 +104,14 @@ __END
|
|
160
104
|
def enable(uuid)
|
161
105
|
to_enable = Account[uuid]
|
162
106
|
Error.raise("Unknown frontend account UUID: #{uuid}", 100) if to_enable == nil or to_enable.is_deleted
|
163
|
-
#to_enable_back = M::Account[uuid] || Error.raise("Unknown backend account UUID: #{uuid}", 100)
|
164
107
|
|
165
|
-
if to_enable.enable
|
108
|
+
if to_enable.enable?
|
166
109
|
puts "Account #{uuid} is already enabled." if options[:verbose]
|
167
|
-
else
|
110
|
+
else
|
168
111
|
to_enable.enable = Account::ENABLED
|
169
112
|
to_enable.updated_at = Time.now.utc.iso8601
|
170
|
-
to_enable.save
|
171
|
-
|
172
|
-
#to_enable_back.enabled = Dcmgr::Models::Account::ENABLED
|
173
|
-
#to_enable_back.updated_at = Time.now.utc.iso8601
|
174
|
-
#to_enable_back.save
|
175
|
-
|
113
|
+
to_enable.save
|
114
|
+
|
176
115
|
puts "Account #{uuid} has been enabled." if options[:verbose]
|
177
116
|
end
|
178
117
|
end
|
@@ -182,19 +121,14 @@ __END
|
|
182
121
|
def disable(uuid)
|
183
122
|
to_disable = Account[uuid]
|
184
123
|
UnknownUUIDError.raise(uuid) if to_disable == nil or to_disable.is_deleted
|
185
|
-
#to_disable_back = M::Account[uuid] || Error.raise("Unknown backend account UUID: #{uuid}", 100)
|
186
124
|
|
187
|
-
if to_disable.disable?
|
125
|
+
if to_disable.disable?
|
188
126
|
puts "Account #{id} is already disabled." if options[:verbose]
|
189
127
|
else
|
190
128
|
to_disable.enable = Account::DISABLED
|
191
129
|
to_disable.updated_at = Time.now.utc.iso8601
|
192
130
|
to_disable.save
|
193
131
|
|
194
|
-
#to_disable_back.enabled = M::Account::DISABLED
|
195
|
-
#to_disable_back.updated_at = Time.now.utc.iso8601
|
196
|
-
#to_disable_back.save
|
197
|
-
|
198
132
|
puts "Account #{uuid} has been disabled." if options[:verbose]
|
199
133
|
end
|
200
134
|
end
|
@@ -249,16 +183,37 @@ __END
|
|
249
183
|
}
|
250
184
|
end
|
251
185
|
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
186
|
+
|
187
|
+
desc "oauth UUID [options]", "Generate or show OAuth key and secret"
|
188
|
+
def oauth(uuid)
|
189
|
+
require 'oauth'
|
190
|
+
acc = Account[uuid]
|
191
|
+
Error.raise("Unknown frontend account UUID: #{uuid}", 100) if acc == nil or acc.is_deleted
|
192
|
+
|
193
|
+
oauth_token = OauthToken.new
|
194
|
+
oauth_token.generate_keys
|
195
|
+
oauth_consumer = OauthConsumer.find(:account_id => acc.id)
|
196
|
+
if oauth_consumer.nil?
|
197
|
+
oauth_consumer = OauthConsumer.create(
|
198
|
+
:key => oauth_token.token,
|
199
|
+
:secret => oauth_token.secret,
|
200
|
+
:account_id => acc.id
|
201
|
+
)
|
202
|
+
end
|
203
|
+
|
204
|
+
puts ERB.new(<<__END, nil, '-').result(binding)
|
205
|
+
Account UUID:
|
206
|
+
<%- if acc.class == Account -%>
|
207
|
+
<%= acc.canonical_uuid %>
|
208
|
+
<%- else -%>
|
209
|
+
<%= Account.uuid_prefix%>-<%= acc.uuid %>
|
210
|
+
<%- end -%>
|
211
|
+
|
212
|
+
Consumer Key:
|
213
|
+
<%= oauth_consumer.key %>
|
214
|
+
Consumer Secret:
|
215
|
+
<%= oauth_consumer.secret %>
|
216
|
+
__END
|
217
|
+
end
|
263
218
|
end
|
264
219
|
end
|