Skip to content

Commit ea78e5e

Browse files
committed
(FM-2303) Remove feature name translation
- Now that Ruby code is used to build the description of a current installation, it's no longer necessary to perform string translation from SQL feature names such as 'SQL Server Replication' to their command line switch counterparts. This should remove any concerns around localization since command line switches are universal. - Remove code that's no longer needed as a result. - Fact values for sqlserver_instances and sqlserver_features now contain these command line switches instead of human-friendly feature names.
1 parent 8784328 commit ea78e5e

File tree

5 files changed

+28
-84
lines changed

5 files changed

+28
-84
lines changed

lib/puppet/provider/sqlserver_features/mssql.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,9 +14,7 @@ def self.instances
1414
if !result.empty?
1515
existing_instance = {:name => "Generic Features",
1616
:ensure => :present,
17-
:features =>
18-
PuppetX::Sqlserver::ServerHelper.translate_features(
19-
result).sort!
17+
:features => result.sort
2018
}
2119
debug "Parsed features = #{existing_instance[:features]}"
2220

lib/puppet/provider/sqlserver_instance/mssql.rb

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,7 @@ def self.instances
1515
result.keys.each do |instance_name|
1616
existing_instance = {:name => instance_name,
1717
:ensure => :present,
18-
:features =>
19-
PuppetX::Sqlserver::ServerHelper.translate_features(
20-
result[instance_name]['features']).sort!
18+
:features => result[instance_name]['features'].sort
2119
}
2220
instance = new(existing_instance)
2321
instances << instance

lib/puppet_x/sqlserver/features.rb

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -113,11 +113,11 @@ def self.get_wmi_instance_info(version, instance_name)
113113
def self.get_instance_features(reg_root, instance_name)
114114
instance_features = {
115115
# also reg Replication/IsInstalled set to 1
116-
'SQL_Replication_Core_Inst' => 'SQL Server Replication',
116+
'SQL_Replication_Core_Inst' => 'Replication', # SQL Server Replication
117117
# also WMI: SqlService WHERE SQLServiceType = 1 # MSSQLSERVER
118-
'SQL_Engine_Core_Inst' => 'Database Engine Services',
119-
'SQL_FullText_Adv' => 'Full-Text and Semantic Extractions for Search',
120-
'SQL_DQ_Full' => 'Data Quality Services'
118+
'SQL_Engine_Core_Inst' => 'SQLEngine', # Database Engine Services
119+
'SQL_FullText_Adv' => 'FullText', # Full-Text and Semantic Extractions for Search
120+
'SQL_DQ_Full' => 'DQ', # Data Quality Services
121121
}
122122

123123
feat_root = "#{reg_root}\\ConfigurationState"
@@ -127,9 +127,9 @@ def self.get_instance_features(reg_root, instance_name)
127127
# WMI equivalents require trickier name parsing
128128
parent_subkey_features = {
129129
# also WMI: SqlService WHERE SQLServiceType = 5 # MSSQLServerOLAPService
130-
'OLAP' => 'Analysis Services',
130+
'OLAP' => 'AS', # Analysis Services,
131131
# also WMI: SqlService WHERE SQLServiceType = 6 # ReportServer
132-
'RS' => 'Reporting Services - Native'
132+
'RS' => 'RS' # Reporting Services - Native
133133
}
134134

135135
# instance features found in non-parented reg keys
@@ -141,14 +141,14 @@ def self.get_instance_features(reg_root, instance_name)
141141

142142
def self.get_shared_features(version)
143143
shared_features = {
144-
'Connectivity_Full' => 'Client Tools Connectivity',
145-
'SDK_Full' => 'Client Tools SDK',
146-
'MDSCoreFeature' => 'Master Data Services',
147-
'Tools_Legacy_Full' => 'Client Tools Backwards Compatibility',
148-
'SQL_SSMS_Full' => 'Management Tools - Complete',
149-
'SQL_SSMS_Adv' => 'Management Tools - Basic', # also SQL_PowerShell_Tools_ANS
144+
'Connectivity_Full' => 'Conn', # Client Tools Connectivity
145+
'SDK_Full' => 'SDK', # Client Tools SDK
146+
'MDSCoreFeature' => 'MDS', # Master Data Services
147+
'Tools_Legacy_Full' => 'BC', # Client Tools Backwards Compatibility
148+
'SQL_SSMS_Full' => 'ADV_SSMS', # Management Tools - Complete
149+
'SQL_SSMS_Adv' => 'SSMS', # Management Tools - Basic
150150
# also WMI: SqlService WHERE SQLServiceType = 4 # MsDtsServer
151-
'SQL_DTS_Full' => 'Integration Services'
151+
'SQL_DTS_Full' => 'IS', # Integration Services
152152
# currently ignoring Reporting Services Shared
153153
}
154154

@@ -171,12 +171,12 @@ def self.get_shared_features(version)
171171
# "version" => "12.0.2000.8",
172172
# "reg_root" => "Software\\Microsoft\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER",
173173
# "features" => [
174-
# "SQL Server Replication",
175-
# "Database Engine Services",
176-
# "Full-Text and Semantic Extractions for Search",
177-
# "Data Quality Services",
178-
# "Analysis Services",
179-
# "Reporting Services - Native"
174+
# "Replication",
175+
# "SQLEngine",
176+
# "FullText",
177+
# "DQ",
178+
# "AS",
179+
# "RS"
180180
# ]
181181
# }
182182
# }
@@ -213,13 +213,13 @@ def self.get_features
213213
# "version_friendly" => "SQL_2014",
214214
# "version" => "12.0.2000.8",
215215
# "reg_root" => "Software\\Microsoft\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER2",
216-
# "features" => [
217-
# "SQLServer Replication",
218-
# "Database Engine Services",
219-
# "Full-Text and Semantic Extractions for Search",
220-
# "Data Quality Services",
221-
# "Analysis Services",
222-
# "Reporting Services - Native"
216+
# "features" =>[
217+
# "Replication",
218+
# "SQLEngine",
219+
# "FullText",
220+
# "DQ",
221+
# "AS",
222+
# "RS"
223223
# ]
224224
# }
225225
def self.get_instance_info(version = SQL_2014, instance_name)

lib/puppet_x/sqlserver/server_helper.rb

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,11 @@
11
module PuppetX
22
module Sqlserver
33
class ServerHelper
4-
@features_hash = {
5-
:AS => 'Analysis Services',
6-
:RS => 'Reporting Services - Native',
7-
:SQLEngine => 'Database Engine Services',
8-
:Replication => 'SQL Server Replication',
9-
:FullText => 'Full-Text and Semantic Extractions for Search',
10-
:DQ => 'Data Quality Services',
11-
:BC => 'Client Tools Backwards Compatibility',
12-
:SSMS => 'Management Tools - Basic',
13-
:ADV_SSMS => 'Management Tools - Complete',
14-
:Conn => 'Client Tools Connectivity',
15-
:SDK => 'Client Tools SDK',
16-
:IS => 'Integration Services',
17-
:MDS => 'Master Data Services',
18-
}
194
@super_feature_hash = {
205
:SQL => [:DQ, :FullText, :Replication, :SQLEngine],
216
:Tools => [:SSMS, :ADV_SSMS, :Conn]
227
}
238

24-
25-
def self.translate_features(features)
26-
translated = []
27-
Array.new(features).each do |feature|
28-
if @features_hash.has_value?(feature)
29-
translated << @features_hash.key(feature).to_s
30-
end
31-
end
32-
translated
33-
end
34-
359
def self.get_sub_features(super_feature)
3610
@super_feature_hash[super_feature.to_sym]
3711
end

spec/unit/puppet_x/server_helper_spec.rb

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -12,32 +12,6 @@
1212
end
1313
end
1414

15-
shared_examples 'translate_features' do
16-
it {
17-
expect(PuppetX::Sqlserver::ServerHelper.translate_features(features)).to eq(translated)
18-
}
19-
end
20-
21-
describe 'features parser' do
22-
{:AS => 'Analysis Services',
23-
:RS => 'Reporting Services - Native',
24-
:SQLEngine => 'Database Engine Services',
25-
:Replication => 'SQL Server Replication',
26-
:FullText => 'Full-Text and Semantic Extractions for Search',
27-
:DQ => 'Data Quality Services',
28-
:BC => 'Client Tools Backwards Compatibility',
29-
:SSMS => 'Management Tools - Basic',
30-
:ADV_SSMS => 'Management Tools - Complete',
31-
:Conn => 'Client Tools Connectivity',
32-
:SDK => 'Client Tools SDK',
33-
:IS => 'Integration Services',
34-
:MDS => 'Master Data Services'}.each do |k, v|
35-
it_behaves_like 'translate_features' do
36-
let(:features) { [v] }
37-
let(:translated) { [k.to_s] }
38-
end
39-
end
40-
end
4115
describe 'when calling with a local user' do
4216
['mysillyuser', 'mybox\localuser'].each do |user|
4317
it_should_behave_like 'when calling with', user, false

0 commit comments

Comments
 (0)