soar-registry-directory 5.0.1 → 5.0.2

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 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