builderator 0.3.15 → 1.0.0.pre.rc.1
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 +9 -0
- data/Gemfile.lock +440 -0
- data/README.md +72 -18
- data/Rakefile +1 -2
- data/VERSION +1 -1
- data/bin/build-clean +102 -0
- data/bin/build-data +45 -0
- data/builderator.gemspec +7 -4
- data/docs/configuration.md +154 -0
- data/docs/configuration/cookbook.md +19 -0
- data/docs/configuration/profile.md +71 -0
- data/docs/versioning.md +65 -0
- data/lib/builderator.rb +3 -0
- data/lib/builderator/config.rb +93 -0
- data/lib/builderator/config/attributes.rb +287 -0
- data/lib/builderator/config/defaults.rb +163 -0
- data/lib/builderator/config/file.rb +336 -0
- data/lib/builderator/config/rash.rb +80 -0
- data/lib/builderator/control/cleaner.rb +138 -0
- data/lib/builderator/control/cookbook.rb +16 -0
- data/lib/builderator/control/data.rb +16 -0
- data/lib/builderator/control/data/image.rb +98 -0
- data/lib/builderator/control/version.rb +128 -0
- data/lib/builderator/control/version/auto.rb +48 -0
- data/lib/builderator/control/version/bump.rb +82 -0
- data/lib/builderator/control/version/comparable.rb +77 -0
- data/lib/builderator/control/version/git.rb +45 -0
- data/lib/builderator/control/version/scm.rb +92 -0
- data/lib/builderator/interface.rb +67 -0
- data/lib/builderator/interface/berkshelf.rb +38 -0
- data/lib/builderator/interface/packer.rb +75 -0
- data/lib/builderator/interface/vagrant.rb +31 -0
- data/lib/builderator/metadata.rb +5 -3
- data/lib/builderator/model/cleaner.rb +49 -0
- data/lib/builderator/model/cleaner/images.rb +93 -0
- data/lib/builderator/model/cleaner/instances.rb +58 -0
- data/lib/builderator/model/cleaner/launch_configs.rb +47 -0
- data/lib/builderator/model/cleaner/scaling_groups.rb +45 -0
- data/lib/builderator/model/cleaner/snapshots.rb +50 -0
- data/lib/builderator/model/cleaner/volumes.rb +48 -0
- data/lib/builderator/patch/berkshelf.rb +18 -0
- data/lib/builderator/patch/thor-actions.rb +47 -0
- data/lib/builderator/tasks.rb +127 -17
- data/lib/builderator/tasks/berkshelf.rb +63 -0
- data/lib/builderator/tasks/packer.rb +17 -56
- data/lib/builderator/tasks/vagrant.rb +111 -42
- data/lib/builderator/tasks/vendor.rb +94 -0
- data/lib/builderator/tasks/version.rb +58 -0
- data/lib/builderator/util.rb +37 -11
- data/lib/builderator/util/aws_exception.rb +1 -1
- data/lib/builderator/util/limit_exception.rb +12 -11
- data/lib/builderator/util/task_exception.rb +0 -2
- data/mkmf.log +4 -0
- data/spec/config_spec.rb +30 -0
- data/spec/data/Berksfile +6 -0
- data/spec/data/Buildfile +0 -0
- data/spec/data/Vagrantfile +0 -0
- data/spec/data/history.json +483 -0
- data/spec/data/packer.json +0 -0
- data/spec/interface_spec.rb +36 -0
- data/spec/resource/Buildfile +27 -0
- data/spec/spec_helper.rb +90 -0
- data/spec/version_spec.rb +282 -0
- data/template/Berksfile.erb +10 -0
- data/template/Buildfile.erb +28 -0
- data/template/Gemfile.erb +16 -0
- data/template/README.md.erb +61 -0
- data/template/Vagrantfile.erb +75 -0
- data/template/gitignore.erb +104 -0
- data/{.rubocop.yml → template/rubocop.erb} +0 -0
- metadata +203 -56
- data/.gitignore +0 -14
- data/lib/builderator/control/ami.rb +0 -65
- data/lib/builderator/control/clean.rb +0 -130
- data/lib/builderator/model.rb +0 -46
- data/lib/builderator/model/images.rb +0 -89
- data/lib/builderator/model/instances.rb +0 -55
- data/lib/builderator/model/launch_configs.rb +0 -46
- data/lib/builderator/model/scaling_groups.rb +0 -43
- data/lib/builderator/model/snapshots.rb +0 -49
- data/lib/builderator/model/volumes.rb +0 -48
- data/lib/builderator/tasks/ami.rb +0 -47
- data/lib/builderator/tasks/berks.rb +0 -68
- data/lib/builderator/tasks/clean.rb +0 -97
- data/lib/builderator/util/berkshim.rb +0 -34
- data/lib/builderator/util/cookbook.rb +0 -87
- data/lib/builderator/util/packer.rb +0 -39
- data/lib/builderator/util/shell.rb +0 -44
@@ -0,0 +1,94 @@
|
|
1
|
+
require 'pathname'
|
2
|
+
require 'thor'
|
3
|
+
|
4
|
+
require_relative '../patch/thor-actions'
|
5
|
+
require_relative '../util'
|
6
|
+
|
7
|
+
module Builderator
|
8
|
+
module Tasks
|
9
|
+
##
|
10
|
+
# Tasks to fetch and clean up remote artifacts
|
11
|
+
##
|
12
|
+
class Vendor < Thor
|
13
|
+
include Thor::Actions
|
14
|
+
|
15
|
+
def self.exit_on_failure?
|
16
|
+
true
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'all', 'Fetch all vendor sources'
|
20
|
+
def all
|
21
|
+
Config.vendor.each { |name, _| fetch(name) }
|
22
|
+
end
|
23
|
+
|
24
|
+
desc 'clean [NAME]', 'Clean up vendor directories'
|
25
|
+
def clean(name = nil)
|
26
|
+
## Clean up all vendors
|
27
|
+
return Config.vendor.each { |n, _| clean(n) } if name.nil?
|
28
|
+
|
29
|
+
remove_dir Util.vendor(name)
|
30
|
+
end
|
31
|
+
|
32
|
+
desc 'fetch NAME', 'Fetch vendor NAME from its source'
|
33
|
+
def fetch(name = :default)
|
34
|
+
empty_directory Util::VENDOR
|
35
|
+
|
36
|
+
path = Util.vendor(name)
|
37
|
+
params = Config.vendor(name)
|
38
|
+
|
39
|
+
if params.has?(:github)
|
40
|
+
say_status :vendor, "#{ name } from GitHub repository #{ params.github }"
|
41
|
+
_fetch_github(path, params)
|
42
|
+
elsif params.has?(:git)
|
43
|
+
say_status :vendor, "#{ name } from git repository #{ params.git }"
|
44
|
+
_fetch_git(path, params)
|
45
|
+
elsif params.has?(:path)
|
46
|
+
say_status :vendor, "#{ name } from path #{ params.path }"
|
47
|
+
_fetch_path(path, params)
|
48
|
+
end
|
49
|
+
|
50
|
+
## Include any policies embedded in this vendor
|
51
|
+
Config.recompile
|
52
|
+
end
|
53
|
+
|
54
|
+
no_commands do
|
55
|
+
def _fetch_git(path, params)
|
56
|
+
empty_directory path
|
57
|
+
|
58
|
+
inside path do
|
59
|
+
## Initialize new repository
|
60
|
+
unless path.join('.git').exist?
|
61
|
+
run 'git init'
|
62
|
+
run "git remote add origin #{ params.git }"
|
63
|
+
end
|
64
|
+
|
65
|
+
run 'git fetch origin --tags --prune'
|
66
|
+
|
67
|
+
## Checkout reference
|
68
|
+
if params.has?(:tag) then run "git checkout #{ params.tag }"
|
69
|
+
elsif params.has?(:ref) then run "git checkout #{ params.ref }"
|
70
|
+
else ## specified branch or master
|
71
|
+
run "git checkout #{ params.fetch(:branch, 'master') }"
|
72
|
+
|
73
|
+
## Only pull if a tracking branch is checked out
|
74
|
+
run 'git pull'
|
75
|
+
end
|
76
|
+
|
77
|
+
## Apply relative subdirectory
|
78
|
+
run "git filter-branch --subdirectory-filter \"#{ params.rel }\" --force" if params.has?(:rel)
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
def _fetch_github(path, params)
|
83
|
+
params.git = "git@github.com:#{ params.github }.git"
|
84
|
+
_fetch_git(path, params)
|
85
|
+
end
|
86
|
+
|
87
|
+
def _fetch_path(path, params)
|
88
|
+
remove_dir path.to_s if path.exist?
|
89
|
+
create_link path.to_s, params.path.to_s
|
90
|
+
end
|
91
|
+
end
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
require 'thor'
|
2
|
+
|
3
|
+
require_relative '../patch/thor-actions'
|
4
|
+
require_relative '../control/version'
|
5
|
+
require_relative '../util'
|
6
|
+
|
7
|
+
module Builderator
|
8
|
+
module Tasks
|
9
|
+
##
|
10
|
+
# Tasks to detect and increment package versions
|
11
|
+
##
|
12
|
+
class Version < Thor
|
13
|
+
include Thor::Actions
|
14
|
+
|
15
|
+
def self.exit_on_failure?
|
16
|
+
true
|
17
|
+
end
|
18
|
+
|
19
|
+
desc 'current', 'Print the current version and write it to file'
|
20
|
+
def current
|
21
|
+
unless Config.autoversion.search_tags
|
22
|
+
say_status :disabled, 'Automatically detecting version informantion '\
|
23
|
+
'from SCM tags is disabled', :red
|
24
|
+
return
|
25
|
+
end
|
26
|
+
|
27
|
+
say_status :version, "#{Control::Version.current} (#{Control::Version.current.ref})"
|
28
|
+
Control::Version.write
|
29
|
+
Control::Version.set_config_version
|
30
|
+
end
|
31
|
+
|
32
|
+
desc 'bump TYPE [PRERELEASE_NAME]', 'Increment the package version, optionally with a named prerelease'
|
33
|
+
def bump(type = :auto, prerelease_name = nil)
|
34
|
+
## Guard: Don't try to create a new version if `create_tags` is explicitly disabled
|
35
|
+
## or `search_tags` is disabled as we won't have a valud current version to increment
|
36
|
+
unless Config.autoversion.create_tags && Config.autoversion.search_tags
|
37
|
+
say_status :disabled, 'Tag creation is disabled for this build. Not '\
|
38
|
+
'creating new SCM tags!', :red
|
39
|
+
|
40
|
+
## Try to read the current version anyway, incase `search_tags == true`
|
41
|
+
current
|
42
|
+
|
43
|
+
return
|
44
|
+
end
|
45
|
+
|
46
|
+
say_status :bump, "by #{type} version"
|
47
|
+
Control::Version.bump(type, prerelease_name)
|
48
|
+
|
49
|
+
## Print the new version and write out a VERSION file
|
50
|
+
current
|
51
|
+
|
52
|
+
## Try to create and push a tag
|
53
|
+
run "git tag #{Control::Version.current}"
|
54
|
+
run 'git push --tags'
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
data/lib/builderator/util.rb
CHANGED
@@ -1,8 +1,18 @@
|
|
1
1
|
require 'pathname'
|
2
2
|
|
3
3
|
module Builderator
|
4
|
+
##
|
5
|
+
# Shared helper methods
|
6
|
+
##
|
4
7
|
module Util
|
8
|
+
GEM_PATH = Pathname.new(__FILE__).join('../../..').expand_path
|
9
|
+
WORKSPACE = '.builderator'.freeze
|
10
|
+
VENDOR = 'vendor'.freeze
|
11
|
+
|
5
12
|
class << self
|
13
|
+
##
|
14
|
+
# Transform helpers
|
15
|
+
##
|
6
16
|
def to_array(arg)
|
7
17
|
arg.is_a?(Array) ? arg : [arg]
|
8
18
|
end
|
@@ -11,6 +21,28 @@ module Builderator
|
|
11
21
|
{}.tap { |tt| aws_tags.each { |t| tt[t.key.to_s] = t.value } }
|
12
22
|
end
|
13
23
|
|
24
|
+
##
|
25
|
+
# Relative path from working directory
|
26
|
+
##
|
27
|
+
def relative_path(*relative)
|
28
|
+
Pathname.pwd.join(*(relative.flatten.map(&:to_s))).expand_path
|
29
|
+
end
|
30
|
+
|
31
|
+
def workspace(*relative)
|
32
|
+
relative_path(WORKSPACE, relative)
|
33
|
+
end
|
34
|
+
|
35
|
+
def vendor(*relative)
|
36
|
+
workspace(VENDOR, relative)
|
37
|
+
end
|
38
|
+
|
39
|
+
def source_path(*relative)
|
40
|
+
GEM_PATH.join(*(relative.flatten.map(&:to_s))).expand_path
|
41
|
+
end
|
42
|
+
|
43
|
+
##
|
44
|
+
# Set-filter helpers
|
45
|
+
##
|
14
46
|
def filter(resources, filters = {})
|
15
47
|
resources.select do |_, r|
|
16
48
|
_filter_reduce(r, filters)
|
@@ -25,21 +57,15 @@ module Builderator
|
|
25
57
|
resources
|
26
58
|
end
|
27
59
|
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
end
|
32
|
-
|
60
|
+
##
|
61
|
+
# AWS Clients
|
62
|
+
##
|
33
63
|
def ec2
|
34
|
-
@ec2 ||= Aws::EC2::Client.new(:region => region)
|
64
|
+
@ec2 ||= Aws::EC2::Client.new(:region => Config.aws.region)
|
35
65
|
end
|
36
66
|
|
37
67
|
def asg
|
38
|
-
@asg ||= Aws::AutoScaling::Client.new(:region => region)
|
39
|
-
end
|
40
|
-
|
41
|
-
def working_dir(relative = '.')
|
42
|
-
Pathname.pwd.join(relative).expand_path
|
68
|
+
@asg ||= Aws::AutoScaling::Client.new(:region => Config.aws.region)
|
43
69
|
end
|
44
70
|
|
45
71
|
private
|
@@ -6,12 +6,15 @@ module Builderator
|
|
6
6
|
# Exception raised if a safety limit is exceeded
|
7
7
|
##
|
8
8
|
class LimitException < TaskException
|
9
|
+
DEFAULT_LIMIT = 4
|
10
|
+
|
11
|
+
attr_reader :resource_name
|
9
12
|
attr_reader :resources
|
10
13
|
|
11
|
-
def initialize(
|
14
|
+
def initialize(resource_name, task, resources)
|
12
15
|
super(:limit, task, :yellow)
|
13
16
|
|
14
|
-
@
|
17
|
+
@resource_name = resource_name
|
15
18
|
@resources = resources
|
16
19
|
end
|
17
20
|
|
@@ -20,18 +23,16 @@ module Builderator
|
|
20
23
|
end
|
21
24
|
|
22
25
|
def limit
|
23
|
-
|
24
|
-
end
|
25
|
-
|
26
|
-
def resource
|
27
|
-
@klass.name
|
26
|
+
Config.cleaner.limits[resource_name]
|
28
27
|
end
|
29
28
|
|
30
29
|
def message
|
31
|
-
"Safety limit exceeded for task `#{
|
32
|
-
"
|
33
|
-
|
34
|
-
|
30
|
+
msg = "Safety limit exceeded for task `#{task}`: Count #{count} is "
|
31
|
+
msg << "greater than the limit of #{limit} set in `cleaner.limits.#{resource_name}`. "
|
32
|
+
msg << 'Please re-run this task with the --force flag if you are sure this is '\
|
33
|
+
'the correct set of resources to delete.' unless Config.cleaner.force
|
34
|
+
|
35
|
+
msg
|
35
36
|
end
|
36
37
|
end
|
37
38
|
end
|
data/mkmf.log
ADDED
data/spec/config_spec.rb
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
require_relative './spec_helper'
|
2
|
+
|
3
|
+
# :nodoc:
|
4
|
+
module Builderator
|
5
|
+
RSpec.describe Config, '#load' do
|
6
|
+
it 'loads a DSL file' do
|
7
|
+
expect(Config.layers.length).to eq 1
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'compiles loaded DSL' do
|
11
|
+
layer = Config.layers.first
|
12
|
+
layer.compile.seal
|
13
|
+
|
14
|
+
expect(layer.build_name).to eq 'builderator'
|
15
|
+
expect(layer.autoversion.create_tags).to be false
|
16
|
+
|
17
|
+
## Collection `depends` in Namespace `cookbook`
|
18
|
+
expect(layer.cookbook.depends['apt']).to be_kind_of(Config::Attributes::Namespace)
|
19
|
+
expect(layer.cookbook.depends['etcd-v2']).to be_kind_of(Config::Attributes::Namespace)
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'compiles configuration layers' do
|
23
|
+
Config.compile
|
24
|
+
|
25
|
+
## Ensure that layer-order is respected
|
26
|
+
expect(Config.aws.region).to eq 'us-east-1'
|
27
|
+
expect(Config.build_name).to eq 'builderator'
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
data/spec/data/Berksfile
ADDED
data/spec/data/Buildfile
ADDED
File without changes
|
File without changes
|
@@ -0,0 +1,483 @@
|
|
1
|
+
[
|
2
|
+
{
|
3
|
+
"id": "d6f0ae080a484b40687350110f15795bdcde6d7e",
|
4
|
+
"message": "In reset, check for the setter-method instead of the getter-method"
|
5
|
+
},
|
6
|
+
{
|
7
|
+
"id": "506d7d8d17c49d80c7d4e72cd7ebbe67c04d679d",
|
8
|
+
"message": "Add auto-version controller"
|
9
|
+
},
|
10
|
+
{
|
11
|
+
"id": "945beb804859749706f67268229fe991f496c41a",
|
12
|
+
"message": "Merge pull request #16 from rapid7/cleaner-refactor"
|
13
|
+
},
|
14
|
+
{
|
15
|
+
"id": "0b1b7a9fe1aa840b73fe9a0b96097967027cf6ab",
|
16
|
+
"message": "Fix cleaner CLI options. Pass AWS region to COnfig argv correctly"
|
17
|
+
},
|
18
|
+
{
|
19
|
+
"id": "a1d3dcbd91a0abff829f8f09337ddc257257e730",
|
20
|
+
"message": "Merge pull request #14 from rapid7/gemspec"
|
21
|
+
},
|
22
|
+
{
|
23
|
+
"id": "c3a0b2402ddf4084c175cc69793d592f8864daf1",
|
24
|
+
"message": "Add mixlib-shellout, remove mkfifo from gemspec dependencies"
|
25
|
+
},
|
26
|
+
{
|
27
|
+
"id": "a0213856213536f4b2ea8a75543b12e35b8cc52e",
|
28
|
+
"message": "Make thor-scmversion a dev dependency"
|
29
|
+
},
|
30
|
+
{
|
31
|
+
"id": "bc8dd9b9ceac207ef9b45613f66228aeef698dd0",
|
32
|
+
"message": "Add vagrant, berkshelf, and builderator state files as well as VERSION to gitignore"
|
33
|
+
},
|
34
|
+
{
|
35
|
+
"id": "723184617c594635c5191621e3b6a519609adcaf",
|
36
|
+
"message": "Merge pull request #11 from rapid7/interface"
|
37
|
+
},
|
38
|
+
{
|
39
|
+
"id": "560cea5ea897a2c9e6a484aa5ed95e1a0d81b9c9",
|
40
|
+
"message": "Add berkshelf_config parameter to berkshelf interface, and copy tags from profile to packer-builders in the packer interface"
|
41
|
+
},
|
42
|
+
{
|
43
|
+
"id": "89403f24e8a4a82ffa67eb941d5afefe55ced37a",
|
44
|
+
"message": "Fix packer build parameter name `ami_virtualization_type`"
|
45
|
+
},
|
46
|
+
{
|
47
|
+
"id": "91c4e2aea4f391c966fe5a2f049bed29d05783aa",
|
48
|
+
"message": "Don't try to template an embedded cookbook's Berksfile in berks tasks. We may handle that in cookbook tasks later on..."
|
49
|
+
},
|
50
|
+
{
|
51
|
+
"id": "6287a49d467a0a049a59e3a6f025373b529f0578",
|
52
|
+
"message": "Add node about packer assuming ubuntu user"
|
53
|
+
},
|
54
|
+
{
|
55
|
+
"id": "cd9b9d6738b25abb80d2256c76c9b8297f07009f",
|
56
|
+
"message": "Can't test Vafrantfile generator against a file with an absolute path"
|
57
|
+
},
|
58
|
+
{
|
59
|
+
"id": "ab703a9cfb4fdeea319a0de37c258cb803bbd5a4",
|
60
|
+
"message": "Rename write to render in interface/packer"
|
61
|
+
},
|
62
|
+
{
|
63
|
+
"id": "3f785e2f9306605d4574da8384e22e1bcd8c4c33",
|
64
|
+
"message": "Remove comment cruft at the bottom of interface/packer"
|
65
|
+
},
|
66
|
+
{
|
67
|
+
"id": "d9719348b177741a18a4e064a01767d1f7dd907f",
|
68
|
+
"message": "Adds a configuration parameter for a path to Berkshelf's config.json file (defaults to localtion in HOME), and removes invalid default for tags from the default packer configuration"
|
69
|
+
},
|
70
|
+
{
|
71
|
+
"id": "6d5778ab1b7ac7a8e73287c6e1ddb783a67ec395",
|
72
|
+
"message": "Ensure that Config is compiled before trying to get values from it"
|
73
|
+
},
|
74
|
+
{
|
75
|
+
"id": "2807c5881c4aa8f6a5beef2b5ba23e83d6a7ddf4",
|
76
|
+
"message": "Add a helper method to check if the project includes a cookbook"
|
77
|
+
},
|
78
|
+
{
|
79
|
+
"id": "1fed58c680c7cfd3bc53083d97a6346b2f0aa2a6",
|
80
|
+
"message": "Add a patch for Berksfiles to add gzip middleware to Faraday"
|
81
|
+
},
|
82
|
+
{
|
83
|
+
"id": "2fa5cb96b5fb13a4e0240dede3896c8a04079a37",
|
84
|
+
"message": "Add tests for Interface"
|
85
|
+
},
|
86
|
+
{
|
87
|
+
"id": "74e666d7d7c495eb5e837959fd681962779526dd",
|
88
|
+
"message": "Add creater/getters to Interface. Fix Vagrantfile template"
|
89
|
+
},
|
90
|
+
{
|
91
|
+
"id": "0e85b3e22da561272103435e5562ec77123ad428",
|
92
|
+
"message": "Document integration file changes"
|
93
|
+
},
|
94
|
+
{
|
95
|
+
"id": "58203268e7ea1074ba5edd637b4360349d059f66",
|
96
|
+
"message": "Add configuration interfaces and templates"
|
97
|
+
},
|
98
|
+
{
|
99
|
+
"id": "8c953123b65b53544468c43bac7fa2d6d379c1f2",
|
100
|
+
"message": "Merge pull request #12 from rapid7/cleaner-refactor"
|
101
|
+
},
|
102
|
+
{
|
103
|
+
"id": "ed1422283e31c694704ba9241066a8601f88b50d",
|
104
|
+
"message": "Don't tell users to re-run with --force if Config.cleaner.force is already true"
|
105
|
+
},
|
106
|
+
{
|
107
|
+
"id": "1a5ed1d683bce8e49a03245ec2b6f944918fa009",
|
108
|
+
"message": "Refactor warning messages to print limit, force, and commit warnings and stop-waits for every task"
|
109
|
+
},
|
110
|
+
{
|
111
|
+
"id": "5e0b2b24ba49e78699656a06c179f5088246dd61",
|
112
|
+
"message": "Favor fluent Config interface over hash-getters"
|
113
|
+
},
|
114
|
+
{
|
115
|
+
"id": "1745be5b51d85f520a8d41b15ef9df6b485aeb07",
|
116
|
+
"message": "Refactor model, controller, and exceptions to use Config"
|
117
|
+
},
|
118
|
+
{
|
119
|
+
"id": "2aeda487ec631e00701529e776633a34b97386c0",
|
120
|
+
"message": "Replace - with _ in keys when merging: makes loading CLI options much simpler"
|
121
|
+
},
|
122
|
+
{
|
123
|
+
"id": "5e3401f098653678febc41659eff15d9ca728984",
|
124
|
+
"message": "Add config parameters from cleaner CLI options and sane defaults"
|
125
|
+
},
|
126
|
+
{
|
127
|
+
"id": "662ca3dffcd50c9ddc600076feedc0d6593f221a",
|
128
|
+
"message": "Fix source name for argv layer"
|
129
|
+
},
|
130
|
+
{
|
131
|
+
"id": "9a5ecc7a57a642e12ec9279616ffb01f2a3c1011",
|
132
|
+
"message": "Use configuration sys-system for limits and AWS region"
|
133
|
+
},
|
134
|
+
{
|
135
|
+
"id": "35cd14da75b83a2162ad70610be28a886423de11",
|
136
|
+
"message": "Refactor clean tasks into their own CLI"
|
137
|
+
},
|
138
|
+
{
|
139
|
+
"id": "c926b1effd1ef30b48d7331cf62eef3d8b1ab53f",
|
140
|
+
"message": "Create build-clean executable and rename clean contorller to cleaner"
|
141
|
+
},
|
142
|
+
{
|
143
|
+
"id": "ed5c8f8460accd3db414f675893a037bb506f3e4",
|
144
|
+
"message": "Move module Model into Model::Cleaner"
|
145
|
+
},
|
146
|
+
{
|
147
|
+
"id": "880d43d45846d3f422b569b7a1f7cd769933b643",
|
148
|
+
"message": "Fix grammar in exception message"
|
149
|
+
},
|
150
|
+
{
|
151
|
+
"id": "543206c0c679671360de75761664f76a447972d9",
|
152
|
+
"message": "remove shadowed getter for `status`"
|
153
|
+
},
|
154
|
+
{
|
155
|
+
"id": "5a1d6913f1a348462f336013a7557647ef6cf4cb",
|
156
|
+
"message": "Merge pull request #9 from rapid7/configuration"
|
157
|
+
},
|
158
|
+
{
|
159
|
+
"id": "8d8b08acc05c20c8acff69eafe46914930288a54",
|
160
|
+
"message": "Clean up usage of method_missing and fix/dedup some getter code in attributes"
|
161
|
+
},
|
162
|
+
{
|
163
|
+
"id": "b04825102b97285b27b98e29a76183b54bb395b7",
|
164
|
+
"message": "First pass at adding RSpec tests"
|
165
|
+
},
|
166
|
+
{
|
167
|
+
"id": "0c14d1aa7218af12e5e6d8e0771981afd61d8747",
|
168
|
+
"message": "Remove data_bag and environment paths from defaults. These should be matched with a vendor config in a site or build-specific Buildfile"
|
169
|
+
},
|
170
|
+
{
|
171
|
+
"id": "bd6331500fcd9e0eac6983faf8628a6af5f3dc08",
|
172
|
+
"message": "Spelling"
|
173
|
+
},
|
174
|
+
{
|
175
|
+
"id": "fc19a72782b83962030b6ca1ee79da6da9ede372",
|
176
|
+
"message": "Adds a central configuration layer"
|
177
|
+
},
|
178
|
+
{
|
179
|
+
"id": "50d6d78e2c0b189380714221f56e068476ed47fc",
|
180
|
+
"message": "First pass at a composite configuration layer"
|
181
|
+
},
|
182
|
+
{
|
183
|
+
"id": "3ad70114e85745fe3fe6039d5b8d23e65b4bfde5",
|
184
|
+
"message": "Merge pull request #6 from rapid7/find_amazon_windows_baseami",
|
185
|
+
"tags": [
|
186
|
+
"0.3.15"
|
187
|
+
]
|
188
|
+
},
|
189
|
+
{
|
190
|
+
"id": "13cd4aeeca1c87c607dddc654c798b4278e80818",
|
191
|
+
"message": "Support for finding the latest Windows AMI from Amazon (defaults to 2012 R2)"
|
192
|
+
},
|
193
|
+
{
|
194
|
+
"id": "560dffc6680b6ad633352b5f06a2445602c24f67",
|
195
|
+
"message": "Merge pull request #5 from rapid7/negative-filtering"
|
196
|
+
},
|
197
|
+
{
|
198
|
+
"id": "d6a6795a268531bd56df84ef49e104f950ad969e",
|
199
|
+
"message": "Implement negative resource filtering"
|
200
|
+
},
|
201
|
+
{
|
202
|
+
"id": "145f71212a2679763f0e45ac6e0bcc0dc7795146",
|
203
|
+
"message": "Exit the clean task with a non-zero code when errors occur to make Jenkins jobs fail."
|
204
|
+
},
|
205
|
+
{
|
206
|
+
"id": "0e5ab9fd83371e725614ec73b252b70b298c8eb0",
|
207
|
+
"message": "Merge pull request #4 from rapid7/complete-cleaner",
|
208
|
+
"tags": [
|
209
|
+
"0.3.14"
|
210
|
+
]
|
211
|
+
},
|
212
|
+
{
|
213
|
+
"id": "29149adaa2286d35466b7a77761c8d4ab6eb5765",
|
214
|
+
"message": "Add API calls to delete resources"
|
215
|
+
},
|
216
|
+
{
|
217
|
+
"id": "19bc4022fdd8acdb8f36422d5b030e05aed7b581",
|
218
|
+
"message": "returned berkshelf to 3.2"
|
219
|
+
},
|
220
|
+
{
|
221
|
+
"id": "9100add6f6defd1e523709f63ffb30eabc905bb3",
|
222
|
+
"message": "revert berkshelf to 3.2"
|
223
|
+
},
|
224
|
+
{
|
225
|
+
"id": "94e8d1784e4215459288f343e8f1ff1319ce58f2",
|
226
|
+
"message": "updated berkshelf to 4.0.1"
|
227
|
+
},
|
228
|
+
{
|
229
|
+
"id": "a2e694f8e3954b24a8269a8957b920f2a4dea837",
|
230
|
+
"message": "updated berkshelf to 4.0 as berkshelf-api-clinet required to be on 2.0.0 to run"
|
231
|
+
},
|
232
|
+
{
|
233
|
+
"id": "3c438f6f1c3e4d6da11f19e7f9355a50170a478e",
|
234
|
+
"message": "Chef::Cookbook::Medata.from_json expects JSON, not a filepath",
|
235
|
+
"tags": [
|
236
|
+
"0.3.13"
|
237
|
+
]
|
238
|
+
},
|
239
|
+
{
|
240
|
+
"id": "1e03d71f7f93861139bfc471cecd95b4c7e721da",
|
241
|
+
"message": "Handle Pathname obects in berks tasks",
|
242
|
+
"tags": [
|
243
|
+
"0.3.12"
|
244
|
+
]
|
245
|
+
},
|
246
|
+
{
|
247
|
+
"id": "bf9581b0efef5585a6908c13b1d6224b56d7fc7a",
|
248
|
+
"message": "Merge pull request #3 from rapid7/cookbook-push",
|
249
|
+
"tags": [
|
250
|
+
"0.3.11"
|
251
|
+
]
|
252
|
+
},
|
253
|
+
{
|
254
|
+
"id": "ea9927b2d5d4ea07deea4909a5dd13e249e11e46",
|
255
|
+
"message": "Require thor-scmversion in the Tasks module, not Util"
|
256
|
+
},
|
257
|
+
{
|
258
|
+
"id": "6be176bc0b2f7c0cb968b5ad9a331bc43bd5ee46",
|
259
|
+
"message": "Add build and push tasks for cookbooks"
|
260
|
+
},
|
261
|
+
{
|
262
|
+
"id": "8e6be1d6ac1347e6961e0a74a13ae3639414dcef",
|
263
|
+
"message": "Extend Chef::Cookbook::Metadata"
|
264
|
+
},
|
265
|
+
{
|
266
|
+
"id": "e7584e73c56aa9b32f4f57cd3ac13e6715d9bb53",
|
267
|
+
"message": "Bring in ignorefile"
|
268
|
+
},
|
269
|
+
{
|
270
|
+
"id": "e8d9dbe9962b933eac7eeb990729a17bd709ce63",
|
271
|
+
"message": "Add homepage to gemspec",
|
272
|
+
"tags": [
|
273
|
+
"0.3.10"
|
274
|
+
]
|
275
|
+
},
|
276
|
+
{
|
277
|
+
"id": "31ba2630e260edc8ac0db80499bb46e2f053562a",
|
278
|
+
"message": "Merge pull request #2 from rapid7/fix-cookbook-path"
|
279
|
+
},
|
280
|
+
{
|
281
|
+
"id": "f4105a9bee4aeba116c54cc05d0e8a7643f4f775",
|
282
|
+
"message": "Fix cookbook path resolution"
|
283
|
+
},
|
284
|
+
{
|
285
|
+
"id": "9303364ba5e298271e4dde6317100fe84bcd49d6",
|
286
|
+
"message": "Some opinionated changes... -> Error message when executed outside of Bundler -> Name of CONSTANT that the gem path is stored in"
|
287
|
+
},
|
288
|
+
{
|
289
|
+
"id": "20106bebfb63163bbb899b2106f1174938c805e3",
|
290
|
+
"message": "Update vagrant version in config instructions"
|
291
|
+
},
|
292
|
+
{
|
293
|
+
"id": "bae8761a1b54bd3a26a3de2b4e013b9082684c81",
|
294
|
+
"message": "Add a helper to reference files relative to pwd"
|
295
|
+
},
|
296
|
+
{
|
297
|
+
"id": "d6075989bb7b7b7d4ef21bb0ba6134a07945b8dd",
|
298
|
+
"message": "Move packer helpers into Util namespace"
|
299
|
+
},
|
300
|
+
{
|
301
|
+
"id": "773c3cdd824d2c77bba13c2f4a8116404f589487",
|
302
|
+
"message": "Merge pull request #1 from rapid7/ec2-clean-tasks"
|
303
|
+
},
|
304
|
+
{
|
305
|
+
"id": "e4cc2f2531ccbfca956666956397ddb140c1fe5e",
|
306
|
+
"message": "Whelp, the launch config cleaner seemed to work..."
|
307
|
+
},
|
308
|
+
{
|
309
|
+
"id": "2b748d8aee8d8b2de2529a1ecceb319108bf9084",
|
310
|
+
"message": "Fix packer install/build paths",
|
311
|
+
"tags": [
|
312
|
+
"0.3.9"
|
313
|
+
]
|
314
|
+
},
|
315
|
+
{
|
316
|
+
"id": "5ba1233d6b6278777a57f7920d3d139c339464f8",
|
317
|
+
"message": "Use AwsException in Clean controller"
|
318
|
+
},
|
319
|
+
{
|
320
|
+
"id": "99ca8ec34d98beca0ded33091e311a5a83fb131b",
|
321
|
+
"message": "Fix argument lists passed to invocations in the 'all' task"
|
322
|
+
},
|
323
|
+
{
|
324
|
+
"id": "4d664756ef6d13aac9fbf3f6010d5b06c9ea41df",
|
325
|
+
"message": "Add a wrapper exception for AWS-SDK service errors"
|
326
|
+
},
|
327
|
+
{
|
328
|
+
"id": "c24a83c7a0645c76c6e39dc055cf999197a62486",
|
329
|
+
"message": "Abstract the status method from LimitException into a generic TaskException class that cen be reused for other Thor task exceptions"
|
330
|
+
},
|
331
|
+
{
|
332
|
+
"id": "072dd13091ccbac2fca30302c3a6795d1043f6ad",
|
333
|
+
"message": "Add exception handling to the Clean controller"
|
334
|
+
},
|
335
|
+
{
|
336
|
+
"id": "c32f0ea60f395226b913528263acbe9281fafd41",
|
337
|
+
"message": "Add default to reject argument"
|
338
|
+
},
|
339
|
+
{
|
340
|
+
"id": "94a41faef678fbf86a459b2922185d8b264332fc",
|
341
|
+
"message": "Fix class header comment, override the safety LIMIT constant for several resources"
|
342
|
+
},
|
343
|
+
{
|
344
|
+
"id": "e241d71098c9fdca904ff2a243bd845eab38ae7f",
|
345
|
+
"message": "Clean up data model and logic that determines if a resource is in use"
|
346
|
+
},
|
347
|
+
{
|
348
|
+
"id": "bd0b2585263d25de51d6582443fc2dd5c5602dd7",
|
349
|
+
"message": "Starting usage docs for clean tasks"
|
350
|
+
},
|
351
|
+
{
|
352
|
+
"id": "861b642a63342b4d51c5535bf419f01145cb6ecb",
|
353
|
+
"message": "First pass at tasks to clean up abandoned EC2 resources"
|
354
|
+
},
|
355
|
+
{
|
356
|
+
"id": "f0b7b990ac953eaccc5725ec498be00ffb0550fe",
|
357
|
+
"message": "Move AWS clients into util"
|
358
|
+
},
|
359
|
+
{
|
360
|
+
"id": "1d9120c0621a020fac5a65b952578031e6d0340c",
|
361
|
+
"message": "Fix AMI ID matching logic in packer:build"
|
362
|
+
},
|
363
|
+
{
|
364
|
+
"id": "bfb61e34baa264a11a9022e8867e1b1755979bea",
|
365
|
+
"message": "Bump version",
|
366
|
+
"tags": [
|
367
|
+
"0.3.8"
|
368
|
+
]
|
369
|
+
},
|
370
|
+
{
|
371
|
+
"id": "c6893e182bf1e56766094ae5bc515e6557c1a5a9",
|
372
|
+
"message": "Add option to disable version:current task"
|
373
|
+
},
|
374
|
+
{
|
375
|
+
"id": "f490a14a428db458be63748da544547956babb36",
|
376
|
+
"message": "Bump version",
|
377
|
+
"tags": [
|
378
|
+
"0.3.7"
|
379
|
+
]
|
380
|
+
},
|
381
|
+
{
|
382
|
+
"id": "fa6883ba10217ae8347ec90c96942814f07bc28e",
|
383
|
+
"message": "Fix berksfile finder logic"
|
384
|
+
},
|
385
|
+
{
|
386
|
+
"id": "67d8551a5a3da923ef155161e90d924a48cbeb8a",
|
387
|
+
"message": "Bump version",
|
388
|
+
"tags": [
|
389
|
+
"0.3.6"
|
390
|
+
]
|
391
|
+
},
|
392
|
+
{
|
393
|
+
"id": "db948f53914ca08df25adb077cee6b4bfb2e8b2d",
|
394
|
+
"message": "Fix packer:find_ami task"
|
395
|
+
},
|
396
|
+
{
|
397
|
+
"id": "e231d947bcc70d4bf0fad231f8ff2a0ce520b844",
|
398
|
+
"message": "Bump version",
|
399
|
+
"tags": [
|
400
|
+
"0.3.5"
|
401
|
+
]
|
402
|
+
},
|
403
|
+
{
|
404
|
+
"id": "b3d75ec63987368009942092de38f16dbd716e82",
|
405
|
+
"message": "Update packer:install to use 0.8.1"
|
406
|
+
},
|
407
|
+
{
|
408
|
+
"id": "468e7515ad88fa61c0f59a1a599d3da69ce549ce",
|
409
|
+
"message": "Bump version",
|
410
|
+
"tags": [
|
411
|
+
"0.3.4"
|
412
|
+
]
|
413
|
+
},
|
414
|
+
{
|
415
|
+
"id": "671e874ef03fa9dd35f45f264a1fd60eafad5ac1",
|
416
|
+
"message": "Use Dir to find bin scripts in gemspec"
|
417
|
+
},
|
418
|
+
{
|
419
|
+
"id": "fbab43f58cc54d5ab58bd43293360b91e4b8fc49",
|
420
|
+
"message": "Add output capture from Packer to find AMI ids"
|
421
|
+
},
|
422
|
+
{
|
423
|
+
"id": "5816a03973e2c8ba734b3aea85cfda458bcdceee",
|
424
|
+
"message": "Add execution checks for Bundler and Vagrant"
|
425
|
+
},
|
426
|
+
{
|
427
|
+
"id": "52742381f8f3cfa8f5079d55439e0fa3c4b05521",
|
428
|
+
"message": "Add VERSION file to git repo while this is in development",
|
429
|
+
"tags": [
|
430
|
+
"0.3.3"
|
431
|
+
]
|
432
|
+
},
|
433
|
+
{
|
434
|
+
"id": "d33519df2a10d134c454fa05a7a91e445cae7fb4",
|
435
|
+
"message": "Pass options from berks upload to berks local"
|
436
|
+
},
|
437
|
+
{
|
438
|
+
"id": "abafd9de16c6a77f989d33a00037060a80a73f11",
|
439
|
+
"message": "Run Berks install before upload. Upload requires a Berksfile.lock",
|
440
|
+
"tags": [
|
441
|
+
"0.3.2"
|
442
|
+
]
|
443
|
+
},
|
444
|
+
{
|
445
|
+
"id": "6ad2938a70d3f0b1ff9578d116c88ea3e615b7e2",
|
446
|
+
"message": "Fix thor-scmversion invocation in cookbook tasks",
|
447
|
+
"tags": [
|
448
|
+
"0.3.1"
|
449
|
+
]
|
450
|
+
},
|
451
|
+
{
|
452
|
+
"id": "51aa9de31c98873b101aeaeac3b83ce99c1169d8",
|
453
|
+
"message": "Add more tasks to wrap berkshelf, and vagrant",
|
454
|
+
"tags": [
|
455
|
+
"0.3.0"
|
456
|
+
]
|
457
|
+
},
|
458
|
+
{
|
459
|
+
"id": "17a514cf3eedcb143472c4351cb84ca695bbd68a",
|
460
|
+
"message": "Add first packer tasks, seperate shared logic from tasks, complete ami tasks",
|
461
|
+
"tags": [
|
462
|
+
"0.2.0"
|
463
|
+
]
|
464
|
+
},
|
465
|
+
{
|
466
|
+
"id": "7b11c43da2dd90f9cfd28f1e2d12590e716f4bfe",
|
467
|
+
"message": "Fix handling of multiple results",
|
468
|
+
"tags": [
|
469
|
+
"0.1.1"
|
470
|
+
]
|
471
|
+
},
|
472
|
+
{
|
473
|
+
"id": "760040713d5b59981c639dd9523b7e2d8a24c8ba",
|
474
|
+
"message": "Basic Ubuntu iamge lookup",
|
475
|
+
"tags": [
|
476
|
+
"0.1.0"
|
477
|
+
]
|
478
|
+
},
|
479
|
+
{
|
480
|
+
"id": "0893bfd3477c1373e2beeb53cf5f872ee70c0a91",
|
481
|
+
"message": "Starting Gem"
|
482
|
+
}
|
483
|
+
]
|