Sha256: 47acdbc027bbeadfd4e4fd8e816e09fb3a54bf933415975186790121d150c408

Contents?: true

Size: 1.46 KB

Versions: 13

Compression:

Stored size: 1.46 KB

Contents

require 'dm-core'

class Deployment
  include DataMapper::Resource

  AWSM_SERVERSIDE_VERSION = '2.0.0.awsm'

  property :id,                 Serial
  property :created_at,         DateTime
  property :finished_at,        DateTime
  property :commit,             String, :default => 'abcdef1234'*4
  property :migrate,            String
  property :migrate_command,    String
  property :ref,                String
  property :successful,         Boolean
  property :output,             Text
  property :serverside_version, String

  belongs_to :app_environment

  def inspect
    "#<Deployment app_environment:#{app_environment.inspect}>"
  end

  def user_name
    app_environment.app.account.user.name
  end

  # normally a property, but we don't have the code to find this so just pretend
  def resolved_ref
    "resolved-#{ref}"
  end

  # pretend to trigger a deploy
  #
  # this deploy will be instant, unlike real deploys
  #
  def deploy
    unless serverside_version
      # only set serverside version if it's not set, to imitate the api
      # behavior of choosing its own serverside version if one is not
      # sent
      update :serverside_version => AWSM_SERVERSIDE_VERSION
    end
    finished!(
      :successful => true,
      :output => 'Deployment triggered by the API'
    )
  end

  def finished?
    finished_at != nil
  end

  def finished!(attrs)
    return true if finished?
    attrs = attrs.dup
    attrs['finished_at'] ||= Time.now
    update(attrs)
  end

end

Version data entries

13 entries across 13 versions & 1 rubygems

Version Path
engineyard-cloud-client-2.1.1 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-2.1.0 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-1.0.16 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-2.0.1 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-2.0.0 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-1.0.15 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-1.0.14 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-1.0.13 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-1.0.12 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-1.0.11 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-1.0.10 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-1.0.9 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb
engineyard-cloud-client-1.0.8 lib/engineyard-cloud-client/test/fake_awsm/models/deployment.rb