Sha256: d9630d25063f80faba3792ae3f9ba79e3fdb130e25556d1fb3907d7f105c8f56

Contents?: true

Size: 1.01 KB

Versions: 1

Compression:

Stored size: 1.01 KB

Contents

module Fog
  module Compute
    class Vsphere
      class Real
        def list_processes(vm_id, opts)
          vm = get_vm_ref(vm_id)

          auth = RbVmomi::VIM::NamePasswordAuthentication(
            username: opts[:user],
            password: opts[:password],
            interactiveSession: false
          )

          p_manager = @connection.serviceContent.guestOperationsManager.processManager
          processes = p_manager.ListProcessesInGuest(vm: vm, auth: auth)
          processes.map do |pi|
            Process.new(
              cmd_line: pi.cmdLine,
              end_time: pi.endTime,
              exit_code: pi.exitCode,
              name: pi.name,
              owner: pi.owner,
              pid: pi.pid,
              start_time: pi.startTime
            )
          end
        end
      end

      class Mock
        def list_processes(vm_id, opts = {})
          [
            Process.new(name: 'winlogon'),
            Process.new(name: 'init')
          ]
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fog-1.36.0 lib/fog/vsphere/requests/compute/list_processes.rb