Skip to content

Commit 17cc9b6

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_array and sqlserver_hash now contain these command line switches instead of human-friendly feature names.
1 parent c4b801d commit 17cc9b6

File tree

5 files changed

+35
-91
lines changed

5 files changed

+35
-91
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.has_key?('features')
1515
existing_instance = {:name => "Generic Features",
1616
:ensure => :present,
17-
:features =>
18-
PuppetX::Sqlserver::ServerHelper.translate_features(
19-
result['features']).sort!
17+
:features => result['features'].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.reject { |key| key == 'features' }.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: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -92,11 +92,11 @@ def self.get_wmi_instance_info(version, instance_name)
9292
def self.get_instance_features(reg_root, instance_name)
9393
instance_features = {
9494
# also reg Replication/IsInstalled set to 1
95-
'SQL_Replication_Core_Inst' => 'SQL Server Replication',
95+
'SQL_Replication_Core_Inst' => 'Replication', # SQL Server Replication
9696
# also WMI: SqlService WHERE SQLServiceType = 1 # MSSQLSERVER
97-
'SQL_Engine_Core_Inst' => 'Database Engine Services',
98-
'SQL_FullText_Adv' => 'Full-Text and Semantic Extractions for Search',
99-
'SQL_DQ_Full' => 'Data Quality Services'
97+
'SQL_Engine_Core_Inst' => 'SQLEngine', # Database Engine Services
98+
'SQL_FullText_Adv' => 'FullText', # Full-Text and Semantic Extractions for Search
99+
'SQL_DQ_Full' => 'DQ', # Data Quality Services
100100
}
101101

102102
feat_root = "#{reg_root}\\ConfigurationState"
@@ -106,9 +106,9 @@ def self.get_instance_features(reg_root, instance_name)
106106
# WMI equivalents require trickier name parsing
107107
parent_subkey_features = {
108108
# also WMI: SqlService WHERE SQLServiceType = 5 # MSSQLServerOLAPService
109-
'OLAP' => 'Analysis Services',
109+
'OLAP' => 'AS', # Analysis Services,
110110
# also WMI: SqlService WHERE SQLServiceType = 6 # ReportServer
111-
'RS' => 'Reporting Services - Native'
111+
'RS' => 'RS' # Reporting Services - Native
112112
}
113113

114114
# instance features found in non-parented reg keys
@@ -120,14 +120,14 @@ def self.get_instance_features(reg_root, instance_name)
120120

121121
def self.get_shared_features(version, reg_root)
122122
shared_features = {
123-
'Connectivity_Full' => 'Client Tools Connectivity',
124-
'SDK_Full' => 'Client Tools SDK',
125-
'MDSCoreFeature' => 'Master Data Services',
126-
'Tools_Legacy_Full' => 'Client Tools Backwards Compatibility',
127-
'SQL_SSMS_Full' => 'Management Tools - Complete',
128-
'SQL_SSMS_Adv' => 'Management Tools - Basic', # also SQL_PowerShell_Tools_ANS
123+
'Connectivity_Full' => 'Conn', # Client Tools Connectivity
124+
'SDK_Full' => 'SDK', # Client Tools SDK
125+
'MDSCoreFeature' => 'MDS', # Master Data Services
126+
'Tools_Legacy_Full' => 'BC', # Client Tools Backwards Compatibility
127+
'SQL_SSMS_Full' => 'ADV_SSMS', # Management Tools - Complete
128+
'SQL_SSMS_Adv' => 'SSMS', # Management Tools - Basic
129129
# also WMI: SqlService WHERE SQLServiceType = 4 # MsDtsServer
130-
'SQL_DTS_Full' => 'Integration Services'
130+
'SQL_DTS_Full' => 'IS', # Integration Services
131131
# currently ignoring Reporting Services Shared
132132
}
133133

@@ -150,22 +150,22 @@ def self.get_shared_features(version, reg_root)
150150
# "version" => "12.0.2000.8",
151151
# "reg_root" => "Software\\Microsoft\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER",
152152
# "features" => [
153-
# "SQL Server Replication",
154-
# "Database Engine Services",
155-
# "Full-Text and Semantic Extractions for Search",
156-
# "Data Quality Services",
157-
# "Analysis Services",
158-
# "Reporting Services - Native"
153+
# "Replication",
154+
# "SQLEngine",
155+
# "FullText",
156+
# "DQ",
157+
# "AS",
158+
# "RS"
159159
# ]
160160
# },
161161
# "features" => [
162-
# "Client Tools Connectivity",
163-
# "Client Tools SDK",
164-
# "Master Data Services",
165-
# "Client Tools Backwards Compatibility",
166-
# "Management Tools - Complete",
167-
# "Management Tools - Basic",
168-
# "Integration Services"
162+
# "Conn",
163+
# "SDK",
164+
# "MDS",
165+
# "BC",
166+
# "ADV_SSMS",
167+
# "SSMS",
168+
# "IS"
169169
# ]
170170
# }
171171
# }
@@ -206,13 +206,13 @@ def self.get_instance_names
206206
# "version_friendly" => "SQL_2014",
207207
# "version" => "12.0.2000.8",
208208
# "reg_root" => "Software\\Microsoft\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER2",
209-
# "features" => [
210-
# "SQLServer Replication",
211-
# "Database Engine Services",
212-
# "Full-Text and Semantic Extractions for Search",
213-
# "Data Quality Services",
214-
# "Analysis Services",
215-
# "Reporting Services - Native"
209+
# "features" =>[
210+
# "Replication",
211+
# "SQLEngine",
212+
# "FullText",
213+
# "DQ",
214+
# "AS",
215+
# "RS"
216216
# ]
217217
# }
218218
def self.get_instance_info(version = SQL_2012, 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)