Skip to content

Commit e3ef25c

Browse files
committed
Update VolumesExtension.java
Added a functionality("UploadToImage") to upload a volume as an image to the image service.
1 parent 2f5138d commit e3ef25c

File tree

1 file changed

+51
-28
lines changed

1 file changed

+51
-28
lines changed
Lines changed: 51 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,83 +1,106 @@
11
package com.woorea.openstack.nova.api.extensions;
22

3-
43
import com.woorea.openstack.base.client.Entity;
54
import com.woorea.openstack.base.client.HttpMethod;
65
import com.woorea.openstack.base.client.OpenStackClient;
76
import com.woorea.openstack.base.client.OpenStackRequest;
87
import com.woorea.openstack.nova.model.Metadata;
98
import com.woorea.openstack.nova.model.Volume;
109
import com.woorea.openstack.nova.model.VolumeForCreate;
10+
import com.woorea.openstack.nova.model.VolumeForImageCreate;
1111
import com.woorea.openstack.nova.model.Volumes;
1212

1313
public class VolumesExtension {
14-
14+
1515
private final OpenStackClient CLIENT;
16-
16+
1717
public VolumesExtension(OpenStackClient client) {
1818
CLIENT = client;
1919
}
20-
20+
2121
public List list(boolean detail) {
2222
return new List(detail);
2323
}
24-
25-
public Create create(VolumeForCreate volumeForCreate) {
26-
return new Create(volumeForCreate);
24+
25+
public Create create(VolumeForCreate volume) {
26+
return new Create(volume);
27+
}
28+
29+
public UploadToImage uploadToImage(VolumeForImageCreate volumeForImage) {
30+
return new UploadToImage(volumeForImage);
2731
}
28-
32+
2933
public Show show(String id) {
3034
return new Show(id);
3135
}
32-
36+
3337
public ShowMetadata showMetadata(String id) {
3438
return new ShowMetadata(id);
3539
}
3640

37-
3841
public Delete delete(String id) {
3942
return new Delete(id);
4043
}
4144

4245
public class List extends OpenStackRequest<Volumes> {
43-
46+
4447
public List(boolean detail) {
45-
super(CLIENT, HttpMethod.GET, detail ? "/os-volumes/detail" : "/os-volumes", null, Volumes.class);
48+
super(CLIENT, HttpMethod.GET, detail ? "/os-volumes/detail"
49+
: "/os-volumes", null, Volumes.class);
4650
}
4751

4852
}
49-
53+
5054
public class Create extends OpenStackRequest<Volume> {
5155

52-
public Create(VolumeForCreate volumeForCreate) {
53-
super(CLIENT, HttpMethod.POST, "/os-volumes", Entity.json(volumeForCreate), Volume.class);
56+
// private Volume volume;
57+
58+
public Create(VolumeForCreate volume) {
59+
super(CLIENT, HttpMethod.POST, "/os-volumes", Entity.json(volume),
60+
Volume.class);
61+
// this.volume = volume;
62+
}
63+
64+
}
65+
66+
// Upload volume to image service as image
67+
68+
public class UploadToImage extends OpenStackRequest<Void> {
69+
70+
public UploadToImage(VolumeForImageCreate volumeForImageCreate) {
71+
super(CLIENT, HttpMethod.POST, new StringBuilder("/volumes/")
72+
.append(volumeForImageCreate.getVolumeId() + "/action"),
73+
Entity.json(volumeForImageCreate), Void.class);
5474
}
55-
75+
5676
}
57-
77+
5878
public class Show extends OpenStackRequest<Volume> {
59-
79+
6080
public Show(String id) {
61-
super(CLIENT, HttpMethod.GET, new StringBuilder("/os-volumes/").append(id).toString(), null, Volume.class);
81+
super(CLIENT, HttpMethod.GET, new StringBuilder("/os-volumes/")
82+
.append(id).toString(), null, Volume.class);
6283
}
6384

6485
}
65-
86+
6687
public class ShowMetadata extends OpenStackRequest<Metadata> {
67-
88+
6889
public ShowMetadata(String id) {
69-
super(CLIENT, HttpMethod.GET, new StringBuilder("/os-volumes/").append(id).append("/metadata").toString(), null, Metadata.class);
90+
super(CLIENT, HttpMethod.GET, new StringBuilder("/os-volumes/")
91+
.append(id).append("/metadata").toString(), null,
92+
Metadata.class);
7093
}
7194

7295
}
73-
96+
7497
public class Delete extends OpenStackRequest<Void> {
75-
98+
7699
public Delete(String id) {
77-
super(CLIENT, HttpMethod.DELETE, new StringBuilder("/os-volumes/").append(id).toString(), null, Void.class);
100+
super(CLIENT, HttpMethod.DELETE, new StringBuilder("/os-volumes/")
101+
.append(id).toString(), null, Void.class);
78102
}
79-
103+
80104
}
81-
82-
}
83105

106+
}

0 commit comments

Comments
 (0)