Bug 1345888

Summary: Azure provider unable to refresh when elements have non-ascii characters
Product: Red Hat CloudForms Management Engine Reporter: Felix Dewaleyne <fdewaley>
Component: ProvidersAssignee: Daniel Berger <dberger>
Status: CLOSED ERRATA QA Contact: Jeff Teehan <jteehan>
Severity: high Docs Contact:
Priority: high    
Version: 5.5.0CC: cpelland, dberger, fdewaley, jfrey, jhardy, jprause, jteehan, obarenbo, simaishi
Target Milestone: GAKeywords: Reopened, ZStream
Target Release: 5.6.0   
Hardware: All   
OS: All   
Whiteboard: provider:azure
Fixed In Version: 5.6.0.12 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of:
: 1346033 1346034 (view as bug list) Environment:
Last Closed: 2016-06-29 16:07:25 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: Azure Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1346033, 1346034    

Description Felix Dewaleyne 2016-06-13 11:39:54 UTC
Description of problem:
During a refresh the presence of non-ascii characters like { cause an exception

Version-Release number of selected component (if applicable):
5.5.4.2

How reproducible:
all the time


Steps to Reproduce:
1. set up azure so that one drive will include { in its name
2. attach to cloudforms
3.

Actual results:
[----] E, [2016-06-10T04:30:21.768545 #10698:5e798c] ERROR -- : [URI::InvalidURIError]: bad URI(is not URI?): (redacted)  Method:[rescue in block in refresh]
[----] E, [2016-06-10T04:30:21.768655 #10698:5e798c] ERROR -- : /opt/rh/rh-ruby22/root/usr/share/ruby/uri/rfc3986_parser.rb:66:in `split'
/opt/rh/rh-ruby22/root/usr/share/ruby/uri/rfc3986_parser.rb:72:in `parse'
/opt/rh/rh-ruby22/root/usr/share/ruby/uri/common.rb:226:in `parse'
/opt/rh/cfme-gemset/gems/azure-signature-0.2.0/lib/azure/signature.rb:40:in `initialize'
/opt/rh/cfme-gemset/gems/azure-armrest-0.1.3/lib/azure/armrest/model/storage_account.rb:353:in `new'
/opt/rh/cfme-gemset/gems/azure-armrest-0.1.3/lib/azure/armrest/model/storage_account.rb:353:in `build_headers'
/opt/rh/cfme-gemset/gems/azure-armrest-0.1.3/lib/azure/armrest/model/storage_account.rb:134:in `blob_properties'
/opt/rh/cfme-gemset/gems/azure-armrest-0.1.3/lib/azure/armrest/storage_account_service.rb:133:in `block (3 levels) in list_private_images'
/opt/rh/cfme-gemset/gems/azure-armrest-0.1.3/lib/azure/armrest/storage_account_service.rb:129:in `each'
/opt/rh/cfme-gemset/gems/azure-armrest-0.1.3/lib/azure/armrest/storage_account_service.rb:129:in `block (2 levels) in list_private_images'


Expected results:
the refresh is able to go through

Additional info:

Comment 3 Daniel Berger 2016-06-13 14:57:44 UTC
This is actually a bug in the azure-signature gem caused by the URI.parse method. I will get a fix in soon.

Comment 5 Daniel Berger 2016-06-13 16:54:37 UTC
Felix, the source of that error is ultimately the azure-signature gem. Version 0.2.1 of the azure-signature gem, which is now available, switches from URI to Addressable::URI, which handles brackets in url's and is more robust in general.

Comment 6 Daniel Berger 2016-06-13 16:55:29 UTC
John, it should just be a matter of a bundle update at this point to get azure-armrest to pick up the latest 0.2.x version of azure-signature, right?

Comment 11 Daniel Berger 2016-06-17 18:51:06 UTC
Ok, I have pushed out the azure-signature-0.2.2 gem which, when combined with a hotfix that I believe was already applied to your azure-armrest-0.1.3 gem, should solve your issue.

Comment 12 Daniel Berger 2016-06-20 17:21:51 UTC
https://github.com/ManageIQ/manageiq/pull/9294

Comment 14 Jeff Teehan 2016-06-28 14:10:35 UTC
Added a new guid based drive and it refreshed as expected.  Moving to verified.

Comment 17 errata-xmlrpc 2016-06-29 16:07:25 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2016:1348