Class: App42::Command::Gpaas

Inherits:
Base
  • Object
show all
Defined in:
lib/app42/command/gpaas.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

#deleteObject

Delete App42 GPaaS setup, return true or error code/message



22
23
24
25
26
# File 'lib/app42/command/gpaas.rb', line 22

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

#downgradeObject

collect GPaaS setup name from user and proceed GPaaS downgrade request



65
66
67
68
69
70
71
72
# File 'lib/app42/command/gpaas.rb', line 65

def downgrade
 @options[:setup] = get_setup_name if @options[:setup].nil?
 print_new_line
 iaas, vm_type = get_iaas_and_vm_type @options[:setup]
 flavour = get_instance_config_for_upgrade_or_downgrade iaas, vm_type, @options[:setup], __method__.to_s if is_setup_name_exist? @options[:setup]
 response = upgrade_or_downgrade_gpaas __method__, @options[:setup], flavour
 exit! if response
end

#get_iaas_and_vm_type(setup_name) ⇒ Object

return setup details



103
104
105
106
# File 'lib/app42/command/gpaas.rb', line 103

def get_iaas_and_vm_type setup_name
  setup_details = App42::Command::Config.new.get_setup_details setup_name
  return setup_details['iaas'], setup_details['containerType'] if setup_details['success']
end

#get_instance_config(iaas, vm_type) ⇒ Object

return instance configuration



91
92
93
94
95
96
97
98
99
100
# File 'lib/app42/command/gpaas.rb', line 91

def get_instance_config  iaas, vm_type
  instance_config_hash = {}
  instance_config_type = App42::Command::Config.new.get_instance_config_type iaas, vm_type
  instance_config_type['IMList'].select {|each_instance_config| instance_config_hash["#{each_instance_config['id']}"] = each_instance_config['name']}
  instance_config = input "Select Instance Configuration", instance_config_hash.values, true

  instance_config_id = nil
  instance_config_hash.each_pair{|ic| instance_config_id = ic[0] if ic[1] == instance_config}
  return instance_config_id
end

#get_setup_typeObject

return setup type



82
83
84
85
86
87
88
# File 'lib/app42/command/gpaas.rb', line 82

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 GPaaS setup



109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/app42/command/gpaas.rb', line 109

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, 'gpaas', "#{@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 GPaaS setup name from user and proceed GPaaS restart request



46
47
48
49
50
51
52
# File 'lib/app42/command/gpaas.rb', line 46

def restart
  # ans = ask Paint["#{Message::URL_WILL_CHANGE}", :red], :default => true ; print_new_line
  # ans == true ? (@options[:setup] = get_setup_name if @options[:setup].nil?) : (exit!)
  @options[:setup] = get_setup_name if @options[:setup].nil?
  response = gpaas_operation __method__, @options[:setup] if is_setup_name_exist? @options[:setup]
  exit! if response
end

#setupObject

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



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

def setup
  setup_name = get_setup_name_and_check_setup_url_availability if App42::Command::Auth.is_authorize_for_dedicated?
  vm_type = 'dedicated' # GPaaS need only dedicated server
  iaas = get_iaas_providers vm_type
  setup_type = get_setup_type
  flavour = get_instance_config  iaas, vm_type
  ans = ask Paint["#{Message::ADD_STATIC_IP}", :red], :default => true ; print_new_line
  setup_cloud_api_res = App42::Command::Base.new.create_gpaas_setup setup_name, iaas, vm_type, setup_type, flavour, ans
  exit! if setup_cloud_api_res
end

#setupsObject

List all setups



127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/app42/command/gpaas.rb', line 127

def setups
  query_params = params
  setups = build_get_request query_params, 'gpaas', 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 GPaaS setup name from user and proceed GPaaS start request



29
30
31
32
33
# File 'lib/app42/command/gpaas.rb', line 29

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

#stopObject



35
36
37
38
39
40
41
42
43
# File 'lib/app42/command/gpaas.rb', line 35

def stop
  @options[:setup] = get_setup_name if @options[:setup].nil?
  unless is_static_ip_assigned? @options[:setup]
    ans = ask Paint["#{Message::URL_WILL_CHANGE}", :red], :default => true ; print_new_line
    ans == true ? (@options[:setup] = get_setup_name if @options[:setup].nil?) : (exit!)
  end
  response = gpaas_operation __method__, @options[:setup] if is_setup_name_exist? @options[:setup]
  exit! if response
end

#updateObject

Update GPaaS Dashboard



75
76
77
78
79
# File 'lib/app42/command/gpaas.rb', line 75

def update
  @options[:setup] = get_setup_name if @options[:setup].nil?
  print_new_line
  response = update_gpaas_dashboard @options[:setup] if is_setup_name_exist? @options[:setup]
end

#upgradeObject

collect GPaaS setup name from user and proceed GPaaS upgrade request



55
56
57
58
59
60
61
62
# File 'lib/app42/command/gpaas.rb', line 55

def upgrade
  @options[:setup] = get_setup_name if @options[:setup].nil?
  print_new_line
  iaas, vm_type = get_iaas_and_vm_type @options[:setup]
  flavour = get_instance_config_for_upgrade_or_downgrade iaas, vm_type, @options[:setup], __method__.to_s if is_setup_name_exist? @options[:setup]
  response = upgrade_or_downgrade_gpaas __method__, @options[:setup], flavour
  exit! if response
end