Skip to content

Commit

Permalink
Merge remote-tracking branch 'origin/master' into radjabov
Browse files Browse the repository at this point in the history
  • Loading branch information
Fryguy committed May 22, 2024
2 parents 04bdb06 + 826a577 commit 755a897
Show file tree
Hide file tree
Showing 917 changed files with 6,127 additions and 5,509 deletions.
2 changes: 1 addition & 1 deletion .codeclimate.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ plugins:
rubocop:
enabled: true
config: ".rubocop_cc.yml"
channel: rubocop-0-82
channel: rubocop-1-56-3
exclude_patterns:
- lib/generators/**/templates/
- node_modules/
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/locale_update_all.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ jobs:
- name: Run locale:update_all
run: bundle exec rake locale:update_all
- name: Create Pull Request
uses: peter-evans/create-pull-request@v5
uses: peter-evans/create-pull-request@v6
with:
add-paths: |
locale/manageiq.pot
Expand Down
19 changes: 11 additions & 8 deletions Gemfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
raise "Ruby versions < 3.0.0 are unsupported!" if RUBY_VERSION < "3.0.0"
raise "Ruby versions < 3.0.1 are unsupported!" if RUBY_VERSION < "3.0.1"
raise "Ruby versions >= 3.2.0 are unsupported!" if RUBY_VERSION >= "3.2.0"

source 'https://rubygems.org'
Expand Down Expand Up @@ -29,11 +29,11 @@ gem "awesome_spawn", "~>1.6", :require => false
gem "aws-sdk-s3", "~>1.0", :require => false # For FileDepotS3
gem "bcrypt", "~> 3.1.10", :require => false
gem "bootsnap", ">= 1.8.1", :require => false # for psych 3.3.2+ / 4 unsafe_load
gem "bundler", "~> 2.1", ">= 2.1.4", "!= 2.2.10", :require => false
gem "bundler", "~> 2.2", ">= 2.2.15", *("!= 2.5.0".."!= 2.5.9"), :require => false
gem "byebug", :require => false
gem "color", "~>1.8"
gem "connection_pool", :require => false # For Dalli
gem "config", "~>2.2", ">=2.2.3", :require => false
gem "connection_pool", :require => false # For Dalli
gem "dalli", "~>3.2.3", :require => false
gem "default_value_for", "~>3.3"
gem "docker-api", "~>1.33.6", :require => false
Expand Down Expand Up @@ -61,17 +61,18 @@ gem "net-ldap", "~>0.16.1", :require => false
gem "net-ping", "~>1.7.4", :require => false
gem "openscap", "~>0.4.8", :require => false
gem "optimist", "~>3.0", :require => false
gem "psych", ">=3.1", :require => false # 3.1 safe_load changed positional to kwargs like aliases: true: https://github.com/ruby/psych/commit/4d4439d6d0adfcbd211ea295779315f1baa7dadd
gem "pg", ">=1.4.1", :require => false
gem "pg-dsn_parser", "~>0.1.1", :require => false
gem "prism", ">=0.25.0", :require => false # Used by DescendantLoader
gem "psych", ">=3.1", :require => false # 3.1 safe_load changed positional to kwargs like aliases: true: https://github.com/ruby/psych/commit/4d4439d6d0adfcbd211ea295779315f1baa7dadd
gem "query_relation", "~>0.1.0", :require => false
gem "rack", ">=2.2.6.4", :require => false
gem "rack-attack", "~>6.5.0", :require => false
gem "rails", "~>6.1.7", ">=6.1.7.7"
gem "rails-i18n", "~>6.x"
gem "rake", ">=12.3.3", :require => false
gem "rest-client", "~>2.1.0", :require => false
gem "ripper_ruby_parser", "~>1.11", :require => false
gem "ruby_parser", :require => false # Required for i18n string extraction, and DescentdantLoader (via prism)
gem "ruby-progressbar", "~>1.7.0", :require => false
gem "rubyzip", "~>2.0.0", :require => false
gem "rugged", "~>1.5.0", :require => false
Expand Down Expand Up @@ -137,6 +138,10 @@ group :cisco_intersight, :manageiq_default do
manageiq_plugin "manageiq-providers-cisco_intersight"
end

group :embedded_terraform, :manageiq_default do
manageiq_plugin "manageiq-providers-embedded_terraform"
end

group :foreman, :manageiq_default do
manageiq_plugin "manageiq-providers-foreman"
end
Expand Down Expand Up @@ -291,10 +296,8 @@ end
### Development and test gems are excluded from appliance and container builds to reduce size and license issues
group :development do
gem "foreman"
gem "manageiq-style", :require => false
gem "manageiq-style", "~>1.5.0", :require => false
gem "PoParser"
# ruby_parser is required for i18n string extraction
gem "ruby_parser", :require => false
gem "yard", ">= 0.9.36"
end

Expand Down
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
[![Open Source Helpers](https://www.codetriage.com/manageiq/manageiq/badges/users.svg)](https://www.codetriage.com/manageiq/manageiq)

[![OpenSSF Best Practices](https://www.bestpractices.dev/projects/4282/badge)](https://www.bestpractices.dev/projects/4282)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/ManageIQ/manageiq/badge)](https://api.securityscorecards.dev/projects/github.com/ManageIQ/manageiq)
[![OpenSSF Scorecard](https://api.securityscorecards.dev/projects/github.com/ManageIQ/manageiq/badge)](https://securityscorecards.dev/viewer/?uri=github.com/ManageIQ/manageiq)
[![CNCF Landscape](https://img.shields.io/badge/CNCF%20Landscape-5699C6?logo=cncf)](https://landscape.cncf.io/?item=provisioning--automation-configuration--manageiq)

[![Build history for radjabov branch](https://buildstats.info/github/chart/ManageIQ/manageiq?branch=radjabov&buildCount=50&includeBuildsFromPullRequest=false&showstats=false)](https://github.com/ManageIQ/manageiq/actions?query=branch%3Amaster)

Expand Down
4 changes: 2 additions & 2 deletions Rakefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@
# Add your own tasks in files placed in lib/tasks ending in .rake,
# for example lib/tasks/capistrano.rake, and they will automatically be available to Rake.

require File.expand_path('../config/application', __FILE__)
require File.expand_path('../lib/tasks/evm_rake_helper', __FILE__)
require File.expand_path('config/application', __dir__)
require File.expand_path('lib/tasks/evm_rake_helper', __dir__)

include Rake::DSL
Vmdb::Application.load_tasks
Expand Down
1 change: 1 addition & 0 deletions app/channels/application_cable/connection.rb
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ def connect

def find_verified_user
return reject_unauthorized_connection unless cookies[:ws_token]

userid = TokenManager.new('ws').token_get_info(cookies[:ws_token], :userid)
User.find_by(:userid => userid.presence) || reject_unauthorized_connection
end
Expand Down
46 changes: 38 additions & 8 deletions app/mailers/generic_mailer.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ def self.deliver(method, options = {})
rcpts.each do |rcpt|
rcpt.split(',').each do |to|
options[:to] = to
individual = send(method, options)
individual = send(method, options)
begin
individual.deliver_now
rescue Net::SMTPError
Expand All @@ -41,24 +41,53 @@ def self.deliver(method, options = {})
rescue => e
_log.error("method: #{method} options: #{options} delivery-error #{e}")
end

end

msg
end

def self.deliver_queue(method, options = {})
def self.deliver_queue(method, options = {}, queue_options = {})
return unless MiqRegion.my_region.role_assigned?('notifier')

_log.info("starting: method: #{method} args: #{options} ")
options[:attachment] &&= attachment_to_blob(options[:attachment])

MiqQueue.submit_job(
:service => "notifier",
:class_name => name,
:method_name => 'deliver',
:args => [method, options],
queue_options.reverse_merge(
:service => "notifier",
:class_name => name,
:method_name => 'deliver',
:args => [method, options]
)
)
end

def self.deliver_task(method, options = {})
msg = "Queued the action: [#{method}]"

task = MiqTask.create!(:state => MiqTask::STATE_QUEUED, :status => MiqTask::STATUS_OK, :message => msg)

# Fail the task if there is no server with the notifier role in this region
unless MiqRegion.my_region.role_assigned?('notifier')
task.update_status(MiqTask::STATE_FINISHED, MiqTask::STATUS_ERROR, _("No server with notifier role in region"))
return task
end

queue_options = {
:miq_task_id => task.id,
:miq_callback => {
:class_name => MiqTask.name,
:instance_id => task.id,
:method_name => :queue_callback,
:args => ['Finished']
}
}

deliver_queue(method, options, queue_options)

task
end

def self.attachment_to_blob(attachment, attachment_filename = "evm_attachment")
return nil if attachment.nil?

Expand Down Expand Up @@ -162,6 +191,7 @@ def prepare_generic_email(options)
options[:attachment].each do |a|
name = a[:filename]
next if name.nil?

attachments[name] = {:mime_type => a[:content_type], :content => a[:body]}
end
mail(:subject => options[:subject], :to => options[:to], :from => options[:from], :cc => options[:cc], :bcc => options[:bcc], :date => options[:sent_on])
Expand All @@ -172,7 +202,7 @@ def prepare_generic_email(options)
OPTIONAL_SMTP_KEYS = [:enable_starttls_auto, :openssl_verify_mode]
def set_mailer_smtp(evm_settings = nil)
evm_settings ||= ::Settings.smtp
am_settings = {}
am_settings = {}

DESTINATION_SMTP_KEYS.each { |key| am_settings[key] = evm_settings[key] }
am_settings[:address] ||= evm_settings[:host] # vmdb.yml has key :host, ActionMailer expects :address
Expand Down
12 changes: 6 additions & 6 deletions app/models/account.rb
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ def self.xml_to_hashes(xmlNode, findPath, typeName)
nh[:acctid] = nh.delete("#{typeName}id".to_sym)
nh[:acctid] = nil unless nh[:acctid].respond_to?(:to_int) || nh[:acctid].to_s =~ /^-?[0-9]+$/
# Convert to signed integer values for acctid
nh[:acctid] = [nh[:acctid].to_i].pack("I").unpack("i")[0] unless nh[:acctid].nil?
nh[:acctid] = [nh[:acctid].to_i].pack("I").unpack1("i") unless nh[:acctid].nil?

# Find the users for this group / groups for this user
nh[:members] = []
Expand All @@ -93,7 +93,7 @@ def with_valid_account_type(valid_account_type)
if accttype == valid_account_type
yield
else
raise _("Cannot call method '%{caller}' on an Account of type '%{type}'") % {:caller => caller[0][/`.*'/][1..-2],
raise _("Cannot call method '%{caller}' on an Account of type '%{type}'") % {:caller => caller(1..1).first[/`.*'/][1..-2],
:type => accttype}
end
end
Expand Down Expand Up @@ -136,18 +136,18 @@ def remove_all_groups
# FIXME: Why not use .pluralize?
#
def members
send("#{accttype_opposite}s")
send(:"#{accttype_opposite}s")
end

def add_member(member)
send("add_#{accttype_opposite}", member)
send(:"add_#{accttype_opposite}", member)
end

def remove_member(member)
send("remove_#{accttype_opposite}", member)
send(:"remove_#{accttype_opposite}", member)
end

def remove_all_members
send("remove_all_#{accttype_opposite}s")
send(:"remove_all_#{accttype_opposite}s")
end
end
1 change: 1 addition & 0 deletions app/models/advanced_setting.rb
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@ def self.xml_to_hashes(xml_node, find_path)

el.each_element { |e| result << e.attributes.to_h }
end

result
end
end
2 changes: 1 addition & 1 deletion app/models/aliases/automation_manager_configured_system.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::AutomationManagerConfiguredSystem = ::ManageIQ::Providers::AnsibleTower::AutomationManager::ConfiguredSystem
AutomationManagerConfiguredSystem = ManageIQ::Providers::AnsibleTower::AutomationManager::ConfiguredSystem
2 changes: 1 addition & 1 deletion app/models/aliases/ems_automation.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::EmsAutomation = ::ManageIQ::Providers::ExternalAutomationManager
EmsAutomation = ManageIQ::Providers::ExternalAutomationManager
2 changes: 1 addition & 1 deletion app/models/aliases/ems_cloud.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::EmsCloud = ::ManageIQ::Providers::CloudManager
EmsCloud = ManageIQ::Providers::CloudManager
2 changes: 1 addition & 1 deletion app/models/aliases/ems_configuration.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::EmsConfiguration = ::ManageIQ::Providers::ConfigurationManager
EmsConfiguration = ManageIQ::Providers::ConfigurationManager
2 changes: 1 addition & 1 deletion app/models/aliases/ems_infra.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::EmsInfra = ::ManageIQ::Providers::InfraManager
EmsInfra = ManageIQ::Providers::InfraManager
2 changes: 1 addition & 1 deletion app/models/aliases/ems_network.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::EmsNetwork = ::ManageIQ::Providers::NetworkManager
EmsNetwork = ManageIQ::Providers::NetworkManager
2 changes: 1 addition & 1 deletion app/models/aliases/ems_physical_infra.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::EmsPhysicalInfra = ::ManageIQ::Providers::PhysicalInfraManager
EmsPhysicalInfra = ManageIQ::Providers::PhysicalInfraManager
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::EmsRefresh::Refreshers::BaseRefresher = ManageIQ::Providers::BaseManager::Refresher
EmsRefresh::Refreshers::BaseRefresher = ManageIQ::Providers::BaseManager::Refresher
2 changes: 1 addition & 1 deletion app/models/aliases/ems_storage.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::EmsStorage = ::ManageIQ::Providers::StorageManager
EmsStorage = ManageIQ::Providers::StorageManager
2 changes: 1 addition & 1 deletion app/models/aliases/miq_ems_metrics_collector_worker.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::MiqEmsMetricsCollectorWorker = ManageIQ::Providers::BaseManager::MetricsCollectorWorker
MiqEmsMetricsCollectorWorker = ManageIQ::Providers::BaseManager::MetricsCollectorWorker
2 changes: 1 addition & 1 deletion app/models/aliases/miq_ems_operations_worker.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::MiqEmsOperationsWorker = ManageIQ::Providers::BaseManager::OperationsWorker
MiqEmsOperationsWorker = ManageIQ::Providers::BaseManager::OperationsWorker
2 changes: 1 addition & 1 deletion app/models/aliases/miq_ems_refresh_worker.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::MiqEmsRefreshWorker = ManageIQ::Providers::BaseManager::RefreshWorker
MiqEmsRefreshWorker = ManageIQ::Providers::BaseManager::RefreshWorker
2 changes: 1 addition & 1 deletion app/models/aliases/miq_event_catcher.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::MiqEventCatcher = ManageIQ::Providers::BaseManager::EventCatcher
MiqEventCatcher = ManageIQ::Providers::BaseManager::EventCatcher
2 changes: 1 addition & 1 deletion app/models/aliases/miq_provision_cloud.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::MiqProvisionCloud = ::ManageIQ::Providers::CloudManager::Provision
MiqProvisionCloud = ManageIQ::Providers::CloudManager::Provision
2 changes: 1 addition & 1 deletion app/models/aliases/miq_provision_cloud_workflow.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::MiqProvisionCloudWorkflow = ::ManageIQ::Providers::CloudManager::ProvisionWorkflow
MiqProvisionCloudWorkflow = ManageIQ::Providers::CloudManager::ProvisionWorkflow
2 changes: 1 addition & 1 deletion app/models/aliases/miq_provision_infra_workflow.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::MiqProvisionInfraWorkflow = ::ManageIQ::Providers::InfraManager::ProvisionWorkflow
MiqProvisionInfraWorkflow = ManageIQ::Providers::InfraManager::ProvisionWorkflow
2 changes: 1 addition & 1 deletion app/models/aliases/template_cloud.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::TemplateCloud = ManageIQ::Providers::CloudManager::Template
TemplateCloud = ManageIQ::Providers::CloudManager::Template
2 changes: 1 addition & 1 deletion app/models/aliases/template_infra.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
require 'manageiq/providers/infra_manager/template'
::TemplateInfra = ManageIQ::Providers::InfraManager::Template
TemplateInfra = ManageIQ::Providers::InfraManager::Template
2 changes: 1 addition & 1 deletion app/models/aliases/vm_cloud.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::VmCloud = ManageIQ::Providers::CloudManager::Vm
VmCloud = ManageIQ::Providers::CloudManager::Vm
2 changes: 1 addition & 1 deletion app/models/aliases/vm_infra.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::VmInfra = ManageIQ::Providers::InfraManager::Vm
VmInfra = ManageIQ::Providers::InfraManager::Vm
2 changes: 1 addition & 1 deletion app/models/aliases/workers/ems_refresh_worker.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
::EmsRefreshWorker = ManageIQ::Providers::BaseManager::RefreshWorker::Runner
EmsRefreshWorker = ManageIQ::Providers::BaseManager::RefreshWorker::Runner
4 changes: 2 additions & 2 deletions app/models/aliases/workers/event_catcher.rb
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
::EventCatcher = ManageIQ::Providers::BaseManager::EventCatcher::Runner
::EventCatcherHandledException = ::EventCatcher::EventCatcherHandledException
EventCatcher = ManageIQ::Providers::BaseManager::EventCatcher::Runner
EventCatcherHandledException = EventCatcher::EventCatcherHandledException
1 change: 1 addition & 0 deletions app/models/application_record.rb
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@ def self.display_name(number = 1)

def self.human_attribute_name(attribute, options = {})
return super if options.delete(:ui) == true

"#{name}: #{super}"
end
end
1 change: 1 addition & 0 deletions app/models/asset_tag_import.rb
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ def self.upload(klass, fd)
klass = Object.const_get(klass.to_s)
raise _("%{name} not supported for upload!") % {:name => klass} unless REQUIRED_COLS.key?(klass)
raise _("%{name} not supported for upload!") % {:name => klass} unless MATCH_KEYS.key?(klass)

data, keys, tags = MiqBulkImport.upload(fd, REQUIRED_COLS[klass], MATCH_KEYS[klass].dup)

import = new(:data => data, :keys => keys, :tags => tags, :klass => klass)
Expand Down
Loading

0 comments on commit 755a897

Please sign in to comment.