File: tempest.rb

package info (click to toggle)
puppet-module-tempest 25.0.0-1%2Bdeb13u1
  • links: PTS, VCS
  • area: main
  • in suites: trixie
  • size: 1,000 kB
  • sloc: ruby: 1,268; python: 38; makefile: 10; sh: 10
file content (59 lines) | stat: -rw-r--r-- 2,236 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
begin
  basedir = File.expand_path(File.join(__FILE__, '..', '..', '..', '..', '..'))
  openstacklib_lib = File.join(basedir, 'openstacklib', 'lib')
  $LOAD_PATH.unshift(openstacklib_lib) unless $LOAD_PATH.include?(openstacklib_lib)
rescue => e
  Puppet.warning("Failed to set $LOAD_PATH for openstacklib: #{e.message}")
end

require 'puppet/util/inifile'
require 'puppet/provider/openstack'
require 'puppet/provider/openstack/auth'
require 'puppet/provider/openstack/credentials'
class Puppet::Provider::Tempest < Puppet::Provider::Openstack

  extend Puppet::Provider::Openstack::Auth

  def self.tempest_file
    return @tempest_file if @tempest_file
    @tempest_file = Puppet::Util::IniConfig::File.new
    @tempest_file.read(@file_path)
    @tempest_file
  end

  def self.request(service, action, properties=[], file_path)
    @file_path = file_path
    begin
      super(service, action, properties)
    rescue Puppet::Error::OpenstackAuthInputError => error
      tempest_request(service, action, error, properties)
    end
  end

  def self.tempest_request(service, action, error, properties=nil)
    @credentials.username = tempest_credentials['admin_user']
    @credentials.password = tempest_credentials['admin_password']
    @credentials.project_name = tempest_credentials['admin_project_name']
    @credentials.auth_url = tempest_credentials['auth_endpoint']
    if @credentials.version == '3'
      @credentials.user_domain_name = tempest_credentials['admin_domain_name']
      @credentials.project_domain_name = tempest_credentials['admin_domain_name']
      @credentials.auth_url = tempest_credentials['auth_endpoint_v3']
    end
    raise error unless @credentials.set?
    Puppet::Provider::Openstack.request(service, action, properties, @credentials)
  end

  def self.tempest_credentials
    t = {}
    t['admin_user'] = tempest_file['auth']['admin_username']
    t['admin_password'] = tempest_file['auth']['admin_password']
    t['admin_project_name'] = tempest_file['auth']['admin_project_name']
    t['auth_endpoint'] = tempest_file['identity']['uri']
    t['auth_endpoint_v3'] = tempest_file['identity']['uri_v3']
    t['admin_domain_name'] = tempest_file['auth']['admin_domain_name']
    return t
  end


end