soar-registry-directory 5.0.1 → 5.0.2

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: 25375792d34b3062277d3100e6e2dc99e404c75e
4
- data.tar.gz: 5fad83bf254ed3fe03b12c3bde8398e25e77609b
3
+ metadata.gz: 6dea4c5efb18d2280d073f6bce679b804f623360
4
+ data.tar.gz: 0ac2542962c087002260057a9f3e9defc87fc69d
5
5
  SHA512:
6
- metadata.gz: c056c7b6e8f10460b0984598c856a3a2035418f663cb4cce11a193c243a22620eb61390e9f5f17a8ae4292856de6efedea52f7614cb17a01d777d6bc3457bf80
7
- data.tar.gz: 68d43c936a4b1c5e20b14b1303c2516ffc4b653d3f3f5a2dead51348d703c136c6d437c01343c7ae3104317e4abe1db6c0d503bc154435b2459018d0a1d7696b
6
+ metadata.gz: 4e374679b5f7f74d35083bb4f6980af26559592c89922b1ca9360f940c156b681604dae1ddeab323058299f5c57e549bca2fc7636237a18b6f651bd5645db4c7
7
+ data.tar.gz: 5386f8ff844f3242fba8cd3c42e1f600ce1a885ca1455a50ff332dcd0e4b95437d57192dd6a97382c9bfc6e1551dad75c3c6a67729c92a8cb6baf9dd7b694301
data/README.md CHANGED
@@ -29,17 +29,23 @@ Create an instance of the stub provider by passing in the name, primary key and
29
29
  ### DynamodDb Provider
30
30
  ```ruby
31
31
  > provider = Soar::Registry::Directory::Provider::DynamoDb.new({
32
- credentials: {
33
- username: "username",
34
- password: "secret"
32
+ table: {
33
+ name: 'identity_roles'
34
+ index: {
35
+ partition_key: 'partition_key'
36
+ sort_key: 'sort_key'
37
+ global_secondary_index: ['global_secondary_index1']
38
+ }
35
39
  },
36
- table: "mytable",
37
- index:
38
- partition_key: 'uuid',
39
- sort_key: 'role'
40
- config: {
41
- region: 'us-west-2'
42
- endpoint: 'http://localhost:8000'
40
+ configuration: {
41
+ region: 'us-west-2'
42
+ endpoint: 'http://localhost:8000'
43
+ http_read_timeout: 1,
44
+ retry_limit: 0
45
+ },
46
+ credentials: {
47
+ username: 'username'
48
+ password: 'secret'
43
49
  }
44
50
  })
45
51
 
@@ -54,7 +60,7 @@ $ sudo apt-get install libmysqlclient-dev
54
60
 
55
61
  ```ruby
56
62
  > provider = Soar::Registry::Directory::Provider::Mysql.new({
57
- index: ['Client_Number', 'Notifyemail_Invoice', 'Login'],
63
+ index: ['ID', 'Client_Number', 'Notifyemail_Invoice', 'Login'],
58
64
  config: {
59
65
  database: 'konsoleh_genie'
60
66
  table: 'Client'
@@ -94,7 +94,7 @@ module Soar
94
94
  }
95
95
  }
96
96
 
97
- options.merge!({index_name: "#{key}-index"}) if @global_secondary_indexes.include?(key)
97
+ options.merge!({index_name: "#{key}-index"}) if @global_secondary_indexes and @global_secondary_indexes.include?(key)
98
98
  identity = @client.query(options)
99
99
  identity.items.map { |item|
100
100
  Hashie.stringify_keys(item)
@@ -16,15 +16,23 @@ module Soar
16
16
  @table = @configuration['provider']['config']['table']
17
17
  @index = @table['index']
18
18
  @entries = JSON.parse(File.read("lib/soar/registry/directory/test/fixtures/entries.json"))
19
+ @connection_retries = 6
19
20
  end
20
21
 
21
22
  def given_configured_directory
22
- provider = Soar::Registry::Directory::Provider::DynamoDb.new(Hashie.symbolize_keys(@configuration['provider']['config']))
23
- @directory = Soar::Registry::Directory.new(provider)
24
- @directory.provider.recreate_table({
25
- name: @table[:name],
26
- structure: JSON.parse(File.read("lib/soar/registry/directory/test/fixtures/table_structure.json"))
27
- })
23
+ begin
24
+ provider = Soar::Registry::Directory::Provider::DynamoDb.new(Hashie.symbolize_keys(@configuration['provider']['config']))
25
+ @directory = Soar::Registry::Directory.new(provider)
26
+ @directory.provider.recreate_table({
27
+ name: @table[:name],
28
+ structure: JSON.parse(File.read("lib/soar/registry/directory/test/fixtures/table_structure.json"))
29
+ })
30
+ rescue Soar::Registry::Directory::Error::NetworkingError => e
31
+ raise if @connection_retries == 0
32
+ sleep 10
33
+ @connection_retries -= 1
34
+ given_configured_directory
35
+ end
28
36
  end
29
37
 
30
38
  def given_existing_data
@@ -30,15 +30,23 @@ module Soar
30
30
  sn: "Cilliers"
31
31
  }
32
32
  }]
33
+ @connection_retries = 6
33
34
  end
34
35
 
35
36
  def given_configured_directory
36
- provider_class = Object.const_get(@configuration['provider']['class'])
37
- provider = provider_class.new(Hashie.symbolize_keys(@configuration['provider']['config']))
38
- @directory = Soar::Registry::Directory.new(provider)
39
- @entries.each { |entry|
40
- provider.delete(entry[:dn])
41
- }
37
+ begin
38
+ provider_class = Object.const_get(@configuration['provider']['class'])
39
+ provider = provider_class.new(Hashie.symbolize_keys(@configuration['provider']['config']))
40
+ @directory = Soar::Registry::Directory.new(provider)
41
+ @entries.each { |entry|
42
+ provider.delete(entry[:dn])
43
+ }
44
+ rescue Soar::Registry::Directory::Error::NetworkingError => e
45
+ raise if @connection_retries == 0
46
+ sleep 10
47
+ @connection_retries -= 1
48
+ given_configured_directory
49
+ end
42
50
  end
43
51
 
44
52
  ##
@@ -28,18 +28,22 @@ module Soar
28
28
  Client_Number: "C101112134",
29
29
  Notifyemail_Invoice: "sarahconnor@example.com"
30
30
  }]
31
+ @connection_retries = 6
31
32
  end
32
33
 
33
34
  def given_configured_directory
34
- recreate_table({
35
- host: @configuration['provider']['config']['config']['host'],
36
- username: @configuration['provider']['config']['credentials']['username'],
37
- password: @configuration['provider']['config']['credentials']['password'],
38
- filepath: PATH_TO_DATABASE_STRUCTURE_DUMP
39
- })
40
- provider_class = Object.const_get(@configuration['provider']['class'])
41
- provider = provider_class.new(Hashie.symbolize_keys(@configuration['provider']['config']))
42
- @directory = Soar::Registry::Directory.new(provider)
35
+ begin
36
+ provider_class = Object.const_get(@configuration['provider']['class'])
37
+ provider = provider_class.new(Hashie.symbolize_keys(@configuration['provider']['config']))
38
+ provider.client.query("DROP TABLE IF EXISTS `Client`")
39
+ provider.client.query("CREATE TABLE Client ( ID int(11) NOT NULL AUTO_INCREMENT, Client_Number varchar(15) NOT NULL DEFAULT '', First_Name varchar(70) DEFAULT NULL, Surname varchar(70) DEFAULT NULL, Notifyemail_Invoice text, PRIMARY KEY (ID), KEY Notifyemail_Invoice (Notifyemail_Invoice(20)), KEY Client_Number (Client_Number))")
40
+ @directory = Soar::Registry::Directory.new(provider)
41
+ rescue Soar::Registry::Directory::Error::NetworkingError => e
42
+ raise if @connection_retries == 0
43
+ sleep(10)
44
+ @connection_retries -= 1
45
+ given_configured_directory
46
+ end
43
47
  end
44
48
 
45
49
  ##
@@ -133,15 +137,6 @@ module Soar
133
137
  }
134
138
  end
135
139
 
136
- private
137
-
138
- ##
139
- # Execute command using mysql client on terminal
140
- ##
141
- def recreate_table(host:, username:, password:, filepath:)
142
- `mysql -h #{host} -u#{username} -p#{password} konsoleh_genie < '#{filepath}'`
143
- end
144
-
145
140
  end
146
141
  end
147
142
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: soar-registry-directory
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.0.1
4
+ version: 5.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Charles Mulder
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-02-21 00:00:00.000000000 Z
11
+ date: 2017-03-07 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashy_db