sms enhancements on the client side
DESCRIPTION
SMS Enhancements on the Client Side. V é ronique Lef é bure ELFms Meeting 23 rd of August 2005. Outline. SMS Design Details Reminder What is new CVS and RPM’s CDB Templates. SMS Use Cases Diagram from http://leaf.web.cern.ch/leaf/doc/SMS-Requirements.pdf. No Change. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/1.jpg)
SMSEnhancements on the Client Side
Véronique Lefébure
ELFms Meeting
23rd of August 2005
![Page 2: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/2.jpg)
Outline
• SMS Design Details– Reminder – What is new
• CVS and RPM’s
• CDB Templates
![Page 3: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/3.jpg)
SMS Use CasesDiagram from http://leaf.web.cern.ch/leaf/doc/SMS-Requirements.pdf
Service Manager
System AdministratorOperator
Manage State Repair
Retire
Move
HMS
«uses»
«uses»
«uses»
Install
«uses»
SMS
View State History
No Change
![Page 4: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/4.jpg)
“Set Desired State” SMS Use caseSequence Diagram from
http://leaf.web.cern.ch/leaf/doc/SMS-Design.pdf
[For each node successfully updated in CDB]
[Notification]
loop
[If not provided by command line or environment]
SOAP XML/HTTPS
Validate state/reason
Get credentials from user
sms (cli) smssoap
Get Credentials
opt
sms_set_desired_state
setDesiredState
sms
isAllowed
smsutil Security
ValidateData
confirmation
confirmation
smscdb
setDesiredState
CDBSQL::xml
setStates
results
parse xml
results
results + statuses
results + statuses
notify-nb
execute
send notification
status
ref
1) Authorisation
2) CDBSQL update
3) Notify Host(s)
4) Return Results
No Change
![Page 5: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/5.jpg)
SMS Notification Sequence Diagram from
http://leaf.web.cern.ch/leaf/doc/SMS-Design.pdf
[state changed]
[state = ‘standby’ or ‘maintenance’]
[state = ‘production’, reason = ‘development’]
[state = ‘production’, reason != ‘development’]
[check-this-host ok]
opt
notify-nb not.d
create socket + listen
connect to socket
'change state'
close socket
TCP
status
sms-set-state CDBSQL::xml
execute
XML/HTTPS
getState
state
Write state.desired + reason files
SetToDesiredStateNCM::Check
llines
changes
execute
Read state.desired file
touch flag files
status
alt
remove flag files except nomorealarms
run check-this-host
remove flag files
opt
Enhancements
here
“old” SetToDesiredState.pl:For FS-managed clusters only
1) Notify Host
2) Get State Info from CDBSQL
3) Act on the Host
![Page 6: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/6.jpg)
What has changed(on the client side)
• Before: sms-set-state.pl would call SetToDesiredState.pl which was implemented according to FS clusters needs
• Now: sms-set-state.pl calls SetToDesiredState which in turns looks for the appropriate script to be run according to a configuration parameter defined in CDB
![Page 7: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/7.jpg)
How it works now, on the client: /usr/sbin/sms-set-state.pl
1. Gets XML data from CDBSQL and creates or updates 1. /etc/state.desired2. /etc/state.desired.reasons
2. Runs /usr/sbin/SetToDesiredState –-state=<state> --reason=<reason> which calls the first script found on the host:
1. /usr/sbin/SetToDesiredState.<script_ext> <state> <reason>2. /usr/sbin/SetToDesiredState.<host> <state> <reason> 3. /usr/sbin/SetToDesiredState.<subcluster> <state> <reason>4. /usr/sbin/SetToDesiredState.<cluster> <state> <reason> 5. /usr/sbin/SetToDesiredState.<domain> <state> <reason>6. /usr/sbin/SetToDesiredState.default <state> <reason>
![Page 8: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/8.jpg)
Calling Sequence
Sms-set-state.plSetToDesiredState
SetToDesiredState.<appropriate_extention>
Sms-set-state.pl can be triggered • by SMS • at boot • by hand
CDB Configuration Parameters from
“pro_declaration_component_settodesiredstate”
![Page 9: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/9.jpg)
Settodesiredstate NCM Component
• Reads the “/software/components/settodesiredstate” CDB configuration data
• Updates “/etc/sysconfic/settodesiredstate”:RUN_AT_BOOT="no"
SCRIPT_EXT=
CDB_SUB_CLUSTER=
CDB_CLUSTER="lxplus"
CC_DOMAIN=
![Page 10: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/10.jpg)
/usr/sbin/sms-set-state.pl --helpThe following options are available:
--cfgfile <string> Configuration file for this application--logfile <string> (default: '/var/log/sms.log') log path/filename to use --stateChanger <string> (default: '/usr/sbin/SetToDesiredState') Script that will act on the host --statefile <string> (default: '/etc/state.desired') Where to store the desired state locally on the host --statereasonfile <string> (default: '/etc/state.desired.reasons') Where to store the state reason(s) locally on the host --urlroot <string> (default: 'http://oraweb.cern.ch:9000/pls/cdbsql/xml.getstate') Where to get the state and reasons from
2005/08/22-11:56:44 \[INFO] /usr/sbin/sms-set-state.pl Invoked2005/08/22-11:56:44 \[INFO] Running /usr/sbin/SetToDesiredState \ --state=production2005/08/22-11:56:49 \ [INFO] State set to "production" completed.
![Page 11: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/11.jpg)
/usr/sbin/SetToDesiredState --help
The following options are available:
--cfgfile <string> Configuration file for this application --logfile <string> (default: '/var/log/SetToDesiredState.log') log path/filename to use --reason <string> input reason for state --state <string> input desired state
![Page 12: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/12.jpg)
“SetToDesiredState.default”#!/bin/bash # # SetToDesiredState Default #
STATE=$1 REASON=$2 case $STATE in production) echo "$0: State production: remove /etc/nologin"; rm -f /etc/nologin; ;;
maintenance) echo "$0: State maintenance: doing nothing"; ;;
standby) echo "$0: State standby: doing nothing"; ;;
*) echo "$0: Unknown state \"$STATE\"." ;;
esac
![Page 13: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/13.jpg)
CVS Code and RPM for sms-set-state
• [fio]/fabric/sms-set-state/SRC– SetToDesiredState– SetToDesiredState.default – settodesiredstate.sysconfig – sms-set-state.pl – sms-set-state.rc– sms.logrotate – sms.notd
• [fio]/fabric/sms-set-state/RPM– rpm -ql CERN-CC-sms-set-state :
• /etc/logrotate.d/sms-set-state• /etc/not.d• /etc/not.d/sms-set-state• /etc/rc.d/init.d/sms-set-state• /etc/sysconfig/settodesiredstate• /usr/sbin/SetToDesiredState• /usr/sbin/SetToDesiredState.default• /usr/sbin/sms-set-state.pl
![Page 14: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/14.jpg)
CVS Code and RPM for ncm-settodesiredstate
• [elfms]/elfms/quattor/ncm-components/cern-it-fio/ncm-settodesiredstate:– ChangeLog– LICENSE– MAINTAINER– Makefile– README– config.mk – pro_declaration_component_settodesiredstate.tpl.cin – settodesiredstate.pm.cin – settodesiredstate.pod.cin
• rpm -ql ncm-settodesiredstate– /usr/lib/ncm/config/settodesiredstate– /usr/lib/perl/NCM/Component/settodesiredstate.pm– /usr/share/doc/ncm-settodesiredstate-1.0.9– /usr/share/doc/ncm-settodesiredstate-1.0.9/ChangeLog– /usr/share/doc/ncm-settodesiredstate-1.0.9/LICENSE– /usr/share/doc/ncm-settodesiredstate-1.0.9/MAINTAINER– /usr/share/doc/ncm-settodesiredstate-1.0.9/README– /usr/share/doc/ncm-settodesiredstate-1.0.9/settodesiredstate.pod– /usr/share/doc/pan-templates/components/pro_declaration_component_settodesiredstate.tpl– /usr/share/man/man8/ncm-settodesiredstate.8.gz
![Page 15: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/15.jpg)
SetToDesiredState Scripts for FS clusters
• [fio]/fabric/settodesiredstate-FS/SRC:– SetToDesiredState.lsfmaster – SetToDesiredState.lxbatch– SetToDesiredState.lxbuild– SetToDesiredState.lxdev– SetToDesiredState.lxgate– SetToDesiredState.lxplus– SetToDesiredState.lxserv
• All stored in one RPM “CERN-CC-settodesiredstate-FS”
![Page 16: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/16.jpg)
CDB Templates• pro_declaration_component_settodesiredstate.tpl : declaration template pro_declaration_component_settodesiredstate;
include pro_declaration_component_type; define type component_settodesiredstate_type = { include component_type "run_at_boottime" : string with match (self,'yes|no') "script_ext" ? string }; type "/software/components/settodesiredstate" = component_settodesiredstate_type;
• pro_software_packages_state.tpl: template pro_software_packages_state;
"/software/packages"=pkg_add("CERN-CC-sms-set-state","3.2-6” ,"noarch");
• In pro_software_lxplus_slc3.tpl: include pro_software_packages_state;"/software/packages"=pkg_add("CERN-CC-settodesiredstate-FS","1.0-2“ ,"noarch");
![Page 17: SMS Enhancements on the Client Side](https://reader036.vdocuments.site/reader036/viewer/2022082712/56813af2550346895da37022/html5/thumbnails/17.jpg)
More ?
• Authors/Maintainers/Responsibles are Thorsten and Veronique
• Feedback, wishes, …are welcome