Actually caused by the instance.condor_job_id field being too short. This expands this field (so long as condor can handle a job id of this length) --- src/app/models/instance.rb | 1 + ...20101203162334_expand_instance_condor_job_id.rb | 26 ++++++++++++++++++++ src/spec/models/instance_spec.rb | 7 +++++ 3 files changed, 34 insertions(+), 0 deletions(-) create mode 100644 src/db/migrate/20101203162334_expand_instance_condor_job_id.rb
diff --git a/src/app/models/instance.rb b/src/app/models/instance.rb index 22069e2..e3d65bc 100644 --- a/src/app/models/instance.rb +++ b/src/app/models/instance.rb @@ -47,6 +47,7 @@ class Instance < ActiveRecord::Base validates_presence_of :name validates_uniqueness_of :name, :scope => :pool_id validates_length_of :name, :maximum => 1024 + validates_length_of :condor_job_id, :maximum => 2048, :unless => Proc.new { |i| i.condor_job_id.nil? }
STATE_NEW = "new" STATE_PENDING = "pending" diff --git a/src/db/migrate/20101203162334_expand_instance_condor_job_id.rb b/src/db/migrate/20101203162334_expand_instance_condor_job_id.rb new file mode 100644 index 0000000..7ea1002 --- /dev/null +++ b/src/db/migrate/20101203162334_expand_instance_condor_job_id.rb @@ -0,0 +1,26 @@ +# Copyright (C) 2010 Red Hat, Inc. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; version 2 of the License. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, +# MA 02110-1301, USA. A copy of the GNU General Public License is +# also available at http://www.gnu.org/copyleft/gpl.html. + +class ExpandInstanceCondorJobId < ActiveRecord::Migration + def self.up + change_column :instances, :condor_job_id, :string, :limit => 2048 + end + + def self.down + change_column :instances, :condor_job_id, :string + end +end diff --git a/src/spec/models/instance_spec.rb b/src/spec/models/instance_spec.rb index ee9cbaf..36c2839 100644 --- a/src/spec/models/instance_spec.rb +++ b/src/spec/models/instance_spec.rb @@ -42,6 +42,13 @@ describe Instance do
end
+ it "should have a condor_job_id of reasonable length" do + @instance.condor_job_id = 'x'*2049 + @instance.should_not be_valid + @instance.condor_job_id = 'x'*2048 + @instance.should be_valid + end + it "should have unique name" do @instance.save! second_instance = Factory.build(:instance,