summaryrefslogtreecommitdiff
path: root/TAO/CIAO/ciao/Deployment.idl
diff options
context:
space:
mode:
Diffstat (limited to 'TAO/CIAO/ciao/Deployment.idl')
-rw-r--r--TAO/CIAO/ciao/Deployment.idl161
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);
+ };
+};