00001 #ifndef _ACSDAEMON_IDL_
00002 #define _ACSDAEMON_IDL_
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034 #include <acscommon.idl>
00035 #include <acscomponent.idl>
00036 #include <ACSErrTypeCommon.idl>
00037 #include <maciErrType.idl>
00038 #include <acsdaemonErrType.idl>
00039
00040 #pragma prefix "alma"
00041
00046 module acsdaemon
00047 {
00051
00059 interface DaemonCallback : ACS::OffShoot
00060 {
00064 void done(in ACSErr::Completion comp);
00065
00069 void working(in ACSErr::Completion comp);
00070 };
00071
00072
00076 const string containerDaemonServiceName = "ACSContainerDaemon";
00077
00078
00084 interface ContainerDaemon
00085 {
00095 void start_container(
00096 in string container_type,
00097 in string container_name,
00098 in short instance_number,
00099 in ACS::stringSeq type_modifiers,
00100 in string flags)
00101 raises (acsdaemonErrType::FailedToStartContainerEx, ACSErrTypeCommon::BadParameterEx);
00109 void stop_container(in string container_name,
00110 in short instance_number,
00111 in string flags)
00112 raises (acsdaemonErrType::FailedToStopContainerEx, ACSErrTypeCommon::BadParameterEx);
00120 void shutdown() raises (maciErrType::NoPermissionEx);
00121 };
00122
00123
00127
00131 const string servicesDaemonServiceName = "ACSServicesDaemon";
00132
00139 const string systemNotificationServiceDefault = "NotifyEventChannelFactory";
00140
00147 const string systemNotificationServiceLogging = "LoggingNotifyEventChannelFactory";
00148
00155 const string systemNotificationServiceAlarms = "AlarmNotifyEventChannelFactory";
00156
00163 const string systemNotificationServiceMonitorarchive = "ArchiveNotifyEventChannelFactory";
00164
00170 typedef string services_definition_xml;
00171
00172
00177 interface DaemonSequenceCallback : ACS::OffShoot
00178 {
00182 void done(in ACSErr::Completion comp);
00183
00187 void working(in string service, in string host, in short instance_number, in ACSErr::Completion comp);
00188 };
00189
00190
00199 interface ServiceDefinitionBuilder : ACS::OffShoot
00200 {
00204 readonly attribute short acs_instance_number;
00205
00212 void add_naming_service(in string host) raises (ACSErrTypeCommon::BadParameterEx);
00213
00221 void add_notification_service(in string name, in string host) raises (ACSErrTypeCommon::BadParameterEx);
00222
00231 void add_xml_cdb(in string host, in boolean recovery, in string xml_cdb_dir) raises (ACSErrTypeCommon::BadParameterEx);
00232
00241 void add_manager(in string host, in string domain, in boolean recovery) raises (ACSErrTypeCommon::BadParameterEx);
00242
00249 void add_acs_log(in string host) raises (ACSErrTypeCommon::BadParameterEx);
00250
00258 void add_logging_service(in string host, in string name) raises (ACSErrTypeCommon::BadParameterEx);
00259
00271 void add_interface_repository(in string host, in boolean load, in boolean wait_load) raises (ACSErrTypeCommon::BadParameterEx);
00272
00287 void add_services_definition(in services_definition_xml definition) raises (ACSErrTypeCommon::BadParameterEx);
00288
00298 boolean is_valid(out string error_description);
00299
00311 services_definition_xml get_services_definition();
00312
00319 void add_alarm_service(in string host) raises (ACSErrTypeCommon::BadParameterEx);
00320
00328 void close();
00329
00330 };
00331
00332
00336 enum ServiceState { NOT_EXISTING, DEFUNCT, DEGRADED, RUNNING };
00337
00341 interface ImpBase
00342 {
00347 void set_manager_reference(in short instance_number, in string ref);
00348
00356 boolean ping();
00357
00365 oneway void shutdown();
00366 };
00367
00368
00369
00373 interface NamingServiceSpell
00374 {
00383 void start_naming_service(in DaemonCallback callback, in short instance_number)
00384 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00385
00394 void stop_naming_service(in DaemonCallback callback, in short instance_number)
00395 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00396 };
00397
00401 interface NamingServiceImp : ImpBase, NamingServiceSpell
00402 {
00408 ServiceState get_service_status(in short instance_number)
00409 raises (ACSErrTypeCommon::BadParameterEx);
00410 };
00411
00412
00416 interface NotificationServiceSpell
00417 {
00430 void start_notification_service(in string name, in DaemonCallback callback, in short instance_number)
00431 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00432
00442 void stop_notification_service(in string name, in DaemonCallback callback, in short instance_number)
00443 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00444
00445 };
00446
00447
00451 interface NotificationServiceImp : ImpBase, NotificationServiceSpell
00452 {
00459 ServiceState get_service_status(in string name, in short instance_number)
00460 raises (ACSErrTypeCommon::BadParameterEx);
00461 };
00462
00466 interface CDBSpell
00467 {
00468
00483 void start_xml_cdb(in DaemonCallback callback, in short instance_number, in boolean recovery, in string xml_cdb_dir)
00484 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00485
00494 void stop_cdb(in DaemonCallback callback, in short instance_number)
00495 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00496
00497 };
00498
00502 interface CDBImp : ImpBase, CDBSpell
00503 {
00509 ServiceState get_service_status(in short instance_number)
00510 raises (ACSErrTypeCommon::BadParameterEx);
00511 };
00512
00516 interface ManagerSpell
00517 {
00529 void start_manager(in string domain, in DaemonCallback callback, in short instance_number, in boolean recovery)
00530 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00531
00540 void stop_manager(in string domain, in DaemonCallback callback, in short instance_number)
00541 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00542
00543 };
00544
00548 interface ManagerImp : ImpBase, ManagerSpell
00549 {
00555 ServiceState get_service_status(in short instance_number)
00556 raises (ACSErrTypeCommon::BadParameterEx);
00557 };
00558
00559
00563 interface ACSLogSpell
00564 {
00574 void start_acs_log(in DaemonCallback callback, in short instance_number)
00575 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00576
00585 void stop_acs_log(in DaemonCallback callback, in short instance_number)
00586 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00587
00588 };
00589
00593 interface ACSLogImp : ImpBase, ACSLogSpell
00594 {
00600 ServiceState get_service_status(in short instance_number)
00601 raises (ACSErrTypeCommon::BadParameterEx);
00602 };
00603
00604
00608 interface LoggingServiceSpell
00609 {
00619 void start_logging_service(in string name, in DaemonCallback callback, in short instance_number)
00620 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00621
00631 void stop_logging_service(in string name, in DaemonCallback callback, in short instance_number)
00632 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00633
00634 };
00635
00639 interface LoggingServiceImp : ImpBase, LoggingServiceSpell
00640 {
00647 ServiceState get_service_status(in string name, in short instance_number)
00648 raises (ACSErrTypeCommon::BadParameterEx);
00649 };
00650
00654 interface InterfaceRepositorySpell
00655 {
00668 void start_interface_repository(in boolean load, in boolean wait_load, in DaemonCallback callback, in short instance_number)
00669 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00670
00679 void stop_interface_repository(in DaemonCallback callback, in short instance_number)
00680 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00681
00682 };
00683
00687 interface InterfaceRepositoryImp : ImpBase, InterfaceRepositorySpell
00688 {
00694 ServiceState get_service_status(in short instance_number)
00695 raises (ACSErrTypeCommon::BadParameterEx);
00696 };
00697
00701 interface AlarmServiceSpell
00702 {
00711 void start_alarm_service(in DaemonCallback callback, in short instance_number)
00712 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00713
00722 void stop_alarm_service(in DaemonCallback callback, in short instance_number)
00723 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00724 };
00725
00729 interface AlarmServiceImp : ImpBase, AlarmServiceSpell
00730 {
00736 ServiceState get_service_status(in short instance_number)
00737 raises (ACSErrTypeCommon::BadParameterEx);
00738 };
00739
00774 interface ServicesDaemon :
00775 NamingServiceSpell, NotificationServiceSpell, CDBSpell,
00776 ManagerSpell, ACSLogSpell, LoggingServiceSpell, InterfaceRepositorySpell, AlarmServiceSpell
00777 {
00790 ServiceDefinitionBuilder create_service_definition_builder(in short instance_number)
00791 raises (ACSErrTypeCommon::BadParameterEx, ACSErrTypeCommon::NoResourcesEx);
00792
00813 void start_services(in services_definition_xml definition, in boolean reuse_services, in DaemonSequenceCallback callback)
00814 raises (ACSErrTypeCommon::BadParameterEx);
00815
00830 void stop_services(in services_definition_xml definition, in DaemonSequenceCallback callback)
00831 raises (ACSErrTypeCommon::BadParameterEx);
00832
00842 void start_acs(
00843 in DaemonSequenceCallback callback,
00844 in short instance_number,
00845 in string flags)
00846 raises (ACSErrTypeCommon::BadParameterEx);
00847
00857 void stop_acs(
00858 in DaemonSequenceCallback callback,
00859 in short instance_number,
00860 in string flags)
00861 raises (ACSErrTypeCommon::BadParameterEx);
00862
00872 string status_acs(in short instance_number)
00873 raises (acsdaemonErrType::FailedToGetAcsStatusEx);
00874
00882 void shutdown() raises (maciErrType::NoPermissionEx);
00883
00888 void set_manager_reference(in short instance_number, in string ref);
00889
00890 };
00891
00892 };
00893
00894 #endif