Skip to content

Commit 3508d6b

Browse files
committed
(MODULES-11567): Enhance validation methods to resolve deferred values for validation in sqlserver_instance type
1 parent 4c3e5fb commit 3508d6b

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -69,10 +69,10 @@ jobs:
6969
with:
7070
ref: ${{ github.event.pull_request.head.sha }}
7171

72-
- name: Activate Ruby 2.7
72+
- name: Activate Ruby 3.1
7373
uses: ruby/setup-ruby@v1
7474
with:
75-
ruby-version: "2.7"
75+
ruby-version: "3.1"
7676
bundler-cache: true
7777

7878
- name: Print bundle environment

.github/workflows/nightly.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,10 @@ jobs:
6767
with:
6868
ref: ${{ github.event.pull_request.head.sha }}
6969

70-
- name: Activate Ruby 2.7
70+
- name: Activate Ruby 3.1
7171
uses: ruby/setup-ruby@v1
7272
with:
73-
ruby-version: "2.7"
73+
ruby-version: "3.1"
7474
bundler-cache: true
7575

7676
- name: Print bundle environment

lib/puppet/type/sqlserver_instance.rb

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,8 @@ def validate
131131
end
132132

133133
def set?(key)
134-
!self[key].nil? && !self[key].empty?
134+
self_key = resolve_deferred_value(self[key])
135+
!self_key.nil? && !self_key.empty?
135136
end
136137

137138
def validate_user_password_required(account, pass)
@@ -144,11 +145,11 @@ def validate_user_password_required(account, pass)
144145
end
145146

146147
def domain_or_local_user?(user)
147-
PuppetX::Sqlserver::ServerHelper.is_domain_or_local_user?(user, Facter.value(:hostname))
148+
PuppetX::Sqlserver::ServerHelper.is_domain_or_local_user?(resolve_deferred_value(user), Facter.value(:hostname))
148149
end
149150

150151
def strong_password?(key)
151-
password = self[key]
152+
password = resolve_deferred_value(self[key])
152153
return unless password
153154

154155
message_start = "Password for #{key} is not strong"
@@ -162,4 +163,12 @@ def strong_password?(key)
162163

163164
true
164165
end
166+
167+
# When preprocess_deferred is false, deferred values remain unresolved at the time of validation, causing it to fail.
168+
# To address this, following logic is added to explicitly resolve deferred values during validation
169+
def resolve_deferred_value(value)
170+
return value unless value.is_a?(Puppet::Pops::Evaluator::DeferredValue)
171+
172+
value.resolve
173+
end
165174
end

0 commit comments

Comments
 (0)