Sha256: fb1ee3541b0d2b3a2fda5fe61b425f0d62863debb639f2dada7cb2642243da7f

Contents?: true

Size: 1.43 KB

Versions: 1

Compression:

Stored size: 1.43 KB

Contents

#
# Copyright 2014 Red Hat, Inc.
#
# This software is licensed to you under the GNU General Public
# License as published by the Free Software Foundation; either version
# 2 of the License (GPLv2) or (at your option) any later version.
# There is NO WARRANTY for this software, express or implied,
# including the implied warranties of MERCHANTABILITY,
# NON-INFRINGEMENT, or FITNESS FOR A PARTICULAR PURPOSE. You should
# have received a copy of GPLv2 along with this software; if not, see
# http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt.

module Katello
  module Glue
    class Task
      attr_reader :name, :status, :priority, :action, :action_rollback, :timestamp

      def initialize(opts)
        @name            = opts[:name]
        @status          = opts[:status]
        @priority        = opts[:priority] || 0
        @action          = opts[:action]
        @action_rollback = opts[:action_rollback]
        update_ts
      end

      def status=(s)
        if Glue::Queue::STATUS.include?(s)
          update_ts
          @status = s
        else
          fail "invalid STATE #{s}"
        end
      end

      def to_s
        "#{name}\t #{priority}\t #{status}\t #{action}"
      end

      def to_log
        "#{name}[#{status}]"
      end

      private

      def update_ts
        @timestamp = Time.now
      end

      # sort based on priority
      def <=>(other)
        self.priority <=> other.priority
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
katello-2.2.2 app/lib/katello/glue/task.rb