builderator 0.3.15 → 1.0.0.pre.rc.1
Sign up to get free protection for your applications and to get access to all the features.
- 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
|
+
]
|