logical-construct 0.0.4 → 0.0.5

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.
@@ -12,7 +12,7 @@ module LogicalConstruct
12
12
  setting :target_address, nil
13
13
  setting :target_port, 51076
14
14
  runtime_setting :target_url
15
- setting :resolutions, {}
15
+ setting :resolutions
16
16
  runtime_setting :web_resolutions
17
17
 
18
18
  def resolve_runtime_configuration
@@ -81,7 +81,7 @@ module LogicalConstruct
81
81
  setting :target_protocol, "http"
82
82
  setting(:target_address, nil).isnt(:copiable)
83
83
  setting :target_port, 51076
84
- setting :resolutions, {}
84
+ setting :resolutions
85
85
  setting :marshalling_path, "marshall"
86
86
 
87
87
  setting(:secret_data, nested {
@@ -103,8 +103,8 @@ module LogicalConstruct
103
103
  })
104
104
 
105
105
  setting :json_attribs_path
106
- setting :roles, {}
107
- setting :node_attribs, { "run_list" => [] }
106
+ setting :roles
107
+ setting :node_attribs
108
108
  setting :json_attribs, ""
109
109
 
110
110
  def default_configuration(core)
@@ -113,6 +113,9 @@ module LogicalConstruct
113
113
  self.cookbooks.path = "cookbooks"
114
114
  self.secret_data.path = "data-bags/secret"
115
115
  self.normal_data.path = "data-bags"
116
+ self.resolutions = {}
117
+ self.roles = {}
118
+ self.node_attribs = { "run_list" => [] }
116
119
  end
117
120
 
118
121
  def resolve_configuration
@@ -146,8 +149,11 @@ module LogicalConstruct
146
149
  in_namespace do
147
150
  directory marshalling_path
148
151
 
149
- task :collect, [:ipaddr, :role] do |task, args|
152
+ task :collect, [:ipaddr] do |task, args|
150
153
  self.target_address = args[:ipaddr]
154
+ end
155
+
156
+ task :build_json_attribs, [:role] do |task, args|
151
157
  unless args[:role].nil?
152
158
  self.node_attribs["run_list"] = roles[args[:role]]
153
159
  end
@@ -155,6 +161,11 @@ module LogicalConstruct
155
161
  resolutions["chef_config:json_attribs"] ||= json_attribs
156
162
  end
157
163
 
164
+ desc "Print attribs (optionally: for :role)"
165
+ task :inspect_attribs, [:role] => :build_json_attribs do
166
+ puts json_attribs
167
+ end
168
+
158
169
  file secret_data.tarball_path => [marshalling_path] + secret_data.file_list do
159
170
  cmd("tar", "--exclude **/*.sw?", "-czf", secret_data.tarball_path, secret_data.path).must_succeed!
160
171
  end
@@ -170,17 +181,24 @@ module LogicalConstruct
170
181
  cmd("tar", "--exclude .git", "--exclude **/*.sw?", "-czf", cookbooks.tarball_path, cookbooks.path).must_succeed!
171
182
  end
172
183
 
173
- manifest = LogicalConstruct::GenerateManifest.new(self, :manifest => [cookbooks.tarball_path, :collect]) do |manifest|
184
+ manifest = LogicalConstruct::GenerateManifest.new(self, :manifest =>
185
+ [
186
+ cookbooks.tarball_path,
187
+ secret_data.tarball_path,
188
+ normal_data.tarball_path,
189
+ :collect
190
+ ]) do |manifest|
174
191
  manifest.receiving_name = "configuration:Manifest"
175
192
  end
176
193
 
177
- WebConfigure.new(:web_configure => [:collect, :manifest, cookbooks.tarball_path]) do |task|
194
+ WebConfigure.new(:web_configure => [:collect, :build_json_attribs, :manifest, cookbooks.tarball_path]) do |task|
178
195
  self.proxy_settings_to(task)
179
196
  task.target_address = proxy_value.target_address
180
197
  end
181
198
  end
182
199
 
183
- task root_task, [:ipaddr] => self[:web_configure]
200
+ desc "Provision :ipaddr with specified configs (optionally: for :role)"
201
+ task root_task, [:ipaddr, :role] => self[:web_configure]
184
202
  end
185
203
  end
186
204
  end
@@ -28,14 +28,13 @@ module LogicalConstruct
28
28
  end
29
29
 
30
30
  def define
31
- file target_path => [target_dir, valise.find("templates/" + source_path).full_path, Rake.application.rakefile] do
31
+ task base_name => [target_dir, valise.find("templates/" + source_path).full_path, Rake.application.rakefile] do
32
32
  finalize_configuration
33
- p extra
34
33
  File::open(target_path, "w") do |file|
35
34
  file.write render(source_path)
36
35
  end
37
36
  end
38
- file target_path => target_dir
37
+ task base_name => target_dir
39
38
  task :local_setup => target_path
40
39
  end
41
40
  end
@@ -86,7 +85,6 @@ module LogicalConstruct
86
85
  end
87
86
  end
88
87
  end
89
- desc "Template files to be created on the remote server"
90
88
  task root_task => [rakefile.target_path] + in_namespace(:standalone)
91
89
  task root_task => [initd.target_path] + in_namespace(:standalone)
92
90
  task :local_setup => root_task
@@ -70,7 +70,6 @@ module LogicalConstruct
70
70
  end
71
71
  bracket_task(:remote_groundwork, :construct_dir, :remote_config)
72
72
 
73
- desc "Copy locally generated files to the remote server"
74
73
  task root_task => in_namespace(:construct_dir)
75
74
  task :remote_config => root_task
76
75
  end
@@ -13,7 +13,7 @@ module LogicalConstruct
13
13
  end
14
14
 
15
15
  def define
16
- remote_task(:create, "Create #{construct_dir} on the remote server") do |task|
16
+ remote_task(:create) do |task|
17
17
  task.command = cmd "mkdir", "-p", construct_dir
18
18
  end
19
19
  task :remote_groundwork => self[:create]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logical-construct
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.5
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-10-25 00:00:00.000000000 Z
12
+ date: 2012-11-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: corundum
16
- requirement: &86134750 !ruby/object:Gem::Requirement
16
+ requirement: &75949720 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ~>
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: 0.0.1
22
22
  type: :development
23
23
  prerelease: false
24
- version_requirements: *86134750
24
+ version_requirements: *75949720
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: mattock
27
- requirement: &85506000 !ruby/object:Gem::Requirement
27
+ requirement: &75947710 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 0.3.4
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *85506000
35
+ version_requirements: *75947710
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: sinatra
38
- requirement: &85516840 !ruby/object:Gem::Requirement
38
+ requirement: &75945230 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: 1.3.3
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *85516840
46
+ version_requirements: *75945230
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rest-client
49
- requirement: &85530420 !ruby/object:Gem::Requirement
49
+ requirement: &75955280 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: 1.6.7
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *85530420
57
+ version_requirements: *75955280
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: nokogiri
60
- requirement: &85528960 !ruby/object:Gem::Requirement
60
+ requirement: &76199670 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -69,10 +69,10 @@ dependencies:
69
69
  - 4
70
70
  type: :runtime
71
71
  prerelease: false
72
- version_requirements: *85528960
72
+ version_requirements: *76199670
73
73
  - !ruby/object:Gem::Dependency
74
74
  name: json
75
- requirement: &85527750 !ruby/object:Gem::Requirement
75
+ requirement: &76197300 !ruby/object:Gem::Requirement
76
76
  none: true
77
77
  requirements:
78
78
  - - ! '>='
@@ -80,7 +80,7 @@ dependencies:
80
80
  version: '0'
81
81
  type: :runtime
82
82
  prerelease: false
83
- version_requirements: *85527750
83
+ version_requirements: *76197300
84
84
  description: ! ' Like Vagrant? Missing AWS? Here you go. Limited Rakefiles to
85
85
  do something like that.
86
86
 
@@ -144,7 +144,7 @@ rdoc_options:
144
144
  - --main
145
145
  - doc/README
146
146
  - --title
147
- - logical-construct-0.0.4 RDoc
147
+ - logical-construct-0.0.5 RDoc
148
148
  require_paths:
149
149
  - lib/
150
150
  required_ruby_version: !ruby/object:Gem::Requirement
@@ -155,7 +155,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
155
155
  version: '0'
156
156
  segments:
157
157
  - 0
158
- hash: -902701795
158
+ hash: -522629425
159
159
  required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  none: false
161
161
  requirements: