level up keystone testing script
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.
This commit is contained in:
parent
f23e55d088
commit
85639708a6
@ -3,27 +3,53 @@
|
||||
# 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'
|
||||
|
||||
get_token = %(curl -d '{"auth":{"passwordCredentials":{"username": "admin", "password": "ChangeMe"}}}' -H "Content-type: application/json" http://localhost:35357/v2.0/tokens)
|
||||
token = nil
|
||||
Open3.popen3(get_token) do |stdin, stdout, stderr|
|
||||
begin
|
||||
stdout = stdout.read
|
||||
puts "Response from token request:#{stdout}"
|
||||
token = PSON.load(stdout)["access"]["token"]["id"]
|
||||
rescue Exception => e
|
||||
puts "Could not retrieve token from response, this sh*t is borked :( : details: #{e}"
|
||||
exit 1
|
||||
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
|
||||
|
||||
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user