deereDB2cleaner 0.0.1

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.
Files changed (4) hide show
  1. checksums.yaml +7 -0
  2. data/lib/constants.rb +32 -0
  3. data/lib/deereDB2cleaner.rb +76 -0
  4. metadata +45 -0
checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 271ed08be53c5c063a4879f3bc8b42f8e1e81c73
4
+ data.tar.gz: 0dc6ae4024d9f4369b2b16965756c91eed861611
5
+ SHA512:
6
+ metadata.gz: def2d81a84d487e13a8cb7e5c4cf9679d6c2edf3d4db30bfebc239d1040006a319f8cb34ac30c2c53cc64b75e0cf3ce111d7b46803ead2b3a20357dbc1715e93
7
+ data.tar.gz: 1c544dbc563b64231ecd96330cededa73601babce64ba22a666032a5707d2a3fc124df9857e1f98ea36360c0e2f709e387f675f6b4006eaf8f2d4e7ec98ee0c4
data/lib/constants.rb ADDED
@@ -0,0 +1,32 @@
1
+ module Constants
2
+
3
+ USER = 'ap90405'
4
+ PASSWORD = 'jdlink05'
5
+ URL = 'jdbc:db2://db236d.dx.deere.com:5148/DB236'
6
+ GLOBAL_SCHEMA = 'U90EDMT'
7
+
8
+ NODE_SCHEMAS = "select distinct creator as SCHEMA from sysibm.systables where (owner LIKE 'J900%') AND TYPE = 'T' AND COLCOUNT > 1"
9
+
10
+ NODE_QUERIES = [
11
+
12
+ ]
13
+
14
+ GLOBAL_QUERIES = [
15
+ 'DELETE FROM {S}.CS_DVC_INFO WHERE DVC_ID > {X}',
16
+ 'DELETE FROM {S}.TRM_VER_HIST WHERE DVC_ID > {X}',
17
+ 'DELETE FROM {S}.HDWR_PKG_GTWY_XREF WHERE HDWR_PKG_ID > {X}',
18
+ 'DELETE from {S}.COMM_ST WHERE comm_gtwy_id > {X}',
19
+ 'DELETE FROM {S}.COMM_STAT_HISTORY WHERE DVC_ID > {X}',
20
+ 'DELETE FROM {S}.COMM_GTWY WHERE COMM_GTWY_ID > {X}',
21
+ 'DELETE FROM {S}.MACH_CO_SHARING WHERE RLTN_ID > {X}',
22
+ 'DELETE FROM {S}.MACH_CO WHERE MACH_ID > {X}',
23
+ 'DELETE FROM {S}.MACH_HDWR_PKG WHERE MACH_ID > {X}',
24
+ 'DELETE FROM {S}.MACH_INFO WHERE MACH_ID > {X}',
25
+ 'DELETE FROM {S}.HDWR_PKG_CO_XREF WHERE HDWR_PKG_ID > {X}',
26
+ 'DELETE FROM {S}.HDWR_PKG_DVC_XREF WHERE DVC_ID > {X}',
27
+ 'DELETE FROM {S}.HDWR_PKG WHERE ID > {X}',
28
+ 'DELETE FROM {S}.TRM_SECURE_INFO WHERE DVC_ID > {X}',
29
+ 'DELETE FROM {S}.TRM_INFO WHERE DVC_ID > {X}'
30
+ ]
31
+
32
+ end
@@ -0,0 +1,76 @@
1
+ require 'constants'
2
+
3
+ class DeereDB2cleaner
4
+ extend Constants
5
+
6
+ attr_accessor :num_to_clean, :connection
7
+
8
+ def initialize(num_to_clean)
9
+ @num_to_clean = num_to_clean
10
+ end
11
+
12
+ def clean
13
+ @connection = create_connection
14
+ if @connection
15
+ node_schemas.each { |schema| clean_node_schema(schema)}
16
+ clean_global_schema()
17
+ @connection.close
18
+ end
19
+ end
20
+
21
+ private
22
+
23
+ def create_connection
24
+ begin
25
+ java.lang.Class.forName('com.ibm.db2.jcc.DB2Driver', true, java.lang.Thread.currentThread.getContextClassLoader)
26
+ java.sql.DriverManager.getConnection(Constants::URL, Constants::USER, Constants::PASSWORD);
27
+ rescue Exception => e
28
+ puts "connection could not be made: #{e}"
29
+ end
30
+ end
31
+
32
+ def node_schemas
33
+ schemas = []
34
+ begin
35
+ statement = @connection.create_statement
36
+ rs = statement.execute_query(Constants::NODE_SCHEMAS)
37
+ schemas << rs.getString('SCHEMA') while rs.next()
38
+ return schemas
39
+ rescue
40
+ puts 'error executing query'
41
+ ensure
42
+ if rs
43
+ rs.close
44
+ end
45
+ end
46
+ end
47
+
48
+ def clean_node_schema(schema)
49
+ Constants::NODE_QUERIES.each {|query|
50
+ clean_query(query, schema)
51
+ execute(query)
52
+ }
53
+ end
54
+
55
+ def clean_global_schema()
56
+ Constants::GLOBAL_QUERIES.each {|query|
57
+ clean_query(query, Constants::GLOBAL_SCHEMA)
58
+ execute(query)
59
+ }
60
+ end
61
+
62
+ def clean_query(query, schema)
63
+ query.gsub!('{X}',@num_to_clean.to_s)
64
+ query.gsub!('{S}',schema)
65
+ end
66
+
67
+ def execute(query)
68
+ begin
69
+ statement = @connection.create_statement
70
+ statement.execute(query)
71
+ rescue Exception => e
72
+ puts "error in #{query}: #{e}"
73
+ end
74
+ end
75
+
76
+ end
metadata ADDED
@@ -0,0 +1,45 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: deereDB2cleaner
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ platform: ruby
6
+ authors:
7
+ - david hunt
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-02-13 00:00:00.000000000 Z
12
+ dependencies: []
13
+ description: clean DB2
14
+ email: n/a
15
+ executables: []
16
+ extensions: []
17
+ extra_rdoc_files: []
18
+ files:
19
+ - lib/constants.rb
20
+ - lib/deereDB2cleaner.rb
21
+ homepage: http://rubygems.org/gems/deereDB2cleaner
22
+ licenses:
23
+ - MIT
24
+ metadata: {}
25
+ post_install_message:
26
+ rdoc_options: []
27
+ require_paths:
28
+ - lib
29
+ required_ruby_version: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ required_rubygems_version: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '0'
39
+ requirements: []
40
+ rubyforge_project:
41
+ rubygems_version: 2.2.2
42
+ signing_key:
43
+ specification_version: 4
44
+ summary: clean DB2
45
+ test_files: []