Class: Chef::Knife::ZcloudjpProductList

Inherits:
Chef::Knife show all
Includes:
ZcloudjpBase
Defined in:
lib/chef/knife/zcloudjp_product_list.rb

Instance Method Summary collapse

Methods included from ZcloudjpBase

included

Instance Method Details

#runObject



10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/chef/knife/zcloudjp_product_list.rb', line 10

def run
  Chef::Log.debug("Connect to Z Cloud API #{locate_config_value(:zcloudjp_api_url)}")
  connection = Faraday.new(:url => locate_config_value(:zcloudjp_api_url), :ssl => {:verify => false})

  response = connection.get do |req|
    req.url '/products.json'
    req.headers['Content-Type'] = 'application/json'
    req.headers['X-API-KEY'] = Chef::Config[:knife][:zcloudjp_api_token]
  end

  products = JSON.parse(response.body)

  product_list = [
    ui.color('name', :bold),
    ui.color('os', :bold),
    ui.color('dataset', :bold),
    ui.color('package', :bold),
  ]

  products.map do |product|
    product_list << product["name"]
    product_list << product["os"]
    product_list << product["sdc_dataset"]
    product_list << product["sdc_package"]
  end

  puts ui.list(product_list, :uneven_columns_across, 4)
end