Module: QB

Defined in:
lib/qb/cli.rb,
lib/qb.rb,
lib/qb/path.rb,
lib/qb/role.rb,
lib/qb/util.rb,
lib/qb/errors.rb,
lib/qb/ansible.rb,
lib/qb/cli/run.rb,
lib/qb/options.rb,
lib/qb/package.rb,
lib/qb/version.rb,
lib/qb/cli/help.rb,
lib/qb/cli/play.rb,
lib/qb/repo/git.rb,
lib/qb/cli/setup.rb,
lib/qb/util/stdio.rb,
lib/qb/ansible/env.rb,
lib/qb/role/errors.rb,
lib/qb/util/bundler.rb,
lib/qb/util/interop.rb,
lib/qb/util/resource.rb,
lib/qb/ansible/module.rb,
lib/qb/ansible_module.rb,
lib/qb/options/option.rb,
lib/qb/package/version.rb,
lib/qb/util/docker_mixin.rb,
lib/qb/ansible/config_file.rb,
lib/qb/ansible/cmds/playbook.rb

Overview

Declarations

Defined Under Namespace

Modules: Ansible, CLI, Repo, Util Classes: AnsibleVersionError, Error, FSStateError, Options, Package, Path, QBVersionError, Role, StateError, UserInputError, VersionError

Constant Summary collapse

ROOT =
(Pathname.new(__FILE__).dirname + '..').expand_path
GEM_ROLES_DIR =
ROOT + 'roles'
USER_ROLES_DIR =
Pathname.new(ENV['HOME']).join '.ansible', 'roles'
GEM_NAME =

Constants

'qb'
VERSION =
"0.3.8"
MIN_ANSIBLE_VERSION =
Gem::Version.new '2.1.2'
AnsibleModule =
QB::Ansible::Module

Class Method Summary collapse

Class Method Details

.check_ansible_versionObject

Check that the Ansible version is not less than MIN_ANSIBLE_VERSION.

Raises:



35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# File 'lib/qb/version.rb', line 35

def self.check_ansible_version
  out = Cmds.out! 'ansible --version'
  version_str = out[/ansible\ ([\d\.]+)/, 1]
  
  if version_str.nil?
    raise NRSER.dedent "      could not parse ansible version from `ansible --version` output:\n      \n      \#{ out }\n    END\n  end\n  \n  version = Gem::Version.new version_str\n  \n  if version < QB::MIN_ANSIBLE_VERSION\n    raise QB::AnsibleVersionError, NRSER.squish(\n      <<-END\n        QB \#{ QB::VERSION } requires Ansible \#{ QB::MIN_ANSIBLE_VERSION },\n        found version \#{ version_str } at \#{ `which ansible` }\n      END\n    )\n  end\nend\n"

.check_qb_version(role) ⇒ Object

If role has a QB::Role#qb_requirement raise an error if this version of QB doesn't satisfy it.

Raises:



66
67
68
69
70
71
72
73
74
75
76
# File 'lib/qb/version.rb', line 66

def self.check_qb_version role
  unless  role.qb_requirement.nil? ||
          role.qb_requirement.satisfied_by?(QB.gem_version)    
    raise QB::QBVersionError, NRSER.squish(
      "        Role \#{ role } requires QB \#{ role.qb_requirement }, using QB\n        \#{ QB.gem_version } from \#{ QB::ROOT }.\n      END\n    )\n  end\nend\n"

.debug(*args) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/qb.rb', line 14

def self.debug *args
  return unless ENV['QB_DEBUG'] && args.length > 0
  
  header = 'DEBUG'
  
  if args[0].is_a? String
    header += " " + args.shift
  end
  
  dumpObj = case args.length
  when 0
    header
  when 1
    {header => args[0]}
  else
    {header => args}
  end
  
  # $stderr.puts("DEBUG " + format(msg, values))
  $stderr.puts dumpObj.pretty_inspect
end

.gem_versionGem::Version

Get the Gem::Version parse of VERSION.

Returns:

  • (Gem::Version)


25
26
27
# File 'lib/qb/version.rb', line 25

def self.gem_version
  Gem::Version.new VERSION
end

.gemspecObject

Class Methods



16
17
18
# File 'lib/qb/version.rb', line 16

def self.gemspec
  Gem.loaded_specs[GEM_NAME]
end