Class: App42::Command::Setup

Inherits:
Base
  • Object
show all
Defined in:
lib/app42/command/setup.rb

Instance Method Summary collapse

Methods inherited from Base

#app_information, #app_operation, #app_url_availability, #assign_release_static_ip, #cloudapi_operation, #collect_app_source, #create_cloud_setup, #create_gpaas_setup, #create_infrastructure, #create_service, #create_service_tunnel, #create_wordpress_setup, #custom_url_information, #custom_url_operation, #delete_cloudapi, #delete_gpaas, #delete_service, #delete_service_tunnel, #delete_wordpress, #get_app_name, #get_app_name_and_check_app_url_availability, #get_app_source, #get_custom_url, #get_framework, #get_iaas_providers, #get_instance, #get_kontena, #get_os_for_app, #get_os_for_service, #get_runtime, #get_setup_name, #get_setup_name_and_check_setup_url_availability, #get_subscription, #get_vm_types, #get_vmconfig, #get_webserver, #get_wordpress_name, #get_wordpress_name_and_check_wordpress_url_availability, #gpaas_operation, #initialize, #interactive_get, #reset_password, #scale_or_descale_app, #service_name_availability, #service_operation, #setup_url_availability, #update_binary, #update_gpaas_dashboard, #upgrade_or_downgrade_cloudapi, #upgrade_or_downgrade_gpaas, #upgrade_or_downgrade_wordpress, #upload_binary, #upload_service_backup, #vscale_or_vdescale_app, #vscale_or_vdescale_service, #wordpress_operation, #wordpress_url_availability

Methods included from Base::HttpHelper

#build_delete_request, #build_get_request, #build_post_request, #build_put_request, #delete_request, #get_request, #post_request, #put_request

Methods included from Base::Util

#app42_client_info, #ask_app_name, #camel_case_to_whitespace, #check_transaction_status, #check_transaction_status_of_setup, #escape_path, #get_flavour_for_upgrade_or_downgrade, #get_instance_config_for_upgrade_or_downgrade, #input, #ip_address_valid?, #is_app_exist?, #is_service_exist?, #is_setup_name_exist?, #is_static_ip_assigned?, #json_parse, #message, #number_valid?, #numeric?, #numeric_including_zero?, #params, #parse_error_message, #print_new_line, #request_failed?, #resource_url, #show_wait_spinner, #signature, #status_call, #time_valid?, #util_base, #validate_app_and_service_name, #validate_database_name, #validate_git_url, #validate_setup_name, #validate_upload_backup_path, #validate_url, #validate_vm_config

Methods included from UserToken

#check_key_file?, #config_path, #ensure_config_dir, #ensure_key_file, #get_keys, #key_path, #local_app42_key, #remove_key_file

Constructor Details

This class inherits a constructor from App42::Command::Base

Instance Method Details

#delete_cloud_apiObject

Delete App42 cloud API setup, return true or error code/message



21
22
23
24
25
# File 'lib/app42/command/setup.rb', line 21

def delete_cloud_api
  @options[:setup] = get_setup_name if @options[:setup].nil?
  response = delete_cloudapi @options[:setup] if is_setup_name_exist? @options[:setup]
  exit! if response
end

#downgradeObject

collect BPaaS setup name from user and proceed BPaaS downgrade request



58
59
60
61
62
63
64
# File 'lib/app42/command/setup.rb', line 58

def downgrade
 @options[:setup] = get_setup_name if @options[:setup].nil?
 print_new_line
 flavour = get_flavour_for_upgrade_or_downgrade @options[:setup], __method__.to_s if is_setup_name_exist? @options[:setup]
 response = upgrade_or_downgrade_cloudapi __method__, @options[:setup], flavour
 exit! if response
end

#get_flavourObject

return flavour



76
77
78
79
80
81
82
83
84
85
# File 'lib/app42/command/setup.rb', line 76

def get_flavour
  flavour_hash = {}
 flavour_type = App42::Command::Config.new.get_flavour_type_fm_server
  flavour_type['flavours'].select {|each_flavour| flavour_hash["#{each_flavour['id']}"] = each_flavour['name']}
 flavour = input "Select Flavour", flavour_hash.values, true

 flavour_id = nil
 flavour_hash.each_pair{|fl| flavour_id = fl[0] if fl[1] == flavour}
 return flavour_id
end

#get_setup_typeObject

return setup type



67
68
69
70
71
72
73
# File 'lib/app42/command/setup.rb', line 67

def get_setup_type
	setup_type_hash = {}
  setup_type = App42::Command::Config.new.get_setup_type_fm_server

  setup_type['setupTypes'].select {|each_setup_type| setup_type_hash["#{each_setup_type['id']}"] = each_setup_type['name']}
  return setup_type_hash.keys.first
end

#infoObject

get details information of App42 cloud setup



88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# File 'lib/app42/command/setup.rb', line 88

def info
  @options[:setup] = get_setup_name if @options[:setup].nil?
  query_params = params
  query_params.store('setupName', @options[:setup])
  setup_info = build_get_request query_params, 'setup', "#{@options[:setup]}"
  rows, rows_header_final, rows_header = [], [], nil
  if setup_info && setup_info['setupInfo']
    rows_header = setup_info['setupInfo'].keys 
    rows << setup_info['setupInfo'].values

    rows_header.map { |e| rows_header_final << camel_case_to_whitespace(e) }
    
    table = Terminal::Table.new  :title => Paint["=== #{@options[:setup]} Details ===", :green], :headings => rows_header_final, :rows => rows
    puts table
  end
end

#restartObject

collect BPaaS setup name from user and proceed BPaaS restart request



42
43
44
45
46
# File 'lib/app42/command/setup.rb', line 42

def restart
  @options[:setup] = get_setup_name if @options[:setup].nil?
  response = cloudapi_operation __method__, @options[:setup] if is_setup_name_exist? @options[:setup]
  exit! if response
end

#setup_cloud_apiObject

Collect all required attributes for new App42 cloud setup spawn required inputs are setup_name, vm_type, iaas, setup_type and flavour



10
11
12
13
14
15
16
17
18
# File 'lib/app42/command/setup.rb', line 10

def setup_cloud_api
  setup_name = get_setup_name_and_check_setup_url_availability
  vm_type = get_vm_types nil
  iaas = get_iaas_providers vm_type
  setup_type = get_setup_type
  flavour = get_flavour
  setup_cloud_api_res = App42::Command::Base.new.create_cloud_setup setup_name, iaas, vm_type, setup_type, flavour
  exit! if setup_cloud_api_res
end

#setupsObject

List all setups



106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/app42/command/setup.rb', line 106

def setups
  query_params = params
  setups = build_get_request query_params, 'setup', nil
  rows, rows_header_final, rows_header = [], [], nil
  if setups && setups['setups']
    setups['setups'].each do |e|
      rows_header = e.keys 
      rows << e.values
    end

    rows_header.map { |e| rows_header_final << camel_case_to_whitespace(e) }

    table = Terminal::Table.new  :title => Paint["=== Setups List ===", :green], :headings => rows_header_final, :rows => rows
    puts table
  end
end

#startObject

collect BPaaS setup name from user and proceed BPaaS start request



28
29
30
31
32
# File 'lib/app42/command/setup.rb', line 28

def start
  @options[:setup] = get_setup_name if @options[:setup].nil?
  response = cloudapi_operation __method__, @options[:setup] if is_setup_name_exist? @options[:setup]
  exit! if response
end

#stopObject

collect BPaaS setup name from user and proceed BPaaS stop request



35
36
37
38
39
# File 'lib/app42/command/setup.rb', line 35

def stop
  @options[:setup] = get_setup_name if @options[:setup].nil?
  response = cloudapi_operation __method__, @options[:setup] if is_setup_name_exist? @options[:setup]
  exit! if response
end

#upgradeObject

collect BPaaS setup name from user and proceed BPaaS upgrade request



49
50
51
52
53
54
55
# File 'lib/app42/command/setup.rb', line 49

def upgrade
  @options[:setup] = get_setup_name if @options[:setup].nil?
  print_new_line
  flavour = get_flavour_for_upgrade_or_downgrade @options[:setup], __method__.to_s if is_setup_name_exist? @options[:setup]
  response = upgrade_or_downgrade_cloudapi __method__, @options[:setup], flavour
  exit! if response
end