Sha256: 6b7295aa18fcfc3146cddf4d39294ef6000458ef8c7692a7cee3bc374f1f5d0b

Contents?: true

Size: 1.56 KB

Versions: 21

Compression:

Stored size: 1.56 KB

Contents

module Pvcglue
  class Packages
    def self.apply(package, context, nodes, user = 'deploy', package_filter = nil)
      # puts nodes.inspect
      orca_suite = OrcaSuite.init(package_filter)
      nodes.each do |node, data|
        orca_node = ::Orca::Node.new(node, data[:public_ip], {user: user, port: Pvcglue.cloud.port_in_context(context)})
        ::Pvcglue.cloud.current_node = {node => data}
        begin
          orca_suite.run(orca_node.name, package.to_s, :apply)
        ensure
          ::Pvcglue.cloud.current_node = nil
          ::Pvcglue.cloud.current_hostname = nil
        end
      end
    end
  end

  class OrcaSuite

    def self.init(package_filter)
      ::Orca.verbose(package_filter != 'manager') # show details for all packages except manager, for now

      # Load orca extensions
      orca_file = File.join(File.dirname(__FILE__), 'all_the_things.rb')
      ENV['ORCA_FILE'] = orca_file
      suite = ::Orca::Suite.new
      suite.load_file(orca_file)
      packages_loaded = []

      Dir[File.join(Pvcglue::gem_dir, 'lib', 'pvcglue', 'packages', '*.rb')].each do |file|
        # package filter is used to load the manager package by itself when stage is not specified
        next if package_filter && package_filter != File.basename(file, ".rb")
        begin
          suite.load_file(file)
        rescue Exception => e
          puts "Error loading #{file}:  #{e.message}"
          raise
        end
        packages_loaded << File.basename(file, ".rb")
      end
      puts "Packages loaded: #{packages_loaded.sort.join(' ')}."
      suite
    end
  end

end

Version data entries

21 entries across 21 versions & 1 rubygems

Version Path
pvcglue-0.1.26 lib/pvcglue/packages.rb
pvcglue-0.1.25 lib/pvcglue/packages.rb
pvcglue-0.1.24 lib/pvcglue/packages.rb
pvcglue-0.1.23 lib/pvcglue/packages.rb
pvcglue-0.1.22 lib/pvcglue/packages.rb
pvcglue-0.1.21 lib/pvcglue/packages.rb
pvcglue-0.1.20 lib/pvcglue/packages.rb
pvcglue-0.1.19 lib/pvcglue/packages.rb
pvcglue-0.1.18 lib/pvcglue/packages.rb
pvcglue-0.1.17 lib/pvcglue/packages.rb
pvcglue-0.1.15 lib/pvcglue/packages.rb
pvcglue-0.1.14 lib/pvcglue/packages.rb
pvcglue-0.1.13 lib/pvcglue/packages.rb
pvcglue-0.1.12 lib/pvcglue/packages.rb
pvcglue-0.1.11 lib/pvcglue/packages.rb
pvcglue-0.1.10 lib/pvcglue/packages.rb
pvcglue-0.1.9 lib/pvcglue/packages.rb
pvcglue-0.1.8 lib/pvcglue/packages.rb
pvcglue-0.1.7 lib/pvcglue/packages.rb
pvcglue-0.1.6 lib/pvcglue/packages.rb