diff --git a/source/_ext/ipmi.py b/source/_ext/ipmi.py deleted file mode 100644 index ba26578aefc66d72d78d33eee57b5d78cd303731..0000000000000000000000000000000000000000 --- a/source/_ext/ipmi.py +++ /dev/null @@ -1,125 +0,0 @@ -from sphinx.util.docutils import SphinxDirective -import docutils.nodes as nodes -from pathlib import Path -import tomllib -from ipaddress import ip_address - - -class IpmiconfigDirective(SphinxDirective): - def run(self): - page_name = Path(self.state.document["source"]).stem - with open(Path(self.env.app.srcdir) / "config/ipmi.toml", "rb") as f: - config = tomllib.load(f) - config = config[page_name] - table = nodes.table() - table["classes"] += ["colwidths-auto"] - n_cols = 2 - col_widths = [100 // n_cols] * n_cols - tgroup = nodes.tgroup(cols=len(col_widths)) - table += tgroup - for col_width in col_widths: - colspec = nodes.colspec() - colspec.attributes["colwidth"] = col_width - tgroup += colspec - rows = [] - table_data = [ - (nodes.strong(text="IP do IPMI"), nodes.paragraph(text=config["ip"])), - ( - nodes.strong(text="Acesso do IPMI"), - nodes.paragraph( - text="Padrão" if config["access_type"] == "regular" else "CrÃtico" - ), - ), - ] - if "model" in config: - table_data.append( - ( - nodes.strong(text="Modelo do IPMI"), - nodes.paragraph(text=config["model"]), - ) - ) - for row in table_data: - row_node = nodes.row() - for cell in row: - entry = nodes.entry() - entry += cell - row_node += entry - rows.append(row_node) - tbody = nodes.tbody() - tbody.extend(rows) - tgroup += tbody - - return [ - nodes.raw("", "<details open><summary>IPMI</summary>", format="html"), - table, - nodes.raw("", "</details>", format="html"), - ] - - -class IpmitableDirective(SphinxDirective): - def run(self): - with open(Path(self.env.app.srcdir) / "config/ipmi.toml", "rb") as f: - config = tomllib.load(f) - table = nodes.table() - table["classes"] += ["colwidths-auto"] - n_cols = 4 - col_widths = [100 // n_cols] * n_cols - tgroup = nodes.tgroup(cols=len(col_widths)) - table += tgroup - for col_width in col_widths: - colspec = nodes.colspec() - colspec.attributes["colwidth"] = col_width - tgroup += colspec - table_data = [] - table_data.append( - ( - nodes.strong(text="Host"), - nodes.strong(text="IP"), - nodes.strong(text="Tipo de Acesso"), - nodes.strong(text="Modelo"), - ) - ) - for machine, attributes in sorted( - config.items(), key=lambda x: ip_address(x[1]["ip"]) - ): - table_data.append( - ( - nodes.paragraph(text=machine), - nodes.paragraph(text=attributes["ip"]), - nodes.paragraph( - text="Padrão" - if attributes["access_type"] == "regular" - else "CrÃtico" - ), - nodes.paragraph(text=attributes.get("model", "?")), - ) - ) - rows = [] - for row in table_data: - row_node = nodes.row() - for cell in row: - entry = nodes.entry() - entry += cell - row_node += entry - rows.append(row_node) - thead = nodes.thead() - thead.extend(rows[:1]) - tgroup += thead - tbody = nodes.tbody() - tbody.extend(rows[1:]) - tgroup += tbody - return [table] - - -def setup(app): - app.add_directive("ipmiconfig", IpmiconfigDirective) - app.add_directive("ipmitable", IpmitableDirective) - return { - "version": "0.1", - "parallel_read_safe": True, - "parallel_write_safe": True, - } - - -# TODO: Warn when a machine config wasn't used -# TODO: Schema validation on TOML diff --git a/source/conf.py b/source/conf.py index 0d9bc7d29e60483fc6840aafb6ba808032e318aa..d4f97716b515190c120d3ea45103cdd88d2328b5 100644 --- a/source/conf.py +++ b/source/conf.py @@ -32,7 +32,6 @@ extensions = [ "sphinx_togglebutton", "myst_parser", "inline_svgbob", - "ipmi", ] myst_enable_extensions = [ diff --git a/source/config/ipmi.toml b/source/config/ipmi.toml index 467a15bdb362ebe1ff8576909975b8f22081d24b..0ab3675fa42c6b4c7674f57f2ec1d2d5501aacae 100644 --- a/source/config/ipmi.toml +++ b/source/config/ipmi.toml @@ -1,47 +1,7 @@ -[abbey] -ip="192.168.1.41" -access_type="critical" -model="SGI" - -[barril1] -ip="192.168.1.21" -access_type="regular" -model="supermicro" - -[barril2] -ip="192.168.1.22" -access_type="regular" -model="supermicro" - -[barril3] -ip="192.168.1.23" -access_type="regular" -model="supermicro" - -[barril4] -ip="192.168.1.24" -access_type="regular" -model="supermicro" - [c3hpc] ip="192.168.1.101" access_type="regular" -[azzanadra] -ip="192.168.1.31" -access_type="regular" -model="Intel" - -[c3sldb2] -ip="192.168.1.2" -access_type="regular" -model="Intel" - -[duvel] -ip="192.168.1.42" -access_type="critical" -model="SGI" - [node2] ip="192.168.1.102" access_type="regular" @@ -66,11 +26,6 @@ access_type="regular" ip="192.168.1.107" access_type="regular" -[orval] -ip="192.168.1.46" -access_type="regular" -model="SGI" - [proc1] ip="192.168.1.111" access_type="regular" @@ -83,61 +38,6 @@ access_type="regular" ip="192.168.1.110" access_type="regular" -[torneira2] -ip="192.168.1.45" -access_type="regular" -model="Intel" - -[torneira3] -ip="192.168.1.3" -access_type="regular" -model="Intel" - -[torneira4] -ip="192.168.1.4" -access_type="regular" -model="Intel" - -[torneira7] -ip="192.168.1.7" -access_type="regular" -model="SGI" - -[torneira8] -ip="192.168.1.8" -access_type="regular" -model="supermicro" - -[torneira9] -ip="192.168.1.9" -access_type="regular" -model="supermicro" - -[torneira10] -ip="192.168.1.10" -access_type="regular" -model="supermicro" - -[torneira11] -ip="192.168.1.11" -access_type="regular" -model="supermicro" - -[torneira12] -ip="192.168.1.12" -access_type="regular" -model="supermicro" - -[torneira13] -ip="192.168.1.13" -access_type="regular" -model="supermicro" - -[urquell] -ip="192.168.1.43" -access_type="critical" -model="supermicro" - [vti1] ip="192.168.1.108" access_type="regular" @@ -145,11 +45,3 @@ access_type="regular" [vti2] ip="192.168.1.109" access_type="regular" - -[forsyn] -ip="192.168.1.33" -access_type="regular" - -[zara] -ip="192.168.1.32" -access_type="regular" diff --git a/source/pages/machines/base/azzanadra.md b/source/pages/machines/base/azzanadra.md index 0a72dd22a49b2fcffe5c04e607bce298b8a9c337..8dc6bee060472e88488a2d7253593615dd8ddd87 100644 --- a/source/pages/machines/base/azzanadra.md +++ b/source/pages/machines/base/azzanadra.md @@ -1,6 +1,3 @@ # Azzanadra -```{ipmiconfig} -``` - A Azzanadra é a máquina destinada ao backup do LAMIR. diff --git a/source/pages/machines/base/c3sldb2.md b/source/pages/machines/base/c3sldb2.md index 48336b6348c93eaabc24eff2590ef30738874ff3..7ba92882439971f0d2d3b124b1cdbe311c9609cf 100644 --- a/source/pages/machines/base/c3sldb2.md +++ b/source/pages/machines/base/c3sldb2.md @@ -1,6 +1,3 @@ # c3sldb2 -```{ipmiconfig} -``` - A c3sldb2 é uma máquina de banco de dados. diff --git a/source/pages/machines/base/duvel.md b/source/pages/machines/base/duvel.md index 3b477a4a7b6d6011178e906f1ad3ca0c0e9bf2f7..5ca16d8ae9f3809db0606ae203ae7cc39b7a3f2c 100644 --- a/source/pages/machines/base/duvel.md +++ b/source/pages/machines/base/duvel.md @@ -21,9 +21,6 @@ - [ZFS RAIDZ2](/pages/concepts/zfs) 67 TiB ::: -```{ipmiconfig} -``` - A duvel é a máquina fÃsica que faz backup e permite o acesso ao parque computacional. É possÃvel acessar a duvel externamente através do endereço `duvel.c3sl.ufpr.br`. Em algumas redes internas, porém, as regras de firewall barram o acesso, sendo diff --git a/source/pages/machines/base/forsyn.md b/source/pages/machines/base/forsyn.md index b87d069b3c3aa76740633e93c61e0ee5674d3791..860627493e617cf98e300ac18ce477e04f56fe7a 100644 --- a/source/pages/machines/base/forsyn.md +++ b/source/pages/machines/base/forsyn.md @@ -42,9 +42,6 @@ - Rack 3 ::: -```{ipmiconfig} -``` - A Forsyn é a máquina fÃsica responsável pelo monitoramento do hardware e serviços. Essa tarefa compreende o monitoramento através do uso do Zabbix, armazenamento de logs e execução de scripts verificadores de segurança e de disponibilidade. diff --git a/source/pages/machines/base/urquell.md b/source/pages/machines/base/urquell.md index f1b3968a8bfb6faa728677e8896a96af1e158117..e77dc8e10a8eb6dd99749ae6557336c3ab79e2c6 100644 --- a/source/pages/machines/base/urquell.md +++ b/source/pages/machines/base/urquell.md @@ -21,9 +21,6 @@ - [](/pages/concepts/ext4) [MD RAID10](/pages/concepts/md) 22T ::: -```{ipmiconfig} -``` - A Urquell é a máquina fÃsica que gerencia o DINF que acabou recebendo a tarefa de também gerenciar o C3SL. Ela é uma parte crÃtica da infraestrutura, pois contém muitos serviços essenciais para o funcionamento do departamento e do diff --git a/source/pages/machines/cluster/c3hpc.md b/source/pages/machines/cluster/c3hpc.md index 3d41593c591d86c52df2215bdc569f1e8e6d54f7..acaae208cc5f81989b30730abbf8b97b0da5cff8 100644 --- a/source/pages/machines/cluster/c3hpc.md +++ b/source/pages/machines/cluster/c3hpc.md @@ -1,6 +1,3 @@ # c3hpc -```{ipmiconfig} -``` - A c3phc é a gerenciadora do cluster do C3SL. diff --git a/source/pages/machines/cluster/node2.md b/source/pages/machines/cluster/node2.md index 840307cb7790077044d1307c2918755f93dea8c3..487e328090f3cd2a5366d4f62eefbf1766158297 100644 --- a/source/pages/machines/cluster/node2.md +++ b/source/pages/machines/cluster/node2.md @@ -1,6 +1,3 @@ # node2 -```{ipmiconfig} -``` - O node2 é um nó de processamento do cluster. diff --git a/source/pages/machines/cluster/node3.md b/source/pages/machines/cluster/node3.md index 8bb2e4e12f3d35f3fb79f3e4a66f4a35aa05280d..44f91adf39f7c79a9ed0b8d67ad942b68adf766b 100644 --- a/source/pages/machines/cluster/node3.md +++ b/source/pages/machines/cluster/node3.md @@ -1,6 +1,3 @@ # node3 -```{ipmiconfig} -``` - O node3 é um nó de processamento do cluster. diff --git a/source/pages/machines/cluster/node4.md b/source/pages/machines/cluster/node4.md index 672b73ddd04c2af567dfb4e6e534884cbedf32e3..b758fe29731dd9c37099034d97c518388ed4864f 100644 --- a/source/pages/machines/cluster/node4.md +++ b/source/pages/machines/cluster/node4.md @@ -1,6 +1,3 @@ # node4 -```{ipmiconfig} -``` - O node4 é um nó de processamento do cluster. diff --git a/source/pages/machines/cluster/node5.md b/source/pages/machines/cluster/node5.md index 3d1cae4f35581fceff92c4b8c25fda1c4724b558..93d5f08b74cffdbeea6a2433437f93c5ff7c01b8 100644 --- a/source/pages/machines/cluster/node5.md +++ b/source/pages/machines/cluster/node5.md @@ -1,6 +1,3 @@ # node5 -```{ipmiconfig} -``` - O node5 é um nó de processamento do cluster. diff --git a/source/pages/machines/cluster/node6.md b/source/pages/machines/cluster/node6.md index 57dcc28d6244771cf833aecc53c5b65096616782..b39e1d3d207e855cf3ceb2fe45a935bd3422db17 100644 --- a/source/pages/machines/cluster/node6.md +++ b/source/pages/machines/cluster/node6.md @@ -1,6 +1,3 @@ # node6 -```{ipmiconfig} -``` - O node6 é um nó de processamento do cluster. diff --git a/source/pages/machines/cluster/node7.md b/source/pages/machines/cluster/node7.md index d301d0620d1878764537cb6c4375d869cbc7f1d1..9f6903e85adec4c0a8c674efc72d79e0a5b8af99 100644 --- a/source/pages/machines/cluster/node7.md +++ b/source/pages/machines/cluster/node7.md @@ -1,6 +1,3 @@ # node7 -```{ipmiconfig} -``` - O node7 é um nó de processamento do cluster. diff --git a/source/pages/machines/cluster/proc1.md b/source/pages/machines/cluster/proc1.md index f1c381d76a388c700c969d655340941073a13dbf..40ce5a9b88edd14d00208094f9f8a15d41448e88 100644 --- a/source/pages/machines/cluster/proc1.md +++ b/source/pages/machines/cluster/proc1.md @@ -1,6 +1,3 @@ # proc1 -```{ipmiconfig} -``` - O proc1 é um nó de processamento do cluster. diff --git a/source/pages/machines/cluster/proc2.md b/source/pages/machines/cluster/proc2.md index 5bdcc796a597465018c62e5e4e0e3f7322f30e23..1af8fead82e7eacff84b35bdbd9f95a01dfd6265 100644 --- a/source/pages/machines/cluster/proc2.md +++ b/source/pages/machines/cluster/proc2.md @@ -1,6 +1,3 @@ # proc2 -```{ipmiconfig} -``` - O proc2 é um nó de processamento do cluster. diff --git a/source/pages/machines/cluster/pti.md b/source/pages/machines/cluster/pti.md index 92917e340d1a29e857e48fdbc73d3602feb79f47..696a5be729f3453986b1f650a05f47629dea47b7 100644 --- a/source/pages/machines/cluster/pti.md +++ b/source/pages/machines/cluster/pti.md @@ -1,6 +1,3 @@ # pti -```{ipmiconfig} -``` - O pti é um nó de processamento do cluster. diff --git a/source/pages/machines/cluster/vti1.md b/source/pages/machines/cluster/vti1.md index cf3f57cd63a6d8974a84ad25bbfc2cd6f531c664..4f37056cff20133836794c328b47b522d9587df2 100644 --- a/source/pages/machines/cluster/vti1.md +++ b/source/pages/machines/cluster/vti1.md @@ -1,6 +1,3 @@ # vti1 -```{ipmiconfig} -``` - O vti1 é um nó de processamento do cluster. diff --git a/source/pages/machines/cluster/vti2.md b/source/pages/machines/cluster/vti2.md index 7aa443d996814d61413c3a3dd07639ab9b4c6ba6..33445c26d48031a55018a44cee61e2e7596e6b6c 100644 --- a/source/pages/machines/cluster/vti2.md +++ b/source/pages/machines/cluster/vti2.md @@ -1,6 +1,3 @@ # vti2 -```{ipmiconfig} -``` - O vti2 é um nó de processamento do cluster. diff --git a/source/pages/machines/lab/orval.md b/source/pages/machines/lab/orval.md index 0dd492e74b3d0c3d449a7c35818a8ea42e4450af..53083d5f3ad6ca86d0eedb4f7a1e98dc332b0824 100644 --- a/source/pages/machines/lab/orval.md +++ b/source/pages/machines/lab/orval.md @@ -1,6 +1,3 @@ # orval -```{ipmiconfig} -``` - A orval é uma máquina de processamento que possui GPUs da Nvidia. diff --git a/source/pages/machines/lab/torneira2.md b/source/pages/machines/lab/torneira2.md index b7365429f2a24b06dcd43e743e91c4cd0d871ea5..f203caabcdb6e56ffebe65dbf724b53f7c4b2ca7 100644 --- a/source/pages/machines/lab/torneira2.md +++ b/source/pages/machines/lab/torneira2.md @@ -1,6 +1,3 @@ # torneira2 -```{ipmiconfig} -``` - A torneira2 está atualmente reservada para experimentos. diff --git a/source/pages/machines/lab/torneira3.md b/source/pages/machines/lab/torneira3.md index 99f4bcda6f1c0c2447ad693975a6a9b9d01e0db4..7ab59620d71a9f268042e9728dc4c14ab6104c0b 100644 --- a/source/pages/machines/lab/torneira3.md +++ b/source/pages/machines/lab/torneira3.md @@ -1,6 +1,3 @@ # torneira3 -```{ipmiconfig} -``` - A torneira3 está atualmente reservada para experimentos. diff --git a/source/pages/machines/lab/torneira4.md b/source/pages/machines/lab/torneira4.md index 90fa83070c8103d85ae2834c65874c26253676b4..1adca0e33b59f4c13feba6e35b77394a7aa548e4 100644 --- a/source/pages/machines/lab/torneira4.md +++ b/source/pages/machines/lab/torneira4.md @@ -1,6 +1,3 @@ # torneira4 -```{ipmiconfig} -``` - A torneira4 está atualmente reservada para experimentos. diff --git a/source/pages/machines/lab/torneira7.md b/source/pages/machines/lab/torneira7.md index d2e9e1fb8b2daed7caa0a69a3d44ddcb904d24c6..de04a6820aff9e42a556ee38c44359db6b140c67 100644 --- a/source/pages/machines/lab/torneira7.md +++ b/source/pages/machines/lab/torneira7.md @@ -1,8 +1,5 @@ # torneira7 -```{ipmiconfig} -``` - A torneira7 hospeda máquinas virtuais perigosas e fica numa VLAN separada chamada planetlab. diff --git a/source/pages/machines/lab/zara.md b/source/pages/machines/lab/zara.md index c99784acad05f3b76fd62ca7f89e9ea021e5083e..fde2a319d4850a907938bd7f8a08e014bfde476c 100644 --- a/source/pages/machines/lab/zara.md +++ b/source/pages/machines/lab/zara.md @@ -1,7 +1,3 @@ # zara -```{eval-rst} -.. ipmiconfig:: -``` - A orval é uma máquina de processamento. diff --git a/source/pages/machines/virtuals/abbey.md b/source/pages/machines/virtuals/abbey.md index 2d0b51ff5809c5bbd3204bc55c839000c4501b47..a52154fd1a4866f0f2fa0032151d7e9c8f029f4c 100644 --- a/source/pages/machines/virtuals/abbey.md +++ b/source/pages/machines/virtuals/abbey.md @@ -33,9 +33,6 @@ - [](/pages/concepts/ext4) [MD RAID6](/pages/concepts/md) 29.1T ::: -```{ipmiconfig} -``` - A Abbey é a máquina fÃsica responsável pela gerência das máquinas virtuais. ## Serviços diff --git a/source/pages/machines/virtuals/barril1.md b/source/pages/machines/virtuals/barril1.md index e40527d81724c44e2a3b4deae08b7d3740e6b19c..94344e9369aacdae6c46a6b05d85d31164120a0c 100644 --- a/source/pages/machines/virtuals/barril1.md +++ b/source/pages/machines/virtuals/barril1.md @@ -1,6 +1,3 @@ # barril1 -```{ipmiconfig} -``` - A barril1 armazena dados das máquinas virtuais. diff --git a/source/pages/machines/virtuals/barril2.md b/source/pages/machines/virtuals/barril2.md index ecb09748a9e2d5cdccafcf1cdd26deba521f236f..98cf66c3ffb8655c85821a33b5ff5f3eef9c0149 100644 --- a/source/pages/machines/virtuals/barril2.md +++ b/source/pages/machines/virtuals/barril2.md @@ -1,6 +1,3 @@ # barril2 -```{ipmiconfig} -``` - A barril2 armazena dados das máquinas virtuais. diff --git a/source/pages/machines/virtuals/barril3.md b/source/pages/machines/virtuals/barril3.md index bd354668ca4ed4302143ae70f7c4ed619ad08135..ae8e1fc3272bee9e0d55e8b9b5a0294e2a9cb820 100644 --- a/source/pages/machines/virtuals/barril3.md +++ b/source/pages/machines/virtuals/barril3.md @@ -1,6 +1,3 @@ # barril3 -```{ipmiconfig} -``` - A barril3 armazena dados das máquinas virtuais. diff --git a/source/pages/machines/virtuals/barril4.md b/source/pages/machines/virtuals/barril4.md index 2b57ecc4187909eb82a7df7aff86a7a8e5de8e88..d81a351955f84eb24ba4cdba0c0437d5a200573c 100644 --- a/source/pages/machines/virtuals/barril4.md +++ b/source/pages/machines/virtuals/barril4.md @@ -1,6 +1,3 @@ # barril4 -```{ipmiconfig} -``` - A barril4 armazena dados das máquinas virtuais. diff --git a/source/pages/machines/virtuals/torneira10.md b/source/pages/machines/virtuals/torneira10.md index 23a85cd8c41655f1f6e1b5846e2326364062ad89..d6a8ae5337617f66940ee84fa11fb72c69cef62d 100644 --- a/source/pages/machines/virtuals/torneira10.md +++ b/source/pages/machines/virtuals/torneira10.md @@ -5,8 +5,5 @@ - 512GB ``` -```{ipmiconfig} -``` - A torneira10 hospeda máquinas virtuais de serviços vitais. Ela é acessÃvel apenas através da abbey pois possui IP privado. diff --git a/source/pages/machines/virtuals/torneira11.md b/source/pages/machines/virtuals/torneira11.md index 3e03ab783d7677db1e6b69f19088f0a94f7bb353..ad6798d46007a7778c18507e78a94ab2745fe3cd 100644 --- a/source/pages/machines/virtuals/torneira11.md +++ b/source/pages/machines/virtuals/torneira11.md @@ -5,8 +5,5 @@ - 512GB ``` -```{ipmiconfig} -``` - A torneira11 hospeda máquinas virtuais de serviços vitais. Ela é acessÃvel apenas através da abbey pois possui IP privado. diff --git a/source/pages/machines/virtuals/torneira12.md b/source/pages/machines/virtuals/torneira12.md index 319fd722fed1bedb607e88401c9a5c9da3f62f47..74edbf87490d68b717fb59475e5c1a98329a3ca5 100644 --- a/source/pages/machines/virtuals/torneira12.md +++ b/source/pages/machines/virtuals/torneira12.md @@ -5,9 +5,6 @@ - 1TB ``` -```{ipmiconfig} -``` - :::{todo} Essa máquina será renomeada num futuro próximo. ::: diff --git a/source/pages/machines/virtuals/torneira13.md b/source/pages/machines/virtuals/torneira13.md index 8bab9b01e8ff47060cc90ce897eb8cec56616923..dbdadd799c43855fb175209ef55f39907e07d678 100644 --- a/source/pages/machines/virtuals/torneira13.md +++ b/source/pages/machines/virtuals/torneira13.md @@ -5,8 +5,5 @@ - 512GB ``` -```{ipmiconfig} -``` - A torneira13 hospeda máquinas virtuais de serviços vitais. Ela é acessÃvel apenas através da abbey pois possui IP privado. diff --git a/source/pages/machines/virtuals/torneira8.md b/source/pages/machines/virtuals/torneira8.md index 8d799450458c11cc24a24de6c584e01c3b8cf907..9105111d0ec72efc5a5b87bd9152a5a77a78afaf 100644 --- a/source/pages/machines/virtuals/torneira8.md +++ b/source/pages/machines/virtuals/torneira8.md @@ -5,8 +5,5 @@ - 1TB ``` -```{ipmiconfig} -``` - A torneira8 hospeda máquinas virtuais de serviços não-vitais e projetos. Ela é acessÃvel apenas através da abbey pois possui IP privado. diff --git a/source/pages/machines/virtuals/torneira9.md b/source/pages/machines/virtuals/torneira9.md index ed7278a63ff4d86e48a320292b14627a68c1503e..d5d7ddfa0a83dd074b4dbeed25c5c30a8b704275 100644 --- a/source/pages/machines/virtuals/torneira9.md +++ b/source/pages/machines/virtuals/torneira9.md @@ -5,8 +5,5 @@ - 1TB ``` -```{ipmiconfig} -``` - A torneira9 hospeda máquinas virtuais de serviços não-vitais e projetos. Ela é acessÃvel apenas através da abbey pois possui IP privado.