Class: ChefDK::Policyfile::LocalCookbook
Overview
LocalCookbook objects represent cookbooks that are sourced from the local filesystem and are assumed to be under active development.
Constant Summary
Constants inherited
from CookbookLock
CookbookLock::REQUIRED_LOCK_DATA_KEYS
Instance Attribute Summary collapse
Attributes inherited from CookbookLock
#dotted_decimal_identifier, #identifier, #name, #source_options, #storage_config, #version
Instance Method Summary
collapse
#chefignore, #cookbook_loader, #cookbook_location_spec, #cookbook_version, #dependencies, #gather_profile_data, #identifiers, #install_locked, #installed?, #symbolize_source_options_keys
#cache_path, #policyfile_expanded_path, #policyfile_filename, #policyfile_lock_expanded_path, #relative_paths_root
Constructor Details
#initialize(name, storage_config) ⇒ LocalCookbook
Returns a new instance of LocalCookbook.
275
276
277
278
279
280
281
282
283
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 275
def initialize(name, storage_config)
@name = name
@identifier = nil
@storage_config = storage_config
@identifier_updated = false
@version_updated = false
@cookbook_in_git_repo = nil
end
|
Instance Attribute Details
#source ⇒ Object
A relative or absolute path to the cookbook. If a relative path is given, it is resolved relative to #relative_paths_root
273
274
275
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 273
def source
@source
end
|
Instance Method Details
#build_from_lock_data(lock_data) ⇒ Object
314
315
316
317
318
319
320
321
322
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 314
def build_from_lock_data(lock_data)
assert_required_keys_valid!(lock_data)
@version = lock_data["version"]
@identifier = lock_data["identifier"]
@dotted_decimal_identifier = lock_data["dotted_decimal_identifier"]
@source = lock_data["source"]
@source_options = symbolize_source_options_keys(lock_data["source_options"])
end
|
#cookbook_path ⇒ Object
285
286
287
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 285
def cookbook_path
File.expand_path(source, relative_paths_root)
end
|
#identifier_updated? ⇒ Boolean
358
359
360
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 358
def identifier_updated?
@identifier_updated
end
|
#refresh! ⇒ Object
337
338
339
340
341
342
343
344
345
346
347
348
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 337
def refresh!
old_identifier, old_version = @identifier, @version
@identifier, @dotted_decimal_identifier, @version = nil, nil, nil
gather_profile_data
if @identifier != old_identifier
@identifier_updated = true
end
if @version != old_version
@version_updated = true
end
self
end
|
#scm_info ⇒ Object
297
298
299
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 297
def scm_info
scm_profiler.profile_data
end
|
#to_lock ⇒ Object
301
302
303
304
305
306
307
308
309
310
311
312
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 301
def to_lock
validate!
{
"version" => version,
"identifier" => identifier,
"dotted_decimal_identifier" => dotted_decimal_identifier,
"source" => source,
"cache_key" => nil,
"scm_info" => scm_info,
"source_options" => source_options
}
end
|
#updated? ⇒ Boolean
350
351
352
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 350
def updated?
@identifier_updated || @version_updated
end
|
#validate! ⇒ Object
324
325
326
327
328
329
330
331
332
333
334
335
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 324
def validate!
if source.nil?
raise LocalCookbookNotFound, "Cookbook `#{name}' does not have a `source` set, cannot locate cookbook"
end
unless File.exist?(cookbook_path)
raise LocalCookbookNotFound, "Cookbook `#{name}' not found at path source `#{source}` (full path: `#{cookbook_path}')"
end
unless cookbook_version.name.to_s == name
msg = "The cookbook at path source `#{source}' is expected to be named `#{name}', but is now named `#{cookbook_version.name}' (full path: #{cookbook_path})"
raise MalformedCookbook, msg
end
end
|
#version_updated? ⇒ Boolean
354
355
356
|
# File 'lib/chef-dk/policyfile/cookbook_locks.rb', line 354
def version_updated?
@version_updated
end
|