diff options
Diffstat (limited to 'TAO/CIAO/ciao/Deployment.idl')
-rw-r--r-- | TAO/CIAO/ciao/Deployment.idl | 161 |
1 files changed, 145 insertions, 16 deletions
diff --git a/TAO/CIAO/ciao/Deployment.idl b/TAO/CIAO/ciao/Deployment.idl index f5ff99919e3..f37d71aa520 100644 --- a/TAO/CIAO/ciao/Deployment.idl +++ b/TAO/CIAO/ciao/Deployment.idl @@ -1,19 +1,35 @@ // $Id$ -#ifndef DEPLOYMENT_IDL -#define DEPLOYMENT_IDL - -#include "Deployment_Data.idl" #include "Packaging_Data.idl" -#include "Target_Data.idl" #include "ServerResources.idl" module Deployment { + exception ResourceNotAvailable { + string name; + string resourceType; + string propertyName; + string elementName; + string resourceName; + }; + + exception PlanError { + string name; + string reason; + }; + exception InvalidProperty { string name; string reason; }; + exception NameExists { + }; + + exception PackageError { + string source; + string reason; + }; + exception NoSuchName { }; @@ -23,24 +39,137 @@ module Deployment { exception InvalidReference { }; - // Below exception types are CIAO specific - exception PlanNotExist { + interface ApplicationManager { + Application startLaunch (in Properties configProperty, out Connections providedReference, in boolean start) + raises (ResourceNotAvailable, StartError, InvalidProperty); + void destroyApplication (in Application app) + raises (StopError); }; - // CIAO specific struct type used for shared component management - // mapping the name of component to its plan_uuid - struct ComponentPlan + typedef sequence < Application > Applications; + + interface DomainApplicationManager { - string name; - string plan_uuid; + DeploymentPlan getPlan (); + void startLaunch (in Properties configProperty, in boolean start) + raises (ResourceNotAvailable, StartError, InvalidProperty); + void finishLaunch (in boolean start) + raises (StartError, InvalidConnection); + void start () + raises (StartError); + void destroyApplication () + raises (StopError); + void destroyManager () + raises (StopError); }; - typedef sequence < ComponentPlan > ComponentPlans; + typedef sequence < DomainApplicationManager > DomainApplicationManagers; - typedef sequence < Application > Applications; + interface ExecutionManager { + DomainApplicationManager preparePlan (in DeploymentPlan plan, in boolean commitResources) + raises (ResourceNotAvailable, PlanError, StartError); + DomainApplicationManagers getManagers (); + void destroyManager (in DomainApplicationManager manager) + raises (StopError); + }; + + interface TargetManager { + Domain getAllResources (); + Domain getAvailableResources (); + void commitResources (in DeploymentPlan plan) + raises (ResourceNotAvailable, PlanError); + void releaseResources (in DeploymentPlan argname); + void updateDomain (in ::CORBA::StringSeq elements, in Domain domainSubset, in DomainUpdateKind updateKind); + }; interface Logger { }; -}; -#endif /* DEPLOYMENT_IDL */ + interface NodeApplicationManager : + ApplicationManager + { + }; + + interface NodeManager { + void joinDomain (in Domain ciao_domain, in TargetManager manager, in Logger log); + void leaveDomain (); + NodeApplicationManager preparePlan (in DeploymentPlan plan) + raises (StartError, PlanError); + void destroyManager (in NodeApplicationManager appManager) + raises (StopError, InvalidReference); + }; + + interface RepositoryManager { + void installPackage (in string installationName, in string location) + raises (NameExists, PackageError); + void createPackage (in string installationName, in PackageConfiguration package, in string baseLocation, in boolean replace) + raises (NameExists, PackageError); + PackageConfiguration findPackageByName (in string name) + raises (NoSuchName); + PackageConfiguration findPackageByUUID (in string UUID) + raises (NoSuchName); + ::CORBA::StringSeq findNamesByType (in string type); + ::CORBA::StringSeq getAllNames (); + ::CORBA::StringSeq getAllTypes (); + void deletePackage (in string installationName) + raises (NoSuchName); + }; + + +//***************************************new_RepositoryManager ONWARDS***************************************** + + + typedef sequence<octet> Artifact; + typedef sequence<octet> Package; + + exception NoPlan { + }; + + enum Platform { + Win32, + Unix, + Linux, + Solaris, + Vxworks, + UNDEF + }; + + struct Implementation + { + Platform the_platform; + string name; + Artifact the_implementation; + }; + + typedef sequence<Implementation> Implementations; + + interface new_RepositoryManager + { + void installPackage (in string installationName, in Package the_package, in boolean replace) + raises (NameExists, PackageError); + + DeploymentPlan retrievePlan (in string packageName) + raises (NoPlan); + + Package findPackageByName (in string name) + raises (NoSuchName); + + Implementation findImplementationByName (in string implementation_name, in string package_name) + raises (NoSuchName); + + Package findPackageByUUID (in string UUID) + raises (NoSuchName); + + Implementation findImplementationByUUID (in string UUID) + raises (NoSuchName); + + + //::CORBA::StringSeq findNamesByType (in string type); + //::CORBA::StringSeq getAllTypes (); + + ::CORBA::StringSeq getAllPackageNames (); + + void deletePackage (in string installationName) + raises (NoSuchName); + }; +}; |