Madhuvanthi Radhakrishnan created AMBARI-21849:
--------------------------------------------------

             Summary: Clean up repo_version table during mpack delete, add 
create validation for mpacks
                 Key: AMBARI-21849
                 URL: https://issues.apache.org/jira/browse/AMBARI-21849
             Project: Ambari
          Issue Type: Bug
          Components: ambari-server
            Reporter: Madhuvanthi Radhakrishnan
            Assignee: Madhuvanthi Radhakrishnan
             Fix For: 3.0.0


*Register Mpack API throws NPE when mpack defined in the registry is 
unavailable in mpack-repo.*
1. Register mpack registry with an invalid mpackUrl (which does not point to a 
Mpack) 
2. Try to create a Mpack using register Mpack API
3. API should fail with valid error message stating invalid/unreachable 
mpackUrl, but fails with 500 server error.

*Delete Mpack API failing with 500 server error (foreign key constraint 
violation error) on a failed deploy cluster*
Scenario
Cluster is deployed but "Install, Test, Start" step fails.
User issues DELETE /cluster using API
Root Cause
Since we are far ahead in the deployment process, entries are made to number of 
tables that references the stack namely
-extensionlink
-clusters
-clusterconfig
-serviceconfig
-clusterstate
-repo_version
-blueprint
Of these, the DELETE /cluster clears up entries from all the tables referencing 
stacks except for repo_version. 
When user issues DELETE /mpacks after this, a call is made to remove the entry 
from the stack table but it still has a reference in the repo_version table due 
to which we get referential integrity error.
Fix
Before we delete an mpack we have the following checks - 
-Whether any clusters are deployed (To be relaxed in future)
-If there is a stack entry that has current_mpack_id = mpack_id (delete 
candidate)
Based on this, we will delete the repo_version entry for the above stack_id 
safely.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to