azure-loganalytics-datacollector-api 0.2.0 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c4cec423d59632c9e791ddcc953fc3cfc9b6a22886d1a0fa32ff24611b7ee107
4
- data.tar.gz: c8dcf1beb62710c24ef30d0b52f44b316c218efd1668999d0eb077707a2f9f6d
3
+ metadata.gz: 8452aaabdb1e4cadea593892598d3618d72d4dc268b73612a8072b98bb144a29
4
+ data.tar.gz: c095ecb8502f5afcc742e1cfa7da6c5b4d4f59522dab871323761a45ba6f4af3
5
5
  SHA512:
6
- metadata.gz: 2a4343fa994ff46da725a6c03ef00c4973cddd5275d1afe93a8152e92026284e649b553002968d9c9e6d690ccbe06016a165eb42aeb7701d102aaa97e3ac00e8
7
- data.tar.gz: 2adfe7e4cebe468be3c6bb548fec657ef6ed292a068376ca46a3b2cc27fa504ae3fd62d4a7c1acd64be801dc8da12ea107f4c394ad232246378fcca7b682c786
6
+ metadata.gz: 710358fb3591f079e96ba0c4e26ba020ee5573dc3c27553883efa80dd62943a3dcde86c7e0dbb1d0ee5d1a20bdf28ea554be8fd2a7df64423088189492f07501
7
+ data.tar.gz: 523e5be5872c7450e8518835cf18e674043e5578e1b95588ea74070af40dce53418aaa455badeb2b156af9223e97228172bbb3af4e3ec8f4ea9ee2bef411eafd
@@ -1,3 +1,6 @@
1
+ ## 0.3.0
2
+ * Enhance log type validation: check not only alpha but also numeric, underscore, and character length (may not exceed 100) - [issue #11](https://github.com/yokawasa/azure-log-analytics-data-collector/issues/11)
3
+
1
4
  ## 0.2.0
2
5
  * Support setting the x-ms-AzureResourceId Header - [issue #8](https://github.com/yokawasa/azure-log-analytics-data-collector/issues/8)
3
6
 
@@ -7,7 +7,7 @@ Gem::Specification.new do |spec|
7
7
  spec.name = "azure-loganalytics-datacollector-api"
8
8
  spec.version = Azure::Loganalytics::Datacollectorapi::VERSION
9
9
  spec.authors = ["Yoichi Kawasaki"]
10
- spec.email = ["yoichi.kawasaki@outlook.com"]
10
+ spec.email = ["yokawasa@gmail.com"]
11
11
  spec.summary = %q{Azure Log Analytics Data Collector API Ruby Client}
12
12
  spec.description = spec.summary
13
13
  spec.homepage = "https://github.com/yokawasa/azure-log-analytics-data-collector"
@@ -23,7 +23,7 @@ module Azure
23
23
 
24
24
  def post_data(log_type, json_records, record_timestamp ='', azure_resource_id ='' )
25
25
  raise ConfigError, 'no log_type' if log_type.empty?
26
- raise ConfigError, 'log_type must be only alpha characters' if not is_alpha(log_type)
26
+ raise ConfigError, 'log_type must only contain alpha numeric and _, and not exceed 100 chars' if not is_valid_log_type(log_type)
27
27
  raise ConfigError, 'no json_records' if json_records.empty?
28
28
  body = json_records.to_json
29
29
  uri = sprintf("https://%s.%s/api/logs?api-version=%s",
@@ -58,8 +58,8 @@ module Azure
58
58
 
59
59
  private
60
60
 
61
- def is_alpha(s)
62
- return (s.match(/^[[:alpha:]]+$/)) ? true : false
61
+ def is_valid_log_type(s)
62
+ return ( s.match(/^[a-zA-Z0-9_]+$/) && s.length <= 100 ) ? true : false
63
63
  end
64
64
 
65
65
  def rfc1123date()
@@ -1,7 +1,7 @@
1
1
  module Azure
2
2
  module Loganalytics
3
3
  module Datacollectorapi
4
- VERSION = "0.2.0"
4
+ VERSION = "0.3.0"
5
5
  end
6
6
  end
7
7
  end
@@ -5,14 +5,35 @@ describe Azure::Loganalytics::Datacollectorapi::Client do
5
5
  expect(Azure::Loganalytics::Datacollectorapi::VERSION).not_to be nil
6
6
  end
7
7
 
8
- #it "does something useful" do
9
- # expect(false).to eq(true)
10
- #end
11
-
12
8
  customer_id = '<Customer ID aka WorkspaceID String>'
13
9
  shared_key = '<Primary Key String>'
14
10
  log_type = "MyCustomLog"
15
11
 
12
+ it "log type validation" do
13
+ json_records = []
14
+ dummy= {
15
+ :string => "dummy title",
16
+ :number => 10
17
+ }
18
+ valid_log_type = "abcedefghijklmnopqrstuvwxyz1234567890_"
19
+ invalid_log_type1 = "*-|[]//"
20
+ invalid_log_type2 = "abcde__xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
21
+ json_records.push(dummy)
22
+ client=Azure::Loganalytics::Datacollectorapi::Client::new( customer_id, shared_key)
23
+
24
+ res = client.post_data(valid_log_type, json_records)
25
+ expect(Azure::Loganalytics::Datacollectorapi::Client.is_success(res)).to eq(true)
26
+
27
+ expect{
28
+ client.post_data(invalid_log_type1, json_records)
29
+ }.to raise_error(Exception)
30
+
31
+ expect{
32
+ client.post_data(invalid_log_type2, json_records)
33
+ }.to raise_error(Exception)
34
+
35
+ end
36
+
16
37
  it "posting data to datacollector api" do
17
38
  json_records = []
18
39
  record1= {
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: azure-loganalytics-datacollector-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Yoichi Kawasaki
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-05-06 00:00:00.000000000 Z
11
+ date: 2020-07-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
@@ -54,7 +54,7 @@ dependencies:
54
54
  version: '3.0'
55
55
  description: Azure Log Analytics Data Collector API Ruby Client
56
56
  email:
57
- - yoichi.kawasaki@outlook.com
57
+ - yokawasa@gmail.com
58
58
  executables:
59
59
  - console
60
60
  - setup