dogids-cli 0.0.19 → 0.0.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80ec59b468779ec530624feea1a184e87c5eeccb
4
- data.tar.gz: f652dddd35193576e00b7ee519e345c282397cda
3
+ metadata.gz: 648c482712018162c9cf439800a4bfb1e9a867f1
4
+ data.tar.gz: 7a1af27153ecce16015f4768470c1409f84fb6e2
5
5
  SHA512:
6
- metadata.gz: e77351ed55840edeec18537708a8862f7dfcaaaf90b36a99c73762fcccd1482c3edda42ce060c7ee73494ab0a25db7bb058d923331a466f9ef136edb28785f8f
7
- data.tar.gz: bc8998bb6d8e5706414f0a6e13c08ab251a04d58d459eb0355a173a1ffcb1c3b989cead1a06794a50bbdc8c53bd296b3d3ffefb76cf397aee0908fa1cec4b087
6
+ metadata.gz: 3cfdbe776f64deeb3f5dde4317e87856ee57ecbd50a92f808fae8daeca4132d446af03e1db71b53c8ee8c5ea254cf3ca3b4d7184a46c6836f103cf2c21402ace
7
+ data.tar.gz: 5089f64b096667de2d450c8c48a2820417f62d79a2d0dbee99e875252335bb7c7ea48e27cf3d544d1da2b9b9b28e1d892daeaba7b48a98d769afd5109eb90791
data/dogids_cli.gemspec CHANGED
@@ -5,7 +5,7 @@ require "dogids/version"
5
5
 
6
6
  Gem::Specification.new do |spec|
7
7
  spec.name = "dogids-cli"
8
- spec.version = "0.0.19"
8
+ spec.version = "0.0.20"
9
9
  spec.authors = ["Jaryd Krishnan"]
10
10
  spec.email = ["jaryd@dogids.com"]
11
11
  spec.summary = "Command line tool for dogIDs tasks"
data/lib/dogids.rb CHANGED
@@ -2,5 +2,6 @@ require_relative "dogids/base"
2
2
  require_relative "dogids/cache"
3
3
  require_relative "dogids/config"
4
4
  require_relative "dogids/deploy"
5
+ require_relative "dogids/reload"
5
6
  require_relative "dogids/ssh"
6
7
  require_relative "dogids/version"
data/lib/dogids/base.rb CHANGED
@@ -41,26 +41,31 @@ module Dogids
41
41
 
42
42
  private
43
43
 
44
- def get_config_url(location)
44
+ # Get configuration for environment and location
45
+ # @param [string] environment
46
+ # @param [string] location (Optional)
47
+ def get_config_url(environment, location = nil)
45
48
  config_file = set_config_location
46
- if config_file.key?("#{location}") then
47
- return config_file["#{location}"]
49
+ if location
50
+ return config_file[environment][location] if config_file[environment].has_key?(location)
51
+ elsif config_file.has_key?(environment)
52
+ return config_file[environment]
48
53
  else
49
54
  say("URL/IP hasn't been set for #{location} \n")
50
55
  say("Please set this first by running: \n")
51
- say("dogids config #{location}","\e[32m")
56
+ say("dogids config:#{environment} #{location}","\e[32m")
52
57
  return false
53
58
  end
54
59
  end
55
60
 
56
61
  # Print a heading to the terminal for commands that are going to be run.
57
- # @param heading [String]
62
+ # @param [String] heading
58
63
  def print_heading(heading)
59
64
  puts "-----> #{heading}"
60
65
  end
61
66
 
62
67
  # Print a message to the terminal about a command that's going to run.
63
- # @param command [String]
68
+ # @param [String] command
64
69
  def print_command(command)
65
70
  command.split("\n").each do |line|
66
71
  print_wrapped(line, indent: 7)
@@ -68,14 +73,13 @@ module Dogids
68
73
  end
69
74
 
70
75
  # Run a command with Bash after first printing the command to the terminal.
71
- # @param command [String]
76
+ # @param [String] command
72
77
  def run_command(command)
73
78
  print_command(command)
74
79
  `#{command}`
75
80
  end
76
81
 
77
82
  # Access local configuration file
78
- # @param file [String]
79
83
  def set_config_location
80
84
  config = UserConfig.new('.dogids')
81
85
  config['conf.yaml']
data/lib/dogids/cache.rb CHANGED
@@ -10,23 +10,28 @@ module Dogids
10
10
  puts " "
11
11
  puts "Cache Commands:"
12
12
  puts " "
13
- puts " dogids cache:dev clear # Clear whole cache for the dogids.dev storefront"
14
- puts " dogids cache:dev category # Clear category cache for the dogids.dev storefront"
15
- puts " dogids cache:dev css # Clear CSS cache for the dogids.dev storefront"
16
- puts " dogids cache:dev javascript # Clear Javascript cache for the dogids.dev storefront"
17
- puts " dogids cache:dev qa # Clear Q&A cache for the dogids.dev storefront"
13
+ puts " Use the following format:"
14
+ puts " dogids cache:<environment> <machine> <action>"
18
15
  puts " "
19
- puts " dogids cache:staging clear # Clear whole cache for the staging.dogids.com storefront"
20
- puts " dogids cache:staging category # Clear category cache for the staging.dogids.com storefront"
21
- puts " dogids cache:staging css # Clear CSS cache for the staging.dogids.com storefront"
22
- puts " dogids cache:staging javascript # Clear Javascript cache for the staging.dogids.com storefront"
23
- puts " dogids cache:staging qa # Clear Q&A cache for the staging.dogids.com storefront"
16
+ puts " Here are some basic examples:"
24
17
  puts " "
25
- puts " dogids cache:production clear # Clear whole cache for the dogids.com storefront"
26
- puts " dogids cache:production category # Clear category cache for the dogids.dev storefront"
27
- puts " dogids cache:production css # Clear CSS cache for the production.dogids.com storefront"
28
- puts " dogids cache:production javascript # Clear Javascript cache for the production.dogids.com storefront"
29
- puts " dogids cache:production qa # Clear Q&A cache for the dogids.com storefront"
18
+ puts " dogids cache:dev dev clear # Clear whole cache for the dogids.dev storefront"
19
+ puts " dogids cache:dev dev category # Clear category cache for the dogids.dev storefront"
20
+ puts " dogids cache:dev dev css # Clear CSS cache for the dogids.dev storefront"
21
+ puts " dogids cache:dev dev javascript # Clear Javascript cache for the dogids.dev storefront"
22
+ puts " dogids cache:dev dev qa # Clear Q&A cache for the dogids.dev storefront"
23
+ puts " "
24
+ puts " dogids cache:staging staging clear # Clear whole cache for the staging.dogids.com storefront"
25
+ puts " dogids cache:staging staging category # Clear category cache for the staging.dogids.com storefront"
26
+ puts " dogids cache:staging staging css # Clear CSS cache for the staging.dogids.com storefront"
27
+ puts " dogids cache:staging staging javascript # Clear Javascript cache for the staging.dogids.com storefront"
28
+ puts " dogids cache:staging staging qa # Clear Q&A cache for the staging.dogids.com storefront"
29
+ puts " "
30
+ puts " dogids cache:production web clear # Clear whole cache for the dogids.com storefront"
31
+ puts " dogids cache:production web category # Clear category cache for the dogids.dev storefront"
32
+ puts " dogids cache:production web css # Clear CSS cache for the production.dogids.com storefront"
33
+ puts " dogids cache:production web javascript # Clear Javascript cache for the production.dogids.com storefront"
34
+ puts " dogids cache:production web qa # Clear Q&A cache for the dogids.com storefront"
30
35
  puts " "
31
36
  end
32
37
  end
@@ -4,36 +4,36 @@ require "thor"
4
4
  module Dogids
5
5
  class Cli < Thor
6
6
  no_commands do
7
- def cache_dev(vm_name = nil)
8
- ssh_address = get_config_url("dev")
7
+ def cache_dev(vm_name = nil, cache = nil)
8
+ ssh_address = get_config_url("dev",vm_name)
9
9
  return if ssh_address == false
10
10
 
11
- case vm_name
11
+ case cache
12
12
  when "category"
13
- print_heading("Checking the category reviews cache")
13
+ print_heading("Checking the category items cache")
14
14
  Net::SSH.start("#{ssh_address}", "dogids") do |ssh|
15
15
  ssh.exec!(count_category_cache_files_dev_command) do |_channel, _stream, data|
16
16
  print_command("Current category reviews: " + data)
17
17
  end
18
- if yes?("-----> Continue with clearing the cache? [no]")
19
- print_heading("Clearing the development category cache")
18
+ if yes?("-----> Continue with clearing the DEV category items cache? [no]")
19
+ print_heading("Clearing the development category items cache")
20
20
  ssh.exec!(clear_category_cache_dev_command) do |_channel, _stream, data|
21
21
  end
22
22
  end
23
23
  end
24
24
  when "clear"
25
25
  print_heading("Let's start clearing the entire dev cache")
26
- cache_dev("category")
27
- cache_dev("qa")
28
- cache_dev("javascript")
29
- cache_dev("css")
26
+ cache_dev(vm_name,"category")
27
+ cache_dev(vm_name,"qa")
28
+ cache_dev(vm_name,"javascript")
29
+ cache_dev(vm_name,"css")
30
30
  when "css"
31
31
  print_heading("Checking the CSS cache")
32
32
  Net::SSH.start("#{ssh_address}", "dogids") do |ssh|
33
33
  ssh.exec!(count_css_cache_files_dev_command) do |_channel, _stream, data|
34
34
  print_command("Current CSS cache files: " + data)
35
35
  end
36
- if yes?("-----> Continue with clearing the CSS cache? [no]")
36
+ if yes?("-----> Continue with clearing the DEV CSS cache? [no]")
37
37
  print_heading("Clearing the development CSS cache")
38
38
  ssh.exec!(clear_css_cache_dev_command) do |_channel, _stream, data|
39
39
  end
@@ -45,7 +45,7 @@ module Dogids
45
45
  ssh.exec!(count_javascript_cache_files_dev_command) do |_channel, _stream, data|
46
46
  print_command("Current Javascript cache files: " + data)
47
47
  end
48
- if yes?("-----> Continue with clearing the Javascript cache? [no]")
48
+ if yes?("-----> Continue with clearing the DEV Javascript cache? [no]")
49
49
  print_heading("Clearing the development Javascript cache")
50
50
  ssh.exec!(clear_javascript_cache_dev_command) do |_channel, _stream, data|
51
51
  end
@@ -57,8 +57,8 @@ module Dogids
57
57
  ssh.exec!(count_qa_cache_files_dev_command) do |_channel, _stream, data|
58
58
  print_command("Current category reviews: " + data)
59
59
  end
60
- if yes?("-----> Continue with clearing this cache? [no]")
61
- print_heading("Clearing the development QA cache")
60
+ if yes?("-----> Continue with clearing the DEV product Q&A cache? [no]")
61
+ print_heading("Clearing the development Q&A cache")
62
62
  ssh.exec!(clear_qa_cache_dev_command) do |_channel, _stream, data|
63
63
  end
64
64
  end
@@ -4,36 +4,36 @@ require "thor"
4
4
  module Dogids
5
5
  class Cli < Thor
6
6
  no_commands do
7
- def cache_production(vm_name = nil)
8
- ssh_address = get_config_url("web")
7
+ def cache_production(vm_name = nil, cache = nil)
8
+ ssh_address = get_config_url("production",vm_name)
9
9
  return if ssh_address == false
10
10
 
11
- case vm_name
11
+ case cache
12
12
  when "category"
13
- print_heading("Checking the category reviews cache")
13
+ print_heading("Checking the category items cache")
14
14
  Net::SSH.start("#{ssh_address}", "dogids") do |ssh|
15
15
  ssh.exec!(count_category_cache_files_production_command) do |_channel, _stream, data|
16
16
  print_command("Current category reviews: " + data)
17
17
  end
18
- if yes?("-----> Continue with clearing the cache? [no]")
19
- print_heading("Clearing the production category cache")
18
+ if yes?("-----> Continue with clearing the PRODUCTION category items cache? [no]")
19
+ print_heading("Clearing the production category items cache")
20
20
  ssh.exec!(clear_category_cache_production_command) do |_channel, _stream, data|
21
21
  end
22
22
  end
23
23
  end
24
24
  when "clear"
25
25
  print_heading("Let's start clearing the entire production cache")
26
- cache_production("category")
27
- cache_production("qa")
28
- cache_dev("javascript")
29
- cache_dev("css")
26
+ cache_production(vm_name,"category")
27
+ cache_production(vm_name,"qa")
28
+ cache_production(vm_name,"javascript")
29
+ cache_production(vm_name,"css")
30
30
  when "css"
31
31
  print_heading("Checking the CSS cache")
32
32
  Net::SSH.start("#{ssh_address}", "dogids") do |ssh|
33
33
  ssh.exec!(count_css_cache_files_production_command) do |_channel, _stream, data|
34
34
  print_command("Current CSS cache files: " + data)
35
35
  end
36
- if yes?("-----> Continue with clearing the CSS cache? [no]")
36
+ if yes?("-----> Continue with clearing the PRODUCTION CSS cache? [no]")
37
37
  print_heading("Clearing the development CSS cache")
38
38
  ssh.exec!(clear_css_cache_production_command) do |_channel, _stream, data|
39
39
  end
@@ -45,7 +45,7 @@ module Dogids
45
45
  ssh.exec!(count_javascript_cache_files_production_command) do |_channel, _stream, data|
46
46
  print_command("Current Javascript cache files: " + data)
47
47
  end
48
- if yes?("-----> Continue with clearing the Javascript cache? [no]")
48
+ if yes?("-----> Continue with clearing the PRODUCTION Javascript cache? [no]")
49
49
  print_heading("Clearing the development Javascript cache")
50
50
  ssh.exec!(clear_javascript_cache_production_command) do |_channel, _stream, data|
51
51
  end
@@ -57,8 +57,8 @@ module Dogids
57
57
  ssh.exec!(count_qa_cache_files_production_command) do |_channel, _stream, data|
58
58
  print_command("Current category reviews: " + data)
59
59
  end
60
- if yes?("-----> Continue with clearing this cache? [no]")
61
- print_heading("Clearing the production QA cache")
60
+ if yes?("-----> Continue with clearing the PRODUCTION product Q&A cache? [no]")
61
+ print_heading("Clearing the production product Q&A cache")
62
62
  ssh.exec!(clear_qa_cache_production_command) do |_channel, _stream, data|
63
63
  end
64
64
  end
@@ -4,17 +4,17 @@ require "thor"
4
4
  module Dogids
5
5
  class Cli < Thor
6
6
  no_commands do
7
- def cache_staging(vm_name = nil)
8
- ssh_address = get_config_url("staging")
7
+ def cache_staging(vm_name = nil, cache = nil)
8
+ ssh_address = get_config_url("staging",vm_name)
9
9
  return if ssh_address == false
10
- case vm_name
10
+ case cache
11
11
  when "category"
12
12
  print_heading("Checking the category reviews cache")
13
13
  Net::SSH.start("#{ssh_address}", "dogids") do |ssh|
14
14
  ssh.exec!(count_category_cache_files_staging_command) do |_channel, _stream, data|
15
15
  print_command("Current category reviews: " + data)
16
16
  end
17
- if yes?("-----> Continue with clearing the cache? [no]")
17
+ if yes?("-----> Continue with clearing the STAGING category item cache? [no]")
18
18
  print_heading("Clearing the staging category cache")
19
19
  ssh.exec!(clear_category_cache_staging_command) do |_channel, _stream, data|
20
20
  end
@@ -22,17 +22,17 @@ module Dogids
22
22
  end
23
23
  when "clear"
24
24
  print_heading("Let's start clearing the entire staging cache")
25
- cache_staging("category")
26
- cache_staging("qa")
27
- cache_dev("javascript")
28
- cache_dev("css")
25
+ cache_staging(vm_name,"category")
26
+ cache_staging(vm_name,"qa")
27
+ cache_staging(vm_name,"javascript")
28
+ cache_staging(vm_name,"css")
29
29
  when "css"
30
30
  print_heading("Checking the CSS cache")
31
31
  Net::SSH.start("#{ssh_address}", "dogids") do |ssh|
32
32
  ssh.exec!(count_css_cache_files_staging_command) do |_channel, _stream, data|
33
33
  print_command("Current CSS cache files: " + data)
34
34
  end
35
- if yes?("-----> Continue with clearing the CSS cache? [no]")
35
+ if yes?("-----> Continue with clearing the STAGING CSS cache? [no]")
36
36
  print_heading("Clearing the development CSS cache")
37
37
  ssh.exec!(clear_css_cache_staging_command) do |_channel, _stream, data|
38
38
  end
@@ -44,7 +44,7 @@ module Dogids
44
44
  ssh.exec!(count_javascript_cache_files_staging_command) do |_channel, _stream, data|
45
45
  print_command("Current Javascript cache files: " + data)
46
46
  end
47
- if yes?("-----> Continue with clearing the Javascript cache? [no]")
47
+ if yes?("-----> Continue with clearing the STAGING Javascript cache? [no]")
48
48
  print_heading("Clearing the development Javascript cache")
49
49
  ssh.exec!(clear_javascript_cache_staging_command) do |_channel, _stream, data|
50
50
  end
@@ -56,7 +56,7 @@ module Dogids
56
56
  ssh.exec!(count_qa_cache_files_staging_command) do |_channel, _stream, data|
57
57
  print_command("Current category reviews: " + data)
58
58
  end
59
- if yes?("-----> Continue with clearing this cache? [no]")
59
+ if yes?("-----> Continue with clearing the STAGING product Q&A cache? [no]")
60
60
  print_heading("Clearing the staging QA cache")
61
61
  ssh.exec!(clear_qa_cache_staging_command) do |_channel, _stream, data|
62
62
  end
data/lib/dogids/config.rb CHANGED
@@ -9,51 +9,68 @@ module Dogids
9
9
  case command
10
10
  when "list"
11
11
  list
12
- when "admin"
13
- set_config("admin")
14
- when "db"
15
- set_config("db")
16
- when "dev"
17
- set_config("dev")
18
- when "staging"
19
- set_config("staging")
20
- when "web"
21
- set_config("web")
22
- when "worker"
23
- set_config("worker")
24
12
  else
25
13
  puts " "
26
14
  puts "Config Commands:"
27
15
  puts " "
16
+ puts " Use the following so set environments:"
17
+ puts " dogids config:<environment> <machine>"
18
+ puts " "
28
19
  puts " dogids config list # List all current configurations"
29
20
  puts " "
30
- puts " dogids config admin # Set URL/IP for Admin"
31
- puts " dogids config db # Set URL/IP for DB"
32
- puts " dogids config dev # Set URL/IP for Dev"
33
- puts " dogids config staging # Set URL/IP for Staging"
34
- puts " dogids config web # Set URL/IP for Web"
35
- puts " dogids config worker # Set URL/IP for Worker"
21
+ puts " dogids config:dev # Set URL/IP for Development Machines"
22
+ puts " dogids config:production # Set URL/IP for Production Machines"
23
+ puts " dogids config:staging # Set URL/IP for Staging machines"
36
24
  puts " "
37
25
  end
38
26
  end
39
27
 
40
28
  no_commands do
29
+
30
+ # Config dev environment
31
+ # @param [string] location
32
+ def config_dev(location = nil)
33
+ location ? set_config("dev",location) : config
34
+ end
35
+
36
+ # Config staging environment
37
+ # @param [string] location
38
+ def config_staging(location = nil)
39
+ location ? set_config("staging",location) : config
40
+ end
41
+
42
+ # Config production environment
43
+ # @param [string] location
44
+ def config_production(location = nil)
45
+ location ? set_config("production",location) : config
46
+ end
47
+
41
48
  def list
42
49
  dogids_config = set_config_location
43
50
  if dogids_config.any? then
44
- say("The following configurations are set: \n \n")
45
- print_table(dogids_config)
51
+ say("The following configurations are set: \n")
52
+ dogids_config.each do |environment, locations|
53
+ say("\n##### #{environment}")
54
+ print_table(locations)
55
+ end
46
56
  else
47
57
  say("No configuration values have been set. Here's the command list:")
48
58
  config
49
59
  end
50
60
  end
51
61
 
52
- def set_config(location)
62
+ # Set configuration files based on environment and location
63
+ # @param [string] environment
64
+ # @param [string] location
65
+ def set_config(environment,location)
53
66
  dogids_config = set_config_location
67
+ environment_configuration = Hash.new
68
+ if dogids_config["#{environment}"]
69
+ environment_configuration = dogids_config["#{environment}"].to_hash
70
+ end
54
71
  current_value = ""
55
- if dogids_config.key?("#{location}") then
56
- current_value = dogids_config["#{location}"]
72
+ if dogids_config["#{environment}"] != nil && dogids_config["#{environment}"]["#{location}"] != nil then
73
+ current_value = get_config_url(environment, location)
57
74
  say("Current #{location} URL/IP: #{current_value} \n","\e[32m")
58
75
  set_new = yes?("-------> Do you want to enter a new value?[no]")
59
76
  return if set_new != true
@@ -71,7 +88,8 @@ module Dogids
71
88
  confirm = yes?("-------> Do you want to #{confirm_string}?[no]")
72
89
  return if confirm != true
73
90
  end
74
- dogids_config["#{location}"] = new_value
91
+ environment_configuration[location] = new_value
92
+ dogids_config["#{environment}"] = environment_configuration
75
93
  dogids_config.save
76
94
  say("The new URL/IP for #{location}: #{new_value}","\e[32m")
77
95
  end
@@ -6,41 +6,53 @@ module Dogids
6
6
  no_commands do
7
7
  def deploy_staging
8
8
  print_heading("Deploying dogids.com site to staging server")
9
- ssh_address = get_config_url("staging")
10
9
 
11
- Net::SSH.start("#{ssh_address}", "dogids") do |ssh|
12
- print_command("Checking the current git status")
13
- ssh.exec!(staging_git_status_command) do |_channel, _stream, data|
14
- print_command(data)
15
- end
16
10
 
17
- current_branch = ssh.exec!("cd /home/dogids/apps/dogids.com && git rev-parse --abbrev-ref HEAD").strip
11
+ server_addresses = [
12
+ "staging",
13
+ "staging2"
14
+ ]
15
+
16
+ server_addresses.each do |server_address|
17
+
18
+ ssh_address = get_config_url("staging",server_address)
19
+ next if ssh_address == false
18
20
 
19
- print_heading("Current Branch: #{current_branch}")
20
- print_heading("Available Branches:")
21
- ssh.exec!("cd /home/dogids/apps/dogids.com && git branch -r --no-merged master") do |_channel, _stream, data|
22
- print_command("master")
23
- data.split("\n").each do |branch|
24
- print_command(branch.gsub("origin/", ""))
21
+ Net::SSH.start("#{ssh_address}", "dogids") do |ssh|
22
+ print_command("Checking the current git status")
23
+ ssh.exec!(staging_git_status_command) do |_channel, _stream, data|
24
+ print_command(data)
25
25
  end
26
- end
27
26
 
28
- branch = ask("-----> Which branch would you like to deploy?").strip
29
- return print_command("Fine, be that way.") if branch.length == 0
27
+ current_branch = ssh.exec!("cd /home/dogids/apps/dogids.com && git rev-parse --abbrev-ref HEAD").strip
30
28
 
31
- print_command("Pulling latest from #{branch}")
32
- ssh.exec!(staging_git_pull_command(branch)) do |_channel, _stream, data|
33
- print_command(data)
34
- end
29
+ print_heading("Current Branch: #{current_branch}")
30
+ print_heading("Available Branches:")
31
+ ssh.exec!("cd /home/dogids/apps/dogids.com && git branch -r --no-merged master") do |_channel, _stream, data|
32
+ print_command("master")
33
+ data.split("\n").each do |branch|
34
+ print_command(branch.gsub("origin/", ""))
35
+ end
36
+ end
35
37
 
36
- print_command("Updating file permissions")
37
- ssh.exec!(web_update_permissions_command) do |_channel, _stream, data|
38
- print_command(data)
38
+ branch = ask("-----> Which branch would you like to deploy?").strip
39
+ break print_command("Fine, be that way.") if branch.length == 0
40
+
41
+ print_command("Pulling latest from #{branch}")
42
+ ssh.exec!(staging_git_pull_command(branch)) do |_channel, _stream, data|
43
+ print_command(data)
44
+ end
45
+
46
+ print_command("Updating file permissions")
47
+ ssh.exec!(web_update_permissions_command) do |_channel, _stream, data|
48
+ print_command(data)
49
+ end
39
50
  end
40
51
  end
41
52
 
42
53
  print_heading("Done.")
43
54
  end
55
+
44
56
  end
45
57
 
46
58
  private
@@ -9,11 +9,12 @@ module Dogids
9
9
 
10
10
  server_addresses = [
11
11
  "web",
12
+ "web2",
12
13
  "admin"
13
14
  ]
14
15
 
15
16
  server_addresses.each do |server_address|
16
- ssh_address = get_config_url("#{server_address}")
17
+ ssh_address = get_config_url("production","#{server_address}")
17
18
  next if ssh_address == false
18
19
 
19
20
  print_command("Server(#{server_address}): #{ssh_address}")
@@ -5,7 +5,7 @@ module Dogids
5
5
  class Cli < Thor
6
6
  no_commands do
7
7
  def deploy_worker
8
- ssh_address = get_config_url("worker")
8
+ ssh_address = get_config_url("production","worker")
9
9
  return if ssh_address == false
10
10
 
11
11
  print_heading("Deploying dogids-backgrounder")
@@ -0,0 +1,39 @@
1
+ require "thor"
2
+ module Dogids
3
+ class Cli < Thor
4
+ desc "reload", "Reloads the specified machine. Defaults to development"
5
+
6
+ # Reload the specified environment
7
+ # TODO add environments
8
+ # @param [string] app_name
9
+ def reload(app_name = nil)
10
+ if yes?("-----> Reload development? [no]")
11
+ reload_development_machine
12
+ else
13
+ update_vagrant_box if yes?("-----> Update Vagrant Box? (NOT RECOMMENDED) [no]")
14
+ end
15
+ end
16
+
17
+ no_commands do
18
+
19
+ # Upgrade local vagrant box (default is ubuntu/trusty64)
20
+ def update_vagrant_box
21
+ say("-----> Updating the vagrant box...","\e[32m")
22
+ system("cd ~/dogids-vagrant && vagrant box update")
23
+ system("cd ~/dogids-vagrant && vagrant box list")
24
+ if yes?("-----> Remove old boxes? (NOT RECOMMENDED) [no]")
25
+ system("cd ~/dogids-vagrant && vagrant box remove --all")
26
+ system("cd ~/dogids-vagrant && vagrant box add ubuntu/trusty64")
27
+ end
28
+ reload_development_machine
29
+ end
30
+
31
+ # Reloads development machine
32
+ def reload_development_machine
33
+ say("-----> Reloading the development machine...","\e[32m")
34
+ system("cd ~/dogids-vagrant && vagrant reload")
35
+ end
36
+
37
+ end
38
+ end
39
+ end
data/lib/dogids/ssh.rb CHANGED
@@ -9,21 +9,25 @@ module Dogids
9
9
  def ssh(vm_name = nil)
10
10
  case vm_name
11
11
  when "dev"
12
- ssh_development(vm_name)
12
+ ssh_dev(vm_name)
13
13
  when "staging"
14
14
  ssh_staging(vm_name)
15
15
  else
16
16
  puts "Development SSH Commands:"
17
- puts " dogids ssh dev # SSH into local development VM"
17
+ puts " dogids ssh:dev dev # SSH into local development VM"
18
+ puts " dogids ssh:dev lb # SSH into local development LB"
18
19
  puts " "
19
20
  puts "Staging SSH Commands:"
20
- puts " dogids ssh staging # SSH into staging Apache/PHP/MySQL VM"
21
+ puts " dogids ssh:staging lb # SSH into staging LB"
22
+ puts " dogids ssh:staging staging # SSH into staging Apache/PHP/MySQL VM"
21
23
  puts " "
22
24
  puts "Production SSH Commands:"
23
- puts " dogids ssh:production admin # SSH into VM for long running admin processes"
24
- puts " dogids ssh:production db # SSH into production MySQL/Redis VM"
25
- puts " dogids ssh:production web # SSH into production Apache/PHP VM"
26
- puts " dogids ssh:production worker # SSH into production Ruby/Sidekiq VM"
25
+ puts " dogids ssh:production lb # SSH into production LB"
26
+ puts " dogids ssh:production railgun # SSH into production railgun instance"
27
+ puts " dogids ssh:production admin # SSH into VM for long running admin processes"
28
+ puts " dogids ssh:production db # SSH into production MySQL/Redis VM"
29
+ puts " dogids ssh:production web # SSH into production Apache/PHP VM"
30
+ puts " dogids ssh:production worker # SSH into production Ruby/Sidekiq VM"
27
31
  puts " "
28
32
  end
29
33
  end
@@ -3,11 +3,22 @@ require "thor"
3
3
  module Dogids
4
4
  class Cli < Thor
5
5
  no_commands do
6
- def ssh_development(vm_name = nil)
7
- if vm_name == "dev"
8
- ssh_address = get_config_url(vm_name)
9
- puts "Running: ssh -R 52698:localhost:52698 dogids@#{ssh_address}"
10
- exec("ssh -R 52698:localhost:52698 dogids@#{ssh_address}")
6
+ def ssh_dev(vm_name = nil)
7
+ dev_machines = get_config_url("dev")
8
+ if dev_machines.has_key?(vm_name)
9
+ ssh_address = get_config_url("dev",vm_name)
10
+ if vm_name == "lb"
11
+ if yes?("----> Have you set up the dogIDs user for the development LB? [no]")
12
+ puts "Running: dogids@#{ssh_address}"
13
+ exec("ssh dogids@#{ssh_address}")
14
+ else
15
+ puts "Running: `cd ~/dogids-vagrant && vagrant ssh loadbalancer`"
16
+ exec("cd ~/dogids-vagrant && vagrant ssh loadbalancer")
17
+ end
18
+ else
19
+ puts "Running: `ssh -R 52698:localhost:52698 dogids@#{ssh_address}`"
20
+ exec("ssh -R 52698:localhost:52698 dogids@#{ssh_address}")
21
+ end
11
22
  else
12
23
  ssh
13
24
  end
@@ -4,28 +4,13 @@ module Dogids
4
4
  class Cli < Thor
5
5
  no_commands do
6
6
  def ssh_production(vm_name = nil)
7
- case vm_name
8
- when "admin"
9
- ssh_address = get_config_url(vm_name)
10
- if ssh_address then
11
- puts "Running: `ssh -R 52698:localhost:52698 dogids@#{ssh_address}`"
12
- exec("ssh -R 52698:localhost:52698 dogids@#{ssh_address}")
13
- end
14
- when "db"
15
- ssh_address = get_config_url(vm_name)
16
- if ssh_address then
17
- puts "Running: `ssh -R 52698:localhost:52698 dogids@#{ssh_address}`"
18
- exec("ssh -R 52698:localhost:52698 dogids@#{ssh_address}")
19
- end
20
- when "web"
21
- ssh_address = get_config_url(vm_name)
22
- if ssh_address then
23
- puts "Running: `ssh -R 52698:localhost:52698 dogids@#{ssh_address}`"
24
- exec("ssh -R 52698:localhost:52698 dogids@#{ssh_address}")
25
- end
26
- when "worker"
27
- ssh_address = get_config_url(vm_name)
28
- if ssh_address then
7
+ production_machines = get_config_url("production")
8
+ if production_machines.has_key?(vm_name)
9
+ ssh_address = get_config_url("production",vm_name)
10
+ if vm_name == "lb" || vm_name == "railgun"
11
+ puts "Running: `ssh root@#{ssh_address}`"
12
+ exec("ssh root@#{ssh_address}")
13
+ else
29
14
  puts "Running: `ssh -R 52698:localhost:52698 dogids@#{ssh_address}`"
30
15
  exec("ssh -R 52698:localhost:52698 dogids@#{ssh_address}")
31
16
  end
@@ -4,10 +4,14 @@ module Dogids
4
4
  class Cli < Thor
5
5
  no_commands do
6
6
  def ssh_staging(vm_name = nil)
7
- if vm_name == "staging"
8
- ssh_address = get_config_url(vm_name)
9
- if ssh_address then
10
- puts "Running: ssh -R 52698:localhost:52698 dogids@#{ssh_address}"
7
+ staging_machines = get_config_url("staging")
8
+ if staging_machines.has_key?(vm_name)
9
+ ssh_address = get_config_url("staging",vm_name)
10
+ if vm_name == "lb"
11
+ puts "Running: `ssh root@#{ssh_address}`"
12
+ exec("ssh root@#{ssh_address}")
13
+ else
14
+ puts "Running: `ssh -R 52698:localhost:52698 dogids@#{ssh_address}`"
11
15
  exec("ssh -R 52698:localhost:52698 dogids@#{ssh_address}")
12
16
  end
13
17
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dogids-cli
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.19
4
+ version: 0.0.20
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jaryd Krishnan
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-20 00:00:00.000000000 Z
11
+ date: 2016-07-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-ssh
@@ -78,6 +78,7 @@ files:
78
78
  - lib/dogids/deploy/staging.rb
79
79
  - lib/dogids/deploy/web.rb
80
80
  - lib/dogids/deploy/worker.rb
81
+ - lib/dogids/reload.rb
81
82
  - lib/dogids/ssh.rb
82
83
  - lib/dogids/ssh/development.rb
83
84
  - lib/dogids/ssh/production.rb