cranium 0.8 → 0.8.1

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
  SHA256:
3
- metadata.gz: 3d6f7888fe46d32c156a48c081e57ddf8942d483b6a42c1b69faa4e0f276a128
4
- data.tar.gz: 9f49d912ca7cf12a8d3e90e1e6d00565099f4bf0fe4cee90e29f439c345a86df
3
+ metadata.gz: 4715c818c4f8f98f7d1a489979c3cf5ac1a2b50114052c6d619526fc8d0a4ca0
4
+ data.tar.gz: 6c619a8f8570cae9ef6c51002db8cf2ea6785983b70e0ace6e28b14f37e72330
5
5
  SHA512:
6
- metadata.gz: fb4ed093460aaf4eddde16e0ed1236e34d232ef128047683111459a836c7c544a4c5fe3ad5d05abb6609927affaf286c88f8269695153f21c1513b4c802445ea
7
- data.tar.gz: 65730273e55b87a3ba2b35f303f21613af3e7cf9328a8f7612cee60c37c54e606f2d50a3891597275ea084ce4405bc445c3d7277d2f5cb3d31b7be1ae805a740
6
+ metadata.gz: e12f463f677b70d7765120658c0efcb00da40c92ef9dd321eb4e6804106cf22f1da85505dfcfd1c5baf8fb46f67f5aa3784cccd4bc7214c6ab767f4d46cd5fa9
7
+ data.tar.gz: '080472dd1a1c70907496fdf0978231b82f6b6c8da0baf6c6b0e8488398387ef75a2b2ce95731818dd2c712eff316823ac168fc4063202ad887d662304f4a30a2'
data/.env CHANGED
@@ -1 +1,3 @@
1
- DATABASE_HOST=127.0.0.1
1
+ GREENPLUM_HOST=127.0.0.1
2
+ GPFDIST_HOST=127.0.0.1
3
+
data/.gitignore CHANGED
@@ -1,3 +1,4 @@
1
+ *.aes
1
2
  *.gem
2
3
  *.rbc
3
4
  .bundle
data/Dockerfile ADDED
@@ -0,0 +1,22 @@
1
+ FROM ruby:2.7.3-slim
2
+
3
+ RUN apt-get update \
4
+ && apt-get install -y --no-install-recommends \
5
+ build-essential \
6
+ libpq-dev \
7
+ postgresql-client \
8
+ git-core
9
+
10
+ RUN mkdir /app
11
+ WORKDIR /app
12
+
13
+ RUN gem install bundler
14
+
15
+ COPY Gemfile .
16
+ COPY cranium.gemspec .
17
+
18
+ ARG https_proxy
19
+ ARG http_proxy
20
+ RUN bundle install -j 5
21
+ COPY . .
22
+ RUN mkdir /tmp/custdata/
data/bin/run_tests.sh ADDED
@@ -0,0 +1,4 @@
1
+ #!/usr/bin/env bash
2
+
3
+ sleep 30
4
+ bundle exec rake
@@ -0,0 +1,24 @@
1
+ cranium:
2
+ build:
3
+ image: cranium
4
+ dockerfile: Dockerfile
5
+ cached: true
6
+
7
+ greenplum:
8
+ image: kevinmtrowbridge/gpdb-docker
9
+ cached: true
10
+ volumes:
11
+ - gpfdist-init:/home/gpadmin/gpfdist-data
12
+ - ./docker/:/docker-entrypoint-initdb.d
13
+ - ./db:/db
14
+ command: sh /docker-entrypoint-initdb.d/initialize_greenplum.sh
15
+
16
+ build-app:
17
+ image: cranium
18
+ depends_on:
19
+ - greenplum
20
+ environment:
21
+ GREENPLUM_HOST: "greenplum"
22
+ GPFDIST_HOST: "127.0.0.1"
23
+ volumes:
24
+ - gpfdist-init:/app/tmp/custdata
@@ -0,0 +1,3 @@
1
+ - name: Run tests
2
+ service: build-app
3
+ command: sh bin/run_tests.sh
data/cranium.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = 'cranium'
3
- spec.version = '0.8'
3
+ spec.version = '0.8.1'
4
4
  spec.authors = ['Emarsys Technologies']
5
5
  spec.email = ['smart-insight-dev@emarsys.com']
6
6
  spec.description = %q{Provides Extract, Transform and Load functionality for loading data from CSV files to a Greenplum database.}
@@ -13,13 +13,13 @@ Gem::Specification.new do |spec|
13
13
  spec.test_files = spec.files.grep(%r{^(test|spec|features)/})
14
14
  spec.require_paths = ['lib']
15
15
 
16
- spec.add_runtime_dependency 'pg', '~> 0'
16
+ spec.add_runtime_dependency 'pg', '>= 0'
17
17
  spec.add_runtime_dependency 'progressbar', '~> 0'
18
18
  spec.add_runtime_dependency 'sequel', '>= 4', '< 6'
19
19
  spec.add_runtime_dependency 'slop', '~> 3'
20
20
 
21
- spec.add_development_dependency 'bundler', '~> 1'
22
- spec.add_development_dependency 'rake', '~> 10'
21
+ spec.add_development_dependency 'bundler'
22
+ spec.add_development_dependency 'rake', '~> 13'
23
23
  spec.add_development_dependency 'rspec', '~> 3'
24
24
  spec.add_development_dependency 'ruby-prof', '~> 0'
25
25
  spec.add_development_dependency 'cucumber', '~> 1'
@@ -0,0 +1,8 @@
1
+ CREATE RESOURCE QUEUE smart_insight WITH (ACTIVE_STATEMENTS=10, PRIORITY=MEDIUM);
2
+
3
+ CREATE ROLE cranium WITH RESOURCE QUEUE smart_insight CREATEEXTTABLE LOGIN PASSWORD 'cranium';
4
+ COMMENT ON ROLE cranium IS 'Cranium test user';
5
+
6
+ CREATE DATABASE cranium WITH OWNER=cranium;
7
+
8
+ CREATE ROLE database_administrator WITH SUPERUSER LOGIN PASSWORD 'emarsys';
@@ -0,0 +1,9 @@
1
+ #!/usr/bin/env bash
2
+
3
+ echo "127.0.0.1 $(cat ~/orig_hostname)" >> /etc/hosts
4
+
5
+ service sshd start
6
+
7
+ su - gpadmin -c /usr/local/bin/run.sh
8
+ su - gpadmin -c 'cat /docker-entrypoint-initdb.d/create_databases.sql | psql -e'
9
+ su - gpadmin -c 'gpfdist -d /home/gpadmin/gpfdist-data -p 8123'
data/docker-compose.yml CHANGED
@@ -1,9 +1,10 @@
1
- greenplum:
2
- image: kevinmtrowbridge/gpdb-docker
3
- ports:
4
- - 5432:5432
5
- - 8123:8123
6
- volumes:
7
- - ./tmp/custdata:/home/gpadmin/gpfdist-data
8
- - ./db:/db
9
- command: sh /db/start.sh
1
+ services:
2
+ greenplum:
3
+ image: kevinmtrowbridge/gpdb-docker
4
+ ports:
5
+ - 5432:5432
6
+ - 8123:8123
7
+ volumes:
8
+ - ./tmp/custdata:/home/gpadmin/gpfdist-data
9
+ - ./db:/db
10
+ command: sh /db/start.sh
@@ -16,7 +16,7 @@ Feature: Sequel database connections are fault tolerant
16
16
  require 'sequel'
17
17
 
18
18
  def terminate_connections
19
- connection = Sequel.connect "postgres://database_administrator:emarsys@#{ENV['DATABASE_HOST'] || '192.168.56.43'}:5432/cranium", loggers: Cranium.configuration.loggers
19
+ connection = Sequel.connect "postgres://database_administrator:emarsys@#{ENV['GREENPLUM_HOST'] || '192.168.56.43'}:5432/cranium", loggers: Cranium.configuration.loggers
20
20
  connection.run("SELECT pg_terminate_backend(procpid) FROM pg_stat_activity WHERE procpid <> pg_backend_pid() AND datname = 'cranium'")
21
21
  end
22
22
 
@@ -5,8 +5,8 @@ require_relative "../../lib/cranium"
5
5
  FileUtils.mkdir_p("log") unless Dir.exists?("log")
6
6
 
7
7
  Cranium.configure do |config|
8
- config.greenplum_connection_string = "postgres://cranium:cranium@#{ENV['DATABASE_HOST'] || '192.168.56.43'}:5432/cranium"
9
- config.gpfdist_url = "#{ENV['DATABASE_HOST'] || '192.168.56.43'}:8123"
8
+ config.greenplum_connection_string = "postgres://cranium:cranium@#{ENV['GREENPLUM_HOST'] || '192.168.56.43'}:5432/cranium"
9
+ config.gpfdist_url = "#{ ENV['GPFDIST_HOST'] || '192.168.56.43'}:8123"
10
10
  config.gpfdist_home_directory = "tmp/custdata"
11
11
  config.upload_directory = "cranium_build"
12
12
  config.loggers << Logger.new("log/cucumber.log")
data/repo-info.json ADDED
@@ -0,0 +1,7 @@
1
+ {
2
+ "is_in_production": true,
3
+ "is_scannable": true,
4
+ "is_critical": false,
5
+ "contact": "g-gsuite-smartinsight@emarsys.com",
6
+ "hosted": null
7
+ }
metadata CHANGED
@@ -1,27 +1,27 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cranium
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.8'
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Emarsys Technologies
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-10-19 00:00:00.000000000 Z
11
+ date: 2021-09-16 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: pg
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
@@ -76,30 +76,30 @@ dependencies:
76
76
  name: bundler
77
77
  requirement: !ruby/object:Gem::Requirement
78
78
  requirements:
79
- - - "~>"
79
+ - - ">="
80
80
  - !ruby/object:Gem::Version
81
- version: '1'
81
+ version: '0'
82
82
  type: :development
83
83
  prerelease: false
84
84
  version_requirements: !ruby/object:Gem::Requirement
85
85
  requirements:
86
- - - "~>"
86
+ - - ">="
87
87
  - !ruby/object:Gem::Version
88
- version: '1'
88
+ version: '0'
89
89
  - !ruby/object:Gem::Dependency
90
90
  name: rake
91
91
  requirement: !ruby/object:Gem::Requirement
92
92
  requirements:
93
93
  - - "~>"
94
94
  - !ruby/object:Gem::Version
95
- version: '10'
95
+ version: '13'
96
96
  type: :development
97
97
  prerelease: false
98
98
  version_requirements: !ruby/object:Gem::Requirement
99
99
  requirements:
100
100
  - - "~>"
101
101
  - !ruby/object:Gem::Version
102
- version: '10'
102
+ version: '13'
103
103
  - !ruby/object:Gem::Dependency
104
104
  name: rspec
105
105
  requirement: !ruby/object:Gem::Requirement
@@ -162,23 +162,30 @@ email:
162
162
  - smart-insight-dev@emarsys.com
163
163
  executables:
164
164
  - cranium
165
+ - run_tests.sh
165
166
  extensions: []
166
167
  extra_rdoc_files: []
167
168
  files:
168
169
  - ".env"
169
170
  - ".gitignore"
170
171
  - ".rspec"
172
+ - Dockerfile
171
173
  - Gemfile
172
174
  - LICENSE.txt
173
175
  - README.md
174
176
  - Rakefile
175
177
  - Vagrantfile
176
178
  - bin/cranium
179
+ - bin/run_tests.sh
180
+ - codeship-services.yml
181
+ - codeship-steps.yml
177
182
  - config/cucumber.yml
178
183
  - cranium.gemspec
179
184
  - db/setup.sql
180
185
  - db/start.sh
181
186
  - docker-compose.yml
187
+ - docker/create_databases.sql
188
+ - docker/initialize_greenplum.sh
182
189
  - examples/config.rb
183
190
  - examples/deduplication.rb
184
191
  - examples/import_csv_with_field_lookup_inserting_new_dimension_keys.rb
@@ -272,6 +279,7 @@ files:
272
279
  - lib/cranium/transformation/sequence.rb
273
280
  - lib/cranium/transformation_record.rb
274
281
  - rake/test.rake
282
+ - repo-info.json
275
283
  - spec/cranium/application_spec.rb
276
284
  - spec/cranium/archiver_spec.rb
277
285
  - spec/cranium/command_line_options_spec.rb
@@ -319,7 +327,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
319
327
  - !ruby/object:Gem::Version
320
328
  version: '0'
321
329
  requirements: []
322
- rubygems_version: 3.0.3
330
+ rubygems_version: 3.2.27
323
331
  signing_key:
324
332
  specification_version: 4
325
333
  summary: Pure Ruby ETL framework