Skip to content

Commit 6a1f2f2

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 e076845 commit 6a1f2f2

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
@@ -107,11 +107,11 @@ def self.get_wmi_instance_info(version, instance_name)
107107
def self.get_instance_features(reg_root, instance_name)
108108
instance_features = {
109109
# also reg Replication/IsInstalled set to 1
110-
'SQL_Replication_Core_Inst' => 'SQL Server Replication',
110+
'SQL_Replication_Core_Inst' => 'Replication', # SQL Server Replication
111111
# also WMI: SqlService WHERE SQLServiceType = 1 # MSSQLSERVER
112-
'SQL_Engine_Core_Inst' => 'Database Engine Services',
113-
'SQL_FullText_Adv' => 'Full-Text and Semantic Extractions for Search',
114-
'SQL_DQ_Full' => 'Data Quality Services'
112+
'SQL_Engine_Core_Inst' => 'SQLEngine', # Database Engine Services
113+
'SQL_FullText_Adv' => 'FullText', # Full-Text and Semantic Extractions for Search
114+
'SQL_DQ_Full' => 'DQ', # Data Quality Services
115115
}
116116

117117
feat_root = "#{reg_root}\\ConfigurationState"
@@ -121,9 +121,9 @@ def self.get_instance_features(reg_root, instance_name)
121121
# WMI equivalents require trickier name parsing
122122
parent_subkey_features = {
123123
# also WMI: SqlService WHERE SQLServiceType = 5 # MSSQLServerOLAPService
124-
'OLAP' => 'Analysis Services',
124+
'OLAP' => 'AS', # Analysis Services,
125125
# also WMI: SqlService WHERE SQLServiceType = 6 # ReportServer
126-
'RS' => 'Reporting Services - Native'
126+
'RS' => 'RS' # Reporting Services - Native
127127
}
128128

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

136136
def self.get_shared_features(version)
137137
shared_features = {
138-
'Connectivity_Full' => 'Client Tools Connectivity',
139-
'SDK_Full' => 'Client Tools SDK',
140-
'MDSCoreFeature' => 'Master Data Services',
141-
'Tools_Legacy_Full' => 'Client Tools Backwards Compatibility',
142-
'SQL_SSMS_Full' => 'Management Tools - Complete',
143-
'SQL_SSMS_Adv' => 'Management Tools - Basic', # also SQL_PowerShell_Tools_ANS
138+
'Connectivity_Full' => 'Conn', # Client Tools Connectivity
139+
'SDK_Full' => 'SDK', # Client Tools SDK
140+
'MDSCoreFeature' => 'MDS', # Master Data Services
141+
'Tools_Legacy_Full' => 'BC', # Client Tools Backwards Compatibility
142+
'SQL_SSMS_Full' => 'ADV_SSMS', # Management Tools - Complete
143+
'SQL_SSMS_Adv' => 'SSMS', # Management Tools - Basic
144144
# also WMI: SqlService WHERE SQLServiceType = 4 # MsDtsServer
145-
'SQL_DTS_Full' => 'Integration Services'
145+
'SQL_DTS_Full' => 'IS', # Integration Services
146146
# currently ignoring Reporting Services Shared
147147
}
148148

@@ -165,12 +165,12 @@ def self.get_shared_features(version)
165165
# "version" => "12.0.2000.8",
166166
# "reg_root" => "Software\\Microsoft\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER",
167167
# "features" => [
168-
# "SQL Server Replication",
169-
# "Database Engine Services",
170-
# "Full-Text and Semantic Extractions for Search",
171-
# "Data Quality Services",
172-
# "Analysis Services",
173-
# "Reporting Services - Native"
168+
# "Replication",
169+
# "SQLEngine",
170+
# "FullText",
171+
# "DQ",
172+
# "AS",
173+
# "RS"
174174
# ]
175175
# }
176176
# }
@@ -207,13 +207,13 @@ def self.get_features
207207
# "version_friendly" => "SQL_2014",
208208
# "version" => "12.0.2000.8",
209209
# "reg_root" => "Software\\Microsoft\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER2",
210-
# "features" => [
211-
# "SQLServer Replication",
212-
# "Database Engine Services",
213-
# "Full-Text and Semantic Extractions for Search",
214-
# "Data Quality Services",
215-
# "Analysis Services",
216-
# "Reporting Services - Native"
210+
# "features" =>[
211+
# "Replication",
212+
# "SQLEngine",
213+
# "FullText",
214+
# "DQ",
215+
# "AS",
216+
# "RS"
217217
# ]
218218
# }
219219
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)