From 01157f1385f17b5ed1f4d8bf282fe5de04a51570 Mon Sep 17 00:00:00 2001 From: Rupak Ganguly Date: Fri, 13 Jul 2012 18:12:07 -0400 Subject: [PATCH] Add a head method for the directories collection. --- lib/fog/hp/models/storage/directories.rb | 27 ++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/lib/fog/hp/models/storage/directories.rb b/lib/fog/hp/models/storage/directories.rb index 224ed041a..f3f70235c 100644 --- a/lib/fog/hp/models/storage/directories.rb +++ b/lib/fog/hp/models/storage/directories.rb @@ -14,6 +14,33 @@ module Fog load(data) end + def head(key, options = {}) + read_header = nil + write_header = nil + data = connection.head_container(key) + directory = new(:key => key) + for key, value in data.headers + if ['X-Container-Bytes-Used', 'X-Container-Object-Count'].include?(key) + directory.merge_attributes(key => value) + end + if key == 'X-Container-Read' + read_header = value + elsif key == 'X-Container-Write' + write_header = value + end + end + # set the acl on the directory based on the headers + if !(read_header.nil? && write_header.nil?) + directory.acl = connection.header_to_acl(read_header, write_header) + end + # set the cdn state for the directory + directory.cdn_enabled? + + directory + rescue Fog::Storage::HP::NotFound + nil + end + def get(key, options = {}) read_header = nil write_header = nil