right_support 2.8.20 → 2.8.21
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.
- data/VERSION +1 -1
- data/lib/right_support/deployment/info.rb +66 -0
- data/lib/right_support/deployment.rb +8 -0
- data/lib/right_support.rb +1 -0
- data/right_support.gemspec +14 -11
- metadata +29 -25
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
2.8.
|
1
|
+
2.8.21
|
@@ -0,0 +1,66 @@
|
|
1
|
+
# Copyright (c) 2014 RightScale Inc
|
2
|
+
#
|
3
|
+
# Permission is hereby granted, free of charge, to any person obtaining
|
4
|
+
# a copy of this software and associated documentation files (the
|
5
|
+
# "Software"), to deal in the Software without restriction, including
|
6
|
+
# without limitation the rights to use, copy, modify, merge, publish,
|
7
|
+
# distribute, sublicense, and/or sell copies of the Software, and to
|
8
|
+
# permit persons to whom the Software is furnished to do so, subject to
|
9
|
+
# the following conditions:
|
10
|
+
#
|
11
|
+
# The above copyright notice and this permission notice shall be
|
12
|
+
# included in all copies or substantial portions of the Software.
|
13
|
+
#
|
14
|
+
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
15
|
+
# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
16
|
+
# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
17
|
+
# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
18
|
+
# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
19
|
+
# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
20
|
+
# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
21
|
+
|
22
|
+
require 'shellwords'
|
23
|
+
|
24
|
+
module RightSupport::Deployment
|
25
|
+
# Helper for getting information about an application that has been deployed to a server. Currently
|
26
|
+
# this only supports apps that are deployed to git repositories. It also relies on some conventions
|
27
|
+
# that have been adopted by the RightScale Operations team. If your deploys do not follow these
|
28
|
+
# conventions, then this class is of little use to you!
|
29
|
+
#
|
30
|
+
# In order for Info to be correct, your deployment methodology must adhere to the following three
|
31
|
+
# conventions:
|
32
|
+
# 1. The locally checked-out branch must track some upstream branch (but doesn't need to be named identically)
|
33
|
+
# 2. You should not "git fetch" in the deployed repository after deploy-time
|
34
|
+
# 3. If a post-deploy commit is made, the committer's email address must begin with "ops@"
|
35
|
+
class Info
|
36
|
+
# @return [Array] list of String: descriptions of recent SCM commits (most recent first)
|
37
|
+
attr_reader :recent_commits
|
38
|
+
|
39
|
+
# @return [String] the SHA (or other SCM identifier) of the most recent commit
|
40
|
+
attr_reader :head_commit
|
41
|
+
|
42
|
+
#@param [Fixnum] num_commits how many commits to gather information about
|
43
|
+
#@param [String,Pathname] dir location of the app's git repo (or any of its subdirectories)
|
44
|
+
def initialize(num_commits=5, dir=Dir.pwd)
|
45
|
+
@num_commits = num_commits
|
46
|
+
@dir = dir
|
47
|
+
|
48
|
+
|
49
|
+
# For all the services run by Ops, they add an extra commit when they checkout the code. This
|
50
|
+
# commit does not indicate the last commit that would be seen in the Git repo anywhere else,
|
51
|
+
# so we should ignore this commit whe logging the current repositories state.
|
52
|
+
commit_diff = `git --git-dir #{Shellwords.escape(@dir.to_s)}/.git log origin/HEAD..HEAD \
|
53
|
+
--pretty=format:'%ae'`.split(/\n+/)
|
54
|
+
|
55
|
+
ops_commit_exists = (commit_diff.count == 1 && commit_diff.first =~ /ops@/)
|
56
|
+
ops_commit_exists ? head_commit = 1 : head_commit = 0
|
57
|
+
|
58
|
+
@recent_commits = `git --git-dir #{Shellwords.escape(@dir.to_s)}/.git log \
|
59
|
+
-n #{Shellwords.escape(@num_commits.to_s)} \
|
60
|
+
--pretty=format:'%h %an %ad'`.split(/\n+/)[head_commit..-1]
|
61
|
+
|
62
|
+
@head_commit = `git --git-dir #{Shellwords.escape(@dir.to_s)}/.git log -n 1 \
|
63
|
+
--pretty=format:'%H' #{"HEAD~" if ops_commit_exists}`
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
data/lib/right_support.rb
CHANGED
data/right_support.gemspec
CHANGED
@@ -4,14 +4,14 @@
|
|
4
4
|
# -*- encoding: utf-8 -*-
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
|
-
s.name =
|
8
|
-
s.version = "2.8.
|
7
|
+
s.name = %q{right_support}
|
8
|
+
s.version = "2.8.21"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Tony Spataro", "Sergey Sergyenko", "Ryan Williamson", "Lee Kirchhoff", "Alexey Karpik", "Scott Messier"]
|
12
|
-
s.date =
|
13
|
-
s.description =
|
14
|
-
s.email =
|
12
|
+
s.date = %q{2014-04-04}
|
13
|
+
s.description = %q{A toolkit of useful, reusable foundation code created by RightScale.}
|
14
|
+
s.email = %q{support@rightscale.com}
|
15
15
|
s.extra_rdoc_files = [
|
16
16
|
"LICENSE",
|
17
17
|
"README.rdoc"
|
@@ -55,6 +55,8 @@ Gem::Specification.new do |s|
|
|
55
55
|
"lib/right_support/data/uuid.rb",
|
56
56
|
"lib/right_support/db.rb",
|
57
57
|
"lib/right_support/db/cassandra_model.rb",
|
58
|
+
"lib/right_support/deployment.rb",
|
59
|
+
"lib/right_support/deployment/info.rb",
|
58
60
|
"lib/right_support/log.rb",
|
59
61
|
"lib/right_support/log/exception_logger.rb",
|
60
62
|
"lib/right_support/log/filter_logger.rb",
|
@@ -134,31 +136,32 @@ Gem::Specification.new do |s|
|
|
134
136
|
"spec/validation/openssl_spec.rb",
|
135
137
|
"spec/validation/ssh_spec.rb"
|
136
138
|
]
|
137
|
-
s.homepage =
|
139
|
+
s.homepage = %q{https://github.com/rightscale/right_support}
|
138
140
|
s.licenses = ["MIT"]
|
139
141
|
s.require_paths = ["lib"]
|
140
|
-
s.rubygems_version =
|
141
|
-
s.summary =
|
142
|
+
s.rubygems_version = %q{1.3.7}
|
143
|
+
s.summary = %q{Reusable foundation code.}
|
142
144
|
|
143
145
|
if s.respond_to? :specification_version then
|
146
|
+
current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
|
144
147
|
s.specification_version = 3
|
145
148
|
|
146
149
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
147
150
|
s.add_development_dependency(%q<jeweler>, ["~> 2.0"])
|
148
151
|
s.add_development_dependency(%q<flexmock>, ["~> 1.0"])
|
149
152
|
s.add_development_dependency(%q<rspec>, ["~> 2.13.0"])
|
150
|
-
s.add_development_dependency(%q<cucumber>, ["
|
153
|
+
s.add_development_dependency(%q<cucumber>, ["~> 1.0", "< 1.3.3"])
|
151
154
|
else
|
152
155
|
s.add_dependency(%q<jeweler>, ["~> 2.0"])
|
153
156
|
s.add_dependency(%q<flexmock>, ["~> 1.0"])
|
154
157
|
s.add_dependency(%q<rspec>, ["~> 2.13.0"])
|
155
|
-
s.add_dependency(%q<cucumber>, ["
|
158
|
+
s.add_dependency(%q<cucumber>, ["~> 1.0", "< 1.3.3"])
|
156
159
|
end
|
157
160
|
else
|
158
161
|
s.add_dependency(%q<jeweler>, ["~> 2.0"])
|
159
162
|
s.add_dependency(%q<flexmock>, ["~> 1.0"])
|
160
163
|
s.add_dependency(%q<rspec>, ["~> 2.13.0"])
|
161
|
-
s.add_dependency(%q<cucumber>, ["
|
164
|
+
s.add_dependency(%q<cucumber>, ["~> 1.0", "< 1.3.3"])
|
162
165
|
end
|
163
166
|
end
|
164
167
|
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: right_support
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
5
|
-
prerelease:
|
4
|
+
hash: 5
|
5
|
+
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 2
|
8
8
|
- 8
|
9
|
-
-
|
10
|
-
version: 2.8.
|
9
|
+
- 21
|
10
|
+
version: 2.8.21
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Tony Spataro
|
@@ -20,11 +20,10 @@ autorequire:
|
|
20
20
|
bindir: bin
|
21
21
|
cert_chain: []
|
22
22
|
|
23
|
-
date: 2014-
|
23
|
+
date: 2014-04-04 00:00:00 -07:00
|
24
|
+
default_executable:
|
24
25
|
dependencies:
|
25
26
|
- !ruby/object:Gem::Dependency
|
26
|
-
type: :development
|
27
|
-
name: jeweler
|
28
27
|
version_requirements: &id001 !ruby/object:Gem::Requirement
|
29
28
|
none: false
|
30
29
|
requirements:
|
@@ -35,11 +34,11 @@ dependencies:
|
|
35
34
|
- 2
|
36
35
|
- 0
|
37
36
|
version: "2.0"
|
38
|
-
|
37
|
+
name: jeweler
|
39
38
|
requirement: *id001
|
40
|
-
|
39
|
+
prerelease: false
|
41
40
|
type: :development
|
42
|
-
|
41
|
+
- !ruby/object:Gem::Dependency
|
43
42
|
version_requirements: &id002 !ruby/object:Gem::Requirement
|
44
43
|
none: false
|
45
44
|
requirements:
|
@@ -50,11 +49,11 @@ dependencies:
|
|
50
49
|
- 1
|
51
50
|
- 0
|
52
51
|
version: "1.0"
|
53
|
-
|
52
|
+
name: flexmock
|
54
53
|
requirement: *id002
|
55
|
-
|
54
|
+
prerelease: false
|
56
55
|
type: :development
|
57
|
-
|
56
|
+
- !ruby/object:Gem::Dependency
|
58
57
|
version_requirements: &id003 !ruby/object:Gem::Requirement
|
59
58
|
none: false
|
60
59
|
requirements:
|
@@ -66,14 +65,21 @@ dependencies:
|
|
66
65
|
- 13
|
67
66
|
- 0
|
68
67
|
version: 2.13.0
|
69
|
-
|
68
|
+
name: rspec
|
70
69
|
requirement: *id003
|
71
|
-
|
70
|
+
prerelease: false
|
72
71
|
type: :development
|
73
|
-
|
72
|
+
- !ruby/object:Gem::Dependency
|
74
73
|
version_requirements: &id004 !ruby/object:Gem::Requirement
|
75
74
|
none: false
|
76
75
|
requirements:
|
76
|
+
- - ~>
|
77
|
+
- !ruby/object:Gem::Version
|
78
|
+
hash: 15
|
79
|
+
segments:
|
80
|
+
- 1
|
81
|
+
- 0
|
82
|
+
version: "1.0"
|
77
83
|
- - <
|
78
84
|
- !ruby/object:Gem::Version
|
79
85
|
hash: 29
|
@@ -82,15 +88,10 @@ dependencies:
|
|
82
88
|
- 3
|
83
89
|
- 3
|
84
90
|
version: 1.3.3
|
85
|
-
|
86
|
-
- !ruby/object:Gem::Version
|
87
|
-
hash: 15
|
88
|
-
segments:
|
89
|
-
- 1
|
90
|
-
- 0
|
91
|
-
version: "1.0"
|
92
|
-
prerelease: false
|
91
|
+
name: cucumber
|
93
92
|
requirement: *id004
|
93
|
+
prerelease: false
|
94
|
+
type: :development
|
94
95
|
description: A toolkit of useful, reusable foundation code created by RightScale.
|
95
96
|
email: support@rightscale.com
|
96
97
|
executables: []
|
@@ -139,6 +140,8 @@ files:
|
|
139
140
|
- lib/right_support/data/uuid.rb
|
140
141
|
- lib/right_support/db.rb
|
141
142
|
- lib/right_support/db/cassandra_model.rb
|
143
|
+
- lib/right_support/deployment.rb
|
144
|
+
- lib/right_support/deployment/info.rb
|
142
145
|
- lib/right_support/log.rb
|
143
146
|
- lib/right_support/log/exception_logger.rb
|
144
147
|
- lib/right_support/log/filter_logger.rb
|
@@ -217,6 +220,7 @@ files:
|
|
217
220
|
- spec/stats/helpers_spec.rb
|
218
221
|
- spec/validation/openssl_spec.rb
|
219
222
|
- spec/validation/ssh_spec.rb
|
223
|
+
has_rdoc: true
|
220
224
|
homepage: https://github.com/rightscale/right_support
|
221
225
|
licenses:
|
222
226
|
- MIT
|
@@ -246,7 +250,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
246
250
|
requirements: []
|
247
251
|
|
248
252
|
rubyforge_project:
|
249
|
-
rubygems_version: 1.
|
253
|
+
rubygems_version: 1.3.7
|
250
254
|
signing_key:
|
251
255
|
specification_version: 3
|
252
256
|
summary: Reusable foundation code.
|