[ https://issues.apache.org/jira/browse/AMBARI-23827?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16471943#comment-16471943 ]
Tim Thorpe commented on AMBARI-23827: ------------------------------------- Please note, you *do not* need to install the stack or the service(s) in the extension version. You need to have 2 different versions of the same extension and follow the steps listed in the description above. > Update extension link doesn't persist to the Ambari DB > ------------------------------------------------------ > > Key: AMBARI-23827 > URL: https://issues.apache.org/jira/browse/AMBARI-23827 > Project: Ambari > Issue Type: Bug > Components: ambari-server > Affects Versions: 2.6.0, 2.7.0 > Reporter: Tim Thorpe > Priority: Major > > Update extension link doesn't persist to the Ambari DB. The REST API will > return the proper results but the DB won't be altered. This results in the > extension link reverting to the previous extension after an Ambari server > restart. > Here are the reproduction steps: > * Install ambari-server > * Install 2 versions of an extension - just the extension definitions with > their service definitions > * Restart ambari-server > * Link the 1st version of the extension > * Update the extension link to the 2nd version of the extension > * Verify the Ambari DB > * Restart ambari-server > * Verify the list of links via the REST API (post restart) > * > ## Link the 1st version* > [root@node1 ~]# curl -u admin:admin -H 'X-Requested-By: ambari' *-X POST* -d > '{"ExtensionLink": {"stack_name": "HDP", "stack_version": "2.5", > "extension_name": "IBM-Big_SQL", *"extension_version": "5.0.2.0"*}}' > [http://node1.fyre.ibm.com:8080/api/v1/links/] > * > ## Verify the extension link created* > [root@node1 ~]# curl -u admin:admin -H 'X-Requested-By: ambari' -X GET > [http://node1.fyre.ibm.com:8080/api/v1/links/] > { > "href" : "http://node1.fyre.ibm.com:8080/api/v1/links/", > "items" : [ > > Unknown macro: \{ "href" } > ] > } > * > ## Update the link to the 2nd extension version* > [root@node1 ~]# curl -u admin:admin -H 'X-Requested-By: ambari' *-X PUT* -d > '{"ExtensionLink": {"stack_name": "HDP", "stack_version": "2.5", > "extension_name": "IBM-Big_SQL", *"extension_version": "5.0.3.0"*}}' > [http://node1.fyre.ibm.com:8080/api/v1/links/1] > * > ## Verify the extension link is updated* > [root@node1 ~]# curl -u admin:admin -H 'X-Requested-By: ambari' -X GET > [http://node1.fyre.ibm.com:8080/api/v1/links/] > { > "href" : "http://node1.fyre.ibm.com:8080/api/v1/links/", > "items" : [ > > Unknown macro: \{ "href" } > ] > } > # *Verify the Ambari DB* > ambari=> select * from stack where stack_version = '2.5'; > stack_id | stack_name | stack_version > ----------++----------------------------- > 6 | HDP | 2.5 > ambari=> select * from extension; > extension_id | extension_name | extension_version > --------------++----------------------------------- > 1 | IBM-Big_SQL | 5.0.3.0 > *2 | IBM-Big_SQL | 5.0.2.0* > *ambari=> select * from extensionlink;* > *link_id | stack_id | {color:#ff0000}extension_id{color}* > *---------++------------------------* > *1 | 6 | {color:#ff0000} 2 > >> Extension link is still listed as IBM-Big_SQL 5.0.2.0.{color} > * > > > *# Verify the extension link after ambari-server restart* > [root@node1 ~]# curl -u admin:admin -H 'X-Requested-By: ambari' -X GET > [http://node1.fyre.ibm.com:8080/api/v1/links/] > { > "href" : "http://node1.fyre.ibm.com:8080/api/v1/links/", > "items" : [ > { > "href" : "http://node1.fyre.ibm.com:8080/api/v1/links/1", > "ExtensionLink" : { > *"extension_name" : "IBM-Big_SQL",* > *"extension_version" : "5.0.2.0",* > *"link_id" : 1,* > "stack_name" : "HDP", > "stack_version" : "2.5" > } > } > ] > } > *>> Extension link is back to IBM-Big_SQL 5.0.2.0 via REST API.* -- This message was sent by Atlassian JIRA (v7.6.3#76005)