wukong-migrate 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- OTYxYmMxOTdkZTkxZTI2ZmE5ODhhYTY5YzViOWU5YzAzMmE3OGQ5NQ==
4
+ N2RlYzkzMTE2NDhhY2Q2MDdlMzNlNzMyMGZjYjAwNDVkOGQyMDJmYQ==
5
5
  data.tar.gz: !binary |-
6
- Mzk3YWNkOTEzMjQyNWQ1MTQ4ZWRiZjIwYjY5NDE5Yjk1ZWEzNzMwMA==
6
+ YTczYjgyM2ExYzRhYmZkMmY0MTQ4YWVjMjQ4OTZlZjE2YWE4OGFhZQ==
7
7
  !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZmU2ZWY3MWVkNjA0ZDVhNGM5YjNmZGJiYTQ0ZjIzMmU5Njk0Mzc0MWJiNTM2
10
- NjFmY2Q3MTYwZTE3MjY0NDczZWQzMWEzODUwZjhiNmZmYmQ2YjIwM2QwZWY2
11
- NzU1OTQwMmM3MDVkMjE0ZTcwZTBkODMxOGJmYjVkYzYwYzM3MWI=
9
+ ZDI3MjQ0MGQxYTJkMmViZjgyMDA1MDg5MTEwNjI5YTQyMWE0MTUwNmFiOWE0
10
+ ZGNlMDYyNmRmZDRkZDdlNjdhNjAzMDc5NDBhNmYxMzlkMTNlZWRmODQxMjhi
11
+ ZWNlN2YwOGIyYWJlM2MzODliMGJjYTY3OWM4YjU2OWI4ZDdmYTU=
12
12
  data.tar.gz: !binary |-
13
- MGU5YWE3ZGQzN2NmNzFjOTA0ODE5MjM4NWQ4MzQwMWNjY2Y0ZDJhN2M2MDgz
14
- MjY0MTg1ZDAyZTEyYzVjMDkxNTMxYmI2NzJiYWU4YWJhM2Y2NDA5ZGIxNTFj
15
- ZThhZDljZjE3MTU1YjY2ZjUzNzQ1YTUxYzhhMjViMTA5Y2EyMWY=
13
+ YWM1MWMyOWI4YjQwOTU4OTgzOWY4ODQ3MGI2ZDA3MDUzMDIyZDljZTU1NGI1
14
+ Yjk0MGNjYmRiZDdlY2JjOTkzNjliNWY3YjIzZWY1NDcwMzY4MjRmZTIwOGVm
15
+ MWM5NWI5NTg1MTA2OTEzYzM1MDc5MTA3NWY0ZTg2MTBlMGVhNDA=
@@ -65,11 +65,11 @@ end
65
65
 
66
66
  class IndexDsl < EsMigrationDsl
67
67
  # Dsl methods
68
- collection :creations, ObjectDsl, singular_name: 'create_mapping'
69
- collection :updates, ObjectDsl, singular_name: 'update_mapping'
70
- collection :deletions, ObjectDsl, singular_name: 'delete_mapping'
71
- magic :alias_to, Array, of: Symbol, default: []
72
- magic :remove_alias, Array, of: Symbol, default: []
68
+ collection :creations, ObjectDsl, singular_name: 'create_mapping'
69
+ collection :updates, ObjectDsl, singular_name: 'update_mapping'
70
+ collection :deletions, ObjectDsl, singular_name: 'delete_mapping'
71
+ collection :add_aliases, Whatever, singular_name: 'alias_to'
72
+ collection :remove_aliases, Whatever, singular_name: 'remove_alias'
73
73
 
74
74
  # Additional index-level settings
75
75
  magic :number_of_replicas, Integer
@@ -92,14 +92,12 @@ class IndexDsl < EsMigrationDsl
92
92
  obj
93
93
  end
94
94
 
95
- def receive_alias_to params
96
- params.each{ |als| operation_list << alias_index_op(:add, self.name, als) }
97
- super(params)
95
+ def receive_alias_to(attrs, &block)
96
+ operation_list << alias_index_op(:add, self.name, attrs[:name], attrs[:filter])
98
97
  end
99
-
100
- def receive_remove_alias params
101
- params.each{ |als| operation_list << alias_index_op(:remove, self.name, als) }
102
- super(params)
98
+
99
+ def receive_remove_alias(attrs, &block)
100
+ operation_list << alias_index_op(:remove, self.name, attrs[:name], attrs[:filter])
103
101
  end
104
102
 
105
103
  def index_settings
@@ -59,11 +59,12 @@ class EsHttpOperation
59
59
  class AliasIndex < EsHttpOperation
60
60
  field :alias_name, String
61
61
  field :action, Symbol
62
+ field :filter, Hash
62
63
 
63
- def path() '/_aliases?' ; end
64
- def body() { actions: [{ action => { index: index, alias: alias_name } }]} ; end
65
- def verb() :post ; end
66
- def info() "#{action.capitalize} alias :#{alias_name} for index #{index}" ; end
64
+ def path() '/_aliases?' ; end
65
+ def body() { actions: [{ action => { index: index, alias: alias_name, filter: filter }.compact_blank }]} ; end
66
+ def verb() :post ; end
67
+ def info() "#{action.capitalize} alias :#{alias_name} for index #{index}" ; end
67
68
  end
68
69
 
69
70
  class UpdateIndexMapping < EsHttpOperation
@@ -93,8 +94,8 @@ class EsHttpOperation
93
94
  UpdateIndexMapping.receive(index: index, obj_type: obj_type, mapping: mapping)
94
95
  end
95
96
 
96
- def alias_index_op (action, index, als)
97
- AliasIndex.receive(action: action, index: index, alias_name: als)
97
+ def alias_index_op (action, index, als, filter)
98
+ AliasIndex.receive({ action: action, index: index, alias_name: als, filter: filter }.compact_blank)
98
99
  end
99
100
  end
100
101
  end
@@ -1,5 +1,5 @@
1
1
  module Wukong
2
2
  module Migrate
3
- VERSION = '0.0.3'
3
+ VERSION = '0.0.4'
4
4
  end
5
5
  end
@@ -36,13 +36,12 @@ describe EsMigration do
36
36
  it 'handles alias operations last' do
37
37
  m = subject.new do
38
38
  create_index(:foo) do
39
- alias_to [:superfoo, :superbar]
39
+ alias_to :superfoo, filter: {}
40
40
  end
41
41
  delete_index(:bar)
42
42
  end.combined_operations.should eq([delete_index_op('bar'),
43
43
  create_index_op('foo', {}),
44
- alias_index_op('add', 'foo', 'superfoo'),
45
- alias_index_op('add', 'foo', 'superbar')])
44
+ alias_index_op('add', 'foo', 'superfoo', {})])
46
45
  end
47
46
 
48
47
  it 'handles mapping operations' do
@@ -52,14 +52,14 @@ describe 'EsHttpOperation' do
52
52
  end
53
53
 
54
54
  context EsHttpOperation::AliasIndex do
55
- subject{ described_class.receive(index: 'foo', alias_name: 'bar', action: 'add') }
55
+ subject{ described_class.receive(index: 'foo', alias_name: 'bar', action: 'add', filter: { term: { foo: 'bar' }}) }
56
56
 
57
57
  its(:path) { should eq('/_aliases?') }
58
- its(:body) { should eq({ actions: [{ add: { index: 'foo', alias: 'bar' } }]}) }
58
+ its(:body) { should eq({ actions: [{ add: { index: 'foo', alias: 'bar', filter: { term: { foo: 'bar' } } } }]}) }
59
59
  its(:verb) { should eq(:post) }
60
60
  its(:info) { should eq('Add alias :bar for index foo') }
61
61
  its(:raw_curl_string) do
62
- should eq("curl -X POST 'http://localhost:9200/_aliases?' -d '{\"actions\":[{\"add\":{\"index\":\"foo\",\"alias\":\"bar\"}}]}'")
62
+ should eq("curl -X POST 'http://localhost:9200/_aliases?' -d '{\"actions\":[{\"add\":{\"index\":\"foo\",\"alias\":\"bar\",\"filter\":{\"term\":{\"foo\":\"bar\"}}}}]}'")
63
63
  end
64
64
  end
65
65
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: wukong-migrate
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
4
+ version: 0.0.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Travis Dempsey
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-07-26 00:00:00.000000000 Z
11
+ date: 2013-07-29 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: wukong-deploy