logstash-input-qingstor 0.1.2 → 0.1.3

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
  SHA1:
3
- metadata.gz: c156065e6f20cd2f8e096288335596f2c6ab31cf
4
- data.tar.gz: 843ab1800defe7b983f19aec17991e5d1aa90494
3
+ metadata.gz: 2c3ef515c2bf42830ada2c07360ee1444a239470
4
+ data.tar.gz: 24375bc480c7560c2fb358cd3d6b65635d0b18bc
5
5
  SHA512:
6
- metadata.gz: 3470074fc6bd016a3ee83eb1de998823f4c3912305c18a9065793f03e4b5134e9580a2ce95f05d39fe8c316078463a5bb1bcceabcad868478c8aecd5a59b97a0
7
- data.tar.gz: 74b562849a1f53e8322360ef22f74147226dd0da64512c37f049cf84c04f859d5640c43a2d270b2cf486760ac4ed44921b569cf16d5ddecc7a56eac5101a049f
6
+ metadata.gz: 924eb9d4eb958184a9efa290195a5728fcae475be0f948d71bffa204dfabea6df7bef25dd21124abefa4b0f0276ef490fce0438c88eb027a3cd7bad1e0aaa18f
7
+ data.tar.gz: fc3332dab20489769f43e5cf0e26939bfdbd4978ebfea9e5e8d10caaf76d012c02489108d0a5899ddce3abee38e2f5913182e662ad281fbb25a9c61d709c5f81
data/README.md CHANGED
@@ -43,6 +43,14 @@ input {
43
43
  # 默认: false
44
44
  delete_remote_files => true
45
45
 
46
+ # 重新配置qingstor的地址
47
+ # 默认: nil
48
+ host => "new.qingstor.net"
49
+
50
+ # 重新配置qingstor地址的端口号
51
+ # 默认: 443
52
+ port => 443
53
+
46
54
  # 如果指定一个本地目录, 那么在处理完之后将文件备份至该位置.
47
55
  # 默认: nil
48
56
  local_dir => 'your/local/directory'
@@ -18,11 +18,17 @@ class LogStash::Inputs::Qingstor < LogStash::Inputs::Base
18
18
  # The key to access your QingStor
19
19
  config :secret_access_key, :validate => :string, :required => true
20
20
 
21
+ # If specified, it would redirect to this host address.
22
+ config :host, :validate => :string, :default => nil
23
+
24
+ # It specifies the host port, please coordinate with config 'host'.
25
+ config :port, :validate => :number, :default => 443
26
+
21
27
  # The name of the qingstor bucket
22
28
  config :bucket, :validate => :string, :required => true
23
29
 
24
30
  # The region of the QingStor bucket
25
- config :region, :validate => ["pek3a", "sh1a"], :default => "pek3a"
31
+ config :region, :validate => :string, :default => "pek3a"
26
32
 
27
33
  # If specified, it would only download the files with the specified prefix.
28
34
  config :prefix, :validate => :string, :default => nil
@@ -69,6 +75,7 @@ class LogStash::Inputs::Qingstor < LogStash::Inputs::Base
69
75
  @logger.info "Registering QingStor plugin", :bucket => @bucket, :region => @region
70
76
 
71
77
  @qs_config = QingStor::SDK::Config.init @access_key_id, @secret_access_key
78
+ @qs_config.update({ host: @host, port: @port }) unless @host.nil?
72
79
  @qs_service = QingStor::SDK::Service.new @qs_config
73
80
  @qs_bucket = @qs_service.bucket @bucket, @region
74
81
 
@@ -143,7 +150,7 @@ class LogStash::Inputs::Qingstor < LogStash::Inputs::Base
143
150
 
144
151
  md5_string = Digest::MD5.file(@tmp_file_path).to_s
145
152
 
146
- new_key = if @backup_prefix.end_with?('/')
153
+ new_key = if @backup_prefix.end_with?('/') || @backup_prefix.empty?
147
154
  @backup_prefix + key
148
155
  else
149
156
  @backup_prefix + '/' + key
@@ -1,9 +1,9 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = 'logstash-input-qingstor'
3
- s.version = '0.1.2'
3
+ s.version = '0.1.3'
4
4
  s.licenses = ['Apache License (2.0)']
5
5
  s.summary = 'logstash input plugin for QingStor'
6
- s.description = 'Use this plugin to fetch file as a input of logstash from Qingstor'
6
+ s.description = 'Use this plugin to fetch file from Qingstor as the input of logstash'
7
7
  s.homepage = 'https://github.com/Tacinight/logstash-input-qingstor'
8
8
  s.authors = ['Evan Zhao']
9
9
  s.email = 'tacingiht@gmail.com'
@@ -24,4 +24,4 @@ Gem::Specification.new do |s|
24
24
  s.add_runtime_dependency "qingstor-sdk", ">=1.9.2"
25
25
 
26
26
  s.add_development_dependency 'logstash-devutils'
27
- end
27
+ end
@@ -29,7 +29,7 @@ describe LogStash::Inputs::Qingstor do
29
29
  let(:backup) { "logstash-backup" }
30
30
  let(:local_backup_dir) { File.join(Dir.tmpdir, backup) }
31
31
 
32
- context "local backup" do
32
+ context "at the local end" do
33
33
  it "backup to local dir" do
34
34
  fetch_events(config.merge({"backup_local_dir" => local_backup_dir }))
35
35
  expect(File.exists?(File.join(local_backup_dir, key1))).to be_truthy
@@ -42,15 +42,25 @@ describe LogStash::Inputs::Qingstor do
42
42
  end
43
43
  end
44
44
 
45
- context "remote backup" do
45
+ context "at the remote end " do
46
46
  it "backup to another bucket" do
47
47
  fetch_events(config.merge({"backup_bucket" => backup}))
48
48
  expect(list_remote_file(backup).size).to eq(2)
49
49
  end
50
50
 
51
51
  after do
52
- delete_bucket(backup)
52
+ clean_and_delete_bucket(backup)
53
53
  end
54
54
  end
55
55
 
56
+ context "advance config" do
57
+ it "redirect to the specified host without specified port" do
58
+ expect{fetch_events(config.merge({"host" => "qingstor.dev"}))}.to raise_error(Net::HTTP::Persistent::Error)
59
+ end
60
+
61
+ it "redirect to the specified host without specified port" do
62
+ expect{fetch_events(config.merge({"host" => "qingstor.dev", "port" => 444}))}.to raise_error(Net::HTTP::Persistent::Error)
63
+ end
64
+ end
65
+
56
66
  end
@@ -37,7 +37,10 @@ def list_remote_file(bucket = ENV['bucket'], region = ENV['region'])
37
37
  return bucket.list_objects[:keys]
38
38
  end
39
39
 
40
- def delete_bucket(bucket)
40
+ def clean_and_delete_bucket(bucket)
41
41
  bucket = qs_init_bucket(bucket)
42
+ bucket.list_objects[:keys].each do |file|
43
+ bucket.delete_object file[:key]
44
+ end
42
45
  bucket.delete
43
46
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: logstash-input-qingstor
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.1.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Evan Zhao
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-03-16 00:00:00.000000000 Z
11
+ date: 2017-04-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  requirement: !ruby/object:Gem::Requirement
@@ -86,7 +86,7 @@ dependencies:
86
86
  - - ">="
87
87
  - !ruby/object:Gem::Version
88
88
  version: '0'
89
- description: Use this plugin to fetch file as a input of logstash from Qingstor
89
+ description: Use this plugin to fetch file from Qingstor as the input of logstash
90
90
  email: tacingiht@gmail.com
91
91
  executables: []
92
92
  extensions: []