ocp_registry 0.0.1.alpha → 0.0.5.pre
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/lib/ocp_registry.rb +1 -0
- data/lib/ocp_registry/api_controller.rb +106 -16
- data/lib/ocp_registry/application_manager.rb +185 -23
- data/lib/ocp_registry/cloud_manager/mock/mock.rb +7 -13
- data/lib/ocp_registry/common.rb +3 -1
- data/lib/ocp_registry/config.rb +5 -1
- data/lib/ocp_registry/db/002_create_settings_table.rb +13 -0
- data/lib/ocp_registry/db/003_alter_comments_column_in_applications_table.rb +13 -0
- data/lib/ocp_registry/db/004_add_from_field_for_settings.rb +13 -0
- data/lib/ocp_registry/mail_client.rb +2 -2
- data/lib/ocp_registry/models.rb +2 -1
- data/lib/ocp_registry/models/registry_application.rb +19 -0
- data/lib/ocp_registry/models/registry_setting.rb +7 -0
- data/lib/ocp_registry/version.rb +1 -1
- data/mail_template/approve_admin.erb +3 -2
- data/mail_template/approve_user.erb +3 -4
- data/mail_template/cancel_admin.erb +13 -0
- data/mail_template/cancel_user.erb +13 -0
- data/mail_template/modify.erb +25 -0
- data/mail_template/refuse_admin.erb +4 -3
- data/mail_template/refuse_user.erb +4 -4
- data/mail_template/request_admin.erb +3 -2
- data/mail_template/request_user.erb +3 -3
- data/public/comment_dialog.css +11 -0
- data/public/common.css +34 -71
- data/public/head_message.css +11 -0
- data/public/images/portrait_admin.png +0 -0
- data/public/images/portrait_applicant.png +0 -0
- data/public/{jquery-1.10.2.min.js → jquery/jquery-1.10.2.min.js} +0 -0
- data/public/{jquery-1.10.2.min.map → jquery/jquery-1.10.2.min.map} +0 -0
- data/public/{jquery.json-2.4.min.js → json/jquery.json-2.4.min.js} +0 -0
- data/public/page_specific.css +15 -0
- data/public/post.css +37 -0
- data/public/qTIp/jquery.qtip.min.css +2 -0
- data/public/qTIp/jquery.qtip.min.js +3 -0
- data/public/tenant_opt_dialog.css +3 -0
- data/public/tenant_options.css +18 -0
- data/public/util.js +14 -0
- data/spec/spec_common.rb +25 -0
- data/spec/unit/config_spec.rb +117 -0
- data/views/admin_review.erb +306 -0
- data/views/applicant_review.erb +223 -0
- data/views/apply.erb +84 -133
- data/views/base.erb +56 -6
- data/views/comment_list.erb +12 -0
- data/views/inform_comment_dialog.erb +10 -0
- data/views/post.erb +28 -0
- data/views/reject_comment_dialog.erb +10 -0
- data/views/tenant_options.erb +244 -0
- data/views/view.erb +44 -7
- metadata +35 -8
- data/views/review.erb +0 -141
- data/views/show.erb +0 -96
data/lib/ocp_registry.rb
CHANGED
@@ -7,38 +7,39 @@ module Ocp::Registry
|
|
7
7
|
|
8
8
|
not_found do
|
9
9
|
exception = request.env["sinatra.error"]
|
10
|
-
@logger.
|
11
|
-
@logger.
|
10
|
+
@logger.info("[RECEIVED] #{request.request_method} : #{request.url} - #{request.ip}")
|
11
|
+
@logger.info(exception.message)
|
12
12
|
do_response({:status => "not_found"}, nil)
|
13
13
|
end
|
14
14
|
|
15
15
|
error do
|
16
16
|
exception = request.env["sinatra.error"]
|
17
|
-
@logger.
|
17
|
+
@logger.info(exception)
|
18
18
|
status(500)
|
19
19
|
do_response({:status => "error"}, nil)
|
20
20
|
end
|
21
21
|
|
22
22
|
error Ocp::Registry::Error do
|
23
23
|
error = request.env["sinatra.error"]
|
24
|
+
@logger.info(error.message)
|
24
25
|
status(error.code)
|
25
26
|
do_response({:status => "error", :message => error.message},nil)
|
26
27
|
end
|
27
28
|
|
28
29
|
# get application list
|
29
30
|
get '/v1/applications' do
|
31
|
+
@logger.info("[RECEIVED] #{request.request_method} : #{request.url} - #{request.ip}")
|
30
32
|
email = params[:email]
|
31
33
|
protected! unless email
|
32
|
-
data = []
|
33
|
-
|
34
|
-
result = @application_manager.list(email)
|
35
|
-
|
36
|
-
result.each do |app|
|
37
|
-
data << app.to_hash
|
38
|
-
end
|
39
34
|
if email
|
40
|
-
|
35
|
+
data = {:status => "error", :message => "Sorry, list all applications of a specific user is not supported any more since security risks"}
|
36
|
+
do_response(data)
|
41
37
|
else
|
38
|
+
data = []
|
39
|
+
result = @application_manager.list
|
40
|
+
result.each do |app|
|
41
|
+
data << app.to_hash
|
42
|
+
end
|
42
43
|
do_response(data, :list, :review => true)
|
43
44
|
end
|
44
45
|
end
|
@@ -49,6 +50,7 @@ module Ocp::Registry
|
|
49
50
|
|
50
51
|
# check project name
|
51
52
|
post '/v1/applications/check' do
|
53
|
+
@logger.info("[RECEIVED] #{request.request_method} : #{request.url} - #{request.ip}")
|
52
54
|
if project = params[:project]
|
53
55
|
result = @application_manager.existed_tenant?(project)
|
54
56
|
do_response(!result, nil)
|
@@ -57,27 +59,51 @@ module Ocp::Registry
|
|
57
59
|
|
58
60
|
# get an application detail
|
59
61
|
get '/v1/applications/:id' do
|
62
|
+
@logger.info("[RECEIVED] #{request.request_method} : #{request.url} - #{request.ip}")
|
60
63
|
if(params[:id] == "default")
|
61
64
|
do_response(@application_manager.default, :apply)
|
62
65
|
else
|
63
66
|
application = @application_manager.show(params[:id])
|
64
67
|
if("true" == params[:review])
|
65
68
|
protected!
|
66
|
-
|
69
|
+
if "true" == params[:modified]
|
70
|
+
data = application.to_hash(:lazy_load => false, :limit => 20)
|
71
|
+
view = :admin_review
|
72
|
+
else
|
73
|
+
data = application.to_hash(:lazy_load => false, :limit => 10)
|
74
|
+
view = :admin_review
|
75
|
+
end
|
67
76
|
else
|
68
|
-
|
77
|
+
if "true" == params[:modified]
|
78
|
+
data = application.to_hash(:lazy_load => false, :limit => 20)
|
79
|
+
view = :applicant_review
|
80
|
+
else
|
81
|
+
data = application.to_hash(:lazy_load => false, :limit => 10)
|
82
|
+
view = :view
|
83
|
+
end
|
69
84
|
end
|
85
|
+
do_response(data,view)
|
70
86
|
end
|
71
87
|
end
|
72
88
|
|
73
89
|
# create an application
|
74
90
|
post '/v1/applications' do
|
75
91
|
app_info = Yajl.load(request.body.read)
|
76
|
-
|
92
|
+
|
93
|
+
check_fields = ["email","project","settings"]
|
94
|
+
valid, fields = validate_not_null(check_fields,app_info)
|
95
|
+
return do_response({:status => "error", :message => "Filed [#{fields.join(", ")}] can not be null"}) unless valid
|
96
|
+
|
97
|
+
check_fields = ["email"]
|
98
|
+
valid, fields = validate_email(check_fields,app_info)
|
99
|
+
return do_response({:status => "error", :message => "Field [#{fields.join(", ")}] is not a valid email address"}) unless valid
|
100
|
+
|
101
|
+
@logger.info("[RECEIVED] #{request.request_method} : #{request.url} - #{request.ip} : #{app_info}")
|
102
|
+
|
77
103
|
if app_info.kind_of?(Hash) && app_info['settings'].kind_of?(Hash)
|
78
|
-
default = Yajl::load(@application_manager.default[:settings])
|
104
|
+
default = Yajl::load(@application_manager.default[:registry_settings].first[:settings])
|
79
105
|
settings = default.merge(app_info['settings'])
|
80
|
-
app_info[
|
106
|
+
app_info["settings"] = json(settings)
|
81
107
|
end
|
82
108
|
application = @application_manager.create(app_info)
|
83
109
|
app_info = application.to_hash
|
@@ -87,12 +113,15 @@ module Ocp::Registry
|
|
87
113
|
# approve an application
|
88
114
|
post '/v1/applications/:id/approve' do
|
89
115
|
protected!
|
116
|
+
@logger.info("[RECEIVED] #{request.request_method} : #{request.url} - #{request.ip}")
|
90
117
|
result = @application_manager.approve(params[:id])
|
91
118
|
do_response(result.to_hash, nil)
|
92
119
|
end
|
93
120
|
|
94
121
|
# refuse an application
|
95
122
|
post '/v1/applications/:id/refuse' do
|
123
|
+
@logger.info("[RECEIVED] #{request.request_method} : #{request.url} - #{request.ip}")
|
124
|
+
|
96
125
|
protected!
|
97
126
|
body = Yajl.load(request.body.read)
|
98
127
|
comments = nil
|
@@ -101,6 +130,41 @@ module Ocp::Registry
|
|
101
130
|
do_response(result.to_hash, nil)
|
102
131
|
end
|
103
132
|
|
133
|
+
post '/v1/applications/:id/settings' do
|
134
|
+
setting = Yajl.load(request.body.read)
|
135
|
+
@logger.info("[RECEIVED] #{request.request_method} : #{request.url} - #{request.ip} : #{setting}")
|
136
|
+
|
137
|
+
setting = {} if setting.nil?
|
138
|
+
|
139
|
+
if setting["from"] && setting["from"].strip.upcase == "ADMIN"
|
140
|
+
protected!
|
141
|
+
setting["from"] = "ADMIN"
|
142
|
+
else
|
143
|
+
setting["from"] = "USER"
|
144
|
+
end
|
145
|
+
result = @application_manager.add_setting_for(params[:id],setting)
|
146
|
+
do_response(result.to_hash)
|
147
|
+
end
|
148
|
+
|
149
|
+
get '/v1/applications/:id/settings' do
|
150
|
+
@logger.info("[RECEIVED] #{request.request_method} : #{request.url} - #{request.ip}")
|
151
|
+
|
152
|
+
result = @application_manager.list_settings(params[:id])
|
153
|
+
|
154
|
+
data = []
|
155
|
+
result.each do |setting|
|
156
|
+
data << setting.to_hash
|
157
|
+
end
|
158
|
+
|
159
|
+
do_response(data)
|
160
|
+
end
|
161
|
+
|
162
|
+
post '/v1/applications/:id/cancel' do
|
163
|
+
@logger.info("[RECEIVED] #{request.request_method} : #{request.url} - #{request.ip}")
|
164
|
+
|
165
|
+
result = @application_manager.cancel(params[:id])
|
166
|
+
do_response(result.to_hash)
|
167
|
+
end
|
104
168
|
|
105
169
|
def initialize
|
106
170
|
super
|
@@ -114,8 +178,10 @@ module Ocp::Registry
|
|
114
178
|
|
115
179
|
def do_response(data, view = nil, mark = nil)
|
116
180
|
if request.accept?('application/json') || view.nil? || (data.is_a?(Hash)&&'error' == data[:status])
|
181
|
+
@logger.info("[RESPONSE] JSON : json - #{data}")
|
117
182
|
json(data)
|
118
183
|
else
|
184
|
+
@logger.info("[RESPONSE] VIEW : #{view.to_s} - #{data}")
|
119
185
|
erb :base do
|
120
186
|
erb view ,:locals => {:data => data ,:mark => mark}
|
121
187
|
end
|
@@ -142,5 +208,29 @@ module Ocp::Registry
|
|
142
208
|
Yajl::Encoder.encode(payload)
|
143
209
|
end
|
144
210
|
|
211
|
+
def validate_not_null(fields=[], source={})
|
212
|
+
validate(fields, source){|value| !value.nil? }
|
213
|
+
end
|
214
|
+
|
215
|
+
def validate_email(fields=[], source={})
|
216
|
+
validate(fields, source){|value| value =~ Ocp::Registry::Common::EMAIL_REGEX}
|
217
|
+
end
|
218
|
+
|
219
|
+
def validate(fields,source)
|
220
|
+
return true if fields.empty?
|
221
|
+
return false ,fields if source.empty? || !block_given?
|
222
|
+
|
223
|
+
not_pass = []
|
224
|
+
fields.each do |field|
|
225
|
+
not_pass << field unless yield source[field]
|
226
|
+
end
|
227
|
+
|
228
|
+
if not_pass.empty?
|
229
|
+
return true, []
|
230
|
+
else
|
231
|
+
return false , not_pass
|
232
|
+
end
|
233
|
+
end
|
234
|
+
|
145
235
|
end
|
146
236
|
end
|
@@ -9,29 +9,163 @@ module Ocp::Registry
|
|
9
9
|
@logger = Ocp::Registry.logger
|
10
10
|
end
|
11
11
|
|
12
|
-
def list(email=nil)
|
12
|
+
def list(email = nil)
|
13
13
|
if email
|
14
14
|
results = Ocp::Registry::Models::RegistryApplication.reverse_order(:created_at).where(:email => email)
|
15
|
+
@logger.debug("List applications for user - #{email}")
|
15
16
|
else
|
16
17
|
results = Ocp::Registry::Models::RegistryApplication.reverse_order(:created_at).all
|
18
|
+
@logger.debug("List applications for ADMIN")
|
17
19
|
end
|
18
|
-
|
19
20
|
results
|
20
21
|
end
|
21
22
|
|
23
|
+
def cancel(app_id)
|
24
|
+
|
25
|
+
app_info = get_application(app_id)
|
26
|
+
|
27
|
+
unless app_info.state == 'PENDING'
|
28
|
+
return {:status => "error", :message => "Application [#{app_info.project}] - [#{app_id}] has been #{app_info.state}"}
|
29
|
+
end
|
30
|
+
|
31
|
+
Ocp::Registry::Models::RegistryApplication.where(:id => app_id).update(:state => 'CANCELED', :end_at => Time.now.utc.to_s)
|
32
|
+
|
33
|
+
app_info = get_application(app_id)
|
34
|
+
|
35
|
+
@logger.debug("[CANCELED] project [#{app_info.project}] - [#{app_info.id}] at [#{app_info.end_at}]")
|
36
|
+
|
37
|
+
if @mail_manager
|
38
|
+
admin_msg = {
|
39
|
+
:app_info => app_info
|
40
|
+
}
|
41
|
+
mail = prepare_mail_properties(:cancel_admin, @mail_manager.admin_emails, admin_msg)
|
42
|
+
@mail_manager.send_mail(mail)
|
43
|
+
user_msg = {
|
44
|
+
:app_info => app_info
|
45
|
+
}
|
46
|
+
mail = prepare_mail_properties(:cancel_user, app_info.email, user_msg)
|
47
|
+
@mail_manager.send_mail(mail)
|
48
|
+
end
|
49
|
+
|
50
|
+
app_info
|
51
|
+
end
|
52
|
+
|
53
|
+
def list_settings(app_id)
|
54
|
+
|
55
|
+
Ocp::Registry::Models::RegistrySetting.reverse_order(:version).where(:registry_application_id => app_id)
|
56
|
+
|
57
|
+
end
|
58
|
+
|
22
59
|
def show(app_id)
|
60
|
+
|
23
61
|
app_info = get_application(app_id)
|
62
|
+
|
24
63
|
return {:status => "error", :message => "Application with id - [#{app_id}] is not existed"} if app_info.nil?
|
64
|
+
|
65
|
+
app_info
|
66
|
+
end
|
67
|
+
|
68
|
+
def add_setting_for(app_id, setting)
|
69
|
+
|
70
|
+
app_info = get_application(app_id)
|
71
|
+
|
72
|
+
last_setting = Ocp::Registry::Models::RegistrySetting.where(:registry_application_id => app_id).order_by(:version).last
|
73
|
+
|
74
|
+
if last_setting.from == setting["from"]
|
75
|
+
wait_for = setting["from"] == "ADMIN" ? app_info.email : "Administrator"
|
76
|
+
return {:status => "error", :message => "Please wait for #{wait_for} review your last updates at #{last_setting.updated_at}"}
|
77
|
+
end
|
78
|
+
|
79
|
+
change_set = []
|
80
|
+
if setting && setting["settings"]
|
81
|
+
src = Yajl::load(last_setting.settings)
|
82
|
+
dest = setting["settings"]
|
83
|
+
|
84
|
+
merged = src.merge(dest) do |key, v1, v2|
|
85
|
+
if v1 != v2
|
86
|
+
change = {
|
87
|
+
:key => key,
|
88
|
+
:from => v1,
|
89
|
+
:to => v2
|
90
|
+
}
|
91
|
+
change_set << change
|
92
|
+
end
|
93
|
+
v2
|
94
|
+
end
|
95
|
+
return {:status => "error", :message => "No changes in settings are found"} if change_set.empty?
|
96
|
+
|
97
|
+
set = Yajl::Encoder.encode(merged)
|
98
|
+
comments = "#{setting["comments"]}" if setting["comments"]
|
99
|
+
|
100
|
+
@logger.info("Project [#{app_info.project}] - [#{app_info.id}] setting changed : #{change_set}")
|
101
|
+
else
|
102
|
+
set = last_setting.settings
|
103
|
+
comments = "ACCEPT"
|
104
|
+
comments += " - #{setting["comments"]}" if setting["comments"]
|
105
|
+
|
106
|
+
@logger.info("Project [#{app_info.project}] - [#{app_info.id}] setting accepted : #{set}")
|
107
|
+
end
|
108
|
+
|
109
|
+
|
110
|
+
update_time = Time.now.utc.to_s
|
111
|
+
last_setting.comments = comments
|
112
|
+
last_setting.updated_at = update_time
|
113
|
+
last_setting.save_changes
|
114
|
+
|
115
|
+
@logger.debug("Project [#{app_info.project}] - [#{app_info.id}] setting [#{last_setting.id}] comments - [#{comments}]")
|
116
|
+
|
117
|
+
new_setting = Ocp::Registry::Models::RegistrySetting.new(:registry_application_id => app_id,
|
118
|
+
:updated_at => update_time,
|
119
|
+
:settings => set,
|
120
|
+
:version => (last_setting.version + 1),
|
121
|
+
:from => setting["from"])
|
122
|
+
new_setting.save
|
123
|
+
|
124
|
+
@logger.info("Project [#{app_info.project}] - [#{app_info.id}] current setting is #{new_setting.id} - #{new_setting.settings}")
|
125
|
+
|
126
|
+
if @mail_manager
|
127
|
+
if setting["from"] == "ADMIN"
|
128
|
+
link = gen_app_uri(app_id, :modified => true)
|
129
|
+
mail_to = app_info.email
|
130
|
+
else
|
131
|
+
link = gen_app_uri(app_id, :modified => true, :review => true)
|
132
|
+
mail_to = @mail_manager.admin_emails
|
133
|
+
end
|
134
|
+
|
135
|
+
msg = {
|
136
|
+
:from => setting["from"] == "ADMIN" ? "Administrator" : app_info.email ,
|
137
|
+
:name => setting["from"] == "ADMIN" ? "User from #{app_info.email}" : "Administrator" ,
|
138
|
+
:change_set => change_set ,
|
139
|
+
:app_info => app_info ,
|
140
|
+
:comments => comments ,
|
141
|
+
:time => update_time ,
|
142
|
+
:application_link => link
|
143
|
+
}
|
144
|
+
|
145
|
+
mail = prepare_mail_properties(:modify, mail_to, msg)
|
146
|
+
@mail_manager.send_mail(mail)
|
147
|
+
end
|
148
|
+
|
25
149
|
app_info
|
26
150
|
end
|
27
151
|
|
28
152
|
def default
|
29
|
-
@default
|
153
|
+
return @default if @default
|
154
|
+
|
155
|
+
settings = Yajl::Encoder.encode(@cloud_manager.default_quota)
|
156
|
+
default_setting = {
|
157
|
+
:settings => settings
|
158
|
+
}
|
159
|
+
registry_settings = [] << default_setting
|
160
|
+
|
161
|
+
|
162
|
+
@default = {
|
30
163
|
:email => "" ,
|
31
164
|
:project => "" ,
|
32
165
|
:description => "" ,
|
33
|
-
:
|
166
|
+
:registry_settings => registry_settings
|
34
167
|
}
|
168
|
+
|
35
169
|
end
|
36
170
|
|
37
171
|
def approve(app_id)
|
@@ -41,7 +175,7 @@ module Ocp::Registry
|
|
41
175
|
|
42
176
|
return {:status => "error", :message => "Application [#{app_info.project}] - [#{app_id}] has been #{app_info.state}"} unless app_info.state == 'PENDING'
|
43
177
|
|
44
|
-
unless existed_tenant?(app_info.project, :find_local => false)
|
178
|
+
unless existed_tenant?(app_info.project, :find_local => false)
|
45
179
|
# create project tenant and user
|
46
180
|
tenant = @cloud_manager.create_tenant(app_info.project, app_info.description)
|
47
181
|
|
@@ -68,14 +202,24 @@ module Ocp::Registry
|
|
68
202
|
|
69
203
|
#assign quota to project
|
70
204
|
|
71
|
-
|
205
|
+
current_setting = app_info.registry_settings_dataset.order_by(:version).last
|
206
|
+
settings = @cloud_manager.set_tenant_quota(tenant.id, Yajl.load(current_setting.settings))
|
207
|
+
|
208
|
+
time = Time.now.utc.to_s
|
209
|
+
|
210
|
+
current_setting.comments = "APPROVED"
|
211
|
+
current_setting.updated_at = time
|
212
|
+
current_setting.save_changes
|
72
213
|
|
73
214
|
Ocp::Registry::Models::RegistryApplication.where(:id => app_id)
|
74
|
-
.update(:state => 'APPROVED',
|
75
|
-
|
76
|
-
|
215
|
+
.update(:state => 'APPROVED', :end_at => time)
|
216
|
+
|
217
|
+
@logger.info("Project [#{app_info.project}] - [#{app_info.id}] is [APPROVED] at #{time} - setting : #{settings}")
|
218
|
+
|
77
219
|
app_info = get_application(app_id)
|
220
|
+
|
78
221
|
if @mail_manager
|
222
|
+
|
79
223
|
admin_msg = {
|
80
224
|
:app_info => app_info ,
|
81
225
|
:application_link => gen_app_uri(app_id, :review => true) ,
|
@@ -83,16 +227,17 @@ module Ocp::Registry
|
|
83
227
|
}
|
84
228
|
mail = prepare_mail_properties(:approve_admin, @mail_manager.admin_emails, admin_msg)
|
85
229
|
@mail_manager.send_mail(mail)
|
230
|
+
|
86
231
|
user_msg = {
|
87
232
|
:app_info => app_info ,
|
88
233
|
:application_link => gen_app_uri(app_id) ,
|
89
|
-
:applications_link => gen_app_uri(nil, :email => app_info.email) ,
|
90
234
|
:login => Ocp::Registry.cloud_login_url ,
|
91
235
|
:username => username ,
|
92
236
|
:password => password
|
93
237
|
}
|
94
238
|
mail = prepare_mail_properties(:approve_user, app_info.email, user_msg)
|
95
239
|
@mail_manager.send_mail(mail)
|
240
|
+
|
96
241
|
end
|
97
242
|
app_info
|
98
243
|
else
|
@@ -104,19 +249,36 @@ module Ocp::Registry
|
|
104
249
|
|
105
250
|
def refuse(app_id,comments)
|
106
251
|
app_info = get_application(app_id)
|
107
|
-
|
108
|
-
|
252
|
+
|
253
|
+
if app_info.nil?
|
254
|
+
return {:status => "error", :message => "Application with id - [#{app_id}] is not existed"}
|
255
|
+
end
|
256
|
+
|
257
|
+
unless app_info.state == 'PENDING'
|
258
|
+
return {:status => "error", :message => "Application [#{app_info.project}] - #{app_id} has been #{app_info.state}"}
|
259
|
+
end
|
109
260
|
|
110
261
|
comments ||= "no comments"
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
262
|
+
time = Time.now.utc.to_s
|
263
|
+
|
264
|
+
app_info.state = 'REFUSED'
|
265
|
+
app_info.end_at = time
|
266
|
+
current_setting = app_info.registry_settings_dataset.order_by(:version).last
|
267
|
+
current_setting.updated_at = time
|
268
|
+
|
269
|
+
current_setting.comments = "REFUSED - #{comments}"
|
270
|
+
|
271
|
+
current_setting.save_changes
|
272
|
+
app_info.save_changes
|
273
|
+
|
274
|
+
@logger.info("Project [#{app_info.project}] - [#{app_info.id}] is [REFUSED] at #{time} - setting : #{current_setting.settings}")
|
275
|
+
|
115
276
|
app_info = get_application(app_id)
|
116
277
|
|
117
278
|
if @mail_manager
|
118
279
|
admin_msg = {
|
119
280
|
:app_info => app_info ,
|
281
|
+
:comments => current_setting.comments ,
|
120
282
|
:application_link => gen_app_uri(app_id, :review => true) ,
|
121
283
|
:applications_link => gen_app_uri
|
122
284
|
}
|
@@ -124,8 +286,8 @@ module Ocp::Registry
|
|
124
286
|
@mail_manager.send_mail(mail)
|
125
287
|
user_msg = {
|
126
288
|
:app_info => app_info ,
|
289
|
+
:comments => current_setting.comments ,
|
127
290
|
:application_link => gen_app_uri(app_id) ,
|
128
|
-
:applications_link => gen_app_uri(nil, :email => app_info.email)
|
129
291
|
}
|
130
292
|
mail = prepare_mail_properties(:refuse_user, app_info.email, user_msg)
|
131
293
|
@mail_manager.send_mail(mail)
|
@@ -137,7 +299,12 @@ module Ocp::Registry
|
|
137
299
|
if existed_tenant?(app_info['project'])
|
138
300
|
{:status => "error", :message => "Project name [#{app_info['project']}] has been used"}
|
139
301
|
else
|
302
|
+
setting = app_info.delete("settings")
|
140
303
|
result = Ocp::Registry::Models::RegistryApplication.create(app_info)
|
304
|
+
result.add_registry_setting(:settings => setting)
|
305
|
+
|
306
|
+
@logger.info("Project [#{result.project}] - [#{result.id}] is [CREATED] - setting : #{setting}")
|
307
|
+
|
141
308
|
if @mail_manager
|
142
309
|
admin_msg = {
|
143
310
|
:app_info => result ,
|
@@ -149,7 +316,6 @@ module Ocp::Registry
|
|
149
316
|
user_msg = {
|
150
317
|
:app_info => result ,
|
151
318
|
:application_link => gen_app_uri(result.id) ,
|
152
|
-
:applications_link => gen_app_uri(nil, :email => result.email)
|
153
319
|
}
|
154
320
|
mail = prepare_mail_properties(:request_user, result.email, user_msg)
|
155
321
|
@mail_manager.send_mail(mail)
|
@@ -165,11 +331,7 @@ module Ocp::Registry
|
|
165
331
|
return true if local_existed
|
166
332
|
end
|
167
333
|
remote_existed = @cloud_manager.get_tenant_by_name(tenant)? true : false
|
168
|
-
|
169
|
-
return true
|
170
|
-
else
|
171
|
-
return false
|
172
|
-
end
|
334
|
+
return remote_existed
|
173
335
|
end
|
174
336
|
|
175
337
|
private
|