From 2728f59746f7a57ed0283b899f9636cfef77d001 Mon Sep 17 00:00:00 2001 From: Tom Clegg Date: Wed, 29 Jan 2014 11:04:12 -0800 Subject: [PATCH] Remove +K@foo parts from collection uuids in jobs' script_parameters and other job fields cached in PipelineInstances. refs #1881 --- ...e_collection_uuids_in_script_parameters.rb | 45 +++++++++++++++++++ services/api/db/schema.rb | 2 +- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 services/api/db/migrate/20140129184311_normalize_collection_uuids_in_script_parameters.rb diff --git a/services/api/db/migrate/20140129184311_normalize_collection_uuids_in_script_parameters.rb b/services/api/db/migrate/20140129184311_normalize_collection_uuids_in_script_parameters.rb new file mode 100644 index 0000000000..b36241bfb2 --- /dev/null +++ b/services/api/db/migrate/20140129184311_normalize_collection_uuids_in_script_parameters.rb @@ -0,0 +1,45 @@ +class NormalizeCollectionUuidsInScriptParameters < ActiveRecord::Migration + include CurrentApiClient + def up + act_as_system_user do + PipelineInstance.all.each do |pi| + pi.save! if fix_values_recursively(pi.components) + end + Job.all.each do |j| + changed = false + j.script_parameters.each do |p, v| + if v.is_a? String and v.match /\+K/ + v.gsub! /\+K\@\w+/, '' + changed = true + end + end + j.save! if changed + end + end + end + + def down + end + + protected + def fix_values_recursively fixme + changed = false + if fixme.is_a? String + if fixme.match /\+K/ + fixme.gsub! /\+K\@\w+/, '' + return true + else + return false + end + elsif fixme.is_a? Array + fixme.each do |v| + changed = fix_values_recursively(v) || changed + end + elsif fixme.is_a? Hash + fixme.each do |p, v| + changed = fix_values_recursively(v) || changed + end + end + changed + end +end diff --git a/services/api/db/schema.rb b/services/api/db/schema.rb index 62d41f67f4..df6ea9b190 100644 --- a/services/api/db/schema.rb +++ b/services/api/db/schema.rb @@ -11,7 +11,7 @@ # # It's strongly recommended to check this file into your version control system. -ActiveRecord::Schema.define(:version => 20140124222114) do +ActiveRecord::Schema.define(:version => 20140129184311) do create_table "api_client_authorizations", :force => true do |t| t.string "api_token", :null => false -- 2.30.2