Sha256: ebbc14cfb23bc7302d561293a0f9546599dd40db9aa7ed3fa855b4f91b0208f8

Contents?: true

Size: 1.93 KB

Versions: 16

Compression:

Stored size: 1.93 KB

Contents

require 'mccloud/util/iterator'

module Mccloud
  module Command
    def package(selection=nil,options=nil)

      if selection.nil?
        puts "[Error] We need at least a name of a machine."
        exit
      end


      #f=Fog::Compute.new({ :region => "eu-west-1", :provider => "AWS"})
      # i=f.create_image("i-c1ac2bb7","name","description")
      # f.images.all({ "Owner" => "self"})
      # f.deregister_image("ami-796d5b0d")

      on_selected_machines(selection) do |id,vm|

        time=Time.new
        strtime=time.strftime("%Y-%m-%d-%H-%M-%S")
        name=""

        if options["name"].nil?
          name="#{vm.name}-#{strtime}"
        else
          name=options["name"]
        end

        description=""
        if options["description"].nil?
          description="Autogenerated snapshot from machine #{vm.name}"
        else
          description=options["description"]
        end

        filter=@environment.config.mccloud.filter
        fullname="#{@environment.config.mccloud.filter}#{name}"

        provider= @environment.config.providers[vm.provider]
        begin
          result=provider.create_image(id,name,description)
          imageId=result.body["imageId"]
          puts "[#{vm.name}] image #{imageId} with #{description} being created"

          unless options["dontwait"]
            sleep 3
            counter=0
            max_tries=5
            #Pending
            state="pending"
            until state!="pending" do
              print "."
              sleep 2
              image=provider.images.get(imageId)

              if image.nil?
                sleep 3
                print "."
              else
                state=image.state
              end
            end
            puts ""
            puts "[#{vm.name}] creation done!"
          end
        rescue Fog::Service::Error => fogerror
          puts "[Error] #{fogerror}"

        end
        #      vm.instance.start
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
mccloud-0.1.1 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.28 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.27 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.26 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.25 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.24 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.23 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.22 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.21 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.20 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.19 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.18 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.17 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.16 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.15 lib/mccloud/provider/aws/provider/old_package.rb
mccloud-0.0.14 lib/mccloud/provider/aws/provider/old_package.rb