deereDB2cleaner 0.0.1 → 0.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: 271ed08be53c5c063a4879f3bc8b42f8e1e81c73
4
- data.tar.gz: 0dc6ae4024d9f4369b2b16965756c91eed861611
3
+ metadata.gz: ee2f422950f795768ae452db3255c1f1c92cb081
4
+ data.tar.gz: d2350e271f588968232bb36851b4a4ebd1aee0a4
5
5
  SHA512:
6
- metadata.gz: def2d81a84d487e13a8cb7e5c4cf9679d6c2edf3d4db30bfebc239d1040006a319f8cb34ac30c2c53cc64b75e0cf3ce111d7b46803ead2b3a20357dbc1715e93
7
- data.tar.gz: 1c544dbc563b64231ecd96330cededa73601babce64ba22a666032a5707d2a3fc124df9857e1f98ea36360c0e2f709e387f675f6b4006eaf8f2d4e7ec98ee0c4
6
+ metadata.gz: 07d073ec1549d21b359b20dfb14af4557fe8cbe614f60528835bbe73cd36f990c03ad767c51c8babf57f38ceb54cffa65a6a533a3f166a129484737d4ae88715
7
+ data.tar.gz: 71c8836df1822dad5836fd1cbaae6d62af0f1efd371e8bfb7b05c89dfc2d9d5ef53afd2e6dc1a465fde0bd270ff4db84ec662e54d36a51243c5471294e8ab5d7
data/lib/constants.rb CHANGED
@@ -5,10 +5,17 @@ module Constants
5
5
  URL = 'jdbc:db2://db236d.dx.deere.com:5148/DB236'
6
6
  GLOBAL_SCHEMA = 'U90EDMT'
7
7
 
8
- NODE_SCHEMAS = "select distinct creator as SCHEMA from sysibm.systables where (owner LIKE 'J900%') AND TYPE = 'T' AND COLCOUNT > 1"
8
+ NODE_SCHEMAS = "select distinct creator as SCHEMA from sysibm.systables where (owner LIKE 'J900%')
9
+ AND owner NOT LIKE 'J90006T' AND TYPE = 'T' AND COLCOUNT > 1"
9
10
 
10
- NODE_QUERIES = [
11
+ NODE_FIELDS = "select distinct TBCREATOR, name,tbname from sysibm.syscolumns where TBCREATOR LIKE 'J900%'
12
+ and TBCREATOR NOT LIKE 'J90006T' AND COLNO > 1 and (name = 'MACH_ID' or name = 'DVC_ID')"
11
13
 
14
+ NODE_QUERIES = [
15
+ 'delete FROM {S}.fts_chunk WHERE fts_tm_id IN (SELECT fts_tm_id FROM {S}.FTS_TM where DVC_ID > {X})',
16
+ 'delete from {S}.MSRMT_DATA_VAL where mach_trace_id in (select mach_trace_id FROM {S}.MACH_TRACE_LOG where MACH_ID > {X})',
17
+ 'delete FROM {S}.EQIP_CELL_MODEM_STAT WHERE EQIP_CALL_IN_INFO_ID IN (SELECT EQIP_CALL_IN_INFO_ID FROM {S}.EQIP_CALL_IN_INFO where MACH_ID > {X})',
18
+ 'delete FROM {S}.EQIP_ENGN_PWR_STAT WHERE EQIP_CALL_IN_INFO_ID IN (SELECT EQIP_CALL_IN_INFO_ID FROM {S}.EQIP_CALL_IN_INFO where MACH_ID > {X})'
12
19
  ]
13
20
 
14
21
  GLOBAL_QUERIES = [
@@ -16,7 +23,7 @@ module Constants
16
23
  'DELETE FROM {S}.TRM_VER_HIST WHERE DVC_ID > {X}',
17
24
  'DELETE FROM {S}.HDWR_PKG_GTWY_XREF WHERE HDWR_PKG_ID > {X}',
18
25
  'DELETE from {S}.COMM_ST WHERE comm_gtwy_id > {X}',
19
- 'DELETE FROM {S}.COMM_STAT_HISTORY WHERE DVC_ID > {X}',
26
+ 'DELETE FROM {S}.COMM_STAT_HIST WHERE DVC_ID > {X}',
20
27
  'DELETE FROM {S}.COMM_GTWY WHERE COMM_GTWY_ID > {X}',
21
28
  'DELETE FROM {S}.MACH_CO_SHARING WHERE RLTN_ID > {X}',
22
29
  'DELETE FROM {S}.MACH_CO WHERE MACH_ID > {X}',
data/lib/database.rb ADDED
@@ -0,0 +1,36 @@
1
+ require 'constants'
2
+
3
+ class Database
4
+ extend Constants
5
+
6
+ attr_accessor :connection
7
+
8
+ def create_connection
9
+ begin
10
+ java.lang.Class.forName('com.ibm.db2.jcc.DB2Driver', true, java.lang.Thread.currentThread.getContextClassLoader)
11
+ @connection = java.sql.DriverManager.getConnection(Constants::URL, Constants::USER, Constants::PASSWORD);
12
+ rescue Exception => e
13
+ puts "connection could not be made: #{e}"
14
+ end
15
+ end
16
+
17
+ def clean_query(query, schema, num_to_clean)
18
+ query = query.gsub('{X}', num_to_clean.to_s)
19
+ query = query.gsub('{S}', schema)
20
+ return query
21
+ end
22
+
23
+ def execute(query)
24
+ begin
25
+ statement = @connection.create_statement
26
+ statement.execute(query)
27
+ rescue Exception => e
28
+ puts "#{query}: #{e}"
29
+ ensure
30
+ if statement
31
+ statement.close
32
+ end
33
+ end
34
+ end
35
+
36
+ end
@@ -1,76 +1,20 @@
1
1
  require 'constants'
2
+ require 'node'
3
+ require 'global'
2
4
 
3
5
  class DeereDB2cleaner
4
6
  extend Constants
5
7
 
6
- attr_accessor :num_to_clean, :connection
8
+ attr_accessor :node, :global, :connection
7
9
 
8
10
  def initialize(num_to_clean)
9
- @num_to_clean = num_to_clean
11
+ @node = Node.new(num_to_clean)
12
+ @global = Global.new(num_to_clean)
10
13
  end
11
14
 
12
15
  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
16
+ @node.clean
17
+ @global.clean
74
18
  end
75
19
 
76
20
  end
data/lib/global.rb ADDED
@@ -0,0 +1,21 @@
1
+ require 'constants'
2
+ require 'database'
3
+
4
+ class Global < Database
5
+ extend Constants
6
+
7
+ attr_accessor :connection, :num_to_clean
8
+
9
+ def initialize(num_to_clean)
10
+ @num_to_clean = num_to_clean
11
+ @connection = create_connection
12
+ end
13
+
14
+ def clean
15
+ Constants::GLOBAL_QUERIES.each { |query|
16
+ query = clean_query(query, Constants::GLOBAL_SCHEMA, @num_to_clean)
17
+ execute(query)
18
+ }
19
+ end
20
+
21
+ end
data/lib/node.rb ADDED
@@ -0,0 +1,66 @@
1
+ require 'constants'
2
+ require 'database'
3
+
4
+ class Node < Database
5
+ extend Constants
6
+
7
+ attr_accessor :connection, :num_to_clean
8
+
9
+ def initialize(num_to_clean)
10
+ @num_to_clean = num_to_clean
11
+ @connection = create_connection
12
+ end
13
+
14
+ def clean
15
+ node_schemas.each { |schema| clean_node_queries(schema)}
16
+ clean_all_tables
17
+ end
18
+
19
+ private
20
+
21
+ def node_schemas
22
+ schemas = []
23
+ begin
24
+ statement = @connection.create_statement
25
+ rs = statement.execute_query(Constants::NODE_SCHEMAS)
26
+ schemas << rs.getString('SCHEMA') while rs.next()
27
+ return schemas
28
+ rescue
29
+ puts 'error executing query'
30
+ ensure
31
+ if rs
32
+ rs.close
33
+ end
34
+ end
35
+ end
36
+
37
+ def clean_node_queries(schema)
38
+ Constants::NODE_QUERIES.each {|query|
39
+ query = clean_query(query, schema, @num_to_clean)
40
+ execute(query)
41
+ }
42
+ end
43
+
44
+ def clean_all_tables
45
+ begin
46
+ statement = @connection.create_statement
47
+ rs = statement.execute_query(Constants::NODE_FIELDS)
48
+ clean_table(rs.getString('tbcreator'), rs.getString('tbname'), rs.getString('name')) while rs.next()
49
+ rescue
50
+ puts 'error collecting node tables'
51
+ ensure
52
+ if rs
53
+ rs.close
54
+ end
55
+ if statement
56
+ statement.close
57
+ end
58
+ end
59
+ end
60
+
61
+ def clean_table(schema, table, column)
62
+ execute("DELETE FROM #{schema}.#{table} where #{column} > #{@num_to_clean}")
63
+ end
64
+
65
+
66
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: deereDB2cleaner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - david hunt
@@ -17,7 +17,10 @@ extensions: []
17
17
  extra_rdoc_files: []
18
18
  files:
19
19
  - lib/constants.rb
20
+ - lib/database.rb
20
21
  - lib/deereDB2cleaner.rb
22
+ - lib/global.rb
23
+ - lib/node.rb
21
24
  homepage: http://rubygems.org/gems/deereDB2cleaner
22
25
  licenses:
23
26
  - MIT