Module: VMC::Cli::ServicesHelper

Included in:
Command::Apps, Command::Services, ManifestHelper
Defined in:
lib/cli/services_helper.rb

Instance Method Summary collapse

Instance Method Details

#bind_service_banner(service, appname, check_restart = true) ⇒ Object



64
65
66
67
68
69
# File 'lib/cli/services_helper.rb', line 64

def bind_service_banner(service, appname, check_restart=true)
  display "Binding Service [#{service}]: ", false
  client.bind_service(service, appname)
  display 'OK'.green
  check_app_for_restart(appname) if check_restart
end

#check_app_for_restart(appname) ⇒ Object



96
97
98
99
100
# File 'lib/cli/services_helper.rb', line 96

def check_app_for_restart(appname)
  app = client.app_info(appname)
  cmd = VMC::Cli::Command::Apps.new(@options)
  cmd.restart(appname) if app[:state] == 'STARTED'
end

#create_service_banner(service, name, display_name = false, plan = nil) ⇒ Object



57
58
59
60
61
62
# File 'lib/cli/services_helper.rb', line 57

def create_service_banner(service, name, display_name=false, plan=nil)
  sn = " [#{name}]" if display_name
  display "Creating Service#{sn}: ", false
  client.create_service(service, name, plan)
  display 'OK'.green
end

#delete_service_banner(service) ⇒ Object



78
79
80
81
82
# File 'lib/cli/services_helper.rb', line 78

def delete_service_banner(service)
  display "Deleting service [#{service}]: ", false
  client.delete_service(service)
  display 'OK'.green
end

#display_cloudn_services(services = nil) ⇒ Object



11
12
13
14
15
16
# File 'lib/cli/services_helper.rb', line 11

def display_cloudn_services(services=nil)
  services ||= client.cloudn_services_info
  display "\n============== Cloudn Services ==============\n\n"
  return display "No cloudn services available" if services.empty?
  display_services_table(services)
end

#display_provisioned_services(services = nil) ⇒ Object



40
41
42
43
44
# File 'lib/cli/services_helper.rb', line 40

def display_provisioned_services(services=nil)
  services ||= client.services
  display "\n=========== Provisioned Services ============\n\n"
  display_provisioned_services_table(services)
end

#display_provisioned_services_table(services) ⇒ Object



46
47
48
49
50
51
52
53
54
55
# File 'lib/cli/services_helper.rb', line 46

def display_provisioned_services_table(services)
  return unless services && !services.empty?
  services_table = table do |t|
    t.headings = 'Name', 'Service', 'Plan'
    services.each do |service|
      t << [ service[:name], service[:vendor], service[:tier] ]
    end
  end
  display services_table
end

#display_services_table(services) ⇒ Object



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/cli/services_helper.rb', line 18

def display_services_table(services)
  displayed_services = []
  services.each do |service_type, value|
    value.each do |vendor, version|
      version.each do |version_str, service|
        plans_str = ""
        plans_str = service[:tiers].keys.join(', ') if service[:tiers]
        default_plan = service[:default_plan] ? service[:default_plan] : ""
        plans_str.sub!(/#{default_plan}/, "#{default_plan}(default)") unless default_plan.empty?
        displayed_services << [ vendor, version_str, plans_str, service[:description] ]
      end
    end
  end
  displayed_services.sort! { |a, b| a.first.to_s <=> b.first.to_s}

  services_table = table do |t|
    t.headings = 'Service', 'Version', 'Plans', 'Description'
    displayed_services.each { |s| t << s }
  end
  display services_table
end

#display_system_services(services = nil) ⇒ Object



4
5
6
7
8
9
# File 'lib/cli/services_helper.rb', line 4

def display_system_services(services=nil)
  services ||= client.services_info
  display "\n============== System Services ==============\n\n"
  return display "No system services available" if services.empty?
  display_services_table(services)
end

#random_service_name(service) ⇒ Object



91
92
93
94
# File 'lib/cli/services_helper.rb', line 91

def random_service_name(service)
  r = "%04x" % [rand(0x0100000)]
  "#{service.to_s}-#{r}"
end

#register_service_banner(service, instance, name, options) ⇒ Object



84
85
86
87
88
89
# File 'lib/cli/services_helper.rb', line 84

def register_service_banner(service, instance, name, options)
  sn = " [#{name}]"
  display "Register Service#{sn}: ", false
  client.register_service(service, instance, name, options)
  display 'OK'.green
end

#service_plans(service, services_info = nil) ⇒ Object



102
103
104
105
106
107
108
109
# File 'lib/cli/services_helper.rb', line 102

def service_plans(service, services_info=nil)
  services_info ||= client.services_info
  services_info.values.map { |subset1|
    if subset1[service.to_sym]
      subset1[service.to_sym].values.map { |details| details[:tiers].keys.map(&:to_s) }
    end
  }.flatten.compact
end

#unbind_service_banner(service, appname, check_restart = true) ⇒ Object



71
72
73
74
75
76
# File 'lib/cli/services_helper.rb', line 71

def unbind_service_banner(service, appname, check_restart=true)
  display "Unbinding Service [#{service}]: ", false
  client.unbind_service(service, appname)
  display 'OK'.green
  check_app_for_restart(appname) if check_restart
end