Skip to content

Commit 896aa16

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 a27ae75 commit 896aa16

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
@@ -97,11 +97,11 @@ def self.get_wmi_instance_info(version, instance_name)
9797
def self.get_instance_features(reg_root, instance_name)
9898
instance_features = {
9999
# also reg Replication/IsInstalled set to 1
100-
'SQL_Replication_Core_Inst' => 'SQL Server Replication',
100+
'SQL_Replication_Core_Inst' => 'Replication', # SQL Server Replication
101101
# also WMI: SqlService WHERE SQLServiceType = 1 # MSSQLSERVER
102-
'SQL_Engine_Core_Inst' => 'Database Engine Services',
103-
'SQL_FullText_Adv' => 'Full-Text and Semantic Extractions for Search',
104-
'SQL_DQ_Full' => 'Data Quality Services'
102+
'SQL_Engine_Core_Inst' => 'SQLEngine', # Database Engine Services
103+
'SQL_FullText_Adv' => 'FullText', # Full-Text and Semantic Extractions for Search
104+
'SQL_DQ_Full' => 'DQ', # Data Quality Services
105105
}
106106

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

119119
# instance features found in non-parented reg keys
@@ -125,14 +125,14 @@ def self.get_instance_features(reg_root, instance_name)
125125

126126
def self.get_shared_features(version, reg_root)
127127
shared_features = {
128-
'Connectivity_Full' => 'Client Tools Connectivity',
129-
'SDK_Full' => 'Client Tools SDK',
130-
'MDSCoreFeature' => 'Master Data Services',
131-
'Tools_Legacy_Full' => 'Client Tools Backwards Compatibility',
132-
'SQL_SSMS_Full' => 'Management Tools - Complete',
133-
'SQL_SSMS_Adv' => 'Management Tools - Basic', # also SQL_PowerShell_Tools_ANS
128+
'Connectivity_Full' => 'Conn', # Client Tools Connectivity
129+
'SDK_Full' => 'SDK', # Client Tools SDK
130+
'MDSCoreFeature' => 'MDS', # Master Data Services
131+
'Tools_Legacy_Full' => 'BC', # Client Tools Backwards Compatibility
132+
'SQL_SSMS_Full' => 'ADV_SSMS', # Management Tools - Complete
133+
'SQL_SSMS_Adv' => 'SSMS', # Management Tools - Basic
134134
# also WMI: SqlService WHERE SQLServiceType = 4 # MsDtsServer
135-
'SQL_DTS_Full' => 'Integration Services'
135+
'SQL_DTS_Full' => 'IS', # Integration Services
136136
# currently ignoring Reporting Services Shared
137137
}
138138

@@ -155,22 +155,22 @@ def self.get_shared_features(version, reg_root)
155155
# "version" => "12.0.2000.8",
156156
# "reg_root" => "Software\\Microsoft\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER",
157157
# "features" => [
158-
# "SQL Server Replication",
159-
# "Database Engine Services",
160-
# "Full-Text and Semantic Extractions for Search",
161-
# "Data Quality Services",
162-
# "Analysis Services",
163-
# "Reporting Services - Native"
158+
# "Replication",
159+
# "SQLEngine",
160+
# "FullText",
161+
# "DQ",
162+
# "AS",
163+
# "RS"
164164
# ]
165165
# },
166166
# "features" => [
167-
# "Client Tools Connectivity",
168-
# "Client Tools SDK",
169-
# "Master Data Services",
170-
# "Client Tools Backwards Compatibility",
171-
# "Management Tools - Complete",
172-
# "Management Tools - Basic",
173-
# "Integration Services"
167+
# "Conn",
168+
# "SDK",
169+
# "MDS",
170+
# "BC",
171+
# "ADV_SSMS",
172+
# "SSMS",
173+
# "IS"
174174
# ]
175175
# }
176176
# }
@@ -211,13 +211,13 @@ def self.get_instance_names
211211
# "version_friendly" => "SQL_2014",
212212
# "version" => "12.0.2000.8",
213213
# "reg_root" => "Software\\Microsoft\\Microsoft SQL Server\\MSSQL12.MSSQLSERVER2",
214-
# "features" => [
215-
# "SQLServer Replication",
216-
# "Database Engine Services",
217-
# "Full-Text and Semantic Extractions for Search",
218-
# "Data Quality Services",
219-
# "Analysis Services",
220-
# "Reporting Services - Native"
214+
# "features" =>[
215+
# "Replication",
216+
# "SQLEngine",
217+
# "FullText",
218+
# "DQ",
219+
# "AS",
220+
# "RS"
221221
# ]
222222
# }
223223
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)