rackslab / RacksDB

YAML-based database of datacenter infrastructures
https://rackslab.io/en/solutions/racksdb/
GNU General Public License v3.0
15 stars 1 forks source link

Problem with the slots of the equipment #72

Closed florianLSP closed 9 months ago

florianLSP commented 9 months ago

mecn0040 should not supposed to be at slot 40.

± racksdb --db examples/db --schema schemas/racksdb.yml nodes --infrastructure mercury --format json | jq '.[] | select(.name=="mecn0040")' 
{
  "name": "mecn0040",
  "infrastructure": "mercury",
  "rack": {
    "name": "R1-A01",
    "slot": 0,
    "type": {
      "id": "standard",
      "height": 1867,
      "width": 600,
      "depth": 914,
      "slots": 42,
      "initial": 1
    },
    "datacenter": "paris",
    "room": "noisy",
    "row": "R1",
    "fillrate": 0.9761904761904762
  },
  "type": {
    "id": "sm220bt",
    "model": "SuperMicro A+ Server 2124BT-HTR",
    "height": 1,
    "width": 0.5,
    "specs": "https://www.supermicro.com/en/aplus/system/2u/2124/as-2124bt-htr.cfm",
    "cpu": {
      "model": "AMD EPYC 7573X",
      "specs": "https://www.amd.com/en/products/cpu/amd-epyc-7573x",
      "sockets": 2,
      "cores": 32
    },
    "ram": {
      "dimm": 8,
      "size": 34359738368
    },
    "storage": [
      {
        "type": "nvme",
        "size": 274877906944,
        "model": "Samsung 980 Pro"
      }
    ],
    "netifs": [
      {
        "type": "ethernet",
        "bandwidth": 10000000000
      }
    ]
  },
  "slot": 40,
  "tags": [
    "compute"
  ]
}
rezib commented 9 months ago

It is fixed with the new position property. For exemple on mecn0040:

$ racksdb --db examples/db --schema schemas/racksdb.yml nodes --name mecn0040 --format json | jq
[
  {
    "name": "mecn0040",
    "infrastructure": "mercury",
    "rack": {
      "name": "R1-A01",
      "slot": 0,
      "type": {
        "id": "standard",
        "height": 1867,
        "width": 600,
        "depth": 914,
        "slots": 42,
        "initial": 1
      },
      "datacenter": "paris",
      "room": "noisy",
      "row": "R1",
      "fillrate": 0.9761904761904762
    },
    "type": {
      "id": "sm220bt",
      "model": "SuperMicro A+ Server 2124BT-HTR",
      "height": 1,
      "width": 0.5,
      "specs": "https://www.supermicro.com/en/aplus/system/2u/2124/as-2124bt-htr.cfm",
      "cpu": {
        "model": "AMD EPYC 7573X",
        "specs": "https://www.amd.com/en/products/cpu/amd-epyc-7573x",
        "sockets": 2,
        "cores": 32
      },
      "ram": {
        "dimm": 8,
        "size": 34359738368
      },
      "storage": [
        {
          "type": "nvme",
          "size": 274877906944,
          "model": "Samsung 980 Pro"
        }
      ],
      "netifs": [
        {
          "type": "ethernet",
          "bandwidth": 10000000000
        }
      ]
    },
    "slot": 40,
    "tags": [
      "compute"
    ],
    "position": {
      "height": 19,
      "width": 1
    }
  }
]

You can now use position > height to get the rack slot in which the equipment is located.