automateit 0.71031.2 → 0.71101
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.
- data.tar.gz.sig +0 -0
- data/CHANGES.txt +6 -0
- data/Rakefile +1 -1
- data/TODO.txt +1 -0
- data/lib/automateit/root.rb +1 -1
- data/lib/automateit/tag_manager/struct.rb +7 -3
- data/lib/automateit/template_manager/base.rb +4 -5
- data/spec/unit/tag_manager_spec.rb +10 -0
- data/spec/unit/template_manager_erb_spec.rb +14 -2
- metadata +1 -1
- metadata.gz.sig +2 -3
data.tar.gz.sig
CHANGED
Binary file
|
data/CHANGES.txt
CHANGED
@@ -1,3 +1,9 @@
|
|
1
|
+
0.71101:
|
2
|
+
Date: Thu, 01 Nov 2007 17:07:51 -0700
|
3
|
+
Desc:
|
4
|
+
- (%) Fixed bug in TagManager#tagged? when checking tag names containing dashes ("-"), refactored to improve tag tokenizing rules, added test. Thank you, David Brewer.
|
5
|
+
- Fixed bug in TemplateManager#render when rendering templates to strings, added tests. Thank you for the report, David Brewer.
|
6
|
+
|
1
7
|
0.71031.2:
|
2
8
|
Date: Wed, 31 Oct 2007 23:48:41 -0700
|
3
9
|
Desc:
|
data/Rakefile
CHANGED
@@ -15,7 +15,6 @@ def automateit
|
|
15
15
|
end
|
16
16
|
|
17
17
|
# Run a hoe +task+.
|
18
|
-
#
|
19
18
|
def hoe(task)
|
20
19
|
# XXX Hoe provides many tasks I don't need, don't like the implementation of,
|
21
20
|
# or don't like their names. I'd use Rake's 'import' and 'invoke' but the Hoe
|
@@ -180,6 +179,7 @@ end
|
|
180
179
|
task :publish do
|
181
180
|
automateit
|
182
181
|
hoe("release VERSION=#{AutomateIt::VERSION}")
|
182
|
+
Rake::Task[:after].invoke
|
183
183
|
end
|
184
184
|
|
185
185
|
#---[ Install and uninstall ]-------------------------------------------
|
data/TODO.txt
CHANGED
@@ -5,6 +5,7 @@ KEY: Important? Urgent? Easy? 1=yes, 0=no
|
|
5
5
|
BUGS
|
6
6
|
- does service_manager.start_and_enable work as expected?
|
7
7
|
|
8
|
+
111 PackageManager -- Improve PEAR spec by having it check files with and without channel URL
|
8
9
|
111 aissh or aion -- Write command for running stuff against servers with ssh, e.g., "aissh rails_servers ls", which is basically a wrapper over "for t in aitag -w rails_servers; do echo $t; ssh $t "ls"; done"
|
9
10
|
111 Shell -- Write #su(user, *command) as a wrapper around #sh
|
10
11
|
101 Shell -- Expand glob patterns, e.g. chown_R(500, 500, "*")
|
data/lib/automateit/root.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
# See AutomateIt::Interpreter for usage information.
|
2
2
|
module AutomateIt # :nodoc:
|
3
3
|
# AutomateIt version
|
4
|
-
VERSION=Gem::Version.new("0.
|
4
|
+
VERSION=Gem::Version.new("0.71101")
|
5
5
|
|
6
6
|
# Instantiates a new Interpreter. See documentation for
|
7
7
|
# Interpreter#setup.
|
@@ -50,15 +50,19 @@ class AutomateIt::TagManager::Struct < AutomateIt::TagManager::BaseDriver
|
|
50
50
|
return hosts.select{|hostname| tagged?(query, hostname)}
|
51
51
|
end
|
52
52
|
|
53
|
+
TAG_NEGATION = %r{!?}
|
54
|
+
TAG_WORD = %r{[\w\.\-]+}
|
55
|
+
TAG_TOKENIZER = %r{\!|\(|\)|\&{1,2}|\|{1,2}|#{TAG_NEGATION}#{TAG_WORD}}
|
56
|
+
|
53
57
|
# See TagManager#tagged?
|
54
58
|
def tagged?(query, hostname=nil)
|
55
59
|
query = query.to_s
|
56
60
|
selected_tags = hostname ? tags_for(hostname) : tags
|
57
|
-
# XXX
|
58
|
-
tokens = query.scan(
|
61
|
+
# XXX Tokenizer discards unknown characters, which may hide errors in the query
|
62
|
+
tokens = query.scan(TAG_TOKENIZER)
|
59
63
|
if tokens.size > 1
|
60
64
|
booleans = tokens.map do |token|
|
61
|
-
if matches = token.match(/^(
|
65
|
+
if matches = token.match(/^(#{TAG_NEGATION})(#{TAG_WORD})$/)
|
62
66
|
selected_tags.include?(matches[2]) && matches[1].empty?
|
63
67
|
else
|
64
68
|
token
|
@@ -18,7 +18,7 @@ class AutomateIt::TemplateManager::BaseDriver < AutomateIt::Plugin::Driver
|
|
18
18
|
|
19
19
|
#.......................................................................
|
20
20
|
|
21
|
-
|
21
|
+
protected
|
22
22
|
|
23
23
|
# Return Array of +dependencies+ newer than +filename+. Will be empty if
|
24
24
|
# +filename+ is newer than all of the +dependencies+.
|
@@ -92,12 +92,11 @@ class AutomateIt::TemplateManager::BaseDriver < AutomateIt::Plugin::Driver
|
|
92
92
|
|
93
93
|
raise ArgumentError.new("No source specified with :file or :text") if not source_filename and not source_text
|
94
94
|
raise Errno::ENOENT.new(source_filename) if writing? and source_filename and not _exists?(source_filename)
|
95
|
-
raise ArgumentError.new("No target specified with :to") if not target_filename
|
96
95
|
|
97
96
|
begin
|
98
97
|
# source_filename, target_filename, opts={}
|
99
98
|
opts[:check] ||= @default_check
|
100
|
-
target_exists = _exists?(target_filename)
|
99
|
+
target_exists = target_filename && _exists?(target_filename)
|
101
100
|
updates = []
|
102
101
|
|
103
102
|
unless opts[:force]
|
@@ -167,8 +166,8 @@ class AutomateIt::TemplateManager::BaseDriver < AutomateIt::Plugin::Driver
|
|
167
166
|
end
|
168
167
|
|
169
168
|
_backup(target_filename) if target_exists and opts[:backup]
|
170
|
-
|
171
|
-
return
|
169
|
+
|
170
|
+
return(target_filename ? _write(target_filename, output) : output)
|
172
171
|
ensure
|
173
172
|
if opts[:mode] or opts[:user] or opts[:group]
|
174
173
|
interpreter.chperm(target_filename, :mode => opts[:mode], :user => opts[:user], :group => opts[:group])
|
@@ -96,6 +96,16 @@ describe "AutomateIt::TagManager", :shared => true do
|
|
96
96
|
@a.tagged?("magic").should be_true
|
97
97
|
end
|
98
98
|
|
99
|
+
it "should find tags with dashes in the name" do
|
100
|
+
tag_with_dash = "pawafuru-mirakuru"
|
101
|
+
tag_without_dash = "wandafuru"
|
102
|
+
|
103
|
+
@a.tags << tag_with_dash << tag_without_dash
|
104
|
+
|
105
|
+
@a.tagged?(tag_with_dash).should be_true
|
106
|
+
@a.tagged?(tag_without_dash).should be_true
|
107
|
+
end
|
108
|
+
|
99
109
|
it "should find tags for a host using an array" do
|
100
110
|
@a.tags_for(["kurou"]).should include("apache_servers")
|
101
111
|
end
|
@@ -6,6 +6,7 @@ describe "AutomateIt::TemplateManager::ERB" do
|
|
6
6
|
@m = @a.template_manager
|
7
7
|
@d = @m[:erb]
|
8
8
|
|
9
|
+
@content = "my template content"
|
9
10
|
@source = "source_for_template"
|
10
11
|
@target = "target_for_template"
|
11
12
|
end
|
@@ -17,14 +18,25 @@ describe "AutomateIt::TemplateManager::ERB" do
|
|
17
18
|
end
|
18
19
|
end
|
19
20
|
|
20
|
-
it "should render a string template" do
|
21
|
+
it "should render a string template to a string" do
|
22
|
+
@a.render(:text => @content).should == @content
|
23
|
+
end
|
24
|
+
|
25
|
+
it "should render a file template to a string" do
|
26
|
+
@d.should_receive(:_exists?).once.with(@source).and_return(true)
|
27
|
+
@d.should_receive(:_read).once.with(@source).and_return(@content)
|
28
|
+
|
29
|
+
@a.render(:file => @source).should == @content
|
30
|
+
end
|
31
|
+
|
32
|
+
it "should render a string template to a file" do
|
21
33
|
@d.should_receive(:_exists?).once.with(@target).and_return(false)
|
22
34
|
@d.should_receive(:_write).once.with(@target, "my template content").and_return(true)
|
23
35
|
|
24
36
|
@a.render(:text => "my template content", :to => @target).should be_true
|
25
37
|
end
|
26
38
|
|
27
|
-
it "should render a file template" do
|
39
|
+
it "should render a file template to a file" do
|
28
40
|
@d.should_receive(:_exists?).once.with(@source).and_return(true)
|
29
41
|
@d.should_receive(:_exists?).once.with(@target).and_return(false)
|
30
42
|
@d.should_receive(:_read).once.with(@source).and_return("my template content")
|
metadata
CHANGED
@@ -3,7 +3,7 @@ rubygems_version: 0.9.4
|
|
3
3
|
specification_version: 1
|
4
4
|
name: automateit
|
5
5
|
version: !ruby/object:Gem::Version
|
6
|
-
version: 0.
|
6
|
+
version: "0.71101"
|
7
7
|
date: 2007-11-01 00:00:00 -07:00
|
8
8
|
summary: AutomateIt is an open source tool for automating the setup and maintenance of servers, applications and their dependencies.
|
9
9
|
require_paths:
|
metadata.gz.sig
CHANGED
@@ -1,3 +1,2 @@
|
|
1
|
-
W
|
2
|
-
|
3
|
-
��L%�b����ŋ�z��C���fw�RՎ��q�=ó����l��R-l��1Л9mR5vX�ې��_���"�{.
|
1
|
+
���q��Nk���������W%{��`������$����$���,F�(~i��:�\i�r��˯�6Vo�g]4�Q&�
|
2
|
+
��|1�" �.y�Р�U��l��Y��v�e@QFMr����?�eG!���n������_�����s�Ô�*Ƶ�zf`>V�.H���������{Ɲ�:ULї.�GԔq�A��~/�t��%���vb������w#Sd�N�)��!5��ZG�R:�d
|