Statistics
| Branch: | Tag: | Revision:

root / docs / collection_of_examples / imageregister.rst @ 404eb288

History | View | Annotate | Download (17.7 kB)

1 0b158e6b Stavros Sachtouris
Image registration
2 0b158e6b Stavros Sachtouris
==================
3 0b158e6b Stavros Sachtouris
4 0b158e6b Stavros Sachtouris
In Synnefo, an image is loaded as a file to the storage service (Pithos+), and
5 0b158e6b Stavros Sachtouris
then is registered to the image service (Plankton). The image location at the
6 0b158e6b Stavros Sachtouris
storage server is unique through out a deployment and also necessary for the
7 0b158e6b Stavros Sachtouris
image to exist.
8 0b158e6b Stavros Sachtouris
9 0b158e6b Stavros Sachtouris
The image location format::
10 0b158e6b Stavros Sachtouris
11 0b158e6b Stavros Sachtouris
    pithos://<user id>/<container>/<object path>
12 0b158e6b Stavros Sachtouris
13 0b158e6b Stavros Sachtouris
    e.g.:
14 0b158e6b Stavros Sachtouris
15 0b158e6b Stavros Sachtouris
    pithos://s0m3-u53r-1d/pithos/debian_base3.diskdump
16 0b158e6b Stavros Sachtouris
17 f2ea1314 Stavros Sachtouris
The crussial element in an image location is the container (e.g. `pithos`) and
18 f2ea1314 Stavros Sachtouris
the image object path (e.g. `debian_base3.diskdump`).
19 0b158e6b Stavros Sachtouris
20 0b158e6b Stavros Sachtouris
Register an image
21 0b158e6b Stavros Sachtouris
-----------------
22 0b158e6b Stavros Sachtouris
23 0b158e6b Stavros Sachtouris
Let the image file `debian_base3.diskdump` be a debian image located at the
24 0b158e6b Stavros Sachtouris
current directory.
25 0b158e6b Stavros Sachtouris
26 0b158e6b Stavros Sachtouris
Upload the image to container `pithos`
27 0b158e6b Stavros Sachtouris
28 0b158e6b Stavros Sachtouris
.. code-block:: console
29 0b158e6b Stavros Sachtouris
30 0b158e6b Stavros Sachtouris
    [kamaki]: file upload debian_base3.diskdump pithos
31 0b158e6b Stavros Sachtouris
    Uploading /home/someuser/debian_base3.diskdump --> pithos:debian_base3.diskdump
32 0b158e6b Stavros Sachtouris
    Done
33 0b158e6b Stavros Sachtouris
    [kamaki]:
34 0b158e6b Stavros Sachtouris
35 0b158e6b Stavros Sachtouris
Register the image object with the name 'Debian Base Alpha'
36 0b158e6b Stavros Sachtouris
37 0b158e6b Stavros Sachtouris
.. code-block:: console
38 0b158e6b Stavros Sachtouris
39 f2ea1314 Stavros Sachtouris
    [kamaki]: image register 'Debian Base Alpha' pithos:debian_base3.diskdump
40 0b158e6b Stavros Sachtouris
    checksum:         3cb03556ec971f...e8dd6190443b560cb7
41 0b158e6b Stavros Sachtouris
    container-format: bare
42 0b158e6b Stavros Sachtouris
    created-at:       2013-06-19 08:00:22
43 0b158e6b Stavros Sachtouris
    deleted-at:       
44 0b158e6b Stavros Sachtouris
    disk-format:      diskdump
45 0b158e6b Stavros Sachtouris
    id:               7h1rd-1m4g3-1d
46 0b158e6b Stavros Sachtouris
    is-public:        False
47 0b158e6b Stavros Sachtouris
    location:         pithos://s0m3-u53r-1d/pithos/debian_base3.diskdump
48 0b158e6b Stavros Sachtouris
    name:             Debian Base Alpha
49 0b158e6b Stavros Sachtouris
    owner:            s0m3-u53r-1d
50 0b158e6b Stavros Sachtouris
    properties:      
51 0b158e6b Stavros Sachtouris
    size:             903471104
52 0b158e6b Stavros Sachtouris
    status:           available
53 0b158e6b Stavros Sachtouris
    updated-at:       2013-06-19 08:01:00
54 0b158e6b Stavros Sachtouris
    Metadata file uploaded as pithos:debian_base3.diskdump.meta (version 1352)
55 0b158e6b Stavros Sachtouris
    [kamaki]:
56 0b158e6b Stavros Sachtouris
57 f2ea1314 Stavros Sachtouris
.. note:: The `image register` command automatically creates a meta file and
58 0b158e6b Stavros Sachtouris
    uploads it to the same location as the image. The meta file can be
59 0b158e6b Stavros Sachtouris
    downloaded and reused for more image registrations.
60 0b158e6b Stavros Sachtouris
61 0b158e6b Stavros Sachtouris
Read the metafile
62 0b158e6b Stavros Sachtouris
63 0b158e6b Stavros Sachtouris
.. code-block:: console
64 0b158e6b Stavros Sachtouris
65 0b158e6b Stavros Sachtouris
    [kamaki]: file cat pithos:debian_base3.diskdump
66 0b158e6b Stavros Sachtouris
    {
67 0b158e6b Stavros Sachtouris
      "status": "available", 
68 0b158e6b Stavros Sachtouris
      "name": "Debian Base Gama", 
69 0b158e6b Stavros Sachtouris
      "checksum": "3cb03556ec971f...e8dd6190443b560cb7", 
70 0b158e6b Stavros Sachtouris
      "id": "7h1rd-1m4g3-1d2", 
71 0b158e6b Stavros Sachtouris
      "updated-at": "2013-06-19 08:01:00", 
72 0b158e6b Stavros Sachtouris
      "created-at": "2013-06-19 08:00:22", 
73 0b158e6b Stavros Sachtouris
      "properties": {}, 
74 0b158e6b Stavros Sachtouris
      "location": "pithos://s0m3-u53r-1d/pithos/debian_base3.diskdump", 
75 0b158e6b Stavros Sachtouris
      "is-public": "False", 
76 0b158e6b Stavros Sachtouris
      "owner": "s0m3-u53r-1d", 
77 0b158e6b Stavros Sachtouris
      "disk-format": "diskdump", 
78 0b158e6b Stavros Sachtouris
      "size": "903471104", 
79 0b158e6b Stavros Sachtouris
      "deleted-at": "", 
80 0b158e6b Stavros Sachtouris
      "container-format": "bare"
81 0b158e6b Stavros Sachtouris
    }
82 0b158e6b Stavros Sachtouris
    [kamaki]:
83 0b158e6b Stavros Sachtouris
84 0b158e6b Stavros Sachtouris
Images registered by me
85 0b158e6b Stavros Sachtouris
-----------------------
86 0b158e6b Stavros Sachtouris
87 0b158e6b Stavros Sachtouris
List all images, then list only images owned by the user with id s0m3-u53r-1d
88 0b158e6b Stavros Sachtouris
89 0b158e6b Stavros Sachtouris
.. code-block:: console
90 0b158e6b Stavros Sachtouris
91 0b158e6b Stavros Sachtouris
    [kamaki]: image list
92 0b158e6b Stavros Sachtouris
    f1r57-1m4g3-1d Debian Base Alpha
93 0b158e6b Stavros Sachtouris
        container_format: bare
94 0b158e6b Stavros Sachtouris
        disk_format:      diskdump
95 0b158e6b Stavros Sachtouris
        size:             474066944
96 0b158e6b Stavros Sachtouris
        status:           available
97 0b158e6b Stavros Sachtouris
    53c0nd-1m4g3-1d Beta Debian Base
98 0b158e6b Stavros Sachtouris
        container_format: bare
99 0b158e6b Stavros Sachtouris
        disk_format:      diskdump
100 0b158e6b Stavros Sachtouris
        size:             474066944
101 0b158e6b Stavros Sachtouris
        status:           available
102 0b158e6b Stavros Sachtouris
    7h1rd-1m4g3-1d Debian Base Gama
103 0b158e6b Stavros Sachtouris
        container_format: bare
104 0b158e6b Stavros Sachtouris
        disk_format:      diskdump
105 0b158e6b Stavros Sachtouris
        size:             474066944
106 0b158e6b Stavros Sachtouris
        status:           available
107 0b158e6b Stavros Sachtouris
    [kamaki]: image list --owner=s0m3-u53r-1d
108 0b158e6b Stavros Sachtouris
    7h1rd-1m4g3-1d Debian Base Gama
109 0b158e6b Stavros Sachtouris
        container_format: bare
110 0b158e6b Stavros Sachtouris
        disk_format:      diskdump
111 0b158e6b Stavros Sachtouris
        size:             474066944
112 0b158e6b Stavros Sachtouris
        status:           available
113 0b158e6b Stavros Sachtouris
    [kamaki]:
114 0b158e6b Stavros Sachtouris
115 0b158e6b Stavros Sachtouris
.. note:: To get the current user id, use `user authenticate` in kamaki
116 0b158e6b Stavros Sachtouris
117 0b158e6b Stavros Sachtouris
Unregister an image
118 0b158e6b Stavros Sachtouris
-------------------
119 0b158e6b Stavros Sachtouris
120 0b158e6b Stavros Sachtouris
An image can be unregistered by its image id, but only if the current user is
121 0b158e6b Stavros Sachtouris
also the image owner. In this example, there is only one image owned by current
122 0b158e6b Stavros Sachtouris
user.
123 0b158e6b Stavros Sachtouris
124 0b158e6b Stavros Sachtouris
Unregister image owned by current user 
125 0b158e6b Stavros Sachtouris
126 0b158e6b Stavros Sachtouris
.. code-block:: console
127 0b158e6b Stavros Sachtouris
128 0b158e6b Stavros Sachtouris
    [kamaki]: image unregister 7h1rd-1m4g3-1d
129 0b158e6b Stavros Sachtouris
    [kamaki]:
130 0b158e6b Stavros Sachtouris
131 0b158e6b Stavros Sachtouris
Check if the image is deleted
132 0b158e6b Stavros Sachtouris
133 0b158e6b Stavros Sachtouris
.. code-block:: console
134 0b158e6b Stavros Sachtouris
135 0b158e6b Stavros Sachtouris
    [kamaki]: image list --owner=s0m3-u53r-1d
136 0b158e6b Stavros Sachtouris
    [kamaki]:
137 0b158e6b Stavros Sachtouris
138 0b158e6b Stavros Sachtouris
Attempt to unregister an image of another user
139 0b158e6b Stavros Sachtouris
140 0b158e6b Stavros Sachtouris
.. code-block:: console
141 0b158e6b Stavros Sachtouris
142 0b158e6b Stavros Sachtouris
    [kamaki]: image unregister f1r57-1m4g3-1d
143 0b158e6b Stavros Sachtouris
    (403) FORBIDDEN forbidden ()
144 0b158e6b Stavros Sachtouris
    [kamaki]:
145 0b158e6b Stavros Sachtouris
146 0b158e6b Stavros Sachtouris
Register with properties
147 0b158e6b Stavros Sachtouris
------------------------
148 0b158e6b Stavros Sachtouris
149 0b158e6b Stavros Sachtouris
The image will be registered again, but with some custom properties::
150 0b158e6b Stavros Sachtouris
151 0b158e6b Stavros Sachtouris
    OS: Linux
152 0b158e6b Stavros Sachtouris
    user: someuser
153 0b158e6b Stavros Sachtouris
154 0b158e6b Stavros Sachtouris
These properties can be added freely by the user, and they have no significance
155 0b158e6b Stavros Sachtouris
for the image server, but they could be used to help using the image more
156 0b158e6b Stavros Sachtouris
efficiently.
157 0b158e6b Stavros Sachtouris
158 0b158e6b Stavros Sachtouris
Attempt to register with properties
159 0b158e6b Stavros Sachtouris
160 0b158e6b Stavros Sachtouris
.. code-block:: console
161 0b158e6b Stavros Sachtouris
162 f2ea1314 Stavros Sachtouris
    [kamaki]: image register 'Debian Base Gama' pithos:debian_base3.diskdump -p OS=Linux -p user=someuser
163 0b158e6b Stavros Sachtouris
    Metadata file pithos:debian_base3.diskdump.meta already exists
164 0b158e6b Stavros Sachtouris
    [kamaki]:
165 0b158e6b Stavros Sachtouris
166 0b158e6b Stavros Sachtouris
It's true that the metafile is already there, but we can override it (**-f**)
167 0b158e6b Stavros Sachtouris
168 0b158e6b Stavros Sachtouris
.. code-block:: console
169 0b158e6b Stavros Sachtouris
170 f2ea1314 Stavros Sachtouris
    [kamaki]: image register -f 'Debian Base Gama' pithos:debian_base3.diskdump -p OS=Linux -p user=someuser
171 0b158e6b Stavros Sachtouris
    [kamaki]:
172 0b158e6b Stavros Sachtouris
173 0b158e6b Stavros Sachtouris
Register with a meta file
174 0b158e6b Stavros Sachtouris
-------------------------
175 0b158e6b Stavros Sachtouris
176 0b158e6b Stavros Sachtouris
Download the meta file of the image (it was uploaded recently)
177 0b158e6b Stavros Sachtouris
178 0b158e6b Stavros Sachtouris
.. code-block:: console
179 0b158e6b Stavros Sachtouris
180 0b158e6b Stavros Sachtouris
    [kamaki]: file download pithos:debian_base3.diskdump.meta
181 0b158e6b Stavros Sachtouris
    Downloading pithos:debian_base3.diskdump.meta --> /home/someuser/debian_base3.diskdump.meta
182 0b158e6b Stavros Sachtouris
    Done
183 0b158e6b Stavros Sachtouris
    [kamaki]:
184 0b158e6b Stavros Sachtouris
185 0b158e6b Stavros Sachtouris
The metadata file can be edited. Let's edit the file, by adding properties::
186 0b158e6b Stavros Sachtouris
187 0b158e6b Stavros Sachtouris
    OS: Linux
188 0b158e6b Stavros Sachtouris
    user: root
189 0b158e6b Stavros Sachtouris
190 0b158e6b Stavros Sachtouris
The resulting file will look like this:
191 0b158e6b Stavros Sachtouris
192 0b158e6b Stavros Sachtouris
.. code-block:: javascript
193 0b158e6b Stavros Sachtouris
194 0b158e6b Stavros Sachtouris
    {
195 0b158e6b Stavros Sachtouris
      "status": "available", 
196 0b158e6b Stavros Sachtouris
      "name": "Debian Base Gama", 
197 0b158e6b Stavros Sachtouris
      "checksum": "3cb03556ec971f...e8dd6190443b560cb7", 
198 0b158e6b Stavros Sachtouris
      "id": "7h1rd-1m4g3-1d2", 
199 0b158e6b Stavros Sachtouris
      "updated-at": "2013-06-19 08:01:00", 
200 0b158e6b Stavros Sachtouris
      "created-at": "2013-06-19 08:00:22", 
201 0b158e6b Stavros Sachtouris
      "properties": {
202 0b158e6b Stavros Sachtouris
        "OS": "Linux",
203 0b158e6b Stavros Sachtouris
        "USER": "root"
204 0b158e6b Stavros Sachtouris
      }, 
205 0b158e6b Stavros Sachtouris
      "location": "pithos://s0m3-u53r-1d/pithos/debian_base3.diskdump", 
206 0b158e6b Stavros Sachtouris
      "is-public": "False", 
207 0b158e6b Stavros Sachtouris
      "owner": "s0m3-u53r-1d", 
208 0b158e6b Stavros Sachtouris
      "disk-format": "diskdump", 
209 0b158e6b Stavros Sachtouris
      "size": "903471104", 
210 0b158e6b Stavros Sachtouris
      "deleted-at": "", 
211 0b158e6b Stavros Sachtouris
      "container-format": "bare"
212 0b158e6b Stavros Sachtouris
    }
213 0b158e6b Stavros Sachtouris
214 0b158e6b Stavros Sachtouris
.. warning:: make sure the file is in a valid json format, otherwise image
215 0b158e6b Stavros Sachtouris
    register will fail
216 0b158e6b Stavros Sachtouris
217 0b158e6b Stavros Sachtouris
In the following registration, a different name will be used for the image.
218 0b158e6b Stavros Sachtouris
219 0b158e6b Stavros Sachtouris
Register the image (don't forget the -f parameter, to override the metafile).
220 0b158e6b Stavros Sachtouris
221 0b158e6b Stavros Sachtouris
.. code-block:: console
222 0b158e6b Stavros Sachtouris
223 f2ea1314 Stavros Sachtouris
    [kamaki]: image register -f 'Debian Base Delta' pithos:debian_base3.diskdump --metafile=debian_base3.diskdump.meta
224 0b158e6b Stavros Sachtouris
    checksum:         3cb03556ec971f...e8dd6190443b560cb7
225 0b158e6b Stavros Sachtouris
    container-format: bare
226 0b158e6b Stavros Sachtouris
    created-at:       2013-06-19 08:00:22
227 0b158e6b Stavros Sachtouris
    deleted-at:       
228 0b158e6b Stavros Sachtouris
    disk-format:      diskdump
229 0b158e6b Stavros Sachtouris
    id:               7h1rd-1m4g3-1d
230 0b158e6b Stavros Sachtouris
    is-public:        False
231 0b158e6b Stavros Sachtouris
    location:         pithos://s0m3-u53r-1d/pithos/debian_base3.diskdump
232 0b158e6b Stavros Sachtouris
    name:             Debian Base Delta
233 0b158e6b Stavros Sachtouris
    owner:            s0m3-u53r-1d
234 0b158e6b Stavros Sachtouris
    properties:      
235 0b158e6b Stavros Sachtouris
            OS:     Linux
236 0b158e6b Stavros Sachtouris
            USER:   root
237 0b158e6b Stavros Sachtouris
    size:             903471104
238 0b158e6b Stavros Sachtouris
    status:           available
239 0b158e6b Stavros Sachtouris
    updated-at:       2013-06-19 08:01:00
240 0b158e6b Stavros Sachtouris
    Metadata file uploaded as pithos:debian_base3.diskdump.meta (version 1359)
241 0b158e6b Stavros Sachtouris
    [kamaki]:
242 0b158e6b Stavros Sachtouris
243 404eb288 Stavros Sachtouris
Metadata and Property modification
244 404eb288 Stavros Sachtouris
----------------------------------
245 404eb288 Stavros Sachtouris
246 404eb288 Stavros Sachtouris
Image metadata and custom properties can be modified even after the image is
247 404eb288 Stavros Sachtouris
registered. Metadata are fixed image attributes, like name, disk format etc.
248 404eb288 Stavros Sachtouris
while custom properties are set by the image owner and, usually, refer to
249 404eb288 Stavros Sachtouris
attributes of the images OS.
250 404eb288 Stavros Sachtouris
251 404eb288 Stavros Sachtouris
Let's rename the image:
252 404eb288 Stavros Sachtouris
253 404eb288 Stavros Sachtouris
.. code-block:: console
254 404eb288 Stavros Sachtouris
255 404eb288 Stavros Sachtouris
    [kamaki]: image meta set 7h1rd-1m4g3-1d --name='Changed Name'
256 404eb288 Stavros Sachtouris
    [kamaki]:
257 404eb288 Stavros Sachtouris
258 404eb288 Stavros Sachtouris
If we, now, list the image metadata, we will see that the name is changed:
259 404eb288 Stavros Sachtouris
260 404eb288 Stavros Sachtouris
.. code-block:: console
261 404eb288 Stavros Sachtouris
262 404eb288 Stavros Sachtouris
    [kamaki]: image meta list 7h1rd-1m4g3-1d
263 404eb288 Stavros Sachtouris
    checksum:         3cb03556ec971f...e8dd6190443b560cb7
264 404eb288 Stavros Sachtouris
    container-format: bare
265 404eb288 Stavros Sachtouris
    created-at:       2013-06-19 08:00:22
266 404eb288 Stavros Sachtouris
    deleted-at:       
267 404eb288 Stavros Sachtouris
    disk-format:      diskdump
268 404eb288 Stavros Sachtouris
    id:               7h1rd-1m4g3-1d
269 404eb288 Stavros Sachtouris
    is-public:        False
270 404eb288 Stavros Sachtouris
    location:         pithos://s0m3-u53r-1d/pithos/debian_base3.diskdump
271 404eb288 Stavros Sachtouris
    name:             Changed Name
272 404eb288 Stavros Sachtouris
    owner:            s0m3-u53r-1d
273 404eb288 Stavros Sachtouris
    properties:      
274 404eb288 Stavros Sachtouris
            OS:     Linux
275 404eb288 Stavros Sachtouris
            USER:   root
276 404eb288 Stavros Sachtouris
    size:             903471104
277 404eb288 Stavros Sachtouris
    status:           available
278 404eb288 Stavros Sachtouris
    updated-at:       2013-06-19 08:01:00
279 404eb288 Stavros Sachtouris
    [kamaki]:
280 404eb288 Stavros Sachtouris
281 404eb288 Stavros Sachtouris
We can use the same idea to change the values of other metadata like disk
282 404eb288 Stavros Sachtouris
format, container format or status. On the other hand, we cannot modify the
283 404eb288 Stavros Sachtouris
id, owner, location, checksum and dates. E.g., to publish and unpublish:
284 404eb288 Stavros Sachtouris
285 404eb288 Stavros Sachtouris
.. code-block:: console
286 404eb288 Stavros Sachtouris
287 404eb288 Stavros Sachtouris
    [kamaki]: image meta set 7h1rd-1m4g3-1d --publish --name='Debian Base Gama'
288 404eb288 Stavros Sachtouris
    [kamaki]: image meta set 7h1rd-1m4g3-1d --unpublish
289 404eb288 Stavros Sachtouris
    [kamaki]:
290 404eb288 Stavros Sachtouris
291 404eb288 Stavros Sachtouris
The first call published the image (set is-public to True) and also restored
292 404eb288 Stavros Sachtouris
the name to "Debian Base Gama". The second one unpublished the image (set
293 404eb288 Stavros Sachtouris
is-public to False).
294 404eb288 Stavros Sachtouris
295 404eb288 Stavros Sachtouris
To delete metadata, use the image meta delete method:
296 404eb288 Stavros Sachtouris
297 404eb288 Stavros Sachtouris
.. code-block:: console
298 404eb288 Stavros Sachtouris
299 404eb288 Stavros Sachtouris
    [kamaki]: image meta delete 7h1rd-1m4g3-1d status
300 404eb288 Stavros Sachtouris
    [kamaki]:
301 404eb288 Stavros Sachtouris
302 404eb288 Stavros Sachtouris
will empty the value of "status".
303 404eb288 Stavros Sachtouris
304 404eb288 Stavros Sachtouris
These operations can be used for properties with the same semantics:
305 404eb288 Stavros Sachtouris
306 404eb288 Stavros Sachtouris
.. code-block:: console
307 404eb288 Stavros Sachtouris
308 404eb288 Stavros Sachtouris
    [kamaki]: image meta set 7h1rd-1m4g3-1d -p user=user
309 404eb288 Stavros Sachtouris
    [kamaki]: image meta list 7h1rd-1m4g3-1d
310 404eb288 Stavros Sachtouris
    ...
311 404eb288 Stavros Sachtouris
    properties:
312 404eb288 Stavros Sachtouris
            OS:     Linux
313 404eb288 Stavros Sachtouris
            USER:   user
314 404eb288 Stavros Sachtouris
    ...
315 404eb288 Stavros Sachtouris
    [kamaki]:
316 404eb288 Stavros Sachtouris
317 404eb288 Stavros Sachtouris
Just to test the feature, let's create a property "greet" with value
318 404eb288 Stavros Sachtouris
"hi there", and then remove it. Also, let's restore the value of USER:
319 404eb288 Stavros Sachtouris
320 404eb288 Stavros Sachtouris
.. code-block:: console
321 404eb288 Stavros Sachtouris
322 404eb288 Stavros Sachtouris
    [kamaki]: image meta set 7h1rd-1m4g3-1d -p greet='Hi there' -p user=root
323 404eb288 Stavros Sachtouris
    [kamaki]: image meta list 7h1rd-1m4g3-1d
324 404eb288 Stavros Sachtouris
    ...
325 404eb288 Stavros Sachtouris
    properties:
326 404eb288 Stavros Sachtouris
            OS:     Linux
327 404eb288 Stavros Sachtouris
            USER:   root
328 404eb288 Stavros Sachtouris
            GREET:  Hi there
329 404eb288 Stavros Sachtouris
    ...
330 404eb288 Stavros Sachtouris
    [kamaki]: image meta delete 7h1rd-1m4g3-1d -p greet
331 404eb288 Stavros Sachtouris
    [kamaki]: image meta list 7h1rd-1m4g3-1d
332 404eb288 Stavros Sachtouris
    ...
333 404eb288 Stavros Sachtouris
    properties:
334 404eb288 Stavros Sachtouris
            OS:     Linux
335 404eb288 Stavros Sachtouris
            USER:   root
336 404eb288 Stavros Sachtouris
    ...
337 404eb288 Stavros Sachtouris
    [kamaki]:
338 404eb288 Stavros Sachtouris
339 404eb288 Stavros Sachtouris
340 0b158e6b Stavros Sachtouris
Reregistration: priorities and overrides
341 0b158e6b Stavros Sachtouris
----------------------------------------
342 0b158e6b Stavros Sachtouris
343 0b158e6b Stavros Sachtouris
Let's review the examples presented above::
344 0b158e6b Stavros Sachtouris
345 0b158e6b Stavros Sachtouris
    - Register an image with name `Debian Base Gama`
346 0b158e6b Stavros Sachtouris
    - Unregister the image
347 0b158e6b Stavros Sachtouris
    - Register a new image of the uploaded image object, with custom properties
348 0b158e6b Stavros Sachtouris
    - Reregister the image with a meta file and modified properties and name
349 0b158e6b Stavros Sachtouris
350 0b158e6b Stavros Sachtouris
**The image id is related to the image object**
351 0b158e6b Stavros Sachtouris
352 0b158e6b Stavros Sachtouris
Although the image was unregistered and reregistered, the image id, that is
353 0b158e6b Stavros Sachtouris
produced automatically at the server side, was the same. This is due to the
354 0b158e6b Stavros Sachtouris
fact that image ids are 1 to 1 related to image objects uploaded to Pithos+
355 0b158e6b Stavros Sachtouris
356 0b158e6b Stavros Sachtouris
**An explicit name overrides the metafile**
357 0b158e6b Stavros Sachtouris
358 0b158e6b Stavros Sachtouris
Each image needs a name and this is given as the first argument of the
359 0b158e6b Stavros Sachtouris
`register` command. This name overrides the name in the metafile.
360 0b158e6b Stavros Sachtouris
361 0b158e6b Stavros Sachtouris
**Reregistration is not update, but an override**
362 0b158e6b Stavros Sachtouris
363 0b158e6b Stavros Sachtouris
The property `user: root` won over `user: someuser`, because it was set last.
364 0b158e6b Stavros Sachtouris
Actually, all properties were replaced by the new ones, when the image was
365 0b158e6b Stavros Sachtouris
reregistered, and the same holds with all customizable attributes of the image.
366 0b158e6b Stavros Sachtouris
367 0b158e6b Stavros Sachtouris
Command line wins the metafile
368 0b158e6b Stavros Sachtouris
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
369 0b158e6b Stavros Sachtouris
370 0b158e6b Stavros Sachtouris
Let's compine the metafile with a command line attribute `user: admin`
371 0b158e6b Stavros Sachtouris
372 0b158e6b Stavros Sachtouris
.. code-block:: console
373 0b158e6b Stavros Sachtouris
374 f2ea1314 Stavros Sachtouris
    [kamaki]: image register -f 'Debian Base Delta' pithos:debian_base3.diskdump --metafile=debian_base3.diskdump.meta
375 0b158e6b Stavros Sachtouris
    checksum:         3cb03556ec971f...e8dd6190443b560cb7
376 0b158e6b Stavros Sachtouris
    container-format: bare
377 0b158e6b Stavros Sachtouris
    created-at:       2013-06-19 08:00:22
378 0b158e6b Stavros Sachtouris
    deleted-at:       
379 0b158e6b Stavros Sachtouris
    disk-format:      diskdump
380 0b158e6b Stavros Sachtouris
    id:               7h1rd-1m4g3-1d
381 0b158e6b Stavros Sachtouris
    is-public:        False
382 0b158e6b Stavros Sachtouris
    location:         pithos://s0m3-u53r-1d/pithos/debian_base3.diskdump
383 0b158e6b Stavros Sachtouris
    name:             Debian Base Delta
384 0b158e6b Stavros Sachtouris
    owner:            s0m3-u53r-1d
385 0b158e6b Stavros Sachtouris
    properties:      
386 0b158e6b Stavros Sachtouris
            OS:     Linux
387 0b158e6b Stavros Sachtouris
            USER:   root
388 0b158e6b Stavros Sachtouris
    size:             903471104
389 0b158e6b Stavros Sachtouris
    status:           available
390 0b158e6b Stavros Sachtouris
    updated-at:       2013-06-19 08:01:00
391 0b158e6b Stavros Sachtouris
    Metadata file uploaded as pithos:debian_base3.diskdump.meta (version 1377)
392 0b158e6b Stavros Sachtouris
    [kamaki]:
393 0b158e6b Stavros Sachtouris
394 0b158e6b Stavros Sachtouris
Although the property `OS` was read from the metafile, the property `USER` was
395 0b158e6b Stavros Sachtouris
set by the command line property to `admin`.
396 0b158e6b Stavros Sachtouris
397 0b158e6b Stavros Sachtouris
.. note:: This feature allows the use of a metafile as a template for uploading
398 0b158e6b Stavros Sachtouris
    multiple images with many common attributes but slight modifications per
399 0b158e6b Stavros Sachtouris
    image
400 0b158e6b Stavros Sachtouris
401 0b158e6b Stavros Sachtouris
Multiple metafile versions
402 0b158e6b Stavros Sachtouris
--------------------------
403 0b158e6b Stavros Sachtouris
404 0b158e6b Stavros Sachtouris
.. warning:: Make sure your container is set to auto, otherwise, there will be
405 0b158e6b Stavros Sachtouris
    no object versions
406 0b158e6b Stavros Sachtouris
407 0b158e6b Stavros Sachtouris
    .. code-block:: console
408 0b158e6b Stavros Sachtouris
409 0b158e6b Stavros Sachtouris
        [kamaki]: file versioning get pithos
410 0b158e6b Stavros Sachtouris
        x-container-policy-versioning: auto
411 0b158e6b Stavros Sachtouris
        [kamaki]:
412 0b158e6b Stavros Sachtouris
413 0b158e6b Stavros Sachtouris
    To set versioning to auto
414 0b158e6b Stavros Sachtouris
415 0b158e6b Stavros Sachtouris
    .. code-block:: console
416 0b158e6b Stavros Sachtouris
417 0b158e6b Stavros Sachtouris
        [kamaki]: file versioning set auto pithos
418 0b158e6b Stavros Sachtouris
        [kamaki]:
419 0b158e6b Stavros Sachtouris
420 0b158e6b Stavros Sachtouris
In the above examples, the image was registered many times by overriding the
421 0b158e6b Stavros Sachtouris
metafile. It is possible to avoid writing a metafile, as well as accessing
422 0b158e6b Stavros Sachtouris
older versions of the file.
423 0b158e6b Stavros Sachtouris
424 0b158e6b Stavros Sachtouris
Register the image without uploading a metafile
425 0b158e6b Stavros Sachtouris
426 0b158e6b Stavros Sachtouris
.. code-block:: console
427 0b158e6b Stavros Sachtouris
428 f2ea1314 Stavros Sachtouris
    [kamaki]: image register 'Debian Base Delta' pithos:debian_base3.diskdump --metafile=debian_base3.diskdump.meta --no-metafile-upload
429 0b158e6b Stavros Sachtouris
    checksum:         3cb03556ec971f...e8dd6190443b560cb7
430 0b158e6b Stavros Sachtouris
    container-format: bare
431 0b158e6b Stavros Sachtouris
    created-at:       2013-06-19 08:00:22
432 0b158e6b Stavros Sachtouris
    deleted-at:       
433 0b158e6b Stavros Sachtouris
    disk-format:      diskdump
434 0b158e6b Stavros Sachtouris
    id:               7h1rd-1m4g3-1d
435 0b158e6b Stavros Sachtouris
    is-public:        False
436 0b158e6b Stavros Sachtouris
    location:         pithos://s0m3-u53r-1d/pithos/debian_base3.diskdump
437 0b158e6b Stavros Sachtouris
    name:             Debian Base Delta
438 0b158e6b Stavros Sachtouris
    owner:            s0m3-u53r-1d
439 0b158e6b Stavros Sachtouris
    properties:      
440 0b158e6b Stavros Sachtouris
            OS:     Linux
441 0b158e6b Stavros Sachtouris
            USER:   root
442 0b158e6b Stavros Sachtouris
    size:             903471104
443 0b158e6b Stavros Sachtouris
    status:           available
444 0b158e6b Stavros Sachtouris
    updated-at:       2013-06-19 08:01:00
445 0b158e6b Stavros Sachtouris
    [kamaki]:
446 0b158e6b Stavros Sachtouris
447 0b158e6b Stavros Sachtouris
Uploaded metafiles are kept in versions, thanks to Pithos+ versioning support
448 0b158e6b Stavros Sachtouris
449 0b158e6b Stavros Sachtouris
.. code-block:: console
450 0b158e6b Stavros Sachtouris
451 0b158e6b Stavros Sachtouris
    [kamaki]: file versions pithos:debian_base3.diskdump.meta
452 0b158e6b Stavros Sachtouris
    1352
453 0b158e6b Stavros Sachtouris
     created: 19-06-2013 11:00:22
454 0b158e6b Stavros Sachtouris
    1359
455 0b158e6b Stavros Sachtouris
     created: 19-06-2013 11:01:00
456 0b158e6b Stavros Sachtouris
    1377
457 0b158e6b Stavros Sachtouris
     created: 19-06-2013 11:34:37
458 0b158e6b Stavros Sachtouris
    [kamaki]:
459 0b158e6b Stavros Sachtouris
460 0b158e6b Stavros Sachtouris
Consult the first version of the metafile
461 0b158e6b Stavros Sachtouris
462 0b158e6b Stavros Sachtouris
.. code-block:: console
463 0b158e6b Stavros Sachtouris
464 0b158e6b Stavros Sachtouris
    [kamaki]: file cat --object-version=1352 pithos:debian_base3.diskdump.meta
465 0b158e6b Stavros Sachtouris
    {
466 0b158e6b Stavros Sachtouris
      "status": "available", 
467 0b158e6b Stavros Sachtouris
      "name": "Debian Base Gama", 
468 0b158e6b Stavros Sachtouris
      "checksum": "3cb03556ec971f...e8dd6190443b560cb7", 
469 0b158e6b Stavros Sachtouris
      "id": "7h1rd-1m4g3-1d2", 
470 0b158e6b Stavros Sachtouris
      "updated-at": "2013-06-19 08:01:00", 
471 0b158e6b Stavros Sachtouris
      "created-at": "2013-06-19 08:00:22", 
472 0b158e6b Stavros Sachtouris
      "properties": {}, 
473 0b158e6b Stavros Sachtouris
      "location": "pithos://s0m3-u53r-1d/pithos/debian_base3.diskdump", 
474 0b158e6b Stavros Sachtouris
      "is-public": "False", 
475 0b158e6b Stavros Sachtouris
      "owner": "s0m3-u53r-1d", 
476 0b158e6b Stavros Sachtouris
      "disk-format": "diskdump", 
477 0b158e6b Stavros Sachtouris
      "size": "903471104", 
478 0b158e6b Stavros Sachtouris
      "deleted-at": "", 
479 0b158e6b Stavros Sachtouris
      "container-format": "bare"
480 0b158e6b Stavros Sachtouris
    }
481 0b158e6b Stavros Sachtouris
    [kamaki]:
482 0b158e6b Stavros Sachtouris
483 0b158e6b Stavros Sachtouris
Download the second version
484 0b158e6b Stavros Sachtouris
485 0b158e6b Stavros Sachtouris
.. code-block:: console
486 0b158e6b Stavros Sachtouris
487 0b158e6b Stavros Sachtouris
    [kamaki]: file download --object-version=1359 pithos:debian_base3.diskdump.meta debian_base3.diskdump.meta.v1359
488 0b158e6b Stavros Sachtouris
    Downloading pithos:debian_base3.diskdump.meta --> /home/someuser/debian_base3.diskdump.meta.v1359
489 0b158e6b Stavros Sachtouris
    Done
490 0b158e6b Stavros Sachtouris
    [kamaki]:
491 0b158e6b Stavros Sachtouris
492 0b158e6b Stavros Sachtouris
Batch image upload
493 0b158e6b Stavros Sachtouris
------------------
494 0b158e6b Stavros Sachtouris
495 0b158e6b Stavros Sachtouris
Let a directory at /home/someuser/images with a variety of images needed to be
496 0b158e6b Stavros Sachtouris
uploaded and registered.
497 0b158e6b Stavros Sachtouris
498 0b158e6b Stavros Sachtouris
Batch-upload the images
499 0b158e6b Stavros Sachtouris
500 0b158e6b Stavros Sachtouris
.. code-block:: console
501 0b158e6b Stavros Sachtouris
502 0b158e6b Stavros Sachtouris
    [kamaki]: file upload -R images pithos
503 0b158e6b Stavros Sachtouris
    mkdir pithos:images
504 0b158e6b Stavros Sachtouris
    Uploading /home/someuser/images/debian.diskdump --> pithos:images/debian.diskdump
505 0b158e6b Stavros Sachtouris
    Uploading /home/someuser/images/win8.diskdump --> pithos:images/win8.diskdump
506 0b158e6b Stavros Sachtouris
    ...
507 0b158e6b Stavros Sachtouris
    Done
508 0b158e6b Stavros Sachtouris
    [kamaki]:
509 0b158e6b Stavros Sachtouris
510 0b158e6b Stavros Sachtouris
Make sure the images are uploaded to pithos:images/ remote directory object
511 0b158e6b Stavros Sachtouris
512 0b158e6b Stavros Sachtouris
.. code-block:: console
513 0b158e6b Stavros Sachtouris
514 0b158e6b Stavros Sachtouris
    [kamaki]: file list pithos:images/
515 0b158e6b Stavros Sachtouris
    D       images/
516 0b158e6b Stavros Sachtouris
    983MB   images/debian.diskdump
517 0b158e6b Stavros Sachtouris
    2.2GB   images/win8.diskdump
518 0b158e6b Stavros Sachtouris
    ...
519 0b158e6b Stavros Sachtouris
    [kamaki]:
520 0b158e6b Stavros Sachtouris
521 0b158e6b Stavros Sachtouris
Use the host shell capabilities to streamline the registration, so exit kamaki
522 0b158e6b Stavros Sachtouris
523 0b158e6b Stavros Sachtouris
.. code-block:: console
524 0b158e6b Stavros Sachtouris
525 0b158e6b Stavros Sachtouris
    [kamaki]: /exit
526 0b158e6b Stavros Sachtouris
527 0b158e6b Stavros Sachtouris
The following is a bash script that attempts to register the already uploaded
528 0b158e6b Stavros Sachtouris
images:
529 0b158e6b Stavros Sachtouris
530 0b158e6b Stavros Sachtouris
.. code-block:: bash
531 0b158e6b Stavros Sachtouris
532 0b158e6b Stavros Sachtouris
    #!/bin/bash
533 0b158e6b Stavros Sachtouris
534 0b158e6b Stavros Sachtouris
    userid=... # e.g. s0m3-u53r-1d
535 0b158e6b Stavros Sachtouris
    container=... # e.g. pithos
536 0b158e6b Stavros Sachtouris
537 0b158e6b Stavros Sachtouris
    for path in images/*.diskdump; do
538 f2ea1314 Stavros Sachtouris
        location=$container:${path}
539 0b158e6b Stavros Sachtouris
        kamaki image register $path $location
540 0b158e6b Stavros Sachtouris
    done
541 0b158e6b Stavros Sachtouris
542 0b158e6b Stavros Sachtouris
Let's use the script (enriched with a separator message) to batch-register the
543 0b158e6b Stavros Sachtouris
images (all images will be named after their relative paths).
544 0b158e6b Stavros Sachtouris
545 0b158e6b Stavros Sachtouris
Also, let the registered images be public (accessible to all users for creating
546 0b158e6b Stavros Sachtouris
VMs) by adding the **--public** flag argument when calling `image register`.
547 0b158e6b Stavros Sachtouris
548 0b158e6b Stavros Sachtouris
.. code-block:: console
549 0b158e6b Stavros Sachtouris
550 0b158e6b Stavros Sachtouris
    $ for path in images/*.diskdump; do
551 f2ea1314 Stavros Sachtouris
        location=pithos:${path}
552 0b158e6b Stavros Sachtouris
        echo "- - - Register ${path} - - -"
553 0b158e6b Stavros Sachtouris
        kamaki image register $path $location --public
554 0b158e6b Stavros Sachtouris
    done
555 0b158e6b Stavros Sachtouris
    - - - Register images/debian.diskdump ---
556 0b158e6b Stavros Sachtouris
    checksum:         3cb03556ec971f...e8dd6190443b560cb7
557 0b158e6b Stavros Sachtouris
    container-format: bare
558 0b158e6b Stavros Sachtouris
    created-at:       2013-06-19 08:00:22
559 0b158e6b Stavros Sachtouris
    deleted-at:       
560 0b158e6b Stavros Sachtouris
    disk-format:      diskdump
561 0b158e6b Stavros Sachtouris
    id:               d3b14n-1m4g3-1d
562 0b158e6b Stavros Sachtouris
    is-public:        False
563 0b158e6b Stavros Sachtouris
    location:         pithos://s0m3-u53r-1d/pithos/images/debian.diskdump
564 0b158e6b Stavros Sachtouris
    name:             images/debian.diskdump
565 0b158e6b Stavros Sachtouris
    owner:            s0m3-u53r-1d
566 0b158e6b Stavros Sachtouris
    properties:
567 0b158e6b Stavros Sachtouris
    size:             903471104
568 0b158e6b Stavros Sachtouris
    status:           available
569 0b158e6b Stavros Sachtouris
    updated-at:       2013-06-19 08:01:00
570 0b158e6b Stavros Sachtouris
    Metadata file uploaded as pithos:images/debian.diskdump.meta (version 4201)
571 0b158e6b Stavros Sachtouris
    - - - Register images/win8.diskdump ---
572 0b158e6b Stavros Sachtouris
    checksum:         4cb03556ec971f...e8dd6190443b560cb6
573 0b158e6b Stavros Sachtouris
    container-format: bare
574 0b158e6b Stavros Sachtouris
    created-at:       2013-06-19 08:00:22
575 0b158e6b Stavros Sachtouris
    deleted-at:       
576 0b158e6b Stavros Sachtouris
    disk-format:      diskdump
577 0b158e6b Stavros Sachtouris
    id:               w1nd0w5-1m4g3-1d
578 0b158e6b Stavros Sachtouris
    is-public:        False
579 0b158e6b Stavros Sachtouris
    location:         pithos://s0m3-u53r-1d/pithos/images/win8.diskdump
580 0b158e6b Stavros Sachtouris
    name:             images/win8.diskdump
581 0b158e6b Stavros Sachtouris
    owner:            s0m3-u53r-1d
582 0b158e6b Stavros Sachtouris
    properties:
583 0b158e6b Stavros Sachtouris
    size:             2103471104
584 0b158e6b Stavros Sachtouris
    status:           available
585 0b158e6b Stavros Sachtouris
    updated-at:       2013-06-19 08:01:00
586 0b158e6b Stavros Sachtouris
    Metadata file uploaded as pithos:images/debian.diskdump.meta (version 4301)
587 0b158e6b Stavros Sachtouris
    ...
588 0b158e6b Stavros Sachtouris
    $
589 0b158e6b Stavros Sachtouris
590 0b158e6b Stavros Sachtouris
.. note:: All images can be re-registered, either individually or with a batch
591 0b158e6b Stavros Sachtouris
    process.
592 0b158e6b Stavros Sachtouris