sambot 0.1.99 → 0.1.100
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +1 -0
- data/.rubocop.yml +10 -1
- data/bin/sambot +3 -0
- data/lib/sambot.rb +12 -2
- data/lib/sambot/chef/cookbook.rb +8 -13
- data/lib/sambot/chef/kitchen.rb +6 -5
- data/lib/sambot/chef/metadata.rb +2 -0
- data/lib/sambot/chef/server.rb +21 -23
- data/lib/sambot/cli.rb +4 -1
- data/lib/sambot/commands/base_command.rb +65 -1
- data/lib/sambot/commands/cookbook.rb +18 -60
- data/lib/sambot/commands/dns.rb +45 -0
- data/lib/sambot/commands/instance.rb +17 -0
- data/lib/sambot/commands/rdp.rb +18 -0
- data/lib/sambot/commands/report.rb +5 -6
- data/lib/sambot/commands/session.rb +16 -15
- data/lib/sambot/commands/team.rb +16 -0
- data/lib/sambot/commands/workstation.rb +8 -8
- data/lib/sambot/config.rb +2 -0
- data/lib/sambot/developer_workflow/brew.rb +31 -0
- data/lib/sambot/developer_workflow/dns.rb +22 -11
- data/lib/sambot/developer_workflow/networking.rb +30 -0
- data/lib/sambot/developer_workflow/session.rb +90 -11
- data/lib/sambot/developer_workflow/tunnel.rb +15 -0
- data/lib/sambot/developer_workflow/vault.rb +2 -0
- data/lib/sambot/developer_workflow/workstation.rb +33 -15
- data/lib/sambot/dns/records.rb +98 -0
- data/lib/sambot/dns/repository.rb +51 -0
- data/lib/sambot/docs/cookbook/build.txt +12 -0
- data/lib/sambot/docs/cookbook/clean.txt +2 -0
- data/lib/sambot/docs/cookbook/generate.txt +5 -0
- data/lib/sambot/{commands/rundeck.rb → docs/cookbook/version.txt} +0 -0
- data/lib/sambot/docs/dns/add.txt +0 -0
- data/lib/sambot/docs/dns/list.txt +0 -0
- data/lib/sambot/docs/dns/remove.txt +0 -0
- data/lib/sambot/docs/dns/show.txt +0 -0
- data/lib/sambot/docs/instance/generate.txt +0 -0
- data/lib/sambot/docs/report/consistency.txt +18 -0
- data/lib/sambot/docs/session/start.txt +0 -0
- data/lib/sambot/docs/session/stop.txt +0 -0
- data/lib/sambot/docs/team/list.txt +0 -0
- data/lib/sambot/docs/workstation/configure.txt +0 -0
- data/lib/sambot/file_management/file_checker.rb +30 -28
- data/lib/sambot/file_management/template_provider.rb +8 -6
- data/lib/sambot/rackspace/client.rb +9 -7
- data/lib/sambot/rackspace/flavors.rb +3 -3
- data/lib/sambot/rackspace/images.rb +7 -5
- data/lib/sambot/rackspace/instances.rb +20 -18
- data/lib/sambot/runtime.rb +2 -0
- data/lib/sambot/ssh/config_file.rb +53 -57
- data/lib/sambot/ssh/config_section.rb +60 -58
- data/lib/sambot/ssh/parser.rb +33 -32
- data/lib/sambot/templates/.kitchen.yml.erb +1 -1
- data/lib/sambot/ui.rb +2 -0
- data/lib/sambot/version.rb +3 -1
- data/sambot.gemspec +5 -1
- metadata +81 -13
- data/bin/cookbook +0 -4
- data/bin/report +0 -4
- data/bin/rundeck +0 -4
- data/bin/session +0 -4
- data/bin/workstation +0 -4
- data/lib/sambot/developer_workflow/bastion_host.rb +0 -58
data/bin/cookbook
DELETED
data/bin/report
DELETED
data/bin/rundeck
DELETED
data/bin/session
DELETED
data/bin/workstation
DELETED
@@ -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
|