module TwistlockControl::Actions::Container
-
Importing container descriptions
Public Class Methods
add(properties)
click to toggle source
# File lib/twistlock_control/actions/container.rb, line 7 def add(properties) container = Entities::Container.new(properties) synchronize_description(container) container end
remove()
click to toggle source
# File lib/twistlock_control/actions/container.rb, line 17 def remove fail 'not implemented' end
synchronize_description(container)
click to toggle source
# File lib/twistlock_control/actions/container.rb, line 21 def synchronize_description(container) container.description = fetch_container_description(container) container.save end
update()
click to toggle source
# File lib/twistlock_control/actions/container.rb, line 13 def update fail 'not implemented' end
Private Class Methods
fetch_container_description(container)
click to toggle source
# File lib/twistlock_control/actions/container.rb, line 28 def fetch_container_description(container) nonce = SecureRandom.hex[0..7] dirname = "/tmp/#{container.name}-#{nonce}" FileUtils.mkdir_p dirname Dir.chdir(dirname) do `git clone -n --depth=1 #{container.url} .` `git checkout HEAD twistlock.yml` result = `cat twistlock.yml && rm -rf #{dirname}` Entities::ContainerDescription.new(YAML.load(result)) end end