summaryrefslogtreecommitdiff
path: root/trunk/CIAO/DAnCE/Deployment/Deployment_ExecutionManager.idl
blob: 070b6a99100c5991753860c93f00c10d179d590e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
// $Id$
#ifndef EXECUTIONMANAGER_IDL
#define EXECUTIONMANAGER_IDL

#include "DAnCE/Deployment/Deployment.idl"
#include "DAnCE/Deployment/Deployment_DomainApplicationManager.idl"

module Deployment {
  // @@changed
  //   interface ExecutionManager
  //   {
  //     DomainApplicationManager preparePlan (in DeploymentPlan plan,
  //                                           in ResourceCommitmentManager resourceCommitment)
  //       raises (ResourceNotAvailable, PlanError, StartError);
  //     DomainApplicationManagers getManagers ();
  //     void destroyManager (in DomainApplicationManager manager)
  //       raises (StopError);
  //   };
  
  interface ExecutionManager {
    /// @todo ResourceCommitmentManger is missing
    DomainApplicationManager preparePlan (in DeploymentPlan plan,
                                          in boolean commitResources)
      raises (ResourceNotAvailable, PlanError, StartError);

    DomainApplicationManagers getManagers ();

    void destroyManager (in DomainApplicationManager manager)
      raises (StopError);

    /// CIAO Specific extension
    DomainApplicationManager getManager (in string plan_uuid)
      raises (PlanNotExist);

    /// CIAO specific extention
    /// Destroy ApplicationManagers by plan_uuid, the unique semantics of this
    /// operation lies in the fact that if some components are
    /// still up and running, then the ApplicationManagers won't be destroyed.
    void destroyManagerByPlan (in string plan_uuid)
      raises (StopError);

    /// CIAO specific extention
    /// "Get" operation, return the DeploymentPlan
    DeploymentPlan getPlan (in string plan_uuid);

    /// CIAO specific operation to handle dynamic system redeployment
    /// and reconfiguration
    /// This operation could handle dynamic redeployment, and this
    /// is the operation exposed to clients directly. Other
    /// "perform_redeployment" operation defined on DAM and NA
    /// are implementaion details within DAnCE.
    void perform_redeployment (in DeploymentPlan new_plan)
      raises (PlanError,
              InstallationFailure,
              UnknownImplId,
              ImplEntryPointNotFound,
              InvalidConnection,
              InvalidProperty,
              ::Components::RemoveFailure);
  };
};

#endif /* EXECUTIONMANAGER_IDL */