org-converge 0.0.16 → 0.0.17
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/README.org +28 -23
- data/TODO +6 -0
- data/bin/org-converge +1 -1
- data/bin/org-run +1 -1
- data/lib/org-converge/command.rb +2 -0
- data/lib/org-converge/engine.rb +1 -1
- data/lib/org-converge/version.rb +1 -1
- data/spec/converge_examples/remote_dir/remote-dir.org +1 -1
- data/spec/converge_spec.rb +15 -0
- data/vagrant.org +4 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6cf889f8ef7be8359861d16b9c6ce2a686de0044
|
4
|
+
data.tar.gz: 6cda1842ca4d7862c7f8365c307c3e529e64e206
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c7148d17f782828501fe134b62eef994acec46de820d4de785ca9365831d9f28156e21cdf4e24c30b7bf148f6957b7a834dcce82cca1f6a3263708174f940397
|
7
|
+
data.tar.gz: 322e52f96e1283746958de21cd84e4db78e069cd2eb9bfd8bbf727516f9ee0bbaeed0107af04497ec9dae103a33d6041a39df41cfe8c11614f754e38bf88bb01
|
data/README.org
CHANGED
@@ -47,13 +47,13 @@
|
|
47
47
|
|
48
48
|
#+begin_src sh
|
49
49
|
,#+TITLE: Sample parallel run
|
50
|
-
|
50
|
+
|
51
51
|
,#+name: infinite-worker-in-ruby
|
52
52
|
,#+begin_src ruby
|
53
53
|
$stdout.sync = true
|
54
54
|
loop { puts "working!"; sleep 1; }
|
55
55
|
,#+end_src
|
56
|
-
|
56
|
+
|
57
57
|
,#+name: infinite-worker-in-python
|
58
58
|
,#+begin_src python :procs 2
|
59
59
|
import sys
|
@@ -92,22 +92,22 @@
|
|
92
92
|
#+begin_src sh
|
93
93
|
,#+TITLE: Sample sequential run
|
94
94
|
,#+runmode: sequential
|
95
|
-
|
95
|
+
|
96
96
|
,#+name: first
|
97
97
|
,#+begin_src sh
|
98
98
|
echo "first"
|
99
99
|
,#+end_src
|
100
|
-
|
100
|
+
|
101
101
|
,#+name: second
|
102
102
|
,#+begin_src sh
|
103
103
|
echo "second"
|
104
104
|
,#+end_src
|
105
|
-
|
105
|
+
|
106
106
|
,#+name: third
|
107
107
|
,#+begin_src sh
|
108
108
|
echo "third"
|
109
109
|
,#+end_src
|
110
|
-
|
110
|
+
|
111
111
|
,#+name: fourth
|
112
112
|
,#+begin_src sh
|
113
113
|
echo "fourth"
|
@@ -149,9 +149,9 @@
|
|
149
149
|
config files on a server by writing the following on a ~server.org~ file...
|
150
150
|
|
151
151
|
#+begin_src sh
|
152
|
-
|
152
|
+
|
153
153
|
Configuration for a component that shoul be run in multitenant mode:
|
154
|
-
|
154
|
+
|
155
155
|
,#+begin_src yaml :tangle /etc/component.yml
|
156
156
|
multitenant: false
|
157
157
|
status_port: 10004
|
@@ -161,6 +161,10 @@ status_port: 10004
|
|
161
161
|
Then run:
|
162
162
|
|
163
163
|
: sudo org-tangle server.org
|
164
|
+
|
165
|
+
*Note:* The above tangle command is a reimplementation of the tangling functionality from Org mode using Ruby.
|
166
|
+
If you are interested in tangling from the command line without losing functionality and have available a local Emacs Org mode install,
|
167
|
+
the following project can be useful: <https://github.com/ngirard/org-noweb>
|
164
168
|
|
165
169
|
*** Idempotent runs
|
166
170
|
|
@@ -171,20 +175,20 @@ status_port: 10004
|
|
171
175
|
|
172
176
|
#+begin_src sh
|
173
177
|
,** Installing the dependencies
|
174
|
-
|
178
|
+
|
175
179
|
Need the following so that ~bundle install~ can compile
|
176
180
|
the native extensions correctly.
|
177
|
-
|
181
|
+
|
178
182
|
,#+name: build-essential-installed
|
179
183
|
,#+begin_src sh
|
180
184
|
dpkg -l | grep build-essential
|
181
185
|
,#+end_src
|
182
|
-
|
186
|
+
|
183
187
|
,#+name: build_essentials
|
184
188
|
,#+begin_src sh :unless build-essential-installed
|
185
189
|
apt-get install build-essential -y
|
186
190
|
,#+end_src
|
187
|
-
|
191
|
+
|
188
192
|
,#+name: bundle_install
|
189
193
|
,#+begin_src sh
|
190
194
|
cd project_path
|
@@ -197,11 +201,11 @@ status_port: 10004
|
|
197
201
|
|
198
202
|
#+begin_src sh
|
199
203
|
,#+TITLE: Another setup
|
200
|
-
|
204
|
+
|
201
205
|
Include the code blocks from the server into this:
|
202
|
-
|
206
|
+
|
203
207
|
,#+include: "server.org"
|
204
|
-
|
208
|
+
|
205
209
|
,#+name: install_org_mode
|
206
210
|
,#+begin_src sh
|
207
211
|
apt-get install org-mode -y
|
@@ -229,19 +233,19 @@ it would be run sequentially with idempotency checks applied:
|
|
229
233
|
,#+TITLE: Linked tasks example
|
230
234
|
,#+runmode: tasks
|
231
235
|
,#+final_task: final
|
232
|
-
|
236
|
+
|
233
237
|
,#+name: second
|
234
238
|
,#+begin_src sh :after first
|
235
239
|
for i in `seq 5 10`; do
|
236
240
|
echo $i >> out.log
|
237
241
|
done
|
238
242
|
,#+end_src
|
239
|
-
|
243
|
+
|
240
244
|
,#+name: first
|
241
245
|
,#+begin_src ruby
|
242
246
|
5.times { |n| File.open("out.log", "a") {|f| f.puts n } }
|
243
247
|
,#+end_src
|
244
|
-
|
248
|
+
|
245
249
|
,#+name: final
|
246
250
|
,#+begin_src python :after second :results output
|
247
251
|
print "Wrapping up with Python in the end"
|
@@ -249,14 +253,14 @@ it would be run sequentially with idempotency checks applied:
|
|
249
253
|
f.write('11')
|
250
254
|
f.close()
|
251
255
|
,#+end_src
|
252
|
-
|
256
|
+
|
253
257
|
,#+name: prologue
|
254
258
|
,#+begin_src sh :before first :results output
|
255
259
|
echo "init" > out.log
|
256
260
|
,#+end_src
|
257
261
|
#+end_src
|
258
262
|
|
259
|
-
: org-
|
263
|
+
: org-run chained-example.org --runmode=chained
|
260
264
|
|
261
265
|
Instead of using =--runmode= options, it is also possible to just declare in buffer
|
262
266
|
that the Org file should be run chained mode.
|
@@ -288,8 +292,9 @@ it would be run sequentially with idempotency checks applied:
|
|
288
292
|
This is done by using =:dir= in the code block header argument.
|
289
293
|
|
290
294
|
#+begin_src sh
|
291
|
-
,#+
|
295
|
+
,#+sshidentityfile: vagrant/keys/vagrant
|
292
296
|
,#+name: remote-bash-code-block
|
297
|
+
|
293
298
|
,#+begin_src sh :results output :dir /vagrant@127.0.0.1#2222:/tmp
|
294
299
|
random_number=$RANDOM
|
295
300
|
for i in `seq 1 10`; do echo "[$random_number] Running script is $0 being run from `pwd`"; done
|
@@ -306,14 +311,14 @@ it would be run sequentially with idempotency checks applied:
|
|
306
311
|
|
307
312
|
#+begin_src sh
|
308
313
|
,#+TITLE: Expected results example
|
309
|
-
|
314
|
+
|
310
315
|
,#+name: hello
|
311
316
|
,#+begin_src ruby :results output
|
312
317
|
10.times do
|
313
318
|
puts "hola"
|
314
319
|
end
|
315
320
|
,#+end_src
|
316
|
-
|
321
|
+
|
317
322
|
,#+RESULTS: hello
|
318
323
|
,#+begin_example
|
319
324
|
hola
|
data/TODO
CHANGED
@@ -35,6 +35,12 @@ Some of these need further work on the Org Ruby parser.
|
|
35
35
|
- [ ] =:cache true=
|
36
36
|
Also part of the idempotency checks.
|
37
37
|
- [ ] =:env= and =#+envfile:=
|
38
|
+
- [ ] Create pools for running processes
|
39
|
+
|
40
|
+
* [2/2] 0.0.17
|
41
|
+
|
42
|
+
- [X] Typos
|
43
|
+
- [X] Override the =:dir= for remote processes
|
38
44
|
|
39
45
|
* [1/1] 0.0.16
|
40
46
|
|
data/bin/org-converge
CHANGED
@@ -8,7 +8,7 @@ doc = <<OPTIONS
|
|
8
8
|
org-converge: Run with idempotency checks.
|
9
9
|
|
10
10
|
Usage:
|
11
|
-
org-converge <org_file> [--showfiles] [--log=<logfile>] [--root-dir=<root_dir>]
|
11
|
+
org-converge <org_file> [--showfiles] [--log=<logfile>] [--root-dir=<root_dir>] [--dir=<dir>]
|
12
12
|
|
13
13
|
Options:
|
14
14
|
|
data/bin/org-run
CHANGED
@@ -8,7 +8,7 @@ doc = <<OPTIONS
|
|
8
8
|
org-run: Run code blocks in parallel by default.
|
9
9
|
|
10
10
|
Usage:
|
11
|
-
org-run <org_file> [--showfiles] [--log=<logfile>] [--root-dir=<root_dir>] [--runmode=<runmode>] [--name=<block_name>]
|
11
|
+
org-run <org_file> [--showfiles] [--log=<logfile>] [--root-dir=<root_dir>] [--runmode=<runmode>] [--name=<block_name>] [--dir=<dir>]
|
12
12
|
|
13
13
|
Options:
|
14
14
|
|
data/lib/org-converge/command.rb
CHANGED
@@ -11,6 +11,7 @@ module OrgConverge
|
|
11
11
|
@options = options
|
12
12
|
@dotorg = options['<org_file>']
|
13
13
|
@root_dir = options['--root-dir']
|
14
|
+
@dir = options['--dir']
|
14
15
|
@run_dir = if @root_dir
|
15
16
|
File.expand_path(File.join(@root_dir, 'run'))
|
16
17
|
else
|
@@ -368,6 +369,7 @@ module OrgConverge
|
|
368
369
|
end
|
369
370
|
end
|
370
371
|
|
372
|
+
script[:header][:dir] = @dir if @dir
|
371
373
|
if script[:header][:procs]
|
372
374
|
procs = script[:header][:procs].to_i
|
373
375
|
1.upto(procs) do |i|
|
data/lib/org-converge/engine.rb
CHANGED
@@ -222,7 +222,7 @@ module OrgConverge
|
|
222
222
|
ssh_options = { }
|
223
223
|
ssh_options[:port] = block_modifiers[:ssh][:port]
|
224
224
|
ssh_options[:password] = block_modifiers[:ssh][:password] if block_modifiers[:ssh][:password]
|
225
|
-
ssh_options[:keys] = @babel.ob.in_buffer_settings['
|
225
|
+
ssh_options[:keys] = @babel.ob.in_buffer_settings['SSHIDENTITYFILE'] if @babel.ob.in_buffer_settings['SSHIDENTITYFILE']
|
226
226
|
begin
|
227
227
|
# SCP the script to run remotely and the binary used to run it
|
228
228
|
binary, script = command.split(' ')
|
data/lib/org-converge/version.rb
CHANGED
data/spec/converge_spec.rb
CHANGED
@@ -174,6 +174,21 @@ describe OrgConverge::Command do
|
|
174
174
|
result.should == "within subdir\n"
|
175
175
|
end
|
176
176
|
|
177
|
+
it "should be able to override chdir the process directory" do
|
178
|
+
example_dir = File.join(EXAMPLES_DIR, 'chdir')
|
179
|
+
setup_file = File.join(example_dir, 'override-dir.org')
|
180
|
+
|
181
|
+
o = OrgConverge::Command.new({
|
182
|
+
'<org_file>' => setup_file,
|
183
|
+
'--root-dir' => example_dir,
|
184
|
+
'--dir' => "subdir"
|
185
|
+
})
|
186
|
+
success = o.execute!
|
187
|
+
success.should == true
|
188
|
+
result = File.open("#{example_dir}/subdir/out.log").read
|
189
|
+
result.should == "within subdir\n"
|
190
|
+
end
|
191
|
+
|
177
192
|
it "should support idempotency checks via :if and :unless conditional clauses" do
|
178
193
|
example_dir = File.join(EXAMPLES_DIR, 'idempotency')
|
179
194
|
setup_file = File.join(example_dir, 'conditions.org')
|
data/vagrant.org
CHANGED
@@ -52,7 +52,7 @@ end
|
|
52
52
|
|
53
53
|
#+name: vagrant-running
|
54
54
|
#+begin_src sh
|
55
|
-
vagrant status
|
55
|
+
vagrant status | grep poweron
|
56
56
|
#+end_src
|
57
57
|
|
58
58
|
#+name: start_vagrant
|
@@ -80,9 +80,10 @@ fi
|
|
80
80
|
#+begin_src sh :dir /vagrant@localhost#2222:/ :if running-in-ubuntu
|
81
81
|
sudo apt-get update
|
82
82
|
sudo apt-get install build-essentials emacs24-nox org-mode -y
|
83
|
+
sudo apt-get install docker.io -y
|
83
84
|
#+end_src
|
84
85
|
|
85
|
-
**** Vagrantfile :: Docker provider
|
86
|
+
**** COMMENT Vagrantfile :: Docker provider
|
86
87
|
|
87
88
|
#+begin_src ruby :tangle docker/Vagrantfile :mkdirp true
|
88
89
|
Vagrant.configure("2") do |config|
|
@@ -95,7 +96,7 @@ end
|
|
95
96
|
#+begin_src conf :tangle docker/Dockerfile
|
96
97
|
FROM ubuntu
|
97
98
|
RUN apt-get -y update
|
98
|
-
RUN apt-get -y install emacs24-nox
|
99
|
+
RUN apt-get -y install emacs24-nox
|
99
100
|
#+end_src
|
100
101
|
|
101
102
|
#+name: vagrant-docker-provider
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: org-converge
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.17
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Waldemar Quevedo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2014-06-
|
11
|
+
date: 2014-06-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: docopt
|