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.
- checksums.yaml +7 -0
- data/lib/constants.rb +32 -0
- data/lib/deereDB2cleaner.rb +76 -0
- 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: []
|