sambot 0.1.99 → 0.1.100

Sign up to get free protection for your applications and to get access to all the features.
Files changed (64) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.rubocop.yml +10 -1
  4. data/bin/sambot +3 -0
  5. data/lib/sambot.rb +12 -2
  6. data/lib/sambot/chef/cookbook.rb +8 -13
  7. data/lib/sambot/chef/kitchen.rb +6 -5
  8. data/lib/sambot/chef/metadata.rb +2 -0
  9. data/lib/sambot/chef/server.rb +21 -23
  10. data/lib/sambot/cli.rb +4 -1
  11. data/lib/sambot/commands/base_command.rb +65 -1
  12. data/lib/sambot/commands/cookbook.rb +18 -60
  13. data/lib/sambot/commands/dns.rb +45 -0
  14. data/lib/sambot/commands/instance.rb +17 -0
  15. data/lib/sambot/commands/rdp.rb +18 -0
  16. data/lib/sambot/commands/report.rb +5 -6
  17. data/lib/sambot/commands/session.rb +16 -15
  18. data/lib/sambot/commands/team.rb +16 -0
  19. data/lib/sambot/commands/workstation.rb +8 -8
  20. data/lib/sambot/config.rb +2 -0
  21. data/lib/sambot/developer_workflow/brew.rb +31 -0
  22. data/lib/sambot/developer_workflow/dns.rb +22 -11
  23. data/lib/sambot/developer_workflow/networking.rb +30 -0
  24. data/lib/sambot/developer_workflow/session.rb +90 -11
  25. data/lib/sambot/developer_workflow/tunnel.rb +15 -0
  26. data/lib/sambot/developer_workflow/vault.rb +2 -0
  27. data/lib/sambot/developer_workflow/workstation.rb +33 -15
  28. data/lib/sambot/dns/records.rb +98 -0
  29. data/lib/sambot/dns/repository.rb +51 -0
  30. data/lib/sambot/docs/cookbook/build.txt +12 -0
  31. data/lib/sambot/docs/cookbook/clean.txt +2 -0
  32. data/lib/sambot/docs/cookbook/generate.txt +5 -0
  33. data/lib/sambot/{commands/rundeck.rb → docs/cookbook/version.txt} +0 -0
  34. data/lib/sambot/docs/dns/add.txt +0 -0
  35. data/lib/sambot/docs/dns/list.txt +0 -0
  36. data/lib/sambot/docs/dns/remove.txt +0 -0
  37. data/lib/sambot/docs/dns/show.txt +0 -0
  38. data/lib/sambot/docs/instance/generate.txt +0 -0
  39. data/lib/sambot/docs/report/consistency.txt +18 -0
  40. data/lib/sambot/docs/session/start.txt +0 -0
  41. data/lib/sambot/docs/session/stop.txt +0 -0
  42. data/lib/sambot/docs/team/list.txt +0 -0
  43. data/lib/sambot/docs/workstation/configure.txt +0 -0
  44. data/lib/sambot/file_management/file_checker.rb +30 -28
  45. data/lib/sambot/file_management/template_provider.rb +8 -6
  46. data/lib/sambot/rackspace/client.rb +9 -7
  47. data/lib/sambot/rackspace/flavors.rb +3 -3
  48. data/lib/sambot/rackspace/images.rb +7 -5
  49. data/lib/sambot/rackspace/instances.rb +20 -18
  50. data/lib/sambot/runtime.rb +2 -0
  51. data/lib/sambot/ssh/config_file.rb +53 -57
  52. data/lib/sambot/ssh/config_section.rb +60 -58
  53. data/lib/sambot/ssh/parser.rb +33 -32
  54. data/lib/sambot/templates/.kitchen.yml.erb +1 -1
  55. data/lib/sambot/ui.rb +2 -0
  56. data/lib/sambot/version.rb +3 -1
  57. data/sambot.gemspec +5 -1
  58. metadata +81 -13
  59. data/bin/cookbook +0 -4
  60. data/bin/report +0 -4
  61. data/bin/rundeck +0 -4
  62. data/bin/session +0 -4
  63. data/bin/workstation +0 -4
  64. data/lib/sambot/developer_workflow/bastion_host.rb +0 -58
data/bin/cookbook DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require_relative '../lib/sambot'
4
- Sambot::Commands::Cookbook.start
data/bin/report DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require_relative '../lib/sambot'
4
- Sambot::Commands::Report.start
data/bin/rundeck DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require_relative '../lib/sambot'
4
- Sambot::Commands::Rundeck.start
data/bin/session DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require_relative '../lib/sambot'
4
- Sambot::Commands::Session.start
data/bin/workstation DELETED
@@ -1,4 +0,0 @@
1
- #!/usr/bin/env ruby
2
-
3
- require_relative '../lib/sambot'
4
- Sambot::Commands::Workstation.start
@@ -1,58 +0,0 @@
1
- require 'awesome_print'
2
- require 'process_exists'
3
-
4
- module Sambot
5
- module DeveloperWorkflow
6
- class BastionHost
7
-
8
- Parser = Sambot::Ssh::Parser
9
-
10
- def self.connect(username, password)
11
- disconnect
12
- cmd = "sshpass -p #{password} ssh -N -f -l DEV\\\\#{username} bastion "
13
- success = system(cmd)
14
- sleep(3)
15
- unless success
16
- raise ApplicationError.new('Unable to open SSH tunnels to the bastion host')
17
- end
18
- self
19
- end
20
-
21
- def self.forwards(config_file = nil)
22
- config = ConfigFile.new(config_file)
23
- []
24
- end
25
-
26
- def self.disconnect()
27
- close_tunnels(list_tunnels)
28
- end
29
-
30
- def self.close_tunnels(tunnels)
31
- if tunnels
32
- tunnels.each do |tunnel|
33
- components = tunnel.split(' ')
34
- pid = components[1].to_i
35
- parse_forwards.each do |forward|
36
- if components[8] == forward && components[9] == '(LISTEN)' && Process.exists?(pid)
37
- Process.kill('INT', pid)
38
- UI.debug("The process #{pid}, parent of the tunnel #{forward}, has been killed.")
39
- end
40
- end
41
- end
42
- end
43
- end
44
-
45
- def self.parse_forwards
46
- Parser::ENTRIES[:bastion][:LocalForward].map do |entry|
47
- "127.0.0.1:#{entry.split(' ')[0]}"
48
- end
49
- end
50
-
51
- def self.list_tunnels
52
- result = `lsof -i -n -P | grep -E '^ssh'`
53
- result.split(/\n/)
54
- end
55
-
56
- end
57
- end
58
- end