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

Expose partitions on D-Bus #1016

Merged
merged 5 commits into from
Jan 30, 2024

Conversation

joseivanlopez
Copy link
Contributor

@joseivanlopez joseivanlopez commented Jan 26, 2024

Problem

The Agama storage service currently exports a tree of devices on D-Bus. Such a tree only contains objects for the candidate devices for the installation. But the information about their partitions is missing. Partitions are need for serveral reasons, for example, to indicate how to find space in the selected devices.

Solution

Make the tree of devices to include objects for the partitions. The partition object implements the org.opensuse.Agama.Storage1.Block interface.

# busctl --address unix:path=/run/agama/bus tree org.opensuse.Agama.Storage1
└─/org
  └─/org/opensuse
    └─/org/opensuse/Agama
      └─/org/opensuse/Agama/Storage1
        ├─/org/opensuse/Agama/Storage1/Proposal
        └─/org/opensuse/Agama/Storage1/system
          ├─/org/opensuse/Agama/Storage1/system/68
          ├─/org/opensuse/Agama/Storage1/system/69
          ├─/org/opensuse/Agama/Storage1/system/70
          ├─/org/opensuse/Agama/Storage1/system/71
          ├─/org/opensuse/Agama/Storage1/system/77
          ├─/org/opensuse/Agama/Storage1/system/79
          ├─/org/opensuse/Agama/Storage1/system/80
          ├─/org/opensuse/Agama/Storage1/system/82
          ├─/org/opensuse/Agama/Storage1/system/83
          └─/org/opensuse/Agama/Storage1/system/85

# busctl --address unix:path=/run/agama/bus introspect org.opensuse.Agama.Storage1 /org/opensuse/Agama/Storage1/system/68 org.opensuse.Agama.Storage1.PartitionTable
NAME                                       TYPE      SIGNATURE RESULT/VALUE                             FLAGS
.Partitions                                property  ao        1 "/org/opensuse/Agama/Storage1/system/… emits-change
.Type                                      property  s         "gpt"                                    emits-change

# busctl --address unix:path=/run/agama/bus get-property org.opensuse.Agama.Storage1 /org/opensuse/Agama/Storage1/system/68 org.opensuse.Agama.Storage1.PartitionTable Partitions
ao 1 "/org/opensuse/Agama/Storage1/system/77"

# busctl --address unix:path=/run/agama/bus introspect org.opensuse.Agama.Storage1 /org/opensuse/Agama/Storage1/system/77
NAME                                TYPE      SIGNATURE RESULT/VALUE               FLAGS
org.freedesktop.DBus.Introspectable interface -         -                          -
.Introspect                         method    -         s                          -
org.freedesktop.DBus.Properties     interface -         -                          -
.Get                                method    ss        v                          -
.GetAll                             method    s         a{sv}                      -
.Set                                method    ssv       -                          -
.PropertiesChanged                  signal    sa{sv}as  -                          -
org.opensuse.Agama.Storage1.Block   interface -         -                          -
.Active                             property  b         true                       emits-change
.Name                               property  s         "/dev/vdb1"                emits-change
.RecoverableSize                    property  t         2145386496                 emits-change
.Size                               property  t         2147483648                 emits-change
.Systems                            property  as        0                          emits-change
.UdevIds                            property  as        0                          emits-change
.UdevPaths                          property  as        1 "pci-0000:08:00.0-part1" emits-change

Testing

  • Added new unit tests
  • Tested manually

@joseivanlopez joseivanlopez force-pushed the partitions-dbus branch 6 times, most recently from c3a49a2 to f8147bf Compare January 29, 2024 13:16
@joseivanlopez joseivanlopez marked this pull request as ready for review January 29, 2024 13:54
@lslezak
Copy link
Contributor

lslezak commented Jan 29, 2024

I have fixed the container to correctly use the Ruby 3.3 packages, the tests do not fail anymore.

Copy link
Contributor

@imobachgs imobachgs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@joseivanlopez joseivanlopez merged commit ae5f6da into agama-project:master Jan 30, 2024
3 checks passed
@imobachgs imobachgs mentioned this pull request Feb 12, 2024
@imobachgs imobachgs mentioned this pull request May 17, 2024
imobachgs added a commit that referenced this pull request May 17, 2024
Prepare for releasing Agama 8. It includes the following pull requests:

* #884
* #886
* #914
* #918
* #956
* #957
* #958
* #959
* #960
* #961
* #962
* #963
* #964
* #965
* #966
* #969
* #970
* #976
* #977
* #978
* #979
* #980
* #981
* #983
* #984
* #985
* #986
* #988
* #991
* #992
* #995
* #996
* #997
* #999
* #1003
* #1004
* #1006
* #1007
* #1008
* #1009
* #1010
* #1011
* #1012
* #1014
* #1015
* #1016
* #1017
* #1020
* #1022
* #1023
* #1024
* #1025
* #1027
* #1028
* #1029
* #1030
* #1031
* #1032
* #1033
* #1034
* #1035
* #1036
* #1038
* #1039
* #1041
* #1042
* #1043
* #1045
* #1046
* #1047
* #1048
* #1052
* #1054
* #1056
* #1057
* #1060
* #1061
* #1062
* #1063
* #1064
* #1066
* #1067
* #1068
* #1069
* #1071
* #1072
* #1073
* #1074
* #1075
* #1079
* #1080
* #1081
* #1082
* #1085
* #1086
* #1087
* #1088
* #1089
* #1090
* #1091
* #1092
* #1093
* #1094
* #1095
* #1096
* #1097
* #1098
* #1099
* #1100
* #1102
* #1103
* #1104
* #1105
* #1106
* #1109
* #1110
* #1111
* #1112
* #1114
* #1116
* #1117
* #1118
* #1119
* #1120
* #1121
* #1122
* #1123
* #1125
* #1126
* #1127
* #1128
* #1129
* #1130
* #1131
* #1132
* #1133
* #1134
* #1135
* #1136
* #1138
* #1139
* #1140
* #1141
* #1142
* #1143
* #1144
* #1145
* #1146
* #1147
* #1148
* #1149
* #1151
* #1152
* #1153
* #1154
* #1155
* #1156
* #1157
* #1158
* #1160
* #1161
* #1162
* #1163
* #1164
* #1165
* #1166
* #1167
* #1168
* #1169
* #1170
* #1171
* #1172
* #1173
* #1174
* #1175
* #1177
* #1178
* #1180
* #1181
* #1182
* #1183
* #1184
* #1185
* #1187
* #1188
* #1189
* #1190
* #1191
* #1192
* #1193
* #1194
* #1195
* #1196
* #1198
* #1199
* #1200
* #1201
* #1203
* #1204
* #1205
* #1206
* #1207
* #1208
* #1209
* #1210
* #1211
* #1212
* #1213
* #1214
* #1215
* #1216
* #1217
* #1219
* #1220
* #1221
* #1222
* #1223
* #1224
* #1225
* #1226
* #1227
* #1229
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants