class Sambot::Chef::Roles
Constants
- COOKBOOK_CONFIG
- ROLE_COOKBOOK_ORGANIZATION
Public Class Methods
list_roles()
click to toggle source
# File lib/sambot/chef/roles.rb, line 26 def list_roles SourceControl.list_organization_repositories(ROLE_COOKBOOK_ORGANIZATION) end
pin_cookbook_version(dependency_name, version = nil, role_name = nil)
click to toggle source
# File lib/sambot/chef/roles.rb, line 12 def pin_cookbook_version(dependency_name, version = nil, role_name = nil) raise 'No dependency name provided' unless dependency_name roles = role_name ? [role_name] : list_roles roles.each do |role| update_dependency_version(repository, dependency_name, version) end end
update_config(file, dependency, version)
click to toggle source
# File lib/sambot/chef/roles.rb, line 30 def update_config(file, dependency, version) body = Base64.decode64(file.content) new_contents = body.lines.map do |line| line.match(/^\s*- #{dependency}/) ? update_line(line, dependency, version) : line end.join new_contents == body.lines.join ? nil : new_contents end
update_dependency_version(repository, dependency_name, version)
click to toggle source
# File lib/sambot/chef/roles.rb, line 20 def update_dependency_version(repository, dependency_name, version) file = SourceControl.get_file(ROLE_COOKBOOK_ORGANIZATION, repository, COOKBOOK_CONFIG) config = update_config(file, dependency_name, version) config ? apply_changes(config, repository, file) : false end
Private Class Methods
apply_changes(contents, repository, file)
click to toggle source
# File lib/sambot/chef/roles.rb, line 44 def apply_changes(contents, repository, file) puts 'Not stubbed' raise 'error' msg = "Updated cookbook dependency #{dependency_name} to #{version}" SourceControl.edit_file(ROLE_COOKBOOK_ORGANIZATION, repository, COOKBOOK_CONFIG, contents, file, msg) return true end
update_line(val, dependency, version)
click to toggle source
# File lib/sambot/chef/roles.rb, line 40 def update_line(val, dependency, version) val end