climate-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From jo...@apache.org
Subject [03/51] [abbrv] [partial] Adding Jinwon's custom RCMET
Date Fri, 09 May 2014 02:03:12 GMT
http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/providers/.svn/text-base/pip.rb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/providers/.svn/text-base/pip.rb.svn-base b/src/main/vm/src/cookbooks/python/providers/.svn/text-base/pip.rb.svn-base
new file mode 100755
index 0000000..1c58e5e
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/providers/.svn/text-base/pip.rb.svn-base
@@ -0,0 +1,167 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Provider:: pip
+#
+# Copyright:: 2011, Opscode, Inc <legal@opscode.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require 'chef/mixin/shell_out'
+require 'chef/mixin/language'
+include Chef::Mixin::ShellOut
+
+# the logic in all action methods mirror that of
+# the Chef::Provider::Package which will make
+# refactoring into core chef easy
+
+action :install do
+  # If we specified a version, and it's not the current version, move to the specified version
+  if @new_resource.version != nil && @new_resource.version != @current_resource.version
+    install_version = @new_resource.version
+  # If it's not installed at all, install it
+  elsif @current_resource.version == nil
+    install_version = candidate_version
+  end
+
+  # Set the timeout (units in seconds)
+  timeout = 900
+  if @new_resource.timeout
+    timeout = @new_resource.timeout
+  end
+
+  if install_version
+    Chef::Log.info("Installing #{@new_resource} version #{install_version}")
+    status = install_package(@new_resource.package_name, install_version, timeout)
+    if status
+      @new_resource.updated_by_last_action(true)
+    end
+  end
+end
+
+action :upgrade do
+  # Set the timeout (units in seconds)
+  timeout = 900
+  if @new_resource.timeout
+    timeout = @new_resource.timeout
+  end
+
+  if @current_resource.version != candidate_version
+    orig_version = @current_resource.version || "uninstalled"
+    Chef::Log.info("Upgrading #{@new_resource} version from #{orig_version} to #{candidate_version}")
+    status = upgrade_package(@new_resource.package_name, candidate_version, timeout)
+    if status
+      @new_resource.updated_by_last_action(true)
+    end
+  end
+end
+
+action :remove do
+  # Set the timeout (units in seconds)
+  timeout = 900
+  if @new_resource.timeout
+    timeout = @new_resource.timeout
+  end
+
+  if removing_package?
+    Chef::Log.info("Removing #{@new_resource}")
+    remove_package(@current_resource.package_name, @new_resource.version, timeout)
+    @new_resource.updated_by_last_action(true)
+  else
+  end
+end
+
+def removing_package?
+  if @current_resource.version.nil?
+    false # nothing to remove
+  elsif @new_resource.version.nil?
+    true # remove any version of a package
+  elsif @new_resource.version == @current_resource.version
+    true # remove the version we have
+  else
+    false # we don't have the version we want to remove
+  end
+end
+
+def expand_options(options)
+  options ? " #{options}" : ""
+end
+
+# these methods are the required overrides of
+# a provider that extends from Chef::Provider::Package
+# so refactoring into core Chef should be easy
+
+def load_current_resource
+  @current_resource = Chef::Resource::PythonPip.new(@new_resource.name)
+  @current_resource.package_name(@new_resource.package_name)
+  @current_resource.version(nil)
+
+  unless current_installed_version.nil?
+    @current_resource.version(current_installed_version)
+  end
+
+  @current_resource
+end
+
+def current_installed_version
+  @current_installed_version ||= begin
+    delimeter = /==/
+
+    version_check_cmd = "#{pip_cmd(@new_resource)} freeze | grep -i '^#{@new_resource.package_name}=='"
+    # incase you upgrade pip with pip!
+    if @new_resource.package_name.eql?('pip')
+      delimeter = /\s/
+      version_check_cmd = "pip --version"
+    end
+    p = shell_out!(version_check_cmd)
+    p.stdout.split(delimeter)[1].strip
+  rescue Chef::Exceptions::ShellCommandFailed
+  rescue Mixlib::ShellOut::ShellCommandFailed
+  end
+end
+
+def candidate_version
+  @candidate_version ||= begin
+    # `pip search` doesn't return versions yet
+    # `pip list` may be coming soon:
+    # https://bitbucket.org/ianb/pip/issue/197/option-to-show-what-version-would-be
+    @new_resource.version||'latest'
+  end
+end
+
+def install_package(name, version, timeout)
+  v = "==#{version}" unless version.eql?('latest')
+  shell_out!("#{pip_cmd(@new_resource)} install#{expand_options(@new_resource.options)} #{name}#{v}", :timeout => timeout)
+end
+
+def upgrade_package(name, version, timeout)
+  v = "==#{version}" unless version.eql?('latest')
+  shell_out!("#{pip_cmd(@new_resource)} install --upgrade#{expand_options(@new_resource.options)} #{@new_resource.name}#{v}", :timeout => timeout)
+end
+
+def remove_package(name, version, timeout)
+  shell_out!("#{pip_cmd(@new_resource)} uninstall -y#{expand_options(@new_resource.options)} #{@new_resource.name}", :timeout => timeout)
+end
+
+# TODO remove when provider is moved into Chef core
+# this allows PythonPip to work with Chef::Resource::Package
+def pip_cmd(nr)
+  if (nr.respond_to?("virtualenv") && nr.virtualenv)
+    ::File.join(nr.virtualenv,'/bin/pip')
+  elsif "#{node['python']['install_method']}".eql?("source")
+    ::File.join("#{node['python']['prefix_dir']}","/bin/pip")
+  else
+    'pip'
+  end
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/providers/.svn/text-base/virtualenv.rb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/providers/.svn/text-base/virtualenv.rb.svn-base b/src/main/vm/src/cookbooks/python/providers/.svn/text-base/virtualenv.rb.svn-base
new file mode 100755
index 0000000..d10f099
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/providers/.svn/text-base/virtualenv.rb.svn-base
@@ -0,0 +1,68 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Provider:: virtualenv
+#
+# Copyright:: 2011, Opscode, Inc <legal@opscode.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require 'chef/mixin/shell_out'
+require 'chef/mixin/language'
+include Chef::Mixin::ShellOut
+
+action :create do
+  unless exists?
+    Chef::Log.info("Creating virtualenv #{@new_resource} at #{@new_resource.path}")
+    execute "#{virtualenv_cmd} --python=#{@new_resource.interpreter} #{@new_resource.options} #{@new_resource.path}" do
+      user new_resource.owner if new_resource.owner
+      group new_resource.group if new_resource.group
+    end
+    new_resource.updated_by_last_action(true)
+  end
+end
+
+action :delete do
+  if exists?
+    Chef::Log.info("Deleting virtualenv #{@new_resource} at #{@new_resource.path}")
+    FileUtils.rm_rf(@new_resource.path)
+    new_resource.updated_by_last_action(true)
+  end
+end
+
+def load_current_resource
+  @current_resource = Chef::Resource::PythonVirtualenv.new(@new_resource.name)
+  @current_resource.path(@new_resource.path)
+
+  if exists?
+    cstats = ::File.stat(@current_resource.path)
+    @current_resource.owner(cstats.uid)
+    @current_resource.group(cstats.gid)
+  end
+  @current_resource
+end
+
+def virtualenv_cmd()
+  if "#{node['python']['install_method']}".eql?("source")
+    ::File.join("#{node['python']['prefix_dir']}","/bin/virtualenv")
+  else
+    "virtualenv"
+  end
+end
+
+private
+def exists?
+  ::File.exist?(@current_resource.path) && ::File.directory?(@current_resource.path) \
+    && ::File.exists?("#{@current_resource.path}/bin/activate")
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/providers/pip.rb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/providers/pip.rb b/src/main/vm/src/cookbooks/python/providers/pip.rb
new file mode 100755
index 0000000..1c58e5e
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/providers/pip.rb
@@ -0,0 +1,167 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Provider:: pip
+#
+# Copyright:: 2011, Opscode, Inc <legal@opscode.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require 'chef/mixin/shell_out'
+require 'chef/mixin/language'
+include Chef::Mixin::ShellOut
+
+# the logic in all action methods mirror that of
+# the Chef::Provider::Package which will make
+# refactoring into core chef easy
+
+action :install do
+  # If we specified a version, and it's not the current version, move to the specified version
+  if @new_resource.version != nil && @new_resource.version != @current_resource.version
+    install_version = @new_resource.version
+  # If it's not installed at all, install it
+  elsif @current_resource.version == nil
+    install_version = candidate_version
+  end
+
+  # Set the timeout (units in seconds)
+  timeout = 900
+  if @new_resource.timeout
+    timeout = @new_resource.timeout
+  end
+
+  if install_version
+    Chef::Log.info("Installing #{@new_resource} version #{install_version}")
+    status = install_package(@new_resource.package_name, install_version, timeout)
+    if status
+      @new_resource.updated_by_last_action(true)
+    end
+  end
+end
+
+action :upgrade do
+  # Set the timeout (units in seconds)
+  timeout = 900
+  if @new_resource.timeout
+    timeout = @new_resource.timeout
+  end
+
+  if @current_resource.version != candidate_version
+    orig_version = @current_resource.version || "uninstalled"
+    Chef::Log.info("Upgrading #{@new_resource} version from #{orig_version} to #{candidate_version}")
+    status = upgrade_package(@new_resource.package_name, candidate_version, timeout)
+    if status
+      @new_resource.updated_by_last_action(true)
+    end
+  end
+end
+
+action :remove do
+  # Set the timeout (units in seconds)
+  timeout = 900
+  if @new_resource.timeout
+    timeout = @new_resource.timeout
+  end
+
+  if removing_package?
+    Chef::Log.info("Removing #{@new_resource}")
+    remove_package(@current_resource.package_name, @new_resource.version, timeout)
+    @new_resource.updated_by_last_action(true)
+  else
+  end
+end
+
+def removing_package?
+  if @current_resource.version.nil?
+    false # nothing to remove
+  elsif @new_resource.version.nil?
+    true # remove any version of a package
+  elsif @new_resource.version == @current_resource.version
+    true # remove the version we have
+  else
+    false # we don't have the version we want to remove
+  end
+end
+
+def expand_options(options)
+  options ? " #{options}" : ""
+end
+
+# these methods are the required overrides of
+# a provider that extends from Chef::Provider::Package
+# so refactoring into core Chef should be easy
+
+def load_current_resource
+  @current_resource = Chef::Resource::PythonPip.new(@new_resource.name)
+  @current_resource.package_name(@new_resource.package_name)
+  @current_resource.version(nil)
+
+  unless current_installed_version.nil?
+    @current_resource.version(current_installed_version)
+  end
+
+  @current_resource
+end
+
+def current_installed_version
+  @current_installed_version ||= begin
+    delimeter = /==/
+
+    version_check_cmd = "#{pip_cmd(@new_resource)} freeze | grep -i '^#{@new_resource.package_name}=='"
+    # incase you upgrade pip with pip!
+    if @new_resource.package_name.eql?('pip')
+      delimeter = /\s/
+      version_check_cmd = "pip --version"
+    end
+    p = shell_out!(version_check_cmd)
+    p.stdout.split(delimeter)[1].strip
+  rescue Chef::Exceptions::ShellCommandFailed
+  rescue Mixlib::ShellOut::ShellCommandFailed
+  end
+end
+
+def candidate_version
+  @candidate_version ||= begin
+    # `pip search` doesn't return versions yet
+    # `pip list` may be coming soon:
+    # https://bitbucket.org/ianb/pip/issue/197/option-to-show-what-version-would-be
+    @new_resource.version||'latest'
+  end
+end
+
+def install_package(name, version, timeout)
+  v = "==#{version}" unless version.eql?('latest')
+  shell_out!("#{pip_cmd(@new_resource)} install#{expand_options(@new_resource.options)} #{name}#{v}", :timeout => timeout)
+end
+
+def upgrade_package(name, version, timeout)
+  v = "==#{version}" unless version.eql?('latest')
+  shell_out!("#{pip_cmd(@new_resource)} install --upgrade#{expand_options(@new_resource.options)} #{@new_resource.name}#{v}", :timeout => timeout)
+end
+
+def remove_package(name, version, timeout)
+  shell_out!("#{pip_cmd(@new_resource)} uninstall -y#{expand_options(@new_resource.options)} #{@new_resource.name}", :timeout => timeout)
+end
+
+# TODO remove when provider is moved into Chef core
+# this allows PythonPip to work with Chef::Resource::Package
+def pip_cmd(nr)
+  if (nr.respond_to?("virtualenv") && nr.virtualenv)
+    ::File.join(nr.virtualenv,'/bin/pip')
+  elsif "#{node['python']['install_method']}".eql?("source")
+    ::File.join("#{node['python']['prefix_dir']}","/bin/pip")
+  else
+    'pip'
+  end
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/providers/virtualenv.rb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/providers/virtualenv.rb b/src/main/vm/src/cookbooks/python/providers/virtualenv.rb
new file mode 100755
index 0000000..d10f099
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/providers/virtualenv.rb
@@ -0,0 +1,68 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Provider:: virtualenv
+#
+# Copyright:: 2011, Opscode, Inc <legal@opscode.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require 'chef/mixin/shell_out'
+require 'chef/mixin/language'
+include Chef::Mixin::ShellOut
+
+action :create do
+  unless exists?
+    Chef::Log.info("Creating virtualenv #{@new_resource} at #{@new_resource.path}")
+    execute "#{virtualenv_cmd} --python=#{@new_resource.interpreter} #{@new_resource.options} #{@new_resource.path}" do
+      user new_resource.owner if new_resource.owner
+      group new_resource.group if new_resource.group
+    end
+    new_resource.updated_by_last_action(true)
+  end
+end
+
+action :delete do
+  if exists?
+    Chef::Log.info("Deleting virtualenv #{@new_resource} at #{@new_resource.path}")
+    FileUtils.rm_rf(@new_resource.path)
+    new_resource.updated_by_last_action(true)
+  end
+end
+
+def load_current_resource
+  @current_resource = Chef::Resource::PythonVirtualenv.new(@new_resource.name)
+  @current_resource.path(@new_resource.path)
+
+  if exists?
+    cstats = ::File.stat(@current_resource.path)
+    @current_resource.owner(cstats.uid)
+    @current_resource.group(cstats.gid)
+  end
+  @current_resource
+end
+
+def virtualenv_cmd()
+  if "#{node['python']['install_method']}".eql?("source")
+    ::File.join("#{node['python']['prefix_dir']}","/bin/virtualenv")
+  else
+    "virtualenv"
+  end
+end
+
+private
+def exists?
+  ::File.exist?(@current_resource.path) && ::File.directory?(@current_resource.path) \
+    && ::File.exists?("#{@current_resource.path}/bin/activate")
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/.svn/all-wcprops
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/.svn/all-wcprops b/src/main/vm/src/cookbooks/python/recipes/.svn/all-wcprops
new file mode 100755
index 0000000..6713bd9
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/.svn/all-wcprops
@@ -0,0 +1,35 @@
+K 25
+svn:wc:ra_dav:version-url
+V 98
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/recipes
+END
+virtualenv.rb
+K 25
+svn:wc:ra_dav:version-url
+V 112
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/recipes/virtualenv.rb
+END
+source.rb
+K 25
+svn:wc:ra_dav:version-url
+V 108
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/recipes/source.rb
+END
+default.rb
+K 25
+svn:wc:ra_dav:version-url
+V 109
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/recipes/default.rb
+END
+pip.rb
+K 25
+svn:wc:ra_dav:version-url
+V 105
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/recipes/pip.rb
+END
+package.rb
+K 25
+svn:wc:ra_dav:version-url
+V 109
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/recipes/package.rb
+END

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/.svn/entries
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/.svn/entries b/src/main/vm/src/cookbooks/python/recipes/.svn/entries
new file mode 100755
index 0000000..f5cd331
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/.svn/entries
@@ -0,0 +1,198 @@
+10
+
+dir
+1485921
+https://svn.apache.org/repos/asf/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/recipes
+https://svn.apache.org/repos/asf
+
+
+
+2012-11-20T00:41:18.502817Z
+1474517
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13f79535-47bb-0310-9956-ffa450edef68
+
+virtualenv.rb
+file
+
+
+
+
+2013-05-24T10:13:51.000000Z
+eee5c176494ba192feb11292423176b3
+2012-11-20T00:41:18.502817Z
+1474517
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+760
+
+source.rb
+file
+
+
+
+
+2013-05-24T10:13:51.000000Z
+67e2e63f0b923603fe1b153ca27beaf6
+2012-11-20T00:41:18.502817Z
+1474517
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1846
+
+default.rb
+file
+
+
+
+
+2013-05-24T10:13:51.000000Z
+0c4ff14b44567012d42140a5ff93bd38
+2012-11-20T00:41:18.502817Z
+1474517
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+803
+
+pip.rb
+file
+
+
+
+
+2013-05-24T10:13:51.000000Z
+233b268931d78f52071b418873074861
+2012-11-20T00:41:18.502817Z
+1474517
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1504
+
+package.rb
+file
+
+
+
+
+2013-05-24T10:13:51.000000Z
+04edbbca99a7ace2a715521224d286c8
+2012-11-20T00:41:18.502817Z
+1474517
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2176
+

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/default.rb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/default.rb.svn-base b/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/default.rb.svn-base
new file mode 100755
index 0000000..47e2a20
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/default.rb.svn-base
@@ -0,0 +1,23 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Recipe:: default
+#
+# Copyright 2011, Opscode, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+include_recipe "python::#{node['python']['install_method']}"
+include_recipe "python::pip"
+include_recipe "python::virtualenv"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/package.rb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/package.rb.svn-base b/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/package.rb.svn-base
new file mode 100755
index 0000000..95dcce0
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/package.rb.svn-base
@@ -0,0 +1,58 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Recipe:: package
+#
+# Copyright 2011, Opscode, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# COOK-1016 Handle RHEL/CentOS namings of python packages, by installing EPEL repo & package
+# This implementation was determined a stopgap measure until CHEF-2410 is implemented and widespread.
+if node['platform'] == 'centos' || node['platform'] == 'redhat'
+  major_version = node['platform_version'].split('.').first.to_i
+  if major_version == 5
+    include_recipe 'yum::epel'
+  else
+    # Do nothing.
+  end
+end
+
+python_pkgs = if node['platform'] == 'centos' || node['platform'] == 'redhat'
+                major_version = node['platform_version'].split('.').first.to_i
+                if major_version == 6
+                  ["python", "python-devel"]
+                else
+                  ["python26", "python26-devel"]
+                end
+              else
+                value_for_platform(
+                                   ["debian","ubuntu"] => {
+                                     "default" => ["python","python-dev"]
+                                   },
+                                   ["fedora","amazon"] => {
+                                     "default" => ["python","python-devel"]
+                                   },
+                                   ["freebsd"] => {
+                                     "default" => ["python"]
+                                   },
+                                   "default" => ["python","python-dev"]
+                                   )
+              end
+
+python_pkgs.each do |pkg|
+  package pkg do
+    action :install
+  end
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/pip.rb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/pip.rb.svn-base b/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/pip.rb.svn-base
new file mode 100755
index 0000000..ecb97c2
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/pip.rb.svn-base
@@ -0,0 +1,41 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Recipe:: pip
+#
+# Copyright 2011, Opscode, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+python_bindir = "#{node['python']['prefix_dir']}/bin"
+pip_bindir    = "#{node['python']['pip']['prefix_dir']}/bin"
+
+# Ubuntu's python-setuptools, python-pip and python-virtualenv packages
+# are broken...this feels like Rubygems!
+# http://stackoverflow.com/questions/4324558/whats-the-proper-way-to-install-pip-virtualenv-and-distribute-for-python
+# https://bitbucket.org/ianb/pip/issue/104/pip-uninstall-on-ubuntu-linux
+remote_file "#{Chef::Config[:file_cache_path]}/distribute_setup.py" do
+  source "http://python-distribute.org/distribute_setup.py"
+  mode "0644"
+  not_if { ::File.exists?("#{pip_bindir}/pip") }
+end
+
+bash "install-pip" do
+  cwd Chef::Config[:file_cache_path]
+  code <<-EOF
+  #{python_bindir}/python distribute_setup.py
+  #{pip_bindir}/easy_install pip
+  EOF
+  not_if { ::File.exists?("#{pip_bindir}/pip") }
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/source.rb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/source.rb.svn-base b/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/source.rb.svn-base
new file mode 100755
index 0000000..b4e3dd6
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/source.rb.svn-base
@@ -0,0 +1,52 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Recipe:: source
+#
+# Copyright 2011, Opscode, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+configure_options = node['python']['configure_options'].join(" ")
+
+packages = value_for_platform(
+    ["centos","redhat","fedora"] => 
+        {"default" => ["openssl-devel","bzip2-devel","zlib-devel","expat-devel","db4-devel","sqlite-devel","ncurses-devel","readline-devel"]},
+    "default" => 
+        ["libssl-dev","libbz2-dev","zlib1g-dev","libexpat1-dev","libdb4.8-dev","libsqlite3-dev","libncursesw5-dev","libncurses5-dev","libreadline-dev"]
+  )
+
+packages.each do |dev_pkg|
+  package dev_pkg
+end
+
+version = node['python']['version']
+install_path = "#{node['python']['prefix_dir']}/lib/python#{version.split(/(^\d+\.\d+)/)[1]}"
+
+remote_file "#{Chef::Config[:file_cache_path]}/Python-#{version}.tar.bz2" do
+  source "#{node['python']['url']}/#{version}/Python-#{version}.tar.bz2"
+  checksum node['python']['checksum']
+  mode "0644"
+  not_if { ::File.exists?(install_path) }
+end
+
+bash "build-and-install-python" do
+  cwd Chef::Config[:file_cache_path]
+  code <<-EOF
+  tar -jxvf Python-#{version}.tar.bz2
+  (cd Python-#{version} && ./configure #{configure_options})
+  (cd Python-#{version} && make && make install)
+  EOF
+  not_if { ::File.exists?(install_path) }
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/virtualenv.rb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/virtualenv.rb.svn-base b/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/virtualenv.rb.svn-base
new file mode 100755
index 0000000..4c28f80
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/.svn/text-base/virtualenv.rb.svn-base
@@ -0,0 +1,25 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Recipe:: virtualenv
+#
+# Copyright 2011, Opscode, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+include_recipe "python::pip"
+
+python_pip "virtualenv" do
+  action :install
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/default.rb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/default.rb b/src/main/vm/src/cookbooks/python/recipes/default.rb
new file mode 100755
index 0000000..47e2a20
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/default.rb
@@ -0,0 +1,23 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Recipe:: default
+#
+# Copyright 2011, Opscode, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+include_recipe "python::#{node['python']['install_method']}"
+include_recipe "python::pip"
+include_recipe "python::virtualenv"
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/package.rb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/package.rb b/src/main/vm/src/cookbooks/python/recipes/package.rb
new file mode 100755
index 0000000..95dcce0
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/package.rb
@@ -0,0 +1,58 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Recipe:: package
+#
+# Copyright 2011, Opscode, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# COOK-1016 Handle RHEL/CentOS namings of python packages, by installing EPEL repo & package
+# This implementation was determined a stopgap measure until CHEF-2410 is implemented and widespread.
+if node['platform'] == 'centos' || node['platform'] == 'redhat'
+  major_version = node['platform_version'].split('.').first.to_i
+  if major_version == 5
+    include_recipe 'yum::epel'
+  else
+    # Do nothing.
+  end
+end
+
+python_pkgs = if node['platform'] == 'centos' || node['platform'] == 'redhat'
+                major_version = node['platform_version'].split('.').first.to_i
+                if major_version == 6
+                  ["python", "python-devel"]
+                else
+                  ["python26", "python26-devel"]
+                end
+              else
+                value_for_platform(
+                                   ["debian","ubuntu"] => {
+                                     "default" => ["python","python-dev"]
+                                   },
+                                   ["fedora","amazon"] => {
+                                     "default" => ["python","python-devel"]
+                                   },
+                                   ["freebsd"] => {
+                                     "default" => ["python"]
+                                   },
+                                   "default" => ["python","python-dev"]
+                                   )
+              end
+
+python_pkgs.each do |pkg|
+  package pkg do
+    action :install
+  end
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/pip.rb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/pip.rb b/src/main/vm/src/cookbooks/python/recipes/pip.rb
new file mode 100755
index 0000000..ecb97c2
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/pip.rb
@@ -0,0 +1,41 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Recipe:: pip
+#
+# Copyright 2011, Opscode, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+python_bindir = "#{node['python']['prefix_dir']}/bin"
+pip_bindir    = "#{node['python']['pip']['prefix_dir']}/bin"
+
+# Ubuntu's python-setuptools, python-pip and python-virtualenv packages
+# are broken...this feels like Rubygems!
+# http://stackoverflow.com/questions/4324558/whats-the-proper-way-to-install-pip-virtualenv-and-distribute-for-python
+# https://bitbucket.org/ianb/pip/issue/104/pip-uninstall-on-ubuntu-linux
+remote_file "#{Chef::Config[:file_cache_path]}/distribute_setup.py" do
+  source "http://python-distribute.org/distribute_setup.py"
+  mode "0644"
+  not_if { ::File.exists?("#{pip_bindir}/pip") }
+end
+
+bash "install-pip" do
+  cwd Chef::Config[:file_cache_path]
+  code <<-EOF
+  #{python_bindir}/python distribute_setup.py
+  #{pip_bindir}/easy_install pip
+  EOF
+  not_if { ::File.exists?("#{pip_bindir}/pip") }
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/source.rb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/source.rb b/src/main/vm/src/cookbooks/python/recipes/source.rb
new file mode 100755
index 0000000..b4e3dd6
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/source.rb
@@ -0,0 +1,52 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Recipe:: source
+#
+# Copyright 2011, Opscode, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+configure_options = node['python']['configure_options'].join(" ")
+
+packages = value_for_platform(
+    ["centos","redhat","fedora"] => 
+        {"default" => ["openssl-devel","bzip2-devel","zlib-devel","expat-devel","db4-devel","sqlite-devel","ncurses-devel","readline-devel"]},
+    "default" => 
+        ["libssl-dev","libbz2-dev","zlib1g-dev","libexpat1-dev","libdb4.8-dev","libsqlite3-dev","libncursesw5-dev","libncurses5-dev","libreadline-dev"]
+  )
+
+packages.each do |dev_pkg|
+  package dev_pkg
+end
+
+version = node['python']['version']
+install_path = "#{node['python']['prefix_dir']}/lib/python#{version.split(/(^\d+\.\d+)/)[1]}"
+
+remote_file "#{Chef::Config[:file_cache_path]}/Python-#{version}.tar.bz2" do
+  source "#{node['python']['url']}/#{version}/Python-#{version}.tar.bz2"
+  checksum node['python']['checksum']
+  mode "0644"
+  not_if { ::File.exists?(install_path) }
+end
+
+bash "build-and-install-python" do
+  cwd Chef::Config[:file_cache_path]
+  code <<-EOF
+  tar -jxvf Python-#{version}.tar.bz2
+  (cd Python-#{version} && ./configure #{configure_options})
+  (cd Python-#{version} && make && make install)
+  EOF
+  not_if { ::File.exists?(install_path) }
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/recipes/virtualenv.rb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/recipes/virtualenv.rb b/src/main/vm/src/cookbooks/python/recipes/virtualenv.rb
new file mode 100755
index 0000000..4c28f80
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/recipes/virtualenv.rb
@@ -0,0 +1,25 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Recipe:: virtualenv
+#
+# Copyright 2011, Opscode, Inc.
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+include_recipe "python::pip"
+
+python_pip "virtualenv" do
+  action :install
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/resources/.svn/all-wcprops
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/resources/.svn/all-wcprops b/src/main/vm/src/cookbooks/python/resources/.svn/all-wcprops
new file mode 100755
index 0000000..af97be4
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/resources/.svn/all-wcprops
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 100
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/resources
+END
+virtualenv.rb
+K 25
+svn:wc:ra_dav:version-url
+V 114
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/resources/virtualenv.rb
+END
+pip.rb
+K 25
+svn:wc:ra_dav:version-url
+V 107
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/resources/pip.rb
+END

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/resources/.svn/entries
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/resources/.svn/entries b/src/main/vm/src/cookbooks/python/resources/.svn/entries
new file mode 100755
index 0000000..aba5cfa
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/resources/.svn/entries
@@ -0,0 +1,96 @@
+10
+
+dir
+1485921
+https://svn.apache.org/repos/asf/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/python/resources
+https://svn.apache.org/repos/asf
+
+
+
+2012-11-20T00:41:18.502817Z
+1474517
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13f79535-47bb-0310-9956-ffa450edef68
+
+virtualenv.rb
+file
+
+
+
+
+2013-05-24T10:13:51.000000Z
+7b3a77f1725755dd12263fa9c6ff8092
+2012-11-20T00:41:18.502817Z
+1474517
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+996
+
+pip.rb
+file
+
+
+
+
+2013-05-24T10:13:51.000000Z
+fa753c07988d3faea2dfa3c87e0b7661
+2012-11-20T00:41:18.502817Z
+1474517
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+964
+

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/resources/.svn/text-base/pip.rb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/resources/.svn/text-base/pip.rb.svn-base b/src/main/vm/src/cookbooks/python/resources/.svn/text-base/pip.rb.svn-base
new file mode 100755
index 0000000..6b1780c
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/resources/.svn/text-base/pip.rb.svn-base
@@ -0,0 +1,27 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Resource:: pip
+#
+# Copyright:: 2011, Opscode, Inc <legal@opscode.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+actions :install, :upgrade, :remove, :purge
+
+attribute :package_name, :kind_of => String, :name_attribute => true
+attribute :version, :default => nil
+attribute :timeout, :default => nil
+attribute :virtualenv, :kind_of => String
+attribute :options, :kind_of => String

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/resources/.svn/text-base/virtualenv.rb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/resources/.svn/text-base/virtualenv.rb.svn-base b/src/main/vm/src/cookbooks/python/resources/.svn/text-base/virtualenv.rb.svn-base
new file mode 100755
index 0000000..6f14820
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/resources/.svn/text-base/virtualenv.rb.svn-base
@@ -0,0 +1,27 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Resource:: virtualenv
+#
+# Copyright:: 2011, Opscode, Inc <legal@opscode.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+actions :create, :delete
+
+attribute :path, :kind_of => String, :name_attribute => true
+attribute :interpreter, :default => 'python'
+attribute :owner, :regex => Chef::Config[:user_valid_regex]
+attribute :group, :regex => Chef::Config[:group_valid_regex]
+attribute :options, :kind_of => String

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/resources/pip.rb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/resources/pip.rb b/src/main/vm/src/cookbooks/python/resources/pip.rb
new file mode 100755
index 0000000..6b1780c
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/resources/pip.rb
@@ -0,0 +1,27 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Resource:: pip
+#
+# Copyright:: 2011, Opscode, Inc <legal@opscode.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+actions :install, :upgrade, :remove, :purge
+
+attribute :package_name, :kind_of => String, :name_attribute => true
+attribute :version, :default => nil
+attribute :timeout, :default => nil
+attribute :virtualenv, :kind_of => String
+attribute :options, :kind_of => String

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/python/resources/virtualenv.rb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/python/resources/virtualenv.rb b/src/main/vm/src/cookbooks/python/resources/virtualenv.rb
new file mode 100755
index 0000000..6f14820
--- /dev/null
+++ b/src/main/vm/src/cookbooks/python/resources/virtualenv.rb
@@ -0,0 +1,27 @@
+#
+# Author:: Seth Chisamore <schisamo@opscode.com>
+# Cookbook Name:: python
+# Resource:: virtualenv
+#
+# Copyright:: 2011, Opscode, Inc <legal@opscode.com>
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+actions :create, :delete
+
+attribute :path, :kind_of => String, :name_attribute => true
+attribute :interpreter, :default => 'python'
+attribute :owner, :regex => Chef::Config[:user_valid_regex]
+attribute :group, :regex => Chef::Config[:group_valid_regex]
+attribute :options, :kind_of => String

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/.svn/all-wcprops
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/.svn/all-wcprops b/src/main/vm/src/cookbooks/vagrant_main/.svn/all-wcprops
new file mode 100755
index 0000000..dc8d918
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/.svn/all-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 96
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main
+END

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/.svn/entries
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/.svn/entries b/src/main/vm/src/cookbooks/vagrant_main/.svn/entries
new file mode 100755
index 0000000..bd87d9e
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/.svn/entries
@@ -0,0 +1,34 @@
+10
+
+dir
+1485921
+https://svn.apache.org/repos/asf/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main
+https://svn.apache.org/repos/asf
+
+
+
+2012-12-07T19:15:28.460275Z
+1474605
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13f79535-47bb-0310-9956-ffa450edef68
+
+recipes
+dir
+
+templates
+dir
+

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/all-wcprops
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/all-wcprops b/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/all-wcprops
new file mode 100755
index 0000000..80cb539
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/all-wcprops
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 104
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main/recipes
+END
+default.rb
+K 25
+svn:wc:ra_dav:version-url
+V 115
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main/recipes/default.rb
+END

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/entries
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/entries b/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/entries
new file mode 100755
index 0000000..abbc399
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/entries
@@ -0,0 +1,62 @@
+10
+
+dir
+1485921
+https://svn.apache.org/repos/asf/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main/recipes
+https://svn.apache.org/repos/asf
+
+
+
+2012-12-07T19:15:28.460275Z
+1474605
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13f79535-47bb-0310-9956-ffa450edef68
+
+default.rb
+file
+
+
+
+
+2013-05-24T10:13:55.000000Z
+f9e170538631d8b1b7a7684951890d9b
+2012-12-07T19:15:28.460275Z
+1474605
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1485
+

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/text-base/default.rb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/text-base/default.rb.svn-base b/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/text-base/default.rb.svn-base
new file mode 100755
index 0000000..7eed825
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/recipes/.svn/text-base/default.rb.svn-base
@@ -0,0 +1,56 @@
+# APT Package Management --------------------------------------------
+# Install the APT package management tool, and then install any
+# packages that we will need to have to complete the buildout.
+#
+include_recipe "apt"
+include_recipe "build-essential"
+gem_package "ruby-shadow" do
+  action :install
+end
+
+# User Creation -----------------------------------------------------
+# Create a user account for the 'rcmet' user
+#
+user "rcmet" do
+  comment "RCMET user"
+  uid 1001
+  #gid "users"
+  home "/usr/local/rcmet"
+  shell "/bin/bash"
+  #password "1bob1bob"
+end
+
+directory "/usr/local/rcmet" do
+  mode "0777"
+end
+
+
+# Python Environment Setup ------------------------------------------
+# Install Python and package management tools 'pip' and 'virtualenv'.
+# Then create a virtual environment in  the 'rcmet' user's home 
+# directory, into which all RCMET python code and dependencies can be 
+# installed.
+#
+include_recipe "python"
+
+python_virtualenv "/usr/local/rcmet/python-env" do
+  owner "rcmet"
+  group "rcmet"
+  action :create
+end
+
+# Apache Web Server Configuration -----------------------------------
+# Install the Apache2 HTTPD Web Server, and configure a virtual host
+# for the RCMET web application.
+#
+include_recipe "apache2"
+
+execute "disable-default-site" do
+  command "sudo a2dissite default"
+  notifies :reload, resources(:service => "apache2"), :delayed
+end
+
+web_app "rcmet" do
+  template "rcmet.conf.erb"
+  notifies :reload, resources(:service => "apache2"), :delayed
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/recipes/default.rb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/recipes/default.rb b/src/main/vm/src/cookbooks/vagrant_main/recipes/default.rb
new file mode 100755
index 0000000..7eed825
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/recipes/default.rb
@@ -0,0 +1,56 @@
+# APT Package Management --------------------------------------------
+# Install the APT package management tool, and then install any
+# packages that we will need to have to complete the buildout.
+#
+include_recipe "apt"
+include_recipe "build-essential"
+gem_package "ruby-shadow" do
+  action :install
+end
+
+# User Creation -----------------------------------------------------
+# Create a user account for the 'rcmet' user
+#
+user "rcmet" do
+  comment "RCMET user"
+  uid 1001
+  #gid "users"
+  home "/usr/local/rcmet"
+  shell "/bin/bash"
+  #password "1bob1bob"
+end
+
+directory "/usr/local/rcmet" do
+  mode "0777"
+end
+
+
+# Python Environment Setup ------------------------------------------
+# Install Python and package management tools 'pip' and 'virtualenv'.
+# Then create a virtual environment in  the 'rcmet' user's home 
+# directory, into which all RCMET python code and dependencies can be 
+# installed.
+#
+include_recipe "python"
+
+python_virtualenv "/usr/local/rcmet/python-env" do
+  owner "rcmet"
+  group "rcmet"
+  action :create
+end
+
+# Apache Web Server Configuration -----------------------------------
+# Install the Apache2 HTTPD Web Server, and configure a virtual host
+# for the RCMET web application.
+#
+include_recipe "apache2"
+
+execute "disable-default-site" do
+  command "sudo a2dissite default"
+  notifies :reload, resources(:service => "apache2"), :delayed
+end
+
+web_app "rcmet" do
+  template "rcmet.conf.erb"
+  notifies :reload, resources(:service => "apache2"), :delayed
+end

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/templates/.svn/all-wcprops
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/templates/.svn/all-wcprops b/src/main/vm/src/cookbooks/vagrant_main/templates/.svn/all-wcprops
new file mode 100755
index 0000000..3bcba23
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/templates/.svn/all-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 106
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main/templates
+END

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/templates/.svn/entries
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/templates/.svn/entries b/src/main/vm/src/cookbooks/vagrant_main/templates/.svn/entries
new file mode 100755
index 0000000..f2f38e2
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/templates/.svn/entries
@@ -0,0 +1,31 @@
+10
+
+dir
+1485921
+https://svn.apache.org/repos/asf/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main/templates
+https://svn.apache.org/repos/asf
+
+
+
+2012-10-10T00:54:31.813219Z
+1474265
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13f79535-47bb-0310-9956-ffa450edef68
+
+default
+dir
+

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/all-wcprops
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/all-wcprops b/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/all-wcprops
new file mode 100755
index 0000000..5031d4e
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/all-wcprops
@@ -0,0 +1,17 @@
+K 25
+svn:wc:ra_dav:version-url
+V 114
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main/templates/default
+END
+project.conf.erb
+K 25
+svn:wc:ra_dav:version-url
+V 131
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main/templates/default/project.conf.erb
+END
+rcmet.conf.erb
+K 25
+svn:wc:ra_dav:version-url
+V 129
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main/templates/default/rcmet.conf.erb
+END

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/entries
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/entries b/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/entries
new file mode 100755
index 0000000..14b1805
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/entries
@@ -0,0 +1,96 @@
+10
+
+dir
+1485921
+https://svn.apache.org/repos/asf/incubator/climate/trunk/rcmet/src/main/vm/src/cookbooks/vagrant_main/templates/default
+https://svn.apache.org/repos/asf
+
+
+
+2012-10-10T00:54:31.813219Z
+1474265
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13f79535-47bb-0310-9956-ffa450edef68
+
+project.conf.erb
+file
+
+
+
+
+2013-05-24T10:13:55.000000Z
+2eddd2fd3bfde3e4d3af630302aeb179
+2012-10-10T00:49:17.045897Z
+1474264
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+85
+
+rcmet.conf.erb
+file
+
+
+
+
+2013-05-24T10:13:55.000000Z
+77767ced087eac1a32b3b4f35d4163b6
+2012-10-10T00:54:31.813219Z
+1474265
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+93
+

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/text-base/project.conf.erb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/text-base/project.conf.erb.svn-base b/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/text-base/project.conf.erb.svn-base
new file mode 100755
index 0000000..16176b4
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/text-base/project.conf.erb.svn-base
@@ -0,0 +1,3 @@
+<VirtualHost *:80>
+    DocumentRoot <%= @node[:vagrant][:directory] %>
+</VirtualHost>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/text-base/rcmet.conf.erb.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/text-base/rcmet.conf.erb.svn-base b/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/text-base/rcmet.conf.erb.svn-base
new file mode 100755
index 0000000..9283347
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/templates/default/.svn/text-base/rcmet.conf.erb.svn-base
@@ -0,0 +1,3 @@
+<VirtualHost *:80>
+    DocumentRoot <%= @node[:vagrant][:directory] %>/env/www
+</VirtualHost>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/templates/default/project.conf.erb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/templates/default/project.conf.erb b/src/main/vm/src/cookbooks/vagrant_main/templates/default/project.conf.erb
new file mode 100755
index 0000000..16176b4
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/templates/default/project.conf.erb
@@ -0,0 +1,3 @@
+<VirtualHost *:80>
+    DocumentRoot <%= @node[:vagrant][:directory] %>
+</VirtualHost>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/cookbooks/vagrant_main/templates/default/rcmet.conf.erb
----------------------------------------------------------------------
diff --git a/src/main/vm/src/cookbooks/vagrant_main/templates/default/rcmet.conf.erb b/src/main/vm/src/cookbooks/vagrant_main/templates/default/rcmet.conf.erb
new file mode 100755
index 0000000..9283347
--- /dev/null
+++ b/src/main/vm/src/cookbooks/vagrant_main/templates/default/rcmet.conf.erb
@@ -0,0 +1,3 @@
+<VirtualHost *:80>
+    DocumentRoot <%= @node[:vagrant][:directory] %>/env/www
+</VirtualHost>
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/scripts/.svn/all-wcprops
----------------------------------------------------------------------
diff --git a/src/main/vm/src/scripts/.svn/all-wcprops b/src/main/vm/src/scripts/.svn/all-wcprops
new file mode 100755
index 0000000..8697f6f
--- /dev/null
+++ b/src/main/vm/src/scripts/.svn/all-wcprops
@@ -0,0 +1,5 @@
+K 25
+svn:wc:ra_dav:version-url
+V 81
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/scripts
+END

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/scripts/.svn/entries
----------------------------------------------------------------------
diff --git a/src/main/vm/src/scripts/.svn/entries b/src/main/vm/src/scripts/.svn/entries
new file mode 100755
index 0000000..b5d0e37
--- /dev/null
+++ b/src/main/vm/src/scripts/.svn/entries
@@ -0,0 +1,31 @@
+10
+
+dir
+1485921
+https://svn.apache.org/repos/asf/incubator/climate/trunk/rcmet/src/main/vm/src/scripts
+https://svn.apache.org/repos/asf
+
+
+
+2012-12-07T19:44:54.983182Z
+1474607
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13f79535-47bb-0310-9956-ffa450edef68
+
+ncl
+dir
+

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/scripts/ncl/.svn/all-wcprops
----------------------------------------------------------------------
diff --git a/src/main/vm/src/scripts/ncl/.svn/all-wcprops b/src/main/vm/src/scripts/ncl/.svn/all-wcprops
new file mode 100755
index 0000000..ab6be5e
--- /dev/null
+++ b/src/main/vm/src/scripts/ncl/.svn/all-wcprops
@@ -0,0 +1,11 @@
+K 25
+svn:wc:ra_dav:version-url
+V 85
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/scripts/ncl
+END
+wget-download.sh
+K 25
+svn:wc:ra_dav:version-url
+V 102
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/vm/src/scripts/ncl/wget-download.sh
+END

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/scripts/ncl/.svn/entries
----------------------------------------------------------------------
diff --git a/src/main/vm/src/scripts/ncl/.svn/entries b/src/main/vm/src/scripts/ncl/.svn/entries
new file mode 100755
index 0000000..5b634eb
--- /dev/null
+++ b/src/main/vm/src/scripts/ncl/.svn/entries
@@ -0,0 +1,62 @@
+10
+
+dir
+1485921
+https://svn.apache.org/repos/asf/incubator/climate/trunk/rcmet/src/main/vm/src/scripts/ncl
+https://svn.apache.org/repos/asf
+
+
+
+2012-12-07T19:44:54.983182Z
+1474607
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13f79535-47bb-0310-9956-ffa450edef68
+
+wget-download.sh
+file
+
+
+
+
+2013-05-24T10:13:50.000000Z
+6850ecc31327edf0dff68342cb64992d
+2012-12-07T19:44:54.983182Z
+1474607
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+9082
+

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/scripts/ncl/.svn/text-base/wget-download.sh.svn-base
----------------------------------------------------------------------
diff --git a/src/main/vm/src/scripts/ncl/.svn/text-base/wget-download.sh.svn-base b/src/main/vm/src/scripts/ncl/.svn/text-base/wget-download.sh.svn-base
new file mode 100755
index 0000000..5444fab
--- /dev/null
+++ b/src/main/vm/src/scripts/ncl/.svn/text-base/wget-download.sh.svn-base
@@ -0,0 +1,263 @@
+#!/bin/bash
+#
+# ESG Federation download script
+#
+# Template version
+version=0.4.3
+# Generated by Gateway: ESG-NCAR
+#
+# Script generated user OpenID: https://www.earthsystemgrid.org/myopenid/ahart
+#
+
+CACHE_FILE=.md5_results
+
+##############################################################################
+#
+# Your download selection includes data secured using ESG
+# certificate-based security.  In order to access the download URLs
+# you must first obtain a credentials file from your home Gateway's
+# MyProxy server.
+#
+# If you don't already have a myproxy client you can download the
+# MyProxyLogon Java client from
+#   http://www.earthsystemgrid.org//webstart/myProxyLogon/MyProxyLogon-ESG.jar
+#
+# Then execute it as follows:
+#  $ java -jar MyProxyLogon-ESG.jar -h vetswebprod.ucar.edu -p 7512 -u <username>
+#
+# Further information is available at
+#   http://www.earthsystemgrid.org//help/download-help.htm
+#
+##############################################################################
+
+##############################################################################
+#
+# Script defaults
+#
+
+# ESG_HOME should point to the directory containing ESG credentials.
+#   Default is $HOME/.esg.
+ESG_HOME=${ESG_HOME:-$HOME/.esg}
+ESG_CREDENTIALS=${X509_USER_PROXY:-$ESG_HOME/credentials.pem}
+ESG_CERT_DIR=${X509_CERT_DIR:-$ESG_HOME/certificates}
+COOKIE_JAR=$ESG_HOME/cookies
+CERT_EXPIRATION_WARNING=$((60 * 60 * 1))	#One hour (in seconds)
+
+# Configure checking of server SSL certificates.
+#   Disabling server certificate checking can resolve problems with myproxy
+#   servers being out of sync with datanodes.
+CHECK_SERVER_CERT=${CHECK_SERVER_CERT:-Yes}
+
+
+
+usage() {
+    echo "Usage: $(basename $0) [flags]"
+    echo "Flags is one of:"
+    sed -n '/^while getopts/,/^done/  s/^\([^)]*\)[^#]*#\(.*$\)/\1 \2/p' $0
+}
+#defaults
+debug=0
+clean_work=1
+
+#parse flags
+while getopts ':c:pdvqo:' OPT; do
+    case $OPT in
+    	c) ESG_CREDENTIALS="$OPTARG";;	#<cert> : use this certificate for authentication.
+        p) clean_work=0;;       #	: preserve data that failed checksum
+        o) output="$OPTARG";;   #<file>	: Write output for DML in the given file
+        d) debug=1;;            #	: display debug information
+        v) verbose=1;;          #       : be more verbose
+        q) quiet=1;;            #	: be less verbose
+        \?) echo "Unknown option '$OPTARG'" >&2 && usage && exit 1;;
+        \:) echo "Missing parameter for flag '$OPTARG'" >&2 && usage && exit 1;;
+    esac
+done
+shift $(($OPTIND - 1))
+
+if [[ "$output" ]]; then
+    #check and prepare the file
+    if [[ -f "$output" ]]; then
+        read -p "Overwrite existing file $output? (y/N) " answ
+        case $answ in y|Y|yes|Yes);; *) echo "Aborting then..."; exit 0;; esac
+    fi
+    : > "$output" || { echo "Can't write file $output"; break; }
+fi
+
+##############################################################################
+
+# Retrieve ESG credentials (not done yet)
+get_credentials() {
+    cat <<EOF
+Your download selection includes data secured using ESG
+certificate-based security.  In order to access the download URLs
+you must first obtain a credentials file from your home Gateway's
+MyProxy server at vetswebprod.ucar.edu:7512
+
+If you don't already have a myproxy client you can download the
+MyProxyLogon Java client from
+  http://www.earthsystemgrid.org//webstart/myProxyLogon/MyProxyLogon-ESG.jar
+
+Then execute it as follows:
+ $ java -jar MyProxyLogon-ESG.jar -u <username> -h vetswebprod.ucar.edu -p 7512
+Further information is available at
+  http://www.earthsystemgrid.org//help/download-help.htm
+
+EOF
+	exit 1
+}
+
+# check the certificate validity
+check_cert() {
+    #chek openssl and certificate
+    if (which openssl &>/dev/null); then
+        if ! openssl x509 -checkend 0 -noout -in $ESG_CERT; then
+            echo "The Certificate has expired, please renew."
+            return 1
+        else
+            if ! openssl x509 -checkend $CERT_EXPIRATION_WARNING -noout -in $ESG_CERT; then
+                echo "The certificate expires in less than $((CERT_EXPIRATION_WARNING / 60 / 60)) hour(s), please renew."
+                return 2
+            fi
+        fi
+    fi
+}
+
+#
+# Detect ESG credentials
+#
+find_credentials() {
+
+    if [[ -f "$ESG_CREDENTIALS" ]]; then
+    	# file found, proceed.
+    	ESG_CERT="$ESG_CREDENTIALS"
+    	ESG_KEY="$ESG_CREDENTIALS"
+    elif [[ -f "$X509_USER_CERT" && -f "$X509_USER_KEY" ]]; then
+    	# second try, use these certificates.
+        ESG_CERT="$X509_USER_CERT"
+        ESG_KEY="$X509_USER_KEY"
+    else
+	    # If credentials are not present exit
+    	echo "No ESG Credentials found in $ESG_CREDENTIALS" >&2
+    	    get_credentials
+	fi
+
+
+    #chek openssl and certificate
+    if (which openssl &>/dev/null); then
+    	if ( openssl version | grep 'OpenSSL 1\.0' ); then
+        	echo '** WARNING: ESGF Host certificate checking might not be compatible with OpenSSL 1.0+'
+    	fi
+        check_cert || { (($?==1)); exit 1; }
+    fi
+    
+    if [[ $CHECK_SERVER_CERT == "Yes" ]]; then
+    	[[ -d "$ESG_CERT_DIR" ]] || { echo "CA certs not found. Aborting."; exit 1; }
+    	PKI_WGET_OPTS="--ca-directory=$ESG_CERT_DIR"
+    fi
+
+    #some wget version complain if there's no file present
+    [[ -f $COOKIE_JAR ]] || touch $COOKIE_JAR
+
+    PKI_WGET_OPTS="$PKI_WGET_OPTS --certificate=$ESG_CERT --private-key=$ESG_KEY --save-cookies=$COOKIE_JAR --load-cookies=$COOKIE_JAR"
+
+}
+
+check_chksum() {
+    local file="$1"
+    local chk_type=$2
+    local chk_value=$3
+    local local_chksum
+
+    case $chk_type in
+        md5) local_chksum=$(md5sum $file | cut -f1 -d" ");;
+        *) echo "Can't verify checksum." && return 0;;
+    esac
+
+    #verify
+    ((debug)) && echo "local:$local_chksum vs remote:$chk_value"
+    diff -q <(echo $local_chksum) <(echo $chk_value) >/dev/null
+}
+
+download() {
+    wget="wget -c $PKI_WGET_OPTS"
+    ((quiet)) && wget="$wget -q" || { ((!verbose)) && wget="$wget -nv"; }
+    
+    while read line
+    do
+        # read csv here document into proper variables
+        eval $(awk -F "' '" '{$0=substr($0,2,length($0)-2); $3=tolower($3); print "file=\""$1"\";url=\""$2"\";chksum_type=\""$3"\";chksum=\""$4"\""}' <(echo $line) )
+
+        #Process the file
+        echo -n "$file ..."
+
+        #are we just writing a file?
+        if [ "$output" ]; then
+            echo "$file - $url" >> $output
+            echo ""
+            continue
+        fi
+
+        while : ; do
+                #if we have the file, check if it's already processed.
+                [ -f $file ] && cached="$(grep $file $CACHE_FILE)" || unset cached
+
+                #check it wasn't modified
+                if [[ -n "$cached" && "$(stat -c %Y $file)" == $(echo "$cached" | cut -d ' ' -f2) ]]; then
+                    echo "Already downloaded and verified"
+                    break
+                fi
+
+                # (if we had the file size, we could check before trying to complete)
+                echo "Downloading"
+                $wget -O "$file" $url || { failed=1; break; }
+
+                #check if file is there
+                if [[ -f $file ]]; then
+                        ((debug)) && echo file found
+                        if ! check_chksum "$file" $chksum_type $chksum; then
+                                echo "  $chksum_type failed!"
+                                if ((clean_work)); then
+                                        rm $file
+                                        #try again
+                                        echo -n "  re-downloading..."
+                                        continue
+                                else
+                                        echo "  don't use -p or remove manually."
+                                fi
+                        else
+                                echo "  $chksum_type ok. done!"
+                                echo $file $(stat -c %Y $file) $chksum >> $CACHE_FILE
+                        fi
+                fi
+                #done!
+                break
+        done
+        
+        if ((failed)); then
+            echo "download failed"
+            # most common failure is certificate expiration, so check this
+            check_cert
+            unset failed
+        fi
+        
+    done <<EOF--dataset.file.url.chksum_type.chksum
+'ncl_ncarg-6.1.0.Linux_Debian_x86_64_gcc432.tar.gz' 'http://www.earthsystemgrid.org//download/fileTokenDownload.htm?fileAccessPointId=425ef002-12f9-4087-8df0-dfd60304469a&authzToken=3648d4cf-d81c-474d-9779-bd0d6f91b832&gateway=ESG-NCAR' '' ''
+'ncl_ncarg-6.1.0.Linux_Debian_x86_64_gcc445.tar.gz' 'http://www.earthsystemgrid.org//download/fileTokenDownload.htm?fileAccessPointId=afb26ae5-6a93-4801-b0fb-7bad630e922f&authzToken=c866c5c8-ea30-4682-b1ce-1040e2fa377c&gateway=ESG-NCAR' '' ''
+EOF--dataset.file.url.chksum_type.chksum
+
+}
+
+
+#
+# MAIN
+#
+echo "Running $(basename $0) version: $version"
+
+find_credentials
+#do we have old results? Create the file if not
+[ ! -f $CACHE_FILE ] && echo "#filename mtime checksum" > $CACHE_FILE
+
+download
+
+#remove duplicates (if any)
+{ rm $CACHE_FILE && tac | awk '!x[$1]++' | tac > $CACHE_FILE; } < $CACHE_FILE

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/vm/src/scripts/ncl/wget-download.sh
----------------------------------------------------------------------
diff --git a/src/main/vm/src/scripts/ncl/wget-download.sh b/src/main/vm/src/scripts/ncl/wget-download.sh
new file mode 100755
index 0000000..5444fab
--- /dev/null
+++ b/src/main/vm/src/scripts/ncl/wget-download.sh
@@ -0,0 +1,263 @@
+#!/bin/bash
+#
+# ESG Federation download script
+#
+# Template version
+version=0.4.3
+# Generated by Gateway: ESG-NCAR
+#
+# Script generated user OpenID: https://www.earthsystemgrid.org/myopenid/ahart
+#
+
+CACHE_FILE=.md5_results
+
+##############################################################################
+#
+# Your download selection includes data secured using ESG
+# certificate-based security.  In order to access the download URLs
+# you must first obtain a credentials file from your home Gateway's
+# MyProxy server.
+#
+# If you don't already have a myproxy client you can download the
+# MyProxyLogon Java client from
+#   http://www.earthsystemgrid.org//webstart/myProxyLogon/MyProxyLogon-ESG.jar
+#
+# Then execute it as follows:
+#  $ java -jar MyProxyLogon-ESG.jar -h vetswebprod.ucar.edu -p 7512 -u <username>
+#
+# Further information is available at
+#   http://www.earthsystemgrid.org//help/download-help.htm
+#
+##############################################################################
+
+##############################################################################
+#
+# Script defaults
+#
+
+# ESG_HOME should point to the directory containing ESG credentials.
+#   Default is $HOME/.esg.
+ESG_HOME=${ESG_HOME:-$HOME/.esg}
+ESG_CREDENTIALS=${X509_USER_PROXY:-$ESG_HOME/credentials.pem}
+ESG_CERT_DIR=${X509_CERT_DIR:-$ESG_HOME/certificates}
+COOKIE_JAR=$ESG_HOME/cookies
+CERT_EXPIRATION_WARNING=$((60 * 60 * 1))	#One hour (in seconds)
+
+# Configure checking of server SSL certificates.
+#   Disabling server certificate checking can resolve problems with myproxy
+#   servers being out of sync with datanodes.
+CHECK_SERVER_CERT=${CHECK_SERVER_CERT:-Yes}
+
+
+
+usage() {
+    echo "Usage: $(basename $0) [flags]"
+    echo "Flags is one of:"
+    sed -n '/^while getopts/,/^done/  s/^\([^)]*\)[^#]*#\(.*$\)/\1 \2/p' $0
+}
+#defaults
+debug=0
+clean_work=1
+
+#parse flags
+while getopts ':c:pdvqo:' OPT; do
+    case $OPT in
+    	c) ESG_CREDENTIALS="$OPTARG";;	#<cert> : use this certificate for authentication.
+        p) clean_work=0;;       #	: preserve data that failed checksum
+        o) output="$OPTARG";;   #<file>	: Write output for DML in the given file
+        d) debug=1;;            #	: display debug information
+        v) verbose=1;;          #       : be more verbose
+        q) quiet=1;;            #	: be less verbose
+        \?) echo "Unknown option '$OPTARG'" >&2 && usage && exit 1;;
+        \:) echo "Missing parameter for flag '$OPTARG'" >&2 && usage && exit 1;;
+    esac
+done
+shift $(($OPTIND - 1))
+
+if [[ "$output" ]]; then
+    #check and prepare the file
+    if [[ -f "$output" ]]; then
+        read -p "Overwrite existing file $output? (y/N) " answ
+        case $answ in y|Y|yes|Yes);; *) echo "Aborting then..."; exit 0;; esac
+    fi
+    : > "$output" || { echo "Can't write file $output"; break; }
+fi
+
+##############################################################################
+
+# Retrieve ESG credentials (not done yet)
+get_credentials() {
+    cat <<EOF
+Your download selection includes data secured using ESG
+certificate-based security.  In order to access the download URLs
+you must first obtain a credentials file from your home Gateway's
+MyProxy server at vetswebprod.ucar.edu:7512
+
+If you don't already have a myproxy client you can download the
+MyProxyLogon Java client from
+  http://www.earthsystemgrid.org//webstart/myProxyLogon/MyProxyLogon-ESG.jar
+
+Then execute it as follows:
+ $ java -jar MyProxyLogon-ESG.jar -u <username> -h vetswebprod.ucar.edu -p 7512
+Further information is available at
+  http://www.earthsystemgrid.org//help/download-help.htm
+
+EOF
+	exit 1
+}
+
+# check the certificate validity
+check_cert() {
+    #chek openssl and certificate
+    if (which openssl &>/dev/null); then
+        if ! openssl x509 -checkend 0 -noout -in $ESG_CERT; then
+            echo "The Certificate has expired, please renew."
+            return 1
+        else
+            if ! openssl x509 -checkend $CERT_EXPIRATION_WARNING -noout -in $ESG_CERT; then
+                echo "The certificate expires in less than $((CERT_EXPIRATION_WARNING / 60 / 60)) hour(s), please renew."
+                return 2
+            fi
+        fi
+    fi
+}
+
+#
+# Detect ESG credentials
+#
+find_credentials() {
+
+    if [[ -f "$ESG_CREDENTIALS" ]]; then
+    	# file found, proceed.
+    	ESG_CERT="$ESG_CREDENTIALS"
+    	ESG_KEY="$ESG_CREDENTIALS"
+    elif [[ -f "$X509_USER_CERT" && -f "$X509_USER_KEY" ]]; then
+    	# second try, use these certificates.
+        ESG_CERT="$X509_USER_CERT"
+        ESG_KEY="$X509_USER_KEY"
+    else
+	    # If credentials are not present exit
+    	echo "No ESG Credentials found in $ESG_CREDENTIALS" >&2
+    	    get_credentials
+	fi
+
+
+    #chek openssl and certificate
+    if (which openssl &>/dev/null); then
+    	if ( openssl version | grep 'OpenSSL 1\.0' ); then
+        	echo '** WARNING: ESGF Host certificate checking might not be compatible with OpenSSL 1.0+'
+    	fi
+        check_cert || { (($?==1)); exit 1; }
+    fi
+    
+    if [[ $CHECK_SERVER_CERT == "Yes" ]]; then
+    	[[ -d "$ESG_CERT_DIR" ]] || { echo "CA certs not found. Aborting."; exit 1; }
+    	PKI_WGET_OPTS="--ca-directory=$ESG_CERT_DIR"
+    fi
+
+    #some wget version complain if there's no file present
+    [[ -f $COOKIE_JAR ]] || touch $COOKIE_JAR
+
+    PKI_WGET_OPTS="$PKI_WGET_OPTS --certificate=$ESG_CERT --private-key=$ESG_KEY --save-cookies=$COOKIE_JAR --load-cookies=$COOKIE_JAR"
+
+}
+
+check_chksum() {
+    local file="$1"
+    local chk_type=$2
+    local chk_value=$3
+    local local_chksum
+
+    case $chk_type in
+        md5) local_chksum=$(md5sum $file | cut -f1 -d" ");;
+        *) echo "Can't verify checksum." && return 0;;
+    esac
+
+    #verify
+    ((debug)) && echo "local:$local_chksum vs remote:$chk_value"
+    diff -q <(echo $local_chksum) <(echo $chk_value) >/dev/null
+}
+
+download() {
+    wget="wget -c $PKI_WGET_OPTS"
+    ((quiet)) && wget="$wget -q" || { ((!verbose)) && wget="$wget -nv"; }
+    
+    while read line
+    do
+        # read csv here document into proper variables
+        eval $(awk -F "' '" '{$0=substr($0,2,length($0)-2); $3=tolower($3); print "file=\""$1"\";url=\""$2"\";chksum_type=\""$3"\";chksum=\""$4"\""}' <(echo $line) )
+
+        #Process the file
+        echo -n "$file ..."
+
+        #are we just writing a file?
+        if [ "$output" ]; then
+            echo "$file - $url" >> $output
+            echo ""
+            continue
+        fi
+
+        while : ; do
+                #if we have the file, check if it's already processed.
+                [ -f $file ] && cached="$(grep $file $CACHE_FILE)" || unset cached
+
+                #check it wasn't modified
+                if [[ -n "$cached" && "$(stat -c %Y $file)" == $(echo "$cached" | cut -d ' ' -f2) ]]; then
+                    echo "Already downloaded and verified"
+                    break
+                fi
+
+                # (if we had the file size, we could check before trying to complete)
+                echo "Downloading"
+                $wget -O "$file" $url || { failed=1; break; }
+
+                #check if file is there
+                if [[ -f $file ]]; then
+                        ((debug)) && echo file found
+                        if ! check_chksum "$file" $chksum_type $chksum; then
+                                echo "  $chksum_type failed!"
+                                if ((clean_work)); then
+                                        rm $file
+                                        #try again
+                                        echo -n "  re-downloading..."
+                                        continue
+                                else
+                                        echo "  don't use -p or remove manually."
+                                fi
+                        else
+                                echo "  $chksum_type ok. done!"
+                                echo $file $(stat -c %Y $file) $chksum >> $CACHE_FILE
+                        fi
+                fi
+                #done!
+                break
+        done
+        
+        if ((failed)); then
+            echo "download failed"
+            # most common failure is certificate expiration, so check this
+            check_cert
+            unset failed
+        fi
+        
+    done <<EOF--dataset.file.url.chksum_type.chksum
+'ncl_ncarg-6.1.0.Linux_Debian_x86_64_gcc432.tar.gz' 'http://www.earthsystemgrid.org//download/fileTokenDownload.htm?fileAccessPointId=425ef002-12f9-4087-8df0-dfd60304469a&authzToken=3648d4cf-d81c-474d-9779-bd0d6f91b832&gateway=ESG-NCAR' '' ''
+'ncl_ncarg-6.1.0.Linux_Debian_x86_64_gcc445.tar.gz' 'http://www.earthsystemgrid.org//download/fileTokenDownload.htm?fileAccessPointId=afb26ae5-6a93-4801-b0fb-7bad630e922f&authzToken=c866c5c8-ea30-4682-b1ce-1040e2fa377c&gateway=ESG-NCAR' '' ''
+EOF--dataset.file.url.chksum_type.chksum
+
+}
+
+
+#
+# MAIN
+#
+echo "Running $(basename $0) version: $version"
+
+find_credentials
+#do we have old results? Create the file if not
+[ ! -f $CACHE_FILE ] && echo "#filename mtime checksum" > $CACHE_FILE
+
+download
+
+#remove duplicates (if any)
+{ rm $CACHE_FILE && tac | awk '!x[$1]++' | tac > $CACHE_FILE; } < $CACHE_FILE

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/webapp/.htaccess
----------------------------------------------------------------------
diff --git a/src/main/webapp/.htaccess b/src/main/webapp/.htaccess
new file mode 100755
index 0000000..e3a557a
--- /dev/null
+++ b/src/main/webapp/.htaccess
@@ -0,0 +1,45 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+# Rewrite rules for OODT Balance web applications. 
+#
+# Enable the rewrite engine
+RewriteEngine On
+
+# Make sure that the value for RewriteBase exactly matches the 
+# value for site_root in config.ini. This value should point to the 
+# location (relative to the server's document root) of the 
+# Balance webapp directory (the directory containing config.ini). For
+# example, if the application lives at the server's document root, then
+# RewriteBase should be set to '/'. If, on the other hand, the application
+# has been installed into a subdirectory 'foo' underneath the server's 
+# document root, RewriteBase (and site_root in config.ini) should be set
+# to '/foo/'
+RewriteBase /
+
+# This section forwards all requests to the Balance application's front
+# controller. Unless you are modifying the low-level behavior of the 
+# Balance application framework, there should be no need to make any
+# modifications below this line. -----------------------------------------
+#
+# Send all other non-static requests to the main controller
+RewriteCond %{REQUEST_URI} !/static/(.*)$
+RewriteCond %{REQUEST_URI} !/scripts/(.*)$
+RewriteCond %{REQUEST_URI} !/global/(.*)$
+RewriteCond %{REQUEST_URI} !index\.php/.+$
+RewriteRule ^(.+)$ ./index\.php/$1 [L,NC]
+

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/webapp/.svn/all-wcprops
----------------------------------------------------------------------
diff --git a/src/main/webapp/.svn/all-wcprops b/src/main/webapp/.svn/all-wcprops
new file mode 100755
index 0000000..e4f2a3f
--- /dev/null
+++ b/src/main/webapp/.svn/all-wcprops
@@ -0,0 +1,29 @@
+K 25
+svn:wc:ra_dav:version-url
+V 73
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/webapp
+END
+config.ini
+K 25
+svn:wc:ra_dav:version-url
+V 84
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/webapp/config.ini
+END
+hooks.php
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/webapp/hooks.php
+END
+.htaccess
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/webapp/.htaccess
+END
+index.php
+K 25
+svn:wc:ra_dav:version-url
+V 83
+/repos/asf/!svn/ver/1476460/incubator/climate/trunk/rcmet/src/main/webapp/index.php
+END

http://git-wip-us.apache.org/repos/asf/climate/blob/a6aa1cd2/src/main/webapp/.svn/entries
----------------------------------------------------------------------
diff --git a/src/main/webapp/.svn/entries b/src/main/webapp/.svn/entries
new file mode 100755
index 0000000..7bc877c
--- /dev/null
+++ b/src/main/webapp/.svn/entries
@@ -0,0 +1,179 @@
+10
+
+dir
+1485921
+https://svn.apache.org/repos/asf/incubator/climate/trunk/rcmet/src/main/webapp
+https://svn.apache.org/repos/asf
+
+
+
+2012-11-20T16:20:28.221964Z
+1474523
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+13f79535-47bb-0310-9956-ffa450edef68
+
+config.ini
+file
+
+
+
+
+2013-05-24T10:14:00.000000Z
+e49532fda7eb6df157d387d9ea350851
+2012-11-20T16:20:28.221964Z
+1474523
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2517
+
+scripts
+dir
+
+static
+dir
+
+modules
+dir
+
+hooks.php
+file
+
+
+
+
+2013-05-24T10:14:00.000000Z
+c31a5fa4bf9795a92d66b219d41c469f
+2011-12-13T03:57:45.293099Z
+1471825
+mattmann
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2541
+
+.htaccess
+file
+
+
+
+
+2013-05-24T10:14:00.000000Z
+e90d0903d188427e6503322c57c57f03
+2012-08-30T16:31:25.045467Z
+1473966
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+2030
+
+classes
+dir
+
+views
+dir
+
+index.php
+file
+
+
+
+
+2013-05-24T10:14:00.000000Z
+72fa0dc92daed41b3cc30c7515daa7c3
+2012-08-30T16:30:39.702082Z
+1473965
+ahart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+1855
+


Mime
View raw message