vzcdn 0.2.2 → 0.2.3
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.md +3 -0
- data/lib/MockHttpResponse +6 -0
- data/lib/common.rb +22 -47
- data/lib/config_handler.rb +14 -3
- data/lib/http_send.rb +110 -0
- data/lib/method.rb +24 -3
- data/lib/mock_http_send.rb +15 -0
- data/lib/print.rb +5 -0
- data/lib/proxy_credentials.rb +5 -13
- data/lib/reporting.rb +105 -89
- data/lib/vzcdn.rb +16 -0
- data/lib/vzcdn/version.rb +1 -1
- data/lib/zone_update.rb +39 -0
- data/test/bad-credentials.mock +9 -0
- data/test/bad-credentials.results +8 -0
- data/test/create_delete.mock +72 -0
- data/test/crud.mock +44 -0
- data/test/crud.results +50 -0
- data/test/initial.mock +58 -0
- data/test/initial.results +308 -0
- data/test/mk_mock.rb +24 -0
- data/test/mk_response.rb +41 -0
- data/test/push.mock +58 -0
- data/test/test_clui.rb +34 -15
- data/test/test_mock.rb +282 -0
- data/test/test_reporting.rb +48 -47
- data/test/unreachable.mock +9 -0
- data/test/unreachable.results +8 -0
- data/vzcdn.gemspec +0 -2
- metadata +31 -19
- data/pkg/vzcdn-0.0.1.gem +0 -0
- data/test/test_all.rb +0 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e8cf5a8765894451f57b2419a20e69fbfa1187d8
|
4
|
+
data.tar.gz: 3100211e9da6d904a6592deabb9495bf4dcbcb6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9fece79699a66aa2478849826c711078a80029fda078f5a19dc04315435a6d42b98e1aeaaaedcb3e2040890ed57c4c55668319fa219c7edba480fe28bc0af06
|
7
|
+
data.tar.gz: 8c029ca1fd312e13784f001ca7b3c0ea73c19f0b305eae60e50eb66d9f33cfd6ccdcc7d6862f33e8d6747fcf563cc8ced7eb3bbd392a5bf1d07b153d5be5d421
|
data/README.md
CHANGED
@@ -0,0 +1,6 @@
|
|
1
|
+
--url:https://api.edgecast.com/v2/mcc/customers/BED3/dns/routezones,method:get
|
2
|
+
[{"DomainName":"mockzone.","Status":1,"Version":1400171377,"ZoneId":5385,"ZoneType":1},{"DomainName":"nitin.","Status":1,"Version":1400096702,"ZoneId":5284,"ZoneType":1},{"DomainName":"pythonzone.","Status":1,"Version":1400169998,"ZoneId":5366,"ZoneType":1},{"DomainName":"vdmstest.com.","Status":1,"Version":1398108874,"ZoneId":4980,"ZoneType":1}]
|
3
|
+
--url:https://api.edgecast.com/v2/mcc//dns/routezonestatus,method:get
|
4
|
+
[{"Id"=>1, "Name"=>"Active"}, {"Id"=>2, "Name"=>"Inactive"}]
|
5
|
+
--url:https://api.edgecast.com/v2/mcc//dns/routezonetypes,method:get
|
6
|
+
[{"Id"=>1, "Name"=>"CNAME"}, {"Id"=>2, "Name"=>"Subdomain"}, {"Id"=>3, "Name"=>"Zone"}]
|
data/lib/common.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
|
-
require 'rest_client'
|
2
1
|
require 'json'
|
3
2
|
require 'config_reader'
|
4
3
|
require_relative 'proxy_credentials'
|
4
|
+
require_relative 'http_send'
|
5
|
+
require_relative 'mock_http_send'
|
5
6
|
|
6
7
|
class CommonRestUtils
|
7
8
|
include ConfigReader
|
@@ -9,51 +10,29 @@ class CommonRestUtils
|
|
9
10
|
url = @uri_prefix + url_suffix
|
10
11
|
if (body)
|
11
12
|
json_body = JSON.pretty_generate body
|
13
|
+
else
|
14
|
+
json_body = nil
|
12
15
|
end
|
13
16
|
begin
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
RestClient.get(url, @headers)
|
20
|
-
when :post
|
21
|
-
RestClient.post(url, json_body, @headers)
|
22
|
-
when :delete
|
23
|
-
RestClient.delete(url, @headers)
|
24
|
-
else
|
25
|
-
"unsupported http method:" + http_method
|
26
|
-
end
|
17
|
+
if ($mock_env)
|
18
|
+
code, response = MockHttpSend.new($mock_env).send(url, http_method, @headers, json_body)
|
19
|
+
else
|
20
|
+
code, response = HttpSend.new.send(url, http_method, @headers, json_body)
|
21
|
+
end
|
27
22
|
rescue Exception => e
|
28
|
-
puts "
|
23
|
+
puts "Exception thrown by HttpSend.new.send(); should not occur"
|
29
24
|
puts e.message
|
30
|
-
|
31
|
-
proxy_auth_req = (e.message =~ /\A407 /)
|
32
|
-
if e.message =~ /\A407 /
|
33
|
-
ProxyCredentials.proxy_credentials param("proxy")
|
34
|
-
if @proxy_retries && @proxy_retries > 3
|
35
|
-
raise e.message + " too many retries"
|
36
|
-
else
|
37
|
-
@proxy_retries = @proxy_retries ? @proxy_retries + 1 : 1
|
38
|
-
return callMethod(url_suffix, http_method, body)
|
39
|
-
end
|
40
|
-
end
|
41
|
-
exit
|
42
|
-
if $debug > 0
|
43
|
-
puts "full URL is:" + url
|
44
|
-
if (body)
|
45
|
-
puts "body is: json_body"
|
46
|
-
end
|
47
|
-
end
|
48
|
-
raise e.message + " (" + e.class.to_s + ")"
|
25
|
+
raise e.message + " (#{e.class})"
|
49
26
|
end
|
50
|
-
if
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
27
|
+
if code != 200
|
28
|
+
puts "Problem invoking REST method at server #{param "rest_base_url"}"
|
29
|
+
if code > 0
|
30
|
+
raise "Bad http response code: #{code} --- response:#{response}"
|
31
|
+
else
|
32
|
+
raise response
|
56
33
|
end
|
34
|
+
end
|
35
|
+
if (response.length >= 2)
|
57
36
|
JSON.parse response
|
58
37
|
else
|
59
38
|
nil
|
@@ -62,13 +41,9 @@ class CommonRestUtils
|
|
62
41
|
|
63
42
|
def initialize(uri_prefix)
|
64
43
|
@uri_prefix = uri_prefix
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
end
|
69
|
-
@headers = {:Content_type => "Application/json",
|
70
|
-
:Authorization => "TOK:" + param("token"),
|
71
|
-
:Accept => "Application/json"}
|
44
|
+
@headers = {"Content-Type" => "Application/json",
|
45
|
+
"Authorization" => "TOK:" + param("token"),
|
46
|
+
"Accept" => "Application/json"}
|
72
47
|
end
|
73
48
|
|
74
49
|
|
data/lib/config_handler.rb
CHANGED
@@ -1,8 +1,12 @@
|
|
1
|
-
|
1
|
+
require_relative 'util'
|
2
|
+
require_relative 'method'
|
2
3
|
|
3
4
|
class ConfigHandler
|
4
5
|
CONFIG_DIRECTORY = ".vdms.d"
|
5
6
|
CONFIG_FILENAME = "config"
|
7
|
+
AUTHORS='SCP & NMK'
|
8
|
+
PASSWORD='Password'
|
9
|
+
@@config_values = nil
|
6
10
|
|
7
11
|
def get_config_file
|
8
12
|
if (! File.directory?(CONFIG_DIRECTORY))
|
@@ -26,13 +30,13 @@ class ConfigHandler
|
|
26
30
|
new_file.puts(line)
|
27
31
|
end
|
28
32
|
}
|
29
|
-
if ( ! wrote_line)
|
33
|
+
if ( ! wrote_line && ! value.nil?)
|
30
34
|
new_file.puts(new_config_line)
|
31
35
|
end
|
32
36
|
end
|
33
37
|
|
34
38
|
def load_config_values
|
35
|
-
if
|
39
|
+
if @@config_values.class == Hash
|
36
40
|
return
|
37
41
|
else
|
38
42
|
@@config_values = {}
|
@@ -46,6 +50,9 @@ class ConfigHandler
|
|
46
50
|
end
|
47
51
|
name, value = Util.parse_line(line)
|
48
52
|
if value
|
53
|
+
if name.end_with? PASSWORD
|
54
|
+
value = Methodical.new(AUTHORS).backward value
|
55
|
+
end
|
49
56
|
@@config_values[name] = value
|
50
57
|
end
|
51
58
|
}
|
@@ -65,6 +72,9 @@ class ConfigHandler
|
|
65
72
|
end
|
66
73
|
|
67
74
|
def set(name, value)
|
75
|
+
if value && name.end_with?(PASSWORD)
|
76
|
+
value = Methodical.new(AUTHORS).forward value
|
77
|
+
end
|
68
78
|
config_file = get_config_file
|
69
79
|
if ! File.exists? config_file
|
70
80
|
# make empty file
|
@@ -78,6 +88,7 @@ class ConfigHandler
|
|
78
88
|
orig_file.close
|
79
89
|
FileUtils.rm(config_file, force: true)
|
80
90
|
FileUtils.mv(new_config_file, config_file, :force => true)
|
91
|
+
@@config_values = nil
|
81
92
|
end
|
82
93
|
|
83
94
|
def delete(name)
|
data/lib/http_send.rb
ADDED
@@ -0,0 +1,110 @@
|
|
1
|
+
require_relative 'proxy_credentials'
|
2
|
+
require 'net/http'
|
3
|
+
|
4
|
+
class HttpSend
|
5
|
+
include ConfigReader
|
6
|
+
|
7
|
+
def get_proxy_params
|
8
|
+
@proxy = param("proxy")
|
9
|
+
@proxy_username = param("proxy-Username")
|
10
|
+
@proxy_password = param("proxy-Password")
|
11
|
+
end
|
12
|
+
|
13
|
+
def initialize
|
14
|
+
get_proxy_params
|
15
|
+
end
|
16
|
+
|
17
|
+
def set_headers(request, headers)
|
18
|
+
headers.each { |name, value|
|
19
|
+
request[name.to_s] = value
|
20
|
+
}
|
21
|
+
end
|
22
|
+
|
23
|
+
def create_request(uri, method)
|
24
|
+
case method
|
25
|
+
when :put
|
26
|
+
request = Net::HTTP::Put.new(uri)
|
27
|
+
when :get
|
28
|
+
request = Net::HTTP::Get.new(uri)
|
29
|
+
when :post
|
30
|
+
request = Net::HTTP::Post.new(uri)
|
31
|
+
when :delete
|
32
|
+
request = Net::HTTP::Delete.new(uri)
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
def adjust(http, uri)
|
37
|
+
# http.set_debug_output $stderr
|
38
|
+
http.read_timeout = 60
|
39
|
+
http.open_timeout = 60
|
40
|
+
if uri.scheme == 'https'
|
41
|
+
http.use_ssl = true
|
42
|
+
http.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
def save_http(url, method, body, response_code, response_body)
|
47
|
+
if File.exists? $http_save_file
|
48
|
+
array = JSON.parse(File.open($http_save_file).read)
|
49
|
+
else
|
50
|
+
array = [ ]
|
51
|
+
end
|
52
|
+
o = Hash.new
|
53
|
+
o["url"] = url
|
54
|
+
o["method"] = method
|
55
|
+
o["body"] = body
|
56
|
+
o["response_code"] = response_code
|
57
|
+
o["response_body"] = response_body
|
58
|
+
array << o
|
59
|
+
file = File.open($http_save_file + ".tmp", "w")
|
60
|
+
file.write(JSON.pretty_generate(array))
|
61
|
+
file.close
|
62
|
+
FileUtils.mv($http_save_file + ".tmp", $http_save_file, :force => true)
|
63
|
+
end
|
64
|
+
|
65
|
+
def send(url, method, headers, body = nil)
|
66
|
+
uri = URI(url)
|
67
|
+
request = create_request(uri, method)
|
68
|
+
if body
|
69
|
+
request.body = body
|
70
|
+
end
|
71
|
+
set_headers(request, headers)
|
72
|
+
if @proxy
|
73
|
+
proxy_uri = URI(@proxy)
|
74
|
+
http = Net::HTTP.new(uri.host, uri.port, proxy_uri.hostname, proxy_uri.port, @proxy_username, @proxy_password)
|
75
|
+
else
|
76
|
+
http = Net::HTTP.new(uri.host, uri.port)
|
77
|
+
end
|
78
|
+
adjust(http, uri)
|
79
|
+
response_code = -1
|
80
|
+
response_body = nil
|
81
|
+
begin
|
82
|
+
response = http.request(request)
|
83
|
+
response_code = response.code.to_i
|
84
|
+
response_body = response.body
|
85
|
+
rescue Net::HTTPServerException => e
|
86
|
+
if e.message == '407 "Proxy Authentication Required"'
|
87
|
+
ProxyCredentials.proxy_credentials(@proxy)
|
88
|
+
get_proxy_params
|
89
|
+
return self.retry(url, method, headers, body)
|
90
|
+
else
|
91
|
+
response_body = "#{e.class} exception occurred:#{e.message}"
|
92
|
+
end
|
93
|
+
rescue Exception => e
|
94
|
+
response_body = "#{e.class} exception occurred:#{e.message}"
|
95
|
+
end
|
96
|
+
if defined? $http_save_file
|
97
|
+
save_http(url, method, body, response_code, response_body)
|
98
|
+
end
|
99
|
+
return response_code, response_body
|
100
|
+
end
|
101
|
+
|
102
|
+
def retry(url, method, headers, body)
|
103
|
+
if @proxy_retries && @proxy_retries > 1
|
104
|
+
raise "Proxy Authentication Failed"
|
105
|
+
else
|
106
|
+
@proxy_retries = @proxy_retries ? @proxy_retries + 1 : 1
|
107
|
+
send(url, method, headers, body)
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
data/lib/method.rb
CHANGED
@@ -1,5 +1,26 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
1
|
+
require 'openssl'
|
2
|
+
require 'base64'
|
3
|
+
|
4
|
+
class Methodical
|
5
|
+
ALPHABET = 'abcdefghiklmnoprstuvwxyz'
|
6
|
+
|
7
|
+
def initialize(severence)
|
8
|
+
@severence = severence[0...8]
|
9
|
+
@runner = OpenSSL::Cipher::Cipher.new("des-ede3-cbc")
|
10
|
+
end
|
11
|
+
|
12
|
+
def forward(string)
|
13
|
+
@runner.encrypt
|
14
|
+
@runner.key = ALPHABET
|
15
|
+
@runner.iv = @severence
|
16
|
+
Base64.encode64(@severence + @runner.update(string) + @runner.final).gsub(/\n/, '')
|
17
|
+
end
|
18
|
+
|
19
|
+
def backward(string)
|
20
|
+
@runner.decrypt
|
21
|
+
@runner.key = ALPHABET
|
22
|
+
encrypted = Base64.decode64(string)
|
23
|
+
@runner.iv = encrypted.slice!(0,8)
|
24
|
+
@runner.update(encrypted) + @runner.final
|
4
25
|
end
|
5
26
|
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class MockHttpSend
|
2
|
+
def initialize(mockfile)
|
3
|
+
@mock_results = JSON.parse(File.open(mockfile).read)
|
4
|
+
end
|
5
|
+
|
6
|
+
def send(url, method, headers=nil, body = nil)
|
7
|
+
@mock_results.each { |result|
|
8
|
+
if result["url"] == url && result["method"] == method.to_s
|
9
|
+
return result["response_code"], result["response_body"]
|
10
|
+
end
|
11
|
+
}
|
12
|
+
return -1, "unable to find match for #{url},#{method} in mock file"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
data/lib/print.rb
CHANGED
@@ -3,6 +3,8 @@ require_relative 'util'
|
|
3
3
|
require_relative 'config_reader'
|
4
4
|
|
5
5
|
class TablePrint
|
6
|
+
include ConfigReader
|
7
|
+
|
6
8
|
DELIM = '|'
|
7
9
|
|
8
10
|
def char_repeat(n, char)
|
@@ -179,6 +181,9 @@ class TablePrint
|
|
179
181
|
# will lines fit in terminal
|
180
182
|
width_needed = maxwidth.reduce(:+) + (@ncols-1) * 2
|
181
183
|
term_width, h = Util.detect_terminal_size
|
184
|
+
if param('mock-env') != ''
|
185
|
+
term_width = 1000000
|
186
|
+
end
|
182
187
|
if (width_needed <= term_width)
|
183
188
|
print_table_normally(maxwidth)
|
184
189
|
else
|
data/lib/proxy_credentials.rb
CHANGED
@@ -1,8 +1,9 @@
|
|
1
|
-
require 'net/http'
|
2
1
|
require 'rubygems/user_interaction'
|
2
|
+
require_relative 'config_handler'
|
3
3
|
|
4
4
|
class ProxyCredentials
|
5
5
|
include Gem::UserInteraction
|
6
|
+
|
6
7
|
def self.proxy_credentials(proxy)
|
7
8
|
new.get_credentials(proxy)
|
8
9
|
end
|
@@ -14,17 +15,8 @@ class ProxyCredentials
|
|
14
15
|
proxy_port = uri.port
|
15
16
|
proxy_user = ask("username:")
|
16
17
|
proxy_password = ask_for_password("password:")
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
net = Net::HTTP.new(uri.hostname, uri.port, proxy_host, proxy_port, proxy_user, proxy_password)
|
21
|
-
puts "created net"
|
22
|
-
net.read_timeout = 20
|
23
|
-
net.open_timeout = 20
|
24
|
-
|
25
|
-
net.start { |http|
|
26
|
-
response = http.request(req)
|
27
|
-
puts "response code from internet web service is #{response.code}, message is #{response.message}"
|
28
|
-
}
|
18
|
+
config = ConfigHandler.new
|
19
|
+
config.set("proxy-Username", proxy_user)
|
20
|
+
config.set("proxy-Password", proxy_password)
|
29
21
|
end
|
30
22
|
end
|
data/lib/reporting.rb
CHANGED
@@ -1,9 +1,6 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
-
require_relative '
|
3
|
-
|
4
|
-
|
5
|
-
URI_PREFIX="https://api.edgecast.com/v2/reporting/"
|
6
|
-
URI_CUSTOMERS_SEGMENT = "customers/" + ACCT_NUM + "/"
|
2
|
+
require_relative 'config_reader'
|
3
|
+
require_relative 'common'
|
7
4
|
|
8
5
|
module Interval
|
9
6
|
FIVE_MINUTE = 1
|
@@ -16,113 +13,132 @@ module TrafficUnits
|
|
16
13
|
GB = 2
|
17
14
|
end
|
18
15
|
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
}
|
16
|
+
class Reporting
|
17
|
+
include ConfigReader
|
18
|
+
|
19
|
+
@@instance = nil
|
20
|
+
|
21
|
+
def self.do
|
22
|
+
@@instance ? @@instance : @@instance = Reporting.new
|
27
23
|
end
|
28
|
-
result
|
29
|
-
end
|
30
24
|
|
31
|
-
def
|
32
|
-
|
33
|
-
|
25
|
+
def initialize
|
26
|
+
rest_base_url = param("rest_base_url")
|
27
|
+
if (rest_base_url.nil? || rest_base_url.length == 0)
|
28
|
+
raise "configuration file does not contain expected parameters -- try config init"
|
29
|
+
end
|
30
|
+
@common = CommonRestUtils.new(rest_base_url + "reporting/")
|
31
|
+
@uri_customers_segment = "customers/" + param("acct-num") + "/"
|
32
|
+
end
|
34
33
|
|
35
|
-
def
|
36
|
-
|
37
|
-
|
34
|
+
def to_csv(prefix, pops_list)
|
35
|
+
result = ""
|
36
|
+
if (pops_list.count > 0)
|
37
|
+
result = prefix + pops_list[0]
|
38
|
+
pops_list.shift
|
39
|
+
pops_list.each { |pop|
|
40
|
+
result = result + "," + pop
|
41
|
+
}
|
42
|
+
end
|
43
|
+
result
|
44
|
+
end
|
38
45
|
|
39
|
-
def
|
40
|
-
|
41
|
-
end
|
46
|
+
def time_to_q(time)
|
47
|
+
time.strftime("%Y-%m-%dT%H:%M:%S")
|
48
|
+
end
|
42
49
|
|
43
|
-
def
|
44
|
-
|
45
|
-
end
|
50
|
+
def interval(begin_time, end_time)
|
51
|
+
"?begindate=" + time_to_q(begin_time) + "&enddate=" + time_to_q(end_time)
|
52
|
+
end
|
46
53
|
|
47
|
-
def
|
48
|
-
|
49
|
-
end
|
54
|
+
def customer_suffix(word)
|
55
|
+
@uri_customers_segment + word
|
56
|
+
end
|
50
57
|
|
51
|
-
def
|
52
|
-
|
53
|
-
end
|
58
|
+
def interval_suffix(word, begin_time, end_time)
|
59
|
+
@uri_customers_segment + word + interval(begin_time, end_time)
|
60
|
+
end
|
54
61
|
|
55
|
-
def
|
56
|
-
|
57
|
-
end
|
62
|
+
def media_suffix(media_type, word, begin_time, end_time)
|
63
|
+
@uri_customers_segment + "media/" + media_type.to_s + "/" + word + interval(begin_time, end_time)
|
64
|
+
end
|
58
65
|
|
59
|
-
def
|
60
|
-
|
61
|
-
end
|
66
|
+
def get_all_data_transferred(begin_time, end_time, *pops)
|
67
|
+
@common.callMethod(interval_suffix("bytestransferred", begin_time, end_time) + to_csv("&pops=", pops), :get)
|
68
|
+
end
|
62
69
|
|
63
|
-
def
|
64
|
-
|
65
|
-
end
|
70
|
+
def get_asset_activity(media_type, begin_time, end_time)
|
71
|
+
@common.callMethod(media_suffix(media_type, "filestats", begin_time, end_time), :get)
|
72
|
+
end
|
66
73
|
|
67
|
-
def
|
68
|
-
|
69
|
-
end
|
74
|
+
def get_billing_regions
|
75
|
+
@common.callMethod("billing/regions", :get)
|
76
|
+
end
|
70
77
|
|
71
|
-
def
|
72
|
-
|
73
|
-
end
|
78
|
+
def get_cache_status_activity(media_type, begin_time, end_time)
|
79
|
+
@common.callMethod(media_suffix(media_type, "cachestats", begin_time, end_time), :get)
|
80
|
+
end
|
74
81
|
|
75
|
-
def
|
76
|
-
|
77
|
-
end
|
82
|
+
def get_current_storage_usage
|
83
|
+
@common.callMethod(customer_suffix("lateststorageusage"), :get)
|
84
|
+
end
|
78
85
|
|
79
|
-
def
|
80
|
-
|
81
|
-
end
|
86
|
+
def get_customer_account_number(custom_id)
|
87
|
+
@common.callMethod("customers/accountnumber?customercustomid=" + custom_id, :get)
|
88
|
+
end
|
82
89
|
|
83
|
-
def
|
84
|
-
|
85
|
-
end
|
90
|
+
def get_customer_name
|
91
|
+
@common.callMethod(customer_suffix("customername"), :get)
|
92
|
+
end
|
86
93
|
|
87
|
-
def
|
88
|
-
|
89
|
-
if (media_type)
|
90
|
-
suffix = suffix + "&mediatypeid=" + media_type.to_s
|
94
|
+
def get_data_transferred_and_hits_by_custom_report_codes(media_type, begin_time, end_time)
|
95
|
+
@common.callMethod(media_suffix(media_type, "cnamereportcodes", begin_time, end_time), :get)
|
91
96
|
end
|
92
|
-
|
93
|
-
|
97
|
+
|
98
|
+
def get_data_transferred_by_platform(media_type, begin_time, end_time, *pops)
|
99
|
+
@common.callMethod(media_suffix(media_type, "bytestransferred", begin_time, end_time) + to_csv("&pops=", pops), :get)
|
94
100
|
end
|
95
|
-
|
96
|
-
|
97
|
-
suffix =
|
101
|
+
|
102
|
+
def get_data_transferred_by_platform_and_interval(media_type, begin_time, end_time, region_id, interval_id, *pops)
|
103
|
+
suffix = interval_suffix("bytestransferred/interval", begin_time, end_time);
|
104
|
+
if (media_type)
|
105
|
+
suffix = suffix + "&mediatypeid=" + media_type.to_s
|
106
|
+
end
|
107
|
+
if (interval_id)
|
108
|
+
suffix = suffix + "&intervalid=" + interval_id.to_s
|
109
|
+
end
|
110
|
+
suffix = suffix + to_csv("&pops=", pops)
|
111
|
+
if (region_id)
|
112
|
+
suffix = suffix + "®ionid=" + region_id.to_s
|
113
|
+
end
|
114
|
+
puts "suffix: " + suffix
|
115
|
+
@common.callMethod(suffix, :get)
|
98
116
|
end
|
99
|
-
puts "suffix: " + suffix
|
100
|
-
callMethod(suffix, :get)
|
101
|
-
end
|
102
117
|
|
103
|
-
def get_directory_activity(media_type, begin_time, end_time)
|
104
|
-
|
105
|
-
end
|
118
|
+
def get_directory_activity(media_type, begin_time, end_time)
|
119
|
+
@common.callMethod(media_suffix(media_type, "directorystats", begin_time, end_time), :get)
|
120
|
+
end
|
106
121
|
|
107
|
-
def get_download_activity(media_type, begin_time, end_time)
|
108
|
-
|
109
|
-
end
|
122
|
+
def get_download_activity(media_type, begin_time, end_time)
|
123
|
+
@common.callMethod(media_suffix(media_type, "completedownloads", begin_time, end_time), :get)
|
124
|
+
end
|
110
125
|
|
111
|
-
def get_maximum_storage_usage(begin_time, end_time)
|
112
|
-
|
113
|
-
end
|
126
|
+
def get_maximum_storage_usage(begin_time, end_time)
|
127
|
+
@common.callMethod(interval_suffix("maxstorageusage", begin_time, end_time), :get)
|
128
|
+
end
|
114
129
|
|
115
|
-
def get_report_codes(media_type)
|
116
|
-
|
117
|
-
|
118
|
-
|
130
|
+
def get_report_codes(media_type)
|
131
|
+
suffix = customer_suffix("reportcodes")
|
132
|
+
if (media_type)
|
133
|
+
suffix = suffix + "?mediatypeid=" + media_type.to_s
|
134
|
+
end
|
135
|
+
@common.callMethod(suffix, :get)
|
119
136
|
end
|
120
|
-
callMethod(suffix, :get)
|
121
|
-
end
|
122
137
|
|
123
|
-
def get_traffic_usage(media_type, region_id, units, billing_month)
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
138
|
+
def get_traffic_usage(media_type, region_id, units, billing_month)
|
139
|
+
suffix = @uri_customers_segment +
|
140
|
+
"media/" + media_type.to_s + "/region/" + region_id.to_s + "/units/" + units.to_s + "/trafficusage" +
|
141
|
+
"?begindate=" + billing_month.strftime("%Y-%m-01")
|
142
|
+
@common.callMethod(suffix, :get)
|
143
|
+
end
|
128
144
|
end
|