yao 0.2.2 → 0.2.4
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/.travis.yml +1 -0
- data/CHANGELOG.md +6 -0
- data/README.md +2 -0
- data/lib/yao/resources.rb +1 -0
- data/lib/yao/resources/meter.rb +1 -1
- data/lib/yao/resources/old_sample.rb +44 -0
- data/lib/yao/resources/sample.rb +8 -20
- data/lib/yao/resources/server.rb +5 -0
- data/lib/yao/resources/tenant.rb +12 -0
- data/lib/yao/version.rb +1 -1
- data/yao-logo.png +0 -0
- metadata +6 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 0cbe5100a5117a5be92da38233ff1f170c60555f
|
4
|
+
data.tar.gz: 7e610e7b24cb80f3c03683e3bebf2157cf564a2b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 491f7385416be190cef852fde2afdf47f799e2c2d4852a6858361be9f89aebfa49027162cee9cdcd5da0787af174521c737f63b34eec460cb97ce79b533d164d
|
7
|
+
data.tar.gz: 839e12cdb4d00a35288a642252f0d72e06c5bd326d8ba79a4f75868e9faf35537a41fd62d9dd682863d67d12c04009cda3bd9f008c640c79f2ff3af8c85629ff
|
data/.travis.yml
CHANGED
data/CHANGELOG.md
CHANGED
data/README.md
CHANGED
data/lib/yao/resources.rb
CHANGED
data/lib/yao/resources/meter.rb
CHANGED
@@ -0,0 +1,44 @@
|
|
1
|
+
module Yao::Resources
|
2
|
+
class OldSample < Base
|
3
|
+
friendly_attributes :counter_name, :counter_type, :counter_unit, :counter_volume,
|
4
|
+
:message_id, :project_id, :resource_id, :timestamp, :resource_metadata, :user_id
|
5
|
+
:source
|
6
|
+
|
7
|
+
def recorded_at
|
8
|
+
Time.parse(self["recorded_at"] || self["timestamp"])
|
9
|
+
end
|
10
|
+
alias timestamp recorded_at
|
11
|
+
|
12
|
+
def id
|
13
|
+
meter_id
|
14
|
+
end
|
15
|
+
|
16
|
+
def resource
|
17
|
+
@resource ||= Yao::Resource.get(resource_id)
|
18
|
+
end
|
19
|
+
|
20
|
+
def tenant
|
21
|
+
@tenant ||= Yao::Tenant.get(project_id)
|
22
|
+
end
|
23
|
+
|
24
|
+
def user
|
25
|
+
@user ||= Yao::User.get(user_id)
|
26
|
+
end
|
27
|
+
|
28
|
+
self.service = "metering"
|
29
|
+
self.api_version = "v2"
|
30
|
+
|
31
|
+
# get /v2/meters/{id} returns samples!
|
32
|
+
def self.list(meter_name, query={})
|
33
|
+
cache_key = query.values.join
|
34
|
+
cache[cache_key] = GET("meters/#{meter_name}", query).body unless cache[cache_key]
|
35
|
+
return_resources(cache[cache_key])
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.cache
|
39
|
+
@@_cache ||= {}
|
40
|
+
end
|
41
|
+
|
42
|
+
# TODO: implement `def self.create'
|
43
|
+
end
|
44
|
+
end
|
data/lib/yao/resources/sample.rb
CHANGED
@@ -1,16 +1,15 @@
|
|
1
1
|
module Yao::Resources
|
2
2
|
class Sample < Base
|
3
|
-
friendly_attributes :
|
4
|
-
:
|
5
|
-
:
|
3
|
+
friendly_attributes :id, :metadata, :meter,
|
4
|
+
:source, :type, :unit, :volume
|
5
|
+
:resouce_id, :tenant_id, :user_id
|
6
6
|
|
7
7
|
def recorded_at
|
8
|
-
Time.parse(self["recorded_at"]
|
8
|
+
Time.parse(self["recorded_at"])
|
9
9
|
end
|
10
|
-
alias timestamp recorded_at
|
11
10
|
|
12
|
-
def
|
13
|
-
|
11
|
+
def timestamp
|
12
|
+
Time.parse(self["timestamp"])
|
14
13
|
end
|
15
14
|
|
16
15
|
def resource
|
@@ -18,7 +17,7 @@ module Yao::Resources
|
|
18
17
|
end
|
19
18
|
|
20
19
|
def tenant
|
21
|
-
@tenant ||= Yao::
|
20
|
+
@tenant ||= Yao::Tenant.get(project_id)
|
22
21
|
end
|
23
22
|
|
24
23
|
def user
|
@@ -27,17 +26,6 @@ module Yao::Resources
|
|
27
26
|
|
28
27
|
self.service = "metering"
|
29
28
|
self.api_version = "v2"
|
30
|
-
|
31
|
-
# get /v2/meters/{id} returns samples!
|
32
|
-
def self.list(id_or_url, query={})
|
33
|
-
json = if id_or_url =~ /^https?:\/\//
|
34
|
-
GET(id_or_url).body
|
35
|
-
else
|
36
|
-
GET("meters/#{id_or_url}", query).body
|
37
|
-
end
|
38
|
-
return_resources(json)
|
39
|
-
end
|
40
|
-
|
41
|
-
# TODO: implement `def self.create'
|
29
|
+
self.resources_name = "samples"
|
42
30
|
end
|
43
31
|
end
|
data/lib/yao/resources/server.rb
CHANGED
@@ -21,6 +21,11 @@ module Yao::Resources
|
|
21
21
|
self.service = "compute"
|
22
22
|
self.resource_name = "server"
|
23
23
|
self.resources_name = "servers"
|
24
|
+
|
25
|
+
def old_samples(counter_name: nil, query: {})
|
26
|
+
Yao::OldSample.list(counter_name, query).select{|os| os.resource_metadata["instance_id"] == id}
|
27
|
+
end
|
28
|
+
|
24
29
|
def self.start(id)
|
25
30
|
action(id, "os-start" => nil)
|
26
31
|
end
|
data/lib/yao/resources/tenant.rb
CHANGED
@@ -8,6 +8,18 @@ module Yao::Resources
|
|
8
8
|
self.admin = true
|
9
9
|
self.return_single_on_querying = true
|
10
10
|
|
11
|
+
def servers
|
12
|
+
@servers ||= Yao::Server.list(all_tenants: 1).select{|s| s.tenant_id == id }
|
13
|
+
end
|
14
|
+
|
15
|
+
def meters
|
16
|
+
@meters ||= Yao::Meter.list({'q.field': 'project_id', 'q.op': 'eq', 'q.value': id})
|
17
|
+
end
|
18
|
+
|
19
|
+
def meters_by_name(meter_name)
|
20
|
+
meters.select{|m| m.name == meter_name}
|
21
|
+
end
|
22
|
+
|
11
23
|
class << self
|
12
24
|
def get_by_name(name)
|
13
25
|
self.list(name: name)
|
data/lib/yao/version.rb
CHANGED
data/yao-logo.png
ADDED
Binary file
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: yao
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.2.
|
4
|
+
version: 0.2.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Uchio, KONDO
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-01 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -186,6 +186,7 @@ files:
|
|
186
186
|
- lib/yao/resources/metadata_available.rb
|
187
187
|
- lib/yao/resources/meter.rb
|
188
188
|
- lib/yao/resources/network.rb
|
189
|
+
- lib/yao/resources/old_sample.rb
|
189
190
|
- lib/yao/resources/port.rb
|
190
191
|
- lib/yao/resources/resource.rb
|
191
192
|
- lib/yao/resources/restfully_accessible.rb
|
@@ -207,6 +208,7 @@ files:
|
|
207
208
|
- test/yao/test_config.rb
|
208
209
|
- test/yao/test_server_error.rb
|
209
210
|
- test/yao/test_token.rb
|
211
|
+
- yao-logo.png
|
210
212
|
- yao.gemspec
|
211
213
|
homepage: https://github.com/yaocloud/yao
|
212
214
|
licenses:
|
@@ -228,7 +230,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
228
230
|
version: '0'
|
229
231
|
requirements: []
|
230
232
|
rubyforge_project:
|
231
|
-
rubygems_version: 2.
|
233
|
+
rubygems_version: 2.5.0
|
232
234
|
signing_key:
|
233
235
|
specification_version: 4
|
234
236
|
summary: Yet Another OpenStack API Wrapper that rocks!!
|
@@ -240,3 +242,4 @@ test_files:
|
|
240
242
|
- test/yao/test_config.rb
|
241
243
|
- test/yao/test_server_error.rb
|
242
244
|
- test/yao/test_token.rb
|
245
|
+
has_rdoc:
|