Bug 1696412

Summary: Newly created expressions with human readable sizes ( like 2.megabytes ) are failing
Product: Red Hat CloudForms Management Engine Reporter: Yuri Rudman <yrudman>
Component: ReportingAssignee: Yuri Rudman <yrudman>
Status: CLOSED CURRENTRELEASE QA Contact: Angelina Vasileva <anikifor>
Severity: high Docs Contact: Red Hat CloudForms Documentation <cloudforms-docs>
Priority: high    
Version: 5.10.2CC: dmetzger, hkataria, mshriver, obarenbo, simaishi
Target Milestone: GAKeywords: TestOnly, ZStream
Target Release: 5.11.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: 5.11.0.1 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1702077 (view as bug list) Environment:
Last Closed: 2019-12-13 14:54:42 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: Bug
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: CFME Core Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1702077    
Attachments:
Description Flags
Expression with saved human format none

Description Yuri Rudman 2019-04-04 19:36:58 UTC
Created attachment 1552068 [details]
Expression with saved human format

Description of problem:
New expression editor allows to select denomination for disk size (as well for other fields) - GB, MB, etc. and this denomination saved as part of expression.
Example: "Virtual Machine : Allocated Disk Storage < 1 GB" 

But during execution when SQL created this "1 GB" not converting to number, which is causing error: 
[2019-04-04T15:00:08.320937 #24319:11ccf54] ERROR -- : [ActiveRecord::StatementInvalid]: PG::InvalidTextRepresentation: ERROR:  invalid input syntax for type numeric: "1.gigabytes"
LINE 1: ...ares"."vm_or_template_id" = "vms"."id" LIMIT 1) < '1.gigabyt...
                                                             ^
: SELECT "vms".*, (SELECT  "hardwares"."memory_mb" FROM "hardwares" WHERE "hardwares"."vm_or_template_id" = "vms"."id" LIMIT 1) AS mem_cpu FROM "vms" WHERE "vms"."type" IN ('ManageIQ::Providers::InfraManager::Vm', 'VmXen', 'ManageIQ::Providers::Kubevirt::InfraManager::Vm', 'ManageIQ::Providers::Redhat::InfraManager::Vm', 'ManageIQ::Providers::Microsoft::InfraManager::Vm', 'ManageIQ::Providers::Vmware::InfraManager::Vm') AND "vms"."template" = $1 AND ((SELECT  (SELECT SUM("disks"."size") FROM "disks" WHERE "hardwares"."id" = "disks"."hardware_id") FROM "hardwares" WHERE "hardwares"."vm_or_template_id" = "vms"."id" LIMIT 1) < '1.gigabytes')  Method:[block (2 levels) in <class:LogProxy>]
[----] E, [2019-04-04T15:00:08.321006 #24319:11ccf54] ERROR -- : /opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:600:in `async_exec'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:600:in `block in exec_no_cache'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/connection_adapters/abstract_adapter.rb:590:in `block in log'
/opt/rh/cfme-gemset/gems/activesupport-5.0.7.1/lib/active_support/notifications/instrumenter.rb:21:in `instrument'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/connection_adapters/abstract_adapter.rb:583:in `log'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:600:in `exec_no_cache'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/connection_adapters/postgresql_adapter.rb:589:in `execute_and_clear'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/connection_adapters/postgresql/database_statements.rb:103:in `exec_query'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/connection_adapters/abstract/database_statements.rb:373:in `select'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/connection_adapters/abstract/database_statements.rb:41:in `select_all'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/connection_adapters/abstract/query_cache.rb:95:in `select_all'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/querying.rb:39:in `find_by_sql'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/relation.rb:706:in `exec_queries'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/relation.rb:583:in `load'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/relation.rb:260:in `records'
/opt/rh/cfme-gemset/gems/activerecord-5.0.7.1/lib/active_record/relation.rb:256:in `to_a'
/var/www/miq/vmdb/app/models/miq_report/generator.rb:387:in `build_table'
/var/www/miq/vmdb/app/models/miq_report/generator.rb:214:in `_generate_table'
/var/www/miq/vmdb/app/models/miq_report/generator.rb:186:in `block in generate_table'

Version-Release number of selected component (if applicable):
5.10.2.2 and latest on master

How reproducible:
100%

Steps to Reproduce:
1. create expression to filer report: Virtual Machine : Allocated Disk Storage < 1 GB ( see on screenshot)
2. execute report


Actual results:
error

Comment 7 CFME Bot 2019-04-24 19:45:35 UTC
New commit detected on ManageIQ/manageiq/master:

https://github.com/ManageIQ/manageiq/commit/a84aac1b7ab23fb66792ee32c5000f52e6b9306c
commit a84aac1b7ab23fb66792ee32c5000f52e6b9306c
Author:     Yuri Rudman <yrudman>
AuthorDate: Wed Apr 10 16:30:49 2019 -0400
Commit:     Yuri Rudman <yrudman>
CommitDate: Wed Apr 10 16:30:49 2019 -0400

    convert string representation of sizes to numbers when generating SQL for expression
    Fixes https://bugzilla.redhat.com/show_bug.cgi?id=1696412

 lib/miq_expression.rb | 28 +-
 1 file changed, 26 insertions(+), 2 deletions(-)

Comment 8 Angelina Vasileva 2019-05-06 12:28:32 UTC
Fixed and verified in 5.11.0.2.20190430174828_0e34dea