Class: Keel::Generators::ControllerGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/keel/controller_generator.rb

Instance Method Summary collapse

Instance Method Details

#generate_templateObject



8
9
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
38
39
# File 'lib/generators/keel/controller_generator.rb', line 8

def generate_template
  config    = Keel::GCloud::Config.new
  prompter  = Keel::GCloud::Prompter.new

  # Fetch namespaces from k8s
  namespaces = Keel::GCloud::Kubernetes::Namespace.fetch_all
  unless namespaces
    message = 'Unable to connect to Kubernetes, please try again later...'
    prompter.print message, :error
    return
  end

  # Prompt the user for the env, database url, and secret key to be used
  deploy_env    = prompter.prompt_for_namespace namespaces
  database_url  = prompter.prompt_for_database_url
  secret_key    = prompter.prompt_for_secret_key

  if deploy_env.blank? || database_url.blank? || secret_key.blank?
    message = 'Missing required parameters'
    prompter.print message, :error
    return
  end

  set_params(
    config:       config,
    env:          deploy_env,
    database_url: database_url,
    secret_key:   secret_key
  )

  template "gc-controller.yml.erb", "ops/#{@params[:app]}-controller.yml"
end