Class: Opsmgr::Cmd::OpsManager

Inherits:
Object
  • Object
show all
Includes:
Loggable
Defined in:
lib/opsmgr/cmd/ops_manager.rb

Instance Method Summary collapse

Methods included from Loggable

included, #log

Constructor Details

#initialize(target_environment) ⇒ OpsManager

Returns a new instance of OpsManager.



8
9
10
# File 'lib/opsmgr/cmd/ops_manager.rb', line 8

def initialize(target_environment)
  @environment = target_environment
end

Instance Method Details

#add_product(client, name, version) ⇒ Object



60
61
62
63
64
65
66
67
# File 'lib/opsmgr/cmd/ops_manager.rb', line 60

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) ⇒ Object



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'lib/opsmgr/cmd/ops_manager.rb', line 12

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.name,
    'microbosh_template_folder' => environment.settings.name,
    'microbosh_disk_path' => environment.settings.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) ⇒ Object



33
34
35
36
37
38
39
40
# File 'lib/opsmgr/cmd/ops_manager.rb', line 33

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

#installed_products(client) ⇒ Object



78
79
80
81
82
83
84
85
# File 'lib/opsmgr/cmd/ops_manager.rb', line 78

def installed_products(client)
  result = client.installed_products
  if result.success?
    result
  else
    fail result.message
  end
end

#list_products(client) ⇒ Object



51
52
53
54
55
56
57
58
# File 'lib/opsmgr/cmd/ops_manager.rb', line 51

def list_products(client)
  result = client.list_products
  if result.success?
    result
  else
    fail result.message
  end
end

#upgrade_product(client, guid, version) ⇒ Object



69
70
71
72
73
74
75
76
# File 'lib/opsmgr/cmd/ops_manager.rb', line 69

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) ⇒ Object



42
43
44
45
46
47
48
49
# File 'lib/opsmgr/cmd/ops_manager.rb', line 42

def upload_product(client, path)
  result = client.upload_component(path)
  if result.success?
    log.info 'Successfully uploaded product'
  else
    fail result.message
  end
end