Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
04/11/11 15:32:27 (13 years ago)
Author:
cneumuel
Message:

#1233

  • added GetPlugin service method
  • fixed minor issues with double plugins in database
  • worked on HiveEngine
  • fixed wrong role name for Hive User
  • fixed bug in group assignment of slaves
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/HeuristicLab.Hive-3.4/sources/HeuristicLab.Clients.Hive/3.4/PluginUtil.cs

    r5958 r6000  
    2424using System.IO;
    2525using System.Linq;
     26using System.ServiceModel;
    2627using HeuristicLab.PluginInfrastructure;
    2728
     
    3839    /// <param name="useLocalPlugins">If true, the plugins which are already online are ignored. All local plugins are uploaded, but only once.</param>
    3940    /// <returns></returns>
    40     public static List<Guid> GetPluginDependencies(IHiveService service, IEnumerable<Plugin> onlinePlugins, List<Plugin> alreadyUploadedPlugins, IEnumerable<IPluginDescription> neededPlugins, bool useLocalPlugins) {
     41    public static List<Guid> GetPluginDependencies(IHiveService service, List<Plugin> onlinePlugins, List<Plugin> alreadyUploadedPlugins, IEnumerable<IPluginDescription> neededPlugins, bool useLocalPlugins) {
    4142      var pluginIds = new List<Guid>();
    4243      foreach (var neededPlugin in neededPlugins) {
    43         Plugin foundPlugin = alreadyUploadedPlugins.SingleOrDefault(p => p.Name == neededPlugin.Name && p.Version == neededPlugin.Version);
     44        Plugin foundPlugin = alreadyUploadedPlugins.FirstOrDefault(p => p.Name == neededPlugin.Name && p.Version == neededPlugin.Version);
    4445        if (foundPlugin == null) {
    45           foundPlugin = onlinePlugins.SingleOrDefault(p => p.Name == neededPlugin.Name && p.Version == neededPlugin.Version);
     46          foundPlugin = onlinePlugins.FirstOrDefault(p => p.Name == neededPlugin.Name && p.Version == neededPlugin.Version);
    4647          if (useLocalPlugins || foundPlugin == null) {
    4748            Plugin p = CreatePlugin(neededPlugin, useLocalPlugins);
    4849            List<PluginData> pd = CreatePluginDatas(neededPlugin);
    49             p.Id = service.AddPlugin(p, pd);
    50             alreadyUploadedPlugins.Add(p);
    51             pluginIds.Add(p.Id);
     50            try {
     51              p.Id = service.AddPlugin(p, pd);
     52              alreadyUploadedPlugins.Add(p);
     53              pluginIds.Add(p.Id);
     54            }
     55            catch (FaultException<PluginAlreadyExistsFault> fault) {
     56              onlinePlugins.Add(service.GetPlugin(fault.Detail.Id));
     57            }
    5258          } else {
    5359            pluginIds.Add(foundPlugin.Id);
Note: See TracChangeset for help on using the changeset viewer.