fog_tracker 0.2.0 → 0.2.1
Sign up to get free protection for your applications and to get access to all the features.
data/README.md
CHANGED
@@ -87,7 +87,8 @@ How is it [done]? (Usage)
|
|
87
87
|
* The resources returned from a query are all Fog::Model objects, but they are "decorated" with some extra methods for fetching the account information, or for fetching more resources. This simplifies the code that consumes the query results, because it does not have to know anything about the tracker. Here are the methods added by {FogTracker::Extensions::FogModel}:
|
88
88
|
1. `tracker_account` returns a Hash of the Resource's account information _(:name is added; :credentials are removed)_.
|
89
89
|
2. `tracker_query(query_string)` queries the tracker for more resources.
|
90
|
-
3. `account_resources(collection_query)` returns an Array of resources from the same account. (This is essentially shorthand for `
|
90
|
+
3. `account_resources(collection_query)` also returns an Array of resources, but only from the same account. (This is essentially shorthand for `tracker_query("account::service::provider::#{collection_query}")`)
|
91
|
+
4. `tracker_description` returns a descriptive string that is short, but unique to this resource.
|
91
92
|
|
92
93
|
* Any Exceptions that occur in the Tracker's polling threads are rescued and logged. If you want to take further action, you can initialize the Tracker with an `:error_callback` Proc. This is similar to the Account update `:callback` above, except that the parameter for `:error_callback` should be an Exception instead of an Array of Resources.
|
93
94
|
|
@@ -52,6 +52,12 @@ module FogTracker
|
|
52
52
|
results
|
53
53
|
end
|
54
54
|
|
55
|
+
# Returns a short description of this resource
|
56
|
+
# @return [String] a short description of this resource
|
57
|
+
def tracker_description
|
58
|
+
type = (self.class.name.match(/::([^:]+)$/))[1]
|
59
|
+
"#{type} #{self.identity} in account #{tracker_account[:name]}"
|
60
|
+
end
|
55
61
|
end
|
56
62
|
end
|
57
63
|
end
|
data/lib/fog_tracker/tracker.rb
CHANGED
@@ -102,9 +102,17 @@ module FogTracker
|
|
102
102
|
@trackers = Hash.new
|
103
103
|
@accounts.each do |name, account|
|
104
104
|
@log.debug "Setting up tracker for account #{name}"
|
105
|
-
@trackers[name] = AccountTracker.new(name, account,
|
106
|
-
|
107
|
-
|
105
|
+
@trackers[name] = AccountTracker.new(name, account, {
|
106
|
+
:delay => @delay, :error_callback => @error_proc, :logger => @log,
|
107
|
+
:callback => Proc.new do |resources|
|
108
|
+
# attach a QueryProcessor to all returned resources
|
109
|
+
qp = FogTracker::Query::QueryProcessor.new(@trackers, :logger => @log)
|
110
|
+
resources.each {|resource| resource._query_processor = qp}
|
111
|
+
# now relay the resources back to the client software
|
112
|
+
@callback.call(resources) if @callback
|
113
|
+
end
|
114
|
+
}
|
115
|
+
)
|
108
116
|
end
|
109
117
|
end
|
110
118
|
|
data/lib/fog_tracker/version.rb
CHANGED
@@ -57,6 +57,14 @@ module FogTracker
|
|
57
57
|
end
|
58
58
|
end
|
59
59
|
|
60
|
+
describe "tracker_description" do
|
61
|
+
it "returns a short description of the resource" do
|
62
|
+
@model.tracker_description.should == "Server in account "
|
63
|
+
@model.stub(:identity).and_return "fake ID"
|
64
|
+
@model.tracker_description.should == "Server fake ID in account "
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
60
68
|
describe '#account_resources' do
|
61
69
|
context "with no query processor assigned" do
|
62
70
|
it "returns an empty Array" do
|
@@ -33,6 +33,14 @@ module FogTracker
|
|
33
33
|
@tracker.logger.should == LOG
|
34
34
|
end
|
35
35
|
|
36
|
+
it "attaches a query processor to resources returned by the callback" do
|
37
|
+
t = Tracker.new(ACCOUNTS, :logger => LOG,
|
38
|
+
:callback => Proc.new do |resources|
|
39
|
+
resources.each { |r| r._query_processor.should_not == nil }
|
40
|
+
end
|
41
|
+
).update
|
42
|
+
end
|
43
|
+
|
36
44
|
describe '#types_for_account' do
|
37
45
|
it "returns an array of collection names for the given account" do
|
38
46
|
[ "addresses", "flavors", "images", "key_pairs", "security_groups",
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: fog_tracker
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.1
|
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-02-
|
12
|
+
date: 2012-02-06 00:00:00.000000000Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: fog
|
16
|
-
requirement: &
|
16
|
+
requirement: &70301255176120 !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ! '>='
|
@@ -21,10 +21,10 @@ dependencies:
|
|
21
21
|
version: '0'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements: *
|
24
|
+
version_requirements: *70301255176120
|
25
25
|
- !ruby/object:Gem::Dependency
|
26
26
|
name: rake
|
27
|
-
requirement: &
|
27
|
+
requirement: &70301255175000 !ruby/object:Gem::Requirement
|
28
28
|
none: false
|
29
29
|
requirements:
|
30
30
|
- - ! '>='
|
@@ -32,10 +32,10 @@ dependencies:
|
|
32
32
|
version: '0'
|
33
33
|
type: :development
|
34
34
|
prerelease: false
|
35
|
-
version_requirements: *
|
35
|
+
version_requirements: *70301255175000
|
36
36
|
- !ruby/object:Gem::Dependency
|
37
37
|
name: rspec
|
38
|
-
requirement: &
|
38
|
+
requirement: &70301255173960 !ruby/object:Gem::Requirement
|
39
39
|
none: false
|
40
40
|
requirements:
|
41
41
|
- - ! '>='
|
@@ -43,10 +43,10 @@ dependencies:
|
|
43
43
|
version: '0'
|
44
44
|
type: :development
|
45
45
|
prerelease: false
|
46
|
-
version_requirements: *
|
46
|
+
version_requirements: *70301255173960
|
47
47
|
- !ruby/object:Gem::Dependency
|
48
48
|
name: yard
|
49
|
-
requirement: &
|
49
|
+
requirement: &70301255173260 !ruby/object:Gem::Requirement
|
50
50
|
none: false
|
51
51
|
requirements:
|
52
52
|
- - ! '>='
|
@@ -54,10 +54,10 @@ dependencies:
|
|
54
54
|
version: '0'
|
55
55
|
type: :development
|
56
56
|
prerelease: false
|
57
|
-
version_requirements: *
|
57
|
+
version_requirements: *70301255173260
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: guard
|
60
|
-
requirement: &
|
60
|
+
requirement: &70301255172280 !ruby/object:Gem::Requirement
|
61
61
|
none: false
|
62
62
|
requirements:
|
63
63
|
- - ! '>='
|
@@ -65,10 +65,10 @@ dependencies:
|
|
65
65
|
version: '0'
|
66
66
|
type: :development
|
67
67
|
prerelease: false
|
68
|
-
version_requirements: *
|
68
|
+
version_requirements: *70301255172280
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: guard-rspec
|
71
|
-
requirement: &
|
71
|
+
requirement: &70301255171500 !ruby/object:Gem::Requirement
|
72
72
|
none: false
|
73
73
|
requirements:
|
74
74
|
- - ! '>='
|
@@ -76,10 +76,10 @@ dependencies:
|
|
76
76
|
version: '0'
|
77
77
|
type: :development
|
78
78
|
prerelease: false
|
79
|
-
version_requirements: *
|
79
|
+
version_requirements: *70301255171500
|
80
80
|
- !ruby/object:Gem::Dependency
|
81
81
|
name: ruby_gntp
|
82
|
-
requirement: &
|
82
|
+
requirement: &70301255163720 !ruby/object:Gem::Requirement
|
83
83
|
none: false
|
84
84
|
requirements:
|
85
85
|
- - ! '>='
|
@@ -87,7 +87,7 @@ dependencies:
|
|
87
87
|
version: '0'
|
88
88
|
type: :development
|
89
89
|
prerelease: false
|
90
|
-
version_requirements: *
|
90
|
+
version_requirements: *70301255163720
|
91
91
|
description: This gem peridically polls mutiple cloud computing services using the
|
92
92
|
fog gem, asynchronously updating the state of the resulting collections of Fog Resources.
|
93
93
|
email:
|
@@ -138,7 +138,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
138
138
|
version: '0'
|
139
139
|
segments:
|
140
140
|
- 0
|
141
|
-
hash: -
|
141
|
+
hash: -498220163521293823
|
142
142
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
143
143
|
none: false
|
144
144
|
requirements:
|
@@ -147,7 +147,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
147
147
|
version: '0'
|
148
148
|
segments:
|
149
149
|
- 0
|
150
|
-
hash: -
|
150
|
+
hash: -498220163521293823
|
151
151
|
requirements: []
|
152
152
|
rubyforge_project: fog_tracker
|
153
153
|
rubygems_version: 1.8.10
|