From gustavo.pedrosa at eldorado.org.br Tue Sep 3 08:14:30 2013 Content-Type: multipart/mixed; boundary="===============8992312728008146598==" MIME-Version: 1.0 From: Gustavo Frederico Temple Pedrosa To: devel at ovirt.org Subject: [Engine-devel] Question about API REST Date: Tue, 03 Sep 2013 12:14:26 +0000 Message-ID: --===============8992312728008146598== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable --_000_EF26FC1776F7FF46BFC072393EFD13A29A40C6SERV070corpeldora_ Content-Type: text/plain; charset=3D"us-ascii" Content-Transfer-Encoding: quoted-printable Hello everyone, I'm adding the architecture meta-field of VMs, Templates and Clusters in RE= =3D ST API (see change #16700 in gerrit). It's a read-only field (like a "final= =3D " in Java), that the administrator cannot change it, but there are some sit= =3D uations where there might be a value for it, such as when an entity is rece= =3D ived from the API, slightly modified and then its update method is called. = =3D So I would like to ask these questions about how to implement it: 1) Should this attribute be mapped both ways (from the REST API to the engi= =3D ne and vice-versa)? 2) How should this field be declared in the rdsl_metadata? Do I have to exp= =3D licitly put it in the optional arguments or should I omit it? 3) How can I make this field strictly immutable (like the ID field is), giv= =3D en that the architecture is a field of the CPU entity, and the methods used= =3D to check for invalid updates can only operate on fields that belong direct= =3D ly to the main entity? Thanks. --_000_EF26FC1776F7FF46BFC072393EFD13A29A40C6SERV070corpeldora_ Content-Type: text/html; charset=3D"us-ascii" Content-Transfer-Encoding: quoted-printable

Hello everyone,<= /spa=3D n>

 

I'm adding the architecture= met=3D a-field of VMs, Templates and Clusters in REST API (see change #16700 in ge= =3D rrit). It's a read-only field (like a “final” in Java), that th= =3D e administrator cannot change it, but there are some situations where there might be a value for it, such as when an entit= =3D y is received from the API, slightly modified and then its update method is= =3D called. So I would like to ask these questions about how to implement it:<= =3D o:p>

 

1) Should this attribute be= map=3D ped both ways (from the REST API to the engine and vice-versa)?<= =3D /span>

2) How should this field be= dec=3D lared in the rdsl_metadata? Do I have to explicitly put it in the optional = =3D arguments or should I omit it?

3) How can I make this fiel= d st=3D rictly immutable (like the ID field is), given that the architecture is a f= =3D ield of the CPU entity, and the methods used to check for invalid updates c= =3D an only operate on fields that belong directly to the main entity?

 

Thanks.

 

--_000_EF26FC1776F7FF46BFC072393EFD13A29A40C6SERV070corpeldora_-- --===============8992312728008146598== Content-Type: multipart/alternative MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="attachment.bin" LS1fMDAwX0VGMjZGQzE3NzZGN0ZGNDZCRkMwNzIzOTNFRkQxM0EyOUE0MEM2U0VSVjA3MGNvcnBl bGRvcmFfCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsgY2hhcnNldD0idXMtYXNjaWkiCkNvbnRl bnQtVHJhbnNmZXItRW5jb2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCkhlbGxvIGV2ZXJ5b25lLAoK SSdtIGFkZGluZyB0aGUgYXJjaGl0ZWN0dXJlIG1ldGEtZmllbGQgb2YgVk1zLCBUZW1wbGF0ZXMg YW5kIENsdXN0ZXJzIGluIFJFPQpTVCBBUEkgKHNlZSBjaGFuZ2UgIzE2NzAwIGluIGdlcnJpdCku IEl0J3MgYSByZWFkLW9ubHkgZmllbGQgKGxpa2UgYSAiZmluYWw9CiIgaW4gSmF2YSksIHRoYXQg dGhlIGFkbWluaXN0cmF0b3IgY2Fubm90IGNoYW5nZSBpdCwgYnV0IHRoZXJlIGFyZSBzb21lIHNp dD0KdWF0aW9ucyB3aGVyZSB0aGVyZSBtaWdodCBiZSBhIHZhbHVlIGZvciBpdCwgc3VjaCBhcyB3 aGVuIGFuIGVudGl0eSBpcyByZWNlPQppdmVkIGZyb20gdGhlIEFQSSwgc2xpZ2h0bHkgbW9kaWZp ZWQgYW5kIHRoZW4gaXRzIHVwZGF0ZSBtZXRob2QgaXMgY2FsbGVkLiA9ClNvIEkgd291bGQgbGlr ZSB0byBhc2sgdGhlc2UgcXVlc3Rpb25zIGFib3V0IGhvdyB0byBpbXBsZW1lbnQgaXQ6CgoxKSBT aG91bGQgdGhpcyBhdHRyaWJ1dGUgYmUgbWFwcGVkIGJvdGggd2F5cyAoZnJvbSB0aGUgUkVTVCBB UEkgdG8gdGhlIGVuZ2k9Cm5lIGFuZCB2aWNlLXZlcnNhKT8KMikgSG93IHNob3VsZCB0aGlzIGZp ZWxkIGJlIGRlY2xhcmVkIGluIHRoZSByZHNsX21ldGFkYXRhPyBEbyBJIGhhdmUgdG8gZXhwPQps aWNpdGx5IHB1dCBpdCBpbiB0aGUgb3B0aW9uYWwgYXJndW1lbnRzIG9yIHNob3VsZCBJIG9taXQg aXQ/CjMpIEhvdyBjYW4gSSBtYWtlIHRoaXMgZmllbGQgc3RyaWN0bHkgaW1tdXRhYmxlIChsaWtl IHRoZSBJRCBmaWVsZCBpcyksIGdpdj0KZW4gdGhhdCB0aGUgYXJjaGl0ZWN0dXJlIGlzIGEgZmll bGQgb2YgdGhlIENQVSBlbnRpdHksIGFuZCB0aGUgbWV0aG9kcyB1c2VkPQogdG8gY2hlY2sgZm9y IGludmFsaWQgdXBkYXRlcyBjYW4gb25seSBvcGVyYXRlIG9uIGZpZWxkcyB0aGF0IGJlbG9uZyBk aXJlY3Q9Cmx5IHRvIHRoZSBtYWluIGVudGl0eT8KClRoYW5rcy4KCgotLV8wMDBfRUYyNkZDMTc3 NkY3RkY0NkJGQzA3MjM5M0VGRDEzQTI5QTQwQzZTRVJWMDcwY29ycGVsZG9yYV8KQ29udGVudC1U eXBlOiB0ZXh0L2h0bWw7IGNoYXJzZXQ9InVzLWFzY2lpIgpDb250ZW50LVRyYW5zZmVyLUVuY29k aW5nOiBxdW90ZWQtcHJpbnRhYmxlCgo8aHRtbCB4bWxuczp2PTNEInVybjpzY2hlbWFzLW1pY3Jv c29mdC1jb206dm1sIiB4bWxuczpvPTNEInVybjpzY2hlbWFzLW1pY3I9Cm9zb2Z0LWNvbTpvZmZp Y2U6b2ZmaWNlIiB4bWxuczp3PTNEInVybjpzY2hlbWFzLW1pY3Jvc29mdC1jb206b2ZmaWNlOndv cmQiID0KeG1sbnM6bT0zRCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS8yMDA0 LzEyL29tbWwiIHhtbG5zPTNEImh0dHA6PQovL3d3dy53My5vcmcvVFIvUkVDLWh0bWw0MCI+Cjxo ZWFkPgo8bWV0YSBodHRwLWVxdWl2PTNEIkNvbnRlbnQtVHlwZSIgY29udGVudD0zRCJ0ZXh0L2h0 bWw7IGNoYXJzZXQ9M0R1cy1hc2NpaSI9Cj4KPG1ldGEgbmFtZT0zRCJHZW5lcmF0b3IiIGNvbnRl bnQ9M0QiTWljcm9zb2Z0IFdvcmQgMTQgKGZpbHRlcmVkIG1lZGl1bSkiPgo8c3R5bGU+PCEtLQov KiBGb250IERlZmluaXRpb25zICovCkBmb250LWZhY2UKCXtmb250LWZhbWlseTpTaW1TdW47Cglw YW5vc2UtMToyIDEgNiAwIDMgMSAxIDEgMSAxO30KQGZvbnQtZmFjZQoJe2ZvbnQtZmFtaWx5OlNp bVN1bjsKCXBhbm9zZS0xOjIgMSA2IDAgMyAxIDEgMSAxIDE7fQpAZm9udC1mYWNlCgl7Zm9udC1m YW1pbHk6Q2FsaWJyaTsKCXBhbm9zZS0xOjIgMTUgNSAyIDIgMiA0IDMgMiA0O30KQGZvbnQtZmFj ZQoJe2ZvbnQtZmFtaWx5OiJcQFNpbVN1biI7CglwYW5vc2UtMToyIDEgNiAwIDMgMSAxIDEgMSAx O30KLyogU3R5bGUgRGVmaW5pdGlvbnMgKi8KcC5Nc29Ob3JtYWwsIGxpLk1zb05vcm1hbCwgZGl2 Lk1zb05vcm1hbAoJe21hcmdpbjowY207CgltYXJnaW4tYm90dG9tOi4wMDAxcHQ7Cglmb250LXNp emU6MTEuMHB0OwoJZm9udC1mYW1pbHk6IkNhbGlicmkiLCJzYW5zLXNlcmlmIjt9CmE6bGluaywg c3Bhbi5Nc29IeXBlcmxpbmsKCXttc28tc3R5bGUtcHJpb3JpdHk6OTk7Cgljb2xvcjpibHVlOwoJ dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZTt9CmE6dmlzaXRlZCwgc3Bhbi5Nc29IeXBlcmxpbmtG b2xsb3dlZAoJe21zby1zdHlsZS1wcmlvcml0eTo5OTsKCWNvbG9yOnB1cnBsZTsKCXRleHQtZGVj b3JhdGlvbjp1bmRlcmxpbmU7fQpzcGFuLkVtYWlsU3R5bGUxNwoJe21zby1zdHlsZS10eXBlOnBl cnNvbmFsLWNvbXBvc2U7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiOwoJY29s b3I6d2luZG93dGV4dDt9Ci5Nc29DaHBEZWZhdWx0Cgl7bXNvLXN0eWxlLXR5cGU6ZXhwb3J0LW9u bHk7Cglmb250LWZhbWlseToiQ2FsaWJyaSIsInNhbnMtc2VyaWYiO30KQHBhZ2UgV29yZFNlY3Rp b24xCgl7c2l6ZTo2MTIuMHB0IDc5Mi4wcHQ7CgltYXJnaW46NzAuODVwdCAzLjBjbSA3MC44NXB0 IDMuMGNtO30KZGl2LldvcmRTZWN0aW9uMQoJe3BhZ2U6V29yZFNlY3Rpb24xO30KLS0+PC9zdHls ZT48IS0tW2lmIGd0ZSBtc28gOV0+PHhtbD4KPG86c2hhcGVkZWZhdWx0cyB2OmV4dD0zRCJlZGl0 IiBzcGlkbWF4PTNEIjEwMjYiIC8+CjwveG1sPjwhW2VuZGlmXS0tPjwhLS1baWYgZ3RlIG1zbyA5 XT48eG1sPgo8bzpzaGFwZWxheW91dCB2OmV4dD0zRCJlZGl0Ij4KPG86aWRtYXAgdjpleHQ9M0Qi ZWRpdCIgZGF0YT0zRCIxIiAvPgo8L286c2hhcGVsYXlvdXQ+PC94bWw+PCFbZW5kaWZdLS0+Cjwv aGVhZD4KPGJvZHkgbGFuZz0zRCJQVC1CUiIgbGluaz0zRCJibHVlIiB2bGluaz0zRCJwdXJwbGUi Pgo8ZGl2IGNsYXNzPTNEIldvcmRTZWN0aW9uMSI+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNw YW4gbGFuZz0zRCJFTi1VUyI+SGVsbG8gZXZlcnlvbmUsPG86cD48L286cD48L3NwYT0Kbj48L3A+ CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyI+PG86cD4mbmJzcDs8 L286cD48L3NwYW4+PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9M0QiRU4t VVMiPkknbSBhZGRpbmcgdGhlIGFyY2hpdGVjdHVyZSBtZXQ9CmEtZmllbGQgb2YgVk1zLCBUZW1w bGF0ZXMgYW5kIENsdXN0ZXJzIGluIFJFU1QgQVBJIChzZWUgY2hhbmdlICMxNjcwMCBpbiBnZT0K cnJpdCkuIEl0J3MgYSByZWFkLW9ubHkgZmllbGQgKGxpa2UgYSAmIzgyMjA7ZmluYWwmIzgyMjE7 IGluIEphdmEpLCB0aGF0IHRoPQplIGFkbWluaXN0cmF0b3IgY2Fubm90IGNoYW5nZSBpdCwgYnV0 IHRoZXJlIGFyZQogc29tZSBzaXR1YXRpb25zIHdoZXJlIHRoZXJlIG1pZ2h0IGJlIGEgdmFsdWUg Zm9yIGl0LCBzdWNoIGFzIHdoZW4gYW4gZW50aXQ9CnkgaXMgcmVjZWl2ZWQgZnJvbSB0aGUgQVBJ LCBzbGlnaHRseSBtb2RpZmllZCBhbmQgdGhlbiBpdHMgdXBkYXRlIG1ldGhvZCBpcz0KIGNhbGxl ZC4gU28gSSB3b3VsZCBsaWtlIHRvIGFzayB0aGVzZSBxdWVzdGlvbnMgYWJvdXQgaG93IHRvIGlt cGxlbWVudCBpdDo8PQpvOnA+PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9M0QiTXNvTm9ybWFs Ij48c3BhbiBsYW5nPTNEIkVOLVVTIj48bzpwPiZuYnNwOzwvbzpwPjwvc3Bhbj48L3A+CjxwIGNs YXNzPTNEIk1zb05vcm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyI+MSkgU2hvdWxkIHRoaXMgYXR0 cmlidXRlIGJlIG1hcD0KcGVkIGJvdGggd2F5cyAoZnJvbSB0aGUgUkVTVCBBUEkgdG8gdGhlIGVu Z2luZSBhbmQgdmljZS12ZXJzYSk/PG86cD48L286cD48PQovc3Bhbj48L3A+CjxwIGNsYXNzPTNE Ik1zb05vcm1hbCI+PHNwYW4gbGFuZz0zRCJFTi1VUyI+MikgSG93IHNob3VsZCB0aGlzIGZpZWxk IGJlIGRlYz0KbGFyZWQgaW4gdGhlIHJkc2xfbWV0YWRhdGE/IERvIEkgaGF2ZSB0byBleHBsaWNp dGx5IHB1dCBpdCBpbiB0aGUgb3B0aW9uYWwgPQphcmd1bWVudHMgb3Igc2hvdWxkIEkgb21pdCBp dD88bzpwPjwvbzpwPjwvc3Bhbj48L3A+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PHNwYW4gbGFu Zz0zRCJFTi1VUyI+MykgSG93IGNhbiBJIG1ha2UgdGhpcyBmaWVsZCBzdD0KcmljdGx5IGltbXV0 YWJsZSAobGlrZSB0aGUgSUQgZmllbGQgaXMpLCBnaXZlbiB0aGF0IHRoZSBhcmNoaXRlY3R1cmUg aXMgYSBmPQppZWxkIG9mIHRoZSBDUFUgZW50aXR5LCBhbmQgdGhlIG1ldGhvZHMgdXNlZCB0byBj aGVjayBmb3IgaW52YWxpZCB1cGRhdGVzIGM9CmFuIG9ubHkgb3BlcmF0ZSBvbiBmaWVsZHMgdGhh dCBiZWxvbmcKIGRpcmVjdGx5IHRvIHRoZSBtYWluIGVudGl0eT8gPG86cD48L286cD48L3NwYW4+ PC9wPgo8cCBjbGFzcz0zRCJNc29Ob3JtYWwiPjxzcGFuIGxhbmc9M0QiRU4tVVMiPjxvOnA+Jm5i c3A7PC9vOnA+PC9zcGFuPjwvcD4KPHAgY2xhc3M9M0QiTXNvTm9ybWFsIj5UaGFua3MuPG86cD48 L286cD48L3A+CjxwIGNsYXNzPTNEIk1zb05vcm1hbCI+PG86cD4mbmJzcDs8L286cD48L3A+Cjwv ZGl2Pgo8L2JvZHk+CjwvaHRtbD4KCi0tXzAwMF9FRjI2RkMxNzc2RjdGRjQ2QkZDMDcyMzkzRUZE MTNBMjlBNDBDNlNFUlYwNzBjb3JwZWxkb3JhXy0tCg== --===============8992312728008146598==--