cocina 0.1.2 → 0.1.3
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.travis.yml +1 -0
- data/cocina.gemspec +0 -1
- data/example/.kitchen.yml +18 -2
- data/example/Berksfile +10 -0
- data/example/README.md +31 -0
- data/lib/cocina/cli.rb +15 -10
- data/lib/cocina/config.rb +1 -4
- data/lib/cocina/version.rb +1 -1
- metadata +3 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a635ff56f1db7bce214b644516a9928a4945526c
|
4
|
+
data.tar.gz: 5e9bd1f239c1117f61444f0a4a31c15901544379
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7d1ca609ce1fa3edfbb6e6ab4e592d948d6c5ae8e82837bac5aa667298d00b9a5a18f7978252defb052f7f955e3687616c80d160e6582b23986c611bbb9c3a52
|
7
|
+
data.tar.gz: 2b364b05fb98210bee3601fd36bb3f8e30f73a0b264d02526716303a2ae51276dda1c6f245ea95826353ca33dc71437606c8ed85a963d7ed283d8bfeadfa9915
|
data/.travis.yml
CHANGED
data/cocina.gemspec
CHANGED
@@ -24,7 +24,6 @@ Gem::Specification.new do |spec|
|
|
24
24
|
spec.add_development_dependency 'rspec'
|
25
25
|
spec.add_development_dependency 'pry'
|
26
26
|
|
27
|
-
spec.add_dependency 'logify', '~> 0.2.0'
|
28
27
|
spec.add_dependency 'berkshelf', '~> 4.0.1'
|
29
28
|
spec.add_dependency 'test-kitchen', '~> 1.4.2'
|
30
29
|
spec.add_dependency 'kitchen-vagrant', '~> 0.19.0'
|
data/example/.kitchen.yml
CHANGED
@@ -10,14 +10,30 @@ platforms:
|
|
10
10
|
- name: centos-7.1
|
11
11
|
|
12
12
|
suites:
|
13
|
-
- name:
|
13
|
+
- name: db
|
14
|
+
driver:
|
15
|
+
network:
|
16
|
+
- ["private_network", ip: "10.11.11.10"]
|
14
17
|
run_list:
|
18
|
+
- counter_redis::default
|
15
19
|
attributes:
|
16
20
|
|
17
|
-
- name:
|
21
|
+
- name: app
|
22
|
+
driver:
|
23
|
+
network:
|
24
|
+
- ["private_network", ip: "10.11.11.11"]
|
18
25
|
run_list:
|
26
|
+
- counter_app::default
|
19
27
|
attributes:
|
28
|
+
counter_app:
|
29
|
+
redis_host: "10.11.11.10"
|
20
30
|
|
21
31
|
- name: web
|
32
|
+
driver:
|
33
|
+
network:
|
34
|
+
- ["private_network", ip: "10.11.11.12"]
|
22
35
|
run_list:
|
36
|
+
- counter_nginx::default
|
23
37
|
attributes:
|
38
|
+
counter_app:
|
39
|
+
host: "10.11.11.11"
|
data/example/Berksfile
ADDED
@@ -0,0 +1,10 @@
|
|
1
|
+
source 'https://supermarket.chef.io'
|
2
|
+
|
3
|
+
cookbook 'counter_app',
|
4
|
+
git: 'https://github.com/brandocorp-cookbooks/counter_app.git'
|
5
|
+
|
6
|
+
cookbook 'counter_nginx',
|
7
|
+
git: 'https://github.com/brandocorp-cookbooks/counter_nginx.git'
|
8
|
+
|
9
|
+
cookbook 'counter_redis',
|
10
|
+
git: 'https://github.com/brandocorp-cookbooks/counter_redis.git'
|
data/example/README.md
ADDED
@@ -0,0 +1,31 @@
|
|
1
|
+
# Instructions
|
2
|
+
|
3
|
+
## Install
|
4
|
+
|
5
|
+
Install the Cocina gem in your preferred ruby.
|
6
|
+
|
7
|
+
### Example: ChefDK
|
8
|
+
|
9
|
+
```
|
10
|
+
chef gem install cocina
|
11
|
+
```
|
12
|
+
|
13
|
+
### Example: RVM
|
14
|
+
|
15
|
+
```
|
16
|
+
rvm use ruby@cocina --create
|
17
|
+
gem install cocina
|
18
|
+
```
|
19
|
+
|
20
|
+
## Converge
|
21
|
+
|
22
|
+
```
|
23
|
+
cocina web-ubuntu-1404
|
24
|
+
```
|
25
|
+
|
26
|
+
You should see output like the following:
|
27
|
+
|
28
|
+
```
|
29
|
+
-----> Running for: web-ubuntu-1404
|
30
|
+
Dependencies: ["db-ubuntu-1404", "app-ubuntu-1404"]
|
31
|
+
```
|
data/lib/cocina/cli.rb
CHANGED
@@ -1,27 +1,28 @@
|
|
1
|
-
require 'logify'
|
2
1
|
require 'kitchen'
|
3
2
|
require 'kitchen/cli'
|
4
3
|
|
5
4
|
module Cocina
|
6
5
|
class CLI
|
7
|
-
include Logify
|
8
6
|
|
9
7
|
attr_reader :config, :instances, :collection, :dependencies
|
10
|
-
attr_reader :primary_instance, :primary_dependencies
|
8
|
+
attr_reader :primary_instance, :primary_dependencies, :logger
|
11
9
|
|
12
10
|
def initialize(target)
|
13
11
|
super()
|
14
12
|
|
15
|
-
Logify.level = :debug
|
16
|
-
|
17
13
|
@dependencies = []
|
18
14
|
@config = Cocina::Config.new('Cocinafile')
|
15
|
+
@logger = Kitchen::Logger.new(
|
16
|
+
stdout: STDOUT,
|
17
|
+
color: :white,
|
18
|
+
progname: 'Cocina'
|
19
|
+
)
|
19
20
|
@primary_instance = instance(target)
|
20
21
|
@primary_dependencies = primary_instance.dependencies
|
21
22
|
end
|
22
23
|
|
23
24
|
def run
|
24
|
-
|
25
|
+
log_banner "Running for: #{primary_instance.name}"
|
25
26
|
|
26
27
|
prepare_dependencies
|
27
28
|
converge_dependencies
|
@@ -42,17 +43,17 @@ module Cocina
|
|
42
43
|
end
|
43
44
|
|
44
45
|
def converge_dependencies
|
45
|
-
|
46
|
+
logger.info "Dependencies: #{dependencies}"
|
46
47
|
dependencies.each {|dep| converge_dependency dep }
|
47
48
|
end
|
48
49
|
|
49
50
|
def converge_dependency(dep)
|
50
|
-
|
51
|
+
log_banner "Converging <#{dep}>"
|
51
52
|
instance(dep).converge
|
52
53
|
end
|
53
54
|
|
54
55
|
def cleanup
|
55
|
-
|
56
|
+
log_banner "Cleaning up all dependencies"
|
56
57
|
destroy_dependencies
|
57
58
|
primary_instance.destroy
|
58
59
|
nil
|
@@ -60,9 +61,13 @@ module Cocina
|
|
60
61
|
|
61
62
|
def destroy_dependencies
|
62
63
|
dependencies.each do |dep|
|
63
|
-
|
64
|
+
logger.info "Destroying #{dep}"
|
64
65
|
instance(dep).destroy
|
65
66
|
end
|
66
67
|
end
|
68
|
+
|
69
|
+
def log_banner(msg)
|
70
|
+
logger.banner "#{msg}"
|
71
|
+
end
|
67
72
|
end
|
68
73
|
end
|
data/lib/cocina/config.rb
CHANGED
@@ -2,10 +2,8 @@ require 'cocina/instance'
|
|
2
2
|
|
3
3
|
module Cocina
|
4
4
|
class Config
|
5
|
-
include Logify
|
6
5
|
|
7
|
-
attr_reader :cocinafile
|
8
|
-
attr_reader :instances
|
6
|
+
attr_reader :cocinafile, :instances
|
9
7
|
|
10
8
|
def initialize(file)
|
11
9
|
@cocinafile = file
|
@@ -41,7 +39,6 @@ module Cocina
|
|
41
39
|
|
42
40
|
def instance(id, &block)
|
43
41
|
return true if instance?(id)
|
44
|
-
log.info "Building Instance for #{id}"
|
45
42
|
cocina_instance = Cocina::Instance.new(id)
|
46
43
|
cocina_instance.instance_eval(&block)
|
47
44
|
cocina_instance.runner = kitchen_instance(id)
|
data/lib/cocina/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cocina
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brandon Raabe
|
@@ -66,20 +66,6 @@ dependencies:
|
|
66
66
|
- - ">="
|
67
67
|
- !ruby/object:Gem::Version
|
68
68
|
version: '0'
|
69
|
-
- !ruby/object:Gem::Dependency
|
70
|
-
name: logify
|
71
|
-
requirement: !ruby/object:Gem::Requirement
|
72
|
-
requirements:
|
73
|
-
- - "~>"
|
74
|
-
- !ruby/object:Gem::Version
|
75
|
-
version: 0.2.0
|
76
|
-
type: :runtime
|
77
|
-
prerelease: false
|
78
|
-
version_requirements: !ruby/object:Gem::Requirement
|
79
|
-
requirements:
|
80
|
-
- - "~>"
|
81
|
-
- !ruby/object:Gem::Version
|
82
|
-
version: 0.2.0
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
70
|
name: berkshelf
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -144,7 +130,9 @@ files:
|
|
144
130
|
- bin/cocina
|
145
131
|
- cocina.gemspec
|
146
132
|
- example/.kitchen.yml
|
133
|
+
- example/Berksfile
|
147
134
|
- example/Cocinafile
|
135
|
+
- example/README.md
|
148
136
|
- lib/cocina.rb
|
149
137
|
- lib/cocina/cli.rb
|
150
138
|
- lib/cocina/config.rb
|