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 {
00096 void start_container(
00097 in string container_type,
00098 in string container_name,
00099 in short instance_number,
00100 in ACS::stringSeq type_modifiers,
00101 in string flags)
00102 raises (acsdaemonErrType::FailedToStartContainerEx, ACSErrTypeCommon::BadParameterEx);
00103
00107 void start_container_sync(
00108 in string container_type,
00109 in string container_name,
00110 in short instance_number,
00111 in ACS::stringSeq type_modifiers,
00112 in string flags)
00113 raises (acsdaemonErrType::FailedToStartContainerEx, ACSErrTypeCommon::BadParameterEx);
00114
00123 void stop_container(in string container_name,
00124 in short instance_number,
00125 in string flags)
00126 raises (acsdaemonErrType::FailedToStopContainerEx, ACSErrTypeCommon::BadParameterEx);
00127
00131 void stop_container_sync(in string container_name,
00132 in short instance_number,
00133 in string flags)
00134 raises (acsdaemonErrType::FailedToStopContainerEx, ACSErrTypeCommon::BadParameterEx);
00135
00136
00137
00145 void shutdown() raises (maciErrType::NoPermissionEx);
00146 };
00147
00148
00152
00156 const string servicesDaemonServiceName = "ACSServicesDaemon";
00157
00164 const string systemNotificationServiceDefault = "NotifyEventChannelFactory";
00165
00172 const string systemNotificationServiceLogging = "LoggingNotifyEventChannelFactory";
00173
00180 const string systemNotificationServiceAlarms = "AlarmNotifyEventChannelFactory";
00181
00188 const string systemNotificationServiceMonitorarchive = "ArchiveNotifyEventChannelFactory";
00189
00195 typedef string services_definition_xml;
00196
00197
00202 interface DaemonSequenceCallback : ACS::OffShoot
00203 {
00207 void done(in ACSErr::Completion comp);
00208
00212 void working(in string service, in string host, in short instance_number, in ACSErr::Completion comp);
00213 };
00214
00215
00224 interface ServiceDefinitionBuilder : ACS::OffShoot
00225 {
00229 readonly attribute short acs_instance_number;
00230
00237 void add_naming_service(in string host) raises (ACSErrTypeCommon::BadParameterEx);
00238
00246 void add_notification_service(in string name, in string host) raises (ACSErrTypeCommon::BadParameterEx);
00247
00255 void add_xml_cdb(in string host, in boolean recovery, in string xml_cdb_dir) raises (ACSErrTypeCommon::BadParameterEx);
00256
00264 void add_rdb_cdb(in string host, in boolean recovery, in string config_name) raises (ACSErrTypeCommon::BadParameterEx);
00265
00274 void add_manager(in string host, in string domain, in boolean recovery) raises (ACSErrTypeCommon::BadParameterEx);
00275
00282 void add_acs_log(in string host) raises (ACSErrTypeCommon::BadParameterEx);
00283
00291 void add_logging_service(in string host, in string name) raises (ACSErrTypeCommon::BadParameterEx);
00292
00304 void add_interface_repository(in string host, in boolean load, in boolean wait_load) raises (ACSErrTypeCommon::BadParameterEx);
00305
00320 void add_services_definition(in services_definition_xml definition) raises (ACSErrTypeCommon::BadParameterEx);
00321
00331 boolean is_valid(out string error_description);
00332
00344 services_definition_xml get_services_definition();
00345
00352 void add_alarm_service(in string host) raises (ACSErrTypeCommon::BadParameterEx);
00353
00361 void close();
00362
00363 };
00364
00365
00369 enum ServiceState { NOT_EXISTING, DEFUNCT, DEGRADED, RUNNING };
00370
00371 struct ServiceInfo {
00372 string service_type;
00373 string service_name;
00374 string service_reference;
00375 };
00376
00377 typedef sequence<ServiceInfo> ServiceInfoSeq;
00378
00382 interface ImpBase
00383 {
00387 void set_configuration_reference(in short instance_number, in ServiceInfoSeq services_info);
00388
00396 boolean ping();
00397
00405 oneway void shutdown();
00406 };
00407
00408
00409
00413 interface NamingServiceSpell
00414 {
00423 void start_naming_service(in DaemonCallback callback, in short instance_number)
00424 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00425
00434 void stop_naming_service(in DaemonCallback callback, in short instance_number)
00435 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00436 };
00437
00441 interface NamingServiceImp : ImpBase, NamingServiceSpell
00442 {
00448 ServiceState get_service_status(in short instance_number)
00449 raises (ACSErrTypeCommon::BadParameterEx);
00450 };
00451
00452
00456 interface NotificationServiceSpell
00457 {
00470 void start_notification_service(in string name, in DaemonCallback callback, in short instance_number)
00471 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00472
00482 void stop_notification_service(in string name, in DaemonCallback callback, in short instance_number)
00483 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00484
00485 };
00486
00487
00491 interface NotificationServiceImp : ImpBase, NotificationServiceSpell
00492 {
00499 ServiceState get_service_status(in string name, in short instance_number)
00500 raises (ACSErrTypeCommon::BadParameterEx);
00501 };
00502
00506 interface CDBSpell
00507 {
00508
00519 void start_xml_cdb(in DaemonCallback callback, in short instance_number, in boolean recovery, in string xml_cdb_dir)
00520 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00521
00532 void start_rdb_cdb(in DaemonCallback callback, in short instance_number, in boolean recovery, in string config_name)
00533 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00534
00543 void stop_cdb(in DaemonCallback callback, in short instance_number)
00544 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00545
00546 };
00547
00551 interface CDBImp : ImpBase, CDBSpell
00552 {
00558 ServiceState get_service_status(in short instance_number)
00559 raises (ACSErrTypeCommon::BadParameterEx);
00560 };
00561
00565 interface ManagerSpell
00566 {
00578 void start_manager(in string domain, in DaemonCallback callback, in short instance_number, in boolean recovery)
00579 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00580
00589 void stop_manager(in string domain, in DaemonCallback callback, in short instance_number)
00590 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00591
00592 };
00593
00597 interface ManagerImp : ImpBase, ManagerSpell
00598 {
00604 ServiceState get_service_status(in short instance_number)
00605 raises (ACSErrTypeCommon::BadParameterEx);
00606 };
00607
00608
00612 interface ACSLogSpell
00613 {
00623 void start_acs_log(in DaemonCallback callback, in short instance_number)
00624 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00625
00634 void stop_acs_log(in DaemonCallback callback, in short instance_number)
00635 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00636
00637 };
00638
00642 interface ACSLogImp : ImpBase, ACSLogSpell
00643 {
00649 ServiceState get_service_status(in short instance_number)
00650 raises (ACSErrTypeCommon::BadParameterEx);
00651 };
00652
00653
00657 interface LoggingServiceSpell
00658 {
00668 void start_logging_service(in string name, in DaemonCallback callback, in short instance_number)
00669 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00670
00680 void stop_logging_service(in string name, in DaemonCallback callback, in short instance_number)
00681 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00682
00683 };
00684
00688 interface LoggingServiceImp : ImpBase, LoggingServiceSpell
00689 {
00696 ServiceState get_service_status(in string name, in short instance_number)
00697 raises (ACSErrTypeCommon::BadParameterEx);
00698 };
00699
00703 interface InterfaceRepositorySpell
00704 {
00717 void start_interface_repository(in boolean load, in boolean wait_load, in DaemonCallback callback, in short instance_number)
00718 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00719
00728 void stop_interface_repository(in DaemonCallback callback, in short instance_number)
00729 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00730
00731 };
00732
00736 interface InterfaceRepositoryImp : ImpBase, InterfaceRepositorySpell
00737 {
00743 ServiceState get_service_status(in short instance_number)
00744 raises (ACSErrTypeCommon::BadParameterEx);
00745 };
00746
00750 interface AlarmServiceSpell
00751 {
00760 void start_alarm_service(in DaemonCallback callback, in short instance_number)
00761 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceAlreadyRunningEx);
00762
00771 void stop_alarm_service(in DaemonCallback callback, in short instance_number)
00772 raises (ACSErrTypeCommon::BadParameterEx, acsdaemonErrType::ServiceNotRunningEx);
00773 };
00774
00778 interface AlarmServiceImp : ImpBase, AlarmServiceSpell
00779 {
00785 ServiceState get_service_status(in short instance_number)
00786 raises (ACSErrTypeCommon::BadParameterEx);
00787 };
00788
00823 interface ServicesDaemon :
00824 NamingServiceSpell, NotificationServiceSpell, CDBSpell,
00825 ManagerSpell, ACSLogSpell, LoggingServiceSpell, InterfaceRepositorySpell, AlarmServiceSpell
00826 {
00839 ServiceDefinitionBuilder create_service_definition_builder(in short instance_number)
00840 raises (ACSErrTypeCommon::BadParameterEx, ACSErrTypeCommon::NoResourcesEx);
00841
00862 void start_services(in services_definition_xml definition, in boolean reuse_services, in DaemonSequenceCallback callback)
00863 raises (ACSErrTypeCommon::BadParameterEx);
00864
00879 void stop_services(in services_definition_xml definition, in DaemonSequenceCallback callback)
00880 raises (ACSErrTypeCommon::BadParameterEx);
00881
00891 void start_acs(
00892 in DaemonSequenceCallback callback,
00893 in short instance_number,
00894 in string flags)
00895 raises (ACSErrTypeCommon::BadParameterEx);
00896
00906 void stop_acs(
00907 in DaemonSequenceCallback callback,
00908 in short instance_number,
00909 in string flags)
00910 raises (ACSErrTypeCommon::BadParameterEx);
00911
00921 string status_acs(in short instance_number)
00922 raises (acsdaemonErrType::FailedToGetAcsStatusEx);
00923
00931 void shutdown() raises (maciErrType::NoPermissionEx);
00932
00936 void set_configuration_reference(in short instance_number, in ServiceInfoSeq services_info);
00937 };
00938
00939 };
00940
00941 #endif