85639708a6
This fixes some issues with the previous keystone test script. 1. conditionally requires rubygems in case that is how puppet is installed 2. installs curl if not installed 3. performs way more queries. so that this can serve as a reminder to me about how to play with the keystone apis.
56 lines
1.6 KiB
Ruby
56 lines
1.6 KiB
Ruby
#!/usr/bin/env ruby
|
|
# this script verifies that keystone has
|
|
# been successfully installed using the instructions
|
|
# found here: http://keystone.openstack.org/configuration.html
|
|
|
|
begin
|
|
require 'rubygems'
|
|
rescue
|
|
puts 'Could not require rubygems. This assumes puppet is not installed as a gem'
|
|
end
|
|
require 'open3'
|
|
require 'fileutils'
|
|
require 'puppet'
|
|
|
|
username='admin'
|
|
password='admin_password'
|
|
# required to get a real services catalog
|
|
tenant='openstack'
|
|
|
|
# shared secret
|
|
service_token='service_token'
|
|
|
|
def run_command(cmd)
|
|
Open3.popen3(cmd) do |stdin, stdout, stderr|
|
|
begin
|
|
stdout = stdout.read
|
|
puts "Response from token request:#{stdout}"
|
|
return stdout
|
|
rescue Exception => e
|
|
puts "Request failed, this sh*t is borked :( : details: #{e}"
|
|
exit 1
|
|
end
|
|
end
|
|
end
|
|
|
|
puts `puppet apply -e "package {curl: ensure => present }"`
|
|
|
|
get_token = %(curl -d '{"auth":{"passwordCredentials":{"username": "#{username}", "password": "#{password}"}}}' -H "Content-type: application/json" http://localhost:35357/v2.0/tokens)
|
|
token = nil
|
|
|
|
puts "Running auth command: #{get_token}"
|
|
token = PSON.load(run_command(get_token))["access"]["token"]["id"]
|
|
|
|
if token
|
|
puts "We were able to retrieve a token"
|
|
puts token
|
|
verify_token = "curl -H 'X-Auth-Token: #{service_token}' http://localhost:35357/v2.0/tokens/#{token}"
|
|
puts 'verifying token'
|
|
run_command(verify_token)
|
|
['endpoints', 'tenants', 'users'].each do |x|
|
|
puts "getting #{x}"
|
|
get_keystone_data = "curl -H 'X-Auth-Token: #{service_token}' http://localhost:35357/v2.0/#{x}"
|
|
run_command(get_keystone_data)
|
|
end
|
|
end
|