public function editSubmit()

in app/controllers/ComputeResourceController.php [87:212]


    public function editSubmit()
    {
        $this->beforeFilter('verifyeditadmin');
        $tabName = "";
        if (Input::get("cr-edit") == "resDesc") /* Modify compute Resource description */ {
            $computeDescription = CRUtilities::get_compute_resource(Input::get("crId"));
            $computeDescription->hostName = trim(Input::get("hostname"));
            $computeDescription->hostAliases = array_unique(array_filter(Input::get("hostaliases")));
            $computeDescription->ipAddresses = array_unique(array_filter(Input::get("ips")));
            $computeDescription->resourceDescription = Input::get("description");
            $computeDescription->maxMemoryPerNode = Input::get("maxMemoryPerNode");
//            $computeDescription->cpusPerNode = Input::get("cpusPerNode");
//            $computeDescription->defaultNodeCount = Input::get("defaultNodeCount");
//            $computeDescription->defaultCPUCount = Input::get("defaultCPUCount");
//            $computeDescription->defaultWalltime = Input::get("defaultWalltime");
            //var_dump( $computeDescription); exit;

            $computeResource = CRUtilities::register_or_update_compute_resource($computeDescription, true);

            $tabName = "#tab-desc";
        }
        if (Input::get("cr-edit") == "queue") /* Add / Modify a Queue */ {
            $queue = array("queueName" => Input::get("qname"),
                "queueDescription" => Input::get("qdesc"),
                "maxRunTime" => Input::get("qmaxruntime"),
                "maxNodes" => Input::get("qmaxnodes"),
                "maxProcessors" => Input::get("qmaxprocessors"),
                "maxJobsInQueue" => Input::get("qmaxjobsinqueue"),
                "maxMemory" => Input::get("qmaxmemoryinqueue"),
                "cpuPerNode" => Input::get("cpuPerNode"),
                "defaultNodeCount" => Input::get("defaultNodeCount"),
                "defaultCPUCount" => Input::get("defaultCPUCount"),
                "defaultWalltime" => Input::get("defaultWalltime"),
                "queueSpecificMacros" => Input::get("queueSpecificMacros"),
                "isDefaultQueue" => Input::get('isDefaultQueue') == 'on'
            );

            $computeDescription = CRUtilities::get_compute_resource(Input::get("crId"));
            $updatedQueues = [];
            if($queue["isDefaultQueue"]){
                foreach($computeDescription->batchQueues as $aQueue){
                    $aQueue->isDefaultQueue = false;
                    $updatedQueues[] = $aQueue;
                }
            }else{
                $updatedQueues = $computeDescription->batchQueues;
            }
            $updatedQueues[] = CRUtilities::createQueueObject($queue);
            $computeDescription->batchQueues = $updatedQueues;
            $computeResource = CRUtilities::register_or_update_compute_resource($computeDescription, true);
            //var_dump( $computeResource); exit;
            $tabName = "#tab-queues";
        } else if (Input::get("cr-edit") == "delete-queue") {
            CRUtilities::deleteQueue(Input::get("crId"), Input::get("queueName"));
            $tabName = "#tab-queues";
        } else if (Input::get("cr-edit") == "fileSystems") {
            $computeDescription = CRUtilities::get_compute_resource(Input::get("crId"));
            $computeDescription->fileSystems = array_filter(Input::get("fileSystems"), "trim");
            $computeResource = CRUtilities::register_or_update_compute_resource($computeDescription, true);

            $tabName = "#tab-filesystem";
        } else if (Input::get("cr-edit") == "jsp" || Input::get("cr-edit") == "edit-jsp") /* Add / Modify a Job Submission Interface */ {
            $update = false;
            if (Input::get("cr-edit") == "edit-jsp")
                $update = true;

            $jobSubmissionInterface = CRUtilities::create_or_update_JSIObject(Input::all(), $update);

            $tabName = "#tab-jobSubmission";
        } else if (Input::get("cr-edit") == "jsi-priority") {
            $inputs = Input::all();
            $computeDescription = CRUtilities::get_compute_resource(Input::get("crId"));
            foreach ($computeDescription->jobSubmissionInterfaces as $index => $jsi) {
                foreach ($inputs["jsi-id"] as $idIndex => $jsiId) {
                    if ($jsiId == $jsi->jobSubmissionInterfaceId) {
                        $computeDescription->jobSubmissionInterfaces[$index]->priorityOrder = $inputs["jsi-priority"][$idIndex];
                        break;
                    }
                }
            }
            $computeResource = CRUtilities::register_or_update_compute_resource($computeDescription, true);

            return 1; //currently done by ajax.
        } else if (Input::get("cr-edit") == "dmp" || Input::get("cr-edit") == "edit-dmi") /* Add / Modify a Data Movement Interface */ {
            $update = false;
            if (Input::get("cr-edit") == "edit-dmi")
                $update = true;
            $dataMovementInterface = CRUtilities::create_or_update_DMIObject(Input::all(), $update);

            $tabName = "#tab-dataMovement";
        } else if (Input::get("cr-edit") == "dmi-priority") {
            $inputs = Input::all();
            $computeDescription = CRUtilities::get_compute_resource(Input::get("crId"));
            foreach ($computeDescription->dataMovementInterfaces as $index => $dmi) {
                foreach ($inputs["dmi-id"] as $idIndex => $dmiId) {
                    if ($dmiId == $dmi->dataMovementInterfaceId) {
                        $computeDescription->dataMovementInterfaces[$index]->priorityOrder = $inputs["dmi-priority"][$idIndex];
                        break;
                    }
                }
            }
            $computeResource = CRUtilities::register_or_update_compute_resource($computeDescription, true);

            return 1; //currently done by ajax.
        } else if (Input::get("cr-edit") == "enableReporting") {
            $inputs = Input::all();
            $computeDescription = CRUtilities::get_compute_resource(Input::get("crId"));
            //var_dump( $computeDescription); exit;
            if( isset( $inputs["gatewayUsageReporting"]) && $inputs["gatewayUsageReporting"] == 1){
                $computeDescription->gatewayUsageReporting = true;
                $computeDescription->gatewayUsageModuleLoadCommand = $inputs["gatewayUsageModuleLoadCommand"];
                $computeDescription->gatewayUsageExecutable = $inputs["gatewayUsageExecutable"];

            }
            else{
                $computeDescription->gatewayUsageReporting = false;
                $computeDescription->gatewayUsageModuleLoadCommand = null;
                $computeDescription->gatewayUsageExecutable = null;
            }
            //var_dump( $computeDescription); exit;
            $computeResource = CRUtilities::register_or_update_compute_resource($computeDescription, true);
            $tabName = "#tab-reporting";
        }

        return Redirect::to("cr/edit?crId=" . Input::get("crId") . $tabName);
    }