class Opsmgr::Cmd::OpsManager

Attributes

environment[R]

Public Class Methods

new(target_environment) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 11
def initialize(target_environment)
  @environment = target_environment
end

Public Instance Methods

add_product(client, name, version) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 63
def add_product(client, name, version)
  result = client.add_product(name, version)
  if result.success?
    log.info 'Successfully added product'
  else
    fail result.message
  end
end
configure_microbosh_infrastructure(client) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 15
def configure_microbosh_infrastructure(client)
  result = client.installation_settings
  return unless result.success?

  result = result.as_hash
  return if result.fetch('installation_version', '') != '1.4'
  return if result['infrastructure']['type'] != 'vsphere'

  result['infrastructure']['file_system'] = {
    'microbosh_vm_folder' => environment.settings.dig('name'),
    'microbosh_template_folder' => environment.settings.dig('name'),
    'microbosh_disk_path' => environment.settings.dig('name'),
  }

  file = Tempfile.new('om_install_settings')
  file.write(YAML.dump(result))
  file.close

  client.upload_product_installation_settings(file.path)
end
delete_unused_products(client) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 36
def delete_unused_products(client)
  result = client.delete_unused_products
  if result.success?
    log.info 'Successfully deleted unused products'
  else
    fail result.message
  end
end
download_staged_manifest(client, guid, manifest_filepath) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 108
def download_staged_manifest(client, guid, manifest_filepath)
  result = client.download_staged_manifest(guid)
  if result.success?
    File.open(manifest_filepath, 'w') do |mf|
      mf.write(result.manifest)
    end
    log.info 'Successfully downloaded staged manifest for product'
  else
    fail result.message
  end
end
import_installation(client, path) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 90
def import_installation(client, path)
  result = client.import_installation(path, environment.settings.dig('ops_manager', 'password'))
  if result.success?
    log.info 'Successfully imported installation'
  else
    fail result.message
  end
end
import_stemcell(client, path) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 99
def import_stemcell(client, path)
  result = client.import_stemcell(path)
  if result.success?
    log.info 'Successfully imported stemcell'
  else
    fail result.message
  end
end
installed_products(client) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 81
def installed_products(client)
  result = client.installed_products
  if result.success?
    result
  else
    fail result.message
  end
end
list_products(client) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 54
def list_products(client)
  result = client.list_products
  if result.success?
    result
  else
    fail result.message
  end
end
revert_staged_changes(client) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 120
def revert_staged_changes(client)
  result = client.revert_staged_changes
  if result.success?
    log.info 'Successfully reverted staged changes'
  else
    fail result.message
  end
end
upgrade_product(client, guid, version) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 72
def upgrade_product(client, guid, version)
  result = client.upgrade_product(guid, version)
  if result.success?
    log.info 'Successfully upgraded product'
  else
    fail result.message
  end
end
upload_product(client, path) click to toggle source
# File lib/opsmgr/cmd/ops_manager.rb, line 45
def upload_product(client, path)
  result = client.upload_component(path)
  if result.success?
    log.info 'Successfully uploaded product'
  else
    fail result.message
  end
end