Showing
3 changed files
with
31 additions
and
1 deletions
@@ -3,6 +3,11 @@ class DashboardController < ApplicationController | @@ -3,6 +3,11 @@ class DashboardController < ApplicationController | ||
3 | @lxd_host = LxdHost.find(1) | 3 | @lxd_host = LxdHost.find(1) |
4 | @cert = Certificate.find(1) | 4 | @cert = Certificate.find(1) |
5 | @lxd = Lxd::Server.by_host @lxd_host, @cert | 5 | @lxd = Lxd::Server.by_host @lxd_host, @cert |
6 | + | ||
7 | + if @lxd.auth == 'untrusted' | ||
8 | + Lxd::Certificate.new.save(@lxd_host, @cert) | ||
9 | + @lxd = Lxd::Server.by_host @lxd_host, @cert | ||
10 | + end | ||
6 | end | 11 | end |
7 | end | 12 | end |
8 | # vim: set et ts=2 sw=2: | 13 | # vim: set et ts=2 sw=2: |
app/models/lxd/certificate.rb
0 → 100644
1 | +class Lxd::Certificate | ||
2 | + include ActiveModel::Model | ||
3 | + | ||
4 | + def save(host, certificate) | ||
5 | + all = Array.new; | ||
6 | + | ||
7 | + uri = URI.parse(host.uri + '/1.0/certificates') | ||
8 | + http = Net::HTTP.new(uri.host, uri.port) | ||
9 | + http.use_ssl = true | ||
10 | + http.cert = OpenSSL::X509::Certificate.new(certificate.cert) | ||
11 | + http.key = OpenSSL::PKey::RSA.new(certificate.key) | ||
12 | + http.verify_mode = OpenSSL::SSL::VERIFY_NONE | ||
13 | + | ||
14 | + request = Net::HTTP::Post.new(uri.request_uri) | ||
15 | + request.body = { | ||
16 | + :type => 'client', | ||
17 | + :name => 'foo', | ||
18 | + :password => '[where to get this from....]' | ||
19 | + }.to_json | ||
20 | + response = http.request(request) | ||
21 | + | ||
22 | + response.code | ||
23 | + end | ||
24 | +end | ||
25 | +# vim: set ts=2 sw=2: |
@@ -12,7 +12,7 @@ api_base_uri = 'https://192.168.30.1:8443/' | @@ -12,7 +12,7 @@ api_base_uri = 'https://192.168.30.1:8443/' | ||
12 | cert = File.read(File.dirname(__FILE__) + '/client.crt') | 12 | cert = File.read(File.dirname(__FILE__) + '/client.crt') |
13 | key = File.read(File.dirname(__FILE__) + '/client.key') | 13 | key = File.read(File.dirname(__FILE__) + '/client.key') |
14 | 14 | ||
15 | -uri = URI.parse(api_base_uri + '1.0') | 15 | +uri = URI.parse(api_base_uri + '1.0/certificates') |
16 | http = Net::HTTP.new(uri.host, uri.port) | 16 | http = Net::HTTP.new(uri.host, uri.port) |
17 | http.use_ssl = true | 17 | http.use_ssl = true |
18 | http.cert = OpenSSL::X509::Certificate.new(cert) | 18 | http.cert = OpenSSL::X509::Certificate.new(cert) |
Please
register
or
login
to post a comment