From like.ma at cs2c.com.cn Mon Aug 15 22:00:15 2016
Content-Type: multipart/mixed; boundary="===============7015894348134617911=="
MIME-Version: 1.0
From: like.ma at cs2c.com.cn
To: users at ovirt.org
Subject: [ovirt-users] qos problem in ovirt python sdk
Date: Tue, 16 Aug 2016 09:52:50 +0800
Message-ID: <201608160952503633379@cs2c.com.cn>
--===============7015894348134617911==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
This is a multi-part message in MIME format.
------=3D_001_NextPart335580042548_=3D----
Content-Type: text/plain;
charset=3D"GB2312"
Content-Transfer-Encoding: base64
SGVsbG8sDQoNCkknbSB1c2luZyBvdmlydDMuNi43LCBhbmQgaSB3YW50IHRvIHVzZSBRb1MgZnVu
Y3Rpb24gYnkgcmVzdGFwaS4gQnV0IGkgZm91bnQgaSBjYW4ndCB1cGRhdGUgdGhlIHFvcyB0byB1
bmxpbWl0ZWQuIA0KRm9yIGV4YW1wbGUsIGkgYXNzaWduZWQgYSBxb3MgbmFtZWQgcW9zMSB0byBh
IHZuaWMgcHJvZmlsZSBuYW1lZCB2cHJvZmlsZTEsIHRoZW4gaSB3YW50IHRvIHNldCB0aGUgcW9z
IG9mIHZwcm9maWxlMSB0byB1bmxpbWl0ZWQsDQpzbyBpIHNldCB0aGUgcW9zIHRvIE5vbmUgaW4g
c2RrIHdoZW4gdXBkYXRlIHZuaWMgcHJvZmlsZSwgYnV0IGFmdGVyIHVwZGF0ZSB0aGUgdm5pYyBw
cm9maWxlIHN0aWxsIGhhcyBxb3MgbmFtZWQgcW9zMS4NCg0KU28sIGhvdyBzaG91bGQgaSBkbyBp
ZiBpIHdhbnQgdG8gc2V0IHFvcyBvZiBhIHZuaWMgcHJvZmlsZSB0byB1bmxpbWl0ZWQ/DQoNCkxv
b2sgZm9yd2FyZCB0byB5b3VyIGhlbHAhDQpUaGFua3MgDQoNCg0KDQpsaWtlLm1hQGNzMmMuY29t
LmNuDQo=3D
------=3D_001_NextPart335580042548_=3D----
Content-Type: text/html;
charset=3D"GB2312"
Content-Transfer-Encoding: quoted-printable
=3D0AHel=
lo,
=3D
div>I'm using ovirt3.6.7, and i want to use QoS function by restapi. But i=
=3D
fount i can't update the qos to unlimited.
For =3D
example, i assigned a qos named qos1 to a vnic profile named vprofile1, th=
=3D
en i want to set the qos of vprofile1 to unlimited,
so i set=3D
the qos to None in sdk when update vnic profile, but after update the vni=
=3D
c profile still has qos named qos1.
So, h=3D
ow should i do if i want to set qos of a vnic profile to unlimited? <=
=3D
div style=3D3D"font-family: =3DCE=3DA2=3DC8=3DED=3DD1=3DC5=3DBA=3DDA, Tahom=
a; line-height: n=3D
ormal;">
Look forward to your help!
Thanks=3D
=3D0A
=3D0Alike.ma(a)cs2c.com.cn<=
/=3D
div>
=3D0A
------=3D_001_NextPart335580042548_=3D------
--===============7015894348134617911==
Content-Type: multipart/alternative
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="attachment.bin"
VGhpcyBpcyBhIG11bHRpLXBhcnQgbWVzc2FnZSBpbiBNSU1FIGZvcm1hdC4KCi0tLS0tLT1fMDAx
X05leHRQYXJ0MzM1NTgwMDQyNTQ4Xz0tLS0tCkNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbjsKCWNo
YXJzZXQ9IkdCMjMxMiIKQ29udGVudC1UcmFuc2Zlci1FbmNvZGluZzogYmFzZTY0CgpTR1ZzYkc4
c0RRb05Da2tuYlNCMWMybHVaeUJ2ZG1seWRETXVOaTQzTENCaGJtUWdhU0IzWVc1MElIUnZJSFZ6
WlNCUmIxTWdablZ1ClkzUnBiMjRnWW5rZ2NtVnpkR0Z3YVM0Z1FuVjBJR2tnWm05MWJuUWdhU0Jq
WVc0bmRDQjFjR1JoZEdVZ2RHaGxJSEZ2Y3lCMGJ5QjEKYm14cGJXbDBaV1F1SUEwS1JtOXlJR1Y0
WVcxd2JHVXNJR2tnWVhOemFXZHVaV1FnWVNCeGIzTWdibUZ0WldRZ2NXOXpNU0IwYnlCaApJSFp1
YVdNZ2NISnZabWxzWlNCdVlXMWxaQ0IyY0hKdlptbHNaVEVzSUhSb1pXNGdhU0IzWVc1MElIUnZJ
SE5sZENCMGFHVWdjVzl6CklHOW1JSFp3Y205bWFXeGxNU0IwYnlCMWJteHBiV2wwWldRc0RRcHpi
eUJwSUhObGRDQjBhR1VnY1c5eklIUnZJRTV2Ym1VZ2FXNGcKYzJScklIZG9aVzRnZFhCa1lYUmxJ
SFp1YVdNZ2NISnZabWxzWlN3Z1luVjBJR0ZtZEdWeUlIVndaR0YwWlNCMGFHVWdkbTVwWXlCdwpj
bTltYVd4bElITjBhV3hzSUdoaGN5QnhiM01nYm1GdFpXUWdjVzl6TVM0TkNnMEtVMjhzSUdodmR5
QnphRzkxYkdRZ2FTQmtieUJwClppQnBJSGRoYm5RZ2RHOGdjMlYwSUhGdmN5QnZaaUJoSUhadWFX
TWdjSEp2Wm1sc1pTQjBieUIxYm14cGJXbDBaV1EvRFFvTkNreHYKYjJzZ1ptOXlkMkZ5WkNCMGJ5
QjViM1Z5SUdobGJIQWhEUXBVYUdGdWEzTWdEUW9OQ2cwS0RRcHNhV3RsTG0xaFFHTnpNbU11WTI5
dApMbU51RFFvPQoKLS0tLS0tPV8wMDFfTmV4dFBhcnQzMzU1ODAwNDI1NDhfPS0tLS0KQ29udGVu
dC1UeXBlOiB0ZXh0L2h0bWw7CgljaGFyc2V0PSJHQjIzMTIiCkNvbnRlbnQtVHJhbnNmZXItRW5j
b2Rpbmc6IHF1b3RlZC1wcmludGFibGUKCjxodG1sPjxoZWFkPjxtZXRhIGh0dHAtZXF1aXY9M0Qi
Y29udGVudC10eXBlIiBjb250ZW50PTNEInRleHQvaHRtbDsgY2hhcnNlPQp0PTNER0IyMzEyIj48
c3R5bGU+Ym9keSB7IGxpbmUtaGVpZ2h0OiAxLjU7IH1ib2R5IHsgZm9udC1zaXplOiAxMC41cHQ7
IGZvbj0KdC1mYW1pbHk6ID1DRT1BMj1DOD1FRD1EMT1DNT1CQT1EQTsgY29sb3I6IHJnYigwLCAw
LCAwKTsgbGluZS1oZWlnaHQ6IDEuNTs9CiB9PC9zdHlsZT48L2hlYWQ+PGJvZHk+PTBBPGRpdj48
c3Bhbj48L3NwYW4+PGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTogPUNFPQo9QTI9Qzg9RUQ9RDE9
QzU9QkE9REEsIFRhaG9tYTsgbGluZS1oZWlnaHQ6IG5vcm1hbDsiPjxkaXY+SGVsbG8sPGJyPjxi
cj48Lz0KZGl2PkknbSB1c2luZyBvdmlydDMuNi43LCBhbmQgaSB3YW50IHRvIHVzZSBRb1MgZnVu
Y3Rpb24gYnkgcmVzdGFwaS4gQnV0IGk9CiBmb3VudCBpIGNhbid0IHVwZGF0ZSB0aGUgcW9zIHRv
IHVubGltaXRlZC4mbmJzcDs8L2Rpdj48L2Rpdj48ZGl2IHN0eWxlPTNEPQoiZm9udC1mYW1pbHk6
ID1DRT1BMj1DOD1FRD1EMT1DNT1CQT1EQSwgVGFob21hOyBsaW5lLWhlaWdodDogbm9ybWFsOyI+
Rm9yID0KZXhhbXBsZSwgaSBhc3NpZ25lZCBhIHFvcyBuYW1lZCBxb3MxIHRvIGEgdm5pYyBwcm9m
aWxlIG5hbWVkIHZwcm9maWxlMSwgdGg9CmVuIGkgd2FudCB0byBzZXQgdGhlIHFvcyBvZiB2cHJv
ZmlsZTEgdG8gdW5saW1pdGVkLDwvZGl2PjxkaXYgc3R5bGU9M0QiZm9uPQp0LWZhbWlseTogPUNF
PUEyPUM4PUVEPUQxPUM1PUJBPURBLCBUYWhvbWE7IGxpbmUtaGVpZ2h0OiBub3JtYWw7Ij5zbyBp
IHNldD0KIHRoZSBxb3MgdG8gTm9uZSBpbiBzZGsgd2hlbiB1cGRhdGUgdm5pYyBwcm9maWxlLCBi
dXQgYWZ0ZXIgdXBkYXRlIHRoZSB2bmk9CmMgcHJvZmlsZSBzdGlsbCBoYXMgcW9zIG5hbWVkIHFv
czEuPC9kaXY+PGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTogPUNFPUEyPQo9Qzg9RUQ9RDE9QzU9
QkE9REEsIFRhaG9tYTsgbGluZS1oZWlnaHQ6IG5vcm1hbDsiPjxicj48L2Rpdj48ZGl2IHN0eWxl
PTNEIj0KZm9udC1mYW1pbHk6ID1DRT1BMj1DOD1FRD1EMT1DNT1CQT1EQSwgVGFob21hOyBsaW5l
LWhlaWdodDogbm9ybWFsOyI+U28sIGg9Cm93IHNob3VsZCBpIGRvIGlmIGkgd2FudCB0byBzZXQg
cW9zIG9mIGEgdm5pYyBwcm9maWxlIHRvIHVubGltaXRlZD88L2Rpdj48PQpkaXYgc3R5bGU9M0Qi
Zm9udC1mYW1pbHk6ID1DRT1BMj1DOD1FRD1EMT1DNT1CQT1EQSwgVGFob21hOyBsaW5lLWhlaWdo
dDogbj0Kb3JtYWw7Ij48YnI+PC9kaXY+PGRpdiBzdHlsZT0zRCJmb250LWZhbWlseTogPUNFPUEy
PUM4PUVEPUQxPUM1PUJBPURBLCBUYWg9Cm9tYTsgbGluZS1oZWlnaHQ6IG5vcm1hbDsiPkxvb2sg
Zm9yd2FyZCB0byB5b3VyIGhlbHAhPC9kaXY+PGRpdiBzdHlsZT0zRCJmPQpvbnQtZmFtaWx5OiA9
Q0U9QTI9Qzg9RUQ9RDE9QzU9QkE9REEsIFRhaG9tYTsgbGluZS1oZWlnaHQ6IG5vcm1hbDsiPlRo
YW5rcz0KJm5ic3A7PC9kaXY+PTBBPGRpdj48YnI+PC9kaXY+PGhyIHN0eWxlPTNEIndpZHRoOiAy
MTBweDsgaGVpZ2h0OiAxcHg7IiBjb2w9Cm9yPTNEIiNiNWM0ZGYiIHNpemU9M0QiMSIgYWxpZ249
M0QibGVmdCI+PTBBPGRpdj48c3Bhbj48ZGl2IHN0eWxlPTNEIk1BUkdJPQpOOiAxMHB4OyBGT05U
LUZBTUlMWTogdmVyZGFuYTsgRk9OVC1TSVpFOiAxMHB0Ij48ZGl2Pmxpa2UubWFAY3MyYy5jb20u
Y248Lz0KZGl2PjwvZGl2Pjwvc3Bhbj48L2Rpdj49MEE8L2JvZHk+PC9odG1sPgotLS0tLS09XzAw
MV9OZXh0UGFydDMzNTU4MDA0MjU0OF89LS0tLS0tCgo=
--===============7015894348134617911==--
From rgolan at redhat.com Tue Aug 16 04:53:59 2016
Content-Type: multipart/mixed; boundary="===============7732531241318311936=="
MIME-Version: 1.0
From: Roy Golan
To: users at ovirt.org
Subject: Re: [ovirt-users] qos problem in ovirt python sdk
Date: Tue, 16 Aug 2016 11:53:37 +0300
Message-ID:
In-Reply-To: 201608160952503633379@cs2c.com.cn
--===============7732531241318311936==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
+yzaspitsk, danken
yzaspitsk isn't an empty network qos means unlimited?
Anyhow, you can meanwhile, simply create a new network qos that is
unlimited, and update profile1 to point to it.
On 16 August 2016 at 04:52, like.ma(a)cs2c.com.cn w=
rote:
> Hello,
>
> I'm using ovirt3.6.7, and i want to use QoS function by restapi. But i
> fount i can't update the qos to unlimited.
> For example, i assigned a qos named qos1 to a vnic profile named
> vprofile1, then i want to set the qos of vprofile1 to unlimited,
> so i set the qos to None in sdk when update vnic profile, but after update
> the vnic profile still has qos named qos1.
>
> So, how should i do if i want to set qos of a vnic profile to unlimited?
>
> Look forward to your help!
> Thanks
>
> ------------------------------
> like.ma(a)cs2c.com.cn
>
> _______________________________________________
> Users mailing list
> Users(a)ovirt.org
> http://lists.ovirt.org/mailman/listinfo/users
>
>
--===============7732531241318311936==
Content-Type: text/html
MIME-Version: 1.0
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="attachment.html"
PGRpdiBkaXI9Imx0ciI+K3l6YXNwaXRzaywgZGFua2VuPGJyPjxkaXY+PGJyPnl6YXNwaXRzayBp
c24mIzM5O3QgYW4gZW1wdHkgbmV0d29yayBxb3MgbWVhbnMgdW5saW1pdGVkPzxicj48YnI+QW55
aG93LCB5b3UgY2FuIG1lYW53aGlsZSwgc2ltcGx5IGNyZWF0ZSBhIG5ldyBuZXR3b3JrIHFvcyB0
aGF0IGlzIHVubGltaXRlZCwgYW5kIHVwZGF0ZSBwcm9maWxlMSB0byBwb2ludCB0byBpdC48YnI+
PGJyPjxicj48L2Rpdj48ZGl2Pjxicj48YnI+PGJyPjwvZGl2PjwvZGl2PjxkaXYgY2xhc3M9Imdt
YWlsX2V4dHJhIj48YnI+PGRpdiBjbGFzcz0iZ21haWxfcXVvdGUiPk9uIDE2IEF1Z3VzdCAyMDE2
IGF0IDA0OjUyLCA8YSBocmVmPSJtYWlsdG86bGlrZS5tYUBjczJjLmNvbS5jbiI+bGlrZS5tYUBj
czJjLmNvbS5jbjwvYT4gPHNwYW4gZGlyPSJsdHIiPiZsdDs8YSBocmVmPSJtYWlsdG86bGlrZS5t
YUBjczJjLmNvbS5jbiIgdGFyZ2V0PSJfYmxhbmsiPmxpa2UubWFAY3MyYy5jb20uY248L2E+Jmd0
Ozwvc3Bhbj4gd3JvdGU6PGJyPjxibG9ja3F1b3RlIGNsYXNzPSJnbWFpbF9xdW90ZSIgc3R5bGU9
Im1hcmdpbjowIDAgMCAuOGV4O2JvcmRlci1sZWZ0OjFweCAjY2NjIHNvbGlkO3BhZGRpbmctbGVm
dDoxZXgiPjxkaXY+CjxkaXY+PHNwYW4+PC9zcGFuPjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OuW+
rui9r+mbhem7kSxUYWhvbWE7bGluZS1oZWlnaHQ6bm9ybWFsIj48ZGl2PkhlbGxvLDxicj48YnI+
PC9kaXY+SSYjMzk7bSB1c2luZyBvdmlydDMuNi43LCBhbmQgaSB3YW50IHRvIHVzZSBRb1MgZnVu
Y3Rpb24gYnkgcmVzdGFwaS4gQnV0IGkgZm91bnQgaSBjYW4mIzM5O3QgdXBkYXRlIHRoZSBxb3Mg
dG8gdW5saW1pdGVkLsKgPC9kaXY+PC9kaXY+PGRpdiBzdHlsZT0iZm9udC1mYW1pbHk65b6u6L2v
6ZuF6buRLFRhaG9tYTtsaW5lLWhlaWdodDpub3JtYWwiPkZvciBleGFtcGxlLCBpIGFzc2lnbmVk
IGEgcW9zIG5hbWVkIHFvczEgdG8gYSB2bmljIHByb2ZpbGUgbmFtZWQgdnByb2ZpbGUxLCB0aGVu
IGkgd2FudCB0byBzZXQgdGhlIHFvcyBvZiB2cHJvZmlsZTEgdG8gdW5saW1pdGVkLDwvZGl2Pjxk
aXYgc3R5bGU9ImZvbnQtZmFtaWx5OuW+rui9r+mbhem7kSxUYWhvbWE7bGluZS1oZWlnaHQ6bm9y
bWFsIj5zbyBpIHNldCB0aGUgcW9zIHRvIE5vbmUgaW4gc2RrIHdoZW4gdXBkYXRlIHZuaWMgcHJv
ZmlsZSwgYnV0IGFmdGVyIHVwZGF0ZSB0aGUgdm5pYyBwcm9maWxlIHN0aWxsIGhhcyBxb3MgbmFt
ZWQgcW9zMS48L2Rpdj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTrlvq7ova/pm4Xpu5EsVGFob21h
O2xpbmUtaGVpZ2h0Om5vcm1hbCI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OuW+
rui9r+mbhem7kSxUYWhvbWE7bGluZS1oZWlnaHQ6bm9ybWFsIj5TbywgaG93IHNob3VsZCBpIGRv
IGlmIGkgd2FudCB0byBzZXQgcW9zIG9mIGEgdm5pYyBwcm9maWxlIHRvIHVubGltaXRlZD88L2Rp
dj48ZGl2IHN0eWxlPSJmb250LWZhbWlseTrlvq7ova/pm4Xpu5EsVGFob21hO2xpbmUtaGVpZ2h0
Om5vcm1hbCI+PGJyPjwvZGl2PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OuW+rui9r+mbhem7kSxU
YWhvbWE7bGluZS1oZWlnaHQ6bm9ybWFsIj5Mb29rIGZvcndhcmQgdG8geW91ciBoZWxwITwvZGl2
PjxkaXYgc3R5bGU9ImZvbnQtZmFtaWx5OuW+rui9r+mbhem7kSxUYWhvbWE7bGluZS1oZWlnaHQ6
bm9ybWFsIj5UaGFua3PCoDwvZGl2Pgo8ZGl2Pjxicj48L2Rpdj48aHIgc3R5bGU9IndpZHRoOjIx
MHB4O21pbi1oZWlnaHQ6MXB4IiBhbGlnbj0ibGVmdCIgY29sb3I9IiNiNWM0ZGYiIHNpemU9IjEi
PjxzcGFuIGNsYXNzPSJIT0VuWmIiPjxmb250IGNvbG9yPSIjODg4ODg4Ij4KPGRpdj48c3Bhbj48
ZGl2IHN0eWxlPSJNQVJHSU46MTBweDtGT05ULUZBTUlMWTp2ZXJkYW5hO0ZPTlQtU0laRToxMHB0
Ij48ZGl2PjxhIGhyZWY9Im1haWx0bzpsaWtlLm1hQGNzMmMuY29tLmNuIiB0YXJnZXQ9Il9ibGFu
ayI+bGlrZS5tYUBjczJjLmNvbS5jbjwvYT48L2Rpdj48L2Rpdj48L3NwYW4+PC9kaXY+CjwvZm9u
dD48L3NwYW4+PC9kaXY+PGJyPl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fXzx3YnI+X19f
X19fX19fX19fX19fX188YnI+ClVzZXJzIG1haWxpbmcgbGlzdDxicj4KPGEgaHJlZj0ibWFpbHRv
OlVzZXJzQG92aXJ0Lm9yZyI+VXNlcnNAb3ZpcnQub3JnPC9hPjxicj4KPGEgaHJlZj0iaHR0cDov
L2xpc3RzLm92aXJ0Lm9yZy9tYWlsbWFuL2xpc3RpbmZvL3VzZXJzIiByZWw9Im5vcmVmZXJyZXIi
IHRhcmdldD0iX2JsYW5rIj5odHRwOi8vbGlzdHMub3ZpcnQub3JnLzx3YnI+bWFpbG1hbi9saXN0
aW5mby91c2VyczwvYT48YnI+Cjxicj48L2Jsb2NrcXVvdGU+PC9kaXY+PGJyPjwvZGl2Pgo=
--===============7732531241318311936==--
From jhernand at redhat.com Tue Aug 16 10:57:31 2016
Content-Type: multipart/mixed; boundary="===============7183547624652525260=="
MIME-Version: 1.0
From: =?utf-8?q?Juan_Hern=C3=A1ndez_=3Cjhernand_at_redhat=2Ecom=3E?=
To: users at ovirt.org
Subject: Re: [ovirt-users] qos problem in ovirt python sdk
Date: Tue, 16 Aug 2016 16:57:26 +0200
Message-ID: <165b2487-1e47-94fb-c02a-f56e99b45654@redhat.com>
In-Reply-To: 201608160952503633379@cs2c.com.cn
--===============7183547624652525260==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
On 08/16/2016 03:52 AM, like.ma(a)cs2c.com.cn wrote:
> Hello,
> =
> I'm using ovirt3.6.7, and i want to use QoS function by restapi. But i
> fount i can't update the qos to unlimited. =
> For example, i assigned a qos named qos1 to a vnic profile named
> vprofile1, then i want to set the qos of vprofile1 to unlimited,
> so i set the qos to None in sdk when update vnic profile, but after
> update the vnic profile still has qos named qos1.
> =
> So, how should i do if i want to set qos of a vnic profile to unlimited?
> =
> Look forward to your help!
> Thanks =
> =
This is a general issue with the way the API works: we don't have
different methods for updating or replacing completely the
representation of an object, we use PUT for everything. This means that
we have to assume that when you send a request without an attribute what
you mean is that you want to preserve it. For example, when you send
something like this:
PUT /ovirt-engine/api/vnicprofiles/123
We have to assume that you want to preserve the attributes, as otherwise
we would just remove all of them. A side effect of this is that there is
no way to express that what you want to do is remove the QoS.
The workaround for that is to create an unlimited QoS (manually or via
the API) and then update the VNIC profile to use that instead of the
previous one. For example:
---8<---
# Find the data center:
dc =3D api.datacenters.get(name=3D'mydc')
# Find the "unlimited" QoS, or create it if it doesn't exit
# yet:
unlimited =3D dc.qoss.get(name=3D'unlimitednetwork')
if unlimited is None:
unlimited =3D dc.qoss.add(
params.QoS(
name=3D'unlimitednetwork',
type_=3D'network',
)
)
# Find the VNIC profile:
profile =3D api.vnicprofiles.get(name=3D'myprofile')
# Change the VNIC profile to use the unlimited QoS:
profile.set_qos(
params.QoS(id=3Dunlimited.get_id())
)
profile.update()
--->8---
-- =
Direcci=C3=B3n Comercial: C/Jose Bardasano Baos, 9, Edif. Gorbea 3, planta
3=C2=BAD, 28016 Madrid, Spain
Inscrita en el Reg. Mercantil de Madrid =E2=80=93 C.I.F. B82657941 - Red Ha=
t S.L.
--===============7183547624652525260==--