Page Menu
Home
GRNET
Search
Configure Global Search
Log In
Files
F424893
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Apr 3, 7:38 AM
Size
2 KB
Mime Type
text/x-diff
Expires
Sat, Apr 5, 7:38 AM (1 d, 4 h)
Engine
blob
Format
Raw Data
Handle
204665
Attached To
rARCHIVING archiving
View Options
diff --git a/lib/peter/strategies/vima.rb b/lib/peter/strategies/vima.rb
index a0c3324..ff07fd2 100644
--- a/lib/peter/strategies/vima.rb
+++ b/lib/peter/strategies/vima.rb
@@ -1,82 +1,85 @@
## -*- encoding : utf-8 -*-
require 'oauth2'
Warden::Strategies.add(:vima) do
Key = Rails.application.secrets.oauth2_vima_client_id
Secret = Rails.application.secrets.oauth2_vima_secret
def valid?
params['vima'] || params['error'] || params['code']
end
def client
OAuth2::Client.new(
Key,
Secret,
site: 'https://vima.grnet.gr',
token_url: "/o/token",
authorize_url: "/o/authorize",
:ssl => {:ca_path => "/etc/ssl/certs"}
)
end
def redirect_uri
uri = URI.parse(request.url)
uri.scheme = 'https' unless Rails.env.development?
uri.path = '/vima'
uri.query = nil
uri.to_s
end
def redirect_to_vima
redirect! client.auth_code.authorize_url(:redirect_uri => redirect_uri, scope: 'read')
end
def authenticate!
if !Baas::settings[:vima_oauth_enabled]
return fail!("ViMa is temporarily disabled")
end
if params['error']
Rails.logger.warn("WARDEN: ERROR #{params['error']}")
return fail!("ViMa log in failed: #{params['error']}")
end
return redirect_to_vima if params['vima']
access_token = client.auth_code.get_token(
params['code'],
{ :redirect_uri => redirect_uri },
{ :mode => :query, :param_name => "access_token", :header_format => "" })
user_data = access_token.get('https://vima.grnet.gr/instances/list?tag=vima:service:archiving',
{ mode: :query, param_name: 'access_token' }).
parsed.deep_symbolize_keys
user = User.find_or_initialize_by(username: user_data[:user][:username],
email: user_data[:user][:email])
if user.new_record?
user.enabled = true
user.vima!
end
if user_data[:response][:errors] != false
Rails.logger.warn("ViMa: errors on instances/list response for user #{user_data[:user][:username]}")
end
if !user.enabled?
return fail!('Service not available')
end
assign_vms(user, user_data[:response][:instances])
success!(user)
end
def assign_vms(user, vms)
- session[:vms] = vms
+ Rails.logger.warn("ViMa: user: #{user.username}")
+ Rails.logger.warn("ViMa: vms: #{vms}")
+ Rails.logger.warn("ViMa: session vms: #{session[:vms]}")
+ session[:vms] = vms.first(50)
Host.where(fqdn: vms).each do |host|
host.users << user unless host.users.include?(user)
end
end
end
Event Timeline
Log In to Comment