tprov 0.0.5 → 0.0.6
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 +4 -4
- data/Gemfile +1 -1
- data/Gemfile.lock +0 -8
- data/bin/tprov +6 -4
- data/lib/tprov/app.rb +12 -22
- data/lib/version.rb +1 -1
- data/tprov.gemspec +1 -1
- metadata +24 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f38ee7a2be8de3c14bddbeca562e53ac979fcd2e
|
4
|
+
data.tar.gz: c016cbdd4a55cea01c7dda262d64bf736fbb3d1d
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a8fa04951580d185992e15f19f6eead373cd3b537244833c00bbcb562ed2430aceabf5f917cc4ad81e6d89498ec0da97e7a70c54fe8050534dab23b10fede11e
|
7
|
+
data.tar.gz: be5f205e0df05d3d4378afa4afef6ef1dfcce3074e49852462a77b6d7cca83ede1a2f20fc17bc0fa398e023255d6a022ca2baef89acaa9269d6417bdd5b2fa91
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,15 +1,8 @@
|
|
1
1
|
GEM
|
2
2
|
remote: http://rubygems.org/
|
3
3
|
specs:
|
4
|
-
archive-tar-minitar (0.5.2)
|
5
|
-
docker-api (1.5.4)
|
6
|
-
archive-tar-minitar
|
7
|
-
excon (>= 0.22.0)
|
8
|
-
json
|
9
4
|
emk-sinatra-url-for (0.2.1)
|
10
5
|
sinatra (>= 0.9.1.1)
|
11
|
-
excon (0.31.0)
|
12
|
-
json (1.8.1)
|
13
6
|
rack (1.5.2)
|
14
7
|
rack-protection (1.5.0)
|
15
8
|
rack
|
@@ -30,7 +23,6 @@ PLATFORMS
|
|
30
23
|
ruby
|
31
24
|
|
32
25
|
DEPENDENCIES
|
33
|
-
docker-api
|
34
26
|
emk-sinatra-url-for
|
35
27
|
redis
|
36
28
|
sinatra
|
data/bin/tprov
CHANGED
@@ -2,14 +2,16 @@
|
|
2
2
|
|
3
3
|
$:.unshift(File.expand_path(File.join(File.dirname(__FILE__), "..", "lib")))
|
4
4
|
|
5
|
-
require
|
6
|
-
require
|
7
|
-
require
|
8
|
-
require
|
5
|
+
require "rubygems"
|
6
|
+
require "optparse"
|
7
|
+
require "tprov"
|
8
|
+
require "version"
|
9
9
|
|
10
10
|
options = {}
|
11
11
|
|
12
12
|
optparse = OptionParser.new do |opts|
|
13
|
+
# Set a banner, displayed at the top
|
14
|
+
# of the help screen.
|
13
15
|
opts.banner = "Usage: TProv [options] ..."
|
14
16
|
|
15
17
|
opts.separator ''
|
data/lib/tprov/app.rb
CHANGED
@@ -1,14 +1,12 @@
|
|
1
1
|
$: << File.dirname(__FILE__)
|
2
2
|
|
3
|
-
require 'sinatra
|
3
|
+
require 'sinatra'
|
4
4
|
require 'sinatra/url_for'
|
5
5
|
require 'sinatra/static_assets'
|
6
6
|
require 'sinatra/flash'
|
7
7
|
require 'sinatra/redirect_with_flash'
|
8
8
|
require 'json'
|
9
9
|
require 'uri'
|
10
|
-
require 'docker'
|
11
|
-
require 'pp'
|
12
10
|
|
13
11
|
module TProv
|
14
12
|
class Application < Sinatra::Base
|
@@ -21,11 +19,6 @@ module TProv
|
|
21
19
|
set :views, File.join(File.dirname(__FILE__), 'views')
|
22
20
|
set :bind, '0.0.0.0'
|
23
21
|
|
24
|
-
Docker.url = ENV['DOCKER_URL'] || 'https://localhost:2375'
|
25
|
-
Docker.options = {
|
26
|
-
:ssl_verify_peer => false
|
27
|
-
}
|
28
|
-
|
29
22
|
enable :sessions, :logging, :dump_errors, :raise_errors, :show_exceptions
|
30
23
|
|
31
24
|
before do
|
@@ -66,31 +59,28 @@ module TProv
|
|
66
59
|
|
67
60
|
helpers do
|
68
61
|
def get_war(name, url)
|
69
|
-
|
70
|
-
|
71
|
-
|
62
|
+
cid = `docker run --name "#{name}" jamtur01/fetcher "#{url}" 2>&1`.chop
|
63
|
+
puts cid
|
64
|
+
[$?.exitstatus == 0, cid]
|
72
65
|
end
|
73
66
|
|
74
67
|
def create_instance(name)
|
75
|
-
|
76
|
-
|
77
|
-
container.id
|
68
|
+
cid = `docker run -P --volumes-from "#{name}" -d -t jamtur01/tomcat7 2>&1`.chop
|
69
|
+
[$?.exitstatus == 0, cid]
|
78
70
|
end
|
79
71
|
|
80
72
|
def delete_instance(cid)
|
81
|
-
|
82
|
-
|
73
|
+
kill = `docker kill #{cid} 2>&1`
|
74
|
+
[$?.exitstatus == 0, kill]
|
83
75
|
end
|
84
76
|
|
85
77
|
def list_instances
|
86
78
|
@list = {}
|
87
|
-
instance_ids =
|
79
|
+
instance_ids = `docker ps -q`.split(/\n/).reject(&:empty?)
|
88
80
|
instance_ids.each { |id|
|
89
|
-
|
90
|
-
config =
|
91
|
-
|
92
|
-
@list[id] = { 'hostname' => config['Config']['Hostname'], 'ip' => config['NetworkSettings']['IPAddress'], 'port' => config['NetworkSettings']['Ports']['8080/tcp'][0]['HostPort'] }
|
93
|
-
end
|
81
|
+
port = `docker port #{id} 8080`.chop
|
82
|
+
config = JSON.parse(`docker inspect #{id}`)
|
83
|
+
@list[id] = { 'hostname' => config[0]["Config"]["Hostname"], 'ip' => config[0]["NetworkSettings"]["IPAddress"], 'port' => port }
|
94
84
|
}
|
95
85
|
@list
|
96
86
|
end
|
data/lib/version.rb
CHANGED
data/tprov.gemspec
CHANGED
@@ -10,6 +10,7 @@ Gem::Specification.new do |s|
|
|
10
10
|
s.homepage = "http://www.dockerbook.com"
|
11
11
|
s.summary = %q{A simple app to provision Tomcat apps with Docker}
|
12
12
|
s.description = %q{A simple app to provision Tomcat apps with Docker written for The Docker Book - http://www.dockerbook.com}
|
13
|
+
s.license = "MIT"
|
13
14
|
|
14
15
|
s.files = `git ls-files`.split("\n")
|
15
16
|
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
@@ -24,5 +25,4 @@ Gem::Specification.new do |s|
|
|
24
25
|
s.add_dependency "sinatra-static-assets"
|
25
26
|
s.add_dependency "emk-sinatra-url-for"
|
26
27
|
s.add_dependency "sinatra-redirect-with-flash"
|
27
|
-
s.add_dependency "docker-api"
|
28
28
|
end
|
metadata
CHANGED
@@ -1,139 +1,125 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tprov
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- James Turnbull
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2016-08-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: sinatra
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: haml
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: sass
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- -
|
45
|
+
- - ">="
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- -
|
52
|
+
- - ">="
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0'
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: json
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
|
-
- -
|
59
|
+
- - ">="
|
60
60
|
- !ruby/object:Gem::Version
|
61
61
|
version: '0'
|
62
62
|
type: :runtime
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
|
-
- -
|
66
|
+
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: sinatra-flash
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
72
72
|
requirements:
|
73
|
-
- -
|
73
|
+
- - ">="
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
type: :runtime
|
77
77
|
prerelease: false
|
78
78
|
version_requirements: !ruby/object:Gem::Requirement
|
79
79
|
requirements:
|
80
|
-
- -
|
80
|
+
- - ">="
|
81
81
|
- !ruby/object:Gem::Version
|
82
82
|
version: '0'
|
83
83
|
- !ruby/object:Gem::Dependency
|
84
84
|
name: sinatra-static-assets
|
85
85
|
requirement: !ruby/object:Gem::Requirement
|
86
86
|
requirements:
|
87
|
-
- -
|
87
|
+
- - ">="
|
88
88
|
- !ruby/object:Gem::Version
|
89
89
|
version: '0'
|
90
90
|
type: :runtime
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
|
-
- -
|
94
|
+
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: emk-sinatra-url-for
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- -
|
101
|
+
- - ">="
|
102
102
|
- !ruby/object:Gem::Version
|
103
103
|
version: '0'
|
104
104
|
type: :runtime
|
105
105
|
prerelease: false
|
106
106
|
version_requirements: !ruby/object:Gem::Requirement
|
107
107
|
requirements:
|
108
|
-
- -
|
108
|
+
- - ">="
|
109
109
|
- !ruby/object:Gem::Version
|
110
110
|
version: '0'
|
111
111
|
- !ruby/object:Gem::Dependency
|
112
112
|
name: sinatra-redirect-with-flash
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- -
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
117
|
version: '0'
|
118
118
|
type: :runtime
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- -
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
version: '0'
|
125
|
-
- !ruby/object:Gem::Dependency
|
126
|
-
name: docker-api
|
127
|
-
requirement: !ruby/object:Gem::Requirement
|
128
|
-
requirements:
|
129
|
-
- - '>='
|
130
|
-
- !ruby/object:Gem::Version
|
131
|
-
version: '0'
|
132
|
-
type: :runtime
|
133
|
-
prerelease: false
|
134
|
-
version_requirements: !ruby/object:Gem::Requirement
|
135
|
-
requirements:
|
136
|
-
- - '>='
|
122
|
+
- - ">="
|
137
123
|
- !ruby/object:Gem::Version
|
138
124
|
version: '0'
|
139
125
|
description: A simple app to provision Tomcat apps with Docker written for The Docker
|
@@ -145,7 +131,7 @@ executables:
|
|
145
131
|
extensions: []
|
146
132
|
extra_rdoc_files: []
|
147
133
|
files:
|
148
|
-
- .gitignore
|
134
|
+
- ".gitignore"
|
149
135
|
- Gemfile
|
150
136
|
- Gemfile.lock
|
151
137
|
- LICENSE
|
@@ -173,7 +159,8 @@ files:
|
|
173
159
|
- spec/tprov_spec.rb
|
174
160
|
- tprov.gemspec
|
175
161
|
homepage: http://www.dockerbook.com
|
176
|
-
licenses:
|
162
|
+
licenses:
|
163
|
+
- MIT
|
177
164
|
metadata: {}
|
178
165
|
post_install_message:
|
179
166
|
rdoc_options: []
|
@@ -181,17 +168,17 @@ require_paths:
|
|
181
168
|
- lib
|
182
169
|
required_ruby_version: !ruby/object:Gem::Requirement
|
183
170
|
requirements:
|
184
|
-
- -
|
171
|
+
- - ">="
|
185
172
|
- !ruby/object:Gem::Version
|
186
173
|
version: '0'
|
187
174
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
175
|
requirements:
|
189
|
-
- -
|
176
|
+
- - ">="
|
190
177
|
- !ruby/object:Gem::Version
|
191
178
|
version: '0'
|
192
179
|
requirements: []
|
193
180
|
rubyforge_project:
|
194
|
-
rubygems_version: 2.
|
181
|
+
rubygems_version: 2.4.5
|
195
182
|
signing_key:
|
196
183
|
specification_version: 4
|
197
184
|
summary: A simple app to provision Tomcat apps with Docker
|