Skip to content

Archive Trac gsoc2015 ak todo

madscatt edited this page Jun 20, 2026 · 1 revision

Gsoc2015 Ak Todo

Legacy Trac archive page imported from gsoc2015_ak_todo. Source: https://genapp.rocks/wiki/wiki/gsoc2015_ak_todo. Review age, links, and examples before treating as current.

Additional completed

  • Register.java & ExperimentUtils.java
    • register application deployment for each appconfig:resources:airavata:resources:host with appconfig:resources:airavata:resources:executable_path
    • you need to verify the executable path before skipping an application deployment registry as this could change in appconfig.json (or directives.json)
    • fix computational resource scheduling bug
    • e.g. my temporary fix was
       Experiment genAppExperiment =
               ExperimentModelUtil.createSimpleExperiment(projectId, OWNER, expName, "GenApp Module Experiment", appId, exInputs);
       genAppExperiment.setExperimentOutputs(exOut);
       Map<String, String> cmrf = airavataClient.getAvailableAppInterfaceComputeResources(appId);
       // get 1st cmrf entry & use that

       String use_server_host = THRIFT_SERVER_HOST;
       {
           Iterator it = cmrf.entrySet().iterator();
           if(it.hasNext()){
              Map.Entry pair = (Map.Entry)it.next();
              use_server_host = (String) pair.getKey();
              it.remove(); // avoids a ConcurrentModificationException
           }
       }

       //       if(cmrf.containsValue(use_server_host)){
       ComputationalResourceScheduling scheduling = ExperimentModelUtil.createComputationResourceScheduling(
                   use_server_host, 1, 1, 1, "normal", 30, 0, 1, PROJECT_ACCOUNT_NAME);
       scheduling.setResourceHostId(use_server_host);
       UserConfigurationData userConfigurationData = new UserConfigurationData();
       userConfigurationData.setAiravataAutoSchedule(false);
       userConfigurationData.setOverrideManualScheduledParams(false);
       userConfigurationData.setComputationalResourceScheduling(scheduling);
       genAppExperiment.setUserConfigurationData(userConfigurationData);
        //       }
  • but this isn't perfect. use_server_host should never be THRIFT_SERVER_HOST and if there is more than one cmrf available, call a routine to choose the best one (could be a dummy random or first selector for now)

Additional work left

  • java
  • move add/airavata to genapp processed code
    • allows usage of genapp __~directives for debugging options etc.
    • add a command line option to force reregistering
    • this logic also should be done for html5/php

Clone this wiki locally