Sha256: 08a690ff948436600670956fd0adba2416ab7bae6c8f4af2b4d57a85a628d930

Contents?: true

Size: 1.1 KB

Versions: 16

Compression:

Stored size: 1.1 KB

Contents

require 'tempfile'
require 'pathname'
require 'engineyard-cloud-client/errors'

module EY
  class CloudClient
    class Recipes
      attr_reader :api, :environment

      def initialize(api, environment)
        @api = api
        @environment = environment
      end

      def run
        api.put("/environments/#{environment.id}/run_custom_recipes")
        true
      end

      def download
        tmp = Tempfile.new("recipes")
        data = api.get("/environments/#{environment.id}/recipes")
        tmp.write(data)
        tmp.flush
        tmp.close
        tmp
      end

      def upload_path(recipes_path)
        recipes_path = Pathname.new(recipes_path)
        if recipes_path.exist?
          upload recipes_path.open('rb')
        else
          raise EY::CloudClient::Error, "Recipes file not found: #{recipes_path}"
        end
      end

      # Expects a File object opened for binary reading.
      # i.e. upload(File.open(recipes_path, 'rb'))
      def upload(file_to_upload)
        api.post("/environments/#{environment.id}/recipes", :file => file_to_upload)
        true
      end

    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
engineyard-cloud-client-2.1.1 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-2.1.0 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.16 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-2.0.1 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-2.0.0 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.15 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.14 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.13 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.12 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.11 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.10 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.9 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.8 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.7 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.6 lib/engineyard-cloud-client/models/recipes.rb
engineyard-cloud-client-1.0.5 lib/engineyard-cloud-client/models/recipes.rb