You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by nd...@apache.org on 2016/01/29 22:24:05 UTC

airavata-php-gateway git commit: Admin now has to remove connections of app module with interface and deployments before being able to delete it.

Repository: airavata-php-gateway
Updated Branches:
  refs/heads/develop 30f9d7ff7 -> 93c1b32a3


Admin now has to remove connections of app module with interface and deployments before being able to delete it.


Project: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/commit/93c1b32a
Tree: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/tree/93c1b32a
Diff: http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/diff/93c1b32a

Branch: refs/heads/develop
Commit: 93c1b32a3f68f99cb402909e550cfa1cf257557a
Parents: 30f9d7f
Author: Nipurn Doshi <ni...@gmail.com>
Authored: Fri Jan 29 16:23:27 2016 -0500
Committer: Nipurn Doshi <ni...@gmail.com>
Committed: Fri Jan 29 16:23:27 2016 -0500

----------------------------------------------------------------------
 app/controllers/ApplicationController.php | 35 +++++++++++++++-----------
 app/libraries/AppUtilities.php            | 23 +++++++++++++++++
 2 files changed, 44 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/93c1b32a/app/controllers/ApplicationController.php
----------------------------------------------------------------------
diff --git a/app/controllers/ApplicationController.php b/app/controllers/ApplicationController.php
index c111141..438ab15 100644
--- a/app/controllers/ApplicationController.php
+++ b/app/controllers/ApplicationController.php
@@ -39,25 +39,32 @@ class ApplicationController extends BaseController {
 
 	public function deleteAppModule()
 	{
+        
         $this->beforeFilter('verifyeditadmin');
         $data = AppUtilities::getAppInterfaceData();
-        foreach($data["appInterfaces"] as $appInterface){
-            foreach($appInterface->applicationModules as $appModule){
-                if($appModule == Input::get("appModuleId")){
-                    $errorMessage = "The selected app module is already assigned to " . $appInterface->applicationName
-                    . " interface. Hence it cannot be removed";
-                    return Redirect::to("app/module")->with("errorMessage", $errorMessage);
-                }
-            }
+        $connections = AppUtilities::checkAppModuleConnections( Input::get("appModuleId"));
+        if( count( $connections["appInterfaces"]) > 0 || count( $connections["appDeployments"]) > 0)
+        {	
+        	$message = "App Module you are trying to delete is connected to - <br/>";
+        	foreach( $connections["appInterfaces"] as $index => $interface)
+        	{
+        		$message .= "Interface " . ($index + 1) . " : " . $interface . "<br/>";
+        	}
+        	foreach( $connections["appDeployments"] as $index => $deployment)
+        	{
+        		$message .= "Deployment " . ($index + 1) . " : " . $deployment . "<br/>";
+        	}
+        	$message .= "<br/>Please disconnect it from all the above interfaces and deployments to be able to delete it.";
+        	return Redirect::to("app/module")->with("errorMessage", $message);
         }
-
-		if( AppUtilities::deleteAppModule( Input::get("appModuleId") ) )
-			$message = "Module has been deleted successfully!";
-		else
-			$message = "An error has occurred. Please report the issue.";
+        else{
+			if( AppUtilities::deleteAppModule( Input::get("appModuleId") ) )
+				$message = "Module has been deleted successfully!";
+			else
+				$message = "An error has occurred. Please report the issue.";
+		}
 
 		return Redirect::to("app/module")->with("message", $message);
-
 	}
 
 	public function showAppInterfaceView()

http://git-wip-us.apache.org/repos/asf/airavata-php-gateway/blob/93c1b32a/app/libraries/AppUtilities.php
----------------------------------------------------------------------
diff --git a/app/libraries/AppUtilities.php b/app/libraries/AppUtilities.php
index 3b3102d..f4cd6c4 100644
--- a/app/libraries/AppUtilities.php
+++ b/app/libraries/AppUtilities.php
@@ -253,6 +253,29 @@ class AppUtilities
         return Airavata::getAllAppModules(Session::get('authz-token'), Session::get("gateway_id"));
     }
 
+    public static function checkAppModuleConnections( $appModuleId){
+        $appInterfaces = Airavata::getAllApplicationInterfaces( Session::get('authz-token'), Session::get("gateway_id"));
+        $appDeployments = Airavata::getAllApplicationDeployments( Session::get('authz-token'), Session::get("gateway_id"));
+        $connections = array();
+        $connections["appInterfaces"] = array(); 
+        $connections["appDeployments"] = array();
+
+        foreach($appInterfaces as $appInterface){
+            foreach($appInterface->applicationModules as $appModule){
+                var_dump( $appModule);
+                if($appModule == $appModuleId){
+                    $connections["appInterfaces"][] = $appInterface->applicationName;
+                }
+            }
+        }
+        foreach($appDeployments as $appDeployment){
+            if($appDeployment->appModuleId == $appModuleId){
+                $connections["appDeployments"][] = $appDeployment->appDeploymentId;
+            }
+        }
+        return $connections;
+    }
+
     /**
      * Get all available applications
      * @return null