Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(MODULES-4257) Modify instance and features for SQL Server 2016 #215

Merged
merged 5 commits into from Jun 8, 2017
Merged

(MODULES-4257) Modify instance and features for SQL Server 2016 #215

merged 5 commits into from Jun 8, 2017

Conversation

glennsarti
Copy link
Contributor

Previously the sqlserver_instance and sqlserver_feature acceptance tests were
failing. This was mainly due to SQL Server 2016 not having a feature for the
SQL Management Studio (ADV_SSMS and SSMS). However it was later found that the
super features called Tools and SQL were not providing an adequate abstraction
e.g. they were not rolled up in the Facter facts. This commit adds support for
SQL Server 2016 by the following:

  • Deprecating the use of 'Tools' in the sqlserver_features and 'SQL' in the
    sqlserver_instance custom types. These super features will continue to
    function however use of them will generate a deprecation warning
  • The acceptance tests for the super features was removed
  • Most tests which referred to ADV_SSMS and SSMS were removed. Where not
    possible, they were guarded to not be tested on SQL Server 2016.
  • An installation media version detection method was added as Dot Net 3.5 is
    not required for SQL Server 2016 installation. This is only applicable for
    SQL Server 2012 and 2014.
  • Refactored the instances method for sqlserver_features to support multiple
    server editions on a server but until MODULES-5060 is resolved, only the first
    set is returned.

Previously the custom facts for the module only supported SQL Server 2012 and
2014.  This commit updates the facts to support usage on SQL Server 2016, and
adds additional feature detection for features that have been added in Server
2016, or missed out on Server 2014.
This commit deletes code which has been commented out for some time and serves
no purpose.
Previously the sqlserver_instance and sqlserver_feature acceptance tests were
failing.  This was mainly due to SQL Server 2016 not having a feature for the
SQL Management Studio (ADV_SSMS and SSMS).  However it was later found that the
super features called Tools and SQL were not providing an adequate abstraction
e.g. they were not rolled up in the Facter facts.  This commit adds support for
SQL Server 2016 by the following:
- Deprecating the use of 'Tools' in the sqlserver_features and 'SQL' in the
  sqlserver_instance custom types.  These super features will continue to
  function however use of them will generate a deprecation warning
- The acceptance tests for the super features was removed
- Most tests which referred to ADV_SSMS and SSMS were removed.  Where not
  possible, they were guarded to not be tested on SQL Server 2016.
- An installation media version detection method was added as Dot Net 3.5 is
  not required for SQL Server 2016 installation.  This is only applicable for
  SQL Server 2012 and 2014.
- Refactored the instances method for sqlserver_features to support multiple
  server editions on a server but until MODULES-5060 is resolved, only the first
  set is returned.
This commit removes the double underscore type error in the file names for the
puppet provider tests.
@glennsarti
Copy link
Contributor Author

Builds on #212

@glennsarti
Copy link
Contributor Author

Adhoc successfully passed for SQL Server 2012, 2014 and 2016

instance_version = PuppetX::Sqlserver::ServerHelper.sql_version_from_install_source(@resource[:source])
Puppet.debug("Installation source detected as version #{instance_version}") unless instance_version.nil?

installNet35(@resource[:windows_feature_source]) unless instance_version == SQL_2016
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will trigger when instance_version is nil

instance_version = PuppetX::Sqlserver::ServerHelper.sql_version_from_install_source(@resource[:source])
Puppet.debug("Installation source detected as version #{instance_version}") unless instance_version.nil?

installNet35(@resource[:windows_feature_source]) unless instance_version == SQL_2016
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will trigger when instance_version is nil

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This would mirror the current default action of always installing dotNet3.5. I cannot see any harm in installing dot net if the installation media version cannot be detected.

This commit updates the README with new features available for SQL Server 2016,
and adds notes about the deprecation of the super features.
@hunner hunner merged commit 4e2b79f into puppetlabs:master Jun 8, 2017
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants