a76480d454
- unwrap the {"catalog": ...} envelope, still accepting a bare catalog
- report an environment-less response as a protocol mismatch, not an ENC problem
- make Resource.Line a pointer and Resource.Params() map absent onto empty
- render a missing manifest location as "(source unknown)"
- retry compile failures caused by the compiler's PuppetDB query
- stop retrying manifest errors the compiler returns as HTTP 500
- add a trimmed real-server response fixture and tests for each shape
270 lines
6.5 KiB
JSON
270 lines
6.5 KiB
JSON
{
|
|
"catalog": {
|
|
"tags": [
|
|
"settings",
|
|
"roles::infra::incus::node"
|
|
],
|
|
"name": "prodnxsr0009.main.unkin.net",
|
|
"version": "979c188c3437099863e0b53c57942ef7ed6523a3",
|
|
"code_id": null,
|
|
"catalog_uuid": "8d7f423e-5bf1-4b64-97b4-4a20c67ec59f",
|
|
"catalog_format": 2,
|
|
"environment": "develop",
|
|
"resources": [
|
|
{
|
|
"type": "Stage",
|
|
"title": "main",
|
|
"tags": [
|
|
"stage"
|
|
],
|
|
"exported": false,
|
|
"kind": "compilable_type",
|
|
"parameters": {
|
|
"name": "main"
|
|
}
|
|
},
|
|
{
|
|
"type": "Class",
|
|
"title": "Settings",
|
|
"tags": [
|
|
"class",
|
|
"settings"
|
|
],
|
|
"exported": false,
|
|
"kind": "unknown"
|
|
},
|
|
{
|
|
"type": "Class",
|
|
"title": "Profiles::Puppet::Agent",
|
|
"tags": [
|
|
"class",
|
|
"profiles::puppet::agent",
|
|
"profiles",
|
|
"puppet",
|
|
"agent",
|
|
"profiles::base",
|
|
"base",
|
|
"roles::infra::incus::node",
|
|
"roles",
|
|
"infra",
|
|
"incus",
|
|
"node"
|
|
],
|
|
"exported": false,
|
|
"kind": "unknown",
|
|
"parameters": {
|
|
"version": "7.37.2",
|
|
"openvox_enable": true
|
|
}
|
|
},
|
|
{
|
|
"type": "Anchor",
|
|
"title": "selinux::end",
|
|
"tags": [
|
|
"anchor",
|
|
"selinux::end",
|
|
"selinux",
|
|
"end",
|
|
"class",
|
|
"selinux::module",
|
|
"module",
|
|
"frr_local",
|
|
"profiles::selinux::frr",
|
|
"profiles",
|
|
"frr",
|
|
"profiles::base",
|
|
"base",
|
|
"roles::infra::incus::node",
|
|
"roles",
|
|
"infra",
|
|
"incus",
|
|
"node"
|
|
],
|
|
"file": "/etc/puppetlabs/code/environments/develop/external_modules/selinux/manifests/init.pp",
|
|
"line": 111,
|
|
"exported": false,
|
|
"kind": "compilable_type"
|
|
},
|
|
{
|
|
"type": "File",
|
|
"title": "/opt/puppetlabs/puppet/cache/puppet-selinux/modules/frr_local.loaded",
|
|
"tags": [
|
|
"file",
|
|
"selinux::module",
|
|
"selinux",
|
|
"module",
|
|
"frr_local",
|
|
"class",
|
|
"profiles::selinux::frr",
|
|
"profiles",
|
|
"frr",
|
|
"profiles::base",
|
|
"base",
|
|
"roles::infra::incus::node",
|
|
"roles",
|
|
"infra",
|
|
"incus",
|
|
"node"
|
|
],
|
|
"file": "/etc/puppetlabs/code/environments/develop/external_modules/selinux/manifests/module.pp",
|
|
"line": 177,
|
|
"exported": false,
|
|
"kind": "compilable_type"
|
|
},
|
|
{
|
|
"type": "Package",
|
|
"title": "openvox-agent",
|
|
"tags": [
|
|
"package",
|
|
"openvox-agent",
|
|
"class",
|
|
"profiles::puppet::agent",
|
|
"profiles",
|
|
"puppet",
|
|
"agent",
|
|
"profiles::base",
|
|
"base",
|
|
"roles::infra::incus::node",
|
|
"roles",
|
|
"infra",
|
|
"incus",
|
|
"node"
|
|
],
|
|
"file": "/etc/puppetlabs/code/environments/develop/site/profiles/manifests/puppet/agent.pp",
|
|
"line": 58,
|
|
"exported": false,
|
|
"kind": "compilable_type",
|
|
"parameters": {
|
|
"ensure": "7.37.2",
|
|
"require": "Yumrepo[openvox]"
|
|
}
|
|
},
|
|
{
|
|
"type": "Service",
|
|
"title": "puppet",
|
|
"tags": [
|
|
"service",
|
|
"puppet",
|
|
"class",
|
|
"profiles::puppet::agent",
|
|
"profiles",
|
|
"agent",
|
|
"profiles::base",
|
|
"base",
|
|
"roles::infra::incus::node",
|
|
"roles",
|
|
"infra",
|
|
"incus",
|
|
"node"
|
|
],
|
|
"file": "/etc/puppetlabs/code/environments/develop/site/profiles/manifests/puppet/agent.pp",
|
|
"line": 81,
|
|
"exported": false,
|
|
"kind": "compilable_type",
|
|
"parameters": {
|
|
"ensure": "running",
|
|
"enable": true,
|
|
"hasrestart": true,
|
|
"require": "Package[openvox-agent]"
|
|
}
|
|
},
|
|
{
|
|
"type": "File",
|
|
"title": "/etc/dns-updater/key",
|
|
"tags": [
|
|
"file",
|
|
"class",
|
|
"profiles::dns::updater",
|
|
"profiles",
|
|
"dns",
|
|
"updater",
|
|
"profiles::dns::base",
|
|
"base",
|
|
"profiles::base",
|
|
"roles::infra::incus::node",
|
|
"roles",
|
|
"infra",
|
|
"incus",
|
|
"node"
|
|
],
|
|
"file": "/etc/puppetlabs/code/environments/develop/site/profiles/manifests/dns/updater.pp",
|
|
"line": 97,
|
|
"exported": false,
|
|
"kind": "compilable_type",
|
|
"parameters": {
|
|
"ensure": "file",
|
|
"owner": "root",
|
|
"group": "root",
|
|
"mode": "0600",
|
|
"show_diff": false,
|
|
"content": "REDACTED-IN-FIXTURE"
|
|
},
|
|
"sensitive_parameters": [
|
|
"content"
|
|
]
|
|
},
|
|
{
|
|
"type": "Haproxy::Balancermember",
|
|
"title": "prodnxsr0009.main.unkin.net_9443",
|
|
"tags": [
|
|
"be_ceph_dashboard_au-syd1-prod",
|
|
"haproxy::balancermember",
|
|
"haproxy",
|
|
"balancermember",
|
|
"prodnxsr0009.main.unkin.net_9443",
|
|
"profiles::haproxy::balancemember",
|
|
"profiles",
|
|
"balancemember",
|
|
"class",
|
|
"profiles::ceph::dashboard",
|
|
"ceph",
|
|
"dashboard",
|
|
"profiles::base",
|
|
"base",
|
|
"roles::infra::incus::node",
|
|
"roles",
|
|
"infra",
|
|
"incus",
|
|
"node"
|
|
],
|
|
"file": "/etc/puppetlabs/code/environments/develop/site/profiles/manifests/haproxy/balancemember.pp",
|
|
"line": 12,
|
|
"exported": true,
|
|
"kind": "defined_type",
|
|
"parameters": {
|
|
"listening_service": "be_ceph_dashboard",
|
|
"ports": [
|
|
9443
|
|
],
|
|
"server_names": "prodnxsr0009",
|
|
"ipaddresses": "198.18.23.9",
|
|
"options": [
|
|
"cookie prodnxsr0009",
|
|
"ssl",
|
|
"verify none",
|
|
"check",
|
|
"inter 2s",
|
|
"rise 3",
|
|
"fall 2"
|
|
],
|
|
"tag": "be_ceph_dashboard_au-syd1-prod"
|
|
}
|
|
}
|
|
],
|
|
"edges": [
|
|
{
|
|
"source": "Stage[main]",
|
|
"target": "Class[Settings]"
|
|
},
|
|
{
|
|
"source": "Stage[main]",
|
|
"target": "Class[main]"
|
|
}
|
|
],
|
|
"classes": [
|
|
"settings",
|
|
"profiles::puppet::agent"
|
|
]
|
|
}
|
|
}
|