Un Sistema di Monitoraggio per il Remote Management

Transcript

Un Sistema di Monitoraggio per il Remote Management
Università degli Studi di Napoli Federico II
Facoltà di Scienze MM.FF.NN.
Corso di Laurea in Informatica
Tesi Sperimentale di Laurea Triennale
Un Sistema di Monitoraggio per il Remote Management
delle attrezzature di un Data Center
Relatori
Candidato
Prof. Guido Russo
Dr. Domenico Del Prete
Anno accademico 2009/2010
Nicola Sergnese
Matricola: 566/2002
Ringraziamenti.
Ringrazio la mia famiglia che mi ha sostenuto in questi anni, specialmente mamma
(che mi segue ancora) e papà (purtroppo mi ha seguito fino a due anni fa), il Prof
Guido Russo per avermi consentito di svolgere questo lavoro di tesi e per la sua piena
disponibilità, il Dott. Domenico Del Prete per avermi seguito con costanza e pazienza,
tutti i compagni e amici conosciuti all'università, in particolare modo il Dott. Crisci
Giovanni e il Dott. Daniele Finelli, per il loro aiuto, nonché i loro genitori per
l'ospitalità che mi è stata data, i ragazzi di S. Maria a Vico, Amedeo, Mimmo, ecc., e
per ultimi non meno importanti Marco Pisa e Paolo Romano che mi hanno sostenuto
in momenti di crisi.
Ultimo ringraziamento, sperando che vada sempre più in alto, va alla S.S.C NAPOLI
che mi diverte nei fine settimana.
Indice generale
1 Introduzione...........................................................................................................................1
2 Come nasce la necessità del monitoraggio per i Data Center.................................................3
2.1 Le Esigenze Del Remote Management Di Un Data Center............................................5
2.2 Le Esigenze Specifiche Del Data Center Atlas...............................................................8
2.3 Idea Progettuale.............................................................................................................13
3 Il Portale User Interface .......................................................................................................19
3.1 Sistema Di Monitoraggio Web: Il Portale Di Integrazione...........................................23
3.2 Web Contnet Portlet......................................................................................................26
3.3 Iframe Portlet.................................................................................................................27
4 Tipologie D'autenticazione Esistenti.....................................................................................30
4.1 Username E Password Statiche O Dinamiche...............................................................33
4.2 Dispositivi Di Memorizzazione Di Chiavi O Certificati...............................................34
4.3 Dispositivi Biometrici;..................................................................................................34
4.4 Unificazione Accessi Per Il Remote Management SSO................................................35
4.5 SSO Utilitazzato Sul Portale OpenSSO........................................................................39
4.6 Oltre SSO: Identity Management..................................................................................41
4.7 Pagine Di Login Dei Remote Web Management..........................................................41
4.7.1 CMC-TC (controllo rack)......................................................................................42
4.7.2 SW3COM ( SWITCHES )....................................................................................45
4.7.3 IMPI( Service Nodes)............................................................................................48
4.7.4 E4 ( storage Elements)...........................................................................................51
4.7.5 ASUS ( storage elements)......................................................................................55
4.7.6 Drac (worker nodes solo dell)...............................................................................58
4.7.7 Centron ( monitoraggio e configurazione privata ) ...........................................64
5 Realizzazione ed Implementazione.......................................................................................66
5.1 Analisi............................................................................................................................66
5.1.1 Requisiti funzionali................................................................................................66
5.1.2 Requisiti non funzionali.........................................................................................66
5.1.3 Di dominio.............................................................................................................66
5.2 Analisi Dei Rischi..........................................................................................................67
5.3 Diagramma Dei Casi D'uso...........................................................................................68
5.4 Tabelle Di Cockburn......................................................................................................69
5.5 Diagramma Di Navigazione..........................................................................................71
5.6 Progettazione & Implementazione................................................................................72
5.6.1 Linguaggi utilizzati................................................................................................72
5.6.2 Sviluppo.................................................................................................................73
5.6.2.1 CMC-TC........................................................................................................74
5.6.2.2 IMPI...............................................................................................................75
5.6.2.3 ASUS..............................................................................................................77
5.6.2.4 E4...................................................................................................................77
5.6.2.5 CENTRON.....................................................................................................77
5.6.2.6 DRAC (solo dell)...........................................................................................79
5.6.2.7 SW3COM......................................................................................................80
5.6.2.8 Pagina SSO Login..........................................................................................82
5.6.2.9 Pagina di selezione servizio...........................................................................84
5.6.3 Integrazione Liferay..............................................................................................91
6 Conclusioni...........................................................................................................................92
7 Appendici .............................................................................................................................93
7.1 Glossario .......................................................................................................................93
7.2 Codice ...........................................................................................................................97
7.3 Codice Pagina Asus.....................................................................................................126
7.4 Codice Pagina E4.......................................................................................................215
8 Sitografia & Bibliografia....................................................................................................227
1
Introduzione
I sistemi informatici sono sempre più presenti negli ambienti domestici e lavorativi e
diventano sempre più potenti e ricchi di funzioni. L'uso di questi sistemi permettono
all'utente, ovunque questi si trovi, di gestire le proprie informazioni in qualsiasi
momento. Tale vantaggi sono sfruttati in particolare da chi ha un bisogno costante di
poter gestire e monitorare tali informazioni non appena se ne presenta la necessità.
In particolare i data center utilizzano dei software per il monitoraggio per tenere
sempre sotto osservazione il funzionamento della propria infrastruttura di rete e dei
servizi che offrono.
È molto importante che i servizi offerti del data center girino costantemente ed
interrottamente e quindi la problematica principale e che tali servizi si possano
interrompere sia per guasti hardware sia per problemi software.
È necessario quindi utilizzare dei corretti sistemi che garantiscano la sicurezza e che
rilevino per tempo un problema hardware, per quanto ciò sia possibile.
La sicurezza è garantita attraverso richiesta di autorizzazioni e utilizzo di certificati
digitali sui servizi. Il fatto che i servizi da monitorare siano in numero elevato ha
portato a un numero elevato di richieste di autorizzazione, quindi l'utente era nella
condizione di dover ricordare le proprie credenziali di autorizzazione per ogni servizio
dato che non obbligatoriamente le stesse.
Il lavoro svolto sul sistema ha portato ad un'analisi per la risoluzione di questo
problema, quindi ad uno studio delle varie tipologie di autenticazione, della
considerazione dei vantaggi e degli svantaggi e del peso che questi aveva sul data
center atals e S.Co.P.E.
Quindi si è arrivato ad applicare la tecnica SSO (Single Sign-On) per poter poter
accedere a una qualsiasi risorsa della rete autenticandosi solo una volta, quindi
Sergnese Nicola 566/2002
Pagina 1 di 228
all'integrazione di tale metodologia SSO a tutti quei servizi che ancora ne erano
sprovvisti.
Infine è stata creata un'interfaccia comune che raggruppi tutti i vari servizi agevolando
quindi l'amministratore nel suo lavoro di monitoraggio e gestione degli stessi.
Sergnese Nicola 566/2002
Pagina 2 di 228
2
Come nasce la necessità del monitoraggio per i Data
Center
Viviamo in quella che si è soliti definire la civiltà dell'informazione e il computer è il
mezzo che rende possibile la counicazione.
Non c'è attività pubblica o privata nella quale non ci sia, l'uso, o in progetto l'utilizzo,
di macchine consone a renderla più sicura e spedita. Non sono solo i calcoli lunghi e
complessi che vengono affidati al computer, ma ogni tipo di operazione che implichi la
registrazione di dati e la ricerca.
Così, mentre aziende come le banche e gli uffici amministrativi, piccoli o grandi,
trovano nei computer uno strumento eccellente, per l'esattezza e la rapidità dei loro
conteggi, le aziende che hanno altri scopi, trovano nel computer la disponibilità dei
dati utili che vi sono stati registrati e che possono essere a ogni momento utilizzati per
decisioni, orientamenti o controlli.
Il computer è non solo una memoria perfetta di informazioni opportune, ma anche un
mezzo per rilevare somiglianze, analogie e rapporti di qualsiasi genere fra gli elementi
nuovi e apparentemente estranei che l'esperienza offre, e quelli di cui esso contiene la
registrazione. Può servire cosi ad avviare ricerche o addirittura costruire sintesi tra
elementi nuovi di scoperte o realizzare teorie per nuove scoperte. È utilissimo quindi
in tutti i campi della scienza, nei quali può mettere in luce nuovi rapporti tra
avvenimenti diversi.
Una idea delle potenzialità dei computer si ha con l'interconnessione in rete dei
computer Internet è la parola "magica" che apre possibilità impensabili fino a pochi
anni fa, consultare testi, visitare musei, lavorare, concludere affari, tenere conferenze,
acquistare beni, servizi, monitorare e gestire apparecchi, tutto questo oggi è possibile
farlo "on line", stando a casa propria e comunicando in pratica con il mondo intero.
Con la ristrutturazione dell'organizzazione del lavoro, di un ufficio, delle attività delle
aziende private, delle attività di uffici amministrativi, delle attività ministeriali, delle
attività bancarie, delle attività scolastiche, dei progetti universitari e non, basata nuovi
Sergnese Nicola 566/2002
Pagina 3 di 228
sistemi computerizzati tutte le operazioni vengono svolte tramite questi.
Con l'aumento della complessità delle reti, della complessità dei software e l'accrescere
del numero di macchine e apparati collegati, diventa sempre più complicato non
commettere errori nel scrivere software inoltre anche i computer sono soggetti ad
errori, possono dipendere da un fattore umano, o
dal fatto che il software
sia
obsoleto, o anche da guasti a livello hardware, come ad esempio la rottura
dell'alimentatore o del hard-disk. La diffusione di tali apparecchiature, in un qualsiasi
ambito, da quello domestico a quello lavorativo, unito alla complessità di gestione, ha
portato alla formazione di persone esperte e specializzate nella gestione, nel controllo e
nella riparazione di tali oggetti.
Queste persone, anche solo per controllare, prima dovevano recarsi dove
materialmente c'era il problema, oggi con l'avvento delle nuove tecnologie
informatiche e dei nuovi programmi possono gestire tutto, anche, in mobilità. È ovvio
che se il guasto è hardware devono recarsi alla sorgente per aggiustarlo, ma il controllo
sarà fatto in remoto cioè dalla propria postazione di lavoro(chiamata anche
workstation), ciò e possibile grazie a dei software di remote management( di gestione
remota). Più dettagliatamente queste persone che gestiscono, controllano e per
prevengono il verificarsi di guasti, che alcune volte portano alla perdita di molto
lavoro nonché ritardo nel finire il progetto di lavoro, sono chiamati amministratori di
sistema.
Le esigenze di remote management e l'integrazione di software di remote management
sul portale User Interface del tier-2, nello specifico esigenze di remote management
del Data Center Atlas per tier-2 nonchè il suo sviluppo e l'implementazione saranno
oggetto del mia tesi.
Sergnese Nicola 566/2002
Pagina 4 di 228
2.1
Le Esigenze Del Remote Management Di Un Data Center
Una delle caratteristiche più evidenti della maggior parte dei moderni Data Center è
che sono in continuo aggiornamento. Si assiste col passare degli anni, infatti, alla
introduzione di nuovi apparati o soluzioni software, anche differenti tra loro, al fine di
soddisfare la nascita delle nuove esigenze. Si osserva di frequente come i tradizionali
sistemi sinora usati per il monitoraggio dei luoghi e degli apparati dei Data Center, non
siano adatti a dare un quadro completo e tempestivo della condizione dell'intero
centro, ma solo dei singoli componenti o dei sistemi facenti parte della stessa
soluzione informatica. La capacità di disporre un quadro completo ed immediato della
condizione dell'intero centro consentirebbe di intervenire in maniera tempestiva e
significativa in caso di anomalie o indisponibilità delle risorse facente parte del centro,
prevenendo in alcuni casi la stessa indisponibilità.
Il maggior parte delle volte grosse aziende ed enti pubblici, tra cui le università,
dispongono di diversi sistemi di monitoraggio, uno per ogni tipo di apparato e servizio
che è integrato nella rete, e ciò comporta uno spezzettamento dei report dello status1 di
tutti gli apparati e servizi, con la conseguenza che è quasi impossibile monitorare in
maniera complessiva il funzionamento dell'intera rete del data center. Spesso accade
che l'addetto o l'amministratore del sistema rilevi delle irregolarità, guasti o disservizi
solo nel momento della comunicazione da parte di utenti, dipendenti,collaboratori, etc.
determinando enormi disagi e considerevoli rallentamenti nel conseguimento del
lavoro. Inoltre una soluzione del genere costringe l'utente a dover navigare tra diverse
servizi durante l'esame della rete e la ricerca delle cause di un problema su di essa. Un
altra considerazione da fare, sempre per quanto riguarda il monitoraggio dei Data
Center, è che attualmente in circolazione ci sono moltissimi sistemi commerciali in
grado di effettuare il monitoraggio delle apparecchiature, ma non sempre sono in grado
di soddisfare le esigenze di un intero gruppo di lavoro che frequentemente ha bisogno
di un vero e proprio sistema personalizzato.
1
stato di salute
Sergnese Nicola 566/2002
Pagina 5 di 228
Data la natura commerciale di tali software, questi non sono molto configurabili e non
sono facilmente estendibili; ciò ne limita l'utilizzo ai soli sistemi già testati o che
rispecchiano le specifiche richieste dal produttore. Inoltre spesso presentano dei costi
elevati visto che le operazioni di installazione, manutenzione e gestione del
programma devono essere effettuate dagli addetti delle case produttrici.
L'obiettivo di un sistema di monitoraggio valido è verificare che determinati servizi di
una rete (ad es. stato della rete) siano sempre operativi in un'azienda.
Un sito web che non è raggiungibile, anche per un breve lasso di tempo, può provocare
danni anche economici per un’azienda. Quindi tutti i servizi che sono gestiti su
internet, devono essere frequentemente monitorati.
Un sistema di monitoraggio deve notificare tempestivamente i problemi riscontrati, in
modo tale da poter prendere le opportune decisioni in base alla natura del problema.
Più precisamente a noi interessa il controllo remoto del monitoraggio di un Data
Center.
Specifichiamo meglio cosa sia un data center, per capire più dettagliatamente le sue
esigenze di monitoraggio. Nella seguente figura è mostrato come è fatto internamente
il Data Center S.Co.P.E-Atlas
Cos'è un Data Center?
Sergnese Nicola 566/2002
Pagina 6 di 228
E' un posto costruito appositamente per
contenere e mantenere i sistemi di
elaborazione, gli apparati di storage (immagazzinamento chiamati storage elements) e
di comunicazione (switches, hub, worker nodes, service nodes), tutti questi apparanti
vengono disposti in contenitori (containers, utilizzati anche all'interno di data center di
modeste dimensioni. Uno dei primi a usare questa soluzione è stato Google, seguito
da un colosso come Microsoft, e ad oggi sembra destinata a divenire una delle
soluzioni "standard" per il mondo dei data center, soprattutto quando parliamo di cloud
computing. I containers sono ambienti che consentono di "aggiungere" potenza al data
center un poco alla volta, con ambienti ad alta densità che possono essere gestiti
abbastanza semplicemente per i manager di data centers), in ogni contenitore è messo
un apparecchio che ne controlla lo stato . Il ruolo di un Data Center è quello di fornire
servizi di alimentazione, di storage dei dati, di sicurezza, e non meno importante degli
altri, condizioni ambientali ottimali:
•
Alimentazione:, deve fornire ad un'alimentazione corretta dal punto di vista
elettrico oltre a permettere il funzionamento continuo degli apparati con gruppi
di continuità.
•
Storage: deve fornire a mantenere dati di backup in caso di guasti di alcuni
apparati di storage.
•
Sicurezza: deve fornire a non permettere attacchi di agenti esterni al sistema.
•
Condizioni ambientali: deve garantire le condizioni più idonee di umidità e
temperatura, affinché la piattaforma possa funzionare al meglio. Infatti, tutti gli
apparati elettronici producono calore, e se non adeguatamente raffreddati,
riducono la propria funzionalità.
Quindi un Data Center ha bisogno di affidabilità(basso livello di guasti), di sistemi di
monitoraggio continuo ( il che comporta monitoraggio dello stato, degli alimentatori,
dei gruppi di continuità, degli apparati di storage anche chiamati storage elements , di
Sergnese Nicola 566/2002
Pagina 7 di 228
tutti gli apparati di comunicazione, switches, hub, worker nodes, service nodes), che
l'accesso fisico e virtuale sia sorvegliato (il che comporta sistemi d'accesso per ogni
apparato), ed infine un sistema che controlla le condizioni climatiche degli apparati e
sistemi di rilevamento di incendi. Un Data Center ha anche bisogno di efficienza della
rete (prestazioni elevate, affidabilità, stabilita, alta densità), gestibilità (facilità e
velocità d'installazione nuovi apparecchi), flessibilità (facilità e velocità negli
spostamenti e modifiche), adattabilità (adattamento alle nuove tecnologie e rapidità nel
reperimento dei componenti standard).
Come visto ogni monitoraggio ha bisogno di un accesso differente e per Data Center di
medie-grandi dimensioni ciò comporterebbe grandi difficoltà nella gestione e nel
monitoraggio che potrebbero ripercuotersi gravemente sull'efficienza della rete e sulla
gestibilità, quindi molte aziende richiedono la centralizzazione e la gestione remota dei
servizi di monitoraggio.
2.2
Le Esigenze Specifiche Del Data Center Atlas
Nello specifico il nostro data center riguarda il modello di calcolo di Atlas.
Il modello di calcolo di ATLAS presenta un alto grado di decentramento ed ha molta
fiducia sulle risorse esterne al CERN e sulla loro condivisione.
Pur essendo basato principalmente sul paradigma Grid, il modello mantiene ruoli ben
specifici ai diversi elementi che compongono l’infrastruttura di calcolo, secondo il
modello gerarchico a livelli sviluppato nell’ambito del progetto MONARC (Model Of
Networked Analysis At Regional Centres).
Ai vari livelli, dei centri, sono assegnati compiti primari e compiti ausiliari, da
svolgere qualora i centri addetti siano temporaneamente impossibilitati.
Accanto alla struttura primaria (gerarchica), esistono strutture orizzontali che legano
Sergnese Nicola 566/2002
Pagina 8 di 228
tra di loro centri dello stesso livello, con funzioni sia complementari che sussidiarie.
Il modello fissa essenzialmente la tipologia e la qualità delle risorse e dei servizi che le
facility ai vari livelli devono fornire: centri dello stesso rango possono differire in
dimensione (compatibilmente con gli impegni contrattati con la Collaborazione).
Di seguito sono spiegati i ruoli dei vari tier:
1. Il Tier0 è responsabile dell’archiviazione e della distribuzione ai Tier1 (e Tier2)
dei dati RAW. Ricostruisce gli eventi (utilizzando le costanti di calibrazione
calcolate) e produce i dataset derivati (ESD1, AOD2 e TAG3 “primari”).
Distribuisce i dataset derivati ai Tier1. In caso di problemi di processamento o
trasmissione, memorizza i dati in un disk buffer che corrisponde a ~ 5 giorni di
presa dati.
2. Il modello prevede circa 10 Tier1. Ogni Tier1 tiene in archivio 1/10 dei RAW4
data e ne garantisce l’accesso a lungo termine. Ogni Tier1 tiene copia di 1/5
degli ESD e di tutti gli AOD e TAG (la versione più recente su disco, le
precedenti eventualmente su mass storage a più lento accesso). I Tier1 ospitano
e rendono velocemente accessibili i campioni di eventi simulati prodotti nei
Tier2 che a loro fanno riferimento. I Tier1 devono garantire la capacità di
calcolo necessaria a riprocessare ed analizzare tutti i dati ivi residenti (Grid!).
Le risorse dichiarate devono essere disponibili a tutta la collaborazione (ancora
Grid!). Il livello dei servizi, in termini di affidabilità e tempi di risposta, deve
essere elevato; non dovrebbero verificarsi interruzioni superiori alle 12 ore e, in
caso di periodi più lunghi, è previsto che un altro dato Tier1 fornisca almeno
accesso agli stessi dati.
1
2
3
4
Event Summary Data: l’output completo della ricostruzione in formato POOL ROOT; sufficiente per quasi ogni applicazione eccetto che
per calibrazioni e sviluppo algoritmi di ricostruzione
Analysis Object Data: rappresentazione dell’evento ridotta, derivata dagli ESD, conveniente per l’analisi, in formato POOL ROOT;
contiene gli oggetti fisici e altri elementi di interesse
Tag Data :informazioni essenziali sugli eventi per permettere un’efficiente identificazione e selezione degli eventi di interesse per una
data analisi; per facilitarne ed ottimizzarne l’accesso sono memorizzati in un database relazionale
Raw Data: eventi in formato “ByteStream” prodotti dalla catena di TDAQ; in genere costruiti dagli Event Builders e trasmessi in output
dall’Event Filter l’ultimo stadio degli High Level Trigger
Sergnese Nicola 566/2002
Pagina 9 di 228
3. I Tier2 assumono molti ruoli e funzioni, in particolare ruoli e funzioni per le
calibrazioni, la simulazione e l’analisi secondo gli interessi e le attività delle
comunità locali e in accordo con le loro caratteristiche (risorse, connessioni di
rete, affidabilità). La loro dimensione e il tipo di risorse può variare
sensibilmente a seconda delle attività e della dimensione dei gruppi di fisica che
vi fanno riferimento. Un Tier2 ospiterà tipicamente 1/3 degli AOD correnti e
tutti i TAG. Ospiterà anche i DPD1 di interesse locale e campioni di RAW data
e ESD per analisi e sviluppo algoritmi. I Tier2 forniscono tutta la capacità di
simulazione necessaria alla collaborazione; a meno che un Tier2 non riesca a
garantirne esso stesso l’accesso in modo veloce e affidabile, i dati simulati
saranno migrati al Tier1 di riferimento (si ipotizzano circa 4 Tier2 per ogni
Tier1). Alcuni centri, a seguito del coinvolgimento della comunità locale in un
rivelatore, potranno avere un ruolo rilevante nelle procedure di calibrazione e
allineamento.
4. Il ruolo dei Tier3 è meno definito di quello dei centri di rango superiore,
comunque nel modello attuale essi assumono una importanza rilevante nella
simulazione e l’analisi degli utenti singoli. La loro dimensione e il tipo di
risorse può variare sensibilmente a seconda delle attività e del numero degli
utenti che vi fanno riferimento. Contengono DPD e campioni di AOD e ESD
per analisi specifiche e sviluppo algoritmi. Il controllo delle risorse
(allocazione, priorità, condivisione, …) è completamente sotto controllo locale.
I Tier3 costituiscono un importante buffer di risorse per fronteggiare tutte le
inefficienze o gli imprevisti non esplicitamente considerati nel modello di
calcolo.
Più precisamente il nostro data center si riguarda il tier2 di questo modello. Quindi
1
Derived Physics Data :rappresentazione tipo n-tupla dei dati dell’evento per l’analisi e la istogrammazione dell’utente finale; inclusa nel
data model per permettere un’analisi immediata e la visualizzazione dei risultati con i tanti tool standard di analisi PAW, ROOT, JAS, …
Sergnese Nicola 566/2002
Pagina 10 di 228
approfondiamo un pò specificando meglio quale sia il loro ruolo.
In generale i Tier2 forniscono capacità di analisi per i gruppi e sottogruppi di fisica,
vale a dire un’infrastruttura di calcolo adeguata a sostenere un’attività multiutente e
tendenzialmente caotica. Oltre alla potenza di calcolo il Tier2 deve permettere lo
storage di circa un terzo dell’ultima versione degli AOD e dell’intero campione dei
TAG nella versione piu recente. Dovrà inoltre ospitare tutti i DPD
prodotti dalla
comunità locale ed eventualmente campioni di RAW e ESD per sviluppo e messa a
punto di algoritmi di ricostruzione o criteri di selezione a vari livelli.
Inoltre essi devono farsi carico di tutta la capacità di simulazione necessaria
all’esperimento, anche se i dati risultanti verranno generalmente trasferiti nei Tier1 a
cui essi fanno capo e ivi resi disponibili permanentemente a tutta la Collaborazione (in
effetti, il livello di servizio richiesto ai Tier2 in termini di accessibilità e tempi di
risposta è inferiore, a meno che non si contrattino con l’esperimento ruoli specifici con
relativi livelli di servizio).
Alcuni Tier2 possono assumere ruoli significativi nelle procedure di calibrazione dei
sottosistemi, in accordo con il grado di coinvolgimento e l’interesse dei gruppi locali.
E’ fondamentale per assolvere tutti questi compiti che i Tier2 siano pienamente
accessibili attraverso gli strumenti Grid standard.
Da questo quindi ricaviamo le risorse necessarie ai Tier2 che visualizziamo nella
seguente immagine:
Sergnese Nicola 566/2002
Pagina 11 di 228
Figura 2: risorse necessarie Tier2
Così come in un data center normale anche noi abbiamo bisogno, oltre le
caratteristiche sopra descritte, dei diversi monitoraggi nonché, dell'efficienza della rete
(prestazioni elevate, affidabilità, stabilita, alta densità), gestibilità (facilità e velocità
d'installazione nuovi apparecchi), flessibilità (facilità e velocità negli spostamenti e
modifiche), adattabilità (adattamento alle nuove tecnologie e rapidità nel reperimento
dei componenti standard) sicurezza.
Sergnese Nicola 566/2002
Pagina 12 di 228
2.3
Idea Progettuale
Per quanto detto sinora l'obiettivo di questa tesi è quello di trovare una soluzione per
migliorare il monitoraggio e la gestione degli apparati della rete, centralizzando e
rendendo effettivo il remote web management, non adoperando software commerciali
tutto ciò dovrà essere integrato con il portale già esistente.
Quindi visto che sul portale già è integrato OpenSSO. Mi è stato proposto di fare in
modo che l'utente, con la giusta autorizzazione, acceda con semplicità e velocemente
al web management senza doversi autenticare continuamente per ogni servizio di
management richiesto in questo caso è stato pensato di bypassare la pagina di login
adoperando le portlets iframe, web content dispalys e modificando codice sorgente
delle pagine di login dei diversi servizi di management.
Come visto per mantenere il corretto funzionamento del data center c'è bisogno che
qualcuno monitorizzi e gestisca i diversi apparati che ne fanno parte, questa persona è
l'amministratore.
L'amministratore tramite programmi di web management monitorizza e gestisce i
diversi apparati. Questi programmi hanno bisogno di un'autenticazione il che implica
che la persona (persone nel caso ne siano di più) si autentichi per ogni web remote
management, ma tale ripetitiva azione compromette in negativo alcune caratteristiche
da noi richieste come efficienza della rete, gestibilità e sicurezza. Il sistema esistente,
da noi analizzato, utilizzava già una metodologia di autenticazione Single Sign-On sul
portale web (http://tier2.na.infn.it), permettendo l'utilizzo delle diverse risorse
autenticandosi solo una volta al portale. Il portale però non aveva integrato tutte le
risorse di cui il data center necessitava. In particolare alcuni servizi come “gridsu” e
“cacti” già disponevano del sistema SSO mentre su altri tale sistema non era integrato,
come i servizi di web management dei “CMC”, “worker nodes”, “switches”, “service
nodes”, “storage elements” ne per quanto riguarda la parte di atlas ne per quanto
riguarda lo S.Co.P.E.
Sergnese Nicola 566/2002
Pagina 13 di 228
Quindi l'idea è quella che una volta che l'amministratore si è autenticato possa avere
una visuale di tutti i servizi di web management principali, che sono: CMC (controllo
rack e monitoraggio ambientale), worker nodes, Storage elements, switches, e i service
nodes. Tali servizi saranno distinti per categoria sia per quanto riguarda il progetto
atlas sia per quanto riguarda il progetto S.Co.P.E. Si permetterà, comunque, la
visualizzazione dell'elenco completo dei servizi, su richiesta.
In questo modo introduciamo l'utilizzo del sistema Single Sign-On su tutti i servizi di
web management evitando un ulteriore richiesta di autenticazione, che era necessaria
prima del mio lavoro.
Specifichiamo un pò meglio l'idea aggiungendo delle figure di come dovrebbe essere
svolto il lavoro.
Sergnese Nicola 566/2002
Pagina 14 di 228
L'idea è di visualizzare le categorie dei relativi servizi cosi come nella seguente figura.
Facendo clic con il pulsante sinistro del mouse su uno dei bottoni ci troveremo nella
pagina dove a destra ci sarà la tabella relativa alla categoria del bottone premuto e a
sinistra ci sarà l'elenco di tutte risorse web remote management ad esempio facendo
clic con il pulsante sinistro del mouse sul bottone CMC sotto la voce “L2: SCoPE Data
Center” avremo la pagina della figura successiva
Sergnese Nicola 566/2002
Pagina 15 di 228
Facendo clic con il pulsante sinistro del mouse su spoiler si avrà la lista di tutte le
risorse principali, e passando su una di queste ultime si aprirà un piccolo elenco con
tutte le web remote management per quella risorsa, facendo clic con il pulsante sinistro
del mouse su una risorsa web remote management si andrà alla pagina di quest'ultima
senza passare per la pagina di autenticazione cosi come nelle due figure successive.
Sergnese Nicola 566/2002
Pagina 16 di 228
Apertura spoiler:
Sergnese Nicola 566/2002
Pagina 17 di 228
selezione della singola risorsa richiesta
Sergnese Nicola 566/2002
Pagina 18 di 228
3
Il Portale User Interface
Prima di continuare è necessario per prima cosa specificare il termine portale, compito
non così semplice. Il vocabolo "portale" è ormai di uso comune e non solo da parte
degli addetti ai lavori, ma quasi certamente non è chiaro cosa si intenda con questo
vocabolo. Definire il vocabolo “portale” in termini informatici non è semplice perché
in realtà non esiste una definizione univoca. Ripensandoci su, è il vocabolo stesso che
contiene in se’ la propria definizione: "un portale è una porta di accesso unica a un
insieme di applicazioni, dati e servizi".
Per apprendere meglio questa definizione possiamo pensare al concetto di applicazione
web. Una applicazione web, nella maggior parte dei casi, nasce con lo scopo di
risolvere uno specifico problema e fornisce funzionalità verticali realizzate per
raggiungere lo allo scopo. Ogni singola applicazione ha la sua interfaccia, le sue
funzioni e in alcuni casi la sua funzione di autenticazione. All’interno di una
organizzazione, soprattutto se di grandi dimensioni quali ad esempio una grande
azienda o un grande ente pubblico, è possibile avere tante di queste applicazioni a
disposizione degli utenti, interni o esterni che siano. Ma come fornire un unico punto
di accesso per gli utenti a tutto il parco applicativo mediante una interfaccia unica,
coerente e organizzata? La soluzione è ciò di cui stiamo parlando, il portale.
Un portale è stato progettato per essere un singolo ambiente basato sul web dal quale
tutte le applicazioni di un utente possono essere eseguite, e queste applicazioni sono
integrate tra loro in modo coerente e sistematico.
La definizione esprime proprio il concetto che stavamo esponendo, inquadrando un
portale, dal punto di vista dell’aggregazione, in un’unica interfaccia di molteplici
applicazioni, mettendo in evidenza una funzioni principali di un portale: quella di
strumento di integrazione. Ma un portale non è solo questo. Dal punto di vista
funzionale possiamo dire che un portale copre le esigenze in tre grandi aree:
Sergnese Nicola 566/2002
Pagina 19 di 228
aggregazione di applicazioni, gestione di contenuti, collaborazione.
Un portale quindi è molto di più di quanto abbiamo detto fino ad ora e ci fa
comprendere come le potenzialità di uno strumento simile sono enormi purche’ se ne
comprenda a fondo la differenza rispetto a una normale applicazione web e si
utilizzino piattaforme che forniscono tutti gli strumenti necessari a realizzare le
funzionalità nelle aree elencate.
Portale come aggregatore di applicazioni
Dal punto di vista più strettamente applicativo, il ruolo di integrazione che può
svolgere un portale è quello più interessante e promettente. Il problema delle
eterogeneità di applicazioni è da sempre presente nelle organizzazioni che quasi
sempre, tranne che in pochi casi fortunati, si trovano al proprio interno un patrimonio
informativo fatto di applicazioni diversificate per funzioni, tecnologie realizzative e
interfacce.
Senza entrare nei dettagli dell’argomento, indipendentemente dalla soluzione di
integrazione scelta tra quelle possibili, un portale può svolgere il ruolo fondamentale
dell’integrazione lato interfaccia utente delle sorgenti dati, delle applicazioni o dei
servizi con i quali il nostro sistema informativo è costruito. Ciò consentirà all’utente di
accedere dalla medesima interfaccia in una modalità integrata coerente e
personalizzabile a molteplici sorgenti informative. Questo perché, la pagina di un
portale è costruita assemblando tante "mini-applicazioni", che forniscono una vista sui
dati, sulle applicazioni verticali e sui servizi del nostro patrimonio informativo. Il tutto
ovviamente in modo che l’utente possa disporre delle funzionalità e delle informazioni
in modo omogeneo senza dover accedere singolarmente alle diverse sorgenti.
Portale come gestore di contenuti
Fino ad ora abbiamo concentrato la nostra attenzione sulla integrazione di
applicazioni. Un portale è però anche un gestore di contenuti. Tutti noi usufriamo ogni
giorno sul web di contenuti più disparati sia che navighiamo nel portale della nostra
Sergnese Nicola 566/2002
Pagina 20 di 228
squadra del cuore sia che leggiamo un quotidiano su internet. Documenti, animazioni,
foto, video, immagini sono il pane quotidiano di ogni utilizzatore di internet. Mentre
prima ci siamo soffermati sul portale guardandolo dal punto di vista applicativo, è
forse molto più evidente il ruolo del portale come strumento informativo in senso
stretto. Se il primo aspetto è più rivolto a chi sviluppa applicazioni e sistemi
informativi e a chi usufruisce di funzionalità applicative via web, (ad esempio un
dipendente di una organizzazione che utilizza il portale aziendale per la registrazione
dei dati di una trasferta o una persona che dispone un bonifico sul portale della propria
banca), il secondo è comprensibile a qualsiasi navigatore internet.
Basti pensare alle pagine web nelle quali troviamo un articolo su un argomento di
nostro interesse corredato di foto, la versione PDF dell’articolo da scaricare e magari
un video sull’argomento reperito da YouTube; una singola pagina in cui tutti questi
contenuti sono pubblicati in forma aggregata e organizzati per un uso omogeneo ed
efficace.
Anche in questo caso sono le funzionalità del portale che consentono un simile
risultato. Oltre all’integrazione ed all’aggregazione di sorgenti informative diverse,
entra in gioco anche l’esigenza di gestire la molteplicità dei contenuti da pubblicare e
quindi il bisogno di strumenti flessibili ed efficaci per la gestione degli stessi. Le
funzionalità di gestione dei contenuti vanno sotto il nome di CMS, Content
Management System. Una piattaforma di gestione di portali non è semplicemente un
CMS ma generalmente fornisce le funzionalità tipiche dei CMS, quali la compilazione
dei contenuti secondo template personalizzabili, la pubblicazione di contenuti, la
definizione di workflow per il processo di compilazione, la gestione di categorie e il
tagging dei contenuti, la gestione multilingua, l’ottimizzazione per i motori di ricerca e
così via.
Una piattaforma di sviluppo di portali che si rispetti deve consentire quindi la gestione
e la pubblicazione di contenuti testuali e multimediali. Se uniamo questo alla
possibilità di aggregare contenuti di tipo applicativo vediamo come le potenzialità a
Sergnese Nicola 566/2002
Pagina 21 di 228
nostra disposizione diventano sempre più vaste ed interessanti.
Portale come strumento di collaborazione
Da diverso tempo sono diventati argomento di discussione il Web 2.0 e le nuove
modalità di interazione e di utilizzo delle tecnologie web. Quello che è certo è che
internet tra le altre cose è diventato sempre più uno strumento "sociale" che consente a
comunità di utenti più disparate di comunicare, collaborare e scambiare informazioni.
Il web è sempre più interattivo e consente a ciascuno di creare e condividere i propri
spazi e i propri contenuti
Il portale quindi può essere utilizzato come uno strumento per la collaborazione di
team di lavoro in una intranet aziendale piuttosto che per la creazione di comunità di
utenti su internet, quindi è uno strumento abilitante al social networking, fenomeno di
grande diffusione al giorno d’oggi.
Integrazione di applicazioni, gestione di contenuti e collaborazione tutti integrati in
un’unica piattaforma fanno di un portale uno strumento dalle potenzialità enormi che
unisce in sè mondi diversi e che fornisce agli utenti ampie possibilità.
Abbiamo introdotto il concetto di portale e abbiamo visto cosa intendiamo con questo
termine. Come abbiamo visto i campi di applicazione sono molto vasti e le potenzialità
enormi. Una piattaforma per la realizzazione di portali di alto livello abilita con un
unico strumento l'aggregazione di applicazioni, la possibilità di pubblicare contenuti e
le funzionalità per la collaborazione tra gli utenti. È evidente che tutte queste
possibilità insieme aprono scenari infiniti al progettista web, molto più vasti di quelli
tipici di una applicazione web verticale e quindi anche più complessi da affrontare e da
indirizzare correttamente per ottenere risultati efficaci e di reale utilità per gli utenti.
La definizione è stata data senza entrare nel dettaglio di tecnologie specifiche, proprio
per dare un senso di generalità a quanto discusso. Ma diamo anche una definizione,
non molto dettagliata perché sarà approfondita in seguito, del portale liferay, che in
fondo è quello che viene utilizzato per il nostro portale Liferay Portal è un
Sergnese Nicola 566/2002
Pagina 22 di 228
portalizzatore di classe Enterprise Open Source sviluppato in Java (JEE) in grado di
interoperare con tutti i principali Application Servers JEE presenti sul mercato e con
tutti i principali databases relazionali disponibili..
3.1
Sistema Di Monitoraggio Web: il Portale Di Integrazione
Liferay è un portale open source Java-based ricco di funzionalità che consente la
realizzazione di portali web in modo molto semplice e veloce. Dal punto di vista
dell’utilizzatore è un prodotto molto completo in quanto dispone di più di 60 portlet
già pronte per l’uso che assolvono a tutti i più comuni compiti di un moderno portale
di livello enterprise. Con Liferay è possibile mettere in piedi un portale web in
pochissimo tempo senza necessità di scrivere codice, vista la notevole disponibilità di
portlet e di temi grafici già pronti per l’uso.
Quello che è più interessante dal punto di vista dello sviluppo di funzionalità custom è
che Liferay è anche una completa piattaforma di sviluppo, un vero e proprio
framework per lo sviluppo di portali in Java. Questa seconda caratteristica , meno
evidente ad un utilizzatore finale, lo rende una delle migliori piattaforme di sviluppo di
portali e di applicazioni web in genere disponibili oggi nel mondo open source.
Ovviamente Liferay Portal è perfettamente conforme a quanto detto prima rispetto agli
ambiti di applicazioni di un portale web; è un gestore di contenuti, un aggregatore di
applicazioni e un potente strumento di collaborazione.
È bene sottolineare da subito che Liferay non è un semplice CMS ma, come detto, è
una piattaforma software che tra le molteplici funzionalità ha anche tutte le
funzionalità tipiche di un CMS. Per cui, in base a ciò, non ha senso dal punto di vista
funzionale e tecnico paragonare Liferay con prodotti CMS che si prefiggono il solo
scopo della gestione dei contenuti. Il campo di applicazione della piattaforma Liferay
va ben oltre quello della gestione dei contenuti che non è neanche la sua funzionalità
Sergnese Nicola 566/2002
Pagina 23 di 228
più importante; anzi se si desidera una gestione dei contenuti più completa e sofisticata
Liferay può essere integrato con piattaforme di gestione dei contenuti più potenti e
complesse quali ad esempio Alfresco.
Liferay è quindi una piattaforma di sviluppo, integrazione e collaborazione realizzata
secondo i principi della architettura a servizi. Dispone di tutte le funzionalità
necessarie alla realizzazione di un portale web quali web publishing, content
management, enterprise collaboration e social networking, il tutto costruito su una
piattaforma open source completamente realizzata in accordo a standard aperti e
allineata alle ultime tecnologie.
Di seguito sono elencate a titolo esemplificativo alcune delle caratteristiche principali
di Liferay Portal.
Tools pronti per l’uso
È distribuito con numerose funzionalità già pronte per l’uso che coprono la gran parte
delle esigenze comunemente previste per un moderno portale web di classe enterprise.
Funzionalità di content management, social networking, web publishing per un totale
di più di 60 componenti applicative pronte per l’uso out-of-the-box.
Gestione di utenti e ruoli
Dispone di una gestione di utenti, gruppi, ruoli e permessi molto potente e flessibile
che arriva fino alla gestione dei permessi di un singolo contenuto o di un singolo
elemento del portale.
Gestione single sign-on
È integrato con diversi sistemi di gestione delle identità quali OpenID, OpenSSO, CAS
ed abilita la fruizione in modalità single sign-on a sistemi eterogenei.
Supporto multilingua
È localizzato in più di venti lingue e fornisce tutte le funzionalità per la localizzazione
di ogni elemento del portale nella lingua desiderata.
Sergnese Nicola 566/2002
Pagina 24 di 228
Gestione communities
Consente la gestione di comunità nell’ambito di un medesimo portale per una gestione
flessibile ed organizzata di comunità di utenti.
SOA Framework
L’architettura di riferimento è l’architettura orientata a servizi. Liferay è quindi una
vera e propria piattaforma di sviluppo e integrazione strutturata secondo un paradigma
architetturale flessibile ed efficiente.
Gestione dei contenuti
Le funzionalità di CMS di Liferay consentono la gestione aggregata e unificata di tutti
i contenuti: articoli, documenti, immagini. È insita nel prodotto la gestione delle
versioni di ogni singolo contenuto e dei workflow di redazione, approvazione e
pubblicazione degli stessi tali da soddisfare le più disparate esigenze organizzative
redazionali.
Liferay dispone di funzionalità di gestione di tag, di tassonomie, di ricerca contenuti,
di indicizzazione, di ottimizzazione per il posizionamento nei motori di ricerca (SEO):
tutto ciò che serve per la gestione efficace di ogni tipo di contenuto.
Collaborazione
Liferay dispone di tutte le funzionalità di collaborazione e di social networking. Sono
già fornite pronte per l’uso funzionalità quali blog, wiki, forum, chat, RSS, calendari
condivisi, sondaggi che fanno del portale un potente strumento di collaborazione in
ottica Web 2.0.
Riassumendo, Liferay Portal è stato scelto perchè sono state valutate più che
soddisfacenti le seguenti caratteristiche:
1. open source;
2. completamente gratuita, sia per la componente di gestione del portale che per i
tool di sviluppo;
Sergnese Nicola 566/2002
Pagina 25 di 228
3. allo stato dell’arte della tecnologia;
4. costantemente evoluta a costo zero a seguito delle innovazioni tecnologiche;
5. di livello enterprise, quindi progettata per le esigenze di organizzazioni
complesse;
6. fondata su standard aperti, quindi senza vincoli tecnologici legati a standard
proprietari imposti da un singolo vendor;
7. ben documentata e supportata da una vasta comunità, il che garantisce di non
essere vincolati al know-how proprietario di un singolo fornitore;
8. personalizzabile in tutte le sue parti.
3.2
Web Contnet Portlet
Questa portlet permette di pubblicare pubblicare qualsiasi contenuto web in una pagina
del portale. Queste portlet comprendono la maggior parte del contenuto di Liferay.com
e altri siti Liferay-driven, e possono essere organizzati su una pagina grazie alla
caratteristica drag & drop di Liferay.
É stata una delle portlets più utilizzate nello sviluppo del mio tirocinio l'ho utilizzata
per lo sviluppo delle tabelle e dello spoiler. Di seguito ci sono riportata la portlet
richiesta.
Sergnese Nicola 566/2002
Pagina 26 di 228
Nella web content display va inserito il codice della pagina da far visualizzare,bisogna
mettere il nome “Autogenerate ID ” salvare e approvare.
3.3
Iframe Portlet
La portlet Iframe permette di contenere immagini, un'altra pagina HTML, tabelle, ecc
all'interno della pagina corrente. Inoltre l'utente può navigare nella pagina contenuta
senza perdere il contesto della pagina del portale.
La portlet Iframe utilizza il tag iframe HTML ed è supportato in tutti i principali
browser. La portlet iframe si adeguerà alle dimensioni della pagina HTML se la pagina
Sergnese Nicola 566/2002
Pagina 27 di 228
è presente nel server stesso. Il browser aggiunge le barre di scorrimento se la pagina
contenuta non rientra nella dimensione del iframe.
La funzione di base di questa portlet è proprio quella che ci serve cioè contenere
remote web sites. Di seguito e riportata la portlet utilizzata.
Nel iframe portlet va inserito nel voce source l'indirizzo della pagina che si vuole
visualizzare. Inoltre se si vuole, come nel nostro caso, fare in modo di bypassare la
pagina di login bisogna utilizzare l'opzione autenticate, poi a seconda di come è
richiesto dal server scegliere il tipo di autenticazione, e il metodo. Poi inserire i dati di
autenticazione nelle voci ”User Name” e “Password” rispettivamente il nome e la
password che sono presenti nella pagina sorgente e poi inserire i
relativi valori
Sergnese Nicola 566/2002
Pagina 28 di 228
facciamo un esempio:
come si vede allora bisogna mettere nel campo name della voce ”User Name” p0404 e
il valore nel campo “value”, nel campo name della voce “Password” p0405 e il valore
nel rispettivo campo “value”. Poi nel opzione (campo) hidden variables bisogna
inserire le eventuali variabili hidden che generalmente, se ci sono, sono alla fine della
pagina del codice sorgente. Ancora se si vuole si possono cambiare o aggiungere degli
attributi alla pagina HTML cambiando o aggiungendo opzioni nella voce Advanced
html attributes.
Sergnese Nicola 566/2002
Pagina 29 di 228
4
Tipologie D'autenticazione Esistenti
In generale col termine autenticazione si indica un procedimento mediante il quale si
prova l'identità di qualcuno allo scopo di consentirne l'accesso a risorse di qualsiasi
genere.
Esistono molteplici tecniche di autenticazione, che si differenziano sia per
procedimento che per efficacia , in funzione di diversi fattori. Molto semplicemente si
può dire che una tecnica di autenticazione è efficace quando garantisce con ottima
probabilità che l'individuo che ha richiesto l'accesso sia effettivamente quello che ne
ha il diritto.
E' ovvio che alcune informazioni, come il pin della propria carta bancomat, siano vitali
per l'utente e quindi da proteggere ad ogni costo. Il fatto che queste viaggiano su un
canale non sicuro e che siano potenzialmente intercettabile da chiunque, comporta per
l'utente una necessità di nasconderle a soggetti terzi, tenendo allo stesso tempo
presente il bisogno di potervi accedere in qualsiasi momento. Da questa necessità
nascono le tecniche di autenticazione prima dell'accesso alle informazioni e di
trasmissione cifrata delle stesse.
Probabilmente l'esempio più semplice, presente nella vita reale, è quello relativo a
strumenti utilizzati comunemente come il bancomat e la carta di credito. Nel caso di
quest'ultima l'unico elemento di autenticazione certo è il possesso della carta, mentre
nel caso del bancomat siamo obbligati a ricordare un PIN oltre che a possedere, all'atto
dell'utilizzo, la carta magnetica. In entrambi i casi, l'autenticazione da accesso alle
risorse finanziarie dislocate su un conto corrente bancario. Nel caso delle tecnologie
dell'informazione, l'autenticazione è usata a moltissimi livelli e spesso non ci si rende
neanche conto del numero di volte che viene utilizzata.
Alcune delle operazioni più comuni che richiedono autenticazione :
1. L'accesso al proprio Personal Computer;
Sergnese Nicola 566/2002
Pagina 30 di 228
2. L'accesso alla rete locale della propria azienda;L'accesso alla rete locale della
propria azienda;
3. L'accesso alle proprie caselle di posta elettronica o mediante software specifici
o mediante applicazioni web.
4. L'accesso a risorse di rete;
5. L'accesso a programmi opportunamente protetti;
Purtroppo non sempre viene compresa la necessità di nascondere tali informazioni, e
di conseguenza, quanto possa essere importante la sicurezza delle stesse. Per cui
accade spesso che le credenziali di autenticazione sono inserite una sola volta,
tipicamente alla configurazione iniziale di un programma, quindi il processo di
autenticazione viene impostato per essere eseguito automaticamente ogni qualvolta si
richiede la funzionalità offerta dal software, velocizzando così accesso al software.
Questo è “malcostume” parecchio diffuso, che va a ridurre la sicurezza perché in
questo modo, chiunque abbia accesso al nostro Personal Computer potrà accedere a
tali risorse senza dover fornire le credenziali di autenticazione. Inoltre le informazioni
sono spesso debolmente protette, ad esempio da password facilmente intuibili (come il
nome del proprio figlio o la propria data di nascita) e facilmente recuperabili in pochi
tentativi. Infine, spesso sono trasmesse in chiaro, come spesso avviene per la posta
elettronica. Per cui il fattore sicurezza deve essere prima compreso, poi applicato. Non
serve a nulla impostare autenticazioni complicatissime e sicure per il proprio ambiente
personale/lavorativo se poi l'utente, per ricordare la propria password (lunghissima e
piena di caratteri non alfanumerici) la scirve su un foglietto attaccato al monitor.
Per quanto riguarda le tecniche di autenticazione, la complessità di queste dipende
essenzialmente da quanto critica è l'identificazione, da quali sono i fattori che la
possono limitare, e dal valore delle informazioni cui si garantisce l'accesso dopo
l'operazione di autenticazione: maggiore è il valore delle informazioni – o delle risorse
in generale – più complessa sarà la tecnica di autenticazione.
Sergnese Nicola 566/2002
Pagina 31 di 228
Le tecniche di autenticazione sono comunemente classificate sulla base delle entità alle
quali fanno riferimento. Una metodo di autenticazione può infatti far riferimento a:
1. qualcosa di cui si è in possesso, come ad esempio una carta magnetica, un
dispositivo di memoria o dispositivi anche più complessi come le smart card
basate su processore;
2. qualcosa che si conosce, come ad esempio una password o un PIN;
3. qualcosa che caratterizza la propria persona, come le impronte digitali,
l'impronta retinica o quella vocale.
I metodi possono essere anche sovrapposti per formare un sistema più forte. Con
l'aumentare della complessità della tecnica di autenticazione si fa strada un altro
concetto fondamentale, oltre a quello dell'identità: la non ripudiabilità. In altri termini,
una tecnica di autenticazione sicura, oltre a garantire l'identità di colui che accede,
impedirà che quest'ultimo possa negare di aver avuto accesso alle risorse garantitegli
dall'autenticazione. Di conseguenza, la fiducia nella tecnica di autenticazione deve
sussistere sia da parte del responsabile del sistema cui ci accede, sia da parte
dell'utente stesso. Ci si può immaginare come questo elemento rivesta particolare
importanza nel caso di acceso – anche remoto - a reti aziendali, o di enti, a supporto di
applicazioni di normale utilizzo dell'attività lavorativa. In altri termini, anche l'utente
deve essere conscio dell'efficacia della procedura di autenticazione visto che questa –
oltre a garantire la sicurezza dell'ente – può essere uno strumento di verifica
dell'accesso al sistema informativo dell'azienda. E qui entra in gioco l'immediata
applicazione a sistemi a supporto del telelavoro. D'altra parte, nessun sistema di
autenticazione può dirsi realmente efficace se non con la stretta collaborazione
dell'utente. E' infatti cura dell'utente il ricordo dell'eventuale password, la
conservazione di smart card o di dispositivi di memorizzazione e il non comunicare ad
altri gli estremi del proprio sistema di autenticazione. Dal punto di vista pratico, i
metodi maggiormente utilizzati per l'autenticazione in ambito informatico si possono
Sergnese Nicola 566/2002
Pagina 32 di 228
sintetizzare nei tre seguenti:
1. Username e password statiche o dinamiche;
2. Dispositivi di memorizzazione di chiavi o certificati;
3. Dispositivi biometrici;
4.1
Username e password statiche o dinamiche
Password statiche
L'utilizzo di username e password statiche, ossia che non vengono modificate in tempo
reale durante il processo di autenticazione, è quello più diffuso ed è sostanzialmente il
più semplice da implementare. In questo caso l'utente deve ricordare la propria
username e la password ad essa associata che, ovviamente, sono anche memorizzate
sul sistema di accesso. Tale metodo, se non è associato ad altri meccanismi, può però
risultare piuttosto debole in quanto si presta a diversi tipi di attacchi. Attacchi che però
possono essere ostacolati e a volte addirittura vanificati utilizzando una password
robusta e modificandola periodicamente. C'è anche da sottolineare che, con le
opportune precauzioni e concordemente al tracciamento del computer dal quale ci si
autentica, il metodo basato su password statiche è sufficiente per un gran numero di
casi pratici, a meno di non pretendere la validità legale inoppugnabile per l'intero
processo di autenticazione. In quest'ultimo caso può essere necessario ricorrere a
sistemi che, pur basandosi su metodi statici, coinvolgano un certificato digitale
conforme all'attuale normativa.
Password Dinamiche
In tale metodo le password sono generate automaticamente mediante sistemi
automatici e la generazione avviene soltanto all'occorrenza. Inoltre la validità di tali
“password” è estremamente limitata nel tempo. L'utente, spesso, utilizza quasi
Sergnese Nicola 566/2002
Pagina 33 di 228
inconsapevolmente sistemi basati su tale metodo – la cui gestione è completamente a
carico dei responsabili dei sistemi informativi relativi – e i campi di applicazione sono
moltissimi. Si va dai sistemi di pagamento online, per i quali sarebbe troppo lungo e
pericoloso utilizzare password non crittografate e intercettabili, allo scambio di
informazioni protette, alla trasmissione su canali sicuri. Non è, in senso stretto, un
sistema di autenticazione rivolto all'individuo ma può essere utilizzato in congiunzione
al sistema delle password statiche per realizzare sistemi estremamente robusti di
autenticazione e – unitamente – di trasmissione.
4.2
Dispositivi di memorizzazione di chiavi o certificati
In questa categoria rientrano i meccanismi di autenticazione basati su sistemi fisici
come le smart card, le carte magnetiche e le chiavi di memoria. Su tali dispositivi è
memorizzata una chiave o, meglio, un certificato digitale che garantisce, unitamente a
una password statica, l'identificazione del possessore. Il meccanismo è analogo a
quello del bancomat ma molto più robusto in quanto il “PIN”, ossia la password
statica, può essere modificato dal possessore e, inoltre, può essere associata a un
certificato per altri scopi tra cui la crittografia del canale di comunicazione. Si tratta,
però, di un sistema comunque più costoso e che richiede il possesso costante di un
dispositivo fisico che, in caso di smarrimento, deve essere rigenerato provocando
l'interruzione del servizio per un tempo non sempre accettabile.
4.3
Dispositivi biometrici;
In questa categoria rientrano i dispositivi di riconoscimento automatico della persona
sulla base di alcune caratteristiche fisiche come le impronte digitali, l'impronta retinica
Sergnese Nicola 566/2002
Pagina 34 di 228
o quella vocale, etc... Sono nati per garantire, in teoria, il massimo livello di sicurezza
nell'autenticazione individuale a partire da caratteristiche singolari della persona fisica.
Una volta disponibili in commercio, molti si sono affidati quasi ciecamente a tali
sistemi nella convinzione, priva di qualsiasi fondamento, che la determinazione di tali
caratteristiche sia univoca come le caratteristiche stesse. Purtroppo i sistemi di
riconoscimento sono soggetti ad errori statistici che non possono essere eliminati.
Inoltre, come accade per altre cose, le caratteristiche fisiche possono essere imitate in
qualche modo e la violazione di un sistema del genere può portare a ripercussioni
inimmaginabili, proprio per la fiducia incondizionata che istintivamente si ripone in
esso. Ad ogni modo, allo stato attuale, tali sistemi hanno senso solo in situazioni di alta
richiesta di sicurezza nell'identificazione della persona fisica “a vista” e sono sempre
associati a sistemi ulteriori di controllo e di emergenza. Sono assolutamente da scartare
in caso di autenticazione remota, non assistita, e implicano un costo notevole per la
loro implementazione.
4.4
Unificazione accessi per il remote management SSO
Come visto, l'amministratore di un data center ha bisogno di accedere a diverse risorse
per gestire, controllare e manutenere il funzionamento della rete, quindi delle
attrezzature. Se ogni risorsa per i motivi di sicurezza richiedesse un'identificazione
diversa ciò comporterebbe, da parte dell'amministratore, la memorizzazione di
username e password per ogni risorsa, situazione che presenterebbe grosse difficoltà;
per semplificare ciò si può ricorrere ad un programma o sistema che faccia ciò in
automatico. Uno dei sistemi più utilizzati è il sistema SSO (Single sign-on ) che
permette all'utente (amministratore o addetto) di autenticarsi solo una volta e di
accedere a tutte le risorse informatiche alle quali è abilitato, evitando così di doversi ri-
Sergnese Nicola 566/2002
Pagina 35 di 228
autenticare ad ogni accesso di una differente risorsa. Quindi questo sistema semplifica
la gestione dell'autenticazione aumentando la sicurezza e semplificando la gestione
degli accessi ai vari servizi.
Vi sono tre metodi per creare un sistema SSO:
1. Centralizzato: Metodo destinato principalmente ai servizi dipendenti tutti dalla
stessa entità, per esempio all'interno di una azienda. Il principio è di disporre di
un database globale e centralizzato di tutti gli utenti e di centralizzare allo stesso
modo la politica della sicurezza.
2. Federativo: metodo sviluppato per realizzare la gestione decentralizzata degli
utenti: ogni gestore federato mantiene il controllo della propria politica di
sicurezza. Con questo metodo differenti gestori ("federati" tra loro) gestiscono
dati di uno stesso utente. L'accesso ad uno dei sistemi federati permette
automaticamente l'accesso a tutti gli altri sistemi. Es: Un viaggiatore potrebbe
essere sia passeggero di un aereo che ospite di un albergo. Se la compagnia
aerea e l'albergo usassero un metodo federativo avrebbero un accordo reciproco
sull'autenticazione dell'utente. Il viaggiatore potrebbe ad esempio autenticarsi
per prenotare il volo e essere autorizzato, in forza di quella sola autenticazione,
ad effettuare la prenotazione della camera d'albergo.
3. Cooperativo: metodo che risponde ai bisogni di strutture istituzionali nelle
quali gli utenti sono dipendenti da una entità, come ad esempio in università,
laboratori di ricerca o amministrazioni. Il metodo cooperativo parte dal
principio che ciascun utente dipenda, per ciascun servizio, da uno solo dei
gestori cooperanti. In questo modo se si cerca, ad esempio, di accedere alla rete
locale, l'autenticazione viene effettuata dal gestore che ha in carico l'utente per
l'accesso alla rete. Come per il metodo federativo, in questa maniera ciascun
gestore gestisce in modo indipendente la propria politica di sicurezza.
Esistono molti SSO gratuiti e commerciali, eccone una lista parziale:
Sergnese Nicola 566/2002
Pagina 36 di 228
1. Il JA-SIG Central Authentication Service (CAS) è un servizio single sign-on
libero (originariamente sviluppato dall'Università di Yale) che permette alle
applicazioni web la possibilità di rinviare tutte le autenticazioni a un server
centrale o a più server di fiducia. Numerosi client sono disponibili
gratuitamente, inclusi client per Java, Microsoft .Net, PHP, Perl, Apache,
uPortal, Liferay e altri.
2. A-Select è il sistema di autenticazione Olandese co-sviluppato da SURFnet
(l'olandese NREN). A-Select ora è diventata open source ed è usata dal Governo
Olandese per esempio per DigiD, il loro sistema di autenticazione. A-Select
permette allo staff e agli studenti di ottenere l'accesso a svariati servizi web
attraverso una sola autenticazione on-line. Le istituzioni possono usare A-Select
per proteggere le loro applicazioni web in maniera semplice. Possono usare
differenti strumenti di autenticazione che vanno da username/password a metodi
più sicuri come una one-time password mandata a un cellulare o a
un'autenticazione bancaria su Internet.
3. CoSign è un progetto open source, originariamente sviluppato per dotare
l'Università del Michigan di un sicuro sistema di autenticazione web di tipo
single sign-on. CoSign permette di autenticare gli utenti sul web server e poi
fornisce un campo variabile lo username. Quando l'utente accede a una parte del
sito che richiede l'autenticazione, la presenza di questa variabile permette
l'accesso senza doversi loggare nuovamente. CoSign è parte del software lancio
del National Science Foundation Middleware Initiative.
4. Enterprise single sign-on (E-SSO), chiamato anche legacy single sign-on,
dopo una prima autenticazione utente, intercetta i prompt del login presentati da
un'applicazione secondaria e li inserisce automaticamente nei campi come un
loginID o una password. Il sistema E-SSO tiene conto dell'interazione con le
applicazioni
che
sono
incapaci
di
tirar
fuori
l'autenticazione,
fatta
precedentemente dall'utente, essenzialmente attraverso lo "screen scraping".
Sergnese Nicola 566/2002
Pagina 37 di 228
5. Il Web single sign-on (Web-SSO), anche chiamato Web Access Management
(Web-AM), lavora in sinergia con le applicazioni e le risorse che hanno accesso
a un web browser. L'accesso alle risorse web è intercettato sia usando un web
proxy server che installando un componente su ogni web server stabilito. Gli
utenti non autorizzati che tentano di accedere a una risorsa, vengono deviati
verso un servizio di autenticazione e ritornano solo dopo aver effettuato con
successo un single sign-on. I Cookies sono usati molto spesso per tracciare lo
stato di autenticazione dell'utente; l'infrastruttura Web-SSO estrae le
informazioni dell'identificazione dell'utente dagli stessi cookies, passandole in
ogni risorsa web.
6. Kerberos è un meccanismo conosciuto alle applicazioni e serve per estrarre
interamente le autenticazioni. Gli utenti si registrano sul server Kerberos, il
quale rilascia un "biglietto da visita", che il loro client software presenterà ai
server a cui loro tenteranno di accedere. Kerberos è disponibile per Unix, per
Windows e per piattaforme di elaborazione dati, ma richiede ampie modifiche al
codice dell'applicazione client/server, e questo lo rende poco adatto alle "legacy
application".
7. Federation è un nuovo approccio, anche per applicazioni web, che usa un
protocollo, basato su degli standard tra i quali SAML e WS-Federation, che
permette a una applicazione di accertare una sola volta l'identità di un utente di
servizi diversi, evitando così il bisogno di autenticazioni ridondanti.
8. Light-Weight Identity e Open ID, sotto la protezione di YADIS, offrono SSO
ripartiti e decentralizzati, dove l'identità è legata a una URL eseguita facilmente,
che può essere verificata da qualsiasi server che usi uno dei protocolli condivisi.
9. JOSSO o Java Open Single Sign-On è un'infrastruttura SSO open source
basata su J2EE, il cui scopo è trovare una soluzione per piattaforme
centralizzate di autenticazione dell'utente neutrale. JOSSO usa i servizi web per
identificare l'utente, permettendo l'integrazione di applicazioni non-Java (ad
Sergnese Nicola 566/2002
Pagina 38 di 228
esempio PHP, Microsoft ASP) al Servizio Single Sign-On usando il protocollo
SOAP sopra il protocollo HTTP.
10.Shibboleth System è un sistema sviluppato da Internet2 che consiste in un
pacchetto software opensource, basato su standard, per il SSO tra
organizzazioni o all'interno di un'organizzazione.
11.OpenSSO è un singolo prodotto che ha le funzionalità di diversi prodotti SUN,
nello specifico System Access Manager, System Federation Manager e System
SAMLv2 Plug-in per i servizi di federazione.
4.5
SSO utilitazzato sul portale OpenSSO
OpenSSO è un unico prodotto che racchiude le funzionalità di diversi prodotti SUN,
che sono System Access Manager, System Federation Manager e System SAMLv2
Plug-in per i servizi di federazione.
OpenSSO fornisce funzioni di access management attraverso l'implementazione di
servizi di autenticazione, di autorizzazione fondati su policy, di federazione e servizi di
sicurezza di web services. OpenSSO ha una struttura di tipo Client/Server composta da
un Client SDK, denominato Agent, utilizzato dall'applicazione da proteggere per
accedere e comunicare con OpenSSO, un framework di servizi che implementa la
logica di business di OpenSSO, e di interfacce di service provider (SPI) utilizzate per
estendere le funzionalità di OpenSSO e per estrarre le informazioni presenti nei
datastore.
OpenSSO fornisce diverse funzionalità:
1. Controllo Accesso: OpenSSO gestisce l'accesso a servizi e a risorse di rete
implementando servizi di autenticazione e di autorizzazioni. OpenSSO assicura
che l'accesso alle risorse protette sia ristretto ai soli utenti autorizzati.
Sergnese Nicola 566/2002
Pagina 39 di 228
2. Gestione della federazione: Con l'introduzione dei protocolli di federazione, le
informazioni di identità ed i diritti di un utente possono essere comunicati tra
domini diversi. Tramite la configurazione di un circolo di fiducia, e la
definizione di applicazioni e servizi come provider del circolo, gli utenti
possono associare o collegare le identità locali ai provider; le identità locali
sono federate e consentono ad un utente di effettuare il login su un identity
provider ed utilizzare un service provider federato senza dover effettuare di
nuovo l'operazione di autenticazione.
3. Sicurezza dei web services: Un web service è un servizio o un'applicazione che
espone una funzionalità di business o di infrastruttura attraverso un'interfaccia
di rete neutra rispetto al linguaggio ed indipendente dalla piattaforma. Il web
service definisce la sua interfaccia attraverso il Web Service Description
Language (WSDL) e comunica usando il protocollo SOAP e messaggi XML. È
necessario un intermediario, tipicamente un firewall o un load balancer, che
permetta la comunicazione tra il client web services (WSC) e il web service
provider (WSP). Assicurare l'integrità, la confidenzialità e la sicurezza dei web
services è critico sia per i fornitori del servizio che per gli utilizzatori. Il
modello di sicurezza adottato da OpenSSO identifica l'utente e ne preserva
l'identità attraverso interazioni multiple, mantenendo l'integrità e la riservatezza
dei dati utilizzando tecnologie esistenti.
Identity web services: Con l'attuale release di OpenSSO il sistema espone alcune
funzioni come semplici identity web services consentendo agli sviluppatori di
invocarli nello sviluppo dei propri applicativi attraverso l'IDE utilizzato. Gli identity
web
services
sono
disponibibili
usando
SOAP e
WSDL
oppure
REST
(Representational State Transfer). I web services non richiedono il deploy di un agent
o di un proxy ed includono funzionalità come l'autenticazione per validare le
credenziali utente, l'autorizzazione per consentire l'accesso alla risorsa protetta, il
provisioning per la gestione degli attributi utente e l'auto registrazione, e il log delle
Sergnese Nicola 566/2002
Pagina 40 di 228
operazioni.
4.6
Oltre SSO: Identity Management
Un sistema IAM è una soluzione tecnologica alle problematiche di gestione del ciclo
di vita delle identità digitali e degli accessi di utenti su più sistemi informatici. I
sistemi informatici solitamente sono indipendenti tra loro ed ognuno di essi ha un
proprio database utenti e delle proprie politiche di gestione delle identità digitali. In
queste condizioni gli utenti si trovano ad avere più identità digitali, ognuna associata
ad un sistema. Senza un sistema IAM bisognerebbe gestire gli utenti e le politiche di
accesso per ogni singolo sistema; ciò comporterebbe perdita di tempo da parte degli
amministratori che si ritroverebbero ad eseguire le stesse operazioni su tutti i sistemi.
Ad esempio, un semplice cambio di indirizzo email di un utente dovrebbe essere
eseguito su tutte le identità, con conseguente perdita di tempo e difficoltà di gestione.
Un sistema IAM mette a disposizione un unico punto di gestione per amministrare gli
accessi e gli utenti rendendo queste operazioni rapide e sicure. Il sistema, inoltre,
implementa la funzionalità di Single Sign On (SSO), che permette di autenticarsi ad
altri sistemi, senza dover ripetere la procedura di riconoscimento di ogni singola
risorsa.
4.7
Pagine di login dei remote web management
Nel seguente paragrafo sono riportate le pagine di login delle web management con il
codice sorgente solo della pagina principale, solo in appendice sarà riportato l'intero
codice delle pagine con le relative pagine di javascript e di stile.
Sergnese Nicola 566/2002
Pagina 41 di 228
4.7.1 CMC-TC (controllo rack)
codice
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
Sergnese Nicola 566/2002
Pagina 42 di 228
<title>CMC-TC/PU2 [172.16.10.43]</title>
<meta http-equiv="refresh" content="60; URL=cmclogin.cgi?0010101000000000000">
<link rel="stylesheet" type="text/css" href="cmc-tc.css">
</head>
<body style="margin: 0px; padding: 0px; background-color:#b2b6c2; background-image:
url(images/rmbck3.jpg); background-repeat: no-repeat; background-attachment: fixed;">
<center>
<form action="cmclogin.cgi?0210101000000000000" method=post>
<table border="0" width="800px">
<tr height="120px">
<td width="100px" align="center"><a href="http://www.rittal.com"
target="_blank"><img src="images/rittal_logo.gif" title="Rittal Homepage"
border="0" style="margin-top:5px;margin-left:2px"></td>
<td>
<table border="0">
<tr height="10px">
<td width="50px"></td>
<td width="380px"></td>
<td width="270px" rowspan=4 align="right"><a href="http://www.rimatrix5.com"
target="_blank"><img src="images/rima_logo.gif" title="Rimatrix5 Homepage"
border="0" style="margin-top:15px;margin-right:20px"></a></td>
</tr>
<tr height="45px">
<td></td>
<td id=bb20c>CMC-TC / Login Page</td>
<td></td>
</tr>
<tr height="25px">
<td></td>
<td id=bb14c style="color:#0769b2">172.16.10.43</td>
<td></td>
</tr>
<tr height="5px">
<td colspan=3></td>
</tr>
</table>
</td>
</tr>
<tr height="250px">
<td width="320px"></td>
<td>
<table border="0" width="480">
<colgroup>
<col width="200px">
<col width="280px">
</colgroup>
<tr height="40px">
Sergnese Nicola 566/2002
Pagina 43 di 228
<td colspan=2></td>
</tr>
<tr height="25px">
<td id=bn12r>Username&nbsp;&nbsp;&nbsp;</td>
<td id=bn12l><input type=text name="p0404" value="" size=20
maxlength=20></TD>
</tr>
<tr height="25px">
<td id=bn12r>Password&nbsp;&nbsp;&nbsp;</td>
<td id=bn12l><input type=password name="p0405" value="" size=20
maxlength=20></td>
</tr>
<tr height="25px">
<td id=bn12r></td>
<td id=bb12l>&nbsp;</td>
</tr>
<tr height="40px">
<td></td>
<td><input type=submit name="ok" value=" Login ">
<input type=reset name="reset" value=" Clear "></td>
</tr>
<tr height="40px">
<td colspan=2></td>
</tr>
<tr height="50px">
<td colspan=2><h2>&copy RITTAL GmbH, 2008</h2></td>
</tr>
</table>
</td>
</tr>
</table>
</form>
</center>
</body>
</html>
Sergnese Nicola 566/2002
Pagina 44 di 228
4.7.2 SW3COM ( SWITCHES )
codice
<html><head>
<title>Web user login</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="/libs/login.css" rel="stylesheet" type="text/css">
Sergnese Nicola 566/2002
Pagina 45 di 228
<script language=javascript src="/js/MulPlatAPI.js"></script>
<script language=javascript src="/libs/util.js"></script>
<script language=javascript>
function onBodyLoad()
{
var vCookie = GetCookie("lang");
if(null != vCookie)
{
document.getElementById("lang").value = vCookie;
}
if ( !top.IsSupportedBrowser() )
{
document.getElementById("msg").style.display = "";
}
document.forms[0].user_name.focus();
}
function trim( str )
{
str = str.replace(/^\s*/, "");
str = str.replace(/\s*$/, "");
return str;
}
function mySubmit(oForm)
{
SetCookie("lang",document.getElementById("lang").value);
var sUserName = trim(oForm.user_name.value);
if ( sUserName=="" )
{
alert("Input user name, please.");
return false;
}
oForm.user_name.value = sUserName;
oForm.password.value = trim(oForm.password.value);
return true;
}
</script>
</head>
<body style="background-color: #E1E9F5;" onload="onBodyLoad()">
<div id=msg style="display:none"><font color=red>
<div><b>
<script language="javascript">
Sergnese Nicola 566/2002
Pagina 46 di 228
document.write(top.getNavigatorString()+" "+top.VER_NUMBER);
</script></b></div>
You are using an unsupported or obsolete broswer which may cause errors or
disabled functions after login.</font>
<br><br>Supported browsers are:
<li>IE 5.5, IE6.0
<li>Netscape 7.1
<li>Mozilla 1.4
</div>
<form action="/Web" method=post onsubmit="return mySubmit(this);">
<center>
<TABLE width="350" class="input" border="0">
<TR><th colspan="2" class="TITLE">Web user login</th>
<TR><TD height="10" colspan=2>&nbsp;</TD></TR>
<TD align=right width=100>User Name</TD>
<TD><input name="user_name" style="width:160;" type="text" maxlength=80></TD>
<TR>
<TD align=right>Password</TD>
<TD><input name="password" style="width:160;" type="password"></TD>
<TR>
<TD align=right>Language</TD>
<TD><SELECT name="lang" id="lang" style="width:160;">
<OPTION value="0">English</OPTION>
<OPTION value="1">Chinese</OPTION>
</SELECT>
</TABLE>
<br><br>
<input class="buttonX" type="submit" value=" Login ">
</form>
</body>
</html>
Sergnese Nicola 566/2002
Pagina 47 di 228
4.7.3 IMPI( Service Nodes)
Codice
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
Sergnese Nicola 566/2002
Pagina 48 di 228
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Authentication</title>
<link href="/style.asp" type="text/css" rel="STYLESHEET">
<script type="text/javascript">
<!-if (top.frames.length!=0)
top.location=self.document.location;
// -->
</script>
<link rel="SHORTCUT ICON" href="favicon.ico">
</head>
<body class="auth">
<form action="auth.asp" method="POST">
<input type="hidden" name="nickname" value="">
<table align="center" border="0" cellpadding="0" cellspacing="0" width="100%">
<tr><td colspan="2">&nbsp;</td></tr>
<tr class="authLogo">
<td colspan="2" align="center">
<img src="/logo.gif" alt="LOGO">
</td>
</tr
<tr> <td colspan="2" align="center"><br><span
class="rsp_message">&nbsp;</span><!-- response_code_begin ERIC_RESPONSE_OK
response_code_end response_msg_begin response_msg_end --><br></td></tr>
<tr>
<td colspan="2" align="center" valign="top">
<table class="authInner" border="0" cellpadding="0" cellspacing="0">
<tr>
<td><img src="corner_lt.gif" width="45" height="45" alt=""></td>
<td class="authHeading" align="center">Authenticate with Login and Password!
</td>
<td><img src="corner_rt.gif" width="45" height="45" alt=""></td>
</tr>
<tr>
<td>&nbsp;</td>
<td>
<table class="authInner" border="0" cellpadding="10" cellspacing="0">
<tr>
<td align="right"><div class="bold">Username</div></td>
<td align="left"><input type="text" name="login" value="" maxlength="32"
size="32"></td>
</tr>
<tr>
<td align="right"><div class="bold">Password</div></td>
<td align="left"><input type="password" name="password" value=""
Sergnese Nicola 566/2002
Pagina 49 di 228
maxlength="32" size="32"></td>
</tr>
</table>
</td>
<td>&nbsp</td>
</tr>
<tr>
<td><img src="corner_lb.gif" width="45" height="45" alt=""></td>
<td align="center"><input type="image" src="button_login.en.gif"
name="action_login" value="Login" align="middle" style="vertical-align:middle">
</td>
<td><img src="corner_rb.gif" width="45" height="45" alt=""></td>
</tr>
</table>
</table>
</form>
</body>
</html>
Sergnese Nicola 566/2002
Pagina 50 di 228
4.7.4 E4 ( storage Elements)
Codice
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- (c) Copyrighted Materials, 2006. -->
<html>
<head>
<script language="JavaScript" src="js_utility_JW420P63_____________.js"></script>
Sergnese Nicola 566/2002
Pagina 51 di 228
<script language="JavaScript" src="js_table_JW420P63_____________.js"></script>
<script language="JavaScript" src="js_chaplin_JW420P63_____________.js"></script>
<script language="JavaScript"
src="js_user_config_JW420P63_____________.js"></script>
<script language="JavaScript" src="js_menu_list_JW420P63_____________.js"></script>
<script language="JavaScript"
src="js_create_menu_JW420P63_____________.js"></script>
<script language="JavaScript"
src="js_top_include_JW420P63_____________.js"></script>
<title>E4 Computer Engin. RAIDar</title>
</head>
<script language="JavaScript">
var timeCount = 0;
var contentFileName = "";
var pageHasAutoRefresh = 0;
var g_controlRunningCount = 0; // Incremented by g_control every 10 seconds
var g_controlRunningCountLast = 0; // Saved and checked by g_watchdog every 60 seconds
if ( isServedByRc() )
var refreshSystemPanelCounter = 41;
else
var refreshSystemPanelCounter = 0;
var refreshArrayPanelCounter = 0;
var refreshRsdSumCounter = 0;
var refreshRsdArrayCounter = 0;
var refreshRsdArrayDrvsCounter = 0;
var refreshRsdPortCounter = 0;
var refreshRsdDisDevsCounter = 0;
var refreshRsdDrvArrangeCounter = 0;
var refreshDmStatusCounter = 0;
var refreshRsdModStatusCounter = 0;
var refreshRsdEnvTempCounter = 0;
var refreshRsdEnvFanCounter = 0;
var refreshRsdEnvPowerCounter = 0;
var refreshRsdNetCounter = 0;
var refreshRsdGenConfigCounter = 0;
var refreshCreateArrayCounter = 0;
var refreshDfuCounter = 0;
var refreshLnCounter = 0;
var refreshEnclCounter = 0;
var refreshSchedulerCounter = 0;
var refreshSchedulerNotificationDisplayed = false;
var taskLinkContext = null;
var scheduleLinkContext = null;
var startIndex = 0;
var processingRequestWindowUp = 0;
var processingRequestWindow = 0; // If Window is up - this is window var
var lastLoginChoice = 0; // 0 = monitor, 1 = manage
Sergnese Nicola 566/2002
Pagina 52 di 228
var debugFrames = 0;
var contentPanelPageName;
var loginTopLevelVisitCount = 0;
// When log in, increments
var whatTask = "none";
var raidLevel = 0;
var arrayName = "";
var subState = 0;
var subCount = 0;
var numSubarrays = 0;
var numDrivesPerSubarray = 0;
var selectSpares = 0;
var barPageRefreshed = 0;
var devYear = 0;
var devMonth = 0;
var devDay = 0;
var devHour = 0;
var devMinute= 0;
var devSecond= 0;
var custForceRefreshCount = 0; // When moving from page that requires refresh, increments
var demoContentPageName = "rsd_summary.html";
var partitionIoRate = 0;
var partitionBandwidth = 0;
var partitionNumReads = 0;
var partitionNumWrites = 0;
var partitionNumSectorsRead = 0;
var partitionNumSectorsWritten = 0;
var partitionQueueDepth = new Array(0, 0, 0, 0);
var partitionIoSize = new Array(0, 0, 0, 0);
var totalIoRate = new Array(0, 0);
var totalBandwidth = new Array(0, 0);
var totalNumReads = new Array(0, 0);
var totalNumWrites = new Array(0, 0);
var totalNumSectorsRead = new Array(0, 0);
var totalNumSectorsWritten = new Array(0, 0);
var totalQueueDepth
= new Array(new Array(0, 0, 0, 0 ), new Array(0, 0, 0, 0) );
var gUserName = "";
var gUserType = "0";
var gUserLevel = "0";
var gUserCapability = "";
var gIsGcontrolAwake = false;
if ( (new String("2011")).charAt(0) != '[' )
contentPanelPageName = "/rsd_summary.html";
else
contentPanelPageName = demoContentPageName;
var timeDateStr = getTimeString();
var fetchName = makePageName( contentPanelPageName, timeDateStr );
if (debugFrames)
Sergnese Nicola 566/2002
Pagina 53 di 228
{ // Debug version has visible control frame
document.write('<frameset cols="300,*">');
document.write('<frame name="control" src="g_control_frame.html">');
document.write('<frame name="content" src="' + fetchName + '">');
document.write('</frameset>');
}
else
{ // Production version has non-visible control frame
document.write('<frameset cols="1,*" border="0" framespacing="0"
frameborder="NO">'); // Add onUnload="determineUserLevel()" to get Log Out
document.write('<frame name="control" src="g_control_frame.html" noresize>');
// Add
"noresize" to turn off ability to move frameset
document.write('<frame name="content" src="' + fetchName + '">'); // Add "noresize" to
turn off ability to move frameset
document.write('</frameset>');
}
</script>
<noframes>
<body style="margin:0; padding:0";>
<center>
<b>I am sorry, but your browser does not support frames.</b>
<br><br>
To view this web browser based application correctly, please use the latest version of either
Mozilla Firefox or Microsoft Internet Explorer, and verify your browser has its "cookies" and
"Cascading Style Sheets" enabled.
</center>
</body>
</noframes>
</html>
Sergnese Nicola 566/2002
Pagina 54 di 228
4.7.5 ASUS ( storage elements)
Codice
<html><head>
<script>
Sergnese Nicola 566/2002
Pagina 55 di 228
readCk = function(name)
{
var nameEQ = name + "=";
var ca = top.document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
var lang = readCk('lang');
top.gLangSettingSet = false;
if(lang)
top.gLangSetting = lang;
else
top.gLangSetting = "EN";
top.gLangSettingSet=true;
</script>
<link href="../style/login.css" rel="stylesheet" type="text/css">
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script src="../lib/ui.js"></script>
<script src="../lib/eLang.js"></script>
<script>
document.write("<script language = \"Javascript\", src = \"../str/" +
top.gLangSetting + "/global_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" +
top.gLangSetting + "/login_str.js\"><\/script>");
</script>
<script src="../impl/login_imp.js"></script>
<script>
onload = function() {
if (top.gLangSettingSet == true) {
doInit();
}
}
</script>
</head><body>
<table style="margin: 0px; padding: 0px;" border="0" cellpadding="0" cellspacing="0"
width="100%">
Sergnese Nicola 566/2002
Pagina 56 di 228
<tbody><tr>
<td id="headerleft" width="412"><img src="../res/banner_left.png" alt=""
height="63" width="412"></td>
<td id="headermiddle"> <img src="../res/banner_background.png" alt=""
border="0" height="63" width="100%"></td>
<td id="headerright" width="407"><img src="../res/banner_right.png"
alt="" height="63" width="407"></td>
</tr>
</tbody></table>
&nbsp;
<p>&nbsp;</p>
<div align="center">
<div class="shadow">
<h3>
<script>document.writeln(eLang.getString("login", "STR_LOGIN_PLS_LOGIN"));</script>
</h3>
<div class="loginBox">
<div class="lbFields">
<form action="javascript://">
<p id="msglbl">
<script>document.writeln(eLang.getString("login", "STR_LOGIN_PLS_LOGIN"));</script>
</p>
<label style="width:85px; text-align:left;">
<script>document.writeln(eLang.getString("login", "STR_LOGIN_USERNAME"));</script>
</label><input id="login_username" name="T1" size="20" style="width:146px;"
tabindex="1" type="text"><br><br>
<label style="width:85px; text-align:left;">
<script>document.writeln(eLang.getString("login", "STR_LOGIN_PASSWORD"));</script>
</label><input id="login_password" name="T2" size="20" style="width:146px;"
tabindex="2" type="password"><br><br>
<input value="Login" class="button" name="Login" onclick="DoLogin();"
type="submit">
</form>
</div>
</div>
</div>
</div>
</body></html>
Sergnese Nicola 566/2002
Pagina 57 di 228
4.7.6 Drac (worker nodes solo dell)
codice
Sergnese Nicola 566/2002
Pagina 58 di 228
HTML><HEAD>
<META http-equiv="Content-Type" CONTENT="text/html; charset=utf-8">
<style type="text/css">
<!-BODY
{
background-color: #FFFFFF;
topmargin: "20";
leftmargin:"15";
link: "#000000";
vlink: "#000000";
alink: "#000000";
}
BODY.masthead
{
background-color: #00339A;
}
BODY.component-tree
{
background-color: #D8EBFC
}
BODY.server-name
{
background-color: #FFFFCE
}
BODY.snb
{
background-color: #00339A
}
TD
{
font-weight: normal;
font-size: 10pt;
color:black;
font-family: Arial;
}
TD.server-name
{
font-weight: bold;
font-family: Arial;
font-size: 14pt;
color: black;
background-color: #FFFFCE;
}
TD.border
{
Sergnese Nicola 566/2002
Pagina 59 di 228
background-color: #9A9B9F;
}
A
{
font-size:10pt;
font-family:Arial;
font-weight:normal;
color:black;
text-decoration: none;
}
IMG
{
border-top:medium none;
border-bottom:medium none;
border-left:medium none;
border-right:medium none;
}
SPAN.data-area-prompt-text {
FONT-WEIGHT: normal;
FONT-SIZE: 11 pt;
COLOR: black;
FONT-FAMILY: Arial
}
.login-header
{
font-family: Arial;
color: #0033CC;
font-size: 14pt;
font-weight: normal;
}
.subbar-text-select
{
font-size: 8pt;
color: #0033CC;
font-family: Arial;
font-weight: normal;
}
.subbar-text-unselect
{
font-size: 8pt;
color: #000000;
font-family: Arial;
font-weight: normal;
}
Sergnese Nicola 566/2002
Pagina 60 di 228
.prompt-text
{
font-size: 10pt;
color: #000000;
font-family: Arial;
font-weight: bold;
}
.login-text
{
font-size: 10pt;
color: #000000;
font-family: monospace;
font-weight: bold;
}
.subheading-text
{
font-size: 10pt;
color: #000000;
font-family: Arial;
font-weight: bold;
}
.field-text
{
font-size: 9pt;
color: #000000;
font-family: Arial;
font-weight: normal;
}
.button-text
{
font-size: 8pt;
color: #000000;
font-family: Arial;
font-weight: normal;
cursor: hand;
}
.gray-button-text
{
font-size: 8pt;
color: #ffffff;
font-family: Arial;
Sergnese Nicola 566/2002
Pagina 61 di 228
font-weight: normal;
}
.gray-link-text
{
font-size: 10pt;
color: #ffffff;
font-family: Arial;
font-weight: normal;
}
.system-type-text
{
font-size: 8pt;
color: #ffffff;
font-family: Arial;
font-weight: normal;
}
.page-title-text
{
font-size: 14pt;
color: #0066cc;
font-family: Arial;
font-weight: normal;
}
.tab-select-text
{
font-size: 8pt;
color: #000000;
font-family: Arial;
font-weight: bold;
}
.tab-unselect-text
{
font-size: 8pt;
color: #00339a;
font-family: Arial;
font-weight: bold;
}
.navbar-text
{
font-size: 8pt;
color: #ffffff;
font-family: Arial;
font-weight: bold;
}
.tree-root-text
Sergnese Nicola 566/2002
Pagina 62 di 228
{
font-size: 10pt;
color: #0066cc;
font-family: Arial;
font-weight: bold;
}
.data-text
{
font-size: 10pt;
color: #000000;
font-family: Arial;
font-weight: normal;
}
-->
</style>
<TITLE>
Dell(TM) Remote Access Controller/Modular Chassis</TITLE>
<script language="Javascript">
function display_login()
{
if(window !=top)
window.open("login_index.htm","_top");
else
{
document.write('</head >');
document.write('<frameset rows="25,54,30,*" framespacing="0"
BORDER="0" frameborder="0" >');
document.write('<frameset cols="50%,50%">');
document.write('<frame src="navbar.htm" scrolling="no" noresize >');
document.write('<frame src="log_navbar2.htm" scrolling="no" noresize>');
document.write('</frameset >');
document.write('<frame src="logo.htm" target="_self" scrolling="no"
noresize marginwidth="0" marginheight="0">');
document.write('<frame src="activeobj.htm" scrolling="no" noresize
marginwidth="0" marginheight="0">');
document.write('<frame src="login.htm" NAME="content" scrolling="auto"
target="_self">');
document.write('</frameset ></html >');
}
}
display_login();
</script>
<img src='images\tree\ctfork.gif' WIDTH=19 HEIGHT=16>
Sergnese Nicola 566/2002
Pagina 63 di 228
<img src='images\tree\ctl.gif' WIDTH=19 HEIGHT=16>
<img src='images\tree\ctline.gif' WIDTH=19 HEIGHT=16>
<img src='images\tree\ctminus.gif' WIDTH=19 HEIGHT=16>
<img src='images\tree\ctpfork.gif' WIDTH=19 HEIGHT=16>
<img src='images\tree\ctplus.gif' WIDTH=19 HEIGHT=16>
<img src='images\tree\no_line.gif' WIDTH=19 HEIGHT=16>
4.7.7 Centron ( monitoraggio e configurazione privata )
codice
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title>Centreon - IT & Network Monitoring</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Sergnese Nicola 566/2002
Pagina 64 di 228
<meta name="Generator" content="Centreon - Copyright (C) 2005 - 2008 Open Source
Matters. All rights reserved." />
<meta name="robots" content="index, nofollow" />
<link href="./Themes/Centreon-2/login.css" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="./img/favicon.ico">
</head>
<body OnLoad="document.login.useralias.focus();">
<form action="./index.php" method="post" name="login">
<div id='LoginInvit'>
<table id="logintab1">
<tr>
<td class="LoginInvitLogo" colspan="2"><img src="img/centreon.gif"
alt="Centreon Logo" title="Centreon Logo" style="" /></td>
</tr>
<tr>
<td class="LoginInvitVersion"><br />
2.0.2
</td>
<td class="LoginInvitDate"><br />10/01/2011</td>
</tr>
<tr>
<td colspan="2">
<table id="logintab2">
<tr>
<td><label for="useralias">Login:</label></td>
<td><input type="text" name="useralias" value=""
class="inputclassic" ></td>
</tr>
<tr>
<td><label for="password">Password:</label></td>
<td><input type="password" name="password" value=""
class="inputclassicPass" ></td>
</tr>
<tr>
<td colspan="2" id="sublogin">
<input type="Submit" name="submit" value="Login" >
</td>
</tr>
</table>
</td>
</tr>
<tr>
<td id="LoginInvitcpy" colspan="2">
<br />
&copy; 2005-2009 <a
href="mailto:[email protected]">Centreon</a>
</td>
</tr>
Sergnese Nicola 566/2002
Pagina 65 di 228
</table>
</div>
</form></body>
</html>
5
Realizzazione ed Implementazione
5.1
Analisi
Con questo progetto s'intende aggiungere le funzionalità del SSO a tutti i servizi che
ne erano sprovvisti di seguito se ne formalizzano i requisiti.
5.1.1 Requisiti funzionali
L'amministratore si deve poter loggare sul sistema.
L'amministratore deve poter selezionare il servizi che permette di monitorare e gestire
l'apparecchiatura.
Selezionato il servizio l'user deve poter accedere al servizi non ri-autenticandosi sullo
stesso.
5.1.2 Requisiti non funzionali
Il login sul servizio selezionato deve essere automatico.
5.1.3 Di dominio
Sergnese Nicola 566/2002
Pagina 66 di 228
Ogni apparecchio presenta un username e una password diverse.
5.2
Analisi dei rischi
Sicurezza:
L'amministratore deve essere consapevole dei rischi relativi alle tematiche di sicurezza
e quindi deve applicare tutte le procedure per aumentare la sicurezza ovvero deve
essere responsabile nello scegliere e gestire i dati di autenticazione.
Risoluzione:
•
aumentare la complessità della password;
•
cambiare la password periodicamente.
Aggiunta e rimozione dei servizi
per mantenere la coerenza bisogna aggiornare elenco coerentemente ai servizi oppure
considerare un aggiornamento dinamico degli stessi.
Sergnese Nicola 566/2002
Pagina 67 di 228
5.3
Diagramma dei Casi d'uso.
Figura 17: diagramma d'uso
Sergnese Nicola 566/2002
Pagina 68 di 228
5.4
Tabelle di cockburn
Il web quest effettua il login per autenticarsi come amministratore per monitorare la
rete
USE CASE
Login
Goal in contex
L'utente si logga
Scope & Level
Precondictions
Visualizza pagina e preme su login in
welcome
Success End Condition
Utente loggato con successo
Failed End condition
Dati di autenticazione sbagliati
Primary Actor
Amministratore
Trigger
Description
Click sul login in welcome
step
Amministratore
1
2
Sistema
Visualizza pagina di login
Si autentica e preme signon
3
Visualizza home page
amministratore
Tabella 1: cockburn login
Sergnese Nicola 566/2002
Pagina 69 di 228
USE CASE
Seleziona servizio di web management
Goal in contex
L'amministratore vuole visualizzare una
pagina di web management
Scope & Level
Precondictions
Utente loggato come amministratore
Success End Condition
Visualizzazione pagina web management
Failed End condition
Primary Actor
Amministratore
Trigger
Visualizzata pagina principale de servizi
SSO
Description
step
Amministratore
1
trigger
2
3
Visualizza pagina
principale de servizi SSO
Seleziona categoria
desiderata
4
5
Sistema
Visualizza pagina della
categoria selezionata
Seleziona web
management desiderato
6
Visualizza pagina della
web management
selezionata
Option n°1
5a
Seleziona lista
6a
7a
Visualizza lista tutti
i servizi principali
Click su categoria
8a
Continua con lo step 4
Option n°2
7b
8b
Click su web
management desiderato
Continua con lo step 6
Tabella 2: cockburn seleziona web management
Sergnese Nicola 566/2002
Pagina 70 di 228
5.5
Diagramma di navigazione
Figura 18: navigazione
I rombi rappresentano strade opzionali non condizionali.
Sergnese Nicola 566/2002
Pagina 71 di 228
5.6
Progettazione & Implementazione
Il sistema che si va realizzare è composto da una pagina principale che presenta
all'amministratore le varie categorie dei servizi web management. Ogni categoria porta
poi ad una pagina contenente l'elenco di tutti i servizi relativi a quella categoria.
Quindi la struttura utilizzata e una struttura ad albero in cui abbiamo un nodo
principale che rappresenta l'elenco delle categorie principali, poi abbiamo in nodi figli
di primo livello che rappresentano l'elenco dei servizi della rispettiva categoria, e
infine abbiamo le foglie che rappresentano la web management del rispettivo servizio.
5.6.1 Linguaggi utilizzati
Poichè dobbiamo lavorare in ambiente web-based per sviluppare applicazioni clientserver, l'uso di un linguaggio che ci consenta di lavorare facilmente in tale ambiente è
d'obbligo. Esistono tanti linguaggi con queste caratteristiche, come PHP, JAVA, ASP,
ed ognuno consente un approccio molto semplice per lo sviluppo, nonostante siano
molto diversi tra loro.
Tra i linguaggi di programmazione abbiamo scelto PHP, che, oltre ad essere free ed
open source, è orientato agli oggetti, ha un livello di astrazione molto alto e ci
consente di sfruttare tecnologie ad-hoc.
Per logica applicativa lato client useremo invece Java-script ( ecmascript ) e quando
possibile tecnologia AJAX che ci consentono di realizzare in maniera semplice e
veloce applicazione eseguibili sul browser.
Per quanto riguarda la presentazione dei dati useremo il linguaggio di marcatura
HTML, CSS, ecc.
Date le nostre scelte utilizzare una serie di ambienti di sviluppo che ci consentono di
realizzare le nostre applicazioni in maniera veloce e rispettando gli standard.
Sergnese Nicola 566/2002
Pagina 72 di 228
In particolare liferay, come abbiamo già introdotto, dispone di tutte le funzionalità
necessarie alla realizzazione di un portale web quali web publishing, content
management, enterprise collaboration e social networking, il tutto costruito su una
piattaforma open source completamente realizzata in accordo a standard aperti e
allineata alle ultime tecnologie, permette di disporre di una gestione degli utenti,
gruppi, ruoli e permessi ed è molto potente e flessibile che arriva fino alla gestione dei
permessi di un singolo contenuto o di un singolo elemento del portale. Inoltre è
integrato con diversi sistemi di gestione delle identità quali OpenID, OpenSSO, CAS
ed abilita la fruizione in modalità single sign-on a sistemi eterogenei.
5.6.2 Sviluppo
Per bypassare le pagine di login sono state testate diverse metodologie, di seguito sono
riportate quelle funzionanti, per facilitare la lettura integrerò le spiegazioni con delle
immagini.
Sergnese Nicola 566/2002
Pagina 73 di 228
5.6.2.1
CMC-TC
Per lo sviluppo del bypass di queste pagine di login è stato utilizzato l'iframe portlet
messo a disposizione dal portale liferay.
Figura 19: configurazione iframe portlet per cmc
Nella Voce cerchiata in rosso bisogna metterci l'url dove inviare i dati di autenticazione
, poi bisogna spuntare authenticate (cerchiato in blue), poi scegliere da tipo di
autenticazione (cerchiato in arancione) from, poi da metodo di from scegliere, che è il
metodo che si trova alla tag from del codice sorgente della pagina di login,(cerchiato in
rosa) post. Adesso compilare i campi cerchiati in giallo con i dati di autenticazione, per
field name di username e password, e per i valori i dati per autenticarsi ad esempio in
value username nico e in value password nico.
Per i nomi di username e password cercare nel codice sorgente della pagina di login il
Sergnese Nicola 566/2002
Pagina 74 di 228
nome dei due relativi campi, in generale sono riconoscibili dalla tag input esempio
codice cmc:
Figura 20: nomi campi username password
5.6.2.2
IMPI
Per lo sviluppo del bypass di queste pagine di login è stato implementato del codice
javascript modificando il codice sorgente della pagina di login.
Il codice implementato è il seguente:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css"> div#LoginInvit{position:absolute;left:-9999px} </style>
<title>""</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<link href="" rel="stylesheet" type="text/css">
</head>
<body onload="document.login.action_login.click()">
<form action="http://ipmi-atlasse11.na.infn.it/auth.asp" method="post" name="login">
<input type="hidden" name="nickname" value="">
Sergnese Nicola 566/2002
Pagina 75 di 228
<div id='LoginInvit'>
<table class="authInner" border="0" cellpadding="10" cellspacing="0">
<tr>
<td align="right"><div class="bold">Username</div></td>
<td align="left"><input type="text" name="login" value="dato di
autenticazione" maxlength="32" size="32"></td>
</tr>
<tr>
<td align="right"><div class="bold">Password</div></td>
<td align="left"><input type="password" name="password" value="dato di
autenticazione" maxlength="32" size="32"></td>
</tr>
<tr>
<td><img src="http://ipmi-atlasse11.na.infn.it/corner_lb.gif" width="45" height="45"
alt=""></td>
<td align="center"><input type="Submit" src="http://ipmiatlasse11.na.infn.it/button_login.en.gif" name="action_login" value="Login" align="middle"
style="vertical-align:middle">
</td>
<td><img src="http://ipmi-atlasse11.na.infn.it/corner_rb.gif" width="45" height="45"
alt=""></td>
</tr>
</table>
</div>
</form></body>
</html>
le istruzioni aggiunte o modificate sono le istruzioni in grassetto.
Con l'istruzione <style type="text/css"> div#LoginInvit{position:absolute;left:-9999px} </style>
si nasconde la pagina, con <body onload="document.login.action_login.click()"> funzione
javascript che permette il autosubmit della form, cioè permette l'auto-invio dei dati di
autenticazione, con <form action="http://ipmi-atlasse11.na.infn.it/auth.asp" method="post"
name="login"> pagina a cui sono inviati i dati di autenticazione, <div id='LoginInvit'> per
nascondere la pagina, dati di autenticazione non sono riportati per motivi di sicurezza.
Una volta creata la pagina caricarla sul server e con un'iframe portlet e richiamarla,
cioè impostare indirizzo e autenticazione from di tipo post.
Sergnese Nicola 566/2002
Pagina 76 di 228
5.6.2.3
ASUS
Per lo sviluppo del bypass di queste pagine di login è stato implementato del codice
javascript e ajax oltre a riportare tutti gli script .js (javascript) modificando il codice
sorgente della pagina di login similmente come per impi, ovviamente cambiando i dati
di autenticazione diversi, il codice relativo siccome molte è riportato tutto in
appendice.
5.6.2.4
E4
Per lo sviluppo del bypass di
queste pagine
di login come per asus è stato
implementato del codice javascript e ajax oltre a riportare tutti gli script .js (javascript)
modificando il codice sorgente della pagina di login, ovviamente cambiando i dati di
autenticazione diversi, il codice relativo, come per asus, siccome molto è riportato
tutto in appendice.
5.6.2.5
CENTRON
Per lo sviluppo del bypass di queste pagine di login è stato implementato del codice
javascript modificando il codice sorgente della pagina di login.
Il codice implementato è il seguente:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<style type="text/css"> div#LoginInvit{position:absolute;left:-9999px} </style>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta name="Generator" content="Centreon - Copyright (C) 2005 - 2008 Open Source
Sergnese Nicola 566/2002
Pagina 77 di 228
Matters. All rights reserved." />
<meta name="robots" content="index, nofollow" >
<link href="" rel="stylesheet" type="text/css">
<link rel="shortcut icon" href="">
</head>
<body onload="document.login.submit.click()">
<form action="http://tier2-nagios.na.infn.it/centreon/index.php" method="post"
name="login">
<div id='LoginInvit'>
<table id="logintab1">
<tr>
<td class="LoginInvitLogo" colspan="2"><img src="" alt="" title=""
style="" /></td>
</tr>
<tr>
<td class="LoginInvitVersion"><br />
</td>
<td class="LoginInvitDate"><br />
</td>
</tr>
<tr>
<td colspan="2">
<table id="logintab2">
<tr>
<td><label for="useralias"></label></td>
<td><input type="hidden" type="text"
name="useralias" value="inserire autenticzione" class="inputclassic" ></td>
</tr>
<tr>
<td><label for="password"></label></td>
<td><input type="hidden" type="password"
name="password" value="inserire autenticzione" class="inputclassicPass" ></td>
</tr>
<tr>
<td colspan="2" id="sublogin">
<input type="Submit" name="submit" value=""
>
</td>
</tr>
</table>
</td>
</tr>
<tr>
Sergnese Nicola 566/2002
Pagina 78 di 228
<td id="LoginInvitcpy" colspan="2">
<br />
</td>
</tr>
</table>
</div>
</form></body>
</html>
le istruzioni aggiunte o modificate sono le istruzioni in grassetto.
Con l'istruzione <style type="text/css"> div#LoginInvit{position:absolute;left:-9999px} </style>
si nasconde la pagina, con <body onload="document.login.action_login.click()"> funzione
javascript che permette il autosubmit della form, cioè permette l'auto-invio dei dati di
autenticazione, con <form action="http://tier2-nagios.na.infn.it/centreon/index.php"
method="post" name="login"> pagina a cui sono inviati i dati di autenticazione, <div
id='LoginInvit'> per nascondere la pagina, dati di autenticazione non sono riportati per
motivi di sicurezza.
Una volta creata la pagina caricarla sul server e con un'iframe portlet e richiamarla,
cioè impostare indirizzo e autenticazione from di tipo post.
5.6.2.6
DRAC (solo dell)
Per lo sviluppo del bypass di queste pagine di login è stato utilizzato l'iframe portlet
messo a disposizione dal portale liferay.e va configurata cosi come è stata configurata
la cmc ovviamente mettendo i dati relativi a questo servizio, l'indirizzo relativo è
questo https://atlasdrac01.na.infn.it/Forms/f_login i campi username e password sono
TEXT_USER_NAME e TEXT_PASSWORD. Dati di autenticazione non riportati per
sicurezza.
Sergnese Nicola 566/2002
Pagina 79 di 228
5.6.2.7
SW3COM
Per lo sviluppo del bypass di queste pagine di login come per è stato implementato
del codice javascript e ajax oltre a riportare tutti gli script .js (javascript) modificando
il codice sorgente della pagina di login, di seguito si riporta il codice:
<html><head>
<title>Web user login</title>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<link href="/libs/login.css" rel="stylesheet" type="text/css">
<script language=javascript src="/js/MulPlatAPI.js"></script>
<script language=javascript src="/libs/util.js"></script>
<script language=javascript>
function onBodyLoad()
{
var vCookie = GetCookie("lang");
if(null != vCookie)
{
document.getElementById("lang").value = vCookie;
}
if ( !top.IsSupportedBrowser() )
{
document.getElementById("msg").style.display = "";
}
document.forms[0].user_name.focus();
}
function trim( str )
{
str = str.replace(/^\s*/, "");
str = str.replace(/\s*$/, "");
return str;
}
function mySubmit(oForm)
{
SetCookie("lang",document.getElementById("lang").value);
var sUserName = trim(oForm.user_name.value);
if ( sUserName=="" )
{
alert("Input user name, please.");
return false;
}
Sergnese Nicola 566/2002
Pagina 80 di 228
oForm.user_name.value = sUserName;
oForm.password.value = trim(oForm.password.value);
return true;
}
</script>
</head>
<body style="background-color: #E1E9F5;" onload="onBodyLoad()">
<div id=msg style="display:none"><font color=red>
<div><b>
<script language="javascript">
document.write(top.getNavigatorString()+" "+top.VER_NUMBER);
</script></b></div>
You are using an unsupported or obsolete broswer which may cause errors or
disabled functions after login.</font>
<br><br>Supported browsers are:
<li>IE 5.5, IE6.0
<li>Netscape 7.1
<li>Mozilla 1.4
</div>
<form action="http://sw3com-atlas04.na.infn.it/Web" method=post onsubmit="return
mySubmit(this);">
<center>
<TABLE width="350" class="input" border="0">
<TR><th colspan="2" class="TITLE">Web user login</th>
<TR><TD height="10" colspan=2>&nbsp;</TD></TR>
<TD align=right width=100>User Name</TD>
<TD><input name="user_name" style="width:160;" type="text" maxlength=80></TD>
<TR>
<TD align=right>Password</TD>
<TD><input name="password" style="width:160;" type="password"></TD>
<TR>
<TD align=right>Language</TD>
<TD><SELECT name="lang" id="lang" style="width:160;">
<OPTION value="0">English</OPTION>
<OPTION value="1">Chinese</OPTION>
</SELECT>
</TABLE>
<br><br>
<input class="buttonX" type="submit" value=" Login ">
</form>
</body>
</html>.
Sergnese Nicola 566/2002
Pagina 81 di 228
5.6.2.8
Pagina SSO Login
Di seguito viene riportato il codice che è stato scritto per creare la pagina principale
del sistema SSO Login.
<div align="center">
<h1>SSO Login</h1>
</div>
<table width="70%" height="70%" border="0" align="center">
<tbody>
<tr>
<td align="center">
<h1>L1: ATLAS Data Center</h1>
</td>
<td align="center">
<h1>L2: SCoPE Data Center</h1>
</td>
</tr>
<tr>
<td align="center">
<form action="pagina dei servici cmc atlas">
<h2>
<p style="text-align: center;"><input type="submit" title="Controllo rank e
Monitoraggio Ambientale" value="CMC" /></p>
</h2>
</form>
</td>
<td align="center">
<form action="pagina dei servici cmc scope">
<h2>
<p style="text-align: center;"><input type="submit" title="Controllo rank e
Monitoraggio Ambientale" value="CMC" /></p>
</h2>
</form>
</td>
</tr>
<tr>
<td align="center">
<form action="pagina worker nodes atlas">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Worker
Nodes" /></p>
</h2>
</form>
</td>
<td align="center">
Sergnese Nicola 566/2002
Pagina 82 di 228
<form action="pagina worker nodes scope">
<h2>
<p style="text-align: center;"><input type="submit" title="" value=" Worker
Nodes" /></p>
</h2>
</form>
</td>
</tr>
<tr>
<td align="center">
<form action="pagina Storage Elements atlas">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Storage
Elements" /></p>
</h2>
</form>
</td>
<td align="center">
<form action="pagina Storage Elements scope">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Storage
Elements" /></p>
</h2>
</form>
</td>
</tr>
<tr>
<td align="center">
<form action="pagina Switches atlas">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Switches"
/></p>
</h2>
</form>
</td>
<td align="center">
<form action="pagina Switches scope">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Switches"
/></p>
</h2>
</form>
</td>
</tr>
<tr>
<td align="center">
<form action="pagina service nodes atlas">
Sergnese Nicola 566/2002
Pagina 83 di 228
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Service
Node" /></p>
</h2>
</form>
</td>
<td align="center">
<form action="pagina service nodes scope">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Service
Node" /></p>
</h2>
</form>
</td>
</tr>
</tbody>
</table>
5.6.2.9
Pagina di selezione servizio
Ogni categoria selezionata porta ad una pagina divisa in due parti, la pagina e divisa in
30% spoiler 70% tabella servizi, a sinistra si trova un iframe portlet in cui c'è la lista di
tutti servizi di web management, la quale è visualizzabile se lo si desidera, di seguito
riportiamo la pagina che sarà caricata sul server. In ogni pagina si farà riferimento ad
un file diverso, perché è stato deciso che la categoria già visibile non deve essere
riportata nella lista.
<html>
<head>
<title>Menu Dinamico a tendina</title>
<link rel="stylesheet" type="text/css" href="menu.css">
<script language="javascript" src="menu.js"></script>
</head>
<body>
<div style="top:0px; left:0px; width: 100%; height: 100%;"
onMouseOver="setTimeout('chiudi()',9999999);"> </div>
<div style="top:0px; left:0px; width:120;">
<table border="0" cellspacing="4">
<tr><td> L1: ATLAS Data Center </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/work-nodes-ata"
onMouseOver="apri(1)" target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements1"
Sergnese Nicola 566/2002
Pagina 84 di 228
onMouseOver="apri(2)" target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/Switches-atlas"
onMouseOver="apri(3)" target="_blank">Switches</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/servicenodeatla"
onMouseOver="apri(4)" target="_blank">Service Nodes</a> </td></tr>
<tr><td>L2: SCoPE Data Center</td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmc" onMouseOver="apri(5)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/worker-node"
onMouseOver="apri(6)" target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements"
onMouseOver="apri(7)" target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/switches" onMouseOver="apri(8)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="javascript:void(0)" onMouseOver="apri(9)" target="_blank">Service
Nodes</a> </td></tr>
</table>
</div>
<!-- menu 1 :: worker nodes -->
<div id="menu1" style="top: 4px;" class="menu" >
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmiatlaswn09.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmiatlaswn10.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmiatlaswn11.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmiatlaswn12.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmiatlaswn13.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmiatlaswn14.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmiatlaswn15.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmiatlaswn16.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmiatlaswn17.na.infn.it/</a><br>
</div>
<!-- menu 2 :: Storage Elements -->
<div id="menu2" style="top: 25px;" class="menu" >
<a href="#">http://atlasse02.na.infn.it/</a><br>
<a href="#">http://atlasse03.na.infn.it/</a><br>
<a href="#">http://atlasse04.na.infn.it/</a><br>
<a href="#">http://atlasse05.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 85 di 228
<a href="#">http://atlasse06.na.infn.it/</a><br>
<a href="#">http://atlasse07.na.infn.it/</a><br>
</div>
<!-- menu 3 :: Switches -->
<div id="menu3" style="top: 46px;" class="menu" >
<a href="#">http://sw3com-atlas01.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas03.na.infn.it/</a><br>
<a href="#">http://swdell-scope01.na.infn.it/</a><br>
</div>
<!-- menu 4 :: Services Nodes -->
<div id="menu4" style="top: 67px;" class="menu" >
<a href="http://localhost:8080/web/guest/service-node-ata" target="_blank">http://ipmiatlasce01.na.infn.it</a><br>
</div>
<!-- menu 5 :: CMC -->
<div id="menu5" style="top: 200px;" class="menu" >
<a href="#">http://172.21.0.72/(cmc22)</a><br>
<a href="#">http://172.21.0.73/(cmc23)</a><br>
<a href="#">http://172.21.0.74/(cmc24)</a><br>
<a href="#">http://172.21.0.75/(cmc25)</a><br>
<a href="http://localhost:8080/web/guest/cmc26" target="_blank">http://172.21.0.76/
(cmc26)</a><br>
<a href="http://localhost:8080/web/guest/altri" target="_blank">http://172.21.0.77/
(cmc27)</a><br>
<a href="http://localhost:8080/web/guest/altro1" target="_blank">http://172.21.0.78/
(cmc28)</a><br>
<a href="#">http://172.21.0.79/(cmc29)</a><br>
<a href="#">http://172.21.0.80/(cmc30)</a><br>
<a href="http://localhost:8080/web/guest/altr1" target="_blank">http://172.21.0.81/
(cmc31)</a><br>
<a href="http://localhost:8080/web/guest/prov" target="_blank">http://172.21.0.82/
(cmc32)</a><br>
<a href="http://localhost:8080/web/guest/2" target="_blank">http://172.21.0.83/
(cmc33)</a><br>
</div>
<!-- menu 6 :: Worker Nodes -->
<div id="menu6" style="top: 0px;" class="menu" >
<a href="#">http://ipmi-atlaswn01.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn02.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn03.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn04.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn05.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn06.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn07.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 86 di 228
<a href="#">http://ipmi-atlaswn08.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn18.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn19.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn20.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn21.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn22.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn23.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn24.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn25.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn26.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn27.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn28.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn29.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn30.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn31.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn32.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn33.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn34.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn35.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn36.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn37.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn38.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn39.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn40.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn41.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn42.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn43.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn44.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn45.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn46.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn47.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn48.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn49.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn50.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn51.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn52.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn53.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn54.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn55.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn56.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn57.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn58.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn59.na.infn.it/</a><br>
</div>
<!-- menu 7 :: Storage Elements -->
<div id="menu7" style="top: 280px;" class="menu" >
<a href="#">http://atlasse08.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 87 di 228
<a href="#">http://atlasse09.na.infn.it/</a><br>
<a href="#">http://atlasse10.na.infn.it/</a><br>
<a href="#">http://atlasse11.na.infn.it/</a><br>
<a href="#">http://atlasse12.na.infn.it/</a><br>
<a href="#">http://atlasse13.na.infn.it/</a><br>
<a href="#">http://atlasse14.na.infn.it/</a><br>
<a href="#">http://atlasse15.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03b.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04b.na.infn.it/</a><br>
</div>
<!-- menu 8 :: Switches -->
<div id="menu8" style="top: 300px;" class="menu" >
<a href="#">http://swdell-atlas01.na.infn.it/</a><br>
<a href="#">http://swdell-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas04.na.infn.it/</a><br>
</div>
<script type="text/javascript">inizializza(9);</script>
</body>
</html>.
A destra ci sarà invece una web content display, con in alto il pulsante torna dietro e
sotto la lista delle risorse della categoria selezionata
Di seguito riportiamo il codice della pagina worker nodes atlas come esempio,
fondamentalmente le altre sono uguali cambia solo i riferimenti alle pagine.
<div>
<form action="http://localhost:8080/web/guest/web-service" style="float: left;">
<input type="image" width="31" height="31" src="/image/image_gallery?
uuid=1432d027-55ba-49c9-ae8dbbc3e87807d0&amp;groupId=10721&amp;t=1291280990367" alt="torna dietro"
title="torna dietro" /><img alt="" />
</form>
</div>
<div align="center">
<h1>SSO Login</h1>
<h1>Worker Nodes INFN</h1>
</div>
<table cellspacing="1" cellpadding="1" border="0" align="center" style="width: 100%;
height: 100%;">
Sergnese Nicola 566/2002
Pagina 88 di 228
<tbody>
<tr>
<td align="center">
<div>
<form>
<h3><input type="submit" value="atlaswn09" title="http://ipmiatlaswn09.na.infn.it/" /></h3>
</form>
</div>
</td>
<td align="center">
<div>
<form>
<h3><input type="submit" value="atlaswn12" title="http://ipmiatlaswn12.na.infn.it/" /></h3>
</form>
</div>
</td>
<td align="center">
<div>
<form>
<h3><input type="submit" value="atlaswn15" title="http://ipmiatlaswn15.na.infn.it/" /></h3>
</form>
</div>
</td>
</tr>
<tr>
<td align="center">
<div>
<form>
<h3><input type="submit" value="atlaswn10" title="http://ipmiatlaswn10.na.infn.it/" /></h3>
</form>
</div>
</td>
<td align="center">
<div>
<form>
<h3><input type="submit" value="atlaswn13" title="http://ipmiatlaswn13.na.infn.it/" /></h3>
</form>
</div>
</td>
<td align="center">
<div>
<form>
Sergnese Nicola 566/2002
Pagina 89 di 228
<h3><input type="submit" value="atlaswn16" title="http://ipmiatlaswn16.na.infn.it/" /></h3>
</form>
</div>
</td>
</tr>
<tr>
<td align="center">
<div>
<form>
<h3><input type="submit" value="atlaswn11" title="http://ipmiatlaswn11.na.infn.it/" /></h3>
</form>
</div>
</td>
<td align="center">
<div>
<form>
<h3><input type="submit" value="atlaswn14" title="http://ipmiatlaswn14.na.infn.it/" /></h3>
</form>
</div>
</td>
<td align="center">
<div>
<form>
<h3><input type="submit" value="atlaswn17" title="http://ipmiatlaswn17.na.infn.it/" /></h3>
</form>
</div>
</td>
</tr>
</tbody>
</table>
Questo pezzo di codice rappresenta il bottone per tornare dietro
<form action="http://localhost:8080/web/guest/web-service" style="float: left;">
<input type="image" width="31" height="31" src="/image/image_gallery?uuid=1432d027-55ba49c9-ae8d-bbc3e87807d0&amp;groupId=10721&amp;t=1291280990367" alt="torna dietro"
title="torna dietro" /><img alt="" />
</form>
Questo (di seguito) invece rappresenta i singoli bottoni per accedere ai servizi di web
management, basta mettere l'istruzione, nella tag from, action=”nome pagina servizio”
(<from action=”nome pagina servizio”>) per farsi che rappresenti un bottone diverso.
Sergnese Nicola 566/2002
Pagina 90 di 228
<div>
<form>
<h3><input type="submit" value="atlaswn09" title="http://ipmi-atlaswn09.na.infn.it/"
/></h3>
</form>
</div>
spiegare ogni riga sarebbe un pò pesante ed inutile. Comunque i tag: td, tr, tbody e
table rappresentano come disporre gli oggetti, in questo caso i bottoni per
approfondimenti vedere “bibliografia e sitografia” dove ci sono le varie guide seguite.
5.6.3 Integrazione Liferay
Per integrare tutto il lavoro sul portale si sono dovuti caricare sul server tutti i file il
codice fatto inoltre per asus ed e4 si sono dovuti caricare tutti i gli script js utilizzati
dalle pagine, per le tabelle e bastato copiare il codice fatto in locale, ovviamente
sostituendo gli indirizzi con gli indirizzi delle pagine create sul server.
Sergnese Nicola 566/2002
Pagina 91 di 228
6
Conclusioni
Il lavoro svolto va ad apportare tutte le modifiche fin qui descritte che permettono alla
amministratore di monitorare gestire l'infrastruttura della rete tramite una comoda
interfaccia che automatizza tutte le ripetitive e fastidiose operazioni di autenticazione.
È ovvio che questo lavoro può essere esteso e quindi ulteriormente migliorato,
generando dinamicamente l'elenco dei servizi disponibili.
Tale evoluzione può essere applicabile attraverso un protocollo che permetta la
scansione delle intera rete, quindi il rilevamento di tutti gli apparati della infrastruttura.
Inoltre si potrebbe pensare per migliorare, il controllo di integrare un sistema di
notifica che avvisi l'addetto se si sta verificando un errore critico.
Sergnese Nicola 566/2002
Pagina 92 di 228
7
Appendici
Oltre il normale codice qui è riportato tutto il codice di asus e di e4.
7.1
Glossario
Dati RAW=dati allo stato grezzo
Dataset = Un dataset (o data set), così come dice anche la traduzione, è un insieme di
dati.
ESD, AOD, TAG = formati di ricostruzione dei dataset
Gli ESD prodotti con la ricostruzione primaria risiedono al Tier-0 e vengono esportati
in 2 Tier-1
AOD Replicati completamente in ogni Tier-1. Replicati parzialmente nei Tier-2 (~1/3
– 1/4 in ciascun Tier-2) in modo da avere almeno un insieme completo fra i Tier-2
associati ad ogni Tier-1. Ogni Tier-2 specifica quali dataset sono più interessanti per la
comunità di riferimento; il resto viene distribuito a seconda della capacità.
TAG Repliche parziali dei database TAG nei Tier-2 (Root files). In ciascun Tier-2
risiedono almeno tutti i file Root dei TAG corrspondenti agli AOD ospitati nel sito
Disk buffer = è una piccola quantità di memoria su un disco rigido chiamata anche
buffer cache, quindi è la memoria incorporata in un disco rigido che funge da memoria
tampone.
DPD = (Derived Physics Data) : Sono un formato ridotto degli AOD, è il formato
“privato” dei dati, utilizzato per l'uso esplicito nei centri di calcolo
PROXY = Sistema che memorizza le pagine Web viste più frequentemente in modo da
scaricare i documenti dal disco rigido piuttosto che dalla Rete, in modo da diminuire i
tempi di attesa.
Portale web= Un portale web, o portale internet, anche abbreviati in portale se chiaro il
Sergnese Nicola 566/2002
Pagina 93 di 228
contesto informatico, è un sito web che costituisce un punto di partenza, una porta di
ingresso, ad un gruppo consistente di risorse di Internet o di una intranet. Molti portali
sono costruiti e mantenuti con componenti software chiamati portlets. I migliori portali
consentono ai loro utenti di personalizzare alcune loro prestazioni.
CMS = Un content management system, in acronimo CMS, letteralmente "sistema di
gestione dei contenuti", è uno strumento software installato su un server web studiato
per facilitare la gestione dei contenuti di siti web, svincolando l'amministratore da
conoscenze tecniche di programmazione Web.
Workflow = Viene detta "WorkFlow" (tradotto letteralmente "flusso di lavoro") la
creazione di modelli e la gestione informatica dell'insieme dei compiti e i diversi attori
coinvolti nella realizzazione di un processo lavorativo (detto anche processo
operativo). Il termine di Workflow potrà quindi essere tradotto in italiano come
Gestione elettronica dei processi lavorativi.
Tagging = L'attività di tagging (dall’inglese “tag”, contrassegno; in italiano taggare)
consiste nell'attribuzione di una o più parole chiave, dette tag, che individuano
l'argomento di cui si sta trattando, a documenti o, più in generale, file su internet.
Web publishing = è l'insieme di strumenti che compongono sia il sito che fai, sia
quando lo carichi sul web
Content management = (in italiano: gestione dei contenuti) si indica una serie di
processi e tecnologie a supporto del ciclo di vita evolutivo dell'informazione digitale
(content o digital content).
Social network = è una rete sociale (in inglese social network) consiste di un qualsiasi
gruppo di persone connesse tra loro da diversi legami sociali, che vanno dalla
conoscenza casuale, ai rapporti di lavoro, ai vincoli familiari. Le reti sociali sono
spesso usate come base di studi interculturali in sociologia e in antropologia.
Out-of-the-box = significa pronta all'uso.
Framework = è una struttura di supporto su cui un software può essere organizzato e
Sergnese Nicola 566/2002
Pagina 94 di 228
progettato.
one-time password = è una password che è valida solo per una singola sessione di
accesso o una transazione.
I cookie = sono frammenti di testo inviati da un server ad un Web client (di solito un
browser) e poi rimandati indietro dal client al server - senza subire modifiche - ogni
volta che il client accede allo stesso server. I cookie HTTP sono usati per eseguire
autenticazioni e tracking di sessioni e memorizzare informazioni specifiche riguardanti
gli utenti che accedono al server, come ad esempio i siti preferiti o, in caso di acquisti
on-line, il contenuto dei loro "carrelli della spesa" (shopping cart). Il termine "cookie"
- letteralmente "biscotto" - deriva da magic cookie, concetto ben noto in ambiente
UNIX che ha ispirato sia l'idea che il nome dei cookie HTTP.
Screen scraping = si parla di "screen scraping of legacy applications" per indicare
delle procedure che permettono ad un applicativo che “gira” su di un PC di estrarre
dati dalle schermate di programmi che girano su di un sistema remoto ma vengono
visualizzate sul PC attraverso un emulatore di terminale IBM TN-3270 o TN-5250, o
VT-200, VT-420 in caso di server Unix. Nel caso di Windows questo e’ ottenuto
copiando ("scraping") i dati contenuti nei campi forniti dall’applicativo che gira sul
server e visualizzati dentro ad un emulatore di terminale Windows, quale IntelliTerm.
Utilizando questa tecnica di screen scraping e’ possibile integrare applicativi Windows
con i dati di applicativi "legacy" provenienti da un server remoto anche quando
l’applicativo non fornisce nessun accesso programmatico a questi campi. In sostanza,
l’output di un applicativo che gira su di un IBM mainframe o su di un IBM AS/400
(cioe’ il contenuto dei campi visualizzati all’interno di IntelliTerm sul PC) puo’ essere
usato come input di un altro applicativo che gira sul PC. Questo permette
l’automatizzazione della collezione dei dati sul PC e la loro analisi sullo stesso,
usufruendo della grandi capacita’ di raccolta e morizzazione dati del server /
mainframe.
Policy = è un repertorio di limiti che sono stabiliti attraverso un processo decisionale
Sergnese Nicola 566/2002
Pagina 95 di 228
collettivo. I regolamenti sono l'ultimo livello della gerarchia delle fonti del diritto,
legate al rispetto del dettato costituzionale e delle leggi vigenti.
Provisioning = è un processo mediante il quale un amministratore di sistema assegna
risorse e privilegi, non solo agli utenti di una rete ma anche a chi le utilizza da remot
IDE = acronimo per Integrated Development Environment. Un ambiente di
programmazione che e' stato concepito come una applicazione. In genere consiste di
un editor di testo (per il codice), un compilatore, un debugger e una utilita' per la
creazione di GUI.
SOAP = Simple Object Access Protocol Protocollo sviluppato da Microsoft,
DevelopMentor e Userland Software, basato su XML, che consente la comunicazione
fra oggetti su Internet fra applicazioni basate su diverse piattaforme o sistemi
operativi.
WSDL = il Web Services Description Language (WSDL) è un linguaggio formale in
formato XML utilizzato per la creazione di "documenti" per la descrizione di Web
Service.
REST = Representational state transfer (REST) è un tipo di architettura software per i
sistemi di ipertesto distribuiti come il World Wide Web. Il termine "representational
state transfer" e "REST" furono introdotti nel 2000 nella tesi di dottorato di Roy
Fielding,[1] uno dei principali autori delle specifiche dell' Hypertext Transfer Protocol
(HTTP), termine ampiamente usato nella comunità di Internet. REST si riferisce ad un
insieme di principi di architetture di rete, i quali delineano come le risorse sono
definite e indirizzate. Il termine è spesso usato nel senso di descrivere ogni semplice
interfaccia che trasmette dati su HTTP senza un livello opzionale come SOAP o la
gestione della sessione tramite i cookies. Questi due concetti possono andare in
conflitto cosi come in sovrapposizione. È possibile progettare ogni sistema software
complesso in accordo con l'architettura REST di Fielding senza usare HTTP e senza
interagire con il World Wide Web. È anche possibile progettare una semplice
Sergnese Nicola 566/2002
Pagina 96 di 228
interfaccia XML+HTTP che non sia conforme ai principi REST, e invece segua un
modello di Remote Procedure Call. La differenza tra l'uso del termine "REST" quindi
causa qualche confusione nei dibattiti.
7.2
Codice
Codice tabella principale
<div align="center">
<h1>SSO Login</h1>
</div>
<table width="70%" height="70%" border="0" align="center">
<tbody>
<tr>
<td align="center">
<h1>L1: ATLAS Data Center</h1>
</td>
<td align="center">
<h1>L2: SCoPE Data Center</h1>
</td>
</tr>
<tr>
<td align="center">
<form action="pagina dei servici cmc atlas">
<h2>
<p style="text-align: center;"><input type="submit" title="Controllo rank e Monitoraggio
Ambientale" value="CMC" /></p>
</h2>
</form>
</td>
<td align="center">
<form action="pagina dei servici cmc scope">
<h2>
<p style="text-align: center;"><input type="submit" title="Controllo rank e Monitoraggio
Ambientale" value="CMC" /></p>
</h2>
</form>
</td>
</tr>
<tr>
<td align="center">
<form action="pagina worker nodes atlas">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Worker Nodes" /></p>
</h2>
</form>
</td>
<td align="center">
<form action="pagina worker nodes scope">
<h2>
<p style="text-align: center;"><input type="submit" title="" value=" Worker Nodes" /></p>
</h2>
</form>
Sergnese Nicola 566/2002
Pagina 97 di 228
</td>
</tr>
<tr>
<td align="center">
<form action="pagina Storage Elements atlas">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Storage Elements" /></p>
</h2>
</form>
</td>
<td align="center">
<form action="pagina Storage Elements scope">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Storage Elements" /></p>
</h2>
</form>
</td>
</tr>
<tr>
<td align="center">
<form action="pagina Switches atlas">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Switches" /></p>
</h2>
</form>
</td>
<td align="center">
<form action="pagina Switches scope">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Switches" /></p>
</h2>
</form>
</td>
</tr>
<tr>
<td align="center">
<form action="pagina service nodes atlas">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Service Node" /></p>
</h2>
</form>
</td>
<td align="center">
<form action="pagina service nodes scope">
<h2>
<p style="text-align: center;"><input type="submit" title="" value="Service Node" /></p>
</h2>
</form>
</td>
</tr>
</tbody>
</table>
codice css e js per gli spoiler
Sergnese Nicola 566/2002
Pagina 98 di 228
css
td {font: bold 12pt Verdana,Arial,Helvetica,sans serif; text-align:center;}
a { text-decoration: none;}
a:visited { text-decoration: none; }
a:hover { text-decoration: underline;}
div {font: 11pt Verdana,Arial,Helvetica,sans serif; position: absolute;}
.menu {left:-800px; width: 250px; padding:10px; border: 1px dotted #000000; }
.menu a {text-decoration: none; }
.menu a:visited {text-decoration: none; }
.menu a:hover {text-decoration: underline;}
spoiler
var mostra=new Array();
var corrente=0;
var ie4 = document.all;
var ns4 = document.layers;
var ns6 = document.getElementById;
function inizializza(num_menu) {
for(i=1;i<=num_menu;i++){
if (ie4) eval("mostra["+i+"] = document.all.menu"+i+";");
if (ns4) eval("mostra["+i+"] = document.menu"+i+";");
if (ns6) eval("mostra["+i+"] = document.getElementById('menu"+i+"').style;");
}
}function chiudi() {
if (corrente!=0) {
var oggetto;
oggetto = eval("mostra["+corrente+"]");
oggetto.left = -800;
corrente = 0;
}
}function apri(numero) {
chiudi();
var oggetto;
oggetto = eval("mostra["+numero+"]");
oggetto.left = 120;
corrente = numero;
}
codice pagina servizi cmc atlas
apertura spoiler
<div class="spoiler" ><div class="spoilerheader" >
<input type="button" class="spoilerbutton" value="Spoiler" onclick="n =
this.parentNode.parentNode.lastChild;if(n.style.display == 'none') {n.style.display = 'block';} else
{n.style.display = 'none';} return false;"/> (clicca per mostrare lista apparecchi completa)</div>
<div class="spoilerbody" style="display: none">
<iframe src="menu.html" width="100%" height="100%" frameborder="0">
<iframe>
</div></div>
Sergnese Nicola 566/2002
Pagina 99 di 228
spoiler
<html>
<head>
<title>Menu Dinamico a tendina</title>
<link rel="stylesheet" type="text/css" href="menu.css">
<script language="javascript" src="menu.js"></script>
</head>
<body>
<div style="top:0px; left:0px; width: 100%; height: 100%;" onMouseOver="setTimeout('chiudi()',9999999);">
</div>
<div style="top:0px; left:0px; width:120;">
<table border="0" cellspacing="4">
<tr><td> L1: ATLAS Data Center </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/work-nodes-ata" onMouseOver="apri(1)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements1" onMouseOver="apri(2)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/Switches-atlas" onMouseOver="apri(3)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/servicenodeatla" onMouseOver="apri(4)"
target="_blank">Service Nodes</a> </td></tr>
<tr><td>L2: SCoPE Data Center</td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmc" onMouseOver="apri(5)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/worker-node" onMouseOver="apri(6)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements" onMouseOver="apri(7)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/switches" onMouseOver="apri(8)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="javascript:void(0)" onMouseOver="apri(9)" target="_blank">Service Nodes</a>
</td></tr>
</table>
</div>
<!-- menu 1 :: worker nodes -->
<div id="menu1" style="top: 4px;" class="menu" >
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn09.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn10.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn11.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn12.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn13.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn14.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn15.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn16.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn17.na.infn.it/</a><br>
</div>
<!-- menu 2 :: Storage Elements -->
<div id="menu2" style="top: 25px;" class="menu" >
<a href="#">http://atlasse02.na.infn.it/</a><br>
<a href="#">http://atlasse03.na.infn.it/</a><br>
<a href="#">http://atlasse04.na.infn.it/</a><br>
<a href="#">http://atlasse05.na.infn.it/</a><br>
<a href="#">http://atlasse06.na.infn.it/</a><br>
<a href="#">http://atlasse07.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 100 di 228
</div>
<!-- menu 3 :: Switches -->
<div id="menu3" style="top: 46px;" class="menu" >
<a href="#">http://sw3com-atlas01.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas03.na.infn.it/</a><br>
<a href="#">http://swdell-scope01.na.infn.it/</a><br>
</div>
<!-- menu 4 :: Services Nodes -->
<div id="menu4" style="top: 67px;" class="menu" >
<a href="http://localhost:8080/web/guest/service-node-ata" target="_blank">http://ipmiatlasce01.na.infn.it</a><br>
</div>
<!-- menu 5 :: CMC -->
<div id="menu5" style="top: 200px;" class="menu" >
<a href="#">http://172.21.0.72/(cmc22)</a><br>
<a href="#">http://172.21.0.73/(cmc23)</a><br>
<a href="#">http://172.21.0.74/(cmc24)</a><br>
<a href="#">http://172.21.0.75/(cmc25)</a><br>
<a href="http://localhost:8080/web/guest/cmc26" target="_blank">http://172.21.0.76/(cmc26)</a><br>
<a href="http://localhost:8080/web/guest/altri" target="_blank">http://172.21.0.77/(cmc27)</a><br>
<a href="http://localhost:8080/web/guest/altro1" target="_blank">http://172.21.0.78/(cmc28)</a><br>
<a href="#">http://172.21.0.79/(cmc29)</a><br>
<a href="#">http://172.21.0.80/(cmc30)</a><br>
<a href="http://localhost:8080/web/guest/altr1" target="_blank">http://172.21.0.81/(cmc31)</a><br>
<a href="http://localhost:8080/web/guest/prov" target="_blank">http://172.21.0.82/(cmc32)</a><br>
<a href="http://localhost:8080/web/guest/2" target="_blank">http://172.21.0.83/(cmc33)</a><br>
</div>
<!-- menu 6 :: Worker Nodes -->
<div id="menu6" style="top: 0px;" class="menu" >
<a href="#">http://ipmi-atlaswn01.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn02.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn03.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn04.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn05.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn06.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn07.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn08.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn18.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn19.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn20.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn21.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn22.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn23.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn24.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn25.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn26.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn27.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn28.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn29.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn30.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn31.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn32.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn33.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 101 di 228
<a href="#">http://ipmi-atlaswn34.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn35.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn36.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn37.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn38.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn39.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn40.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn41.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn42.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn43.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn44.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn45.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn46.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn47.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn48.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn49.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn50.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn51.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn52.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn53.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn54.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn55.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn56.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn57.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn58.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn59.na.infn.it/</a><br>
</div>
<!-- menu 7 :: Storage Elements -->
<div id="menu7" style="top: 280px;" class="menu" >
<a href="#">http://atlasse08.na.infn.it/</a><br>
<a href="#">http://atlasse09.na.infn.it/</a><br>
<a href="#">http://atlasse10.na.infn.it/</a><br>
<a href="#">http://atlasse11.na.infn.it/</a><br>
<a href="#">http://atlasse12.na.infn.it/</a><br>
<a href="#">http://atlasse13.na.infn.it/</a><br>
<a href="#">http://atlasse14.na.infn.it/</a><br>
<a href="#">http://atlasse15.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03b.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04b.na.infn.it/</a><br>
</div>
<!-- menu 8 :: Switches -->
<div id="menu8" style="top: 300px;" class="menu" >
<a href="#">http://swdell-atlas01.na.infn.it/</a><br>
<a href="#">http://swdell-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas04.na.infn.it/</a><br>
</div>
<script type="text/javascript">inizializza(9);</script>
</body>
</html>
codice pagina servizi cmc scope
apertura spoiler stesso cmc atlas cambia solo la pagina di riferimento
Sergnese Nicola 566/2002
Pagina 102 di 228
…....................................
<iframe src="menu_cmc_SC.html" width="100%" height="100%" frameborder="0">
…....................................
spoiler
<html>
<head>
<title>Menu Dinamico a tendina</title>
<link rel="stylesheet" type="text/css" href="menu.css">
<script language="javascript" src="menu.js"></script>
</head>
<body>
<div style="top:0px; left:0px; width: 100%; height: 100%;" onMouseOver="setTimeout('chiudi()',9999999);">
</div>
<div style="top:0px; left:0px; width:120;">
<table border="0" cellspacing="4">
<tr><td> L1: ATLAS Data Center </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmcatla" onMouseOver="apri(5)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/work-nodes-ata" onMouseOver="apri(1)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements1" onMouseOver="apri(2)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/Switches-atlas" onMouseOver="apri(3)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/servicenodeatla" onMouseOver="apri(4)"
target="_blank">Service Nodes</a> </td></tr>
<tr><td>L2: SCoPE Data Center</td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/worker-node" onMouseOver="apri(6)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements" onMouseOver="apri(7)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/switches" onMouseOver="apri(8)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="javascript:void(0)" onMouseOver="apri(9)" target="_blank">Service Nodes</a>
</td></tr>
</table>
</div>
<!-- menu 5 :: CMC -->
<div id="menu5" style="top: 0px;" class="menu" >
<a href="#">http://cmc1atlas.na.infn.it/</a><br>
<a href="#">http://cmc2atlas.na.infn.it/</a><br>
<a href="#">http://cmc3atlas.na.infn.it/</a><br>
<a href="#">http://cmc4atlas.na.infn.it/</a><br>
<!-- menu 1 :: worker nodes -->
</div>
<div id="menu1" style="top: 4px;" class="menu" >
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn09.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn10.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn11.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn12.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn13.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 103 di 228
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn14.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn15.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn16.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn17.na.infn.it/</a><br>
</div>
<!-- menu 2 :: Storage Elements -->
<div id="menu2" style="top: 25px;" class="menu" >
<a href="#">http://atlasse02.na.infn.it/</a><br>
<a href="#">http://atlasse03.na.infn.it/</a><br>
<a href="#">http://atlasse04.na.infn.it/</a><br>
<a href="#">http://atlasse05.na.infn.it/</a><br>
<a href="#">http://atlasse06.na.infn.it/</a><br>
<a href="#">http://atlasse07.na.infn.it/</a><br>
</div>
<!-- menu 3 :: Switches -->
<div id="menu3" style="top: 46px;" class="menu" >
<a href="#">http://sw3com-atlas01.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas03.na.infn.it/</a><br>
<a href="#">http://swdell-scope01.na.infn.it/</a><br>
</div>
<!-- menu 4 :: Services Nodes -->
<div id="menu4" style="top: 67px;" class="menu" >
<a href="http://localhost:8080/web/guest/service-node-ata" target="_blank">http://ipmiatlasce01.na.infn.it</a><br>
</div>
<!-- menu 6 :: Worker Nodes -->
<div id="menu6" style="top: 0px;" class="menu" >
<a href="#">http://ipmi-atlaswn01.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn02.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn03.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn04.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn05.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn06.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn07.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn08.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn18.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn19.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn20.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn21.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn22.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn23.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn24.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn25.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn26.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn27.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn28.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn29.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn30.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn31.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn32.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn33.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn34.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn35.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn36.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 104 di 228
<a href="#">http://ipmi-atlaswn37.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn38.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn39.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn40.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn41.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn42.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn43.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn44.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn45.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn46.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn47.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn48.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn49.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn50.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn51.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn52.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn53.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn54.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn55.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn56.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn57.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn58.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn59.na.infn.it/</a><br>
</div>
<!-- menu 7 :: Storage Elements -->
<div id="menu7" style="top: 280px;" class="menu" >
<a href="#">http://atlasse08.na.infn.it/</a><br>
<a href="#">http://atlasse09.na.infn.it/</a><br>
<a href="#">http://atlasse10.na.infn.it/</a><br>
<a href="#">http://atlasse11.na.infn.it/</a><br>
<a href="#">http://atlasse12.na.infn.it/</a><br>
<a href="#">http://atlasse13.na.infn.it/</a><br>
<a href="#">http://atlasse14.na.infn.it/</a><br>
<a href="#">http://atlasse15.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03b.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04b.na.infn.it/</a><br>
</div>
<!-- menu 8 :: Switches -->
<div id="menu8" style="top: 300px;" class="menu" >
<a href="#">http://swdell-atlas01.na.infn.it/</a><br>
<a href="#">http://swdell-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas04.na.infn.it/</a><br>
</div>
<script type="text/javascript">inizializza(9);</script>
</body>
</html>
codice pagina servizi worker nodes atlas
apertura spoiler cmc atlas cambia solo la pagina di riferimento
…....................................
<iframe src="menu_wn_atla.html" width="100%" height="100%" frameborder="0">
Sergnese Nicola 566/2002
Pagina 105 di 228
…....................................
spoiler
<html>
<head>
<title>Menu Dinamico a tendina</title>
<link rel="stylesheet" type="text/css" href="menu.css">
<script language="javascript" src="menu.js"></script>
</head>
<body>
<div style="top:0px; left:0px; width: 100%; height: 100%;" onMouseOver="setTimeout('chiudi()',9999999);">
</div>
<div style="top:0px; left:0px; width:120;">
<table border="0" cellspacing="4">
<tr><td> L1: ATLAS Data Center </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmcatla" onMouseOver="apri(1)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements1" onMouseOver="apri(2)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/Switches-atlas" onMouseOver="apri(3)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/servicenodeatla" onMouseOver="apri(4)"
target="_blank">Service Nodes</a> </td></tr>
<tr><td>L2: SCoPE Data Center</td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmc" onMouseOver="apri(5)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/worker-node" onMouseOver="apri(6)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements" onMouseOver="apri(7)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/switches" onMouseOver="apri(8)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="javascript:void(0)" onMouseOver="apri(9)" target="_blank">Service Nodes</a>
</td></tr>
</table>
</div>
<!-- menu 1 :: cmc -->
<div id="menu1" style="top: 4px;" class="menu" >
<a href="#">http://cmc1atlas.na.infn.it/</a><br>
<a href="#">http://cmc2atlas.na.infn.it/</a><br>
<a href="#">http://cmc3atlas.na.infn.it/</a><br>
<a href="#">http://cmc4atlas.na.infn.it/</a><br>
</div>
<!-- menu 2 :: Storage Elements -->
<div id="menu2" style="top: 25px;" class="menu" >
<a href="#">http://atlasse02.na.infn.it/</a><br>
<a href="#">http://atlasse03.na.infn.it/</a><br>
<a href="#">http://atlasse04.na.infn.it/</a><br>
<a href="#">http://atlasse05.na.infn.it/</a><br>
<a href="#">http://atlasse06.na.infn.it/</a><br>
<a href="#">http://atlasse07.na.infn.it/</a><br>
</div>
<!-- menu 3 :: Switches -->
<div id="menu3" style="top: 46px;" class="menu" >
<a href="#">http://sw3com-atlas01.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 106 di 228
<a href="#">http://sw3com-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas03.na.infn.it/</a><br>
<a href="#">http://swdell-scope01.na.infn.it/</a><br>
</div>
<!-- menu 4 :: Services Nodes -->
<div id="menu4" style="top: 67px;" class="menu" >
<a href="http://localhost:8080/web/guest/service-node-ata" target="_blank">http://ipmiatlasce01.na.infn.it</a><br>
</div>
<!-- menu 5 :: CMC -->
<div id="menu5" style="top: 200px;" class="menu" >
<a href="#">http://172.21.0.72/(cmc22)</a><br>
<a href="#">http://172.21.0.73/(cmc23)</a><br>
<a href="#">http://172.21.0.74/(cmc24)</a><br>
<a href="#">http://172.21.0.75/(cmc25)</a><br>
<a href="http://localhost:8080/web/guest/cmc26" target="_blank">http://172.21.0.76/(cmc26)</a><br>
<a href="http://localhost:8080/web/guest/altri" target="_blank">http://172.21.0.77/(cmc27)</a><br>
<a href="http://localhost:8080/web/guest/altro1" target="_blank">http://172.21.0.78/(cmc28)</a><br>
<a href="#">http://172.21.0.79/(cmc29)</a><br>
<a href="#">http://172.21.0.80/(cmc30)</a><br>
<a href="http://localhost:8080/web/guest/altr1" target="_blank">http://172.21.0.81/(cmc31)</a><br>
<a href="http://localhost:8080/web/guest/prov" target="_blank">http://172.21.0.82/(cmc32)</a><br>
<a href="http://localhost:8080/web/guest/2" target="_blank">http://172.21.0.83/(cmc33)</a><br>
</div>
<!-- menu 6 :: Worker Nodes -->
<div id="menu6" style="top: 0px;" class="menu" >
<a href="#">http://ipmi-atlaswn01.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn02.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn03.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn04.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn05.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn06.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn07.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn08.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn18.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn19.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn20.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn21.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn22.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn23.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn24.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn25.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn26.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn27.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn28.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn29.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn30.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn31.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn32.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn33.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn34.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn35.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn36.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn37.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 107 di 228
<a href="#">http://ipmi-atlaswn38.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn39.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn40.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn41.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn42.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn43.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn44.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn45.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn46.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn47.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn48.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn49.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn50.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn51.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn52.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn53.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn54.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn55.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn56.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn57.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn58.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn59.na.infn.it/</a><br>
</div>
<!-- menu 7 :: Storage Elements -->
<div id="menu7" style="top: 280px;" class="menu" >
<a href="#">http://atlasse08.na.infn.it/</a><br>
<a href="#">http://atlasse09.na.infn.it/</a><br>
<a href="#">http://atlasse10.na.infn.it/</a><br>
<a href="#">http://atlasse11.na.infn.it/</a><br>
<a href="#">http://atlasse12.na.infn.it/</a><br>
<a href="#">http://atlasse13.na.infn.it/</a><br>
<a href="#">http://atlasse14.na.infn.it/</a><br>
<a href="#">http://atlasse15.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03b.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04b.na.infn.it/</a><br>
</div>
<!-- menu 8 :: Switches -->
<div id="menu8" style="top: 300px;" class="menu" >
<a href="#">http://swdell-atlas01.na.infn.it/</a><br>
<a href="#">http://swdell-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas04.na.infn.it/</a><br>
</div>
<script type="text/javascript">inizializza(9);</script>
</body>
</html>
codice pagina servizi worker nodes scope
apertura spoiler cmc atlas cambia solo la pagina di riferimento
…....................................
<iframe src="menu_wn_SC.html" width="100%" height="100%" frameborder="0">
…....................................
spoiler
Sergnese Nicola 566/2002
Pagina 108 di 228
<html>
<head>
<title>Menu Dinamico a tendina</title>
<link rel="stylesheet" type="text/css" href="menu.css">
<script language="javascript" src="menu.js"></script>
</head>
<body>
<div style="top:0px; left:0px; width: 100%; height: 100%;" onMouseOver="setTimeout('chiudi()',9999999);">
</div>
<div style="top:0px; left:0px; width:120;">
<table border="0" cellspacing="4">
<tr><td> L1: ATLAS Data Center </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmcatla" onMouseOver="apri(1)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/worker-node-ata" onMouseOver="apri(6)"
target="_blank">Worker Nodes</a>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements1" onMouseOver="apri(2)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/Switches-atlas" onMouseOver="apri(3)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/servicenodeatla" onMouseOver="apri(4)"
target="_blank">Service Nodes</a> </td></tr>
<tr><td>L2: SCoPE Data Center</td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmc" onMouseOver="apri(5)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements" onMouseOver="apri(7)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/switches" onMouseOver="apri(8)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="javascript:void(0)" onMouseOver="apri(9)" target="_blank">Service Nodes</a>
</td></tr>
</table>
</div>
<!-- menu 1 :: cmc -->
<div id="menu1" style="top: 4px;" class="menu" >
<a href="#">http://cmc1atlas.na.infn.it/</a><br>
<a href="#">http://cmc2atlas.na.infn.it/</a><br>
<a href="#">http://cmc3atlas.na.infn.it/</a><br>
<a href="#">http://cmc4atlas.na.infn.it/</a><br>
</div>
<!-- menu 2 :: Storage Elements -->
<div id="menu2" style="top: 46px;" class="menu" >
<a href="#">http://atlasse02.na.infn.it/</a><br>
<a href="#">http://atlasse03.na.infn.it/</a><br>
<a href="#">http://atlasse04.na.infn.it/</a><br>
<a href="#">http://atlasse05.na.infn.it/</a><br>
<a href="#">http://atlasse06.na.infn.it/</a><br>
<a href="#">http://atlasse07.na.infn.it/</a><br>
</div>
<!-- menu 3 :: Switches -->
<div id="menu3" style="top: 67px;" class="menu" >
<a href="#">http://sw3com-atlas01.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas02.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 109 di 228
<a href="#">http://sw3com-atlas03.na.infn.it/</a><br>
<a href="#">http://swdell-scope01.na.infn.it/</a><br>
</div>
<!-- menu 4 :: Services Nodes -->
<div id="menu4" style="top: 86px;" class="menu" >
<a href="http://localhost:8080/web/guest/service-node-ata" target="_blank">http://ipmiatlasce01.na.infn.it</a><br>
</div>
<!-- menu 5 :: CMC -->
<div id="menu5" style="top: 200px;" class="menu" >
<a href="#">http://172.21.0.72/(cmc22)</a><br>
<a href="#">http://172.21.0.73/(cmc23)</a><br>
<a href="#">http://172.21.0.74/(cmc24)</a><br>
<a href="#">http://172.21.0.75/(cmc25)</a><br>
<a href="http://localhost:8080/web/guest/cmc26" target="_blank">http://172.21.0.76/(cmc26)</a><br>
<a href="http://localhost:8080/web/guest/altri" target="_blank">http://172.21.0.77/(cmc27)</a><br>
<a href="http://localhost:8080/web/guest/altro1" target="_blank">http://172.21.0.78/(cmc28)</a><br>
<a href="#">http://172.21.0.79/(cmc29)</a><br>
<a href="#">http://172.21.0.80/(cmc30)</a><br>
<a href="http://localhost:8080/web/guest/altr1" target="_blank">http://172.21.0.81/(cmc31)</a><br>
<a href="http://localhost:8080/web/guest/prov" target="_blank">http://172.21.0.82/(cmc32)</a><br>
<a href="http://localhost:8080/web/guest/2" target="_blank">http://172.21.0.83/(cmc33)</a><br>
</div>
<!-- menu 6 :: Worker Nodes -->
<div id="menu6" style="top: 25px;" class="menu" >
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn09.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn10.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn11.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn12.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn13.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn14.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn15.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn16.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn17.na.infn.it/</a><br>
</div>
<!-- menu 7 :: Storage Elements -->
<div id="menu7" style="top: 280px;" class="menu" >
<a href="#">http://atlasse08.na.infn.it/</a><br>
<a href="#">http://atlasse09.na.infn.it/</a><br>
<a href="#">http://atlasse10.na.infn.it/</a><br>
<a href="#">http://atlasse11.na.infn.it/</a><br>
<a href="#">http://atlasse12.na.infn.it/</a><br>
<a href="#">http://atlasse13.na.infn.it/</a><br>
<a href="#">http://atlasse14.na.infn.it/</a><br>
<a href="#">http://atlasse15.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03b.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04b.na.infn.it/</a><br>
</div>
<!-- menu 8 :: Switches -->
<div id="menu8" style="top: 300px;" class="menu" >
<a href="#">http://swdell-atlas01.na.infn.it/</a><br>
<a href="#">http://swdell-atlas02.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 110 di 228
<a href="#">http://sw3com-atlas04.na.infn.it/</a><br>
</div>
<script type="text/javascript">inizializza(9);</script>
</body>
</html>
codice pagina servizi switches atlas
apertura spoiler cmc atlas cambia solo la pagina di riferimento
…....................................
<iframe src="menu_sw_atla.html" width="100%" height="100%" frameborder="0">
<iframe>
…....................................
spoiler
<html>
<head>
<title>Menu Dinamico a tendina</title>
<link rel="stylesheet" type="text/css" href="menu.css">
<script language="javascript" src="menu.js"></script>
</head>
<body>
<div style="top:0px; left:0px; width: 100%; height: 100%;" onMouseOver="setTimeout('chiudi()',9999999);">
</div>
<div style="top:0px; left:0px; width:120;">
<table border="0" cellspacing="4">
<tr><td> L1: ATLAS Data Center </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmcatla" onMouseOver="apri(1)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/work-nodes-ata" onMouseOver="apri(2)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements1" onMouseOver="apri(3)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/servicenodeatla" onMouseOver="apri(4)"
target="_blank">Service Nodes</a> </td></tr>
<tr><td>L2: SCoPE Data Center</td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmc" onMouseOver="apri(5)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/worker-node" onMouseOver="apri(6)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements" onMouseOver="apri(7)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/switches" onMouseOver="apri(8)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="javascript:void(0)" onMouseOver="apri(9)" target="_blank">Service Nodes</a>
</td></tr>
</table>
</div>
<!-- menu 1 :: cmc -->
<div id="menu1" style="top: 4px;" class="menu" >
<a href="#">http://cmc1atlas.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 111 di 228
<a href="#">http://cmc2atlas.na.infn.it/</a><br>
<a href="#">http://cmc3atlas.na.infn.it/</a><br>
<a href="#">http://cmc4atlas.na.infn.it/</a><br>
</div>
<!-- menu 2 :: worker nodes -->
<div id="menu2" style="top: 4px;" class="menu" >
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn09.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn10.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn11.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn12.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn13.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn14.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn15.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn16.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn17.na.infn.it/</a><br>
</div>
<!-- menu 3 :: Storage Elements -->
<div id="menu3" style="top: 25px;" class="menu" >
<a href="#">http://atlasse02.na.infn.it/</a><br>
<a href="#">http://atlasse03.na.infn.it/</a><br>
<a href="#">http://atlasse04.na.infn.it/</a><br>
<a href="#">http://atlasse05.na.infn.it/</a><br>
<a href="#">http://atlasse06.na.infn.it/</a><br>
<a href="#">http://atlasse07.na.infn.it/</a><br>
</div>
<!-- menu 4 :: Services Nodes -->
<div id="menu4" style="top: 150px;" class="menu" >
<a href="http://localhost:8080/web/guest/service-node-ata" target="_blank">http://ipmiatlasce01.na.infn.it</a><br>
</div>
<!-- menu 5 :: CMC -->
<div id="menu5" style="top: 200px;" class="menu" >
<a href="#">http://172.21.0.72/(cmc22)</a><br>
<a href="#">http://172.21.0.73/(cmc23)</a><br>
<a href="#">http://172.21.0.74/(cmc24)</a><br>
<a href="#">http://172.21.0.75/(cmc25)</a><br>
<a href="http://localhost:8080/web/guest/cmc26" target="_blank">http://172.21.0.76/(cmc26)</a><br>
<a href="http://localhost:8080/web/guest/altri" target="_blank">http://172.21.0.77/(cmc27)</a><br>
<a href="http://localhost:8080/web/guest/altro1" target="_blank">http://172.21.0.78/(cmc28)</a><br>
<a href="#">http://172.21.0.79/(cmc29)</a><br>
<a href="#">http://172.21.0.80/(cmc30)</a><br>
<a href="http://localhost:8080/web/guest/altr1" target="_blank">http://172.21.0.81/(cmc31)</a><br>
<a href="http://localhost:8080/web/guest/prov" target="_blank">http://172.21.0.82/(cmc32)</a><br>
<a href="http://localhost:8080/web/guest/2" target="_blank">http://172.21.0.83/(cmc33)</a><br>
</div>
<!-- menu 6 :: Worker Nodes -->
<div id="menu6" style="top: 0px;" class="menu" >
<a href="#">http://ipmi-atlaswn01.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn02.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn03.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn04.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 112 di 228
<a href="#">http://ipmi-atlaswn05.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn06.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn07.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn08.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn18.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn19.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn20.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn21.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn22.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn23.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn24.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn25.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn26.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn27.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn28.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn29.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn30.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn31.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn32.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn33.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn34.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn35.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn36.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn37.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn38.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn39.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn40.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn41.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn42.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn43.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn44.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn45.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn46.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn47.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn48.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn49.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn50.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn51.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn52.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn53.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn54.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn55.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn56.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn57.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn58.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn59.na.infn.it/</a><br>
</div>
<!-- menu 7 :: Storage Elements -->
<div id="menu7" style="top: 280px;" class="menu" >
<a href="#">http://atlasse08.na.infn.it/</a><br>
<a href="#">http://atlasse09.na.infn.it/</a><br>
<a href="#">http://atlasse10.na.infn.it/</a><br>
<a href="#">http://atlasse11.na.infn.it/</a><br>
<a href="#">http://atlasse12.na.infn.it/</a><br>
<a href="#">http://atlasse13.na.infn.it/</a><br>
<a href="#">http://atlasse14.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 113 di 228
<a href="#">http://atlasse15.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03b.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04b.na.infn.it/</a><br>
</div>
<!-- menu 8 :: Switches -->
<div id="menu8" style="top: 300px;" class="menu" >
<a href="#">http://swdell-atlas01.na.infn.it/</a><br>
<a href="#">http://swdell-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas04.na.infn.it/</a><br>
</div>
<script type="text/javascript">inizializza(9);</script>
</body>
</html>
codice pagina servizi switches scope
apertura spoiler cmc atlas cambia solo la pagina di riferimento
…....................................
<iframe src="menu_sw_SC.html" width="100%" height="100%" frameborder="0">
…....................................
spoiler
<html>
<head>
<title>Menu Dinamico a tendina</title>
<link rel="stylesheet" type="text/css" href="menu.css">
<script language="javascript" src="menu.js"></script>
</head>
<body>
<div style="top:0px; left:0px; width: 100%; height: 100%;" onMouseOver="setTimeout('chiudi()',9999999);">
</div>
<div style="top:0px; left:0px; width:120;">
<table border="0" cellspacing="4">
<tr><td> L1: ATLAS Data Center </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmcatla" onMouseOver="apri(1)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/work-nodes-ata" onMouseOver="apri(2)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements1" onMouseOver="apri(3)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/Switches-atlas" onMouseOver="apri(4)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/servicenodeatla" onMouseOver="apri(5)"
target="_blank">Service Nodes</a> </td></tr>
<tr><td>L2: SCoPE Data Center</td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmc" onMouseOver="apri(6)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/worker-node" onMouseOver="apri(7)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements" onMouseOver="apri(8)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="javascript:void(0)" onMouseOver="apri(9)" target="_blank">Service Nodes</a>
Sergnese Nicola 566/2002
Pagina 114 di 228
</td></tr>
</table>
</div>
<!-- menu 1 :: cmc -->
<div id="menu1" style="top: 4px;" class="menu" >
<a href="#">http://cmc1atlas.na.infn.it/</a><br>
<a href="#">http://cmc2atlas.na.infn.it/</a><br>
<a href="#">http://cmc3atlas.na.infn.it/</a><br>
<a href="#">http://cmc4atlas.na.infn.it/</a><br>
</div>
<!-- menu 2 :: worker nodes -->
<div id="menu2" style="top: 4px;" class="menu" >
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn09.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn10.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn11.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn12.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn13.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn14.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn15.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn16.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn17.na.infn.it/</a><br>
</div>
<!-- menu 3 :: Storage Elements -->
<div id="menu3" style="top: 25px;" class="menu" >
<a href="#">http://atlasse02.na.infn.it/</a><br>
<a href="#">http://atlasse03.na.infn.it/</a><br>
<a href="#">http://atlasse04.na.infn.it/</a><br>
<a href="#">http://atlasse05.na.infn.it/</a><br>
<a href="#">http://atlasse06.na.infn.it/</a><br>
<a href="#">http://atlasse07.na.infn.it/</a><br>
</div>
<!-- menu 4 :: Switches -->
<div id="menu4" style="top: 46px;" class="menu" >
<a href="#">http://sw3com-atlas01.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas03.na.infn.it/</a><br>
<a href="#">http://swdell-scope01.na.infn.it/</a><br>
</div>
<!-- menu 5 :: Services Nodes -->
<div id="menu5" style="top: 67px;" class="menu" >
<a href="http://localhost:8080/web/guest/service-node-ata" target="_blank">http://ipmiatlasce01.na.infn.it</a><br>
</div>
<!-- menu 6 :: CMC -->
<div id="menu6" style="top: 200px;" class="menu" >
<a href="#">http://172.21.0.72/(cmc22)</a><br>
<a href="#">http://172.21.0.73/(cmc23)</a><br>
<a href="#">http://172.21.0.74/(cmc24)</a><br>
<a href="#">http://172.21.0.75/(cmc25)</a><br>
<a href="http://localhost:8080/web/guest/cmc26" target="_blank">http://172.21.0.76/(cmc26)</a><br>
<a href="http://localhost:8080/web/guest/altri" target="_blank">http://172.21.0.77/(cmc27)</a><br>
<a href="http://localhost:8080/web/guest/altro1" target="_blank">http://172.21.0.78/(cmc28)</a><br>
Sergnese Nicola 566/2002
Pagina 115 di 228
<a href="#">http://172.21.0.79/(cmc29)</a><br>
<a href="#">http://172.21.0.80/(cmc30)</a><br>
<a href="http://localhost:8080/web/guest/altr1" target="_blank">http://172.21.0.81/(cmc31)</a><br>
<a href="http://localhost:8080/web/guest/prov" target="_blank">http://172.21.0.82/(cmc32)</a><br>
<a href="http://localhost:8080/web/guest/2" target="_blank">http://172.21.0.83/(cmc33)</a><br>
</div>
<!-- menu 7 :: Worker Nodes -->
<div id="menu7" style="top: 0px;" class="menu" >
<a href="#">http://ipmi-atlaswn01.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn02.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn03.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn04.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn05.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn06.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn07.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn08.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn18.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn19.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn20.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn21.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn22.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn23.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn24.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn25.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn26.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn27.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn28.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn29.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn30.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn31.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn32.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn33.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn34.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn35.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn36.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn37.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn38.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn39.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn40.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn41.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn42.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn43.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn44.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn45.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn46.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn47.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn48.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn49.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn50.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn51.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn52.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn53.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn54.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn55.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn56.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 116 di 228
<a href="#">http://ipmi-atlaswn57.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn58.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn59.na.infn.it/</a><br>
</div>
<!-- menu 8 :: Storage Elements -->
<div id="menu8" style="top: 250px;" class="menu" >
<a href="#">http://atlasse08.na.infn.it/</a><br>
<a href="#">http://atlasse09.na.infn.it/</a><br>
<a href="#">http://atlasse10.na.infn.it/</a><br>
<a href="#">http://atlasse11.na.infn.it/</a><br>
<a href="#">http://atlasse12.na.infn.it/</a><br>
<a href="#">http://atlasse13.na.infn.it/</a><br>
<a href="#">http://atlasse14.na.infn.it/</a><br>
<a href="#">http://atlasse15.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03b.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04b.na.infn.it/</a><br>
</div>
<script type="text/javascript">inizializza(9);</script>
</body>
</html>
codice pagina servizi elements storage atlas
apertura spoiler cmc atlas cambia solo la pagina di riferimento
…....................................
<iframe src="menu_se_SC.html" width="100%" height="100%" frameborder="0">
…....................................
spoiler
<html>
<head>
<title>Menu Dinamico a tendina</title>
<link rel="stylesheet" type="text/css" href="menu.css">
<script language="javascript" src="menu.js"></script>
</head>
<body>
<div style="top:0px; left:0px; width: 100%; height: 100%;" onMouseOver="setTimeout('chiudi()',9999999);">
</div>
<div style="top:0px; left:0px; width:120;">
<table border="0" cellspacing="4">
<tr><td> L1: ATLAS Data Center </td></tr>
<tr><td><a href="http://localhost:8080/web/guest/cmcatla" onMouseOver="apri(1)"
target="_blank">CMC</a></td></tr>
<tr><td><a href="http://localhost:8080/web/guest/work-nodes-ata" onMouseOver="apri(2)"
target="_blank">Worker Nodes</a></td></tr>
<tr><td><a href="http://localhost:8080/web/guest/Switches-atlas" onMouseOver="apri(3)"
target="_blank">Switches</a></td></tr>
<tr><td><a href="http://localhost:8080/web/guest/servicenodeatla" onMouseOver="apri(4)"
target="_blank">Service Nodes</a> </td></tr>
<tr><td>L2: SCoPE Data Center</td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmc" onMouseOver="apri(5)"
target="_blank">CMC</a> </td></tr>
Sergnese Nicola 566/2002
Pagina 117 di 228
<tr><td> <a href="http://localhost:8080/web/guest/worker-node" onMouseOver="apri(6)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements" onMouseOver="apri(7)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/switches" onMouseOver="apri(8)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="javascript:void(0)" onMouseOver="apri(9)" target="_blank">Service Nodes</a>
</td></tr>
</table>
</div>
<!-- menu 1 :: cmc -->
<div id="menu1" style="top: 4px;" class="menu" >
<a href="#">http://cmc1atlas.na.infn.it/</a><br>
<a href="#">http://cmc2atlas.na.infn.it/</a><br>
<a href="#">http://cmc3atlas.na.infn.it/</a><br>
<a href="#">http://cmc4atlas.na.infn.it/</a><br>
</div>
<!-- menu 2 :: worker nodes -->
<div id="menu2" style="top: 4px;" class="menu" >
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn09.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn10.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn11.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn12.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn13.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn14.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn15.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn16.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn17.na.infn.it/</a><br>
</div>
<!-- menu 3 :: Switches -->
<div id="menu3" style="top: 46px;" class="menu" >
<a href="#">http://sw3com-atlas01.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas03.na.infn.it/</a><br>
<a href="#">http://swdell-scope01.na.infn.it/</a><br>
</div>
<!-- menu 4 :: Services Nodes -->
<div id="menu4" style="top: 67px;" class="menu" >
<a href="http://localhost:8080/web/guest/service-node-ata" target="_blank">http://ipmiatlasce01.na.infn.it</a><br>
</div>
<!-- menu 5 :: CMC -->
<div id="menu5" style="top: 200px;" class="menu" >
<a href="#">http://172.21.0.72/(cmc22)</a><br>
<a href="#">http://172.21.0.73/(cmc23)</a><br>
<a href="#">http://172.21.0.74/(cmc24)</a><br>
<a href="#">http://172.21.0.75/(cmc25)</a><br>
<a href="http://localhost:8080/web/guest/cmc26" target="_blank">http://172.21.0.76/(cmc26)</a><br>
<a href="http://localhost:8080/web/guest/altri" target="_blank">http://172.21.0.77/(cmc27)</a><br>
<a href="http://localhost:8080/web/guest/altro1" target="_blank">http://172.21.0.78/(cmc28)</a><br>
<a href="#">http://172.21.0.79/(cmc29)</a><br>
<a href="#">http://172.21.0.80/(cmc30)</a><br>
<a href="http://localhost:8080/web/guest/altr1" target="_blank">http://172.21.0.81/(cmc31)</a><br>
Sergnese Nicola 566/2002
Pagina 118 di 228
<a href="http://localhost:8080/web/guest/prov" target="_blank">http://172.21.0.82/(cmc32)</a><br>
<a href="http://localhost:8080/web/guest/2" target="_blank">http://172.21.0.83/(cmc33)</a><br>
</div>
<!-- menu 6 :: Worker Nodes -->
<div id="menu6" style="top: 0px;" class="menu" >
<a href="#">http://ipmi-atlaswn01.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn02.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn03.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn04.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn05.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn06.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn07.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn08.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn18.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn19.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn20.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn21.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn22.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn23.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn24.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn25.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn26.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn27.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn28.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn29.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn30.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn31.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn32.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn33.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn34.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn35.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn36.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn37.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn38.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn39.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn40.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn41.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn42.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn43.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn44.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn45.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn46.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn47.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn48.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn49.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn50.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn51.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn52.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn53.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn54.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn55.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn56.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn57.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn58.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn59.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 119 di 228
</div>
<!-- menu 7 :: Storage Elements -->
<div id="menu7" style="top: 280px;" class="menu" >
<a href="#">http://atlasse08.na.infn.it/</a><br>
<a href="#">http://atlasse09.na.infn.it/</a><br>
<a href="#">http://atlasse10.na.infn.it/</a><br>
<a href="#">http://atlasse11.na.infn.it/</a><br>
<a href="#">http://atlasse12.na.infn.it/</a><br>
<a href="#">http://atlasse13.na.infn.it/</a><br>
<a href="#">http://atlasse14.na.infn.it/</a><br>
<a href="#">http://atlasse15.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03b.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04b.na.infn.it/</a><br>
</div>
<!-- menu 8 :: Switches -->
<div id="menu8" style="top: 300px;" class="menu" >
<a href="#">http://swdell-atlas01.na.infn.it/</a><br>
<a href="#">http://swdell-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas04.na.infn.it/</a><br>
</div>
<script type="text/javascript">inizializza(9);</script>
</body>
</html>
codice pagina servizi elements storage scope
apertura spoiler cmc atlas cambia solo la pagina di riferimento
…....................................
<iframe src="menu_se_SC.html" width="100%" height="100%" frameborder="0">
…....................................
spoiler
<html>
<head>
<title>Menu Dinamico a tendina</title>
<link rel="stylesheet" type="text/css" href="menu.css">
<script language="javascript" src="menu.js"></script>
</head>
<body>
<div style="top:0px; left:0px; width: 100%; height: 100%;" onMouseOver="setTimeout('chiudi()',9999999);">
</div>
<div style="top:0px; left:0px; width:120;">
<table border="0" cellspacing="4">
<tr><td> L1: ATLAS Data Center </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmcatla" onMouseOver="apri(1)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/work-nodes-ata" onMouseOver="apri(2)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements1" onMouseOver="apri(3)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/Switches-atlas" onMouseOver="apri(4)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/servicenodeatla" onMouseOver="apri(5)"
target="_blank">Service Nodes</a> </td></tr>
Sergnese Nicola 566/2002
Pagina 120 di 228
<tr><td>L2: SCoPE Data Center</td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmc" onMouseOver="apri(6)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/worker-node" onMouseOver="apri(7)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/switches" onMouseOver="apri(8)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="javascript:void(0)" onMouseOver="apri(9)" target="_blank">Service Nodes</a>
</td></tr>
</table>
</div>
<!-- menu 1 :: cmc -->
<div id="menu1" style="top: 4px;" class="menu" >
<a href="#">http://cmc1atlas.na.infn.it/</a><br>
<a href="#">http://cmc2atlas.na.infn.it/</a><br>
<a href="#">http://cmc3atlas.na.infn.it/</a><br>
<a href="#">http://cmc4atlas.na.infn.it/</a><br>
</div>
<!-- menu 2 :: worker nodes -->
<div id="menu2" style="top: 4px;" class="menu" >
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn09.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn10.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn11.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn12.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn13.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn14.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn15.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn16.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn17.na.infn.it/</a><br>
</div>
<!-- menu 3 :: Storage Elements -->
<div id="menu3" style="top: 25px;" class="menu" >
<a href="#">http://atlasse02.na.infn.it/</a><br>
<a href="#">http://atlasse03.na.infn.it/</a><br>
<a href="#">http://atlasse04.na.infn.it/</a><br>
<a href="#">http://atlasse05.na.infn.it/</a><br>
<a href="#">http://atlasse06.na.infn.it/</a><br>
<a href="#">http://atlasse07.na.infn.it/</a><br>
</div>
<!-- menu 4 :: Switches -->
<div id="menu4" style="top: 46px;" class="menu" >
<a href="#">http://sw3com-atlas01.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas03.na.infn.it/</a><br>
<a href="#">http://swdell-scope01.na.infn.it/</a><br>
</div>
<!-- menu 5 :: Services Nodes -->
<div id="menu5" style="top: 67px;" class="menu" >
<a href="http://localhost:8080/web/guest/service-node-ata" target="_blank">http://ipmiatlasce01.na.infn.it</a><br>
</div>
<!-- menu 6 :: CMC -->
Sergnese Nicola 566/2002
Pagina 121 di 228
<div id="menu6" style="top: 200px;" class="menu" >
<a href="#">http://172.21.0.72/(cmc22)</a><br>
<a href="#">http://172.21.0.73/(cmc23)</a><br>
<a href="#">http://172.21.0.74/(cmc24)</a><br>
<a href="#">http://172.21.0.75/(cmc25)</a><br>
<a href="http://localhost:8080/web/guest/cmc26" target="_blank">http://172.21.0.76/(cmc26)</a><br>
<a href="http://localhost:8080/web/guest/altri" target="_blank">http://172.21.0.77/(cmc27)</a><br>
<a href="http://localhost:8080/web/guest/altro1" target="_blank">http://172.21.0.78/(cmc28)</a><br>
<a href="#">http://172.21.0.79/(cmc29)</a><br>
<a href="#">http://172.21.0.80/(cmc30)</a><br>
<a href="http://localhost:8080/web/guest/altr1" target="_blank">http://172.21.0.81/(cmc31)</a><br>
<a href="http://localhost:8080/web/guest/prov" target="_blank">http://172.21.0.82/(cmc32)</a><br>
<a href="http://localhost:8080/web/guest/2" target="_blank">http://172.21.0.83/(cmc33)</a><br>
</div>
<!-- menu 7 :: Worker Nodes -->
<div id="menu7" style="top: 0px;" class="menu" >
<a href="#">http://ipmi-atlaswn01.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn02.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn03.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn04.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn05.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn06.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn07.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn08.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn18.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn19.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn20.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn21.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn22.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn23.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn24.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn25.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn26.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn27.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn28.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn29.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn30.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn31.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn32.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn33.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn34.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn35.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn36.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn37.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn38.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn39.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn40.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn41.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn42.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn43.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn44.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn45.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn46.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn47.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn48.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 122 di 228
<a href="#">http://ipmi-atlaswn49.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn50.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn51.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn52.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn53.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn54.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn55.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn56.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn57.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn58.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn59.na.infn.it/</a><br>
</div>
<!-- menu 8 :: Switches -->
<div id="menu8" style="top: 300px;" class="menu" >
<a href="#">http://swdell-atlas01.na.infn.it/</a><br>
<a href="#">http://swdell-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas04.na.infn.it/</a><br>
</div>
<script type="text/javascript">inizializza(9);</script>
</body>
</html>
codice pagina servizi service nodes atlas
apertura spoiler cmc atlas cambia solo la pagina di riferimento
…....................................
<iframe src="menu_ce_sn_atla.html" width="100%" height="100%" frameborder="0">
…....................................
spoiler
<html>
<head>
<title>Menu Dinamico a tendina</title>
<link rel="stylesheet" type="text/css" href="menu.css">
<script language="javascript" src="menu.js"></script>
</head>
<body>
<div style="top:0px; left:0px; width: 100%; height: 100%;" onMouseOver="setTimeout('chiudi()',9999999);">
</div>
<div style="top:0px; left:0px; width:120;">
<table border="0" cellspacing="4">
<tr><td> L1: ATLAS Data Center </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmcatla" onMouseOver="apri(1)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/work-nodes-ata" onMouseOver="apri(2)"
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements1" onMouseOver="apri(3)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/Switches-atlas" onMouseOver="apri(4)"
target="_blank">Switches</a> </td></tr>
<tr><td>L2: SCoPE Data Center</td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/cmc" onMouseOver="apri(5)"
target="_blank">CMC</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/worker-node" onMouseOver="apri(6)"
Sergnese Nicola 566/2002
Pagina 123 di 228
target="_blank">Worker Nodes</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/storage-elements" onMouseOver="apri(7)"
target="_blank">Storage Elements</a> </td></tr>
<tr><td> <a href="http://localhost:8080/web/guest/Switches" onMouseOver="apri(8)"
target="_blank">Switches</a> </td></tr>
<tr><td> <a href="javascript:void(0)" onMouseOver="apri(9)" target="_blank">Service Nodes</a>
</td></tr>
</table>
</div>
<!-- menu 1 :: cmc -->
<div id="menu1" style="top: 4px;" class="menu" >
<a href="#">http://cmc1atlas.na.infn.it/</a><br>
<a href="#">http://cmc2atlas.na.infn.it/</a><br>
<a href="#">http://cmc3atlas.na.infn.it/</a><br>
<a href="#">http://cmc4atlas.na.infn.it/</a><br>
</div>
<!-- menu 2 :: worker nodes -->
<div id="menu2" style="top: 4px;" class="menu" >
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn09.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn10.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn11.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn12.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn13.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn14.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn15.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn16.na.infn.it/</a><br>
<a href="http://localhost:8080/web/guest/ipmi" target="_blank">http://ipmi-atlaswn17.na.infn.it/</a><br>
</div>
<!-- menu 3 :: Storage Elements -->
<div id="menu3" style="top: 25px;" class="menu" >
<a href="#">http://atlasse02.na.infn.it/</a><br>
<a href="#">http://atlasse03.na.infn.it/</a><br>
<a href="#">http://atlasse04.na.infn.it/</a><br>
<a href="#">http://atlasse05.na.infn.it/</a><br>
<a href="#">http://atlasse06.na.infn.it/</a><br>
<a href="#">http://atlasse07.na.infn.it/</a><br>
</div>
<!-- menu 4 :: Switches -->
<div id="menu4" style="top: 46px;" class="menu" >
<a href="#">http://sw3com-atlas01.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas03.na.infn.it/</a><br>
<a href="#">http://swdell-scope01.na.infn.it/</a><br>
</div>
<!-- menu 5 :: CMC -->
<div id="menu5" style="top: 200px;" class="menu" >
<a href="#">http://172.21.0.72/(cmc22)</a><br>
<a href="#">http://172.21.0.73/(cmc23)</a><br>
<a href="#">http://172.21.0.74/(cmc24)</a><br>
<a href="#">http://172.21.0.75/(cmc25)</a><br>
<a href="http://localhost:8080/web/guest/cmc26" target="_blank">http://172.21.0.76/(cmc26)</a><br>
<a href="http://localhost:8080/web/guest/altri" target="_blank">http://172.21.0.77/(cmc27)</a><br>
<a href="http://localhost:8080/web/guest/altro1" target="_blank">http://172.21.0.78/(cmc28)</a><br>
Sergnese Nicola 566/2002
Pagina 124 di 228
<a href="#">http://172.21.0.79/(cmc29)</a><br>
<a href="#">http://172.21.0.80/(cmc30)</a><br>
<a href="http://localhost:8080/web/guest/altr1" target="_blank">http://172.21.0.81/(cmc31)</a><br>
<a href="http://localhost:8080/web/guest/prov" target="_blank">http://172.21.0.82/(cmc32)</a><br>
<a href="http://localhost:8080/web/guest/2" target="_blank">http://172.21.0.83/(cmc33)</a><br>
</div>
<!-- menu 6 :: Worker Nodes -->
<div id="menu6" style="top: 0px;" class="menu" >
<a href="#">http://ipmi-atlaswn01.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn02.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn03.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn04.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn05.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn06.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn07.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn08.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn18.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn19.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn20.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn21.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn22.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn23.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn24.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn25.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn26.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn27.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn28.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn29.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn30.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn31.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn32.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn33.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn34.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn35.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn36.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn37.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn38.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn39.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn40.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn41.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn42.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn43.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn44.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn45.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn46.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn47.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn48.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn49.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn50.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn51.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn52.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn53.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn54.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn55.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn56.na.infn.it/</a><br>
Sergnese Nicola 566/2002
Pagina 125 di 228
<a href="#">http://ipmi-atlaswn57.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn58.na.infn.it/</a><br>
<a href="#">http://ipmi-atlaswn59.na.infn.it/</a><br>
</div>
<!-- menu7 :: Storage Elements -->
<div id="menu7" style="top: 280px;" class="menu" >
<a href="#">http://atlasse08.na.infn.it/</a><br>
<a href="#">http://atlasse09.na.infn.it/</a><br>
<a href="#">http://atlasse10.na.infn.it/</a><br>
<a href="#">http://atlasse11.na.infn.it/</a><br>
<a href="#">http://atlasse12.na.infn.it/</a><br>
<a href="#">http://atlasse13.na.infn.it/</a><br>
<a href="#">http://atlasse14.na.infn.it/</a><br>
<a href="#">http://atlasse15.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-03b.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04a.na.infn.it/</a><br>
<a href="#">http://atlas-e4-04b.na.infn.it/</a><br>
</div>
<!-- menu 8 :: Switches -->
<div id="menu8" style="top: 300px;" class="menu" >
<a href="#">http://swdell-atlas01.na.infn.it/</a><br>
<a href="#">http://swdell-atlas02.na.infn.it/</a><br>
<a href="#">http://sw3com-atlas04.na.infn.it/</a><br>
</div>
<script type="text/javascript">inizializza(9);</script>
</body>
</html>
codice pagina servizi service nodes scope non presente perché non ci sono service nodes al momento su scope
7.3
codice pagina asus
<html><head>
<script>
readCk = function(name)
{
var nameEQ = name + "=";
var ca = top.document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
}
var lang = readCk('lang');
top.gLangSettingSet = false;
if(lang)
Sergnese Nicola 566/2002
Pagina 126 di 228
top.gLangSetting = lang;
else
top.gLangSetting = "EN";
top.gLangSettingSet=true;
</script>
<link href="login_files/login.css" rel="stylesheet" type="text/css">
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script src="login_files/ui.js"></script><script type="text/javascript"
src="login_files/xmit.js"></script>
<script type="text/javascript" src="login_files/eLang.js"></script>
<script type="text/javascript" src="login_files/eExt.js"></script>
<script src="login_files/eLang.js"></script>
<script>
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/global_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/login_str.js\"><\/script>");
</script><script language="Javascript" ,="" src="login_files/global_str.js"></script><script
language="Javascript" ,="" src="login_files/common_str.js"></script><script language="Javascript" ,=""
src="login_files/bios_post_event_str.js"></script><script language="Javascript" ,=""
src="login_files/chassistype_str.js"></script><script language="Javascript" ,=""
src="login_files/err_str.js"></script><script language="Javascript" ,=""
src="login_files/noreading_str.js"></script><script language="Javascript" ,=""
src="login_files/sensor_specific_event_str.js"></script><script language="Javascript" ,=""
src="login_files/sensortype_str.js"></script><script language="Javascript" ,=""
src="login_files/sys_str.js"></script><script language="Javascript" ,=""
src="login_files/threshstate_str.js"></script><script language="Javascript" ,=""
src="login_files/tz_str.js"></script><script language="Javascript" ,=""
src="login_files/unittype_str.js"></script><script language="Javascript" ,=""
src="login_files/event_str.js"></script><script language="Javascript" ,=""
src="login_files/login_str.js"></script>
<script src="login_files/login_imp.js"></script>
<script>
onload = function() {
if (top.gLangSettingSet == true) {
doInit();
}
}
</script>
</head><body>
<table style="margin: 0px; padding: 0px;" border="0" cellpadding="0" cellspacing="0" width="100%">
<tbody><tr>
<td id="headerleft" width="412"><img src="login_files/banner_left.asc" alt=""
height="63" width="412"></td>
<td id="headermiddle"> <img src="login_files/banner_background.asc" alt=""
border="0" height="63" width="100%"></td>
<td id="headerright" width="407"><img src="login_files/banner_right.asc" alt=""
height="63" width="407"></td>
</tr>
</tbody></table>
Sergnese Nicola 566/2002
Pagina 127 di 228
&nbsp;
<p>&nbsp;</p>
<div align="center">
<div class="shadow">
<h3>
<script>document.writeln(eLang.getString("login", "STR_LOGIN_PLS_LOGIN"));</script>Please Login
</h3>
<div class="loginBox">
<div class="lbFields">
<form action="javascript://">
<p id="msglbl">Please log in to access the device.</p>
<label style="width: 85px; text-align: left;">
<script>document.writeln(eLang.getString("login", "STR_LOGIN_USERNAME"));</script>Username
</label><input id="login_username" name="T1" size="20" style="width: 146px;" tabindex="1"
type="text"><br><br>
<label style="width: 85px; text-align: left;">
<script>document.writeln(eLang.getString("login", "STR_LOGIN_PASSWORD"));</script>Password
</label><input id="login_password" name="T2" size="20" style="width: 146px;" tabindex="2"
type="password"><br><br>
<input value="Login" class="button" name="Login" onclick="DoLogin();" type="submit">
</form>
</div>
</div>
</div>
</div>
</body></html>
script bios_post_event_str.js
/*********************************BIOS POST EVENT
STRINGS***********************************/
eLang.bios_post_event_strings = new Array();
eLang.bios_post_event_strings[0] = new Array();
eLang.bios_post_event_strings[1] = new Array();
eLang.bios_post_event_strings[2] = eLang.bios_post_event_strings[1];
eLang.bios_post_event_strings[0][0] = "Unspecified."
eLang.bios_post_event_strings[0][1] = "No system memory is physically installed in the system."
eLang.bios_post_event_strings[0][2] = "No usable system memory, all installed memory has experienced an
unrecoverable failure."
eLang.bios_post_event_strings[0][3] = "Unrecoverable hard-disk/ATAPI/IDE device failure."
eLang.bios_post_event_strings[0][4] = "Unrecoverable system-board failure."
eLang.bios_post_event_strings[0][5] = "Unrecoverable diskette subsystem failure."
eLang.bios_post_event_strings[0][6] = "Unrecoverable hard-disk controller failure."
eLang.bios_post_event_strings[0][7] = "Unrecoverable PS/2 or USB keyboard failure."
eLang.bios_post_event_strings[0][8] = "Removable boot media not found."
eLang.bios_post_event_strings[0][9] = "Unrecoverable video controller failure."
eLang.bios_post_event_strings[0][10] = "No video device detected."
eLang.bios_post_event_strings[0][11] = "Firmware (BIOS) ROM corruption detected."
eLang.bios_post_event_strings[0][12] = "CPU voltage mismatch (processors that share same supply have
mismatched voltage requirements)."
eLang.bios_post_event_strings[0][13] = "CPU speed matching failure."
Sergnese Nicola 566/2002
Pagina 128 di 228
eLang.bios_post_event_strings[1][1] = "Unspecified."
eLang.bios_post_event_strings[1][2] = "Memory initialization."
eLang.bios_post_event_strings[1][3] = "Hard-disk initialization."
eLang.bios_post_event_strings[1][4] = "Secondary processor(s) initialization."
eLang.bios_post_event_strings[1][5] = "User authentication."
eLang.bios_post_event_strings[1][6] = "User-initiated system setup."
eLang.bios_post_event_strings[1][7] = "USB resource configuration."
eLang.bios_post_event_strings[1][8] = "PCI resource configuration."
eLang.bios_post_event_strings[1][9] = "Option ROM initialization."
eLang.bios_post_event_strings[1][10] = "Video initialization."
eLang.bios_post_event_strings[1][11] = "Cache initialization."
eLang.bios_post_event_strings[1][12] = "SM Bus initialization."
eLang.bios_post_event_strings[1][13] = "Keyboard controller initialization."
eLang.bios_post_event_strings[1][14] = "Embedded controller/management controller initialization."
eLang.bios_post_event_strings[1][15] = "Docking station attachment."
eLang.bios_post_event_strings[1][16] = "Enabling docking station."
eLang.bios_post_event_strings[1][17] = "Docking station ejection."
eLang.bios_post_event_strings[1][18] = "Disabling docking station."
eLang.bios_post_event_strings[1][19] = "Calling operating system wake-up vector."
eLang.bios_post_event_strings[1][20] = "Starting operating system boot process."
eLang.bios_post_event_strings[1][21] = "Baseboard or motherboard initialization."
eLang.bios_post_event_strings[1][22] = "reserved."
eLang.bios_post_event_strings[1][23] = "Floppy initialization."
eLang.bios_post_event_strings[1][24] = "Keyboard test."
eLang.bios_post_event_strings[1][25] = "Pointing device test."
eLang.bios_post_event_strings[1][26] = "Primary processor initialization."
/
******************************************************************************************
*/
codice chassistype_str.js
eLang.chassistype_strings={};
/* Chassis Type strings */
eLang.chassistype_strings[0] = "Unknown";
eLang.chassistype_strings[1] = "Other";
eLang.chassistype_strings[2] = "Unknown";
eLang.chassistype_strings[3] = "Desktop";
eLang.chassistype_strings[4] = "Low Profile Desktop";
eLang.chassistype_strings[5] = "Pizza Box";
eLang.chassistype_strings[6] = "Mini Tower";
eLang.chassistype_strings[7] = "Tower";
eLang.chassistype_strings[8] = "Portable";
eLang.chassistype_strings[9] = "LapTop";
eLang.chassistype_strings[10] = "Notebook";
eLang.chassistype_strings[11] = "Hand Held";
eLang.chassistype_strings[12] = "Docking Station";
eLang.chassistype_strings[13] = "All in One";
eLang.chassistype_strings[14] = "Sub Notebook";
eLang.chassistype_strings[15] = "Space-saving";
eLang.chassistype_strings[16] = "Lunch Box";
eLang.chassistype_strings[17] = "Main Server Chassis";
eLang.chassistype_strings[18] = "Expansion Chassis";
eLang.chassistype_strings[19] = "SubChassis";
eLang.chassistype_strings[20] = "Bus Expansion Chassis";
eLang.chassistype_strings[21] = "Peripheral Chassis";
eLang.chassistype_strings[22] = "RAID Chassis";
Sergnese Nicola 566/2002
Pagina 129 di 228
eLang.chassistype_strings[23] = "Rack Mount Chassis";
codice common_str.js
eLang.common_strings = {};
eLang.common_strings["STR_APP_STR_100"] ="You need to have administrator privileges to modify LDAP
settings.";
eLang.common_strings["STR_APP_STR_101"] ="Error retreiving information : ";
eLang.common_strings["STR_APP_STR_102"] ="Could not get LDAP settings";
eLang.common_strings["STR_APP_STR_103"] ="The requested LDAP configuration has been successfully
set.";
eLang.common_strings["STR_APP_STR_104"] ="Invalid Port Number";
eLang.common_strings["STR_APP_STR_105"] ="Invalid IP Address";
eLang.common_strings["STR_APP_STR_106"] ="Password should be atleast 4 characters";
eLang.common_strings["STR_APP_STR_107"] ="Password length can not exceed 32 characters";
eLang.common_strings["STR_APP_STR_108"] ="Invalid Bind DN field";
eLang.common_strings["STR_APP_STR_109"] ="Invalid Search base";
eLang.common_strings["STR_APP_STR_110"] ="You need to have administrator privileges to configure
alerts.";
eLang.common_strings["STR_APP_STR_111"] ="Disable All";
eLang.common_strings["STR_APP_STR_112"] ="Information and Above";
eLang.common_strings["STR_APP_STR_113"] ="Warning and Above";
eLang.common_strings["STR_APP_STR_114"] ="Critical And Above";
eLang.common_strings["STR_APP_STR_115"] ="Non-recoverable and above";
eLang.common_strings["STR_APP_STR_116"] ="Unknown level";
eLang.common_strings["STR_APP_STR_117"] ="Not Configured";
eLang.common_strings["STR_APP_STR_118"] ="Alert Table: ";
eLang.common_strings["STR_APP_STR_119"] =" entries";
eLang.common_strings["STR_APP_STR_120"] ="<b>Alert #</b>";
eLang.common_strings["STR_APP_STR_121"] ="<b>Alert Level</b>";
eLang.common_strings["STR_APP_STR_122"] ="<b>Destination Address</b>";
eLang.common_strings["STR_APP_STR_123"] ="A test alert has been sent to the destination. Please check to
see if you received the alert";
eLang.common_strings["STR_APP_STR_124"] ="Please select an entry to which you want to send a test alert";
eLang.common_strings["STR_APP_STR_125"] ="Please select an entry";
eLang.common_strings["STR_APP_STR_125_ALERT"] ="Are you sure to delete this entry?";
eLang.common_strings["STR_APP_STR_125_DELETED"] = "Entry deleted successfully";
eLang.common_strings["STR_APP_STR_125_WARN"] = "Selected slot is not configured";
eLang.common_strings["STR_APP_STR_126"] ="Alert entry has been modified successfully.";
eLang.common_strings["STR_APP_STR_127"] ="Please enter a valid destination address.";
eLang.common_strings["STR_APP_STR_128"] ="Please enter a valid Email address.";
eLang.common_strings["STR_APP_STR_129"] ="Disable All";
eLang.common_strings["STR_APP_STR_130"] ="Informational";
eLang.common_strings["STR_APP_STR_131"] ="Warning";
eLang.common_strings["STR_APP_STR_132"] ="Critical";
eLang.common_strings["STR_APP_STR_133"] ="Non-recoverable";
eLang.common_strings["STR_APP_STR_134"] ="SNMP Trap";
eLang.common_strings["STR_APP_STR_135"] ="Email";
eLang.common_strings["STR_APP_STR_136"] ="Closes this window";
eLang.common_strings["STR_APP_STR_137"] ="You need to have administrator privileges to modify network
configuration.";
eLang.common_strings["STR_APP_STR_138"] ="Could not get network settings";
eLang.common_strings["STR_APP_STR_139"] ="The requested Network configuration parameters have been
successfully set.";
Sergnese Nicola 566/2002
Pagina 130 di 228
eLang.common_strings["STR_APP_STR_140"] ="Unable to set the supplied network parameters ";
eLang.common_strings["STR_APP_STR_141"] ="Please check the following field(s) for wrong entry.";
eLang.common_strings["STR_APP_STR_142"] ="This function may change the IP address of the device, and
you may lose connectivity in this browser session. Please reconnect using a new browser session after applying
the changes. Do you want to proceed?";
eLang.common_strings["STR_APP_STR_143"] ="IP Address";
eLang.common_strings["STR_APP_STR_144"] ="Subnet Mask";
eLang.common_strings["STR_APP_STR_145"] ="Gateway";
eLang.common_strings["STR_APP_STR_146"] ="<b>Chassis Information:</b>";
eLang.common_strings["STR_APP_STR_147"] ="Type";
eLang.common_strings["STR_APP_STR_148"] ="Part Number";
eLang.common_strings["STR_APP_STR_149"] ="Serial Number";
eLang.common_strings["STR_APP_STR_150"] ="<b>Board Information:</b>";
eLang.common_strings["STR_APP_STR_151"] ="Manufacturer";
eLang.common_strings["STR_APP_STR_152"] ="Product Name";
eLang.common_strings["STR_APP_STR_153"] ="Serial Number";
eLang.common_strings["STR_APP_STR_154"] ="Part Number";
eLang.common_strings["STR_APP_STR_155"] ="FRU File ID";
eLang.common_strings["STR_APP_STR_156"] ="<b>Product Information:</b>";
eLang.common_strings["STR_APP_STR_157"] ="Manufacturer Name";
eLang.common_strings["STR_APP_STR_158"] ="Product Name";
eLang.common_strings["STR_APP_STR_159"] ="Serial Number";
eLang.common_strings["STR_APP_STR_160"] ="Version";
eLang.common_strings["STR_APP_STR_161"] ="Part Number";
eLang.common_strings["STR_APP_STR_162"] ="FRU File ID";
eLang.common_strings["STR_APP_STR_163"] ="Asset Tag";
eLang.common_strings["STR_APP_STR_164"] ="Error modifying LDAP cfg:";
eLang.common_strings["STR_APP_STR_164_nw"] ="Error modifying network cfg:";
eLang.common_strings["STR_APP_STR_165"] ="Hide Thresholds";
eLang.common_strings["STR_APP_STR_166"] ="Show Thresholds";
eLang.common_strings["STR_APP_STR_167"] ="Not Available";
eLang.common_strings["STR_APP_STR_168"] ="Sensor Readings: ";
eLang.common_strings["STR_APP_STR_169"] =" sensors";
eLang.common_strings["STR_APP_STR_170"] ="The BMC seems to be taking too long to respond. Please
check cables and configuration";
eLang.common_strings["STR_APP_STR_171"] ="<b>Name</b>";
eLang.common_strings["STR_APP_STR_172"] ="<b>Status</b>";
eLang.common_strings["STR_APP_STR_173"] ="<b>Reading</b>";
eLang.common_strings["STR_APP_STR_174"] ="<b>Low NR</b>";
eLang.common_strings["STR_APP_STR_175"] ="<b>Low CT</b>";
eLang.common_strings["STR_APP_STR_176"] ="<b>Low NC</b>";
eLang.common_strings["STR_APP_STR_177"] ="<b>High NC</b>";
eLang.common_strings["STR_APP_STR_178"] ="<b>High CT</b>";
eLang.common_strings["STR_APP_STR_179"] ="<b>High NR</b>";
eLang.common_strings["STR_APP_STR_180"] ="All Sensors";
eLang.common_strings["STR_APP_STR_181"] ="Temperature Sensors";
eLang.common_strings["STR_APP_STR_CURR"] ="Current Sensors";
eLang.common_strings["STR_APP_STR_182"] ="Voltage Sensors";
eLang.common_strings["STR_APP_STR_183"] ="Fan Sensors";
eLang.common_strings["STR_APP_PSY_SEC"] ="Physical Security";
eLang.common_strings["STR_APP_STR_184"] ="You need to have administrator privileges to clear the system
event log.";
eLang.common_strings["STR_APP_STR_185"] ="Unknown";
eLang.common_strings["STR_APP_STR_186"] ="Asserted";
eLang.common_strings["STR_APP_STR_187"] ="Deasserted";
eLang.common_strings["STR_APP_STR_188"] ="Event Log: ";
Sergnese Nicola 566/2002
Pagina 131 di 228
eLang.common_strings["STR_APP_STR_189"] =" event entries";
eLang.common_strings["STR_APP_STR_190"] ="<b>Event ID</b>";
eLang.common_strings["STR_APP_STR_191"] ="<b>Time Stamp</b>";
eLang.common_strings["STR_APP_STR_192"] ="<b>Sensor Name</b>";
eLang.common_strings["STR_APP_STR_193"] ="<b>Sensor Type</b>";
eLang.common_strings["STR_APP_STR_194"] ="<b>Description</b>";
eLang.common_strings["STR_APP_STR_195"] ="Sensor-Specific Events";
eLang.common_strings["STR_APP_STR_196"] ="BIOS Generated Events";
eLang.common_strings["STR_APP_STR_197"] ="System Management Software Events";
eLang.common_strings["STR_APP_STR_198"] ="Sensor Event Log has been cleared";
eLang.common_strings["STR_APP_STR_199"] ="This will clear all the events in the log. Are you sure to
proceed?";
eLang.common_strings["STR_APP_STR_200"] ="Error receiving curent status of host";
eLang.common_strings["STR_APP_STR_201"] ="Retrying...please wait. Retries Left : ";
eLang.common_strings["STR_APP_STR_202"] ="Performing soft power off failed. This may be because the
host OS is taking an unusually long time to gracefully shut down. If you think this is not the case please check ";
eLang.common_strings["STR_APP_STR_203"] ="Performing power action failed. Please check ";
eLang.common_strings["STR_APP_STR_204"] ="Host is currently off";
eLang.common_strings["STR_APP_STR_205"] ="Host is currently on";
eLang.common_strings["STR_APP_STR_206"] ="Error receiving response for power action";
eLang.common_strings["STR_APP_STR_207"] ="Performing Power Action..Please Wait";
eLang.common_strings["STR_APP_STR_208"] ="You need to have administrator privileges to perform power
control operations.";
eLang.common_strings["STR_APP_STR_209"] ="Are you sure to change the slave address of the external
BMC?";
eLang.common_strings["STR_APP_STR_210"] ="Are you sure to upload new PMCP files to the device? PMCP
files already seem to exist on the device.";
eLang.common_strings["STR_APP_STR_211"] ="Are you sure to directly monitor sensors on the I2C bus? Note
that you will be required to upload new PMCP files. You will be guided through this process";
eLang.common_strings["STR_APP_STR_212"] ="Are you sure the SP to monitor sensors by communicating to
an external BMC? Note that an external BMC must be connected to the via the IPMB bus.";
eLang.common_strings["STR_APP_STR_213"] ="Current Mode is - Direct Monitoring on I2C bus.";
eLang.common_strings["STR_APP_STR_214"] ="Upload PMCP Files";
eLang.common_strings["STR_APP_STR_215"] ="Current Mode is - External BMC monitoring.";
eLang.common_strings["STR_APP_STR_216"] ="You need to have administrator privileges to modify
monitoring modes";
eLang.common_strings["STR_APP_STR_217"] ="You need to have administrator privileges to modify SMTP
settings.";
eLang.common_strings["STR_APP_STR_218"] ="SMTP Server configuration has been modified.";
eLang.common_strings["STR_APP_STR_219"] ="Please enter a valid IP Address";
eLang.common_strings["STR_APP_STR_220"] ="Error retreiving Firmware build date and time : ";
eLang.common_strings["STR_APP_STR_221"] ="Firmware Revision : ";
eLang.common_strings["STR_APP_STR_222"] ="IPMI Version : ";
eLang.common_strings["STR_APP_STR_223"] =" Build Time : ";
eLang.common_strings["STR_APP_STR_224"]
="Are you sure to enter update mode? You will not be able to perform any other tasks until firmware upgrade is
complete and the device is rebooted.";
eLang.common_strings["STR_APP_STR_225"] ="You need to be an administrator to perform firmware
upgrade:";
eLang.common_strings["STR_APP_STR_226"] ="You need to have administrator privileges to upgrade the
firmware.";
eLang.common_strings["STR_APP_STR_227"] ="Please enter a valid image file";
eLang.common_strings["STR_APP_STR_228"] ="Uploading image...Please wait. This may take a while!";
eLang.common_strings["STR_APP_STR_229"] ="Are you sure to abort the firmware upgrade process? The
device will have to be reset in order to go back to normal operating mode";
eLang.common_strings["STR_APP_STR_230"] ="Firmware Upgrade has been completed.<br><br><br>The
Sergnese Nicola 566/2002
Pagina 132 di 228
device has been reset.<br><br>Please wait 1 minute after updating firmware, and then reboot system.<br>
Please close and reconnect to the device using a new browser session.<br>";
eLang.common_strings["STR_APP_STR_231"] ="<b>Firmware</b>";
eLang.common_strings["STR_APP_STR_232"] ="<b>Action</b>";
eLang.common_strings["STR_APP_STR_233"] ="<b>Progress</b>";
eLang.common_strings["STR_APP_STR_234"] ="<b>ModuleName</b>";
eLang.common_strings["STR_APP_STR_235"] ="<b>Existing Version</b>";
eLang.common_strings["STR_APP_STR_236"] ="<b>New Version</b>";
eLang.common_strings["STR_APP_STR_237"] ="The device will have to be reset to go back to normal
operating mode, if you cancel at this stage. Are you sure to cancel upgrade?";
eLang.common_strings["STR_APP_STR_238"] ="Image Verification did not succeed. Please check if you
uploaded the correct Image. In order to try upgrading again you need to reset the device. Press OK to reset the
device now.";
eLang.common_strings["STR_APP_STR_239"] ="The firmware image has been verified. The uploaded image is
a differnt version of the existing device firmware.";
eLang.common_strings["STR_APP_STR_240"] ="The firmware image has been verified. The uploaded image
size is different from the existing device firmware.";
eLang.common_strings["STR_APP_STR_241"] ="The firmware image has been verified. The uploaded image
appears to be the same as the existing device firmware.";
eLang.common_strings["STR_APP_STR_242"] ="New firmware image size is different from the existing
firmware image size. 'Configuration' can not be preserved in this situation. Do you want to continue?";
eLang.common_strings["STR_APP_STR_243"] ="Clicking on the OK Button, will start the actual upgrade
operation, where, the storage is written with the new firmware image. It is essential that the upgrade operation
is not interrupted once it starts. Proceed?";
eLang.common_strings["STR_APP_STR_244"] ="You need to have administrator privileges to modify mouse
mode.";
eLang.common_strings["STR_APP_STR_245"] ="Error in finding the current status of host";
eLang.common_strings["STR_APP_STR_246"] ="Current Mouse Mode is ABSOLUTE.";
eLang.common_strings["STR_APP_STR_247"] ="Current Mouse Mode is RELATIVE.";
eLang.common_strings["STR_APP_STR_248"] ="Unknown Mouse Mode";
eLang.common_strings["STR_APP_STR_249"] ="Are you sure to change the mouse mode? You will have to
close any currently open redirection console and reopen to see the change effect.";
eLang.common_strings["STR_APP_STR_250"] ="Error in setting Mouse Mode";
eLang.common_strings["STR_APP_STR_251"] ="You need to have administrator privileges to start
redirection.";
eLang.common_strings["STR_APP_STR_252"] ="Please choose the viewer you want to use. Java is
recommended. You can use the ActiveX viewer only on a Windows platform if you are using Internet Explorer.";
eLang.common_strings["STR_APP_STR_253"] ="RemoteConsole";
eLang.common_strings["STR_APP_STR_254"] ="Error retreiving serial port information : ";
eLang.common_strings["STR_APP_STR_255"] ="Could not get serial port settings";
eLang.common_strings["STR_APP_STR_256"] ="Error setting serial port information : ";
eLang.common_strings["STR_APP_STR_257"] ="Serial port information successfully set";
eLang.common_strings["STR_APP_STR_258"] ="15 minutes";
eLang.common_strings["STR_APP_STR_259"] ="30 minutes";
eLang.common_strings["STR_APP_STR_260"] ="1 hour";
eLang.common_strings["STR_APP_STR_261"] ="3 hours";
eLang.common_strings["STR_APP_STR_262"] ="Your session inactivity timeout has been set to ";
eLang.common_strings["STR_APP_STR_263"] ="An IPMI error 0x";
eLang.common_strings["STR_APP_STR_264"] =" has occurred: ";
eLang.common_strings["STR_APP_STR_265"] ="Error establishing IPMI Session : ";
eLang.common_strings["STR_APP_STR_266"] ="Your session has been timed out due to inactivity. You may
have to close all browser sessions and relogin again";
eLang.common_strings["STR_APP_STR_267"] ="You need to have administrator privileges to upload SSL
certificates.";
eLang.common_strings["STR_APP_STR_268"] ="New Private Key";
eLang.common_strings["STR_APP_STR_269"] ="New SSL Certificate";
Sergnese Nicola 566/2002
Pagina 133 di 228
eLang.common_strings["STR_APP_STR_270"] ="Default Certificate";
eLang.common_strings["STR_APP_STR_271"] ="Not Available";
eLang.common_strings["STR_APP_STR_272"] ="Default private key";
//ELang.common_strings["STR_APP_STR_273"] ="Not Available";
eLang.common_strings["STR_APP_STR_274"] ="Please select a valid soft processor configuration file.";
eLang.common_strings["STR_APP_STR_275"] ="In order to use the new PMCP files and monitor sensors the
device will have to be reset. Are you sure to do this?";
eLang.common_strings["STR_APP_STR_276"] ="The SDR data file you uploaded does not seem to be valid.
Please upload a different file";
eLang.common_strings["STR_APP_STR_277"] ="Direct Monitoring Configuration. <br> Step 1 of 3 - Upload
Soft Processor Config file";
eLang.common_strings["STR_APP_STR_278"] ="You will need to upload the Soft Processor Configuration file
for your server platform. This file usually has an extension of .bin and contains configuration that will help the
understand how to access sensors on the I2C bus.Click browse to look for the file and then click Upload";
eLang.common_strings["STR_APP_STR_279"] ="Direct Monitoring Configuration. <br> Step 2 of 3 - Upload
SDR data file";
eLang.common_strings["STR_APP_STR_280"] ="You will need to upload the SDR data file for your server
platform.It usually has an extension of .dat and contains a repository of sensor information that will help the
understand which sensors to monitor on the I2C bus.Click browse to look for the file and then click Upload";
eLang.common_strings["STR_APP_STR_281"] ="Direct Monitoring Configuration. <br> Step 3 of 3 - Finalise
Configuration";
eLang.common_strings["STR_APP_STR_282"] ="You have successfully uploaded the neccessary
information.Click finalize to use this configuration.When you click finalise the device will be reset for the new
monitoring options to take effect.";
eLang.common_strings["STR_APP_STR_283"] ="Administrator";
eLang.common_strings["STR_APP_STR_284"] ="Operator";
eLang.common_strings["STR_APP_STR_285"] ="No Access";
eLang.common_strings["STR_APP_STR_286"] ="User was added succesfully!";
eLang.common_strings["STR_APP_STR_287"] ="You need to have administrator privileges to modify users.";
eLang.common_strings["STR_APP_STR_288"] ="Modified user succesfully";
eLang.common_strings["STR_APP_STR_289"] ="You need to have administrator privileges to
add/modify/delete users.";
eLang.common_strings["STR_APP_STR_290"] ="Please select a user to modify";
eLang.common_strings["STR_APP_STR_291"] ="This slot is currently empty. Would you like to add a new
user?";
eLang.common_strings["STR_APP_STR_292"] ="Please select an empty user slot in which to add an user";
eLang.common_strings["STR_APP_STR_293"] ="This slot has already been configured with an user. Would
you like to modify that user instead?";
eLang.common_strings["STR_APP_STR_294"] ="Please select a user to delete";
eLang.common_strings["STR_APP_STR_295"] ="This user is a fixed user and cannot be deleted. You can
modify permissions or change the password for this user";
eLang.common_strings["STR_APP_STR_296"] ="There is no user configured at the slot you selected. Please
select a different user";
eLang.common_strings["STR_APP_STR_297"] ="Are you sure to delete this user?";
eLang.common_strings["STR_APP_STR_298"] ="User has been deleted";
eLang.common_strings["STR_APP_STR_299"] ="Please enter a Private key file";
eLang.common_strings["STR_APP_STR_300"] ="Private key file name should end with .pem";
eLang.common_strings["STR_APP_STR_301"] ="SSL Certificate is encrypted. Please upload unencrypted
certificate.";
eLang.common_strings["STR_APP_STR_302"] ="The Certificate and Key were uploaded successfully. The
device needs to be reset for the new certificate to be effective. Click 'OK' if you want to reset the device now. If
you Click 'OK', you will have to reconnect to the device with a new browser session. Click 'Cancel' if you want to
reset the device later.";
eLang.common_strings["STR_APP_STR_303"] ="SSL certificate validation failed.Please try to upload the
certificate and key again.";
eLang.common_strings["STR_APP_STR_304"] ="SSL certificate validation failed.Please try to upload the
Sergnese Nicola 566/2002
Pagina 134 di 228
certificate and key again.";
eLang.common_strings["STR_APP_STR_305"] ="Please select a SSL Certificate file";
eLang.common_strings["STR_APP_STR_306"] ="Certificate file should end with .pem";
eLang.common_strings["STR_APP_STR_307"] ="A SSL Certificate already exists. Loading a new SSL
certificate will replace the existing certificate.\nDo you want to continue?";
eLang.common_strings["STR_APP_STR_308"] ="User supplied SSL Certificate";
eLang.common_strings["STR_APP_STR_309"] ="User supplied private key";
eLang.common_strings["STR_APP_STR_310"] ="Selected user can not be deleted at this time";
eLang.common_strings["STR_APP_STR_311"] ="The changes were applied successfully.";
eLang.common_strings["STR_APP_STR_312"] ="Are you sure to
apply these changes?";
eLang.common_strings["STR_APP_STR_400"] ="This function may change the IP address of the device, and
you may lose connectivity in this browser session.\nPlease reconnect using a new browser session after applying
the changes.\nDo you want to proceed?";
eLang.common_strings["STR_APP_STR_401"] ="There are valid PMCP files already present on the device. If
you want to upload new PMCP files click on the Upload PMCP Files button.If you want to change the mode
instead to monitor via external BMC, click the Change Mode button";
eLang.common_strings["STR_APP_STR_311"] ="You will need to upload PMCP files for this monitoring
option to work effectively.Please click on the Upload PMCP Files button.If you want to change the mode instead
to monitor via external BMC, click the Change Mode button";
eLang.common_strings["STR_APP_STR_312"] ="hidden";
eLang.common_strings["STR_APP_STR_313"] ="Current Mode is - External BMC monitoring.";
eLang.common_strings["STR_APP_STR_314"] ="The feature connector cables.";
eLang.common_strings["STR_APP_STR_315"] ="You need to have administrator privileges to perform this
Action";
eLang.common_strings["STR_CONFIG_USER_GETINFO"] ="Get user information failed";
eLang.common_strings["STR_CONFIG_USER_DELINFO"] ="Delete user failed";
eLang.common_strings["STR_IPMI_ERROR"] ="IPMI command failed : ";
eLang.common_strings["STR_APP_STR_316"] ="<b>Sensor Number</b>";
eLang.common_strings["STR_APP_STR_321"] ="Please select a slot in the Role Group list";
eLang.common_strings["STR_APP_STR_322"] ="You need to have administrator privileges to
add/modify/delete role groups.";
eLang.common_strings["STR_APP_STR_323"] ="This slot has already been configured with a role group.
Would you like to modify that role group instead?";
eLang.common_strings["STR_APP_STR_324"] ="This slot is currently empty. Would you like to add a new role
group?";
eLang.common_strings["STR_APP_STR_325"] ="There is no role group configured in the slot you selected.
Please select a different role group";
eLang.common_strings["STR_APP_STR_326"] ="Are you sure to delete this Role group?";
eLang.common_strings["STR_APP_STR_327"] ="Role Group has been deleted";
eLang.common_strings["STR_APP_STR_328"] ="Role Group was added succesfully!";
eLang.common_strings["STR_APP_STR_328a"] ="Role Group Name already exists with this Role Group
Domain";
eLang.common_strings["STR_APP_STR_329"] ="Modified Role Group succesfully!";
eLang.common_strings["STR_APP_STR_330"] ="You need to have administrator privileges to modify Active
Directory settings.";
eLang.common_strings["STR_APP_STR_331"] ="Active Directory configuration has been successfully set";
eLang.common_strings["STR_APP_STR_332"] ="Invalid User Domain Name!";
eLang.common_strings["STR_APP_STR_333"] ="Invalid Time Out!";
eLang.common_strings["STR_APP_STR_334"] ="Invalid Domain Controller Server Address1";
eLang.common_strings["STR_APP_STR_335"] ="Invalid Domain Controller Server Address2";
eLang.common_strings["STR_APP_STR_336"] ="Invalid Domain Controller Server Address3";
Sergnese Nicola 566/2002
Pagina 135 di 228
eLang.common_strings["STR_APP_STR_337"] ="Enter atleast one Domain controller server address";
eLang.common_strings["STR_APP_STR_338"] ="Default Active Directory Certificate";
eLang.common_strings["STR_APP_STR_339"] ="Current Active Directory Certificate";
eLang.common_strings["STR_APP_STR_340"] ="An Active Directory Certificate already exists. Loading a new
Active Directory certificate will replace the existing certificate.\nDo you want to continue?";
eLang.common_strings["STR_APP_STR_HELP"] =" Refer Help for more Information.";
eLang.common_strings["STR_APP_NW_SETTING"] ="Couldnt not get network settings";
eLang.common_strings["STR_APP_IP_ADDR"] ="IPAddrSource";
eLang.common_strings["STR_APP_IP"] ="IP";
eLang.common_strings["STR_APP_MASK"] ="Mask";
eLang.common_strings["STR_APP_STR_HOUR"] ="Hour must be number type";
eLang.common_strings["STR_APP_STR_MIN"] ="Minutes must be number type";
eLang.common_strings["STR_APP_STR_SEC"] ="Seconds must be number type";
eLang.common_strings["STR_APP_STR_PAGE"] ="Page not found";
eLang.common_strings["STR_APP_STR_CHANGE"] ="The Changes were applied succesfully";
eLang.common_strings["STR_APP_APPY_CHANGE"] ="Are you sure you want to apply these changes?";
eLang.common_strings["STR_APP_PWR_CTRL"] ="Your external BMC configuration for power control";
eLang.common_strings["STR_APP_SDR_FLE"] ="Please select a valid SDR data file.";
eLang.common_strings["STR_APP_SOFT_PROS"] ="The softprocessor configuration file you uploaded does
not seem to be valid. Please upload a different file";
eLang.common_strings["STR_APP_STR_409"] ="The SDR data file you uploaded does not seem to be valid.
Please upload a different file";
eLang.common_strings["STR_APP_STR_410"] ="User supplied SSL Certificate";
eLang.common_strings["STR_APP_STR_411"] ="User supplied private key";
eLang.common_strings["STR_APP_PWD_CON"] ="Password must be atleast 8 character long";
eLang.common_strings["STR_APP_STR_REBOOTMESSAGE"] = "In order to apply changes, the device needs
to be rebooted. Reboot now?";
//--------------------------------------------------//--------------------------------------------------eLang.common_strings['STR_UPLD_SPF_STEP1'] = "Step 1 of 3 - Upload Soft Processor Config file";
eLang.common_strings['STR_UPLD_SPF_STEP2'] = "Step 2 of 3 - Upload SDR data file";
eLang.common_strings['STR_UPLD_SPF_STEP3'] = "Step 3 of 3 - Finalise Configuration";
eLang.common_strings['STR_UPLD_SPF_STEP1VAL'] = "You will need to upload the Soft Processor
Configuration file for your server platform. This file usually has an extension of .so and contains configuration
that will help the understand how to access sensors on the I2C bus.Click browse to look for the file and then
click Upload";
eLang.common_strings['STR_UPLD_SPF_STEP2VAL'] = "You will need to upload the SDR data file for your
server platform.It usually has an extension of .dat and contains a repository of sensor information that will help
the understand which sensors to monitor on the I2C bus.Click browse to look for the file and then click
Upload";
eLang.common_strings['STR_UPLD_SPF_STEP3VAL'] = "You have successfully uploaded the neccessary
information.Click finalize to use this configuration.When you click finalise the device will be reset for the new
monitoring options to take effect.";
eLang.common_strings["STR_FW_VER_MDLNAM"] = "<b>ModuleName</b>";
eLang.common_strings["STR_FW_VER_EXT_VER"] = "<b>Existing Version</b>";
eLang.common_strings["STR_FW_VER_NEW_VER"] = "<b>New Version</b>";
eLang.common_strings["STR_FLSH_STAT_FW"] = "<b>Firmware</b>";
eLang.common_strings["STR_FLSH_STAT_ACT"] = "<b>Action</b>";
eLang.common_strings["STR_FLSH_STAT_PROG"] = "<b>Progress</b>";
Sergnese Nicola 566/2002
Pagina 136 di 228
eLang.common_strings["STR_ALERT_MOD_ERRIP"] = "Invalid IP Address format";
eLang.common_strings["STR_ALERT_MOD_ERRENG"] = "Are you sure to skip Engine ID?";
eLang.common_strings["STR_ALERT_MOD_ERREMAIL"] = "Invalid Email address format";
eLang.common_strings["STR_ALERT_MOD_DISABLE"] = "Disable All";
eLang.common_strings["STR_ALERT_MOD_INFO"] = "Informational";
eLang.common_strings["STR_ALERT_MOD_WARN"] = "Warning";
eLang.common_strings["STR_ALERT_MOD_CRITICAL"] = "Critical";
eLang.common_strings["STR_ALERT_MOD_NONRECV"] = "Non-recoverable";
eLang.common_strings["STR_CONF_PTITLE"] = "Configuration";
eLang.common_strings["STR_CONF_PDESC"] = "Use these pages to configure various settings, such as
alerts, users, or network.";
eLang.common_strings["STR_ALERT_MOD_SNMPTRAP"] = "Snmp Trap";
eLang.common_strings["STR_ALERT_MOD_EMAIL"] = "Email";
eLang.common_strings["STR_ALERT_MOD_ALERTMODSUCCESS"] = "Alert has been modified
successfully.";
eLang.common_strings["STR_CONF_ALERT_HEAD1"] = "<b>Alert #</b>";
eLang.common_strings["STR_CONF_ALERT_HEAD2"] = "<b>Alert Level</b>";
eLang.common_strings["STR_CONF_ALERT_HEAD3"] = "<b>Destination Address</b>";
eLang.common_strings["STR_CONF_ALERT_HEAD4"] = "<b>Alert Type</b>";
eLang.common_strings["eLanguage_Strings4"] = "<b>UserID</b>";
eLang.common_strings["eLanguage_Strings5"] = "<b>User Name</b>";
eLang.common_strings["eLanguage_Strings6"] = "<b>Network Privilege</b>";
eLang.common_strings["eLanguage_Strings7"] = "<b>Serial Privilege</b>";
eLang.common_strings["STR_COMM_NAME"] = "<b>Community Name</b>";
eLang.common_strings["STR_COMM_TYPE"] = "<b>Community Type</b>";
eLang.common_strings["AD_Strings1"] = "<b>Role Group ID</b>";
eLang.common_strings["AD_Strings2"] = "<b>Group Name</b>";
eLang.common_strings["AD_Strings3"] = "<b>Group Domain</b>";
eLang.common_strings["AD_Strings4"] = "<b>Group Privilege</b>";
eLang.common_strings["STR_CONFIG_ADENABLE_DESC"] = "To Configure Active Directory Server
Settings. Click Advanced Settings";
eLang.common_strings["STR_CONFIG_ADDISABLE_DESC"] = "Active Directory is currently disabled. To
Enable the Active Directory and configure its settings. Click&nbsp;&nbsp;<strong><a
href=\'\/page\/configure_active_dir_advanced.html'>here</a></strong>";
eLang.common_strings["STR_ROLE_GROUP_CNT"] = "Number of configured Role groups: ";
eLang.common_strings["eLanguage_Strings_Temperature0"] = "Temperature";
//
lblHeader [LABEL]
eLang.common_strings["eLanguage_Strings_Temperature1"] = "Refresh...";
// Refresh
[BUTTON]
eLang.common_strings["NO_SEL_STRING"] = "There are no event log entries present at this time.";
eLang.common_strings["NO_FRU_STRING"] = "There are no FRU devices present in the system.";
eLang.common_strings["NO_SENSOR_STRING"] = "There are no sensors present in the system.";
eLang.common_strings["NO_ALERTENTRY_STRING"] = "There are no alert table entries present in the
system.";
eLang.common_strings["NO_PEFENTRY_STRING"] = "There are no event filter table entries present in the
system.";
Sergnese Nicola 566/2002
Pagina 137 di 228
eLang.common_strings["NO_LANALERTDESTS_STRING"] = "There are no LAN Alert destinations configured
in the system.";
eLang.common_strings["INVALID_OFFSET"]= "<b>Invalid Offset for this SensorType</b>"
eLang.common_strings["STR_CERT_UPLOADED"]="The Certificate and Key were uploaded successfully.
Web server has to be restarted in order to use the new SSL certificate. Do you want to restart the web server
now?";
//--------------------------------------------------//--------------------------------------------------eLang.common_strings["STR_APP_STR_VNOSEC"] ="Please enter a valid number of seconds.";
eLang.common_strings["STR_APP_STR_LT10SEC"] ="Session time cannot be less than 10 seconds.";
eLang.common_strings["STR_APP_STR_MODSXS"] ="Session timeout settings has been modified
successfully.";
eLang.common_strings["STR_BLANK"] = "&nbsp;";
// Empty string
//--------------------------------------------------//---------------------------------------------------
//-------------------------------------//
// Session
//-------------------------------------//
eLang.common_strings["STR_SESSION_INIT_ERROR"]="The Session has not been initialized. You may need
to enable Session-only cookies in your browser.";
eLang.common_strings["STR_SESSION_TIMEOUT_ERROR"]="Your session has timed out. You will need to
open a new session";
//-------------------------------------//
// General - Words and Acronyms
//-------------------------------------//
eLang.common_strings["STR_HEADER_USERNAME"] = "Username";
eLang.common_strings["STR_HEADER_USER"] = "User";
eLang.common_strings["STR_HEADER_SERVER"] = "Server";
eLang.common_strings["STR_HEADER_PRIVILEGE"] = "Privilege";
eLang.common_strings["STR_ALL"] = "All";
eLang.common_strings["STR_LOGIN_NAME"]="User Name";
eLang.common_strings["STR_LOGIN_PWD"]="Password";
eLang.common_strings["STR_SIDEBAR_OPTIONS"] = "Options";
eLang.common_strings["STR_HELP_TITLE"]="Help System";
eLang.common_strings["STR_HELP_BUTTONCAPTION"]="HELP";
eLang.common_strings["STR_HELP_LINKCAPTION"]="Help";
eLang.common_strings["STR_PROTOCOL_MANUAL"]="Manual";
eLang.common_strings["STR_PROTOCOL_AUTO"]="Manual";
eLang.common_strings["STR_PROTOCOL_RMCP"]="RMCP";
eLang.common_strings["STR_PROTOCOL_UPNP"]="UPnP";
eLang.common_strings["STR_TYPE_IPMI"]="IPMI";
eLang.common_strings["STR_TYPE_UPNPDEV"]="uPnP Device";
eLang.common_strings["STR_RECORD"] = "Record";
eLang.common_strings["STR_PAGE"] = "Page";
eLang.common_strings["STR_PREVIEW_MODE"] = "Preview Mode";
eLang.common_strings["STR_CLOSE_PREVIEW"] ="Close Preview";
Sergnese Nicola 566/2002
Pagina 138 di 228
eLang.common_strings["STR_VERSIONTITLE"] = "Version Information";
eLang.common_strings["STR_PRODNAME"] = "Product Name";
eLang.common_strings["STR_HOSTNAME"] = "Host Name";
eLang.common_strings["STR_PRODVERSION"] = "Product Version";
eLang.common_strings["STR_WEBUIVERSION"] = "Web UI Framework Version";
eLang.common_strings["STR_WEBUIDATE"] = "Web UI Framework Build Date";
eLang.common_strings["STR_APPNAME"] = "Application Name";
eLang.common_strings["STR_APPUIVERSION"] = "Application UI Version";
eLang.common_strings["STR_SUPPORT"] = "Support";
eLang.common_strings["STR_HELP"] = "Help";
eLang.common_strings["STR_ABOUT"] = "About";
eLang.common_strings["STR_LOGOUT"] = "Log out";
eLang.common_strings["STR_LOGIN"] = "Log in";
eLang.common_strings["STR_PRINT"] = "Print";
eLang.common_strings["STR_EMAIL"] = "Email";
eLang.common_strings["STR_GENERAL_REFRESH"] = "Refresh";
eLang.common_strings["STR_GENERAL_REFRESHPAGE"] = "Refresh Page";
eLang.common_strings["STR_ON"] = "On";
eLang.common_strings["STR_OFF"] = "Off";
eLang.common_strings["STR_YES"] = "Yes";
eLang.common_strings["STR_NO"] = "No";
eLang.common_strings["STR_CONNECTED"] = "Connected";
eLang.common_strings["STR_DISCONNECTED"] = "Disconnected";
eLang.common_strings["STR_ATTRIBUTE"] = "Attribute";
eLang.common_strings["STR_VALUE"] = "Value";
eLang.common_strings["STR_ADMINISTRATOR"] = "Administrator";
eLang.common_strings["STR_OPERATOR"] = "Operator";
eLang.common_strings["STR_USER"] = "User";
eLang.common_strings["STR_NONE"] = "None";
eLang.common_strings["STR_POWERUSER"] = "Power User";
eLang.common_strings["STR_GUESTUSER"] = "Guest User";
eLang.common_strings["STR_GUEST"] = "Guest";
eLang.common_strings["STR_CUSTOM"] = "Custom";
eLang.common_strings["STR_ANONYMOUS"] = "Anonymous";
eLang.common_strings["STR_OPTION"] = "Option";
eLang.common_strings["STR_NEXT"] = "Next";
eLang.common_strings["STR_NEXTSTEP"] = "Next Step";
eLang.common_strings["STR_9600"] ="9600 bps";
eLang.common_strings["STR_19200"] ="19.2 kbps";
eLang.common_strings["STR_28800"] ="28.8 kbps";
eLang.common_strings["STR_38400"] ="38.4 kbps";
eLang.common_strings["STR_57600"] ="57.6 kbps";
eLang.common_strings["STR_115200"] ="115.2 kbps";
eLang.common_strings["STR_DATE"] ="Date";
eLang.common_strings["STR_TIME"] ="Time";
eLang.common_strings["STR_DATETIME"] ="Date/Time";
eLang.common_strings["STR_SOURCE"] ="Source";
eLang.common_strings["STR_COMPONENT"] ="Component";
eLang.common_strings["STR_DESCRIPTION"] ="Description";
Sergnese Nicola 566/2002
Pagina 139 di 228
eLang.common_strings["STR_CLEARLOG"] ="Clear Log";
eLang.common_strings["STR_SAVEAS"] ="Save As";
eLang.common_strings["STR_GENERATE"] ="Generate";
eLang.common_strings["STR_SUBMIT"] ="Submit";
eLang.common_strings["STR_UPDATE"] ="Update";
eLang.common_strings["STR_DOWNLOAD"] ="Download";
eLang.common_strings["STR_PROPERTIES"] ="Properties";
eLang.common_strings["STR_SUMMARY"] ="Summary";
eLang.common_strings["STR_FAN"] ="Fan";
eLang.common_strings["STR_FANS"] ="Fans";
eLang.common_strings["STR_VOLTAGE"] ="Voltage";
eLang.common_strings["STR_VOLTAGES"] ="Voltages";
eLang.common_strings["STR_TEMP"] ="Temp";
eLang.common_strings["STR_TEMPS"] ="Temps";
eLang.common_strings["STR_TEMPERATURE"] ="Temperature";
eLang.common_strings["STR_TEMPERATURES"] ="Temperatures";
eLang.common_strings["STR_WATTS"] ="Watt(s)";
eLang.common_strings["STR_LANGCLIENT_BROWSER"] ="(Client Browser)";
eLang.common_strings["STR_GROUP"] ="Group";
eLang.common_strings["STR_NAME"] ="Name";
eLang.common_strings["STR_DOMAIN"] ="Domain";
eLang.common_strings["STR_PRIVILEGE"] ="Privilege";
eLang.common_strings["STR_CLIENT"] ="Client";
eLang.common_strings["STR_SERVER"] ="Server";
eLang.common_strings["STR_LANGUAGES_1"] = "The application must be reloaded for the language to be
set. Reload now?";
eLang.common_strings["STR_USER_NAME"] = "<b>Username</b>";
eLang.common_strings["STR_PRIV_TYPE"] = "<b>Privacy Type</b>";
eLang.common_strings["STR_ACCESS_TYPE"] = "<b>Access Type</b>";
//-------------------------------------//
// Blank page entries
//-------------------------------------//
eLang.common_strings["STR_TEMPLATE_PTITLE"] = "Blank Page Title";
eLang.common_strings["STR_TEMPLATE_PDESC"] = "Blank Page Title Description";
eLang.common_strings["STR_TEMPLATE_CTITLE"] = "Blank Page Content Title";
eLang.common_strings["STR_TEMPLATE_CDESC"] = "Blank Page Content Title Description";
eLang.common_strings["STR_SI_SYSTEM_INFO_PTITLE"] = "System Information";
eLang.common_strings["STR_SI_SYSTEM_INFO_PDESC"] = "This section contains general information
about the system.";
eLang.common_strings["STR_GI_FRU_PTITLE"] = "System Information";
eLang.common_strings["STR_GI_FRU_PDESC"] = "Here you can view system, session information and FRU
information.";
eLang.common_strings["STR_GI_FRU_PTITLE"] = "System Information";
eLang.common_strings["STR_GI_FRU_PDESC"] = "This section contains general information about the
system";
Sergnese Nicola 566/2002
Pagina 140 di 228
eLang.common_strings["STR_SRVR_HLTH_PTITLE"] = "Server Health";
eLang.common_strings["STR_SRVR_HLTH_PDESC"] = "This section shows you data related to the server's
health, such as sensor readings and the event log.";
eLang.common_strings["STR_SH_SENSOR_READING_PTITLE"] = "Server Health";
eLang.common_strings["STR_SH_SENSOR_READING_PDESC"] = "This section shows you data related to the
server's health, such as sensor readings and the event log.";
eLang.common_strings["STR_SH_EVENT_LOG_PTITLE"] = "Server Health";
eLang.common_strings["STR_SH_EVENT_LOG_PDESC"] = "This section shows you data related to the
server's health, such as sensor readings and the event log.";
eLang.common_strings["STR_SH_MONITOR_MODE_PTITLE"] = "Monitoring Mode";
eLang.common_strings["STR_SH_MONITOR_MODE_PDESC"] = "Select Monitoring Mode - The device can
perform sensor monitoring either by talking to a external BMC connected on the IPMB bus or by monitoring
sensors directly attached to its I2C bus";
eLang.common_strings["STR_CONF_PTITLE"] = "Configuration";
eLang.common_strings["STR_CONF_PDESC"] = "Use these pages to configure various settings, such as
alerts, users, or network.";
eLang.common_strings["STR_CFG_CONF_NW_PTITLE"] = "Configuration";
eLang.common_strings["STR_CFG_CONF_USER_PTITLE"] = "Configuration";
eLang.common_strings["STR_CFG_CONF_ALERT_PTITLE"] = "Configuration";
eLang.common_strings["STR_CFG_CONF_MOUSEMODE_PTITLE"] = "Configuration";
eLang.common_strings["STR_CFG_UPLOAD_SSL_PTITLE"] = "Configuration";
eLang.common_strings["STR_CFG_CONF_SMTP_PTITLE"] = "Configuration";
eLang.common_strings["STR_CFG_CONF_SELECT_BMC_PTITLE"] = "Configuration";
eLang.common_strings["STR_CFG_CONF_DATETIME_PTITLE"] = "Configuration";
eLang.common_strings["STR_CFG_CONF_NW_PDESC"] = "This pages allows you to access various
configuration settings.";
eLang.common_strings["STR_CFG_CONF_USER_PDESC"] = "This pages allows you to access various
configuration settings.";
eLang.common_strings["STR_CFG_CONF_ALERT_PDESC"] = "This pages allows you to access various
configuration settings.";
eLang.common_strings["STR_CFG_CONF_MOUSEMODE_PDESC"] = "This pages allows you to access
various configuration settings.";
eLang.common_strings["STR_CFG_CONF_SMTP_PDESC"] = "This pages allows you to access various
configuration settings.";
eLang.common_strings["STR_CFG_CONF_SELECT_BMC_PDESC"] = "This pages allows you to access
various configuration settings.";
eLang.common_strings["STR_CFG_CONF_DATETIME_PDESC"] =
"This pages allows you to access various configuration settings.";
eLang.common_strings["STR_RMCNTRL_REDIRECT_PTITLE"] = "Remote Control";
eLang.common_strings["STR_RMCNTRL_REDIRECT_PDESC"] = "This section allows you to perform various
remote operations on the server, such as launching the remote console.";
eLang.common_strings["STR_RMCNTRL_POWER_CNTRL_PTITLE"] = "Remote Control";
eLang.common_strings["STR_RMCNTRL_POWER_CNTRL_PDESC"] = "This page allows you to manage the
remote console and power status of the server.";
eLang.common_strings["STR_RMCNTRL_CHASSIS_IDENTIFY_PTITLE"] = "Remote Control";
eLang.common_strings["STR_RMCNTRL_CHASSIS_IDENTIFY_PDESC"] = "This page allows you to perform
the chassis identify command of the server.";
eLang.common_strings["STR_CNFG_DATE_TIME_PTITLE"] = "Configuration";
eLang.common_strings["STR_CNFG_DATE_TIME_PDESC"] = "This page allows you to access various
Sergnese Nicola 566/2002
Pagina 141 di 228
configuration settings.";
eLang.common_strings["STR_MAINT_PTITLE"] = "Maintenance";
eLang.common_strings["STR_MAINT_PDESC"] = "This section allows you to perform maintenance tasks on
the device.";
eLang.common_strings["STR_LANG_PTITLE"] = "Language Setting";
eLang.common_strings["STR_LANG_PDESC"] = "Here you can select the language for the web application.";
//-------------------------------------//
// General - Success messages
//-------------------------------------//
eLang.common_strings["STR_UPLOAD_OK"] = "File uploaded successfully!";
eLang.common_strings["STR_OP_OK"] = "Operation was successful!";
eLang.common_strings["STR_OP_COMPLETE"] = "Operation complete!";
eLang.common_strings["STR_SAVE_COMPLETE"] = "Save completed!";
eLang.common_strings["STR_OBJECT_DELETED"] = "Object deleted!";
eLang.common_strings["STR_USR_MGMT_CNT"] = "Number of configured users: ";
eLang.common_strings["STR_USR_MGMT_SFX"] = " ";
//-------------------------------------//
// General - Error messages
//-------------------------------------//
eLang.common_strings["STR_ERROROCCURRED_GENERAL"] = "The following error occurred : ";
eLang.common_strings["STR_FUNCNAME_INVALID"] = "Invalid function name, please try again. "+
"Type the name of the function with parentheses (even if there are no parameters), "+
"and without 'javascript:'.";
eLang.common_strings["STR_INVALID_GRAPHICFILE"] = "Invalid graphic filename. Please choose a GIF,
JPG, or PNG file.";
eLang.common_strings["STR_UPLOAD_ERROR"] = "An upload error occurred!";
eLang.common_strings["STR_ERROR"] = "An error occurred!";
eLang.common_strings["STR_INVALID_PAGENUM"] = "Invalid page number, please try again";
eLang.common_strings["STR_INVALID_IP"]="Invalid IP address...please try again";
eLang.common_strings["STR_LOGIN_FAILED"]="Login failed ... please try again!";
eLang.common_strings["STR_UNKNOWN_USER"]="Unknown user name ... please try again!";
eLang.common_strings["STR_INCORRECT_PW"]="Incorrect password ... please try again!";
eLang.common_strings["STR_INVALID_PW"]="Invalid password format...please try again!";
eLang.common_strings["STR_INVALID_PWLEN"]="Invalid password length...please try again!";
eLang.common_strings["STR_INVALID_UNAME"]="Invalid user name...please try again!";
eLang.common_strings["STR_INVALID_UNAMELEN"]="Invalid user name length...please try again!";
eLang.common_strings["STR_INVALID_ENTRY"]="Invalid entry...please try again!";
eLang.common_strings["STR_GENERAL_SESSIONTIMEOUT"]="Your session has timed out, please log in
again.";
eLang.common_strings["STR_GENERAL_TIMEDOUTGENERAL"]= "The operation timed out when
attempting to communicate with the server.";
Sergnese Nicola 566/2002
Pagina 142 di 228
eLang.common_strings["STR_FILEIOERR_WRITE"]= "An error occurred during the file write operation!";
eLang.common_strings["STR_FILEIOERR_READ"]= "An error occurred during the file read operation!";
eLang.common_strings["STR_OP_FAILED"] = "Operation failed!";
eLang.common_strings["STR_ERR_USEREXIST"] = "User already exists";
//-------------------------------------//
// General - Status messages
//-------------------------------------//
eLang.common_strings["STR_RECORD_DEFINED"] = "This record is already defined";
eLang.common_strings["STR_NONE_SELECTED"] = "None selected";
eLang.common_strings["STR_SORTING"] = "Sorting...please wait";
eLang.common_strings["STR_SORTINGNOWAIT"] = "Sorting";
eLang.common_strings["STR_CONNECTING"]="Connecting...please wait";
eLang.common_strings["STR_CONNECTINGNOWAIT"]="Connecting";
eLang.common_strings["STR_GENERAL_COMMAND_CANCELED"] = "Command canceled!";
eLang.common_strings["STR_GENERAL_LOGOUTMUSTDISCONNECTWARNING"] = "You must
disconnect in order to log out!";
eLang.common_strings["STR_GENERAL_NOTCONNECTED"] = "(not connected)";
eLang.common_strings["STR_GENERAL_NOTLOGGEDIN"] = "(not logged in)";
eLang.common_strings["STR_GENERAL_NODESC"] = "No description";
eLang.common_strings["STR_GENERAL_LOGOUTSUCCESS"] = "You have been successfully logged out.";
eLang.common_strings["STR_OP_ABORTED"] = "Operation aborted!";
//-------------------------------------//
// Wait messages. Add any new ones
// here. The eLang.sys_strings object is
// depracated.
//-------------------------------------//
eLang.common_strings["STR_LOADING"]="Loading...please wait";
eLang.common_strings["STR_LOGGINGIN_PLSWAIT"]="Logging in...please wait";
eLang.common_strings["STR_RETRIEVINGDATA"]="Retrieving data...please wait";
eLang.common_strings["STR_UPLOADINGWAIT"]
= "Uploading...please wait";
eLang.common_strings["STR_PROCESSINGWAIT"]
= "Processing...please wait";
eLang.common_strings["STR_WORKINGWAIT"]
= "Working...please wait";
eLang.common_strings["STR_SORTINGWAIT"]
= "Sorting...please wait";
eLang.common_strings["STR_CHECKINGWAIT"]
= "Checking...please wait";
eLang.common_strings["STR_VERIFYINGWAIT"]
= "Verifying...please wait";
eLang.common_strings["STR_PARSINGWAIT"]
= "Parsing...please wait";
eLang.common_strings["STR_FLASHINGWAIT"]
= "Flashing...please wait";
//-------------------------------------//
// General - Confirmation messages
//-------------------------------------//
eLang.common_strings["STR_CONFIRM_DELETE"]="Are you sure to delete this entry?";
eLang.common_strings["STR_GENERAL_COMMAND_CONFIRM"] = "Are you sure to execute this
command";
eLang.common_strings["STR_GENERAL_LOGOUT"] = "Are you sure to log out";
eLang.common_strings["STR_GENERAL_DISCONNECT"] = "Are you sure to disconnect from this server";
eLang.common_strings["STR_GENERAL_LOGOUTDISCONNECTWARNING"] = "You are still connected.
Logging out will automatically terminate your connection and proceed with the logout. Do you wish to
proceed";
Sergnese Nicola 566/2002
Pagina 143 di 228
//-------------------------------------//
// General - Commands
//-------------------------------------//
eLang.common_strings["STR_GO"] = "Go!";
eLang.common_strings["STR_LOGIN_BUTTON"]="Log In";
eLang.common_strings["STR_LOGIN_NOSPACE"]="Login";
eLang.common_strings["STR_LOGIN_PLEASE"]="Please Login";
eLang.common_strings["STR_SIDEBAR_LOGOUT"] = "Log out";
eLang.common_strings["STR_SIDEBAR_DISCONNECT"] = "Disconnect";
eLang.common_strings["STR_APPLYCHANGES"]
= "Apply Changes";
eLang.common_strings["STR_ENABLE"]
= "Enable";
eLang.common_strings["STR_DISABLE"]
= "Disable";
eLang.common_strings["STR_CONNECT"]
= "Connect";
eLang.common_strings["STR_DISCONNECT"]
= "Disconnect";
eLang.common_strings["STR_UPLOAD"]
= "Upload";
eLang.common_strings["STR_LOGINWELCOME"]="Please type your user name and password";
eLang.common_strings["STR_LOGINFAILED"]="Login failed. Please try again";
//-------------------------------------//
// GLOBAL ERROR strings
//-------------------------------------//
//
// This section is for error codes for various types of problems, such as
// file io, user management, etc Error codes MUST be encoded into the string
// name. Typically, the code will correspond to the HAPI_STATUS value.
//
// Use this general string to precede the actual error
eLang.common_strings["STR_GENERALERRORMESSAGE"]= "The following error occurred during the last
operation";
//-------------------------------------//
// FILEIO CODES
//-------------------------------------//
eLang.common_strings["STR_FILEIOERR_NUM_1"]= "The target file already exists.";
eLang.common_strings["STR_FILEIOERR_NUM_2"]= "The source file path does not exist.";
eLang.common_strings["STR_FILEIOERR_NUM_3"]= "The destination file file path does not exist.";
eLang.common_strings["STR_FILEIOERR_NUM_4"]= "An error occurred during a write operation.";
eLang.common_strings["STR_FILEIOERR_NUM_5"]= "An error occurred during a delete operation.";
eLang.common_strings["STR_FILEIOERR_NUM_6"]= "Could not allocate memory.";
eLang.common_strings["STR_FILEIOERR_NUM_7"]= "No files were found.";
eLang.common_strings["STR_FILEIOERR_NUM_8"]= "Could not file webUI path.";
eLang.common_strings["STR_FILEIOERR_NUM_9"]= "An error occurred during a read operation.";
eLang.common_strings["STR_FILEIOERR_NUM_10"]= "Could not get product info.";
eLang.common_strings["STR_FILEIOERR_NUM_11"]= "The source directory is in use.";
eLang.common_strings["STR_FILEIOERR_NUM_12"]= "The directory already exists.";
eLang.common_strings["STR_FILEIOERR_NUM_13"]= "There are no files in the source directory.";
eLang.common_strings["STR_FILEIOERR_NUM_14"]= "Could not create directory.";
//-------------------------------------//
// USERMANAGEMENT CODES
//-------------------------------------//
eLang.common_strings["STR_USERMANAGEMENTERR_NUM_0"]= "Operation successful!";
Sergnese Nicola 566/2002
Pagina 144 di 228
eLang.common_strings["STR_USERMANAGEMENTERR_NUM_1"]= "An unknown failure";
eLang.common_strings["STR_USERMANAGEMENTERR_NUM_2"]= "Submission contains invalid
parameters";
eLang.common_strings["STR_USERMANAGEMENTERR_NUM_3"]= "The user already exists";
eLang.common_strings["STR_USERMANAGEMENTERR_NUM_4"]= "The password is too short";
eLang.common_strings["STR_USERMANAGEMENTERR_NUM_5"]= "No such
user was found";
eLang.common_strings["STR_USERMANAGEMENTERR_NUM_6"]= "No such group exists";
eLang.common_strings["STR_USERMANAGEMENTERR_NUM_7"]= "This user is not a member";
eLang.common_strings["STR_USERMANAGEMENTERR_NUM_8"]= "Could not set the password";
eLang.common_strings["STR_USERMANAGEMENTERR_NUM_9"]= "Authentication failed";
//-------------------------------------//
// LOGIN CODES
//-------------------------------------//
eLang.common_strings["STR_LOGINERRORCODE_1"]="Invalid session. Please try logging in again";
eLang.common_strings["STR_LOGINERRORCODE_2"]="Session timed out. Please log in again.";
eLang.common_strings["STR_LOGINERRORCODE_3"]="Maximum number of sessions already in use.";
eLang.common_strings["STR_LOGINERRORCODE_4"]="Invalid session. Please try logging in again";
eLang.common_strings["STR_LOGINERRORCODE_5"]="Invalid session. Please try logging in again";
eLang.common_strings["STR_LOGINERRORCODE_6"]="Invalid session. Please try logging in again";
eLang.common_strings["STR_LOGINERRORCODE_7"]="Login failed. Please try again.";
eLang.common_strings["STR_LOGINERRORCODE_8"]="Logged out. Please log in again to access the
device."; //logged out properly and cookie is set to logged out";
eLang.common_strings["STR_LOGINERRORCODE_9"]="Please log in to access the device.";
//-------------------------------------//
// BMC SENSOR MODE CODES
//-------------------------------------//
eLang.common_strings["STR_BMC_SENSOR_MODE_001"] ="The requested BMC Sensor Mode parameters
have been successfully set.";
eLang.common_strings["STR_BMC_SENSOR_MODE_002"] ="Error modifying BMC Sensor Mode:";
eLang.common_strings["STR_BMC_SENSOR_MODE_003"] ="BMC I2C Address";
//-------------------------------------//
// PEF
//-------------------------------------//
eLang.common_strings["STR_APP_STR_320"] ="PEF Table: ";
eLang.common_strings["NO_PEF_STRING"] = "There are no PEF configured in the system.";
eLang.common_strings["STR_PEF_MOD_PEFMODSUCCESS"] = "PEF has been modified successfully.";
eLang.common_strings["STR_CONF_PEF_HEAD1"] = "<b>PEF #</b>";
eLang.common_strings["STR_CONF_PEF_HEAD2"] = "<b>Filter Config</b>";
eLang.common_strings["STR_CONF_PEF_HEAD3"] = "<b>Event Filter Action</b>";
eLang.common_strings["STR_CONF_PEF_HEAD4"] = "<b>Alert Policy Num</b>";
eLang.common_strings["STR_CONF_PEF_HEAD5"] = "<b>Event Severity</b>";
eLang.common_strings["STR_CONF_PEF_HEAD6"] = "<b>Sensor Type</b>";
eLang.common_strings["STR_CONF_PEF_HEAD7"] = "<b>Sensor Num</b>";
eLang.common_strings["STR_CONF_PEF_HEAD8"] = "<b>Event Trigger</b>";
eLang.common_strings["STR_CONF_PEF_HEAD9"] = "<b>Event Data 1Offset Mask</b>";
eLang.common_strings["STR_CONF_PEF_HEAD10"] = "<b>Event Data1 AND Mask</b>";
eLang.common_strings["STR_CONF_PEF_HEAD11"] = "<b>Event Data1 Cmp1</b>";
eLang.common_strings["STR_CONF_PEF_HEAD12"] = "<b>Event Data1 Cmp2</b>";
eLang.common_strings["STR_CONF_PEF_HEAD13"] = "<b>Event Data2 AND Mask</b>";
eLang.common_strings["STR_CONF_PEF_HEAD14"] = "<b>Event Data2 Cmp1</b>";
Sergnese Nicola 566/2002
Pagina 145 di 228
eLang.common_strings["STR_CONF_PEF_HEAD15"] = "<b>Event Data2 Cmp2</b>";
eLang.common_strings["STR_CONF_PEF_HEAD16"] = "<b>Event Data3 AND Mask</b>";
eLang.common_strings["STR_CONF_PEF_HEAD17"] = "<b>Event Data3 Cmp1</b>";
eLang.common_strings["STR_CONF_PEF_HEAD18"] = "<b>Event Data3 Cmp2</b>";
//-------------------------------------//
// END GLOBAL ERROR strings
//-------------------------------------//
eLang.common_strings["STR_CONFIG_AD_GETINFO"] = " There was a problem while getting Active
Directory information";
eLang.common_strings["STR_CONFIG_AD_SETINFO"] = " There was a problem while setting Active
Directory information";
eLang.common_strings["STR_CONFIG_ROLEGROUP_ADDINFO"] = "There was a problem while adding
role group information";
eLang.common_strings["STR_CONFIG_ROLEGROUP_MODINFO"] = "There was a problem while modifying
role group information";
eLang.common_strings["STR_CONFIG_ROLEGROUP_DELINFO"] = "There was a problem while deleting
role group information";
//-------------------------------------------------//-------------------------------------------------codice eExt.js
//;*****************************************************************;
//
===================================================================
==========
// Bookmark Jump Tag Table - Use the tags to search for bookmarks in the code
//
===================================================================
==========
// Jump Tags - Description
// ----------------------------------------------------------------------------// 1158783913 - PROC - "eExt.getHTTPHeaderProps()"
//
//;*****************************************************************;
//;**
**;
//;** (C) COPYRIGHT American Megatrends Inc. 2003-2004
**;
//;**
ALL RIGHTS RESERVED
**;
//;**
**;
//;** This computer software, including display screens and
**;
//;** all related materials, are confidential and the
**;
//;** exclusive property of American Megatrends, Inc. They
**;
//;** are available for limited use, but only pursuant to
**;
//;** a written license agreement distributed with this
**;
//;** computer software. This computer software, including
**;
//;** display screens and all related materials, shall not be **;
//;** copied, reproduced, published or distributed, in whole **;
//;** or in part, in any medium, by any means, for any
**;
//;** purpose without the express written consent of American **;
//;** Megatrends, Inc.
**;
//;**
**;
//;**
**;
//;**
American Megatrends, Inc.
**;
Sergnese Nicola 566/2002
Pagina 146 di 228
//;**
6145-F, Northbelt Parkway, Norcross,
**;
//;**
Georgia - 30071, USA. Phone-(770)-246-8600.
**;
//;**
**;
//;*****************************************************************;
//;*****************************************************************;
//----------------------------------------------------------------------------//
// Extension Module
// (c) American Megatrends Inc. 2003
//
// Depends on: Nothing
//
// Author: Brandon Burrell
//----------------------------------------------------------------------------//
var eExt = {};
// Create object
//______________________________________________________________________________
//==================================================================
============
//
eExt.loadModule
//-----------------------------------------------------------------------------// Load a module
//
// Input: name = name of module
//
// Output: none
//______________________________________________________________________________
//==================================================================
============
eExt.loadModule=function(name)
{
// Cannot precede paths with a / if using Mozilla offline for development.
subdir="/Scripts/";
// load the script
document.writeln('<script type="text\/javascript" src="'+subdir+name+'.js"><\/script>');
};
//______________________________________________________________________________
//==================================================================
============
//
eExt.parseURLVars
//-----------------------------------------------------------------------------// Searches the URL for a given token variable and returns its value (if
// present).
//
// Input: searchtoken = token name to search URL for
//
// Output: token's value, or null (constant, not string) if not found
//______________________________________________________________________________
//==================================================================
============
eExt.parseURLvars=function(searchtoken)
{
// NOTE: Changed [BrandonB] 12/18/2006 to decodeURIComponent
// so that UTF8 data passed in the URL as tokens will properly be
Sergnese Nicola 566/2002
Pagina 147 di 228
// decoded back to UTF8. Firefox was converting the hex bytes to the
// default code page when using unescape.
//
var URLVariables=unescape(location.search); // Convert esc code back to &
var URLVariables=decodeURIComponent(location.search); // Convert esc code back to &
URLVariables=URLVariables.substring(1);
// Clear off ? from query
return (parsetokens(URLVariables,searchtoken,/\s*&\s*/));
}
//______________________________________________________________________________
//==================================================================
============
//
eExt.insertURLvar
//-----------------------------------------------------------------------------// Searches the URL for a given token variable and returns its value (if
// present).
//
// Input: searchtoken = token name to search URL for
//
// Output: token's value, or null (constant, not string) if not found
//______________________________________________________________________________
//==================================================================
============
eExt.insertURLvar=function(link, tokentoadd, tokenvalue)
{
var curlink=new String(link);
var newlink=new String();
// These functions are deprecated, use encodeURIComponent instead
// [BrandonB] 12/18/2006
//
tokentoadd=escape(tokentoadd);
//
tokenvalue=escape(tokenvalue);
tokentoadd=encodeURIComponent(tokentoadd);
tokenvalue=encodeURIComponent(tokenvalue);
// Does current link already have some search tokens?
if (curlink.indexOf('?')==-1)
{
newlink=curlink+'?'+tokentoadd+'='+tokenvalue;
}
else
{
newlink=curlink+'&'+tokentoadd+'='+tokenvalue;
}
return (newlink);
}
//______________________________________________________________________________
//==================================================================
============
//
eExt.parseCookies
//-----------------------------------------------------------------------------// Parses the list of cookies for the document.
//
Sergnese Nicola 566/2002
Pagina 148 di 228
// Input: searchtoken - the cookie you are looking for
//
// Output: string - the value of the cookie, or null if not found
//
// [BrandonB] 7/3/2003
//______________________________________________________________________________
//==================================================================
============
eExt.parseCookies=function(searchtoken, boolDebug)
{
return(parsetokens(document.cookie,searchtoken,/\s*;\s*/, boolDebug));
}
//______________________________________________________________________________
//==================================================================
============
//
parsetokens
//-----------------------------------------------------------------------------//
Generic function for parsing strings of the form aaa=bbbb?ccc=ddd where ? is
// some delimiter character
//
// Input
// ----// tokenlist - the string containing the token pair list
//
// searchtoken - the token you are looking for
//
// delimiter - the character used to separate token pairs
//
// Output
// -----// string - the value of the token, or null if not present
//
//______________________________________________________________________________
//==================================================================
============
function parsetokens(tokenlist,searchtoken, delimiter, boolDebug)
{
// Take apart each 'token=value' and put them into an array
var tokenpairs=tokenlist.split(delimiter);
// Now we have an array of
var tokenvals= new Array();
var tokenpieces= new Array();
// token pairs
// Create array object for
// Create array object for
// further splitting
// This loop will split each token set (token=value) into
// token[x*2] and value[x*2+1]
for (var i=0;i<tokenpairs.length;i++)
{
tokenpieces=tokenpairs[i].split("=");
tokenvals[i*2]=tokenpieces[0];
tokenvals[i*2+1]=tokenpieces[1];
Sergnese Nicola 566/2002
// split each set at '='
// Assign token to new array
// Assign value to adjacent pos
Pagina 149 di 228
}
// Done with token name and value extraction. Now just
// parse the array to find the one we want.
var finaltokenvalue=null;
// Default to null
for (i=0;i<(tokenvals.length/2);i++)
{
if (tokenvals[i*2]==searchtoken)
{
finaltokenvalue=tokenvals[i*2+1];
}
// Display all token names and values
if (boolDebug)
{
document.write("[searchtoken:"+searchtoken+"][tokenName:"+tokenvals[i*2]+"]
[tokenValue:"+tokenvals[i*2+1]+"]"+(tokenvals[i*2]==searchtoken)+"<BR>");
}
}
return(finaltokenvalue);
}
//______________________________________________________________________________
//==================================================================
============
//
eExt.showBody
//-----------------------------------------------------------------------------// Debugging function to popup a window with the rendered BODY code
//
// Input: none
//
// Output: none
//
// [BrandonB] 7/3/2003
//______________________________________________________________________________
//==================================================================
============
eExt.showBody=function(framename)
{
if (framename==null)
{
var src=document.body.innerHTML;
var h = document.getElementsByTagName("HEAD");
}
else
{
var src=parent.frames[framename].document.body.innerHTML;
var h = parent.frames[framename].document.getElementsByTagName("HEAD");
}
var hsrc=h[0].innerHTML;
hsrc=hsrc.replace(/</ig,"&lt;");
hsrc=hsrc.replace(/>/ig,"&gt;");
Sergnese Nicola 566/2002
Pagina 150 di 228
hsrc=hsrc.replace(/\x09/ig," ");
hsrc=hsrc.replace(/\x0d\x0a/ig,"<br>");
hsrc=hsrc.replace(/&gt;&lt;/ig,"&gt;<br>&lt;");
hsrc="<pre>"+hsrc+"<\/pre>";
hsrc="<b>&lt;HEAD&gt;</b>"+hsrc+"<"+"b>&lt;/HEAD&gt;"+"<"+"/b>";
src=src.replace(/</ig,"&lt;");
src=src.replace(/>/ig,"&gt;");
src=src.replace(/\x09/ig," ");
src=src.replace(/\x0d\x0a/ig,"<br>");
src=src.replace(/&gt;&lt;/ig,"&gt;<br>&lt;");
src="<pre>"+src+"<\/pre>";
src=hsrc+"<br>"+"<b>&lt;BODY&gt;</b>"+src+"<"+"b>&lt;/BODY&gt;"+"<"+"/b>";
eExt.showdebugWindow("<html><h1>Rendered DHTML <body>
Source<\/h1><p>"+src+"<\/html>",600,600);
}
// Must generate a unique window name for each window instance, because otherwise
//
IE will only open ONE window when this is called from inside a modal dialog.
// I wonder if this is an IE bug, because it opens a new window each time
// when called from code NOT inside a modal dialog.
var debugwindowuniquename=0;
eExt.showdebugWindow=function(dwcontent,w,h)
{
// Open new window, ensuring a unique name each time so multiple windows
// can be opened when called from code inside a modal dialog.
var windowpointerle=window.open("","dbwin"+debugwindowuniquename+
+,"height="+h+",width="+w+",resizable,scrollbars");
if (windowpointerle)
{
windowpointerle.document.open();
windowpointerle.document.write(dwcontent);
windowpointerle.document.close();
windowpointerle.focus();
}
else
{
alert("Cannot create debug window");
}
}
eExt.showdebugWindowURL=function(url,w,h)
{
// Open new window, ensuring a unique name each time so multiple windows
// can be opened when called from code inside a modal dialog.
var windowpointerle=window.open(url,"dbwin"+debugwindowuniquename+
+,"height="+h+",width="+w+",resizable,scrollbars");
Sergnese Nicola 566/2002
Pagina 151 di 228
if (!windowpointerle)
{
alert("Cannot create url debug window");
}
}
var gDebugStack="";
var dbgwinstackhd="<html><body style='font: small Tahoma'><H2>Castor UI Debug Call Stack </H2>";
var dbgwinstack="";
var dbgwinstackft="<hr><button
onclick='javascript:window.opener.parent.gDebugStack=\"\";window.opener.parent.eExt.showdebugWindowRun
ning(\"\")'>Clear</button></body></html>";
var winpnterle=null;
eExt.showdebugWindowRunning=function(dwcontent)
{
var w=800;h=400;
// var isdebugwindowopen= windowpointerle==null?false:!windowpointerle.closed;
var winpnterle=window.open("","dbguidbwin0","height="+h+",width="+w+",resizable,scrollbars");
if (winpnterle)
{
winpnterle.document.open();
if (parent.gDebugStack==undefined)
{
parent.gDebugStack=dwcontent;
}
else
{
parent.gDebugStack+=dwcontent;
}
winpnterle.document.write(dbgwinstackhd+parent.gDebugStack+dbgwinstackft);
winpnterle.document.close();
winpnterle.scrollTo(0,999999999);
winpnterle.focus();
// This will pull the debug window to the front
//
windowpointerle.opener.focus(); // Put focus back to opening window to keep debug win from stealing
input focus
}
else
{
alert("Cannot create debug window");
}
}
eExt.debugCP=function(checkpointtxt, isEnabled)
{
if ((parent.gUIDebug)&&(isEnabled))
{
eExt.showdebugWindowRunning(checkpointtxt+"<br>");
}
}
Sergnese Nicola 566/2002
Pagina 152 di 228
//______________________________________________________________________________
//==================================================================
============
//
eExt.createDOMAPIElm
//-----------------------------------------------------------------------------// Function to call DOMAPI createElm from an object argument, so that
// parameters can be compiled from eLang.getObjProps.
//
// Input: parent, x, y, w, h, bgcolor, color, type(HTML tag)
//
// Output: reference to new object
//
// [BrandonB] 10/2/2003
//______________________________________________________________________________
//==================================================================
============
eExt.createDOMAPIElm = function(arg)
{
return(core.createElm(
arg.parent,
arg.x,
arg.y,
arg.w,
arg.h,
arg.bgcolor,
arg.color,
arg.type));
}
eExt.waitopenload=function()
{
document.write("<body bgcolor=buttonface>"+
"<table id='waittable' width='100%' height='100%'
style='background-color:buttonface;top:0;left:0;'>"+
"<tbody>"+
"<tr>"+
"<td style='font-family:Arial Black;fontsize:20px;text-align:center;vertical-align:center;color:black'>"+
"<img src='/Graphics/Icons/ani_clock.gif'><span
style='position:relative;top=-5px;'>&nbsp;&nbsp;"+
parent.eLang.getSysString("STR_WAIT")
+"<span>"+
"</td>"+
"</tr>"+
"</tbody>"+
"</table></body>");
}
eExt.waitopen=function()
{
Sergnese Nicola 566/2002
Pagina 153 di 228
// wt=document.createElement('div');
// wt.overflow='visible';
// wt.style.backgroundColor='red';
// wt.style.position='absolute';
//
// wt.innerHTML="<table id='waittable' width='100%' height='100%' style='border:4px solid;backgroundcolor:buttonface;top:0;left:0;'>"+
//
"<tbody>"+
//
"<tr>"+
//
"<td style='font-family:Arial Black;font-size:20px;text-align:center;verticalalign:center;color:black'>"+
//
"<img src='/Graphics/Icons/ani_clock.gif'><span style='position:relative;top=5px;'>&nbsp;&nbsp;"+
//
eLang.getSysString("STR_WAIT")+"<span>"+
//
"</td>"+
//
"</tr>"+
//
"</tbody>"+
//
"</table>";
// document.body.appendChild(wt);
//
wt=document.createElement('table');
wt.id='waittable';
wt.style.position="absolute";
wt.width="100%";
wt.height="100%";
wt.style.backgroundColor="buttonface";
wt.style.top=0;
wt.style.left=0;
wtb=document.createElement('tbody');
wtr=document.createElement('tr');
wtd=document.createElement('td');
wtd.style.fontFamily="Arial Black";
wtd.style.fontSize="20px";
wtd.style.textAlign="center";
wtd.style.verticalAlign="middle";
wtd.style.color="black";
wtd.innerHTML="<img src='/Graphics/Icons/ani_clock.gif'><span style='position:relative;top=5px;'>&nbsp;&nbsp;"+
parent.eLang.getSysString("STR_WAIT")
+"<span>";
wtr.appendChild(wtd);
wtb.appendChild(wtr);
wt.appendChild(wtb);
document.body.appendChild(wt);
}
//-------------------------------------//
//-------------------------------------//
//-------------------------------------//
Sergnese Nicola 566/2002
Pagina 154 di 228
//-------------------------------------//
eExt.waitclose=function()
{
var wtid=document.getElementById('waittable');
if (wtid!=undefined)
{
document.body.removeChild(wtid);
}
}
//-------------------------------------//
//-------------------------------------//
// Development routine to overlay a
// hashed grid in varying resolutions
// for object placement/layout
//-------------------------------------//
//-------------------------------------//
eExt.showScreenSize=function(sizeOfScreen)
{
scrdiv=document.createElement("DIV");
var resstr="";
with (scrdiv.style)
{
zIndex=-999;
position='absolute';
top=0;
left=0;
textAlign='right';
fontFamily='Arial Black';
}
switch (sizeOfScreen)
{
case 1: // 1024x768
with (scrdiv.style)
{
width=1024;
height=768;
border='2px dashed yellow';
color='yellow';
}
resstr='1024x768';
break;
case 2: // 1280x1024
with (scrdiv.style)
{
width=1280;
height=1024;
border='2px dashed red';
color='red';
}
resstr='1280x1024';
Sergnese Nicola 566/2002
Pagina 155 di 228
case 0:
default:
break;
// 800x600
with (scrdiv.style)
{
width=800;
height=600;
border='2px dashed white';
color='white';
}
resstr='800x600';
break;
}
// Allocate a 'danger' area of 145 pixels at the bottom to account for user's
// address bar, buttons, title bar, link bar etc.
var greyzoneheight=190;
var greyzonescrollwidth=30;
scrdivdanger=document.createElement("DIV");
with(scrdivdanger.style)
{
position='absolute';
top=parseInt(scrdiv.style.height)-greyzoneheight;
left=0;
height=greyzoneheight-5;
width=parseInt(scrdiv.style.width)-5;
backgroundColor='gray';
textAlign='center';
fontFamily='Arial Black';
}
//
//
//
//
scrdivdangerrt=document.createElement("DIV");
with(scrdivdangerrt.style)
{
position='absolute';
top=15;
left=parseInt(scrdiv.style.width)-greyzonescrollwidth-5;
height=parseInt(scrdiv.style.height)-20;
width=greyzonescrollwidth;
backgroundColor='gray';
textAlign='center';
fontFamily='Arial Black';
}
scrdivdanger.innerHTML="This zone represents the user's link bar, icons, "+
"address bar, etc. which takes up approximately 145 pixels from the "+
"usable desktop space. UI items should ideally be placed above this zone "+
"to prevent the user from having to scroll the screen.";
scrdiv.appendChild(scrdivdangerrt);
scrdiv.appendChild(scrdivdanger);
resstrs=document.createElement("SPAN");
resstrs.innerHTML=resstr;
scrdiv.appendChild(resstrs);
Sergnese Nicola 566/2002
Pagina 156 di 228
document.body.appendChild(scrdiv);
}
//-------------------------------------//
// These conversion utils use toFixed to
// round to the nearest decimal place
// for GB, or 0 places for MB, ie
//
//
1.999(1) -> 2.0
//-------------------------------------//
eExt.converttoGB=function(numberink,boolnumberonly)
{
var newnum=new Number(numberink);
newnum=newnum/1048576;
if (boolnumberonly)
{
return(newnum.toFixed(1));
}
else
{
return(newnum.toFixed(1)+parent.eLang.getSysString("STR_UNITS_GB"));
}
}
eExt.converttoMB=function(numberink,boolnumberonly)
{
var newnum=new Number(numberink);
newnum=newnum/1024;
if (boolnumberonly)
{
return(newnum.toFixed(0));
}
else
{
return(newnum.toFixed(0)+parent.eLang.getSysString("STR_UNITS_MB"));
}
}
eExt.converttoMBorGBString=function(numberinKB)
{
if (numberinKB>=1048576)
{
return(eExt.converttoGB(numberinKB));
}
else
{
return(eExt.converttoMB(numberinKB));
}
}
//-------------------------------------//
// The truncated versions do not round,
// they truncate any decimal places
// after the number specified. This
// is used in space calculations so
Sergnese Nicola 566/2002
Pagina 157 di 228
// user does not see more space than is
// really available, for example if there
// is 95.56GB free you don't want to
// show 95.6 and use that in calculations.
//
These use new function prototyped to
// the Number object, defined at the
// bottom of this file.
// [BrandonB] 6/22/2004
//
//
1.999(1) ->
1.9
//-------------------------------------//
eExt.converttoMBTruncated=function(numberink,boolnumberonly)
{
var newnum=new Number(numberink);
newnum=newnum/1024;
if (boolnumberonly)
{
return(newnum.toTruncated(0));
}
else
{
return(newnum.toTruncated(0)+parent.eLang.getSysString("STR_UNITS_MB"));
}
}
eExt.converttoGBTruncated=function(numberink,boolnumberonly)
{
var newnum=new Number(numberink);
newnum=newnum/1048576;
if (boolnumberonly)
{
return(newnum.toTruncated(1));
}
else
{
return(newnum.toTruncated(1)+parent.eLang.getSysString("STR_UNITS_GB"));
}
}
eExt.converttoMBorGBStringTruncated=function(numberinKB)
{
if (numberinKB>=1048576)
{
return(eExt.converttoGBTruncated(numberinKB));
}
else
{
return(eExt.converttoMBTruncated(numberinKB));
}
}
// Generic function, input = kHz whereas 1kHz=1000 Hz
eExt.converttoGHz=function(numberink,boolnumberonly)
{
Sergnese Nicola 566/2002
Pagina 158 di 228
var newnum=new Number(numberink);
newnum=newnum/1000000;
if (boolnumberonly)
{
return(newnum.toFixed(1));
}
else
{
return(newnum.toFixed(1)+parent.eLang.getSysString("STR_UNITS_GHZ"));
}
}
// Debugging function to expose all properties and methods of a given
// object
eExt.debugExposeProperties=function(object)
{
var x;
var str="";
for (x in object)
{
str+="<b>["+x+"]</b> - ";
if (typeof(object[x])=="function")
{
str+="FUNC - ";
}
else
{
if (typeof(object[x])==null)
{
str+="NULL - ";
}
else
{
str+="PROP - ";
}
}
str+=object[x]+"<br>";
}
eExt.showdebugWindow(str,500,600);
}
eExt.enableControl=function(ctrl,boolEnable)
{
ctrl.disabled=!boolEnable;
// HTML
// See if DOMAPI --- "enabled" is a DOMAPI object property.
if (ctrl.enabled!=undefined)
{
// DOMAPI
ctrl.enabled=boolEnable;
Sergnese Nicola 566/2002
Pagina 159 di 228
ctrl.reDraw();
}
// Handle IE quirks
if (ctrl.type!=undefined)
{
//Style text boxes to lightgray if IE
if ((ctrl.type=='text')||(ctrl.type=='password'))
{
ctrl.style.backgroundColor=(boolEnable?"":'lightgrey');
}
}
// Handle Firefox quirks
if (!document.all)
{
if (ctrl.tagName=='LABEL')
{
ctrl.style.color=(boolEnable?"":'#a0a0a0');
}
}
}
// A new function to add to the Number object to truncate a fractional portion
// after the decimal WITHOUT ROUNDING. For example, 2.99999 with a numdigits
// value of 2 would return 2.99, whereas the builtin toFixed rounds it and
// returns 3.00.
// [BrandonB] 6/16/2004
Number.prototype.toTruncated=function(numdigits)
{
var decimalmover=Math.pow(10,numdigits);
return ( (Math.floor(this*decimalmover))/decimalmover );
}
//______________________________________________________________________________
//==================================================================
============
//
cleanupTextArea
//-----------------------------------------------------------------------------// Escapes any quotes from text areas and removes any new lines
//
// Input
// ----// string //
// Output
// -----// //
//____________________________________________________________________Author:BMB
//==================================================================
============
Sergnese Nicola 566/2002
Pagina 160 di 228
eExt.cleanupTextArea=function (string)
{
// remove newlines
string=string.replace(/[\r\n]/g, " ");
// escape quotes
string=string.replace(/'/g, "\'");
string=string.replace(/"/g, "\"");
return (string);
}
//______________________________________________________________________________
//==================================================================
============
//
eExt.showMeThisObject
//-----------------------------------------------------------------------------// Small routine to take an object and write its contents to a popup window.
// Extremely useful for debugging object manipulation in Studio!
//
// Input
// ----// obj //
// Output
// -----// //
//
Author:BMB
//______________________________________________________________________________
//==================================================================
============
// Jump Tag 1153944906 [ PROC - "eExt.showMeThisObject()" ]
eExt.showMeThisObject=function (obj)
{
var str=(displayJSONStructure(obj, "", 1, 1, 1));
eExt.showdebugWindow(str,500,600);
}
//______________________________________________________________________________
//==================================================================
============
//
eExt.getHTTPHeaderProps
//-----------------------------------------------------------------------------// Scans and resolves some parameters from an HTTP GET header
//
// Input
// ----// text - string of the entire HTTP header
//
// Output
// -----// object - returns and object with the following parameters:
Sergnese Nicola 566/2002
Pagina 161 di 228
// languagestring : the string of the Accept-Language field
// langs : an array of user-preferred languages, resolved to two letter,
//
upper case
// useragent: the User-Agent field
//
//
//
Author:BMB
//______________________________________________________________________________
//==================================================================
============
//Jump Tag 1158783913 [ PROC - "eExt.getHTTPHeaderProps()" ]
eExt.getHTTPHeaderProps=function(text)
{
var mainobj={};
mainobj.languagestring="";
mainobj.langs=[];
// Accept-Language
var myregexp = /Accept-Language:(.*)/;
var match = myregexp.exec(text);
if (match != null && match.length > 1)
{
mainobj.languagestring=match[1];
}
else
{
mainobj.languagestring="";
}
// Now process lang codes
mainobj.langs=mainobj.languagestring.split(",");
for (var i=0;i<mainobj.langs.length;i++)
{
mainobj.langs[i]=(/[a-z]+[,$]*/.exec(mainobj.langs[i])[0]).toUpperCase();
}
// User-Agent
var myregexp = /User-Agent:(.*)/;
match = myregexp.exec(text);
if (match != null && match.length > 1)
{
mainobj.useragent=match[1];
}
else
{
mainobj.useragent="";
}
// Host
var myregexp = /Host:(.*)/;
match = myregexp.exec(text);
if (match != null && match.length > 1)
{
mainobj.host=match[1];
}
else
Sergnese Nicola 566/2002
Pagina 162 di 228
{
mainobj.host="";
}
return mainobj;
}
//______________________________________________________________________________
//==================================================================
============
//
setOrgs
//-----------------------------------------------------------------------------// Takes the values of the controls defined in the source array and sets them
// to their current values. Typically called when all data has been loaded
// on the page for the first time (to set initial values) and in the response
// handler of any write function.
//
// Input
// ----// arOrgs - array containing control data references. The data is stored
//
as pairs, with the first value a string to eval to get the
//
data. The second value is the placeholder for the value
//
when doing a set operation with this function.
//
// Example:
//
var orgsIPrange=[
//
"chkIPEnabled.checked", 0,
//
"txtRangeAddr.value",
"",
//
"txtRangeSubnetMask.value",
""
//
];
//
// Output
// -----// None
//
Author:BMB
//______________________________________________________________________________
//==================================================================
============
eExt.setOrgs=function(arOrgs)
{
for (var i=0;i<arOrgs.length/2;i++)
{
arOrgs[i*2+1]=eval(arOrgs[i*2]);
}
}
//______________________________________________________________________________
//==================================================================
============
//
checkOrgs
//-----------------------------------------------------------------------------// Checks the values of the controls defined in the source array to see
// if they have changed.
//
Sergnese Nicola 566/2002
Pagina 163 di 228
// Input
// ----// arOrgs - array containing control data references
//
// Output
// -----// boolean - true=changed, false=unchanged
//
//
Author:BMB
//______________________________________________________________________________
//==================================================================
============
eExt.checkOrgs=function(arOrgs)
{
var isChanged=false;
var temp;
for (var i=0;i<arOrgs.length/2;i++)
{
if (arOrgs[i*2+1]!=eval(arOrgs[i*2]))
{
isChanged=true;
break;
}
}
return isChanged;
}
codice eLang.js
//----------------------------------------------------------------//
// eLang language support library
//----------------------------------------------------------------//
var eLang = {};
// declare empty object
//----------------------------------------------------------------//
// getString
// optBit - added by [email protected]
// purpose - For multidimensional declaration of strings.
eLang.getString = function(widget, token)
{
var optBit = arguments[2];
if (token=="")
return " ";
else if (widget=="")
return "DEVERROR: String class not specified";
// Cascade to try and find the string, which could be included either in the
// frame/page that has loaded this copy of eLang, or it may be in the topmost
// frameset.
// [BrandonB] 7/2/2007
// First look for string group
if (eLang[widget+"_strings"]!=undefined)
{
Sergnese Nicola 566/2002
Pagina 164 di 228
//Optional bit check
if(optBit!=undefined && eLang[widget+"_strings"][token][optBit]!=undefined)
{
return eLang[widget+"_strings"][token][optBit];
}
if (eLang[widget+"_strings"][token]!=undefined)
{
return eLang[widget+"_strings"][token];
}
}
else
{
if (top.eLang[widget+"_strings"]!=undefined)
{
//Optional bit check
if(optBit!=undefined && top.eLang[widget+"_strings"][token][optBit]!=undefined)
return top.eLang[widget+"_strings"][token][optBit];
if (top.eLang[widget+"_strings"][token]!=undefined)
return top.eLang[widget+"_strings"][token];
}
else
{
if (eLang.global_strings!=undefined)
{
//Optional bit check
if(optBit!=undefined && eLang.global_strings[token][optBit]!=undefined)
return eLang.global_strings[token][optBit];
if (eLang.global_strings[token]!=undefined)
return eLang.global_strings[token];
}
}
}
return "DEVERROR: Cannot locate string eLang."+widget+"_strings["+token+"]"+(optBit!
=undefined)?"["+optBit+"]":"";
}
codice err_str.js
eLang.err_strings = {};
eLang.err_strings[0x01] = "Invalid User Name";
eLang.err_strings[0x02] = "Password and confirmation password do not match";
eLang.err_strings[0x03] = "Invalid Password";
eLang.err_strings[0x04] = "Invalid Access";
eLang.err_strings[0x05] = "Invalid Role Group Name!";
eLang.err_strings[0x06] = "Invalid Role Group Domain Name!";
codice event_str.js
/*************************************** Event / Reading type codes
*******************************************/
//eLang.event_strings[EVENT / READING TYPE CODE][GENERIC OFFSET] = "DESCRIPTION";
/
******************************************************************************************
Sergnese Nicola 566/2002
Pagina 165 di 228
***************************/
eLang.event_strings = new Array();
/******* Threshold Event Type Codes *********/
eLang.event_strings[1] = new Array();
eLang.event_strings[1][0] =
"Lower Non-Critical - Going Low";
eLang.event_strings[1][1] =
"Lower Non-Critical - Going High";
eLang.event_strings[1][2] =
"Lower Critical - Going Low";
eLang.event_strings[1][3] =
"Lower Critical - Going High";
eLang.event_strings[1][4] =
"Lower Non-Recoverable - Going Low";
eLang.event_strings[1][5] =
"Lower Non-Recoverable - Going High";
eLang.event_strings[1][6] =
"Upper Non-Critical - Going Low";
eLang.event_strings[1][7] =
"Upper Non-Critical - Going High";
eLang.event_strings[1][8] =
"Upper Critical - Going Low";
eLang.event_strings[1][9] =
"Upper Critical - Going High";
eLang.event_strings[1][10] = "Upper Non-Recoverable - Going Low";
eLang.event_strings[1][11] = "Upper Non-Recoverable - Going High";
/******* Generic Discrete Event Type Codes *********/
eLang.event_strings[2] = new Array();
eLang.event_strings[2][0] =
"Transition to Idle";
eLang.event_strings[2][1] =
"Transition to Active";
eLang.event_strings[2][2] =
"Transition to Busy";
/******* Digital Discrete Event Type Codes *********/
eLang.event_strings[3] = new Array();
eLang.event_strings[3][0] =
"State Deasserted";
eLang.event_strings[3][1] =
"State Asserted";
eLang.event_strings[4] = new Array();
eLang.event_strings[4][0] =
"Predictive Failure Deasserted";
eLang.event_strings[4][1] =
"Predictive Failure Asserted";
eLang.event_strings[5] = new Array();
eLang.event_strings[5][0] =
"Limit Not Exceeded";
eLang.event_strings[5][1] =
"Limit Exceeded";
eLang.event_strings[6] = new Array();
eLang.event_strings[6][0] =
"Performance Met";
eLang.event_strings[6][1] =
"Performance Lags";
eLang.event_strings[7] = new Array();
eLang.event_strings[7][0] =
"Transition to OK";
eLang.event_strings[7][1] =
"Transition to Non-Critical from OK";
eLang.event_strings[7][2] =
"Transition to Critical from less severe";
eLang.event_strings[7][3] =
"Transition to Non-Recoverable from less severe";
eLang.event_strings[7][4] =
"Transition to Non-Critical from more severe";
eLang.event_strings[7][5] =
"Transition to Critical from Non-Recoverable";
eLang.event_strings[7][6] =
"Transition to Non-Recoverable";
eLang.event_strings[7][7] =
"Monitor";
eLang.event_strings[7][8] =
"Informational";
eLang.event_strings[8] = new Array();
eLang.event_strings[8][0] =
"Device Removed / Device Absent";
eLang.event_strings[8][1] =
"Device Inserted / Device Present";
eLang.event_strings[9] = new Array();
Sergnese Nicola 566/2002
Pagina 166 di 228
eLang.event_strings[9][0] =
eLang.event_strings[9][1] =
"Device Disabled";
"Device Enabled";
eLang.event_strings[10] = new Array();
eLang.event_strings[10][0] =
"Transition to Running";
eLang.event_strings[10][1] =
"Transition to In Test";
eLang.event_strings[10][2] =
"Transition to Power Off";
eLang.event_strings[10][3] =
"Transition to On Line";
eLang.event_strings[10][4] =
"Transition to Off Line";
eLang.event_strings[10][5] =
"Transition to Off Duty";
eLang.event_strings[10][6] =
"Transition to Degraded";
eLang.event_strings[10][7] =
"Transition to Power Save";
eLang.event_strings[10][8] =
"Install Error";
eLang.event_strings[11] = new Array();
eLang.event_strings[11][0] =
"Fully Redundant (Redundancy Regained)";
eLang.event_strings[11][1] =
"Redundancy Lost";
eLang.event_strings[11][2] =
"Redundancy Degraded";
eLang.event_strings[11][3] =
"Non-redundant: Sufficient Resources from Redundant";
eLang.event_strings[11][4] =
"Non-redundant: Sufficient Resources from Insufficient Resources";
eLang.event_strings[11][5] =
"Non-redundant: Insufficient Resources";
eLang.event_strings[11][6] =
"Redundancy Degraded From Fully Redundant";
eLang.event_strings[11][7] =
"Redundancy Degraded From Non-redundant";
eLang.event_strings[12] = new Array();
eLang.event_strings[12][0] =
"D0 Power State";
eLang.event_strings[12][1] =
"D1 Power State";
eLang.event_strings[12][2] =
"D2 Power State";
eLang.event_strings[12][3] =
"D3 Power State";
codice global_str.js
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/common_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/bios_post_event_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/chassistype_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/err_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/noreading_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/sensor_specific_event_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/sensortype_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/sys_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/threshstate_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/tz_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
"/unittype_str.js\"><\/script>");
document.write("<script language = \"Javascript\", src = \"../str/" + top.gLangSetting +
Sergnese Nicola 566/2002
Pagina 167 di 228
"/event_str.js\"><\/script>");
eLang.global_string = {};
codice login_imp.js
function doInit() {
// TODO: add page initialization code
//first check what the reason is for us to be in the login page
var validate_prevlogin = xmit.get({url:"/rpc/WEBSES/validate.asp",onrcv:validate_prevlogin_resp,
status:''});
document.getElementById('login_username').focus();
//clear previous lastpage cookies
fnCookie.erase('lastNav');
fnCookie.erase('lastPage');
fnCookie.erase('lItem');
fnCookie.erase('lastHiLit');
}
var errorcodes = new Array();
errorcodes[9] = eLang.getString('common','STR_LOGINERRORCODE_9'); //fresh browser window
errorcodes[8] = eLang.getString('common','STR_LOGINERRORCODE_8'); //logged out properly and cookie is
set to logged out
errorcodes[7] = eLang.getString('common','STR_LOGINERRORCODE_7');
errorcodes[6] = errorcodes[5] = errorcodes[4] = eLang.getString('common','STR_LOGINERRORCODE_4');
errorcodes[3] = eLang.getString('common','STR_LOGINERRORCODE_3');
errorcodes[2] = eLang.getString('common','STR_LOGINERRORCODE_2');
errorcodes[1] = eLang.getString('common','STR_LOGINERRORCODE_1');
var DoLogin = function()
{
//note that we have to give the full path for the RPC page here since we are still not initialized fully
if(document.getElementById('login_username').value == "root"){
document.getElementById('msglbl').innerHTML =
eLang.getString('common','STR_LOGINERRORCODE_7');
document.getElementById('login_password').value = "";
document.getElementById('login_password').focus();
return false;
}
var login_rpc = xmit.getset({url:"/rpc/WEBSES/create.asp",onrcv:login_resp, status:'',timeout:60});
login_rpc.add("WEBVAR_USERNAME",document.getElementById('login_username').value);
login_rpc.add("WEBVAR_PASSWORD",document.getElementById('login_password').value);
login_rpc.send();
return false;
}
var login_resp = function()
{
login_retval = WEBVAR_JSONVAR_WEB_SESSION.HAPI_STATUS;
Sergnese Nicola 566/2002
Pagina 168 di 228
if(login_retval != 0)
{
document.getElementById('msglbl').innerHTML =
eLang.getString('common','STR_LOGINERRORCODE_7');
//document.getElementById('login_username').value = "";
document.getElementById('login_password').value = "";
document.getElementById('login_password').focus();
return;
}
login_cookie =
WEBVAR_JSONVAR_WEB_SESSION.WEBVAR_STRUCTNAME_WEB_SESSION[0].SESSION_COOKIE;
document.cookie = "SessionCookie="+login_cookie+";path=/";
document.cookie = "Username=" + document.getElementById('login_username').value + ";path=/";
document.location = "/index.html";
}
var validate_prevlogin_resp = function()
{
errcod = WEBVAR_JSONVAR_WEB_SESSION_VALIDATE.HAPI_STATUS;
if(errcod != 0 || errorcodes[errcod] != undefined)
{
//alert(errcod + " " + errorcodes[errcod]);
document.getElementById('msglbl').innerHTML = errorcodes[errcod];
}
}
document.onkeypress = function(e)
{
if(!e) e = window.event;
if(e.keyCode==13)
{
DoLogin();
}
}
codice login_str.js
//------------------------------------------------------------//
// login page string table
//------------------------------------------------------------//
eLang.login_strings = {};
eLang.login_strings["STR_LOGIN_USERNAME"] = "Username";
eLang.login_strings["STR_LOGIN_PASSWORD"] = "Password";
eLang.login_strings["STR_LOGIN_PLS_LOGIN"] = "Please Login";
codice noreading_str.js
eLang.noreading_strings = [];
eLang.noreading_strings[0]= "(No status)";
eLang.noreading_strings[5]= "No intrusion";
codice sensor_specific_event_str.js
Sergnese Nicola 566/2002
// Default for unknown sensor type with no reading
// Chassis intrusion
Pagina 169 di 228
/*************************************** Sensor specific event codes
******************************************/
//eLang.sensor_specific_event_strings[SENSOR TYPE CODE][SENSOR-SPECIFIC OFFSET] = "EVENT
DESCRIPTION";
/*****************************************************************************************
****************************/
eLang.sensor_specific_event_strings = new Array();
eLang.sensor_specific_event_strings[0] = "reserved";
eLang.sensor_specific_event_strings[1] = "Temperature";
eLang.sensor_specific_event_strings[2] = "Voltage";
eLang.sensor_specific_event_strings[3] = "Current";
eLang.sensor_specific_event_strings[4] = "Fan";
eLang.sensor_specific_event_strings[5] = new Array();
eLang.sensor_specific_event_strings[5][0] =
"General Chassis Intrusion";
eLang.sensor_specific_event_strings[5][1] =
"Drive Bay Intrusion";
eLang.sensor_specific_event_strings[5][2] =
"I/O Card Area Intrusion";
eLang.sensor_specific_event_strings[5][3] =
"Processor Area Intrusion";
eLang.sensor_specific_event_strings[5][4] =
"LAN Leash Lost (System unplugged from LAN)";
eLang.sensor_specific_event_strings[5][5] =
"Unauthorized Dock/Undock";
eLang.sensor_specific_event_strings[5][6] =
"Fan Area Intrusion";
eLang.sensor_specific_event_strings[6] = new Array();
eLang.sensor_specific_event_strings[6][0] =
"Secure Mode Violation Attempt";
eLang.sensor_specific_event_strings[6][1] =
"Pre-boot Password Violation - user password";
eLang.sensor_specific_event_strings[6][2] =
"Pre-boot Password Violation Attempt - setup password";
eLang.sensor_specific_event_strings[6][3] =
"Pre-boot Password Violation - network boot password";
eLang.sensor_specific_event_strings[6][4] =
"Other Pre-boot Password Violation";
eLang.sensor_specific_event_strings[6][5] =
"Out-of-Band Access Password Violation";
eLang.sensor_specific_event_strings[7] = new Array();
eLang.sensor_specific_event_strings[7][0] =
"IERR";
eLang.sensor_specific_event_strings[7][1] =
"Therman Trip";
eLang.sensor_specific_event_strings[7][2] =
"FRB1/BIST Failure";
eLang.sensor_specific_event_strings[7][3] =
"FRB2/Hang in POST Faliure";
eLang.sensor_specific_event_strings[7][4] =
"FRB3/Processor Startup/Initialization Failure";
eLang.sensor_specific_event_strings[7][5] =
"Configuration Error (DMI)";
eLang.sensor_specific_event_strings[7][6] =
"SM BIOS 'Uncorrectable CPU-complex Error";
eLang.sensor_specific_event_strings[7][7] =
"Processor Presence Detected";
eLang.sensor_specific_event_strings[7][8] =
"Processor Disabled";
eLang.sensor_specific_event_strings[7][9] =
"Terminator Presence Detected";
eLang.sensor_specific_event_strings[7][10] = "Processor Automatically Throttled";
eLang.sensor_specific_event_strings[8] = new Array();
eLang.sensor_specific_event_strings[8][0] =
"Presence Detected";
eLang.sensor_specific_event_strings[8][1] =
"Power Supply Failure Detected";
eLang.sensor_specific_event_strings[8][2] =
"Predictive Failure Asserted";
eLang.sensor_specific_event_strings[8][3] =
"Power Supply Input Lost (AC/DC)";
eLang.sensor_specific_event_strings[8][4] =
"Power Supply Input Lost or Out of Range";
eLang.sensor_specific_event_strings[8][5] =
"Power Supply Input Out of Range, but Present";
eLang.sensor_specific_event_strings[8][6] =
"Configuration Error";
eLang.sensor_specific_event_strings[9] = new Array();
eLang.sensor_specific_event_strings[9][0] =
"Power Off / Power Down";
eLang.sensor_specific_event_strings[9][1] =
"Power Cycle";
Sergnese Nicola 566/2002
Pagina 170 di 228
eLang.sensor_specific_event_strings[9][2] =
eLang.sensor_specific_event_strings[9][3] =
eLang.sensor_specific_event_strings[9][4] =
eLang.sensor_specific_event_strings[9][5] =
eLang.sensor_specific_event_strings[9][6] =
eLang.sensor_specific_event_strings[9][7] =
"240VA Power Down";
"Interlock Power Down";
"AC Lost";
"Soft Power Control Failure";
"Power Unit Failure Detected";
"Predictive Failure";
eLang.sensor_specific_event_strings[12] = new Array();
eLang.sensor_specific_event_strings[12][0] =
"Correctable ECC";
eLang.sensor_specific_event_strings[12][1] =
"Uncorrectable ECC";
eLang.sensor_specific_event_strings[12][2] =
"Parity";
eLang.sensor_specific_event_strings[12][3] =
"Memory Scrub Failure";
eLang.sensor_specific_event_strings[12][4] =
"Memory Device Disabled";
eLang.sensor_specific_event_strings[12][5] =
"Correctable ECC Logging Limit Reached";
eLang.sensor_specific_event_strings[12][6] =
"Presence Detected";
eLang.sensor_specific_event_strings[12][7] =
"Configuration Error";
eLang.sensor_specific_event_strings[12][8] =
"Spare";
eLang.sensor_specific_event_strings[13] = new Array();
eLang.sensor_specific_event_strings[13][0] =
"Drive Presence";
eLang.sensor_specific_event_strings[13][1] =
"Drive Fault";
eLang.sensor_specific_event_strings[13][2] =
"Predictive Failure";
eLang.sensor_specific_event_strings[13][3] =
"Hot Spare";
eLang.sensor_specific_event_strings[13][4] =
"Consistency Check/Parity Check in Progress";
eLang.sensor_specific_event_strings[13][5] =
"In Critical Array";
eLang.sensor_specific_event_strings[13][6] =
"In failed Array";
eLang.sensor_specific_event_strings[13][7] =
"Rebuild/Remap in progress";
eLang.sensor_specific_event_strings[13][8] =
"Rebuild/Remap Aborted";
eLang.sensor_specific_event_strings[15] = new Array();
eLang.sensor_specific_event_strings[15][0] =
"Error";
eLang.sensor_specific_event_strings[15][1] =
"Hang";
eLang.sensor_specific_event_strings[15][2] =
"Progress";
eLang.sensor_specific_event_strings[16] = new Array();
eLang.sensor_specific_event_strings[16][0] =
"Correctable Memory Error Logging Disabled";
eLang.sensor_specific_event_strings[16][1] =
"Event 'Type' Logging Disabled";
eLang.sensor_specific_event_strings[16][2] =
"Log Area Reset/Cleared";
eLang.sensor_specific_event_strings[16][3] =
"All Event Logging Disabled";
eLang.sensor_specific_event_strings[16][4] =
"SEL Full";
eLang.sensor_specific_event_strings[16][5] =
"SEL Almost Full";
eLang.sensor_specific_event_strings[17] = new Array();
eLang.sensor_specific_event_strings[17][0] =
"BIOS Watchdog Reset";
eLang.sensor_specific_event_strings[17][1] =
"OS Watchdog Reset";
eLang.sensor_specific_event_strings[17][2] =
"OS Watchdog Shutdown";
eLang.sensor_specific_event_strings[17][3] =
"OS Watchdog Power Down";
eLang.sensor_specific_event_strings[17][4] =
"OS Watchdog Power Cycle";
eLang.sensor_specific_event_strings[17][5] =
"OS Watchdog NMI";
eLang.sensor_specific_event_strings[17][6] =
"OS Watchdog Expired";
eLang.sensor_specific_event_strings[17][7] =
"OS Watchdog Pre-timeout Interrupt, non-NMI";
eLang.sensor_specific_event_strings[18] = new Array();
eLang.sensor_specific_event_strings[18][0] =
"System Reconfigured";
Sergnese Nicola 566/2002
Pagina 171 di 228
eLang.sensor_specific_event_strings[18][1] =
eLang.sensor_specific_event_strings[18][2] =
eLang.sensor_specific_event_strings[18][3] =
eLang.sensor_specific_event_strings[18][4] =
"OEM System Boot Event";
"Undetermined System Hardware Failure";
"Entry Added to Auxiliary Log";
"PEF Action";
eLang.sensor_specific_event_strings[19] = new Array();
eLang.sensor_specific_event_strings[19][0] =
"Front Panel NMI";
eLang.sensor_specific_event_strings[19][1] =
"Bus Timeout";
eLang.sensor_specific_event_strings[19][2] =
"I/O Channel Check NMI";
eLang.sensor_specific_event_strings[19][3] =
"Software NMI";
eLang.sensor_specific_event_strings[19][4] =
"PCI PERR";
eLang.sensor_specific_event_strings[19][5] =
"PCI SERR";
eLang.sensor_specific_event_strings[19][6] =
"EISA Fail Safe Timeout";
eLang.sensor_specific_event_strings[19][7] =
"Bus Correctable Error";
eLang.sensor_specific_event_strings[19][8] =
"Bus Uncorrectable Error";
eLang.sensor_specific_event_strings[19][9] =
"Fatal NMI";
eLang.sensor_specific_event_strings[19][10] = "Bus Fatal Error";
eLang.sensor_specific_event_strings[20] = new Array();
eLang.sensor_specific_event_strings[20][0] =
"Power Button Pressed";
eLang.sensor_specific_event_strings[20][1] =
"Sleep Button Pressed";
eLang.sensor_specific_event_strings[20][2] =
"Reset Button Pressed";
eLang.sensor_specific_event_strings[20][3] =
"FRU Latch Open";
eLang.sensor_specific_event_strings[20][4] =
"FRU Service Request Button";
eLang.sensor_specific_event_strings[25] = new Array();
eLang.sensor_specific_event_strings[25][0] =
"Soft Power Control Failure";
eLang.sensor_specific_event_strings[29] = new Array();
eLang.sensor_specific_event_strings[29][0] =
"Initiated By Power Up";
eLang.sensor_specific_event_strings[29][1] =
"Initiated By Hard Reset";
eLang.sensor_specific_event_strings[29][2] =
"Initiated By Warm Reset";
eLang.sensor_specific_event_strings[29][3] =
"User Requested PXE Boot";
eLang.sensor_specific_event_strings[29][4] =
"Automatic Boot to Diagnostic";
eLang.sensor_specific_event_strings[30] = new Array();
eLang.sensor_specific_event_strings[30][0] =
"No Bootable Media";
eLang.sensor_specific_event_strings[30][1] =
"Non-Bootable Diskette Left in Drive";
eLang.sensor_specific_event_strings[30][2] =
"PXE Server Not Found";
eLang.sensor_specific_event_strings[30][3] =
"Invalid Boot Sector";
eLang.sensor_specific_event_strings[30][4] =
"Timeout Waiting For User Selection of Boot Source";
eLang.sensor_specific_event_strings[31] = new Array();
eLang.sensor_specific_event_strings[31][0] =
"A: Boot Completed";
eLang.sensor_specific_event_strings[31][1] =
"C: Boot Completed";
eLang.sensor_specific_event_strings[31][2] =
"PXE Boot Completed";
eLang.sensor_specific_event_strings[31][3]
=
"Diagnostic Boot Completed";
eLang.sensor_specific_event_strings[31][4] =
"CD-ROM Boot Completed";
eLang.sensor_specific_event_strings[31][5] =
"ROM Boot Completed";
eLang.sensor_specific_event_strings[31][6] =
"Boot Completed - Boot Device Not Specified";
eLang.sensor_specific_event_strings[32] = new Array();
eLang.sensor_specific_event_strings[32][0] =
"Stop During OS Load / Initialization";
eLang.sensor_specific_event_strings[32][1] =
"Run-Time Stop";
Sergnese Nicola 566/2002
Pagina 172 di 228
eLang.sensor_specific_event_strings[33] = new Array();
eLang.sensor_specific_event_strings[33][0] =
"Fault Status Asserted";
eLang.sensor_specific_event_strings[33][1] =
"Identify Status Asserted";
eLang.sensor_specific_event_strings[33][2] =
"Slot/Connector Device Installed/Attached";
eLang.sensor_specific_event_strings[33][3] =
"Slot/Connector Ready For Device Installation";
eLang.sensor_specific_event_strings[33][4] =
"Slot/Connector Ready For Device Removal";
eLang.sensor_specific_event_strings[33][5] =
"Slot Power is Off";
eLang.sensor_specific_event_strings[33][6] =
"Slot/Connector Device Removal Request";
eLang.sensor_specific_event_strings[33][7] =
"Interlock Asserted";
eLang.sensor_specific_event_strings[33][8] =
"Slot is Disabled";
eLang.sensor_specific_event_strings[33][9] =
"Slot Holds Spare Device";
eLang.sensor_specific_event_strings[34] = new Array();
eLang.sensor_specific_event_strings[34][0] =
"S0/G0 'Working";
eLang.sensor_specific_event_strings[34][1] =
"S1 'Sleeping With System HW & Processor Context
Maintained'";
eLang.sensor_specific_event_strings[34][2] =
"S2 'Sleeping, Processor Context Lost'";
eLang.sensor_specific_event_strings[34][3] =
"S3 'Sleeping, Processor & HW Context Lost, Memory
Retained'";
eLang.sensor_specific_event_strings[34][4] =
"S4 'Non-Volatile Sleep/Suspend To Disk'";
eLang.sensor_specific_event_strings[34][5] =
"S5/G2 'Soft Off'";
eLang.sensor_specific_event_strings[34][6] =
"S4/S5 Soft Off, Particular S4/S5 State Cannot Be
Determined";
eLang.sensor_specific_event_strings[34][7] =
"G3 / Mechanical Off";
eLang.sensor_specific_event_strings[34][8] =
"Sleeping in S1, S2, or S3";
eLang.sensor_specific_event_strings[34][9] =
"G1 Sleeping";
eLang.sensor_specific_event_strings[34][10] =
"S5 Entered By Override";
eLang.sensor_specific_event_strings[34][11] =
"Legacy ON State";
eLang.sensor_specific_event_strings[34][12] =
"Legacy OFF State";
eLang.sensor_specific_event_strings[34][13] =
"Unknown";
eLang.sensor_specific_event_strings[35] = new Array();
eLang.sensor_specific_event_strings[35][0] =
"Timer Expired";
eLang.sensor_specific_event_strings[35][1] =
"Hard Reset";
eLang.sensor_specific_event_strings[35][2] =
"Power Down";
eLang.sensor_specific_event_strings[35][3] =
"Power Cycle";
eLang.sensor_specific_event_strings[35][4] =
"Reserved";
eLang.sensor_specific_event_strings[35][5] =
"Reserved";
eLang.sensor_specific_event_strings[35][6] =
"Reserved";
eLang.sensor_specific_event_strings[35][7] =
"Reserved";
eLang.sensor_specific_event_strings[35][8] =
"Timer Interrupt";
eLang.sensor_specific_event_strings[36] = new Array();
eLang.sensor_specific_event_strings[36][0] =
"Platform Generated Page";
eLang.sensor_specific_event_strings[36][1] =
"Platform Generated LAN Alert";
eLang.sensor_specific_event_strings[36][2] =
"Platform Event Trap Generated";
eLang.sensor_specific_event_strings[36][3] =
"Platform Generated SNMP Trap, OEM Format";
eLang.sensor_specific_event_strings[37] = new Array();
eLang.sensor_specific_event_strings[37][0] =
"Entity Present";
eLang.sensor_specific_event_strings[37][1] =
"Entity Absent";
eLang.sensor_specific_event_strings[37][2] =
"Entity Disabled";
eLang.sensor_specific_event_strings[39] = new Array();
eLang.sensor_specific_event_strings[39][0] =
"LAN Heartbeat Lost";
eLang.sensor_specific_event_strings[39][1] =
"LAN Heartbeat";
Sergnese Nicola 566/2002
Pagina 173 di 228
eLang.sensor_specific_event_strings[40] = new Array();
eLang.sensor_specific_event_strings[40][0] =
"Sensor Access Degraded or Unavailable";
eLang.sensor_specific_event_strings[40][1] =
"Controller Access Degraded or Unavailable";
eLang.sensor_specific_event_strings[40][2] =
"Management Controller Offline";
eLang.sensor_specific_event_strings[40][3] =
"Management Controller Unavailable";
eLang.sensor_specific_event_strings[41] = new Array();
eLang.sensor_specific_event_strings[41][0] =
"Battery Low";
eLang.sensor_specific_event_strings[41][1] =
"Battery Failed";
eLang.sensor_specific_event_strings[41][2] =
"Battery Presence Detected";
eLang.sensor_specific_event_strings[42] = new Array();
eLang.sensor_specific_event_strings[42][0] =
"Session Activated";
eLang.sensor_specific_event_strings[42][1] =
"Session Deactivated";
eLang.sensor_specific_event_strings[43] = new Array();
eLang.sensor_specific_event_strings[43][0] =
"Hardware Change Detected";
eLang.sensor_specific_event_strings[43][1] =
"Firmware / Software Change Detected";
eLang.sensor_specific_event_strings[43][2] =
"Hardware Incompatibility Detected";
eLang.sensor_specific_event_strings[43][3] =
"Firmware / Software Incompatibility Detected";
eLang.sensor_specific_event_strings[43][4] =
"Invalid or Unsupported Hardware Version";
eLang.sensor_specific_event_strings[43][5] =
"Invalid or Unsupported Firmware / Software Version";
eLang.sensor_specific_event_strings[43][6] =
"Hardware Change Detected was successful";
eLang.sensor_specific_event_strings[43][7] =
"Firmware / Software Change Detected was successful";
eLang.sensor_specific_event_strings[44] = new Array();
eLang.sensor_specific_event_strings[44][0] =
"FRU Not Installed";
eLang.sensor_specific_event_strings[44][1] =
"FRU Inactive";
eLang.sensor_specific_event_strings[44][2] =
"FRU Activation Requested";
eLang.sensor_specific_event_strings[44][3] =
"FRU Activation In Progress";
eLang.sensor_specific_event_strings[44][4] =
"FRU Active";
eLang.sensor_specific_event_strings[44][5] =
"FRU Deactivation Requested";
eLang.sensor_specific_event_strings[44][6] =
"FRU Deactivation In Progress";
eLang.sensor_specific_event_strings[44][7] =
"FRU Communication Lost";
eLang.sensor_specific_event_strings[193] = new Array();
eLang.sensor_specific_event_strings[193][0] =
"Read ECC Error";
eLang.sensor_specific_event_strings[193][1] =
"ECC Error occurred on a scrub";
eLang.sensor_specific_event_strings[193][2] =
"Write Parity Error";
eLang.sensor_specific_event_strings[193][3] =
"Error in Redundant memory";
eLang.sensor_specific_event_strings[193][4] =
"Sparing Error";
eLang.sensor_specific_event_strings[193][5] =
"Memory access out of Range";
eLang.sensor_specific_event_strings[193][6] =
"Address Parity Error";
eLang.sensor_specific_event_strings[193][7] =
"Byte Enable Parity Error";
eLang.sensor_specific_event_strings[193][8] =
"OK";
codice sensortype_str.js
/****************************** Sensor type codes ********************************/
//eLang.sensortype_strings[SENSOR TYPE CODE] = "SENSOR TYPE";
/**************************************************************************************/
eLang.sensortype_strings = new Array();
eLang.sensortype_strings[0] = "reserved";
eLang.sensortype_strings[1] = "Temperature";
eLang.sensortype_strings[2] = "Voltage";
eLang.sensortype_strings[3] = "Current";
eLang.sensortype_strings[4] = "Fan";
Sergnese Nicola 566/2002
Pagina 174 di 228
eLang.sensortype_strings[5] = "Physical Security (Chassis Intrusion)";
eLang.sensortype_strings[6] = "Platform Security Violation Attempt";
eLang.sensortype_strings[7] = "Processor";
eLang.sensortype_strings[8] = "Power Supply";
eLang.sensortype_strings[9] = "Power Unit";
eLang.sensortype_strings[10] = "Cooling Device";
eLang.sensortype_strings[11] = "Other Units-based sensor";
eLang.sensortype_strings[12] = "Memory";
eLang.sensortype_strings[13] = "Drive Slot (Bay)";
eLang.sensortype_strings[14] = "POST Memory Resize";
eLang.sensortype_strings[15] = "BIOS POST Progress";
eLang.sensortype_strings[16] = "Event Logging disabled";
eLang.sensortype_strings[17] = "Watchdog 1";
eLang.sensortype_strings[18] = "System Event";
eLang.sensortype_strings[19] = "Critical Interrupt";
eLang.sensortype_strings[20] = "Button / Switch";
eLang.sensortype_strings[21] = "Module / Board";
eLang.sensortype_strings[22] = "Microcontroller / Coprocessor";
eLang.sensortype_strings[23] = "Add-in Card";
eLang.sensortype_strings[24] = "Chassis";
eLang.sensortype_strings[25] = "Chip Set";
eLang.sensortype_strings[26] = "Other FRU";
eLang.sensortype_strings[27] = "Cable / Interconnect";
eLang.sensortype_strings[28] = "Terminator";
eLang.sensortype_strings[29] = "System Boot Initiated";
eLang.sensortype_strings[30] = "Boot Error";
eLang.sensortype_strings[31] = "OS Boot";
eLang.sensortype_strings[32] = "OS Critical Stop";
eLang.sensortype_strings[33] = "Slot / Connector";
eLang.sensortype_strings[34] = "System ACPI Power State";
eLang.sensortype_strings[35] = "Watchdog 2";
eLang.sensortype_strings[36] = "Platform Alert";
eLang.sensortype_strings[37] = "Entity Presence";
eLang.sensortype_strings[38] = "Monitor ASIC / IC";
eLang.sensortype_strings[39] = "LAN";
eLang.sensortype_strings[40] = "Management Subsystem Health";
eLang.sensortype_strings[41] = "Battery";
eLang.sensortype_strings[42] = "Session Audit";
eLang.sensortype_strings[43] = "Version Change";
eLang.sensortype_strings[44] = "FRU State";
eLang.sensortype_strings[193] = "OEM Memory";//20090614 Andy
codice sys_str.js
// NOTE -------// Do not add any more sys_strings, this object is being depracated but the strings must be left here for
compatilibilty.
eLang.sys_strings = {};
eLang.sys_strings["STR_OK"]
= "OK";
eLang.sys_strings["STR_APPLY"]
= "Apply";
eLang.sys_strings["STR_RESTORE"] = "Restore";
eLang.sys_strings["STR_FULLACCESS"] = "Full access";
eLang.sys_strings["STR_READONLY"] = "Read Only";
eLang.sys_strings["STR_DENIED"] = "Denied";
eLang.sys_strings["STR_UNDEFINED"] = "Undefined";
eLang.sys_strings["STR_ENABLED"] = "Enabled";
eLang.sys_strings["STR_DISABLED"] = "Disabled";
eLang.sys_strings["STR_SAVE"]
= "Save";
Sergnese Nicola 566/2002
Pagina 175 di 228
eLang.sys_strings["STR_CLOSE"]
= "Close";
eLang.sys_strings["STR_CANCEL"] = "Cancel";
eLang.sys_strings["STR_WAIT"]
= "Loading...please wait";
eLang.sys_strings["STR_LOADING"] = "Loading";
eLang.sys_strings["STR_WAIT2"]
= "Loading, please wait";
eLang.sys_strings["STR_INPUT_ERROR"]= "An input error was detected. Please correct the marked fields!";
eLang.sys_strings["STR_INPUTREQUIRED_ERROR"]= "A required input was not found. Please correct the
marked fields!";
eLang.sys_strings["STR_UNITS_KB"] = "KB"
eLang.sys_strings["STR_UNITS_MB"] = "MB"
eLang.sys_strings["STR_UNITS_GB"] = "GB"
eLang.sys_strings["STR_MONTH0"] = "January";
eLang.sys_strings["STR_MONTH1"] = "February";
eLang.sys_strings["STR_MONTH2"] = "March";
eLang.sys_strings["STR_MONTH3"] = "April";
eLang.sys_strings["STR_MONTH4"] = "May";
eLang.sys_strings["STR_MONTH5"] = "June";
eLang.sys_strings["STR_MONTH6"] = "July";
eLang.sys_strings["STR_MONTH7"] = "August";
eLang.sys_strings["STR_MONTH8"] = "September";
eLang.sys_strings["STR_MONTH9"] = "October";
eLang.sys_strings["STR_MONTH10"] = "November";
eLang.sys_strings["STR_MONTH11"] = "December";
eLang.sys_strings["STR_OFF"]
= "Off";
eLang.sys_strings["STR_ON"]
= "On";
eLang.sys_strings["STR_PROCESSING"]
= "Processing...";
eLang.sys_strings["STR_PARSING"]
= "Parsing...";
eLang.sys_strings["STR_CHECKING"]
= "Checking...";
eLang.sys_strings["STR_SORTING"]
= "Sorting...";
// Units
eLang.sys_strings["STR_MINUTES"]
= "Minute(s)";
eLang.sys_strings["STR_SECONDS"]
= "Second(s)";
eLang.sys_strings["STR_HOURS"]
= "Hour(s)";
// Here I duplicate all the sys strings to be in the normal strings array.
// This is so I don't have to figure out what array a string is in.
eLang.common_strings["STR_OK"]
= eLang.sys_strings["STR_OK"]
eLang.common_strings["STR_APPLY"]
= eLang.sys_strings["STR_APPLY"]
eLang.common_strings["STR_RESTORE"]
= eLang.sys_strings["STR_RESTORE"]
eLang.common_strings["STR_FULLACCESS"]
= eLang.sys_strings["STR_FULLACCESS"]
eLang.common_strings["STR_READONLY"]
= eLang.sys_strings["STR_READONLY"]
eLang.common_strings["STR_DENIED"]
= eLang.sys_strings["STR_DENIED"]
eLang.common_strings["STR_UNDEFINED"]
= eLang.sys_strings["STR_UNDEFINED"]
eLang.common_strings["STR_ENABLED"]
= eLang.sys_strings["STR_ENABLED"]
eLang.common_strings["STR_DISABLED"]
= eLang.sys_strings["STR_DISABLED"]
eLang.common_strings["STR_SAVE"]
= eLang.sys_strings["STR_SAVE"]
eLang.common_strings["STR_CLOSE"]
= eLang.sys_strings["STR_CLOSE"]
eLang.common_strings["STR_CANCEL"]
= eLang.sys_strings["STR_CANCEL"]
eLang.common_strings["STR_WAIT"]
= eLang.sys_strings["STR_WAIT"]
eLang.common_strings["STR_LOADING"]
= eLang.sys_strings["STR_LOADING"]
eLang.common_strings["STR_WAIT2"]
= eLang.sys_strings["STR_WAIT2"]
Sergnese Nicola 566/2002
Pagina 176 di 228
eLang.common_strings["STR_INPUT_ERROR"]
= eLang.sys_strings["STR_INPUT_ERROR"]
eLang.common_strings["STR_INPUTREQUIRED_ERROR"]=
eLang.sys_strings["STR_INPUTREQUIRED_ERROR"]
eLang.common_strings["STR_UNITS_KB"]
= eLang.sys_strings["STR_UNITS_KB"]
eLang.common_strings["STR_UNITS_MB"]
= eLang.sys_strings["STR_UNITS_MB"]
eLang.common_strings["STR_UNITS_GB"]
= eLang.sys_strings["STR_UNITS_GB"]
eLang.common_strings["STR_MONTH0"]
= eLang.sys_strings["STR_MONTH0"]
eLang.common_strings["STR_MONTH1"]
= eLang.sys_strings["STR_MONTH1"]
eLang.common_strings["STR_MONTH2"]
= eLang.sys_strings["STR_MONTH2"]
eLang.common_strings["STR_MONTH3"]
= eLang.sys_strings["STR_MONTH3"]
eLang.common_strings["STR_MONTH4"]
= eLang.sys_strings["STR_MONTH4"]
eLang.common_strings["STR_MONTH5"]
= eLang.sys_strings["STR_MONTH5"]
eLang.common_strings["STR_MONTH6"]
= eLang.sys_strings["STR_MONTH6"]
eLang.common_strings["STR_MONTH7"]
= eLang.sys_strings["STR_MONTH7"]
eLang.common_strings["STR_MONTH8"]
= eLang.sys_strings["STR_MONTH8"]
eLang.common_strings["STR_MONTH9"]
= eLang.sys_strings["STR_MONTH9"]
eLang.common_strings["STR_MONTH10"]
= eLang.sys_strings["STR_MONTH10"]
eLang.common_strings["STR_MONTH11"]
= eLang.sys_strings["STR_MONTH11"]
eLang.common_strings["STR_OFF"]
= eLang.sys_strings["STR_OFF"]
eLang.common_strings["STR_ON"]
= eLang.sys_strings["STR_ON"]
eLang.common_strings["STR_PROCESSING"]
= eLang.sys_strings["STR_PROCESSING"]
eLang.common_strings["STR_PARSING"]
= eLang.sys_strings["STR_PARSING"]
eLang.common_strings["STR_CHECKING"]
= eLang.sys_strings["STR_CHECKING"]
eLang.common_strings["STR_SORTING"]
= eLang.sys_strings["STR_SORTING"]
eLang.common_strings["STR_MINUTES"]
= eLang.sys_strings["STR_MINUTES"]
eLang.common_strings["STR_SECONDS"]
= eLang.sys_strings["STR_SECONDS"]
eLang.common_strings["STR_HOURS"]
= eLang.sys_strings["STR_HOURS"]
codice threshstate_str.js
eLang.threshstate_strings=[];
/* IPMI threshold state definitions for monitoring */
eLang.threshstate_strings[0x00] = "Uninitialized";
eLang.threshstate_strings[0x01] = "Normal";
eLang.threshstate_strings[0x02] = "Upper Non-Critical";
eLang.threshstate_strings[0x04] = "Upper Critical";
eLang.threshstate_strings[0x08] = "Lower Non-Critical";
eLang.threshstate_strings[0x10] = "Lower Critical";
eLang.threshstate_strings[0x20] = "Access Failed";
eLang.threshstate_strings[0x40] = "Upper Non-Recoverable";
eLang.threshstate_strings[0x80] = "Lower Non-Recoverable";
codice tz_str.js
//-------------------------------------//
// Time zone strings
//-------------------------------------//
eLang.tz_strings = {};
eLang.tz_strings["STR_TZ0"]
eLang.tz_strings["STR_TZ1"]
eLang.tz_strings["STR_TZ2"]
eLang.tz_strings["STR_TZ3"]
eLang.tz_strings["STR_TZ4"]
eLang.tz_strings["STR_TZ5"]
eLang.tz_strings["STR_TZ6"]
eLang.tz_strings["STR_TZ7"]
eLang.tz_strings["STR_TZ8"]
eLang.tz_strings["STR_TZ9"]
Sergnese Nicola 566/2002
= "(GMT-12:00)Eniwetok,Kwajalein";
= "(GMT-11:00)Midway Island, Samoa";
= "(GMT-10:00)Hawaii";
= "(GMT-09:00)Alaska";
= "(GMT-08:00)Pacific Time (US & Canada); Tijuana";
= "(GMT-07:00)Arizona";
= "(GMT-07:00)Mountain Time (US & Canada)";
= "(GMT-06:00)Central America";
= "(GMT-06:00)Central Time (US & Canada)";
= "(GMT-06:00)Mexico City";
Pagina 177 di 228
eLang.tz_strings["STR_TZ10"]
eLang.tz_strings["STR_TZ11"]
eLang.tz_strings["STR_TZ12"]
eLang.tz_strings["STR_TZ13"]
eLang.tz_strings["STR_TZ14"]
eLang.tz_strings["STR_TZ15"]
eLang.tz_strings["STR_TZ16"]
eLang.tz_strings["STR_TZ17"]
eLang.tz_strings["STR_TZ18"]
eLang.tz_strings["STR_TZ19"]
eLang.tz_strings["STR_TZ20"]
eLang.tz_strings["STR_TZ21"]
eLang.tz_strings["STR_TZ22"]
eLang.tz_strings["STR_TZ23"]
eLang.tz_strings["STR_TZ24"]
eLang.tz_strings["STR_TZ25"]
eLang.tz_strings["STR_TZ26"]
eLang.tz_strings["STR_TZ27"]
eLang.tz_strings["STR_TZ28"]
eLang.tz_strings["STR_TZ29"]
eLang.tz_strings["STR_TZ30"]
eLang.tz_strings["STR_TZ31"]
eLang.tz_strings["STR_TZ32"]
eLang.tz_strings["STR_TZ33"]
eLang.tz_strings["STR_TZ34"]
eLang.tz_strings["STR_TZ35"]
eLang.tz_strings["STR_TZ36"]
eLang.tz_strings["STR_TZ37"]
eLang.tz_strings["STR_TZ38"]
eLang.tz_strings["STR_TZ39"]
eLang.tz_strings["STR_TZ40"]
eLang.tz_strings["STR_TZ41"]
eLang.tz_strings["STR_TZ42"]
eLang.tz_strings["STR_TZ43"]
eLang.tz_strings["STR_TZ44"]
eLang.tz_strings["STR_TZ45"]
eLang.tz_strings["STR_TZ46"]
eLang.tz_strings["STR_TZ47"]
eLang.tz_strings["STR_TZ48"]
eLang.tz_strings["STR_TZ49"]
eLang.tz_strings["STR_TZ50"]
eLang.tz_strings["STR_TZ51"]
eLang.tz_strings["STR_TZ52"]
eLang.tz_strings["STR_TZ53"]
eLang.tz_strings["STR_TZ54"]
eLang.tz_strings["STR_TZ55"]
eLang.tz_strings["STR_TZ56"]
eLang.tz_strings["STR_TZ57"]
eLang.tz_strings["STR_TZ58"]
eLang.tz_strings["STR_TZ59"]
eLang.tz_strings["STR_TZ60"]
eLang.tz_strings["STR_TZ61"]
eLang.tz_strings["STR_TZ62"]
eLang.tz_strings["STR_TZ63"]
eLang.tz_strings["STR_TZ64"]
eLang.tz_strings["STR_TZ65"]
Sergnese Nicola 566/2002
= "(GMT-06:00)Saskatchewan";
= "(GMT-05:00)Bogota, Lima, Quito";
= "(GMT-05:00)Eastern Time (US & Canada)";
= "(GMT-05:00)Indiana (East)";
= "(GMT-04:00)Altantic Time (Canada)";
= "(GMT-04:00)Caracas, La Paz";
= "(GMT-04:00)Santiago";
= "(GMT-03:30)Newfoundland";
= "(GMT-03:00)Brasilia";
= "(GMT-03:00)Buenos Aires, Georgetown";
= "(GMT-03:00)Greenland";
= "(GMT-01:00)Azores";
= "(GMT-01:00)Cape Verde Is.";
= "(GMT)Casablanca, Monrovia";
= "(GMT)Greenwich Mean Time : Dublin, Edinburgh, Lisbon, London";
= "(GMT+01:00)Amsterdam, Berlin, Bern, Rome, Stockholm, Vienna";
= "(GMT+01:00)Belgrade, Bratislava, Budapest, Ljubljana, Prague";
= "(GMT+01:00)Brussels, Copenhagen, Madrid, Paris";
= "(GMT+01:00)Sarajevo, Skopje, Sofija, Vilnius, Warsaw, Zagrep";
= "(GMT+01:00)West Central Africa";
= "(GMT+02:00)Athens, Istanbul, Minsk";
= "(GMT+02:00)Bucharest";
= "(GMT+02:00)Cairo";
= "(GMT+02:00)Harare, Pretoria";
= "(GMT+02:00)Helsinki, Riga, Tallinn";
= "(GMT+02:00)Jerusalem";
= "(GMT+03:00)Baghdad";
= "(GMT+03:00)Kuwait, Riyadh";
= "(GMT+03:00)Moscow, St. Petersburg, Volgograd";
= "(GMT+03:00)Nairobi";
= "(GMT+03:30)Tehran";
= "(GMT+04:00)Abu Dhabi, Muscat";
= "(GMT+04:00)Baku, Tbilisi, Yerevan";
= "(GMT+04:30)Kabul";
= "(GMT+05:00)Ekaterinburg";
= "(GMT+05:00)Islamabad, Karachi, Tashkent";
= "(GMT+05:30)Calcutta, Chennai, Mumbai, New Delhi";
= "(GMT+05:45)Kathmandu";
= "(GMT+06:00)Almaty, Novosibirsk";
= "(GMT+06:00)Astana, Dhaka";
= "(GMT+06:00)Sri Jayawardenepura";
= "(GMT+06:30)Rangoon";
= "(GMT+07:00)Bangkok, Hanoi, Jakarta";
= "(GMT+07:00)Krasnoyarsk";
= "(GMT+08:00)Beijing, Chongqing, Hong Kong, Urumqi";
= "(GMT+08:00)Irkutsk, Ulaan Bataar";
= "(GMT+08:00)Kuala Lumpur, Singapore";
= "(GMT+08:00)Perth";
= "(GMT+08:00)Taipei";
= "(GMT+09:00)Osaka, Sapporo, Tokyo";
= "(GMT+09:00)Seoul";
= "(GMT+09:00)Yakutsk";
= "(GMT+09:30)Adelaide";
= "(GMT+09:30)Darwin";
= "(GMT+10:00)Brisbane";
= "(GMT+10:00)Canberra, Melbourne, Sydney";
Pagina 178 di 228
eLang.tz_strings["STR_TZ66"] = "(GMT+10:00)Guam, Port Moresby";
eLang.tz_strings["STR_TZ67"] = "(GMT+10:00)Hobart";
eLang.tz_strings["STR_TZ68"] = "(GMT+10:00)Vladivostok";
eLang.tz_strings["STR_TZ69"] = "(GMT+11:00)Magadan, Solomon Is., New Caledonia";
eLang.tz_strings["STR_TZ70"] = "(GMT+12:00)Auckland, Wellington";
eLang.tz_strings["STR_TZ71"] = "(GMT+12:00)Fiji, Kamchatka, Marshall Is.";
//----------------------------------------------------------------------------//
//----------------------------------------------------------------------------//
codice ui.js
//----------------------------------------------------------------------------//
// UI.JS include file
//----------------------------------------------------------------------------//
//
// // document.writeln("<script type='text\/javascript' src='../lib/eLang.js'><\/script>");
// document.writeln("<script type='text\/javascript' src='../lib/eExt.js'><\/script>");
// document.writeln("<script type='text\/javascript' src='../lib/sysfn.js'><\/script>");
// document.writeln("<script type='text\/javascript' src='../lib/eGUI.js'><\/script>");
// document.writeln("<script type='text\/javascript' src='../lib/security.js'><\/script>");
document.writeln("<script type='text\/javascript' src='../lib/xmit.js'><\/script>");
//
// document.writeln("<script type='text\/javascript' src='../lib/domapi/src/domapi.js'><\/script>");
//
// // Load global CSS
// document.writeln("<link type='text\/css' rel='stylesheet' href='../style/main.css'><\/script>");
gDebugShowElms=false;
gCXPDebug=false;
//
===================================================================
==========
// Bookmark Jump Tag Table - Use the tags to search for bookmarks in the code
//
===================================================================
==========
// Jump Tags - Description
// ----------------------------------------------------------------------------// 1176233654 - PROC - "addTableRow()"
// 1176238636 - PROC - "copyProps()"
// 1176238671 - PROC - "updateTreeSelection()"
// 1176305779 - PROC - "clearTable()"
//
//----------------------------------------------------------------------------//
// UI.JS include file
//----------------------------------------------------------------------------//
// NOTE: IE will give a script error about an invalid character if you
// attempt to include a script file that does not exist.
// Paths are included relative to the page loading them, typically in the
// \pages path.
document.writeln("<script type='text\/javascript' src='../lib/eLang.js'><\/script>");
document.writeln("<script type='text\/javascript' src='../lib/eExt.js'><\/script>");
Sergnese Nicola 566/2002
Pagina 179 di 228
// document.writeln("<script type='text\/javascript' src='../lib/sysfn.js'><\/script>");
// document.writeln("<script type='text\/javascript' src='../lib/eGUI.js'><\/script>");
// document.writeln("<script type='text\/javascript' src='../lib/security.js'><\/script>");
// document.writeln("<script type='text\/javascript' src='../lib/xmit.js'><\/script>");
// I removed the link to load DOMAPI, and moved it to the frameTree.html file since
// that is the only frame that uses it. There is no point in taking the load
// performance hit here if we don't need it, but I'll leave the link just in case.
// [BrandonB] 4/10/2007
// document.writeln("<script type='text\/javascript' src='../lib/domapi/src/domapi.js?theme=IBM'><\/script>");
//
// // Load global CSS
//document.writeln("<link type='text\/css' rel='stylesheet' href='../style/main.css'><\/script>");
// Little function to take an array of IDs and expose them
// in the global DOM. IDs should have a leading underscore,
// and they will be exposed without it, for example an ID of
// _txtStatus will be exposed globally as txtStatus
function exposeElms(array)
{
validateSession();
if(array.length){
for (var i=0;i<array.length;i++)
{
var actualElm=array[i].substr(1);
eval(actualElm+"=document.getElementById('"+array[i]+"');");
if (gDebugShowElms)
{
eval(actualElm+".style.backgroundColor='#ffdf00';");
// Color the
elms with yellow to show where they are
eval(actualElm+".style.border='1px dashed purple';");
// Color the
elms with yellow to show where they are
eval(actualElm+".title='"+actualElm+"';");
// Show the elms ID on
hover
}
}
}
updateHelpSection();
chkSidebar();
//addResizeListener();
}
this.document.onkeydown = function(e)
{
if(!e) e = window.event;
Sergnese Nicola 566/2002
Pagina 180 di 228
if(e.keyCode==116) //F5 Key = 116
{
top.g_userpressedF5 = true;
}
}
function chkSidebar()
{
if(top.frames["sidebar"].optioncontainer && top.frames["header"].hiliteSub)
{
top.frames["header"].hiliteSub();
}
else
{
setTimeout('chkSidebar()', 50);
}
}
/*
function addResizeListener()
{
if(top.mainFrame)
{
top.mainFrame.onresize = function()
{
var divs = top.mainFrame.document.getElementsByTagName('div');
var listgrid = null;
for(i=0;i<divs.length;i++)
{
if(divs[i].id.indexOf('GUID_')!=-1)
{
listgrid = divs[i];
break;
}
}
if(listgrid){
//listgrid.style.width = top.mainFrame.document.body.offsetWidth - 30;
listgrid.parentNode.removeChild(listgrid);
top.mainFrame.doInit();
}
}
}else
{
setTimeout('addResizeListener()', 100);
}
}
*/
function updateHelpSection()
{
if(top.frames["header"].gHelpOpen)
{
top.frames["header"].openHelp();
Sergnese Nicola 566/2002
Pagina 181 di 228
}
}
function validateSession()
{
if(window.location.href.indexOf('http')!=-1)
{
xmit.get({url:"/rpc/WEBSES/validate.asp",onrcv:validateSessResp, status:''});
}
}
var validateSessResp = function()
{
errcod = WEBVAR_JSONVAR_WEB_SESSION_VALIDATE.HAPI_STATUS;
if(errcod != 0)
{
top.glogout = 1;
top.location.href = "/sessionexpired.asp";
}
}
//______________________________________________________________________________
//==================================================================
============
//
addTableRow
//-----------------------------------------------------------------------------// Given a reference to a table, and an array of cells to write, this function
// will create a new TR element and fill it with the same number of
// TD elements as the array length. arg is an object whose properties I may
// need to expand upon as time goes by...
//
//
// Input
// ----// rTable - reference to a table
//
// arCells - array of strings to go into the cells
//
// oRowProps - object with properties to be applied to TR
// Ex: {align:'center'}
//
// arCellProps - array of objects with properties to be applied to each TD
// Ex1: to add a row that spans 4 columns, you only need one cell entry
//
with a colspan
//
[{colspan:4, style:{ textAlign:'left', fontWeight:'bold'}}]
// Ex2: to add centering and bold to each cell of a 3 column table
//
[ {style:{ textAlign:'left', fontWeight:'bold'}},
//
{style:{ textAlign:'left', fontWeight:'bold'}},
//
{style:{ textAlign:'left', fontWeight:'bold'}} ]
// Output
// -----// //
Author:BMB
Sergnese Nicola 566/2002
Pagina 182 di 228
//______________________________________________________________________________
//==================================================================
============
// Jump Tag 1176233654 [ PROC - "addTableRow()" ]
function addTableRow(rTable, arCells, arCellProps, oRowProps)
{
// First get ref to parent for appending rows - this could be the TABLE
// or TBODY
var p=rTable; // parent container is TABLE
var tb=rTable.getElementsByTagName("TBODY");
if (tb.length)
{
p=tb[0];
// parent container is TBODY, not TABLE
}
var xx=document.createElement("TR");
if (oRowProps!=undefined)
{
copyProps(xx,oRowProps);
}
for (var i=0;i<arCells.length;i++)
{
var yy=document.createElement("TD");
yy.noWrap=true;
var val=(arCells[i]==""?"&nbsp":arCells[i]);
if (arCellProps!=undefined)
{
if (arCellProps[i]!=undefined)
{
copyProps(yy, arCellProps[i]);
}
}
yy.innerHTML=val;
xx.appendChild(yy);
}
p.appendChild(xx);
}
//______________________________________________________________________________
//==================================================================
============
//
clearTable
//-----------------------------------------------------------------------------// Clears a table of all rows. Used for redrawing the table after a sort
// or filter operation
//
// Input
// ----// rTable - reference to table
//
// offset0Based - first row to start deleting. All rows below this one will
Sergnese Nicola 566/2002
Pagina 183 di 228
//
be clobbered. Used to preserve table header rows. Defaults
//
to 1 because typically this function will only be called for
//
dynamically updated tables, which will probably have a header row.
//
Pass 0 to kill all table rows.
//
// Output
// -----// //
//
Author:BMB
//______________________________________________________________________________
//==================================================================
============
// Jump Tag 1176305779 [ PROC - "clearTable()" ]
function clearTable(rTable, offset0Based)
{
var firstrow=(offset0Based==undefined?1:offset0Based);
// First get ref to parent for appending rows - this could be the TABLE
// or TBODY
var p=rTable; // parent container is TABLE
var tb=rTable.getElementsByTagName("TBODY");
if (tb.length)
{
p=tb[0];
// parent container is TBODY, not TABLE
}
// Get all the TRs (rows)
var aRows=p.getElementsByTagName("TR");
var numrows=aRows.length-firstrow;
for (var i=0;i<numrows;i++)
{
// When children are removed, they move down in the array so we keep
// removing from the same index
p.removeChild(aRows[firstrow]);
}
}
//______________________________________________________________________________
//==================================================================
============
//
copyProps
//-----------------------------------------------------------------------------//
// Copies all props of an object to another object. Only recurses into
// other objects. Mainly used for copying DOM based styles to other objects
//
// Input
// ----// target - target obj/property
//
// src - source object
//
// Output
// ------
Sergnese Nicola 566/2002
Pagina 184 di 228
// //
//
Author:BMB
//______________________________________________________________________________
//==================================================================
============
// Jump Tag 1176238636 [ PROC - "copyProps()" ]
function copyProps(target, src)
{
for (var i in src)
{
if (typeof src[i] =='object' )
{
copyProps(target[i],src[i]);
}
else
{
target[i]=src[i];
}
}
}
//______________________________________________________________________________
//==================================================================
============
//
updateTreeSelection
//-----------------------------------------------------------------------------// Selects a tree node
//
// Input
// ----// node - name of the tree node, as specified by the reference var the node
// was assigned to when instantiated.
//
// quiet - if true then don't click the node, just select it
//
// Output
// -----// //
//
Author:BMB
//______________________________________________________________________________
//==================================================================
============
// Jump Tag 1176238671 [ PROC - "updateTreeSelection()" ]
function updateTreeSelection(node, quiet)
{
var count=20;
checkTree();
function checkTree()
{
Sergnese Nicola 566/2002
Pagina 185 di 228
if (count)
{
if (top.gFrameTreeLoaded==true)
{
top.frames.frameTree.selectTreeNode(node, quiet);
}
else
{
count--;
setTimeout(checkTree,200);
}
}
else
{
alert("DEVERROR: Could not wait for tree frame to load");
}
}
}
//______________________________________________________________________________
//==================================================================
============
//
showWait
//-----------------------------------------------------------------------------//
//
// Input
// ----// enable //
// text //
// Output
// -----// //
//______________________________________________________________________________
//==================================================================
============
// Jump Tag 1119840669 [ Procedure Definition: showWait ]
function showWait(enable, text)
{
if ((text==undefined)||(text=="") )
{
text= eLang.getString('common',"STR_WAIT")
}
document.getElementById("wait").innerHTML=enable?text+"&nbsp;<img height=10
style='position:relative;top:1px' src='/res/wait.gif'>":"";
// wd=parent.headerFrame.document.getElementById("wait");
// wd.visibility=enable?'visible':'hidden';
// document.getElementById("wait").innerHTML=+"&nbsp;<img
src=/Applications/"+parent.gApplicationName+"/Graphics/wait.gif>":"";
}
Sergnese Nicola 566/2002
Pagina 186 di 228
//______________________________________________________________________________
//==================================================================
============
//
$
//-----------------------------------------------------------------------------//
//
// Input
// ----// HTMLElement ID //
// Output
// -----// HTMLElement //
//______________________________________________________________________________
//==================================================================
============
function $(id)
{
return document.getElementById(id);
}
//=======================================
if(debugWnd==undefined && gCXPDebug){
var debugWnd = window.open('','debugger','width=640, height=480, scrollbars=yes');
}
function _debug(str)
{
if(debugWnd == undefined || !gCXPDebug) return;
debugWnd.document.writeln("<br>=============================================
==============<br>");
debugWnd.document.writeln("<br>-----------------------------------------------------------<br>");
debugWnd.document.writeln("<br><b style='color:#009900'>Called from :
"+window.location.href+"</b><br>");
debugWnd.document.writeln("<i style='color:#0000CC'>Function Name: "+arguments.caller.name+'
<br><br> '+arguments.caller.toString()+"</i>");
debugWnd.document.writeln("<br>************************************************************<
br>");
debugWnd.document.writeln("<br>=============================================
==============<br>");
debugWnd.document.writeln(nl2br(str));
debugWnd.document.writeln("<br>=============================================
==============<br>");
}
function nl2br(str)
{
Sergnese Nicola 566/2002
Pagina 187 di 228
return str.replace(/\n/g,"<br>").replace(/\s/g,"&nbsp;");
}
var fnCookie = {
read: function(name)
{
var nameEQ = name + "=";
var ca = top.document.cookie.split(';');
for(var i=0;i < ca.length;i++) {
var c = ca[i];
while (c.charAt(0)==' ') c = c.substring(1,c.length);
if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
}
return null;
},
create: function(name, value)
{
top.document.cookie = name+"="+value+"; path=/";
},
erase: function(name)
{
//set old to delete it
top.document.cookie = name+"=; expires=Fri, 3 Aug 2001 20:47:11 UTC; path=/";
}
};
codice unittype_str.js
/****************************** Unit type codes ********************************/
//eLang.unittype_strings[UNIT TYPE CODE] = "UNIT TYPE";
/**************************************************************************************/
eLang.unittype_strings = new Array();
eLang.unittype_strings[0] = " ";
eLang.unittype_strings[1] = "degrees C";
eLang.unittype_strings[2] = "degrees F";
eLang.unittype_strings[3] = "degrees K";
eLang.unittype_strings[4] = "Volts";
eLang.unittype_strings[5] = "Amps";
eLang.unittype_strings[6] = "Watts";
eLang.unittype_strings[7] = "Joules";
eLang.unittype_strings[8] = "Coulombs";
eLang.unittype_strings[9] = "VA";
eLang.unittype_strings[10] = "Nits";
eLang.unittype_strings[11] = "lumen";
eLang.unittype_strings[12] = "lux";
eLang.unittype_strings[13] = "Candela";
eLang.unittype_strings[14] = "kPa";
eLang.unittype_strings[15] = "PSI";
eLang.unittype_strings[16] = "Newton";
eLang.unittype_strings[17] = "CFM";
eLang.unittype_strings[18] = "RPM";
eLang.unittype_strings[19] = "Hz";
eLang.unittype_strings[20] = "microsecond";
eLang.unittype_strings[21] = "millisecond";
eLang.unittype_strings[22] = "second";
eLang.unittype_strings[23] = "minute";
eLang.unittype_strings[24] = "hour";
eLang.unittype_strings[25] = "day";
Sergnese Nicola 566/2002
Pagina 188 di 228
eLang.unittype_strings[26] = "week";
eLang.unittype_strings[27] = "mil";
eLang.unittype_strings[28] = "inches";
eLang.unittype_strings[29] = "feet";
eLang.unittype_strings[30] = "cu in";
eLang.unittype_strings[31] = "cu feet";
eLang.unittype_strings[32] = "mm";
eLang.unittype_strings[33] = "cm";
eLang.unittype_strings[34] = "m";
eLang.unittype_strings[35] = "cu cm";
eLang.unittype_strings[36] = "cu m";
eLang.unittype_strings[37] = "liters";
eLang.unittype_strings[38] = "fluid ounce";
eLang.unittype_strings[39] = "radians";
eLang.unittype_strings[40] = "steradians";
eLang.unittype_strings[41] = "revolutions";
eLang.unittype_strings[42] = "cycles";
eLang.unittype_strings[43] = "gravities";
eLang.unittype_strings[44] = "ounce";
eLang.unittype_strings[45] = "pound";
eLang.unittype_strings[46] = "ft-lb";
eLang.unittype_strings[47] = "oz-in";
eLang.unittype_strings[48] = "gauss";
eLang.unittype_strings[49] = "gilberts";
eLang.unittype_strings[50] = "henry";
eLang.unittype_strings[51] = "millihenry";
eLang.unittype_strings[52] = "farad";
eLang.unittype_strings[53] = "microfarad";
eLang.unittype_strings[54] = "ohms";
eLang.unittype_strings[55] = "siemens";
eLang.unittype_strings[56] = "mole";
eLang.unittype_strings[57] = "becquerel";
eLang.unittype_strings[58] = "PPM (parts/million)";
eLang.unittype_strings[59] = " ";
eLang.unittype_strings[60] = "Decibels";
eLang.unittype_strings[61] = "DbA";
eLang.unittype_strings[62] = "DbC";
eLang.unittype_strings[63] = "gray";
eLang.unittype_strings[64] = "sievert";
eLang.unittype_strings[65] = "color temp deg K";
eLang.unittype_strings[66] = "bit";
eLang.unittype_strings[67] = "kilobit";
eLang.unittype_strings[68] = "megabit";
eLang.unittype_strings[69] = "gigabit";
eLang.unittype_strings[70] = "byte";
eLang.unittype_strings[71] = "kilobyte";
eLang.unittype_strings[72] = "megabyte";
eLang.unittype_strings[73] = "gigabyte";
eLang.unittype_strings[74] = "word (data)";
eLang.unittype_strings[75] = "dword";
eLang.unittype_strings[76] = "qword";
eLang.unittype_strings[77] = "line";
eLang.unittype_strings[78] = "hit";
eLang.unittype_strings[79] = "miss";
eLang.unittype_strings[80] = "retry";
eLang.unittype_strings[81] = "reset";
Sergnese Nicola 566/2002
Pagina 189 di 228
eLang.unittype_strings[82] = "overrun/overflow";
eLang.unittype_strings[83] = "underrun";
eLang.unittype_strings[84] = "collision";
eLang.unittype_strings[85] = "packets";
eLang.unittype_strings[86] = "messages";
eLang.unittype_strings[87] = "characters";
eLang.unittype_strings[88] = "error";
eLang.unittype_strings[89] = "correctable error";
eLang.unittype_strings[90] = "uncorrectable error";
codice xmit.js
//
===================================================================
==========
// Bookmark Jump Tag Table - Use the tags to search for bookmarks in the code
//
===================================================================
==========
// Jump Tags - Description
// ----------------------------------------------------------------------------// 1130445634 - PROC - "xmit.goajax()"
// 1130445659 - PROC - "xmit.getset()"
// 1130446077 - PROC - "xmit.showdebugWindow()"
// 1130446081 - PROC - "xmit.returnpath()"
// 1130446115 - PROC - "xmit.striptags()"
// 1130446124 - PROC - "xmit.encodespecial()"
// 1144877290 - PROC - "xmit.dumpHex()"
// 1150915376 - PROC - "xmit.get()"
// 1155222794 - PROC - "xmit.checkJSON()"
// 1168986635 - PROC - "xmit.debugOut()"
//
//----------------------------------------------------------------------------//
// DATA TRANSMISSION MODULE - XMIT.JS
//----------------------------------------------------------------------------//
// This file contains all routines used in client-server data transmission,
// including AJAX file requests and POST data methods for sending large amounts
// of data to a HAPI function.
// It is the collection of routines from sysfn and eExt modules, put in one
// place to help organize things.//
//
// Depends on: eExt.js - for debugging routine
//
eLang.js - for error message
//
//
// ERROR CODES: There are some error codes returned by the xmit module in the
// HAPI_STATUS field to indicate processing problems.
//
// 9998 - eval error
// 9997 - file not found
//
//
// [Brandon Burrell]
//----------------------------------------------------------------------------//
// HISTORY E-engine, D-debugger
// E2.0.0
// D2.0.0 - 011207 Made significant visual enhancements; added style sheet.
//
Added ability to show hex for any response call.
Sergnese Nicola 566/2002
Pagina 190 di 228
//
Added new numbering system Request X.Y where
X is the
//
total number of ajax calls (from upper frameset
down
//
to current page for example) and Y is the number
of calls
//
from the current page (ie when the xmit module
was loaded)
// E2.0.1 - 011607 - Made some changes to help eliminate memory leaks
// D2.0.1 - 011607 - Improved hex dump, added routines to dump debug data outside
//
of the ajax handler (to clean it up)
// D2.0.2 - 030807 - Made small addition to data block to allow spaces in between
//
tokens so they have a place to break across lines
(visual
//
change only in debug window)
// E2.0.2 - 031307 - Added ability to parse negative HAPI_STATUS
// E2.0.3 - 031407 - Added new global gAJAXAlertMissingASP to alert the user
//
when a request is made for a missing ASP file.
This only
//
applies to ASPs...
//----------------------------------------------------------------------------//
var AJAXDEBUGGERVER="D2.0.2"
var AJAXENGINEVER="E2.0.2"
var xmit={};
ajaxdatareqcount=0;
// Global counter that simply increments to give unique IDs
// to ajax objects
//______________________________________________________________________________
//==================================================================
============
//
xmit.goajax
//-----------------------------------------------------------------------------// AJAX OBJECT CONSTRUCTOR
//
// DO NOT CALL THIS FUNCTION DIRECTLY, USE GET OR GETSET, which will ensure
// that a NEW operator is used when creating sequential calls. This is to make
// sure they don't collide.
//
//
// Input
// ----//
.url = url of requested file
// .optarg = optional argument for use in the onrec handler
// .onrcv = reference to receive handler function, will be called when data has returned
//
//
onrcv is called with the following parameters:
//
timeout = true/false to indicate the operation timed out. You can also still
//
use a separate function but this is easier.
//
url
= url of the requested file
//
xmitid = a unique id assigned to each data transaction. Just used for
//
identifying objects.
//
optarg = optional argument for error display purposes
//
// .timeout = value in seconds to wait for timeout
Sergnese Nicola 566/2002
Pagina 191 di 228
// .async = type of call to use, true=use asynch, false=sync. I don't recommende
//
using this input, but I added support for it anyway.
//
//
// .username = username (optional)
// .password = password (optional)
//
//
// *** NOTE ***
// *** NOTE ***
// *** NOTE ***
//
// If you specify a path at all in the url, this function will take the exact
// path you specify. Otherwise, it will construct a path to the application's
// RPC directory, and then based on gRPCpath.
//
// Examples:
// If arg.url =
//
"getusers.asp" then the proper app path+rpc path will be constructed,
//
ie /Applications/<appname>/RPC/getusers.asp
// "/getusers.asp" then it will look in the webroot for the file
//
// Essentially, if there is a slash ANYWHERE in the url, it will use that
// path explicitely
//
//-------------------------------------//
// There are two ways to make successive goajax calls :
// 1) make each call in the response handler of the previous call (ie chain them)
// 2) Make sure you put NEW when you declare an xmit.ajax object so a new
// instance is created. Otherwise they will collide!
//
// Methods
// ------// .add(name, value) = add a name and value hidden input control to url/form
// .send() = triggers send function of XMLHttpRequest object
//
//
//
// Output
// -----// //
//____________________________________________________________________Author:BMB
//==================================================================
============
// Jump Tag 1130445634 [ PROC - "xmit.goajax()" ]
xmit.goajax = function(arg)
{
var datapath=xmit.returnpath(arg.url);
this.url = datapath;
// Fully qualified url with data
this.data="";
// Keeps running data for GET/POST
this.urlorg = arg.url;
// Keep copy of file path requested
this.onrcv = arg.onrcv;
this.timeoutvaluems=arg.timeout==undefined?60000:arg.timeout*1000;
// converted to milliseconds
this.ontimeout = arg.ontimeout==undefined?arg.onrcv:arg.ontimeout;
Sergnese Nicola 566/2002
Pagina 192 di 228
this.optarg=(arg.optarg==undefined?"":arg.optarg);
// User argument to pass to receive
handler
this.async=arg.async==undefined?true:arg.async; // true=async, false=sync
this.errState=0;
this.method="GET";
this.username=arg.username==undefined?"":arg.username;
this.password=arg.password==undefined?"":arg.password;
this.postdata=arg.postdata==undefined?null:arg.postdata;
this.get="";
// Debugging string
// var dt=new Date();
// this.idnum=dt.getUTCMilliseconds()+ajaxdatareqcount++; // just a unique id numer
this.idnum=ajaxdatareqcount++;
if (top.gDebugwindowReqID==undefined)
{
top.gDebugwindowReqID=0;
}
this.totidnum=top.gDebugwindowReqID++;
this.evalit=arg.evalit==undefined?true:arg.evalit;
//-------------------------------------//
// xmit.add()
//-------------------------------------//
this.add = function(name, val)
{
if (/^false$/.test(val))
{
alert(name+" is \"false\" instead of 0")
}
if (/^true$/.test(val))
{
alert(name+" is \"true\" instead of 1")
}
if (parent.gAJAXDebug==true)
{
if (typeof(val)=='string')
{
var valshow=xmit.striptags(val);
}
else
{
Sergnese Nicola 566/2002
Pagina 193 di 228
valshow=val;
}
// Dont add szContent keys for file writes unless gAJAXDebugShowPOST is defined
if (parent.gAJAXDebugShowPOST==true)
{
this.get+="<b>"+name+"</b> ="+valshow+"<br>";
}
else
{
// Don't want to show actual data, but do want to snag any other data vars
if (/szContent/.exec(name)==null)
{
this.get+="<b>"+name+"</b> = "+valshow+"<br>";
}
}
}
// Keep running string of all data, regardless of GET or POST
this.data=(this.data==""?
(name+"="+xmit.encodespecial(val)):this.data+"&"+name+"="+xmit.encodespecial(val));
}
//-------------------------------------//
// xmit.send()
//-------------------------------------//
this.send = function()
{
// Check for data length OR any non-alphanums in the data. If so use POST.
if ( ((this.url+this.data).length>512) ||(/[^_a-zA-Z0-9]/.exec(this.data)!=null))
{
// Use POST method
this.method="POST";
this.postdata=this.data;
if (parent.gAJAXDebugShowPOST==false)
{
this.get+="<br><i>Input data may be too large to show for POST method,
set \"gAJAXDebugShowPOST=true\" to override</i>";
}
}
else
{
// GET method, put data in URL
this.method="GET";
this.data=(this.data);
this.url=(this.data==""?this.url:this.url+"?"+this.data);
this.postdata=null;
}
//-------------------------------------//
xmit.debugOut(this, "SEND");
// Third arg : true=async, false=sync
this.xmldoc.open(this.method, this.url, this.async, this.username, this.password);
if (this.method=='POST')
Sergnese Nicola 566/2002
Pagina 194 di 228
{
this.xmldoc.setRequestHeader("Content-type", "application/x-www-formurlencoded");
this.xmldoc.setRequestHeader("Content-length", this.postdata.length);
this.xmldoc.setRequestHeader("Connection", "close");
}
// If posting data, it is a string of name/value pairs, as in "myvar1=123&myvar2=345"
this.xmldoc.send(this.postdata);
}
//----------------------------------------------------------------------------//
// This function is called from event and timeout handlers (ie 'THIS' will
// not be correct, so parent object reference must be given via the
// datao parameter. [BrandonB] 8/18/2005
//----------------------------------------------------------------------------//
this.ajaxhandler=function(datao)
{
var hapivalerrmsg="";
if ( (datao.xmldoc.readyState==4)&&(datao.errState!=99))
{
//-------------------------------------//
// Operation is complete, process the data
//-------------------------------------//
clearTimeout(datao.timeout);
var docerror=false;
// These vars represent the actual text received...
// datatxt is the raw response, and datatxtafter is the processed
// data (if needed).
var datatxt=datao.xmldoc.responseText;
//[email protected]
// action : check for session timeout purpose
//Status get HTML page due to serverside
redirection of page to sessionexpired.asp
//That causes the expecting json record to be
shown as script error also there is no action from client side after that.
//So we check if it is valid here if not we move it to
login page
// caution : If the return record is not of json
format then its moved to login page
if(datatxt.match('<html>') && (datatxt.match('expired') ||
datatxt.match('Access Denied')))
{
//we don't want to call session expired again if it is
logout page.
if(datao.url.indexOf('logout.asp')==-1)
{
top.glogout=1;
top.location.href = "/sessionexpired.asp";
}
}
var datatxtafter=xmit.checkJSON(datatxt);
Sergnese Nicola 566/2002
Pagina 195 di 228
var hapismatch=/(HAPI_STATUS[ \t"]*:[ \t]*([\-0-9]+))/.exec(datatxtafter);
var hapival=null;
if (hapismatch!=null)
{
hapival=hapismatch[2]/1;
}
else
{
try{
if (datao.xmldoc.status!=200)
{
docerror=true;
var bIsASPfile=/\.asp/.test(datao.url);
// Process possible error situations here, and set codes
if (datao.xmldoc.status==404)
{
hapival=9997;
hapivalerrmsg="File ["+datapath+"] was not found
<br>AJAX Status:("+datao.xmldoc.status+":"+datao.xmldoc.statusText+")";
}
if (parent.gAJAXAlertMissingASP==true)
{
alert("DEVELOPER ERROR: ASP File ["+datapath+"]
was not found");
}
}
}catch(e)
{
//do nothing
//this try statement was introduced for unknown exception thrown
//by mozilla when datao.xmldoc has no return html status
}
}
xmit.debugOut(this, "REC", datatxt, hapival, hapivalerrmsg);
// If I get a hapival of 7001-7009, then something is wrong with the session.
// Go ahead and throw an exception to handle it.
if ( (hapival>=7000)&&(hapival<=7009))
{
// Handler for session errors thrown by HAPI codes 7001-7009
xmit.alertError(hapival);
if (parent.application_sessionTimedOut!=undefined)
{
parent.application_sessionTimedOut(hapival); // Call timeout
handler
// For mem leak issues, mark for garbage collection
// [BrandonB] 1/16/2007
datao.xmldoc=null;
datao.onrcv=function(){};
return;
}
}
Sergnese Nicola 566/2002
Pagina 196 di 228
// This will eval the response text and place it into the DOM.
// If the response contains variables with no VAR definition, it will be placed
// in the global scope (for example, HAPI ASP files, or string files).
// If the response contains any code, it will execute HERE, in this
// function's scope. Likewise any function definitions will exist only
// within this function's scope.
// So, if you want to use ajax to load a file with function definitions,
// use the readFromFile function, and in the response handler
// eval(RPC_FILEREAD.szContent) to place its contents into the DOM
// at THAT scope.
if ( (datao.evalit==true)&&(docerror==false))
{
try
{
eval(datatxtafter);
xmit.debugOut(this, "EVALOK");
}
catch(err)
{
NOTE: The code within this catch is only executed under debug
conditions to prevent errors being thrown
when the user navigates away from a page that is loading a large
RPC data payload. In this case, the JSON structure may be
incomplete and malformed, but since we are navigating away we
don't care.
The disadvantage to this is that we won't know the structure is
invalid if it is malformed due to errors with the server macro
code.
xmit.debugOut(this, "EVALOK", datatxtafter);
//
//
//
//
//
//
//
//
//
if (parent.gAJAXJSONEvalDebug)
{
alert("An error occurred when trying to interpret data from
the server! \nURL:"+datao.url+" --- \nERR:"+err);
// Go ahead and call response handler
datatxtafter="";
hapival=9998; // Eval error
datao.onrcv({timeout:false,
url:datao.url,
id:datao.idnum,
optarg:datao.optarg,
data:"",
dataraw:"",
status:datao.xmldoc.status,
statustext:datao.xmldoc.statusText,
HAPI_STATUS:9998})
}
Sergnese Nicola 566/2002
Pagina 197 di 228
// Do this inside of catch...
// For mem leak issues, mark for garbage collection
// [BrandonB] 1/16/2007
datao.onrcv=function(){};
datao.xmldoc=null;
}
}
datao.onrcv({timeout:false,
url:datao.url,
id:datao.idnum,
optarg:datao.optarg,
data:datatxtafter,
dataraw:datatxt,
HAPI_STATUS:hapival,
status:datao.xmldoc.status,
statustext:datao.xmldoc.statusText
})
// For mem leak issues, mark for garbage collection
// [BrandonB] 1/16/2007
datao.xmldoc=null;
datao.onrcv=function(){};
}
else
{
if (datao.errState==99)
{
// Here, I must check the readystate first to see if it has
// already completed (state=4) If not, abort the ajax request.
// Note that doing so will cause the handler to fire again with
// readystate=4, which is why I must check it...otherwise I
// get stuck in a loop. [BrandonB] 1/27/2006
if (datao.xmldoc.readyState!=4)
{
datao.xmldoc.abort();
}
else
{
xmit.debugOut(this, "TIMEOUT");
datao.onrcv({timeout:true,
url:datao.url,
id:datao.idnum,
optarg:datao.optarg,
data:null,
dataraw:datatxt,
HAPI_STATUS:9999,
status:datao.xmldoc.status,
statustext:datao.xmldoc.statusText
});
}
Sergnese Nicola 566/2002
Pagina 198 di 228
// For mem leak issues, mark for garbage collection
// [BrandonB] 1/16/2007
datao.xmldoc=null;
datao.onrcv=function(){};
}
}
}
//-------------------------------------//
// Init
//-------------------------------------//
if (window.XMLHttpRequest)
{
this.xmldoc= new XMLHttpRequest();
// branch for IE/Windows ActiveX version
}
else
{
if (window.ActiveXObject)
{
this.xmldoc= new ActiveXObject("Microsoft.XMLHTTP");
}
}
if (this.xmldoc)
{
// create some references to the parent object so 'this' pointer
// will be correct inside handlers
var t=this;
this.xmldoc.onreadystatechange = function()
{
t.ajaxhandler(t);
}
this.timeout=setTimeout(function()
{
t.errState=99;
t.ajaxhandler(t);
},this.timeoutvaluems);
}
if (parent.gSessionCheck==true)
{
if (!parent.application_checkSessionValid())// Call app.js function to check valid session
{
parent.gSessionCheck=false;
// Let login page reload!
this.send=parent.application_sessionTimedOut;
}
}
return this;
}
//______________________________________________________________________________
//==================================================================
============
//
xmit.debugOut
Sergnese Nicola 566/2002
Pagina 199 di 228
//-----------------------------------------------------------------------------// Single entry point for output to debug window. Just makes the
// actual ajax handler a bit cleaner.
//
// Input
// ----// dataob //
// phase //
// datatxt //
// hapival //
// hapimsg //
// Output
// -----// //
//
Author:BMB
//______________________________________________________________________________
//==================================================================
============
// Jump Tag 1168986635 [ PROC - "xmit.debugOut()" ]
xmit.debugOut=function(dataob, phase, datatxt, hapival, hapimsg)
{
if (parent.gAJAXDebug==true)
{
// Show all response data regardless of file type (string files, help files, etc)
var bAJAXDebugShowAllResponseData =
(parent.gAJAXDebugShowAllResponseData==undefined)?false:parent.gAJAXDebugShowAllResponseData;
// Just show data from .asp files
var bAJAXDebugShowOnlyASPResponseData =
(parent.gAJAXDebugShowOnlyASPResponseData==undefined)?
false:parent.gAJAXDebugShowOnlyASPResponseData;
var output="";
switch (phase)
{
//-------------------------------------//
case "SEND":
var data=dataob.get==""?"None":dataob.get;
var databg=dataob.data==""?"":"sendBlockData";
output="<div class='sendBlock' ><div class='sendBlockTitle'>Request #"+
(dataob.totidnum+1)+"."+(dataob.idnum+1)+
") --- From: "+window.name+" ["+location.pathname+"]
METHOD:"+dataob.method+"</div>"+
"<div
class='sendBlockDataInputs'><b><u>File</u></b><br>"+
"<b>Original URL :</b> "+dataob.urlorg+
"<br>"+
"<b>Converted URL :</b> "+dataob.url+
"<p><b><u>Data</u></b><br><div class='"+databg+"'>"+
dataob.data.replace(/&/g," & ")+ // give data tokens a
place to break
Sergnese Nicola 566/2002
Pagina 200 di 228
"</div></div></div>";
break;
//-------------------------------------//
case "REC":
var rettextsnippet=datatxt;
var bIsASPfile=/\.asp/.test(dataob.url);
if ( (bAJAXDebugShowAllResponseData==false) ||
( (bAJAXDebugShowAllResponseData==true)&&(bAJAXDebugShowOnlyASPResponseData==true)&&(!
bIsASPfile)) )
{
if (datatxt.length>150)
{
rettextsnippet=datatxt.substr(0,150)+"......... (truncated, set
gAJAXDebugShowAllResponseData=true to override)";
}
}
if (!(/[^\n\r\s]/g.test(rettextsnippet)))
{
rettextsnippet="(File has no text)";
}
else
{
rettextsnippet=xmit.striptags(rettextsnippet);
}
//-------------------------------------//
// Set up hapi status
//-------------------------------------//
var hapistatusmsg="<p><div class='hapinone'>*** (NO HAPI STATUS)
***</div>";
if (hapival!=null)
{
var hvstyle="hapiok";
if (hapival!=0)
{
hvstyle="hapierror";
}
hapistatusmsg="<p><div class='"+hvstyle+"'>"+
"HAPI_STATUS = "+hapival+
"<span class='hapierrordesc'>"+
(hapimsg==""?"":"<br>"+hapimsg)+
"</span>"+
"</div>";
}
hapistatusstr="<p><table width='99%' border='0'><tbody><tr>"+
"<td width='40%'>&nbsp;</td>"+
"<td align='right'>"+
hapistatusmsg+
"</td></tr></tbody></table>";
//-------------------------------------//
// Show rec debug window
//-------------------------------------//
var bgASP=bIsASPfile?"recBlockDataASP":"recBlockDataNonASP";
var hexbutton="";
var dhex="";
Sergnese Nicola 566/2002
Pagina 201 di 228
if (parent.gAJAXDebugShowHex)
{
dhex="<div class='recBlockHexDump' id='hexdiv"+
(dataob.totidnum+1)+"_"+(dataob.idnum+1)+"' >"+
xmit.dumpHex(datatxt)+"</div>";
hexbutton="<input type=button
onclick=javascript:document.getElementById('hexdiv"+
(dataob.totidnum+1)+"_"+(dataob.idnum+1)+
"').style.display='block' value='Show hex' />";
}
output="<div class='recBlock'><div class='recBlockTitle'>Request #"+
(dataob.totidnum+1)+"."+(dataob.idnum+1)+
") --- <span class='recBlockTitleRecMsg'>Received (<span
style='color:black;font-weight:normal'>"+
dataob.url+
"</span>) <br>From: "+
window.name+
" ["+
location.pathname+"]</span></div>"+
"<br><br><div class='"+bgASP+"'>"+rettextsnippet+
"</div>"+
hexbutton+
dhex+
hapistatusstr+
"</div>";
break;
//-------------------------------------//
case "EVALOK":
output="<div class='recBlockEvalSuccess'><div
class='recBlockEvalSuccesstitle'>Request #"+
(dataob.totidnum+1)+"."+(dataob.idnum+1)+
") --- <span class='recBlockEvalSuccesstitleMsg'>Eval Succeeded
On File: "+
"<span style='color:black;font-weight:normal'>"+
dataob.url+
"</span>"+
"<br>From: "+window.name+"
["+location.pathname+"]</span></div></div>";
break;
//-------------------------------------//
case "EVALFAIL":
var hex="";
if (parent.gAJAXDebugShowHex==true)
{
// Show hex dump of data
hex="<p><h2>Data Dump:</h2><div
class='recBlockEvalFileHexDump'><pre>"+xmit.dumpHex(datatxt)+"</pre></div>";
}
output="<div class='recBlockEvalFail'><div
class='recBlockEvalFailtitle'>Request #"+
(dataob.totidnum+1)+"."+(dataob.idnum+1)+
") --- <span class='recBlockEvalFailtitleMsg'>EVAL FAILED On
File: "+
"<span style='color:yellow;font-weight:normal'>"+
dataob.url+
Sergnese Nicola 566/2002
Pagina 202 di 228
"</span>"+
"<br>From: "+window.name+"
["+location.pathname+"]</span></div>"+hex+"</div>";
break;
//-------------------------------------//
case "TIMEOUT":
output="<div class='recBlockTimeout'>Request #"+
(dataob.totidnum+1)+"."+(dataob.idnum+1)+
") --- TIMED OUT "+
"<div class='recBlockTimeouttitle'> for File: "+
dataob.url+
"<br>From: "+window.name+" ["+location.pathname+"]"+
"<br>Timer Setting: "+(dataob.timeoutvaluems/1000)+"seconds"+
"</div></div>";
break;
default:
break;
}
xmit.showdebugWindow(output);
}
}
xmit.gwgetsetFlash=function(functionname, varname, onrechandler)
{
xmit.gwgetset(functionname, "libifc_flasher.so.1.0", varname, onrechandler);
}
xmit.gwgetsetLDAP=function(functionname, varname, onrechandler)
{
xmit.gwgetset(functionname, "libifc_ldap", varname, onrechandler);
}
xmit.gwgetsetIPMI=function(functionname, varname, onrechandler)
{
xmit.gwgetset(functionname, "libifc_ipmi", varname, onrechandler);
}
xmit.gwgetsetUser=function(functionname, varname, onrechandler)
{
xmit.gwgetset(functionname, "libifc_userm", varname, onrechandler);
}
xmit.gwgetset=function (functionname, library, varname, onrechandler)
{
var arg={url:"/RPC/ajaxgw.asp", onrcv:onrechandler, varname:varname};
var tempdata=new xmit.goajax(arg);
tempdata.add("FUNCTION",functionname);
tempdata.add("LIB",library);
tempdata.add("FUNCTION",functionname);
tempdata.send();
Sergnese Nicola 566/2002
Pagina 203 di 228
}
//______________________________________________________________________________
//==================================================================
============
//
xmit.get
//-----------------------------------------------------------------------------//
// Simple abstracted function that just gets a file. Only difference is that
// there is no data, and I do the send() here instead of requiring the UI code
// to do it.
//
// Input
// ----// arg - args that would be passed to goajax
//
// Output
// -----// //
//____________________________________________________________________Author:BMB
//==================================================================
============
// Jump Tag 1150915376 [ PROC - "xmit.get()" ]
xmit.get= function(arg)
{
var tempdata=new xmit.goajax(arg);
tempdata.send();
delete tempdata;
}
//______________________________________________________________________________
//==================================================================
============
//
xmit.getset
//-----------------------------------------------------------------------------// Generic routine to get data that needs to have some parameters set first.
//
// Input
// ----// arg - args that would be passed to goajax
//
// Output
// -----// //
//____________________________________________________________________Author:BMB
//==================================================================
============
// Jump Tag 1130445659 [ PROC - "xmit.getset()" ]
xmit.getset= function(arg)
{
var tempdata=new xmit.goajax(arg);
return tempdata;
Sergnese Nicola 566/2002
Pagina 204 di 228
}
//______________________________________________________________________________
//==================================================================
============
//
xmit.returnpath
//-----------------------------------------------------------------------------// Translates the given url to the appropriate path based on state of settings.js
// NOTE: This is only done for .asp files...all other extensions pass through
// unaltered.
//
// Input
// ----// url //
// Output
// -----// //
//____________________________________________________________________Author:BMB
//==================================================================
============
// Jump Tag 1130446081 [ PROC - "xmit.returnpath()" ]
xmit.returnpath=function(url)
{
var exclusionlist=
[
"fileread.asp",
"filecopy.asp",
"filedelete.asp",
"filewrite.asp",
"fileio_copydirectory.asp",
"fileio_createdirectory.asp",
"fileio_deletedirectory.asp",
"FILEIO_LISTDIRCONTENT.asp",
"fileio_listsubdirectories.asp",
"filewritepart.asp"
]
var datapath=url;
// This regex will break apart the url into path, filename and extension.
// [BrandonB] 10/31/2006
var res=/([\/\\]*?[\w\/\\]*?[\\\/]*?)([\w]*\.([\w]{1,4}))/i.exec(datapath);
if (res==null)
{
alert("ERROR [xmit.returnpath] - cannot process path for data req");
return;
}
// Now, res[1] is the path (if any)
//
res[2] is the filename
//
res[3] is the extension
var path=res[1];
var fname=res[2];
Sergnese Nicola 566/2002
Pagina 205 di 228
var extn=res[3];
var offln="";
if (parent.gRPCOffline!=undefined)
{
offln=(parent.gRPCOffline?"offline/":"");
}
// Check exclusion list. We can't fake file reads, for example, with
// offline data.
for (var i=0;i<exclusionlist.length;i++)
{
if (fname.toLowerCase()==exclusionlist[i].toLowerCase())
{
return datapath;
}
}
//-------------------------------------//
// First check for .asp files, if not
// then just return
//-------------------------------------//
if (extn!="asp")
{
return datapath;
}
else
{
// Now, see if there is a leading slash, which indicates a hardcoded
// path (such as root RPC).
if ( (/^[\/\\]/.test(path))||(parent.gAppPath==undefined))
{
// There is a leading slash, or there is no app path
datapath=
path+
offln+
fname;
}
else
{
// There is no leading slash, so base whatever is given on the
// application's RPC path
datapath=
parent.gAppPath+
'/RPC/'+
path+
offln+
fname;
}
}
return datapath;
}
//______________________________________________________________________________
Sergnese Nicola 566/2002
Pagina 206 di 228
//==================================================================
============
//
xmit.showdebugWindow
//-----------------------------------------------------------------------------//
//
// Input
// ----// dwcontent - content to display
//
// Output
// -----// //
//____________________________________________________________________Author:BMB
//==================================================================
============
// Jump Tag 1130446077 [ PROC - "xmit.showdebugWindow()" ]
var debugwindowstackhd="<html><head><title>AJAX Debugging Window</title>"+
"<style>pre{font-size:12px}</style>"+
"<link href='/GUISE/xmit.css' rel='stylesheet' type='text/css'></head>"+
"<body><H2>AJAX Debug Window</H2><h3>Debugger Version:"+AJAXDEBUGGERVER+",
Engine Version: "+AJAXENGINEVER+"<br>BrandonB</h3>";
var debugwindowstack="";
var debugwindowstackft="<hr><center>"+
"<button onclick='javascript:window.opener.parent.gDebugwindowstack=\"\";"+
"window.opener.parent.gDebugwindowReqID=0;window.opener.parent.xmit.showdebugWindo
w(\"\")'>Clear Debugger History</button>"+
"</center></body></html>";
var windowpointerle=null;
// var gDebugwindowstack="";
// Changes this to clear debugger stack with every page load
// because it makes the window
faster. [BrandonB] 1/11/2007
xmit.showdebugWindow=function(dwcontent)
{
var w=600;h=800;
// var isdebugwindowopen= windowpointerle==null?false:!windowpointerle.closed;
windowpointerle=window.open("","ajaxdbwin0","height="+h+",width="+w+",resizable,scrollbars");
if (windowpointerle)
{
windowpointerle.document.open();
// Just use local global instead of trying to create one in the parent so
// stack gets cleared whenever xmit is loaded. [BrandonB] 1/11/2007
if (top.gDebugwindowstack==undefined)
{
top.gDebugwindowstack=dwcontent;
}
else
{
top.gDebugwindowstack+=dwcontent;
}
Sergnese Nicola 566/2002
Pagina 207 di 228
//
top.gDebugwindowstack+=dwcontent;
//
var runningstack=top.gDebugwindowstack;
var runningstack=gDebugwindowstack;
windowpointerle.document.write(debugwindowstackhd+runningstack+debugwindowstackft);
windowpointerle.document.close();
windowpointerle.scrollTo(0,999999999);
windowpointerle.focus();
// This will pull the debug window to the front
//
windowpointerle.opener.focus(); // Put focus back to opening window to keep debug win from stealing
input focus
}
else
{
alert("Cannot create debug window");
}
}
//______________________________________________________________________________
//==================================================================
============
//
xmit.striptags
//-----------------------------------------------------------------------------// Converts tags from any file read to HTML displayable form (ie so I can
// see the tags instead of having them interpreted).
//
//
// Input
// ----// text //
// Output
// -----// //
//____________________________________________________________________Author:BMB
//==================================================================
============
// Jump Tag 1130446115 [ PROC - "xmit.striptags()" ]
xmit.striptags=function(text)
{
text=text.replace(/</g,"&lt;").replace(/>/g,"&gt;");
text=text.replace(/\xd|\xa/g,"<br>");
// replace any newline (\n) sequences with <br> so text file streams
// will have a place to break
text=text.replace(/\\n/g,"<br>");
return text;
}
Sergnese Nicola 566/2002
Pagina 208 di 228
//______________________________________________________________________________
//==================================================================
============
//
xmit.encodespecial
//-----------------------------------------------------------------------------// Have to specially encode potentially troublesome characters in the value
// field for the name/value pairs when sending data to the server.
// These include ; / ? : @ & = + $ , #
//
//
// Input
// ----// value //
// Output
// -----// //
//____________________________________________________________________Author:BMB
//==================================================================
============
// Jump Tag 1130446124 [ PROC - "xmit.encodespecial()" ]
xmit.encodespecial=function(value)
{
if (typeof(value)=='string')
{
// MUST encode percent first, since that is the character used to encode
// everything else! I could include this in the one liner below but
// I want to do it explicely here for clarity. This will screw up
// source code badly if not done correctly. [BrandonB] 10/19/2005
value=value.replace(/%/g,"%25");
// Now just encode all other characters
value=value.replace(/\+/g,"%2B").replace(/&/g,"%26").replace(/#/g,"%23");
}
return value;
}
//----------------------------------------------------------------------------//
// File upload helpers
//----------------------------------------------------------------------------//
// xmit.prepareUpload=function()
// {
//
// var felm=document.getElementById('secretuploadframe');
// if (felm==null)
//
{
Sergnese Nicola 566/2002
Pagina 209 di 228
//
var z=document.createElement('IFRAME');
//
z.id='secretuploadframe';
//
z.name=z.id;
//
if (0) // 1 to debug iframe
//
{
//
z.style.position='absolute';
//
z.style.border=1;
//
z.style.zIndex=999;
//
z.height=220;
//
z.width=220;
//
}
//
else
//
{
//
z.style.border=0;
//
z.height=0;
//
z.width=0;
//
}
//
document.body.appendChild(z);
//
}
// }
//
// Called from the upload response ASP file. Passes the return var as robj.
xmit.uploadResponse=function(robj)
{
if (robj.HAPI_STATUS!=0)
{
alert(eLang.getString("STR_UPLOAD_ERROR")+" : "+robj.HAPI_STATUS);
}
else
{
alert(eLang.getString("STR_UPLOAD_OK"));
}
}
//----------------------------------------------------------------------------//
//______________________________________________________________________________
//==================================================================
============
//
xmit.dumpHex
//-----------------------------------------------------------------------------// Takes a string and returns a hex-dump formatted string
//
// Input
// ----// inputstr //
// Output
// -----// //
//______________________________________________________________________________
//==================================================================
============
Sergnese Nicola 566/2002
Pagina 210 di 228
// Jump Tag 1144877290 [ PROC - "xmit.dumpHex()" ]
xmit.dumpHex=function(inputstr)
{
var slen=inputstr.length;
var dumpstr="";
var digitsvalue, digitsstr;
var leftside="", rightside="";
for (var i=0;i<slen/16;i++)
{
leftside="";rightside="";
for (var x=0;x<16;x++)
{
digitstr=inputstr.substr(i*16+x,1);
if (digitstr=="")
{
digitsvalue="..";
}
else
{
digitsvalue=digitstr.charCodeAt(0).toString(16);
if (digitsvalue.length==1)
{
digitsvalue="0"+digitsvalue;
}
switch (digitsvalue)
{
case "0d":
case "0a":
case "09":
digitstr=".";
break;
case "3c":
digitstr="&lt;";
break;
case "3e":
digitstr="&gt;";
break;
default:
break;
}
}
leftside+=digitsvalue+" ";
rightside+=digitstr + "";
}
dumpstr+=leftside+" ---- "+rightside+"<br>";
}
return dumpstr;
}
Sergnese Nicola 566/2002
Pagina 211 di 228
xmit.alertError=function(errnum)
{
// Error numbers for login are 7000+err index
errnum=parseInt(errnum)-7000;
var strerrcod="STR_LOGINERRORCODE_"+errnum;
if (eLang.strings[strerrcod]!= undefined)
{
alert(eLang.strings[strerrcod]);
}
else
{
if (erStr[errnum]!=undefined)
{
alert(erStr[errnum]);
}
else
{
alert("Unknown XMIT Session Error :"+errnum+7000);
}
}
}
//______________________________________________________________________________
//==================================================================
============
//
xmit.checkJSON
//-----------------------------------------------------------------------------// Function to do any parsing of the returned data (specifically JSON structures).
//
// Here, I attempt to search for and strip out any extraneous empty objects inside
// arrays that might be returned by older versions of the web server. The blank
// objects do NOT need to be there and will throw off the array item count.
// Invalid structures:
//
// Case 1:
// VAR={
//
MYVAR:[
//
{}
//
],HAPI_STATUS:0}
//
// Case 2:
// VAR={
//
MYVAR:[
//
{somedata:1, somemoredata:2},
//
{}
//
],HAPI_STATUS:0}
//
// In case 1,
// FROM -> {}],HAPI_STATUS
// TO -> ], HAPI_STATUS
//
// In case 2,
Sergnese Nicola 566/2002
Pagina 212 di 228
// FROM -> ,{}],HAPI_STATUS
// TO -> ], HAPI_STATUS
//
// In a nutshell, I am globally replacing any pattern of ,{}] or {}] with ]
//
//
[BrandonB] 8/10/2006
//
// Input
// ----// jsonstruc //
// Output
// -----// //
//
Author:BMB
//______________________________________________________________________________
//==================================================================
============
// Jump Tag 1155222794 [ PROC - "xmit.checkJSON()" ]
xmit.checkJSON=function(jsonstruc)
{
// Check for rogue commas for example:
// {prop:1,
// prop2:2, <-// }
// or
//
[ elm1,
//
elm2, <-//
]
if (/,[\r\n\s]*[\]}]/.test(jsonstruc))
{
alert("WARNING: XMIT AJAX module detected an extra comma after the last "+
"element in an array or object property list...please check and correct.");
}
return jsonstruc.replace(/(,[\r\n\s]*)?\{[\r\n\s]*\}[\r\n\s]*\][\r\n\s]*/g, "]");
}
// Strings to use when xmit module is being used outside of Castor...
var erStr=[];
erStr[1]="Invalid session. Please try logging in again.";
erStr[2]="Session timed out. Please log in again.";
erStr[3]="Maximum number of sessions already in use.";
erStr[4]="Invalid session. Please try logging in again.";
erStr[5]="Invalid session. Please try logging in again.";
erStr[6]="Invalid session. Please try logging in again.";
erStr[7]="Login failed. Plase try again.";
erStr[8]="Logged out. Please log in again to access the device."; //logged out properly and cookie is set to
logged out";
erStr[9]="Please log in to access the device.";
codice login.css
Sergnese Nicola 566/2002
Pagina 213 di 228
body{
background: url(../res/background.gif) #deded3;
margin:0px;
padding:0px;
}
.shadow{
width:400px;
height:150px;
text-align:left;
}
.shadow h3{
font-family:Arial;
font-size:1.1em;
}
.loginBox{
height:147px;
border:1px solid #888888;
color:#000000;
font-family:Arial;
font-size:12px;
background:#DEDED3;
padding:10px;
text-align:center;
}
.loginBox form{
margin:0px;
padding:0px;
}
label{
font-weight:bold;
padding-right:5px;
font-size:1.2em;
width:85px;
text-align:right;
}
#msglbl{
font-family:Tahoma;
font-size:11px;
}
.credits{
display:block;
float:right;
width:155px;
}
/*.button{
border:1px solid #343454;
Sergnese Nicola 566/2002
Pagina 214 di 228
background:#c0c0c9;
}*/
7.4
codice pagina e4
Codice pagina principale e4
Codice js_top_include_JW420P63_____________.js
INDREF_RSD_SUMMARY
= 0;
INDREF_ARRAY_PANEL
= 1;
INDREF_DM_STATUS
= 2;
INDREF_RSD_MOD_STATUS = 3;
INDREF_RSD_ARRAY
= 4;
INDREF_RSD_ARRAY_DRIVES = 5;
INDREF_RSD_PORT
= 6;
INDREF_RSD_DISPLAY_DRIVES= 7;
INDREF_RSD_DRIVE_ARRANGE = 8;
INDREF_RSD_ENV_TEMP = 9;
INDREF_RSD_ENV_FANS
= 10;
INDREF_RSD_ENV_POWER = 11;
INDREF_RSD_GEN_CONFIG = 12;
INDREF_NOTIFY
= 13;
INDREF_DFU
= 14;
INDREF_SYSTEM_PANEL = 15;
INDREF_NETVIEW
= 16;
INDREF_ENCLOSURES
= 17;
INDREF_SCHEDULER
= 18;
function checkForRefreshNeeded(pageAutoRefreshStatus, refreshCountersArray, paramAccessLevel,
refreshRate, deviceProgressStage)
{
var fr = top.frames[1]; // Content frame
var doc = top.remove_ZTime(fr.document.URL) ; // page URL in content frame
var fileName = getFileName(doc);
if ( fileName != top.contentFileName )
{
top.timeCount = 0;
}
top.contentFileName = fileName; // Save away so we can compare next time
var environRefresh;
var statsRefresh;
switch( refreshRate )
{
case 0:
statsRefresh = 30;
environRefresh = 45;
break;
case 1:
statsRefresh = 45;
environRefresh = 60;
break;
case 2:
statsRefresh = 60;
environRefresh = 90;
break;
Sergnese Nicola 566/2002
Pagina 215 di 228
}
var conditionalRefresh = 0; // No
var hardRefreshSeconds = 0; // Not used
var strFileName = new String(fileName);
var locPageName = strFileName;
if ( strFileName.indexOf("rsd_") != -1 )
{ // Monitor pages - apply refresh rules for each page
if ( fileName != "rsd_view_eventlog.html" )
{
if ( fileName == "rsd_summary.html" )
{
if ( top.refreshRsdSumCounter != refreshCountersArray[INDREF_RSD_SUMMARY] )
{
top.refreshRsdSumCounter = refreshCountersArray[INDREF_RSD_SUMMARY];
conditionalRefresh = 1;
}
else if ( top.refreshArrayPanelCounter != refreshCountersArray[INDREF_ARRAY_PANEL] )
{
top.refreshArrayPanelCounter = refreshCountersArray[INDREF_ARRAY_PANEL];
conditionalRefresh = 1;
}
else if (top.refreshDmStatusCounter != refreshCountersArray[INDREF_DM_STATUS])
{
top.refreshDmStatusCounter = refreshCountersArray[INDREF_DM_STATUS];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_chassis_view.html" )
{
if ( top.refreshRsdModStatusCounter != refreshCountersArray[INDREF_RSD_MOD_STATUS])
{
top.refreshRsdModStatusCounter = refreshCountersArray[INDREF_RSD_MOD_STATUS];
conditionalRefresh = 1;
}
else if (top.refreshDmStatusCounter != refreshCountersArray[INDREF_DM_STATUS])
{
top.refreshDmStatusCounter = refreshCountersArray[INDREF_DM_STATUS];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_array.html" )
{
if ( top.refreshArrayPanelCounter != refreshCountersArray[INDREF_ARRAY_PANEL] )
{
top.refreshArrayPanelCounter = refreshCountersArray[INDREF_ARRAY_PANEL];
conditionalRefresh = 1;
}
//document.write("top.refreshRsdArrayCounter="+top.refreshRsdArrayCounter+"u_refreshRsdArrayCounter="
+ refreshCountersArray[INDREF_RSD_ARRAY]);
if ( top.refreshRsdArrayCounter != refreshCountersArray[INDREF_RSD_ARRAY] )
{
top.refreshRsdArrayCounter = refreshCountersArray[INDREF_RSD_ARRAY];
conditionalRefresh = 1;
}
if ( top.refreshRsdArrayDrvsCounter != refreshCountersArray[INDREF_RSD_ARRAY_DRIVES] )
{
Sergnese Nicola 566/2002
Pagina 216 di 228
top.refreshRsdArrayDrvsCounter = refreshCountersArray[INDREF_RSD_ARRAY_DRIVES];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_port.html" )
{
if (top.refreshRsdPortCounter != refreshCountersArray[INDREF_RSD_PORT])
{
top.refreshRsdPortCounter = refreshCountersArray[INDREF_RSD_PORT];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_display_devices.html" )
{
if (top.refreshRsdDisDevsCounter != refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES] )
{
top.refreshRsdDisDevsCounter = refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_enclosure.html" )
{
if (top.refreshRsdDisDevsCounter != refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES] )
{
top.refreshRsdDisDevsCounter = refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES];
conditionalRefresh = 1;
}
else if (top.refreshRsdModStatusCounter != refreshCountersArray[INDREF_RSD_MOD_STATUS])
{
top.refreshRsdModStatusCounter = refreshCountersArray[INDREF_RSD_MOD_STATUS];
conditionalRefresh = 1;
}
else if (top.refreshEnclCounter != refreshCountersArray[INDREF_ENCLOSURES])
{
top.refreshEnclCounter = refreshCountersArray[INDREF_ENCLOSURES];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_enclosure_view.html" )
{
if (top.refreshRsdDisDevsCounter != refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES] )
{
top.refreshRsdDisDevsCounter = refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES];
conditionalRefresh = 1;
}
else if (top.refreshRsdModStatusCounter != refreshCountersArray[INDREF_RSD_MOD_STATUS])
{
top.refreshRsdModStatusCounter = refreshCountersArray[INDREF_RSD_MOD_STATUS];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_drive_arrange.html" )
{
if (top.refreshDmStatusCounter != refreshCountersArray[INDREF_DM_STATUS])
{
top.refreshDmStatusCounter = refreshCountersArray[INDREF_DM_STATUS];
Sergnese Nicola 566/2002
Pagina 217 di 228
conditionalRefresh = 1;
}
else if (top.refreshRsdDrvArrangeCounter != refreshCountersArray[INDREF_RSD_DRIVE_ARRANGE])
{
top.refreshRsdDrvArrangeCounter = refreshCountersArray[INDREF_RSD_DRIVE_ARRANGE];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_module_status.html" )
{
if (top.refreshDmStatusCounter != refreshCountersArray[INDREF_DM_STATUS])
{
top.refreshDmStatusCounter = refreshCountersArray[INDREF_DM_STATUS];
conditionalRefresh = 1;
}
else if (top.refreshRsdModStatusCounter != refreshCountersArray[INDREF_RSD_MOD_STATUS])
{
top.refreshRsdModStatusCounter = refreshCountersArray[INDREF_RSD_MOD_STATUS];
conditionalRefresh = 1;
}
else if (top.refreshEnclCounter != refreshCountersArray[INDREF_ENCLOSURES])
{
top.refreshEnclCounter = refreshCountersArray[INDREF_ENCLOSURES];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_dm_revision.html" )
{
if (top.refreshDmStatusCounter != refreshCountersArray[INDREF_DM_STATUS])
{
top.refreshDmStatusCounter = refreshCountersArray[INDREF_DM_STATUS];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_environ_temp.html" )
{
if (top.refreshRsdEnvTempCounter != refreshCountersArray[INDREF_RSD_ENV_TEMP])
{
top.refreshRsdEnvTempCounter = refreshCountersArray[INDREF_RSD_ENV_TEMP];
conditionalRefresh = 1;
hardRefreshSeconds = environRefresh;
}
}
else if ( fileName == "rsd_environ_fan.html" )
{
if (top.refreshRsdEnvFanCounter != refreshCountersArray[INDREF_RSD_ENV_FANS])
{
top.refreshRsdEnvFanCounter = refreshCountersArray[INDREF_RSD_ENV_FANS];
conditionalRefresh = 1;
hardRefreshSeconds = environRefresh;
}
}
else if ( fileName == "rsd_environ_power.html")
{
if (top.refreshRsdEnvPowerCounter != refreshCountersArray[INDREF_RSD_ENV_POWER])
{
Sergnese Nicola 566/2002
Pagina 218 di 228
top.refreshRsdEnvPowerCounter = refreshCountersArray[INDREF_RSD_ENV_POWER];
conditionalRefresh = 1;
hardRefreshSeconds = environRefresh;
}
}
else if ( fileName == "rsd_network.html" )
{
if (top.refreshDmStatusCounter != refreshCountersArray[INDREF_DM_STATUS])
{
top.refreshDmStatusCounter = refreshCountersArray[INDREF_DM_STATUS];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_gen_config.html" )
{
if (top.refreshDmStatusCounter != refreshCountersArray[INDREF_DM_STATUS])
{
top.refreshDmStatusCounter = refreshCountersArray[INDREF_DM_STATUS];
conditionalRefresh = 1;
}
else if (top.refreshRsdGenConfigCounter != refreshCountersArray[INDREF_RSD_GEN_CONFIG])
{
top.refreshRsdGenConfigCounter = refreshCountersArray[INDREF_RSD_GEN_CONFIG];
conditionalRefresh = 1;
}
}
else if ( fileName == "rsd_local_notification.html" )
{
if (top.refreshLnCounter != refreshCountersArray[INDREF_NOTIFY])
{
top.refreshLnCounter = refreshCountersArray[INDREF_NOTIFY];
conditionalRefresh = 1;
}
}
pageRefresh(hardRefreshSeconds, doc, conditionalRefresh, locPageName,
refreshCountersArray[INDREF_SYSTEM_PANEL], paramAccessLevel);
}
}
else if ( strFileName.indexOf("rstat_") != -1 ) // All statistics pages
{
if ( pageAutoRefreshStatus == "1" )
{ // stats reset not refreshed because it has auto-refresh = no
if (strFileName.indexOf("realtime") == -1 )
{ // Not realtime page - refresh
pageRefresh(statsRefresh, doc, conditionalRefresh, locPageName,
refreshCountersArray[INDREF_SYSTEM_PANEL], paramAccessLevel);
}
}
}
else if ( strFileName.indexOf("rarray_") != -1 )
{ // Is an array page
// +" " + refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES] + " " + top.refreshRsdDisDevsCounter );
if ( pageAutoRefreshStatus == "1" )
{ // Is an array page we want to refresh
if ( ( fileName == "rarray_drive_status.html" )
||( fileName == "rarray_status.html" )
Sergnese Nicola 566/2002
Pagina 219 di 228
||( fileName == "rarray_expand.html" )
||( fileName == "rarray_add_spare.html" )
||( fileName == "rarray_delete_spare.html" )
||( fileName == "rarray_pool_spare.html" )
||( fileName == "rarray_add_pool_spare.html" )
||( fileName == "rarray_delete_pool_spare.html" )
)
{ // Look for array and drive changes
if (top.refreshArrayPanelCounter != refreshCountersArray[INDREF_ARRAY_PANEL])
{
top.refreshArrayPanelCounter = refreshCountersArray[INDREF_ARRAY_PANEL];
conditionalRefresh = 1;
}
else if (top.refreshRsdDisDevsCounter != refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES] )
{
top.refreshRsdDisDevsCounter = refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES];
conditionalRefresh = 1;
}
pageRefresh(0, doc, conditionalRefresh, locPageName, refreshCountersArray[INDREF_SYSTEM_PANEL],
paramAccessLevel);
}
else
{ // Other pages look for just array changes
if (top.refreshArrayPanelCounter != refreshCountersArray[INDREF_ARRAY_PANEL])
{
top.refreshArrayPanelCounter = refreshCountersArray[INDREF_ARRAY_PANEL];
conditionalRefresh = 1;
}
pageRefresh(0, doc, conditionalRefresh, locPageName, refreshCountersArray[INDREF_SYSTEM_PANEL],
paramAccessLevel);
}
}
}
else if ( strFileName.indexOf("rpart_") != -1 )
{ // Is a partition page
if ( pageAutoRefreshStatus == "1" )
{ // Is an array page we want to refresh
if ( fileName == "rpart_status.html" )
{ // Look for array changes
if (top.refreshArrayPanelCounter != refreshCountersArray[INDREF_ARRAY_PANEL])
{
top.refreshArrayPanelCounter = refreshCountersArray[INDREF_ARRAY_PANEL];
conditionalRefresh = 1;
}
pageRefresh(0, doc, conditionalRefresh, locPageName, refreshCountersArray[INDREF_SYSTEM_PANEL],
paramAccessLevel);
}
}
}
else if ( strFileName.indexOf("rutil_") != -1 )
{ // Is a util page
if ( fileName == "rutil_update_enc_4.html" || fileName == "rutil_update_drive_4.html" )
{
if ( (deviceProgressStage != "1") && // no refresh on pause
(deviceProgressStage != "4") ) // no refresh on unpause
{
Sergnese Nicola 566/2002
Pagina 220 di 228
if ( pageAutoRefreshStatus == "1" )
{ // Is an utilities page we want to refresh (drive utilities)
if (top.refreshRsdDisDevsCounter != refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES] )
{
top.refreshRsdDisDevsCounter = refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES];
conditionalRefresh = 1;
}
if (top.refreshDfuCounter != refreshCountersArray[INDREF_DFU] )
{ // OK to check this all the time because it will only change when doing DFU
top.refreshDfuCounter = refreshCountersArray[INDREF_DFU];
conditionalRefresh = 1;
}
pageRefresh(0, doc, conditionalRefresh, locPageName, refreshCountersArray[INDREF_SYSTEM_PANEL],
paramAccessLevel);
}
}
}
}
else if ( strFileName.indexOf("rnet_") != -1 )
{
if ( pageAutoRefreshStatus == "1" )
{ // Is an array page we want to refresh
if ( ( fileName == "rnet_icon_view.html" )
||( fileName == "rnet_list_view.html" )
)
{ // Look for array changes
if (top.refreshNetviewCounter != refreshCountersArray[INDREF_NETVIEW])
{
top.refreshNetviewCounter = refreshCountersArray[INDREF_NETVIEW];
conditionalRefresh = 1;
}
pageRefresh(0, doc, conditionalRefresh, locPageName, refreshCountersArray[INDREF_SYSTEM_PANEL],
paramAccessLevel);
}
}
}
else if ( strFileName.indexOf("rsched_") != -1 )
{
if ( pageAutoRefreshStatus == "1" )
{ // Is an array page we want to refresh
if (( fileName == "rsched_manage_scheduler.html" ))
{ // Look for array changes
if (top.refreshSchedulerCounter != refreshCountersArray[INDREF_SCHEDULER])
{
top.refreshSchedulerCounter = refreshCountersArray[INDREF_SCHEDULER];
conditionalRefresh = 1;
if (fr.SchedulerRefreshEvent)
{
fr.SchedulerRefreshEvent();
}
}
//pageRefresh(0, doc, conditionalRefresh, locPageName, refreshCountersArray[INDREF_SYSTEM_PANEL],
paramAccessLevel);
}
}
}
Sergnese Nicola 566/2002
Pagina 221 di 228
else
{ // No refresh
}
}
function pageRefresh(seconds, docName, condRefresh, locPageName, devRefreshSystemPanelCounter,
accessLevel)
{
var strFileName = new String(locPageName);
// +" " + refreshCountersArray[INDREF_RSD_DISPLAY_DRIVES] + " " + accessLevel );
if (accessLevel == 0)
{
top.gIsGcontrolAwake = false;
return; // Never want to refresh the login page
}
var doRefresh = condRefresh;
// If conditional refresh for page = 1, do a refresh!
if ( top.refreshSystemPanelCounter != devRefreshSystemPanelCounter )
{
doRefresh = 1;
top.refreshSystemPanelCounter = devRefreshSystemPanelCounter;
}
if ( (top.timeCount != 0) && ( (top.timeCount % seconds) == 0 ) )
doRefresh = 1;
if (doRefresh)
{
var truncatedDateStr = top.getTimeString();
var uniquePageName = top.makePageName(docName, truncatedDateStr);
top.frames[1].location.replace(uniquePageName);
//top.frames[1].location.replace(docName);
}
}
function getFileName( fullUrl )
{
var s = new String( fullUrl );
var lastForwardSlashIndex = s.lastIndexOf("/");
var lastBackSlashIndex = s.lastIndexOf("\\");
var startIndex = 0;
var endIndex = s.indexOf("?");
if ( lastForwardSlashIndex > lastBackSlashIndex )
startIndex = lastForwardSlashIndex + 1;
else
startIndex = lastBackSlashIndex + 1;
if ( endIndex < 0 )
return s.substring(startIndex);
else
return s.substring(startIndex, endIndex);
}
function popUpAutoLoggedOutWindow(logOutReason, productBrand, interfaceName)
{
if (logOutReason == "0")
alert("You have been logged out of " + productBrand + " " + interfaceName + " because your session was
inactive.\n\nTo login, close this window and click on the login button");
else if (logOutReason == "1")
alert("You have been logged out because you have just loaded new code.\n\nPlease wait 2 minutes to allow the "
+ productBrand + " to restart. Then close this window and click \"login\" to reconnect to " + interfaceName +
".");
else
Sergnese Nicola 566/2002
Pagina 222 di 228
alert("You have been logged out because the IP address you were connected to has been changed.\n\n"
+ "If your browser does not automatically connect to the new address, then wait 1 minute and manually "
+ " enter the new address in your browser window." );
}
Codice js_user_config_JW420P63_____________.js
/* defines to match server side user level defines in MC_user_defines.h */
var USERARRAY_USERNAME
= 0;
var USERARRAY_PASSWORD
= 1;
var USERARRAY_LAST_LOGIN = 2;
var USERARRAY_ACCESS_LEVEL
= 3;
var USERARRAY_USER_ID
= 4;
var USERARRAY_ACCESS_WBI
= 5;
var USERARRAY_ACCESS_CLI = 6;
var USERARRAY_ACCESS_FTP = 7;
var USERARRAY_EXPERIENCE_LEVEL = 8;
/* access level defines */
var GUEST_ACCESS_DEFINE
= 0;
var MONITOR_ACCESS_DEFINE
= 1;
var MANAGE_ACCESS_DEFINE
= 5;
var ADMIN_ACCESS_DEFINE
= 100;
/* user experience level defines */
var USER_EXPERIENCE_LEVEL_NONE
= 0;
var USER_EXPERIENCE_LEVEL_NOVICE = 1;
var USER_EXPERIENCE_LEVEL_ADVANCED = 10;
var USER_EXPERIENCE_LEVEL_DIAG
= 20;
var USER_EXPERIENCE_LEVEL_ENGR
= 100;
/* masks for UI's that can be logical and'ed */
var ACCESS_MASK_WBI = 0x1;
var ACCESS_MASK_CLI = 0x2;
var ACCESS_MASK_FTP = 0x4;
var ACCESS_MASK_MUI = 0x8;
/* ------------------------------------------------------------------------- */
function decodeAccessLevel( inLvl )
{
var decodedString = "Unknown";
switch (inLvl)
{
case "0":
decodedString = "Guest";
break;
case "1":
decodedString = "Monitor";
break;
case "5":
decodedString = "Manage";
break;
case "10":
case "100":
decodedString = "Admin";
break;
}
return decodedString;
}
/* ------------------------------------------------------------------------- */
function decodeExperienceLevel( inLvl )
{
Sergnese Nicola 566/2002
Pagina 223 di 228
var decodedString = "Unknown";
switch (inLvl)
{
case "0":
decodedString = "None";
break;
case "1":
decodedString = "Standard";
break;
case "10":
decodedString = "Advanced";
break;
case "20":
decodedString = "Diagnostic";
break;
case "100":
decodedString = "Superuser";
break;
}
return decodedString;
}
/* -------------------------------------------------------------------------- */
function isDiagnosticUser( )
{
if ( top.gUserType >= USER_EXPERIENCE_LEVEL_DIAG )
{
return true;
}
else
{
return false;
}
}
/* -------------------------------------------------------------------------- */
function isStandardUser( )
{
if ( top.gUserType >= USER_EXPERIENCE_LEVEL_NOVICE )
{
return true;
}
else
{
return false;
}
}
/* -------------------------------------------------------------------------- */
function isAdvancedUser( )
{
if ( top.gUserType >= USER_EXPERIENCE_LEVEL_ADVANCED )
{
return true;
}
else
{
return false;
}
Sergnese Nicola 566/2002
Pagina 224 di 228
}
/* ------------------------------------------------------------------------- */
function createAccessMark( inAccess )
{
if (inAccess == "0")
return "";
else if (inAccess == "1")
return "*";
else
return "N/A";
}
/* ------------------------------------------------------------------------- */
function displayUserLine( aPwd )
{
html="";
for (var i=0; i < aPwd.length; i++)
{
if ( (aPwd[ i ][ USERARRAY_USER_ID ] != "0") && (aPwd[ i ][ USERARRAY_USER_ID ] != "") )
{
html+='<tr>';
html+='<td class="normal">' + aPwd[ i ][USERARRAY_USERNAME] + '</td>';
html+='<td class="normal">' + aPwd[ i ][USERARRAY_PASSWORD] + '</td>';
//
html+='<td width="'+ sevenFive_width +'">' + aPwd[ i ][USERARRAY_LAST_LOGIN] +
'</td>';
//dave_g: will add this later
html+='<td width="'+ fiveOh_width +'" class="normal">' +decodeAccessLevel( aPwd[ i ]
[USERARRAY_ACCESS_LEVEL] )+ '</td>';
html+='<td width="'+ fiveOh_width +'" class="normal">' +decodeExperienceLevel( aPwd[ i ]
[ USERARRAY_EXPERIENCE_LEVEL ] )+ '</td>';
html+='<td width="'+ fiveOh_width +'" class="normal">' + createAccessMark( aPwd[ i ]
[USERARRAY_ACCESS_WBI] ) + '</td>';
html+='<td width="'+ fiveOh_width +'" class="normal">' + createAccessMark( aPwd[ i ]
[USERARRAY_ACCESS_CLI] ) + '</td>';
html+='<td width="'+ fiveOh_width +'" class="normal">' + createAccessMark( aPwd[ i ]
[USERARRAY_ACCESS_FTP] ) + '</td>';
html+='</tr>';
}
}
return html;
}
Codice js_utility_JW420P63_____________.js
js_utility_JW420P63_____________.js
Codice g_control_frame.html
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html><head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
<!--Copyright 2002 Chaparral Network Storage, All Rights Reserved
--->
<script language="JavaScript">
document.write( "<title>Frame Control</title>" );
</script><title>Frame Control</title>
<script language="JavaScript">
{ // Non-visible control frame has two pieces
document.write('<frameset rows="400,*,*" border="0" framespacing="0" frameborder="NO">');
document.write('<frame name="control" src="g_control.html" noresize>'); // Add "noresize" to turn off ability
to move frameset
Sergnese Nicola 566/2002
Pagina 225 di 228
document.write('<frame name="watchdog" src="g_watchdog.html" noresize>');
document.write('<frame name="stats" src="g_part_realtime_getdata.html" noresize>');
document.write('</frameset>');
}
</script></head><frameset rows="400,*,*" border="0" framespacing="0" frameborder="NO"><frame
name="control" src="g_control_frame_data/g_control.html" noresize="noresize"><frame name="watchdog"
src="g_control_frame_data/g_watchdog.html" noresize="noresize"><frame name="stats"
src="g_control_frame_data/g_part_realtime_getdata.html" noresize="noresize"></frameset>
</html>
Sergnese Nicola 566/2002
Pagina 226 di 228
8
Sitografia & Bibliografia
Guide html, javascript, ajax, css, php, java html.it , www.webmasterpoint.org
http://antirez.com/articoli/spaghettiajax.html , http://ajaxpages.sourceforge.net/doc/5_min_tutorial.html.
Cas www.jasig.org/cas
Liferay (www.liferay.com)
autenticazioni WS-Federation (www-128.ibm.com/developerworks/library/specification/wsfed)
Information Technology Support Center. University of Mariland. Best Practices: User
Authentication Mechanisms www.itsc.state.md.us/
National Science Foundation Middleware Initiative (NMI www.nsf-
middleware.org/default.aspx)
Security Focus OnLine Library on Authentication
[www.securityfocus.com/library/category/32
A-Select (www.a-select.org)
definizione portale wikipedia.
Glossario http://www.pc-facile.com/glossario/let/R/
Sergnese Nicola 566/2002
Pagina 227 di 228
Indice delle illustrazioni
Figura 1: data center S.Co.P.E-Atlas internamente ....................................................................6
Figura 2: risorse necessarie Tier2 .............................................................................................12
Figura 3: web services...............................................................................................................15
Figura 4: pagina CMC S.Co.P.E con spoiler chiuso.................................................................16
Figura 5: pagina CMC S.Co.P.E con spoiler aperto..................................................................17
Figura 6: pagina CMC S.Co.P.E con spoiler selezione singolo servizio da spoiler..................18
Figura 7: esempio di web content display vuota.......................................................................27
Figura 8: esempio di iframe portlet vuota.................................................................................28
Figura 9: codice sorgente CMC-TC 26.....................................................................................29
Figura 10: Pagina di login CMC-TC.........................................................................................42
Figura 11: Pagina di login sw3com...........................................................................................45
Figura 12: pagina di login ce (service nodes)...........................................................................48
Figura 13: Pagina login E4 .....................................................................................................51
Figura 14: login asus.................................................................................................................55
Figura 15: Pagina di login per atlasdrac (worker nodes dell)...................................................58
Figura 16: Pagina login centron................................................................................................64
Figura 17: diagramma d'uso......................................................................................................68
Figura 18: navigazione..............................................................................................................71
Figura 19: configurazione iframe portlet per cmc....................................................................74
Figura 20: nomi campi username password..............................................................................75
Indice delle tabelle
Tabella 1: cockburn login .........................................................................................................69
Tabella 2: cockburn seleziona web management.....................................................................70
Sergnese Nicola 566/2002
Pagina 228 di 228