Skip to content

Commit eeb2e06

Browse files
Fix attaching volume container (#761)
* fixes attaching volume to container, closes #759 * fix test * add test
1 parent 9f29a63 commit eeb2e06

File tree

2 files changed

+12
-5
lines changed

2 files changed

+12
-5
lines changed

pkg/provision/primitives/converter.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import (
44
"encoding/json"
55
"fmt"
66
"net"
7+
"strings"
78
"time"
89

910
"github.com/threefoldtech/tfexplorer/models/generated/workloads"
@@ -16,7 +17,7 @@ import (
1617
)
1718

1819
// ContainerToProvisionType converts TfgridReservationContainer1 to Container
19-
func ContainerToProvisionType(c workloads.Container) (Container, string, error) {
20+
func ContainerToProvisionType(c workloads.Container, reservationID string) (Container, string, error) {
2021
container := Container{
2122
FList: c.Flist,
2223
FlistStorage: c.HubUrl,
@@ -42,6 +43,9 @@ func ContainerToProvisionType(c workloads.Container) (Container, string, error)
4243
}
4344

4445
for i, mount := range c.Volumes {
46+
if strings.HasPrefix(mount.VolumeId, "-") {
47+
mount.VolumeId = reservationID + mount.VolumeId
48+
}
4549
container.Mounts[i] = Mount{
4650
VolumeID: mount.VolumeId,
4751
Mountpoint: mount.Mountpoint,
@@ -218,6 +222,8 @@ func WorkloadToProvisionType(w workloads.ReservationWorkload) (*provision.Reserv
218222
ToDelete: w.ToDelete,
219223
}
220224

225+
reservationID := strings.Split(w.WorkloadId, "-")[0]
226+
221227
var (
222228
data interface{}
223229
err error
@@ -240,7 +246,8 @@ func WorkloadToProvisionType(w workloads.ReservationWorkload) (*provision.Reserv
240246
return nil, err
241247
}
242248
case workloads.Container:
243-
data, reservation.NodeID, err = ContainerToProvisionType(tmp)
249+
250+
data, reservation.NodeID, err = ContainerToProvisionType(tmp, reservationID)
244251
if err != nil {
245252
return nil, err
246253
}

pkg/provision/primitives/converter_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ func TestTfgridReservationContainer1_ToProvisionType(t *testing.T) {
9191
Interactive: false,
9292
Volumes: []workloads.ContainerMount{
9393
{
94-
VolumeId: "volume1",
94+
VolumeId: "-volume1",
9595
Mountpoint: "/mnt",
9696
},
9797
{
@@ -115,7 +115,7 @@ func TestTfgridReservationContainer1_ToProvisionType(t *testing.T) {
115115
Interactive: false,
116116
Mounts: []Mount{
117117
{
118-
VolumeID: "volume1",
118+
VolumeID: "reservation-volume1",
119119
Mountpoint: "/mnt",
120120
},
121121
{
@@ -148,7 +148,7 @@ func TestTfgridReservationContainer1_ToProvisionType(t *testing.T) {
148148
NetworkConnection: tt.fields.NetworkConnection,
149149
StatsAggregator: tt.fields.StatsAggregator,
150150
}
151-
got, _, err := ContainerToProvisionType(c)
151+
got, _, err := ContainerToProvisionType(c, "reservation")
152152
if !tt.wantErr {
153153
require.NoError(t, err)
154154
assert.DeepEqual(t, tt.want, got)

0 commit comments

Comments
 (0)