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 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242
|
<?xml version="1.0" encoding="ASCII"?>
<pogoDsl:PogoSystem xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:pogoDsl="http://www.esrf.fr/tango/pogo/PogoDsl">
<classes name="Starter" pogoRevision="9.7">
<description description="This device server is able to control <b>Tango</b> components (database, device servers, clients...).
It is able to start or stop and to report the status of these components." title="Starter for Tango Administration" sourcePath="/root/Starter" language="Cpp" filestogenerate="XMI file,Code files" hasMandatoryProperty="false" hasConcreteProperty="true" hasAbstractCommand="false" hasAbstractAttribute="false">
<inheritances classname="Device_5Impl" sourcePath="../../../templates/AbstractClasses"/>
<identification contact="at esrf.fr - verdier" author="verdier" emailDomain="esrf.fr" classFamily="System" siteSpecific="" platform="All Platforms" bus="Not Applicable" manufacturer="none" reference=""/>
</description>
<classProperties name="AutoRestartDuration" description="If this property is greater than 0, if a server has been running more than the specified value (in minutes), and has failed, it will be restart automatically.">
<type xsi:type="pogoDsl:IntType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>0</DefaultPropValue>
</classProperties>
<classProperties name="LogFileHome" description="The home directory to log servers traces.
For Linux the default value is /var/tmp
For Win32 it is c:\temp">
<type xsi:type="pogoDsl:StringType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</classProperties>
<classProperties name="NbStartupLevels" description="Number of startup levels managed by starter.">
<type xsi:type="pogoDsl:ShortType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>5</DefaultPropValue>
</classProperties>
<classProperties name="ReadInfoDbPeriod" description="Period to read database for new info if not fired from Database server.">
<type xsi:type="pogoDsl:ShortType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</classProperties>
<classProperties name="ServerStartupTimeout" description="Timeout on device server startup in seconds.">
<type xsi:type="pogoDsl:IntType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>1</DefaultPropValue>
</classProperties>
<classProperties name="StartServersAtStartup" description="Skip starting servers at startup if false. It a way to do not have a big re-start of many servers after a power cut.">
<type xsi:type="pogoDsl:BooleanType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>true</DefaultPropValue>
</classProperties>
<classProperties name="MovingMaxDuration" description="If a server is moving during a period more than this value,
the Starter will be switched from MOVING to STANDBY">
<type xsi:type="pogoDsl:IntType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>120</DefaultPropValue>
</classProperties>
<deviceProperties name="AutoRestartDuration" description="If this property is greater than 0, if a server has been running more than the specified value (in minutes), and has failed, it will be restart automatically.">
<type xsi:type="pogoDsl:IntType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>0</DefaultPropValue>
</deviceProperties>
<deviceProperties name="InterStartupLevelWait" description="Time to wait before two startup levels in seconds.">
<type xsi:type="pogoDsl:IntType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>1</DefaultPropValue>
</deviceProperties>
<deviceProperties name="KeepLogFiles" description="Number of log file kept.">
<type xsi:type="pogoDsl:IntType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>3</DefaultPropValue>
</deviceProperties>
<deviceProperties name="LogFileHome" description="The home directory to log servers traces.
For Linux the default value is /var/tmp
For Win32 it is c:\temp">
<type xsi:type="pogoDsl:StringType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</deviceProperties>
<deviceProperties name="ServerStartupTimeout" description="Timeout on device server startup in seconds.">
<type xsi:type="pogoDsl:IntType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>5</DefaultPropValue>
</deviceProperties>
<deviceProperties name="StartDsPath" description="Path to find executable files
to start device servers">
<type xsi:type="pogoDsl:StringVectorType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</deviceProperties>
<deviceProperties name="StartServersAtStartup" description="Skip starting servers at startup if false.">
<type xsi:type="pogoDsl:BooleanType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>true</DefaultPropValue>
</deviceProperties>
<deviceProperties name="WaitForDriverStartup" description="The Starter will wait a bit before starting servers, to be sure than the drivers
are started.This time is in seconds.">
<type xsi:type="pogoDsl:ShortType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>0</DefaultPropValue>
</deviceProperties>
<deviceProperties name="MovingMaxDuration" description="If a server is moving during a period more than this value,
the Starter will be switched from MOVING to STANDBY">
<type xsi:type="pogoDsl:IntType"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<DefaultPropValue>120</DefaultPropValue>
</deviceProperties>
<commands name="State" description="This command gets the device state (stored in its <i>device_state</i> data member) and returns it to the caller." execMethod="dev_state" displayLevel="OPERATOR" polledPeriod="1000">
<argin description="none.">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="State Code">
<type xsi:type="pogoDsl:StateType"/>
</argout>
<status abstract="true" inherited="true" concrete="true" concreteHere="true"/>
</commands>
<commands name="Status" description="This command gets the device status (stored in its <i>device_status</i> data member) and returns it to the caller." execMethod="dev_status" displayLevel="OPERATOR" polledPeriod="0">
<argin description="none.">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="Status description">
<type xsi:type="pogoDsl:ConstStringType"/>
</argout>
<status abstract="true" inherited="true" concrete="true" concreteHere="false"/>
</commands>
<commands name="DevStart" description="Start the specified server." execMethod="dev_start" displayLevel="OPERATOR" polledPeriod="0">
<argin description="Server to be started.">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:VoidType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="DevStop" description="Stop the specified server." execMethod="dev_stop" displayLevel="OPERATOR" polledPeriod="0">
<argin description="Servero be stopped.">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:VoidType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="DevStartAll" description="Start all device servers controlled on the host for the argin level." execMethod="dev_start_all" displayLevel="OPERATOR" polledPeriod="0">
<argin description="Startup level.">
<type xsi:type="pogoDsl:ShortType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:VoidType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="DevStopAll" description="Stop all device servers controlled on the host for the argin level." execMethod="dev_stop_all" displayLevel="OPERATOR" polledPeriod="0">
<argin description="Startup Level.">
<type xsi:type="pogoDsl:ShortType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:VoidType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="DevGetRunningServers" description="Control the running process from property list.
And return the list of the processes which are really running." execMethod="dev_get_running_servers" displayLevel="OPERATOR" polledPeriod="0">
<argin description="True for all servers. False for controlled servers only.">
<type xsi:type="pogoDsl:BooleanType"/>
</argin>
<argout description="List of the processes which are running.">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="DevGetStopServers" description="Control the running process from property list.
And return the list of the processes which are not running." execMethod="dev_get_stop_servers" displayLevel="OPERATOR" polledPeriod="0">
<argin description="True for all servers. False for controlled servers only.">
<type xsi:type="pogoDsl:BooleanType"/>
</argin>
<argout description="List of the processes which are not running.">
<type xsi:type="pogoDsl:StringArrayType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="DevReadLog" description="At server startup, its standard error is redirected to a log file.
This command will read this file and return the read string from the file." execMethod="dev_read_log" displayLevel="OPERATOR" polledPeriod="0">
<argin description="server name and domain (e.g. Starter/corvus)
If argin ==``Starter`` -> return Starter logg file content.
If argin ==``Statistics`` -> return Starter statistics file content.">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="String found in log file.">
<type xsi:type="pogoDsl:ConstStringType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="HardKillServer" description="Hard kill a server (kill -9)" execMethod="hard_kill_server" displayLevel="OPERATOR" polledPeriod="0">
<argin description="Server name">
<type xsi:type="pogoDsl:StringType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:VoidType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="ResetStatistics" description="Reset statistics file." execMethod="reset_statistics" displayLevel="EXPERT" polledPeriod="0">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:VoidType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<commands name="UpdateServersInfo" description="Indicate to the device server than the information about servers to be controlled has been modified.
The device server must read the database to update the servers info list.
If the default case, this command is sent by Database server itself." execMethod="update_servers_info" displayLevel="OPERATOR" polledPeriod="0">
<argin description="">
<type xsi:type="pogoDsl:VoidType"/>
</argin>
<argout description="">
<type xsi:type="pogoDsl:VoidType"/>
</argout>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</commands>
<attributes name="HostState" attType="Scalar" rwType="READ" displayLevel="OPERATOR" polledPeriod="1000" maxX="0" maxY="0" allocReadMember="false">
<dataType xsi:type="pogoDsl:ShortType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<archiveEvent fire="false" libCheckCriteria="false"/>
<dataReadyEvent fire="false" libCheckCriteria="true"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="RunningServers" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="1000" maxX="1024" maxY="0" allocReadMember="false" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<archiveEvent fire="false" libCheckCriteria="false"/>
<dataReadyEvent fire="false" libCheckCriteria="true"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="" label="" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="StoppedServers" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="1000" maxX="1024" maxY="0" allocReadMember="false" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<archiveEvent fire="false" libCheckCriteria="false"/>
<dataReadyEvent fire="false" libCheckCriteria="true"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="Return all the Stopped servers." label="All Stopped Servers" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<attributes name="Servers" attType="Spectrum" rwType="READ" displayLevel="OPERATOR" polledPeriod="1000" maxX="1024" maxY="0" allocReadMember="false" isDynamic="false">
<dataType xsi:type="pogoDsl:StringType"/>
<changeEvent fire="false" libCheckCriteria="false"/>
<archiveEvent fire="false" libCheckCriteria="false"/>
<dataReadyEvent fire="false" libCheckCriteria="true"/>
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
<properties description="Return all registered servers for this host.
Server names are followed by: [states] [controlled] [level] [nb instances]
If nb instances >1 a warning will be displayed in Astor" label="Servers" unit="" standardUnit="" displayUnit="" format="" maxValue="" minValue="" maxAlarm="" minAlarm="" maxWarning="" minWarning="" deltaTime="" deltaValue=""/>
</attributes>
<states name="UNKNOWN" description="This device server has NOT been correctly initialised.">
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</states>
<states name="ON" description="All controlled servers are running.">
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</states>
<states name="ALARM" description="At least one controlled device server is not running.">
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</states>
<states name="MOVING" description="The Sarter is starting servers.">
<status abstract="false" inherited="false" concrete="true" concreteHere="true"/>
</states>
<preferences docHome="./doc_html" makefileHome="$(TANGO_HOME)"/>
<additionalFiles name="CheckProcessUtil" path="/mntdirect/_segfs/tango/cppserver/admin/starter/CheckProcessUtil.cpp"/>
<additionalFiles name="PingThread" path="/mntdirect/_segfs/tango/cppserver/admin/starter/PingThread.cpp"/>
<additionalFiles name="StarterUtil" path="/mntdirect/_segfs/tango/cppserver/admin/starter/StarterUtil.cpp"/>
<additionalFiles name="StartProcessThread" path="/mntdirect/_segfs/tango/cppserver/admin/starter/StartProcessThread.cpp"/>
</classes>
</pogoDsl:PogoSystem>
|