Class: Fog::Google::Compute::Operation::QuotaInfo
- Defined in:
- lib/fog/google/compute/models/operation.rb
Overview
ErrorInfo
Instance Attribute Summary
Attributes inherited from ErrorInfo
#code, #error_details, #location, #message
Instance Method Summary collapse
-
#initialize(attributes = {}) ⇒ QuotaInfo
constructor
A new instance of QuotaInfo.
- #message_pretty ⇒ Object
- #quota_infos ⇒ Object
Constructor Details
#initialize(attributes = {}) ⇒ QuotaInfo
Returns a new instance of QuotaInfo.
60 61 62 63 64 65 |
# File 'lib/fog/google/compute/models/operation.rb', line 60 def initialize(attributes = {}) code = attributes[:code] raise Fog::Errors::Error.new("Invalid error code: #{code}") if code != "QUOTA_EXCEEDED" super(attributes) end |
Instance Method Details
#message_pretty ⇒ Object
74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 |
# File 'lib/fog/google/compute/models/operation.rb', line 74 def msg = super.gsub(/\s*Limit.*region.*[^.]+./, "") quota_infos.each do |qi| dimensions = qi[:dimensions] if qi.is_a?(Hash) limit = qi[:limit] if qi.is_a?(Hash) metric = qi[:metric_name] if qi.is_a?(Hash) region = dimensions[:region] if dimensions.is_a?(Hash) limit_msg = " Limit: #{limit.to_f}" if limit.is_a?(Numeric) limit_msg = "#{limit_msg} #{metric}" if limit_msg && metric limit_msg = "#{limit_msg} in region #{region}" if limit_msg && region.is_a?(String) limit_msg = "#{limit_msg}." if limit_msg msg = "#{msg}#{limit_msg}" end msg end |
#quota_infos ⇒ Object
67 68 69 70 71 72 |
# File 'lib/fog/google/compute/models/operation.rb', line 67 def quota_infos return [] unless error_details.is_a?(Array) error_details_quota_infos = error_details.select{|ed| ed.is_a?(Hash) && ed.has_key?(:quota_info)} error_details_quota_infos.map{|ed| ed[:quota_info]} end |