Cover full depth device in API rack elevation. #5967

Closed
opened 2025-12-29 19:34:59 +01:00 by adam · 2 comments
Owner

Originally created by @ravenrs on GitHub (Jan 19, 2022).

NetBox version

v3.1.5

Feature type

Change to existing functionality

Proposed functionality

Hello.
https://github.com/netbox-community/netbox/issues/4940 in that issue you did a functionality that makes possible to show unit occupation, but it's not a cover the case when we install full depth devices to the rack. Example:
image
output from API:

{
    "count": 42,
    "next": null,
    "previous": null,
    "results": [
        {
            "id": 42,
            "name": "U42",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U42"
        },
        {
            "id": 41,
            "name": "U41",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U41"
        },
        {
            "id": 40,
            "name": "U40",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U40"
        },
        {
            "id": 39,
            "name": "U39",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U39"
        },
        {
            "id": 38,
            "name": "U38",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U38"
        },
        {
            "id": 37,
            "name": "U37",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U37"
        },
        {
            "id": 36,
            "name": "U36",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U36"
        },
        {
            "id": 35,
            "name": "U35",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U35"
        },
        {
            "id": 34,
            "name": "U34",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U34"
        },
        {
            "id": 33,
            "name": "U33",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U33"
        },
        {
            "id": 32,
            "name": "U32",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U32"
        },
        {
            "id": 31,
            "name": "U31",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U31"
        },
        {
            "id": 30,
            "name": "U30",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U30"
        },
        {
            "id": 29,
            "name": "U29",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U29"
        },
        {
            "id": 28,
            "name": "U28",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U28"
        },
        {
            "id": 27,
            "name": "U27",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U27"
        },
        {
            "id": 26,
            "name": "U26",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U26"
        },
        {
            "id": 25,
            "name": "U25",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U25"
        },
        {
            "id": 24,
            "name": "U24",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U24"
        },
        {
            "id": 23,
            "name": "U23",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U23"
        },
        {
            "id": 22,
            "name": "U22",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U22"
        },
        {
            "id": 21,
            "name": "U21",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U21"
        },
        {
            "id": 20,
            "name": "U20",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U20"
        },
        {
            "id": 19,
            "name": "U19",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U19"
        },
        {
            "id": 18,
            "name": "U18",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U18"
        },
        {
            "id": 17,
            "name": "U17",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U17"
        },
        {
            "id": 16,
            "name": "U16",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U16"
        },
        {
            "id": 15,
            "name": "U15",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U15"
        },
        {
            "id": 14,
            "name": "U14",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U14"
        },
        {
            "id": 13,
            "name": "U13",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U13"
        },
        {
            "id": 12,
            "name": "U12",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U12"
        },
        {
            "id": 11,
            "name": "U11",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": null,
            "occupied": false,
            "display": "U11"
        },
        {
            "id": 10,
            "name": "U10",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": {
                "id": 44147,
                "url": "http://test_server/api/dcim/devices/44147/",
                "display": "test_9006",
                "name": "test_9006"
            },
            "occupied": true,
            "display": "U10"
        },
        {
            "id": 9,
            "name": "U9",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": {
                "id": 44147,
                "url": "http://test_server/api/dcim/devices/44147/",
                "display": "test_9006",
                "name": "test_9006"
            },
            "occupied": true,
            "display": "U9"
        },
        {
            "id": 8,
            "name": "U8",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": {
                "id": 44147,
                "url": "http://test_server/api/dcim/devices/44147/",
                "display": "test_9006",
                "name": "test_9006"
            },
            "occupied": true,
            "display": "U8"
        },
        {
            "id": 7,
            "name": "U7",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": {
                "id": 44147,
                "url": "http://test_server/api/dcim/devices/44147/",
                "display": "test_9006",
                "name": "test_9006"
            },
            "occupied": true,
            "display": "U7"
        },
        {
            "id": 6,
            "name": "U6",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": {
                "id": 44147,
                "url": "http://test_server/api/dcim/devices/44147/",
                "display": "test_9006",
                "name": "test_9006"
            },
            "occupied": true,
            "display": "U6"
        },
        {
            "id": 5,
            "name": "U5",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": {
                "id": 44147,
                "url": "http://test_server/api/dcim/devices/44147/",
                "display": "test_9006",
                "name": "test_9006"
            },
            "occupied": true,
            "display": "U5"
        },
        {
            "id": 4,
            "name": "U4",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": {
                "id": 44147,
                "url": "http://test_server/api/dcim/devices/44147/",
                "display": "test_9006",
                "name": "test_9006"
            },
            "occupied": true,
            "display": "U4"
        },
        {
            "id": 3,
            "name": "U3",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": {
                "id": 44147,
                "url": "http://test_server/api/dcim/devices/44147/",
                "display": "test_9006",
                "name": "test_9006"
            },
            "occupied": true,
            "display": "U3"
        },
        {
            "id": 2,
            "name": "U2",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": {
                "id": 44147,
                "url": "http://test_server/api/dcim/devices/44147/",
                "display": "test_9006",
                "name": "test_9006"
            },
            "occupied": true,
            "display": "U2"
        },
        {
            "id": 1,
            "name": "U1",
            "face": {
                "value": "front",
                "label": "Front"
            },
            "device": {
                "id": 44147,
                "url": "http://test_server/api/dcim/devices/44147/",
                "display": "test_9006",
                "name": "test_9006"
            },
            "occupied": true,
            "display": "U1"
        }
    ]
}

As you can see there are no U1-U10 face rear in the out. Is it possible to add this to API?
Thank you.

Use case

The current approach doesn't provide relevant information about free units in the rack, so users need to make additional requests to dcim.device_type model.

Database changes

No response

External dependencies

No response

Originally created by @ravenrs on GitHub (Jan 19, 2022). ### NetBox version v3.1.5 ### Feature type Change to existing functionality ### Proposed functionality Hello. https://github.com/netbox-community/netbox/issues/4940 in that issue you did a functionality that makes possible to show unit occupation, but it's not a cover the case when we install full depth devices to the rack. Example: ![image](https://user-images.githubusercontent.com/16837927/150144060-103852d2-1665-4c79-8725-431636242ecc.png) output from API: ``` { "count": 42, "next": null, "previous": null, "results": [ { "id": 42, "name": "U42", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U42" }, { "id": 41, "name": "U41", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U41" }, { "id": 40, "name": "U40", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U40" }, { "id": 39, "name": "U39", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U39" }, { "id": 38, "name": "U38", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U38" }, { "id": 37, "name": "U37", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U37" }, { "id": 36, "name": "U36", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U36" }, { "id": 35, "name": "U35", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U35" }, { "id": 34, "name": "U34", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U34" }, { "id": 33, "name": "U33", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U33" }, { "id": 32, "name": "U32", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U32" }, { "id": 31, "name": "U31", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U31" }, { "id": 30, "name": "U30", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U30" }, { "id": 29, "name": "U29", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U29" }, { "id": 28, "name": "U28", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U28" }, { "id": 27, "name": "U27", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U27" }, { "id": 26, "name": "U26", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U26" }, { "id": 25, "name": "U25", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U25" }, { "id": 24, "name": "U24", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U24" }, { "id": 23, "name": "U23", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U23" }, { "id": 22, "name": "U22", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U22" }, { "id": 21, "name": "U21", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U21" }, { "id": 20, "name": "U20", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U20" }, { "id": 19, "name": "U19", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U19" }, { "id": 18, "name": "U18", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U18" }, { "id": 17, "name": "U17", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U17" }, { "id": 16, "name": "U16", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U16" }, { "id": 15, "name": "U15", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U15" }, { "id": 14, "name": "U14", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U14" }, { "id": 13, "name": "U13", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U13" }, { "id": 12, "name": "U12", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U12" }, { "id": 11, "name": "U11", "face": { "value": "front", "label": "Front" }, "device": null, "occupied": false, "display": "U11" }, { "id": 10, "name": "U10", "face": { "value": "front", "label": "Front" }, "device": { "id": 44147, "url": "http://test_server/api/dcim/devices/44147/", "display": "test_9006", "name": "test_9006" }, "occupied": true, "display": "U10" }, { "id": 9, "name": "U9", "face": { "value": "front", "label": "Front" }, "device": { "id": 44147, "url": "http://test_server/api/dcim/devices/44147/", "display": "test_9006", "name": "test_9006" }, "occupied": true, "display": "U9" }, { "id": 8, "name": "U8", "face": { "value": "front", "label": "Front" }, "device": { "id": 44147, "url": "http://test_server/api/dcim/devices/44147/", "display": "test_9006", "name": "test_9006" }, "occupied": true, "display": "U8" }, { "id": 7, "name": "U7", "face": { "value": "front", "label": "Front" }, "device": { "id": 44147, "url": "http://test_server/api/dcim/devices/44147/", "display": "test_9006", "name": "test_9006" }, "occupied": true, "display": "U7" }, { "id": 6, "name": "U6", "face": { "value": "front", "label": "Front" }, "device": { "id": 44147, "url": "http://test_server/api/dcim/devices/44147/", "display": "test_9006", "name": "test_9006" }, "occupied": true, "display": "U6" }, { "id": 5, "name": "U5", "face": { "value": "front", "label": "Front" }, "device": { "id": 44147, "url": "http://test_server/api/dcim/devices/44147/", "display": "test_9006", "name": "test_9006" }, "occupied": true, "display": "U5" }, { "id": 4, "name": "U4", "face": { "value": "front", "label": "Front" }, "device": { "id": 44147, "url": "http://test_server/api/dcim/devices/44147/", "display": "test_9006", "name": "test_9006" }, "occupied": true, "display": "U4" }, { "id": 3, "name": "U3", "face": { "value": "front", "label": "Front" }, "device": { "id": 44147, "url": "http://test_server/api/dcim/devices/44147/", "display": "test_9006", "name": "test_9006" }, "occupied": true, "display": "U3" }, { "id": 2, "name": "U2", "face": { "value": "front", "label": "Front" }, "device": { "id": 44147, "url": "http://test_server/api/dcim/devices/44147/", "display": "test_9006", "name": "test_9006" }, "occupied": true, "display": "U2" }, { "id": 1, "name": "U1", "face": { "value": "front", "label": "Front" }, "device": { "id": 44147, "url": "http://test_server/api/dcim/devices/44147/", "display": "test_9006", "name": "test_9006" }, "occupied": true, "display": "U1" } ] } ``` As you can see there are no U1-U10 face rear in the out. Is it possible to add this to API? Thank you. ### Use case The current approach doesn't provide relevant information about free units in the rack, so users need to make additional requests to dcim.device_type model. ### Database changes _No response_ ### External dependencies _No response_
adam added the type: featurepending closure labels 2025-12-29 19:34:59 +01:00
adam closed this issue 2025-12-29 19:34:59 +01:00
Author
Owner

@github-actions[bot] commented on GitHub (Mar 21, 2022):

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our contributing guide.

@github-actions[bot] commented on GitHub (Mar 21, 2022): This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. NetBox is governed by a small group of core maintainers which means not all opened issues may receive direct feedback. Please see our [contributing guide](https://github.com/netbox-community/netbox/blob/develop/CONTRIBUTING.md).
Author
Owner

@github-actions[bot] commented on GitHub (Apr 20, 2022):

This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.

@github-actions[bot] commented on GitHub (Apr 20, 2022): This issue has been automatically closed due to lack of activity. In an effort to reduce noise, please do not comment any further. Note that the core maintainers may elect to reopen this issue at a later date if deemed necessary.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/netbox#5967