Tim Thorpe created AMBARI-23827:
-----------------------------------

             Summary: 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


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
 * 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" : [
    {
      "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"
      }
    }
  ]
}

*# 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" : [
    {
      "href" : "http://node1.fyre.ibm.com:8080/api/v1/links/1";,
      "ExtensionLink" : {
        *"extension_name" : "IBM-Big_SQL",*
        *"extension_version" : "5.0.3.0",*
        *"link_id" : 1,*
        "stack_name" : "HDP",
        "stack_version" : "2.5"
      }
    }
  ]
}

# *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
{color:#333333}>> Extension link is still listed as IBM-Big_SQL 5.0.2.0.{color}
{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",*
{color:#FF0000}        *"extension_version" : "5.0.2.0",*{color}
        *"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)

Reply via email to