Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[omdb] Add support for showing physical disks in blueprints and inventory #5624

Closed
andrewjstone opened this issue Apr 25, 2024 · 0 comments · Fixed by #5745
Closed

[omdb] Add support for showing physical disks in blueprints and inventory #5624

andrewjstone opened this issue Apr 25, 2024 · 0 comments · Fixed by #5745
Assignees

Comments

@andrewjstone
Copy link
Contributor

No description provided.

@andrewjstone andrewjstone self-assigned this Apr 25, 2024
andrewjstone added a commit that referenced this issue Apr 29, 2024
Fixes #5624

I added a requirement when filtering on sled-id, that we also filter on
collection-id, because filtering on sled-id does a full table scan and
requires a new index. I can make that change if we feel it's important.

I specifically did not add blueprint diff support for physical disks
yet. I'd like to discuss changing the mechanisms we use to generate
blueprint output in general, and think it can be structured such that
adding more data is trivial.

Example output is below. For some reason, the blueprint table rendering
doesn't look quite right. I don't think I did anything wrong, but it's
hard to tell. This is part of why I'd like to make output rendering
automatic based on a unified data structure computed from input and
passed to the renderer. This would not require a whole bunch of manual
spacing and alignment as defined in constants.

```
root@oxz_switch:~# /opt/oxide/omdb/bin/omdb nexus blueprints show current
note: Nexus URL not specified.  Will pick one from DNS.
note: using DNS server for subnet fd00:1122:3344::/48
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using Nexus URL http://[fd00:1122:3344:101::6]:12221
blueprint  8427f7bc-1216-4505-975b-edc633ba9913
parent:    <none>

  ----------------------------------------------------------------------------------------------
    zone type         zone ID                                disposition  underlay IP
  ----------------------------------------------------------------------------------------------

  sled 29c884fd-8abd-4e01-9ddd-1a74b35835dd: blueprint zones at generation 5
    boundary_ntp      641b2498-b006-4b2a-9d5a-1e2ee4fdc54d   in service   fd00:1122:3344:101::d
    cockroach_db      3f964671-7970-4390-9ed9-60d7267b1b75   in service   fd00:1122:3344:101::3
    cockroach_db      aa482257-82d7-4f22-8b32-655a4b32a260   in service   fd00:1122:3344:101::4
    crucible          23c9bb89-51de-4ec4-8ba0-1c90cdb7ca93   in service   fd00:1122:3344:101::c
    crucible          3910e950-0360-48d8-8220-9a5a2746bd89   in service   fd00:1122:3344:101::9
    crucible          42df7db6-82d5-4b9e-acdb-c2e91746d5e1   in service   fd00:1122:3344:101::a
    crucible          76da4127-3375-46af-996d-96be72e5e9f8   in service   fd00:1122:3344:101::8
    crucible          fa0c0343-2832-48f7-b980-845baa27893e   in service   fd00:1122:3344:101::b
    crucible_pantry   0bf91fa9-296c-4eab-890a-d50571a4202d   in service   fd00:1122:3344:101::7
    external_dns      efb31e4e-4116-45a0-9bbd-4410493f8dd3   in service   fd00:1122:3344:101::5
    internal_dns      f9360481-ce66-416a-8c33-dfa2510a0376   in service   fd00:1122:3344:1::1
    nexus             8d40088f-1760-4ebc-9c69-edc44efb8401   in service   fd00:1122:3344:101::6

  sled 673033c9-88ee-45e8-8c1a-bd0220c28595: blueprint zones at generation 5
    boundary_ntp      aeec5e62-c065-47f2-aba7-f0caad3ef65a   in service   fd00:1122:3344:102::d
    cockroach_db      37cb5ffb-af57-431d-aabb-64362ed364f6   in service   fd00:1122:3344:102::4
    cockroach_db      9822ba9f-7993-4732-b78c-ddaee3b4489e   in service   fd00:1122:3344:102::3
    crucible          584195be-2801-4bd0-ac0f-48403b1a0441   in service   fd00:1122:3344:102::b
    crucible          6ba8b19c-6ade-40aa-a574-d23f475294e0   in service   fd00:1122:3344:102::8
    crucible          aa427122-8a59-40aa-816c-e25b69b34c7b   in service   fd00:1122:3344:102::c
    crucible          c0edeeb4-2284-41d4-b639-b147e2fff085   in service   fd00:1122:3344:102::9
    crucible          fd9384da-9a72-4f09-b375-988620aa5ef9   in service   fd00:1122:3344:102::a
    crucible_pantry   7bdc1884-edea-4683-a00a-b7b48c7c8a8f   in service   fd00:1122:3344:102::7
    internal_dns      d12e0dd4-0482-45c2-8614-70f06668f50c   in service   fd00:1122:3344:2::1
    nexus             f788fd46-3439-4537-9491-02def3179dfb   in service   fd00:1122:3344:102::5
    oximeter          3b2c06fb-09c6-466d-af76-f5df012bc606   in service   fd00:1122:3344:102::6

  sled f33f8098-f78f-40a7-ad15-7545c7d67c6f: blueprint zones at generation 5
    clickhouse        a6c66950-6b56-4b3f-9ed0-83c502411a27   in service   fd00:1122:3344:103::6
    cockroach_db      34d1d439-c2eb-41af-ac3e-c2199686060a   in service   fd00:1122:3344:103::3
    crucible          47631184-a98b-46cf-a4e9-32c16b6c5292   in service   fd00:1122:3344:103::8
    crucible          4b8b2cc9-393e-45ea-85bb-19e2c356357c   in service   fd00:1122:3344:103::a
    crucible          6d62a1b5-5123-4b74-865f-af376dddaed6   in service   fd00:1122:3344:103::b
    crucible          7513605c-63fb-4c62-8edd-6bc86a04172f   in service   fd00:1122:3344:103::c
    crucible          93ff9d16-3678-425b-a7bb-b87be14cab89   in service   fd00:1122:3344:103::9
    crucible_pantry   96da4762-bd36-4481-b0a0-5602fbf40636   in service   fd00:1122:3344:103::7
    external_dns      1986b11b-f956-435e-b245-5d9860e5a310   in service   fd00:1122:3344:103::4
    internal_dns      1dc8ec37-71f8-41d8-8516-1f6414c17cf0   in service   fd00:1122:3344:3::1
    internal_ntp      f5e917ae-61b2-4943-8679-e1a4e729f23c   in service   fd00:1122:3344:103::d
    nexus             06990808-1d50-483b-8883-dd018566ab0b   in service   fd00:1122:3344:103::5

      -----------------------------------------------------------------------
          vendor               model                 serial
      -----------------------------------------------------------------------

  sled 29c884fd-8abd-4e01-9ddd-1a74b35835dd: blueprint disks at generation 1
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g0_4
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g0_1
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g0_0
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g0_2
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g0_3

  sled 673033c9-88ee-45e8-8c1a-bd0220c28595: blueprint disks at generation 1
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g1_0
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g1_2
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g1_3
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g1_4
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g1_1

  sled f33f8098-f78f-40a7-ad15-7545c7d67c6f: blueprint disks at generation 1
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g3_1
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g3_3
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g3_4
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g3_2
          synthetic-vendor     synthetic-model-U2    synthetic-serial-g3_0

METADATA:
  created by:            RSS
  created at:            2024-04-28T20:36:03.980Z
  comment:               initial blueprint from rack setup
  internal DNS version:  1
  external DNS version:  2

root@oxz_switch:~# omdb db inventory physical-disks                                                                                                                                                                                                                                                                              [40/1886]
note: database URL not specified.  Will search DNS.
note: (override with --db-url or OMDB_DB_URL)
note: using DNS server for subnet fd00:1122:3344::/48
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using database URL postgresql://root@[fd00:1122:3344:103::3]:32221,[fd00:1122:3344:102::4]:32221,[fd00:1122:3344:101::3]:32221,[fd00:1122:3344:102::3]:32221,[fd00:1122:3344:101::4]:32221/omicron?sslmode=disable
note: database schema version matches expected (55.0.0)
INV_COLLECTION_ID                    SLED_ID                              SLOT VENDOR           MODEL              SERIAL             VARIANT
05e9f7ca-2918-4f32-b80d-da00ef166cba 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
05e9f7ca-2918-4f32-b80d-da00ef166cba 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
05e9f7ca-2918-4f32-b80d-da00ef166cba 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba 673033c9-88ee-45e8-8c1a-bd0220c28595 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
05e9f7ca-2918-4f32-b80d-da00ef166cba 673033c9-88ee-45e8-8c1a-bd0220c28595 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
05e9f7ca-2918-4f32-b80d-da00ef166cba 673033c9-88ee-45e8-8c1a-bd0220c28595 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba 673033c9-88ee-45e8-8c1a-bd0220c28595 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba 673033c9-88ee-45e8-8c1a-bd0220c28595 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba 673033c9-88ee-45e8-8c1a-bd0220c28595 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba 673033c9-88ee-45e8-8c1a-bd0220c28595 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba f33f8098-f78f-40a7-ad15-7545c7d67c6f 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
05e9f7ca-2918-4f32-b80d-da00ef166cba f33f8098-f78f-40a7-ad15-7545c7d67c6f 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
05e9f7ca-2918-4f32-b80d-da00ef166cba f33f8098-f78f-40a7-ad15-7545c7d67c6f 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba f33f8098-f78f-40a7-ad15-7545c7d67c6f 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba f33f8098-f78f-40a7-ad15-7545c7d67c6f 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba f33f8098-f78f-40a7-ad15-7545c7d67c6f 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
05e9f7ca-2918-4f32-b80d-da00ef166cba f33f8098-f78f-40a7-ad15-7545c7d67c6f 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 673033c9-88ee-45e8-8c1a-bd0220c28595 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 673033c9-88ee-45e8-8c1a-bd0220c28595 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 673033c9-88ee-45e8-8c1a-bd0220c28595 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 673033c9-88ee-45e8-8c1a-bd0220c28595 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 673033c9-88ee-45e8-8c1a-bd0220c28595 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 673033c9-88ee-45e8-8c1a-bd0220c28595 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 673033c9-88ee-45e8-8c1a-bd0220c28595 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
0ebd0ca5-fe60-4cd8-875c-73b2f9e1df60 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
2849b637-259b-480b-80ac-b4cee420c286 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
2849b637-259b-480b-80ac-b4cee420c286 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 673033c9-88ee-45e8-8c1a-bd0220c28595 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
2849b637-259b-480b-80ac-b4cee420c286 673033c9-88ee-45e8-8c1a-bd0220c28595 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
2849b637-259b-480b-80ac-b4cee420c286 673033c9-88ee-45e8-8c1a-bd0220c28595 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 673033c9-88ee-45e8-8c1a-bd0220c28595 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 673033c9-88ee-45e8-8c1a-bd0220c28595 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 673033c9-88ee-45e8-8c1a-bd0220c28595 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 673033c9-88ee-45e8-8c1a-bd0220c28595 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
2849b637-259b-480b-80ac-b4cee420c286 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
2849b637-259b-480b-80ac-b4cee420c286 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
2849b637-259b-480b-80ac-b4cee420c286 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2

root@oxz_switch:~# omdb db inventory physical-disks --collection-id d55a7642-d15b-4687-8e7d-7a1a9dec3952
note: database URL not specified.  Will search DNS.
note: (override with --db-url or OMDB_DB_URL)
note: using DNS server for subnet fd00:1122:3344::/48
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using database URL postgresql://root@[fd00:1122:3344:103::3]:32221,[fd00:1122:3344:102::4]:32221,[fd00:1122:3344:101::3]:32221,[fd00:1122:3344:102::3]:32221,[fd00:1122:3344:101::4]:32221/omicron?sslmode=disable
note: database schema version matches expected (55.0.0)
INV_COLLECTION_ID                    SLED_ID                              SLOT VENDOR           MODEL              SERIAL             VARIANT
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 29c884fd-8abd-4e01-9ddd-1a74b35835dd 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 673033c9-88ee-45e8-8c1a-bd0220c28595 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2

root@oxz_switch:~# omdb db inventory physical-disks --collection-id d55a7642-d15b-4687-8e7d-7a1a9dec3952 --sled-id f33f8098-f78f-40a7-ad15-7545c7d67c6f
note: database URL not specified.  Will search DNS.
note: (override with --db-url or OMDB_DB_URL)
note: using DNS server for subnet fd00:1122:3344::/48
note: (if this is not right, use --dns-server to specify an alternate DNS server)
note: using database URL postgresql://root@[fd00:1122:3344:103::3]:32221,[fd00:1122:3344:102::4]:32221,[fd00:1122:3344:101::3]:32221,[fd00:1122:3344:102::3]:32221,[fd00:1122:3344:101::4]:32221/omicron?sslmode=disable
note: database schema version matches expected (55.0.0)
INV_COLLECTION_ID                    SLED_ID                              SLOT VENDOR           MODEL              SERIAL             VARIANT
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1024 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1025 synthetic-vendor synthetic-model-M2 synthetic-model-M2 M2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1026 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1027 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1028 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1029 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
d55a7642-d15b-4687-8e7d-7a1a9dec3952 f33f8098-f78f-40a7-ad15-7545c7d67c6f 1030 synthetic-vendor synthetic-model-U2 synthetic-model-U2 U2
andrewjstone added a commit that referenced this issue May 13, 2024
This PR changes the construction and display of blueprint diffs
significantly. The need for the changes arose out of the tight coupling
between zones and sleds. When adding disks to the mix we needed to also
take them into account when determininig when a sled was modified. We also
want to display physical disks as tables along with the zone tables
under the sleds. This turned out to be somewhat trickier than necesary,
and so I changed how the tables were constructed and rendered. Hopefully
this will also make it easier to add new tables in the future.

One possibly controversial change is that I changed the way zone
modifications are rendered. They are no longer three lines long.
Currently only `disposition` is allowed to change, and so I used an
arrow from "old" to "new" versions. Additionally, I removed the (added/
modified/removed) suffixes as they seem redundant to me, make the lines
longer, and make things harder to read IMO. I'm open to discussion about
both of these changes. My guess is that eventually, we'll want to be
able to do row filtering, and I plan to also add some colored output,
also in this PR most likely.

It should be noted that the output mechanism is decoupled from the
representation of the tables, `BpSledSubtable`. This allows output in
other formats if desired in the future.

As for the inventory collection output, I added a requirement when
filtering on sled-id, that we also filter on collection-id, because
filtering on sled-id does a full table scan and requires a new index. I
can add the index instead if we feel it's important.

Fixes #5624
andrewjstone added a commit that referenced this issue May 13, 2024
This PR changes the construction and display of blueprint diffs
significantly. The need for the changes arose out of the tight coupling
between zones and sleds. When adding disks to the mix we needed to also
take them into account when determininig when a sled was modified. We also
want to display physical disks as tables along with the zone tables
under the sleds. This turned out to be somewhat trickier than necesary,
and so I changed how the tables were constructed and rendered. Hopefully
this will also make it easier to add new tables in the future.

One possibly controversial change is that I changed the way zone
modifications are rendered. They are no longer three lines long.
Currently only `disposition` is allowed to change, and so I used an
arrow from "old" to "new" versions. Additionally, I removed the (added/
modified/removed) suffixes as they seem redundant to me, make the lines
longer, and make things harder to read IMO. I'm open to discussion about
both of these changes. My guess is that eventually, we'll want to be
able to do row filtering, and I plan to also add some colored output,
also in this PR most likely.

It should be noted that the output mechanism is decoupled from the
representation of the tables, `BpSledSubtable`. This allows output in
other formats if desired in the future.

As for the inventory collection output, I added a requirement when
filtering on sled-id, that we also filter on collection-id, because
filtering on sled-id does a full table scan and requires a new index. I
can add the index instead if we feel it's important.

Fixes #5624
andrewjstone added a commit that referenced this issue May 15, 2024
This PR changes the construction and display of blueprint diffs
significantly. The need for the changes arose out of the tight coupling
between zones and sleds. When adding disks to the mix we needed to also
take them into account when determininig when a sled was modified. We also
want to display physical disks as tables along with the zone tables
under the sleds. This turned out to be somewhat trickier than necesary,
and so I changed how the tables were constructed and rendered. Hopefully
this will also make it easier to add new tables in the future.

One possibly controversial change is that I changed the way zone
modifications are rendered. They are no longer three lines long.
Currently only `disposition` is allowed to change, and so I used an
arrow from "old" to "new" versions. Additionally, I removed the (added/
modified/removed) suffixes as they seem redundant to me, make the lines
longer, and make things harder to read IMO. I'm open to discussion about
both of these changes. My guess is that eventually, we'll want to be
able to do row filtering, and I plan to also add some colored output,
also in this PR most likely.

It should be noted that the output mechanism is decoupled from the
representation of the tables, `BpSledSubtable`. This allows output in
other formats if desired in the future.

As for the inventory collection output, I added a requirement when
filtering on sled-id, that we also filter on collection-id, because
filtering on sled-id does a full table scan and requires a new index. I
can add the index instead if we feel it's important.

Fixes #5624
andrewjstone added a commit that referenced this issue May 16, 2024
This PR changes the construction and display of blueprint diffs
significantly. The need for the changes arose out of the tight coupling
between zones and sleds. When adding disks to the mix we needed to also
take them into account when determininig when a sled was modified. We
also want to display physical disks as tables along with the zone tables
under the sleds. This turned out to be somewhat trickier than necesary,
and so I changed how the tables were constructed and rendered. Hopefully
this will also make it easier to add new tables in the future.

One possibly controversial change is that I changed the way zone
modifications are rendered. They are no longer three lines long.
Currently only `disposition` is allowed to change, and so I used an
arrow from "old" to "new" versions. Additionally, I removed the (added/
modified/removed) suffixes as they seem redundant to me, make the lines
longer, and make things harder to read IMO. I'm open to discussion about
both of these changes. My guess is that eventually, we'll want to be
able to do row filtering, and I plan to also add some colored output,
also in this PR most likely.

It should be noted that the output mechanism is decoupled from the
representation of the tables, `BpSledSubtable`. This allows output in
other formats if desired in the future.

As for the inventory collection output, I added a requirement when
filtering on sled-id, that we also filter on collection-id, because
filtering on sled-id does a full table scan and requires a new index. I
can add the index instead if we feel it's important.

Fixes #5624
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
1 participant