Top Level Namespace
Defined Under Namespace
Modules: Enumerable, FalseExtensions, GoodData, IntegerExtensions, NilExtensions, StringExtensions, TrueExtensions Classes: Class, Object
Constant Summary collapse
- DEFAULT_BRICK =
'hello_world_brick'
- BRICK_PARAM_PREFIX =
'BRICK_PARAM_'
- HIDDEN_BRICK_PARAMS_PREFIX =
'HIDDEN_BRICK_PARAM_'
Instance Method Summary collapse
- #clean_up!(client, force, days, opts = {}) ⇒ Object
- #delete_ads_by_title(title, client, days = 14, force = false) ⇒ Object
- #delete_project_by_title(title, projects, days = 14, force = false) ⇒ Object
- #delete_segment_by_title(title, segments, days = 14, force = false) ⇒ Object
- #get_brick_params(prefix) ⇒ Object
- #handle_error(params, log, brick_type, error, error_message) ⇒ Object
- #init_client(username, password, server) ⇒ Object
Instance Method Details
#clean_up!(client, force, days, opts = {}) ⇒ Object
109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 |
# File 'bin/test_projects_cleanup.rb', line 109 def clean_up!(client, force, days, opts = {}) projects = client.projects if opts[:domain_id] domain = client.domain(opts[:domain_id]) # segments id format: {title}_{hostname}_{datetime} delete_segment_by_title(/CAR_DEMO_PREMIUM/, domain.segments, days, force) end delete_project_by_title(/Insurance Demo Master/, projects, days, force) delete_project_by_title(/Car Demo Master/, projects, days, force) delete_project_by_title(/Insurance Demo Workspace/, projects, days, force) delete_project_by_title(/Client With Conflicting LDM/, projects, days, force) delete_project_by_title(/Development Project/, projects, days, force) delete_project_by_title(/lcm-test-fixture/, projects, days, force) delete_project_by_title(/Test MASTER project/, projects, days, force) delete_project_by_title(/Test MINOR project/, projects, days, force) delete_project_by_title(/^Test project$/, projects, days, force) delete_project_by_title(/userprov-e2e-testing/, projects, days, force) delete_project_by_title(/load test service project/, projects, days, force) delete_project_by_title(/LCM SPEC PROJECT/, projects, days, force) delete_project_by_title(/LCM spec Client With Conflicting LDM Changes/, projects, days, force) delete_project_by_title(/LCM spec master project/, projects, days, force) delete_project_by_title(/users brick load test/, projects, days, force) delete_project_by_title(/transfer_processes and #transfer_schedules test/, projects, days, force) delete_project_by_title(/DailyUse Project for gooddata-ruby integration tests/, projects, days, force) delete_project_by_title(/^New project$/, projects, days, force) delete_project_by_title(/RubyGem Dev Week test/, projects, days, force) delete_project_by_title(/My project from blueprint/, projects, days, force) delete_ads_by_title(/Development ADS/, client, days, force) delete_ads_by_title(/Production ADS/, client, days, force) delete_ads_by_title(/TEST ADS/, client, days, force) end |
#delete_ads_by_title(title, client, days = 14, force = false) ⇒ Object
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'bin/test_projects_cleanup.rb', line 81 def delete_ads_by_title(title, client, days = 14, force = false) warehouses = client.warehouses return if warehouses.empty? deleted = 0 warehouses.each do |warehouse| warehouse_title = warehouse.title next unless warehouse_title.match(title) dead_line = Time.now - days * 60 * 60 * 24 created = Time.parse(warehouse.data["created"]) next if created > dead_line begin if force puts "Deleting: #{warehouse_title} - #{created}" warehouse.delete else puts "Would delete: #{warehouse_title} - #{created}" end deleted += 1 rescue StandardError => e puts "Failed to delete #{warehouse_title}: #{e}" end end puts "#{deleted} ADS instances with title \"#{title}\" #{'would be ' unless force}deleted." end |
#delete_project_by_title(title, projects, days = 14, force = false) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 |
# File 'bin/test_projects_cleanup.rb', line 59 def delete_project_by_title(title, projects, days = 14, force = false) dead_line = Time.now - days * 60 * 60 * 24 filtered_projects = projects.select do |p| p.title.match(title) && p.created < dead_line end filtered_projects.each do |project| begin if force puts "Deleting: #{project.pid} - #{project.title} - #{project.created}" project_add = project.add project_add && project_add.output_stage && project_add.output_stage.delete project.delete else puts "Would delete: #{project.pid} - #{project.title} - #{project.created}" end rescue StandardError => ex puts "Failed to delete project #{project.pid}, reason: #{ex}" end end puts "#{filtered_projects.length} projects matching \"#{title}\" #{'would be ' unless force}deleted." end |
#delete_segment_by_title(title, segments, days = 14, force = false) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'bin/test_projects_cleanup.rb', line 27 def delete_segment_by_title(title, segments, days = 14, force = false) return if segments.empty? dead_line = Time.now - days * 60 * 60 * 24 filtered_segments = segments.select do |s| if s.id.match(title) && s.id.length > 14 && s.id[s.id.length-14..-1] segment_created = s.id[s.id.length-14..-1] created = Time.parse(segment_created) if segment_created s if created.year >= Time.new.year && created < dead_line end end filtered_segments.each do |segment| begin if force segment.clients.each do |segment_client| GoodData.logger.info("Deleting segment: #{segment.id} - client: #{segment_client.client_id}") segment_client.dissociate end puts "Deleting segment: #{segment.id}" segment && segment.delete(force: true) else puts "Would delete segment: #{segment.id}" end rescue RuntimeError, StandardError => ex puts "Failed to delete segment #{segment.id}, reason: #{ex}" end end end |
#get_brick_params(prefix) ⇒ Object
16 17 18 |
# File 'bin/run_brick.rb', line 16 def get_brick_params(prefix) ENV.select { |k,| k.to_s.match(/^#{prefix}.*/) }.map { |k, v| [k.slice(prefix.length..-1), v] }.to_h end |
#handle_error(params, log, brick_type, error, error_message) ⇒ Object
20 21 22 23 24 25 26 |
# File 'bin/run_brick.rb', line 20 def handle_error(params, log, brick_type, error, ) execution_log = GoodData.logger execution_log.error "Execution failed. Error: #{error}" unless execution_log.nil? GoodData::Bricks::ExecutionResultMiddleware.update_execution_result(GoodData::Bricks::ExecutionStatus::ERROR, ) log.error "action=#{brick_type}_execution status=failed commit_hash=#{params['GOODDATA_RUBY_COMMIT']} execution_id=#{params['GDC_EXECUTION_ID']} exception=#{error}" raise end |