cloudscale-benchmark 0.0.2
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 +7 -0
- data/LICENSE.txt +22 -0
- data/README.md +33 -0
- data/bin/prepare_benchmark.sh +193 -0
- data/bin/run_benchmark.sh +4 -0
- data/lib/cloudscale/benchmark/agent/init.rb +74 -0
- data/lib/cloudscale/benchmark/model/agent/benchmark_agent_instance.rb +32 -0
- data/lib/cloudscale/benchmark/model/benchmark/benchmark_run.rb +67 -0
- data/lib/cloudscale/benchmark/model/benchmark/benchmark_run_result.rb +32 -0
- data/lib/cloudscale/benchmark/model/benchmark/benchmark_run_result_value.rb +28 -0
- data/lib/cloudscale/benchmark/version.rb +5 -0
- data/lib/cloudscale/benchmark.rb +98 -0
- data/lib/cloudscale/constants/agent_instance_store.rb +42 -0
- data/lib/cloudscale/constants/agent_store.rb +25 -0
- data/lib/cloudscale/plugins/phoronix/phoronix_bulk_execution.rb +259 -0
- data/lib/cloudscale/plugins/plugin.rb +38 -0
- data/lib/cloudscale/plugins/preops/plugin_preop.rb +48 -0
- data/lib/cloudscale/plugins/preops/preop.rb +46 -0
- data/lib/cloudscale/rest/rest_client.rb +200 -0
- data/lib/cloudscale/rest/rest_client_helper.rb +65 -0
- data/lib/cloudscale/store/agent/agent.yml +2 -0
- data/lib/cloudscale/store/agent/agent_instance.yml +6 -0
- data/lib/cloudscale/store/plugin/development +1 -0
- data/lib/cloudscale/store/plugin/numberOfRuns +1 -0
- data/lib/cloudscale/store/plugin/op_timeout +1 -0
- data/lib/cloudscale/store/rest/settings.yml +4 -0
- data/lib/cloudscale/store/settings/phoronix.yml +9 -0
- metadata +229 -0
@@ -0,0 +1,38 @@
|
|
1
|
+
require "yaml/store"
|
2
|
+
require "logger"
|
3
|
+
require "set"
|
4
|
+
require "#{File.dirname(__FILE__)}/../constants/agent_instance_store"
|
5
|
+
require "#{File.dirname(__FILE__)}/../rest/rest_client"
|
6
|
+
|
7
|
+
##
|
8
|
+
#
|
9
|
+
# @author Johannes Hiemer, cloudscale.
|
10
|
+
#
|
11
|
+
##
|
12
|
+
module Cloudscale
|
13
|
+
module Plugins
|
14
|
+
class Plugin
|
15
|
+
|
16
|
+
attr_accessor :log, :plugins, :client
|
17
|
+
@plugins = Set.new
|
18
|
+
|
19
|
+
def self.log
|
20
|
+
@log = Logger.new(STDOUT)
|
21
|
+
end
|
22
|
+
|
23
|
+
def initialize()
|
24
|
+
@client = RestClientWrapper.instance
|
25
|
+
end
|
26
|
+
|
27
|
+
def self.plugins
|
28
|
+
@plugins
|
29
|
+
end
|
30
|
+
|
31
|
+
def self.inherited(klass)
|
32
|
+
@plugins << klass
|
33
|
+
#log.debug("Initialize for " << klass.to_s)
|
34
|
+
end
|
35
|
+
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
require "optparse"
|
2
|
+
require "logger"
|
3
|
+
require "fsdb"
|
4
|
+
require "#{File.dirname(__FILE__)}/preop"
|
5
|
+
|
6
|
+
##
|
7
|
+
#
|
8
|
+
# @author Johannes Hiemer, cloudscale.
|
9
|
+
#
|
10
|
+
##
|
11
|
+
module Cloudscale
|
12
|
+
module Plugins
|
13
|
+
class PluginPreop < Plugins::Preop
|
14
|
+
include Singleton
|
15
|
+
|
16
|
+
@@options = {
|
17
|
+
:numberOfRuns => {
|
18
|
+
:argument => "--numberOfRuns",
|
19
|
+
:description => "The total numnber of runs for each test",
|
20
|
+
:required => false,
|
21
|
+
:value => 1
|
22
|
+
},
|
23
|
+
:development => {
|
24
|
+
:argument => "--development",
|
25
|
+
:description => "Development option for the runtime environment",
|
26
|
+
:required => false,
|
27
|
+
:value => false
|
28
|
+
},
|
29
|
+
:op_timeout => {
|
30
|
+
:argument => "--op_timeout",
|
31
|
+
:description => "Operation timeout for the test execution",
|
32
|
+
:required => false,
|
33
|
+
:value => 30
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
def options
|
38
|
+
@@options
|
39
|
+
end
|
40
|
+
|
41
|
+
def initialize
|
42
|
+
self.init
|
43
|
+
# Check prereq
|
44
|
+
end
|
45
|
+
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,46 @@
|
|
1
|
+
##
|
2
|
+
#
|
3
|
+
# @author Johannes Hiemer, cloudscale.
|
4
|
+
#
|
5
|
+
##
|
6
|
+
module Cloudscale
|
7
|
+
module Plugins
|
8
|
+
class Preop
|
9
|
+
|
10
|
+
def init
|
11
|
+
@plugin_settings_db = FSDB::Database.new("#{File.dirname(__FILE__)}/../../store/plugin")
|
12
|
+
init_options()
|
13
|
+
end
|
14
|
+
|
15
|
+
def set_option_value(key, val)
|
16
|
+
options[key.to_sym][:value] = val
|
17
|
+
end
|
18
|
+
|
19
|
+
def get_option(key)
|
20
|
+
options[key.to_sym]
|
21
|
+
end
|
22
|
+
|
23
|
+
def get_option_value(key)
|
24
|
+
options[key.to_sym][:value] #|| @plugin_settings_db[key.to_s]
|
25
|
+
end
|
26
|
+
|
27
|
+
def init_options
|
28
|
+
@plugin_settings_db.fetch.each do | key |
|
29
|
+
options[key.to_sym][:value] = @plugin_settings_db[key]
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def save_options
|
34
|
+
options.each do | key, value |
|
35
|
+
@plugin_settings_db[key.to_s] = value[:value].to_s
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def clear_options
|
40
|
+
@plugin_settings_db.fetch.each do | element |
|
41
|
+
@plugin_settings_db.delete(element)
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
@@ -0,0 +1,200 @@
|
|
1
|
+
require "yaml"
|
2
|
+
require "json"
|
3
|
+
require "rest_client"
|
4
|
+
require "singleton"
|
5
|
+
require "#{File.dirname(__FILE__)}/rest_client_helper"
|
6
|
+
|
7
|
+
##
|
8
|
+
#
|
9
|
+
# @author Johannes Hiemer, cloudscale.
|
10
|
+
#
|
11
|
+
##
|
12
|
+
class RestClientWrapper < RestClientHelper
|
13
|
+
include Singleton
|
14
|
+
|
15
|
+
attr_accessor :endpoint, :key, :token, :header
|
16
|
+
|
17
|
+
def load_hash()
|
18
|
+
begin
|
19
|
+
YAML.load(File.read("#{File.dirname(__FILE__)}/../store/rest/settings.yml"))
|
20
|
+
rescue
|
21
|
+
return nil
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
def initialize
|
26
|
+
if (endpoint == nil && key == nil && token == nil)
|
27
|
+
hash = load_hash()
|
28
|
+
end
|
29
|
+
@endpoint = hash["endpoint"]
|
30
|
+
@key = hash["key"]
|
31
|
+
@token = hash["token"]
|
32
|
+
@header = {
|
33
|
+
:key => key,
|
34
|
+
:token => token,
|
35
|
+
'Content-Type' => 'application/json',
|
36
|
+
'Accept' => 'application/json'
|
37
|
+
}
|
38
|
+
end
|
39
|
+
|
40
|
+
def list_with_params(entity, params)
|
41
|
+
uri = uri_with_params(entity, params)
|
42
|
+
load(uri)
|
43
|
+
end
|
44
|
+
|
45
|
+
def list(entity)
|
46
|
+
uri = uri(entity)
|
47
|
+
load(uri)
|
48
|
+
end
|
49
|
+
|
50
|
+
def get(entity, id)
|
51
|
+
uri = uriWithId(entity, id)
|
52
|
+
load(uri)
|
53
|
+
end
|
54
|
+
|
55
|
+
def load(uri)
|
56
|
+
RestClient.get(uri, header) { | response, request, result |
|
57
|
+
case response.code
|
58
|
+
when 200
|
59
|
+
return JSON.parse(response.body)
|
60
|
+
else
|
61
|
+
puts request.to_yaml
|
62
|
+
puts response.code
|
63
|
+
puts response.body
|
64
|
+
end
|
65
|
+
}
|
66
|
+
end
|
67
|
+
|
68
|
+
def searchOne(entity, method, params)
|
69
|
+
searchQuery = String::new(uri(entity) + '/search/' + method + '?')
|
70
|
+
|
71
|
+
params.each { | key, value|
|
72
|
+
searchQuery += key.to_s + '=' + value.to_s + '&'
|
73
|
+
}
|
74
|
+
|
75
|
+
RestClient.get(searchQuery, header) { | response, request, result |
|
76
|
+
case response.code
|
77
|
+
when 200
|
78
|
+
responseBody = JSON.parse(response.body)
|
79
|
+
if (responseBody["content"].length == 1)
|
80
|
+
return responseBody["content"][0]
|
81
|
+
end
|
82
|
+
else
|
83
|
+
puts request.to_yaml
|
84
|
+
puts response.code
|
85
|
+
puts response.body
|
86
|
+
end
|
87
|
+
}
|
88
|
+
end
|
89
|
+
|
90
|
+
def searchAny(entity, method, params)
|
91
|
+
searchQuery = String::new(uri(entity) + '/search/' + method + '?')
|
92
|
+
|
93
|
+
params.each { | key, value|
|
94
|
+
searchQuery += key.to_s + '=' + value.to_s + '&'
|
95
|
+
}
|
96
|
+
|
97
|
+
RestClient.get(searchQuery, header) { | response, request, result |
|
98
|
+
case response.code
|
99
|
+
when 200
|
100
|
+
return JSON.parse(response.body)
|
101
|
+
else
|
102
|
+
puts request.to_yaml
|
103
|
+
puts response.code
|
104
|
+
puts response.body
|
105
|
+
end
|
106
|
+
}
|
107
|
+
end
|
108
|
+
|
109
|
+
def post(entity, value)
|
110
|
+
|
111
|
+
if (value.is_a?(Object) || value.is_a?(Hash))
|
112
|
+
hash = value.to_dh
|
113
|
+
end
|
114
|
+
|
115
|
+
RestClient.post(uri(entity), hash.to_json, header) { | response, request, result |
|
116
|
+
case response.code
|
117
|
+
when 200, 201
|
118
|
+
if (response.body != nil && response.body.length > 2)
|
119
|
+
return JSON.parse(response.body)
|
120
|
+
end
|
121
|
+
else
|
122
|
+
puts request.to_yaml
|
123
|
+
puts response.code
|
124
|
+
puts response.body
|
125
|
+
end
|
126
|
+
}
|
127
|
+
end
|
128
|
+
|
129
|
+
def put(entity, id, value)
|
130
|
+
id = id.to_s.gsub('{?projection}','')
|
131
|
+
|
132
|
+
if (value.is_a?(Object) || value.is_a?(Hash))
|
133
|
+
hash = value.to_dh
|
134
|
+
end
|
135
|
+
|
136
|
+
RestClient.put(uriWithId(entity, id), hash.to_json, header) { | response, request, result |
|
137
|
+
case response.code
|
138
|
+
when 200, 204
|
139
|
+
if (response.body != nil && response.body.length > 2)
|
140
|
+
return JSON.parse(response.body)
|
141
|
+
end
|
142
|
+
else
|
143
|
+
puts request.to_yaml
|
144
|
+
puts response.code
|
145
|
+
puts response.body
|
146
|
+
end
|
147
|
+
}
|
148
|
+
end
|
149
|
+
|
150
|
+
def patch(entity, id, value)
|
151
|
+
id = id.to_s.gsub('{?projection}','')
|
152
|
+
|
153
|
+
if (value.is_a?(Object) || value.is_a?(Hash))
|
154
|
+
hash = value.to_dh
|
155
|
+
end
|
156
|
+
|
157
|
+
RestClient.patch(uriWithId(entity, id), hash.to_json, header) { | response, request, result |
|
158
|
+
case response.code
|
159
|
+
when 200, 204
|
160
|
+
if (response.body != nil && response.body.length > 2)
|
161
|
+
return JSON.parse(response.body)
|
162
|
+
end
|
163
|
+
else
|
164
|
+
puts request.to_yaml
|
165
|
+
puts response.code
|
166
|
+
puts response.body
|
167
|
+
end
|
168
|
+
}
|
169
|
+
end
|
170
|
+
|
171
|
+
def delete(entity, id)
|
172
|
+
id = id.to_s.gsub('{?projection}','')
|
173
|
+
|
174
|
+
RestClient.delete(uriWithId(entity, id), header) { | response, request, result |
|
175
|
+
case response.code
|
176
|
+
when 200, 204
|
177
|
+
else
|
178
|
+
puts response.code
|
179
|
+
end
|
180
|
+
}
|
181
|
+
end
|
182
|
+
|
183
|
+
def customDelete(entity, method, params)
|
184
|
+
id = id.to_s.gsub('{?projection}','')
|
185
|
+
|
186
|
+
query = String::new(uri(entity) + '/' + method + '?')
|
187
|
+
|
188
|
+
params.each { | key, value|
|
189
|
+
query += key.to_s + '=' + value.to_s + '&'
|
190
|
+
}
|
191
|
+
RestClient.delete(query, header) { | response, request, result |
|
192
|
+
case response.code
|
193
|
+
when 200
|
194
|
+
else
|
195
|
+
puts response.code
|
196
|
+
end
|
197
|
+
}
|
198
|
+
end
|
199
|
+
|
200
|
+
end
|
@@ -0,0 +1,65 @@
|
|
1
|
+
|
2
|
+
##
|
3
|
+
#
|
4
|
+
# @author Johannes Hiemer, cloudscale.
|
5
|
+
#
|
6
|
+
##
|
7
|
+
class RestClientHelper
|
8
|
+
|
9
|
+
def uri(entity)
|
10
|
+
if (!endpoint.to_s.end_with? '/')
|
11
|
+
@endpoint << '/'
|
12
|
+
end
|
13
|
+
String::new(@endpoint + entity)
|
14
|
+
end
|
15
|
+
|
16
|
+
def uri_with_params(entity, params)
|
17
|
+
if (!endpoint.to_s.end_with? '/')
|
18
|
+
@endpoint << '/'
|
19
|
+
end
|
20
|
+
|
21
|
+
uri = String::new(@endpoint + entity)
|
22
|
+
if (params.is_a?(Hash))
|
23
|
+
uri << '?'
|
24
|
+
params.each { | key, value|
|
25
|
+
uri += key.to_s + '=' + value.to_s + '&'
|
26
|
+
}
|
27
|
+
end
|
28
|
+
return uri
|
29
|
+
end
|
30
|
+
|
31
|
+
def uriWithId(entity, id)
|
32
|
+
if (!endpoint.to_s.end_with? '/')
|
33
|
+
@endpoint << '/'
|
34
|
+
end
|
35
|
+
String::new(@endpoint + entity + '/' + id.to_s)
|
36
|
+
end
|
37
|
+
|
38
|
+
def self.load_entity_id(entity)
|
39
|
+
if (entity != nil && entity["links"].is_a?(Array))
|
40
|
+
entity["links"].each { | link |
|
41
|
+
if (link["rel"] == "self")
|
42
|
+
return link["href"][link["href"].rindex('/') + 1, link["href"].length]
|
43
|
+
end
|
44
|
+
}
|
45
|
+
end
|
46
|
+
end
|
47
|
+
|
48
|
+
def self.load_entity_ref(entity)
|
49
|
+
if (entity != nil && entity["links"].is_a?(Array))
|
50
|
+
entity["links"].each { | link |
|
51
|
+
if (link["rel"] == "self")
|
52
|
+
return link
|
53
|
+
end
|
54
|
+
}
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
def removeLinks(hash, key)
|
59
|
+
if (hash.key?(key))
|
60
|
+
hash.tap { | x |
|
61
|
+
x.delete(key)
|
62
|
+
}
|
63
|
+
end
|
64
|
+
end
|
65
|
+
end
|
@@ -0,0 +1 @@
|
|
1
|
+
I" true:EF
|
@@ -0,0 +1 @@
|
|
1
|
+
I"1:EF
|
@@ -0,0 +1 @@
|
|
1
|
+
I"30:EF
|
metadata
ADDED
@@ -0,0 +1,229 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cloudscale-benchmark
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.2
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Johannes Hiemer
|
8
|
+
- Joerg Gottschlich
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2014-10-13 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
15
|
+
name: rest_client
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
|
+
requirements:
|
18
|
+
- - ~>
|
19
|
+
- !ruby/object:Gem::Version
|
20
|
+
version: '1.7'
|
21
|
+
type: :runtime
|
22
|
+
prerelease: false
|
23
|
+
version_requirements: !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ~>
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
version: '1.7'
|
28
|
+
- !ruby/object:Gem::Dependency
|
29
|
+
name: OptionParser
|
30
|
+
requirement: !ruby/object:Gem::Requirement
|
31
|
+
requirements:
|
32
|
+
- - ~>
|
33
|
+
- !ruby/object:Gem::Version
|
34
|
+
version: '0.5'
|
35
|
+
type: :runtime
|
36
|
+
prerelease: false
|
37
|
+
version_requirements: !ruby/object:Gem::Requirement
|
38
|
+
requirements:
|
39
|
+
- - ~>
|
40
|
+
- !ruby/object:Gem::Version
|
41
|
+
version: '0.5'
|
42
|
+
- !ruby/object:Gem::Dependency
|
43
|
+
name: hashable
|
44
|
+
requirement: !ruby/object:Gem::Requirement
|
45
|
+
requirements:
|
46
|
+
- - ~>
|
47
|
+
- !ruby/object:Gem::Version
|
48
|
+
version: '0.1'
|
49
|
+
type: :runtime
|
50
|
+
prerelease: false
|
51
|
+
version_requirements: !ruby/object:Gem::Requirement
|
52
|
+
requirements:
|
53
|
+
- - ~>
|
54
|
+
- !ruby/object:Gem::Version
|
55
|
+
version: '0.1'
|
56
|
+
- !ruby/object:Gem::Dependency
|
57
|
+
name: fsdb
|
58
|
+
requirement: !ruby/object:Gem::Requirement
|
59
|
+
requirements:
|
60
|
+
- - ~>
|
61
|
+
- !ruby/object:Gem::Version
|
62
|
+
version: '0.7'
|
63
|
+
type: :runtime
|
64
|
+
prerelease: false
|
65
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0.7'
|
70
|
+
- !ruby/object:Gem::Dependency
|
71
|
+
name: popen4
|
72
|
+
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirements:
|
74
|
+
- - ~>
|
75
|
+
- !ruby/object:Gem::Version
|
76
|
+
version: 0.1.2
|
77
|
+
type: :runtime
|
78
|
+
prerelease: false
|
79
|
+
version_requirements: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ~>
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 0.1.2
|
84
|
+
- !ruby/object:Gem::Dependency
|
85
|
+
name: json
|
86
|
+
requirement: !ruby/object:Gem::Requirement
|
87
|
+
requirements:
|
88
|
+
- - ~>
|
89
|
+
- !ruby/object:Gem::Version
|
90
|
+
version: 1.8.1
|
91
|
+
type: :runtime
|
92
|
+
prerelease: false
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
94
|
+
requirements:
|
95
|
+
- - ~>
|
96
|
+
- !ruby/object:Gem::Version
|
97
|
+
version: 1.8.1
|
98
|
+
- !ruby/object:Gem::Dependency
|
99
|
+
name: http
|
100
|
+
requirement: !ruby/object:Gem::Requirement
|
101
|
+
requirements:
|
102
|
+
- - ~>
|
103
|
+
- !ruby/object:Gem::Version
|
104
|
+
version: 0.6.2
|
105
|
+
type: :runtime
|
106
|
+
prerelease: false
|
107
|
+
version_requirements: !ruby/object:Gem::Requirement
|
108
|
+
requirements:
|
109
|
+
- - ~>
|
110
|
+
- !ruby/object:Gem::Version
|
111
|
+
version: 0.6.2
|
112
|
+
- !ruby/object:Gem::Dependency
|
113
|
+
name: xml-simple
|
114
|
+
requirement: !ruby/object:Gem::Requirement
|
115
|
+
requirements:
|
116
|
+
- - ~>
|
117
|
+
- !ruby/object:Gem::Version
|
118
|
+
version: 1.1.4
|
119
|
+
type: :runtime
|
120
|
+
prerelease: false
|
121
|
+
version_requirements: !ruby/object:Gem::Requirement
|
122
|
+
requirements:
|
123
|
+
- - ~>
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: 1.1.4
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: bundler
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ~>
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '1.7'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ~>
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '1.7'
|
140
|
+
- !ruby/object:Gem::Dependency
|
141
|
+
name: rake
|
142
|
+
requirement: !ruby/object:Gem::Requirement
|
143
|
+
requirements:
|
144
|
+
- - ~>
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '10.0'
|
147
|
+
type: :development
|
148
|
+
prerelease: false
|
149
|
+
version_requirements: !ruby/object:Gem::Requirement
|
150
|
+
requirements:
|
151
|
+
- - ~>
|
152
|
+
- !ruby/object:Gem::Version
|
153
|
+
version: '10.0'
|
154
|
+
- !ruby/object:Gem::Dependency
|
155
|
+
name: rspec
|
156
|
+
requirement: !ruby/object:Gem::Requirement
|
157
|
+
requirements:
|
158
|
+
- - ~>
|
159
|
+
- !ruby/object:Gem::Version
|
160
|
+
version: '2.14'
|
161
|
+
type: :development
|
162
|
+
prerelease: false
|
163
|
+
version_requirements: !ruby/object:Gem::Requirement
|
164
|
+
requirements:
|
165
|
+
- - ~>
|
166
|
+
- !ruby/object:Gem::Version
|
167
|
+
version: '2.14'
|
168
|
+
description: A Benchmarking Client for Cloud Infrastructure provided by cloudscale.de
|
169
|
+
email:
|
170
|
+
- jhiemer@cloudscale.de
|
171
|
+
- jgottschlich@cloudscale.de
|
172
|
+
executables:
|
173
|
+
- prepare_benchmark.sh
|
174
|
+
- run_benchmark.sh
|
175
|
+
extensions: []
|
176
|
+
extra_rdoc_files: []
|
177
|
+
files:
|
178
|
+
- bin/prepare_benchmark.sh
|
179
|
+
- bin/run_benchmark.sh
|
180
|
+
- lib/cloudscale/benchmark/agent/init.rb
|
181
|
+
- lib/cloudscale/benchmark/model/agent/benchmark_agent_instance.rb
|
182
|
+
- lib/cloudscale/benchmark/model/benchmark/benchmark_run.rb
|
183
|
+
- lib/cloudscale/benchmark/model/benchmark/benchmark_run_result.rb
|
184
|
+
- lib/cloudscale/benchmark/model/benchmark/benchmark_run_result_value.rb
|
185
|
+
- lib/cloudscale/benchmark/version.rb
|
186
|
+
- lib/cloudscale/benchmark.rb
|
187
|
+
- lib/cloudscale/constants/agent_instance_store.rb
|
188
|
+
- lib/cloudscale/constants/agent_store.rb
|
189
|
+
- lib/cloudscale/plugins/phoronix/phoronix_bulk_execution.rb
|
190
|
+
- lib/cloudscale/plugins/plugin.rb
|
191
|
+
- lib/cloudscale/plugins/preops/plugin_preop.rb
|
192
|
+
- lib/cloudscale/plugins/preops/preop.rb
|
193
|
+
- lib/cloudscale/rest/rest_client.rb
|
194
|
+
- lib/cloudscale/rest/rest_client_helper.rb
|
195
|
+
- lib/cloudscale/store/agent/agent.yml
|
196
|
+
- lib/cloudscale/store/agent/agent_instance.yml
|
197
|
+
- lib/cloudscale/store/plugin/development
|
198
|
+
- lib/cloudscale/store/plugin/numberOfRuns
|
199
|
+
- lib/cloudscale/store/plugin/op_timeout
|
200
|
+
- lib/cloudscale/store/rest/settings.yml
|
201
|
+
- lib/cloudscale/store/settings/phoronix.yml
|
202
|
+
- LICENSE.txt
|
203
|
+
- README.md
|
204
|
+
homepage: http://www.cloudscale.de
|
205
|
+
licenses:
|
206
|
+
- MIT
|
207
|
+
metadata: {}
|
208
|
+
post_install_message: Please run bin/prepare_benchmark.sh to setup benchmarking on
|
209
|
+
this machine.
|
210
|
+
rdoc_options: []
|
211
|
+
require_paths:
|
212
|
+
- lib
|
213
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
214
|
+
requirements:
|
215
|
+
- - '>='
|
216
|
+
- !ruby/object:Gem::Version
|
217
|
+
version: '0'
|
218
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
219
|
+
requirements:
|
220
|
+
- - '>='
|
221
|
+
- !ruby/object:Gem::Version
|
222
|
+
version: '0'
|
223
|
+
requirements: []
|
224
|
+
rubyforge_project:
|
225
|
+
rubygems_version: 2.0.14
|
226
|
+
signing_key:
|
227
|
+
specification_version: 4
|
228
|
+
summary: Cloud Benchmarking Agent of cloudscale.de
|
229
|
+
test_files: []
|