snow_sync 2.0.3 → 2.0.4
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 +4 -4
- data/README.md +3 -2
- data/lib/snow_sync/sync_util.rb +22 -44
- data/lib/snow_sync/version.rb +1 -1
- data/spec/sync_util_spec.rb +10 -5
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 767c4c759ea7399131d6ac18244530e04ce3adce
|
4
|
+
data.tar.gz: 9ae30f53d195d5b30be3af7178db1f7991d901b4
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1ad5b750d3827b94f06cf70ea3c7fcf0d57be2ab14c1009574538dc6b375f44baeefb814281a87d93633e66f75f85402889be555370d1376656ddf43c5c2d864
|
7
|
+
data.tar.gz: fb8306796cc66077ea171110cbd39c687ab352a5474680d8a5ecea8e2ad6934693a44dde5a7351b8c922a1d392287f9c937e4d3dce1cb8a6b6b0b47821a1f5a8
|
data/README.md
CHANGED
@@ -45,6 +45,7 @@ cd /lib/snow_sync
|
|
45
45
|
```
|
46
46
|
|
47
47
|
* Setup the configurations in the configs.yml
|
48
|
+
* Only supports single table map configuration (multi coming soon...)
|
48
49
|
* Configuration path is the current working directory
|
49
50
|
* Append /api/now/table/ to the base_url
|
50
51
|
|
@@ -52,7 +53,7 @@ cd /lib/snow_sync
|
|
52
53
|
guard -i
|
53
54
|
```
|
54
55
|
|
55
|
-
Note
|
56
|
+
**Note:** if the sync directory is deleted after a successful sync, reset the credential configs in the configs.yml so they can be re-encrypted on the next sync
|
56
57
|
|
57
58
|
|
58
59
|
## Running the Tests
|
@@ -71,7 +72,7 @@ cd <path>/gems/snow_sync-<version>
|
|
71
72
|
rspec spec/sync_util_spec.rb
|
72
73
|
```
|
73
74
|
|
74
|
-
Note
|
75
|
+
**Note:** if the sync directory is deleted after a successful sync, reset the credential configs in the test_configs.yml so they can be re-encrypted on the next sync
|
75
76
|
|
76
77
|
## License
|
77
78
|
|
data/lib/snow_sync/sync_util.rb
CHANGED
@@ -11,8 +11,8 @@ module SnowSync
|
|
11
11
|
|
12
12
|
attr_accessor :cf, :configs, :logger
|
13
13
|
|
14
|
-
# creates utility object
|
15
|
-
#
|
14
|
+
# creates a utility object
|
15
|
+
# sets the encapsulated data
|
16
16
|
# opts {string}: optional configuration
|
17
17
|
|
18
18
|
def initialize(opts = nil)
|
@@ -20,11 +20,11 @@ module SnowSync
|
|
20
20
|
@configs = YAML::load_file(@cf)
|
21
21
|
@logger = Logger.new(STDERR)
|
22
22
|
end
|
23
|
-
|
24
|
-
# creates directory if directory
|
23
|
+
|
24
|
+
# creates a directory if no directory exists
|
25
25
|
# name {string}: required directory name
|
26
26
|
# &block {object}: optional directory path
|
27
|
-
|
27
|
+
|
28
28
|
def create_directory(name, &block)
|
29
29
|
yield block if block_given?
|
30
30
|
unless File.directory?(name)
|
@@ -34,7 +34,7 @@ module SnowSync
|
|
34
34
|
end
|
35
35
|
|
36
36
|
# creates a js file
|
37
|
-
# logs
|
37
|
+
# logs the file creation
|
38
38
|
# name {string}: required file name
|
39
39
|
# json {object}: required json object
|
40
40
|
# &block {object}: optional file path
|
@@ -48,50 +48,29 @@ module SnowSync
|
|
48
48
|
end
|
49
49
|
|
50
50
|
# checks required configurations
|
51
|
-
# raises an exception when
|
51
|
+
# raises an exception when configs aren't found
|
52
52
|
|
53
53
|
def check_required_configs
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
end
|
54
|
+
missing_path = @configs["conf_path"].nil?
|
55
|
+
missing_url = @configs["base_url"].nil?
|
56
|
+
missing_creds = @configs["creds"].values.any? { |val| val.nil? }
|
58
57
|
keys = @configs["table_map"].keys
|
59
58
|
keys.each do |key|
|
60
|
-
|
61
|
-
|
62
|
-
|
59
|
+
missing_map = @configs["table_map"][key].values.any? { |val| val.nil? }
|
60
|
+
if missing_path or missing_url or missing_creds or missing_map
|
61
|
+
raise "EXCEPTION: Required configs missing in configs.yml. " \
|
62
|
+
"Check the configuration path, base url, credentials or table to sync."
|
63
63
|
end
|
64
|
-
end
|
65
|
-
if missing_credentials or @missing_table_map or !conf_path
|
66
|
-
raise "EXCEPTION: Required configs missing in configs.yml. " \
|
67
|
-
"Please check the configuration path, credentials or table to sync."
|
68
|
-
else
|
69
|
-
@configs
|
70
|
-
end
|
64
|
+
end
|
71
65
|
end
|
72
66
|
|
73
|
-
# encrypts
|
74
|
-
# whether a previous sync setup has occurred
|
67
|
+
# encrypts config credentials based on previous sync
|
75
68
|
|
76
69
|
def encrypt_credentials
|
77
70
|
previous_sync = File.directory?("sync")
|
78
|
-
|
79
|
-
|
80
|
-
configs = YAML::load_file(configs_path)
|
81
|
-
if previous_sync
|
82
|
-
# local configuration changes
|
71
|
+
if !previous_sync
|
72
|
+
configs_path = @configs["conf_path"] + @cf
|
83
73
|
configs = YAML::load_file(configs_path)
|
84
|
-
user = Base64.strict_decode64(@configs["creds"]["user"])
|
85
|
-
pass = Base64.strict_decode64(@configs["creds"]["pass"])
|
86
|
-
userb64 = Base64.strict_encode64(user)
|
87
|
-
passb64 = Base64.strict_encode64(pass)
|
88
|
-
configs["creds"]["user"] = userb64
|
89
|
-
configs["creds"]["pass"] = passb64
|
90
|
-
File.open(configs_path, 'w') { |f| YAML::dump(configs, f) }
|
91
|
-
# object state configuration changes
|
92
|
-
@configs["creds"]["user"] = userb64
|
93
|
-
@configs["creds"]["pass"] = passb64
|
94
|
-
else
|
95
74
|
# local configuration changes
|
96
75
|
userb64 = Base64.strict_encode64(@configs["creds"]["user"])
|
97
76
|
passb64 = Base64.strict_encode64(@configs["creds"]["pass"])
|
@@ -100,7 +79,7 @@ module SnowSync
|
|
100
79
|
File.open(configs_path, 'w') { |f| YAML::dump(configs, f) }
|
101
80
|
# object state configuration changes
|
102
81
|
@configs["creds"]["user"] = userb64
|
103
|
-
|
82
|
+
@configs["creds"]["pass"] = passb64
|
104
83
|
end
|
105
84
|
end
|
106
85
|
|
@@ -153,7 +132,7 @@ module SnowSync
|
|
153
132
|
end
|
154
133
|
end
|
155
134
|
|
156
|
-
# replaces the encapsulated table
|
135
|
+
# replaces the encapsulated table response value
|
157
136
|
# with the current js file updates
|
158
137
|
# file {string}: js file path
|
159
138
|
# table_hash {hash}: configured SN table hash
|
@@ -165,10 +144,9 @@ module SnowSync
|
|
165
144
|
FileUtils.cd("../..")
|
166
145
|
end
|
167
146
|
|
168
|
-
# start sync process
|
169
147
|
# check required configurations
|
170
148
|
# encrypt configured credentials
|
171
|
-
# retrieve
|
149
|
+
# retrieve, set up the script file locally
|
172
150
|
|
173
151
|
def start_sync
|
174
152
|
check_required_configs
|
@@ -177,7 +155,7 @@ module SnowSync
|
|
177
155
|
end
|
178
156
|
|
179
157
|
# merges all js file changes
|
180
|
-
# updates SN instance with the
|
158
|
+
# updates a SN instance with the changes
|
181
159
|
# files {array}: array of js file paths
|
182
160
|
|
183
161
|
def push_modifications(files)
|
data/lib/snow_sync/version.rb
CHANGED
data/spec/sync_util_spec.rb
CHANGED
@@ -74,25 +74,30 @@ describe "check_required_configs" do
|
|
74
74
|
end
|
75
75
|
|
76
76
|
it "should raise an exception when there is no config path" do
|
77
|
-
util.configs["conf_path"] =
|
78
|
-
expect{util.check_required_configs}.to raise_error(/
|
77
|
+
util.configs["conf_path"] = nil
|
78
|
+
expect{util.check_required_configs}.to raise_error(/Check the configuration path, base url, credentials or table to sync/)
|
79
|
+
end
|
80
|
+
|
81
|
+
it "should raise an exception when there is no base url" do
|
82
|
+
util.configs["base_url"] = nil
|
83
|
+
expect{util.check_required_configs}.to raise_error(/Check the configuration path, base url, credentials or table to sync/)
|
79
84
|
end
|
80
85
|
|
81
86
|
it "should raise an exception when there is no username" do
|
82
87
|
util.configs["creds"]["user"] = nil
|
83
|
-
expect{util.check_required_configs}.to raise_error(/
|
88
|
+
expect{util.check_required_configs}.to raise_error(/Check the configuration path, base url, credentials or table to sync/)
|
84
89
|
end
|
85
90
|
|
86
91
|
it "should raise an exception when there is no password" do
|
87
92
|
util.configs["creds"]["pass"] = nil
|
88
|
-
expect{util.check_required_configs}.to raise_error(/
|
93
|
+
expect{util.check_required_configs}.to raise_error(/Check the configuration path, base url, credentials or table to sync/)
|
89
94
|
end
|
90
95
|
|
91
96
|
it "should raise an exception when there are no tables mapped" do
|
92
97
|
tables = util.configs["table_map"].keys
|
93
98
|
tables.each do |table|
|
94
99
|
util.configs["table_map"][table]["table"] = nil
|
95
|
-
expect{util.check_required_configs}.to raise_error(/
|
100
|
+
expect{util.check_required_configs}.to raise_error(/Check the configuration path, base url, credentials or table to sync/)
|
96
101
|
end
|
97
102
|
end
|
98
103
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: snow_sync
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Andy Wallace
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-12-
|
11
|
+
date: 2016-12-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|