[Engine-devel] Floating Disks implementation in REST-API
by Ori Liel
The "Floating Disks" feature makes disks into stand-alone entities: a given disk may be attached to a VM (as all disks are today), or it may be not attached to any VM, which makes it a floating disk (http://www.ovirt.org/wiki/Features/FloatingDisk)
To implement attach/detach of disk to/from VM in REST-API, we intend to introduce two new actions:
POST .../api/vms/{vm:id}/disks/{disk:id}/attach
POST .../api/vms/{vm:id}/disks/{disk:id}/detach
Since we try not to add new actions unless we have to, I want to explain why I believe that these actions are necessary.
The other implementation would use existing add/remove flows:
POST .../api/vms/{vm:id}/disks - if the disk was passed with an ID, attach it to this VM. If no id - create a new disk.
DELETE .../api/vms/{vm:id}/disks/{disk:id} - *ambiguity problem, need to add a flag*
We can't break existing API, so regular DELETE must remove the disk, as it does today. To detach a disk using DELETE we'd have to add a flag to the DETELE command. This is quite risky, because if the user forgets to pass this flag, the disk which he wanted to detach will actually be deleted.
Theoretically, if we could break the API, the following modelling would resolve the ambiguity and perhaps be ideal:
- POST/DELETE disk in root context means create or delete it.
- POST/DELETE disk in VM context means attach or detach it.
But we don't have the privilege of breaking the API.
Considering all of the above - and the fact that attach/detach nics to/from host is also implemented using actions - I believe that the new actions are justifiable.
Any comments?
Thanks,
Ori
12 years, 8 months
[Engine-devel] ovirt core sync agenda
by Livnat Peer
Hi All,
We have nothing on the agenda for today.
If you have something you would like to discuss please reply to this
mail otherwise we'll cancel today's meeting.
Thanks, Livnat
12 years, 8 months
[Engine-devel] Problem with detachment of host interface using ovirt-sdk
by Itzik Brown
--_000_4488206DC085244C886DBC9E7038B68918D382CEMTRDAG01mtlcom_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Hi,
I'm using ovirt-sdk to attach and detach a network to a host's Interface.
Once the network is attached to the interface I try to detach the network f=
rom the interface using the following steps:
1.Detach the network from the cluster through the GUI.
2.Remove the network from the datacenter through the GUI.
3.Detach the network from the host's interface using the SDK:
nic =3D api.hosts.get(name=3Dhost).nics.get(name=3Dif_name)
net =3D params.Network(name=3Dnet_name)
act =3D params.Action(network=3Dnet)
nic.detach(act)
api.hosts.get(name=3Dhost).commitnetconfig()
Then I get the error:
http://pastebin.com/3Md07huE
The same flow using the GUI works fine.
Network removal from the Datacenter is a trigger for me to run the detachme=
nt operation therefore I use this flow.
I use the following components:
rhevm-3.0.2_0001-2
ovirt-sdk (Using the latest from git repository)
Please advise how to proceed.
Thanks,
Itzik
--_000_4488206DC085244C886DBC9E7038B68918D382CEMTRDAG01mtlcom_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:"Cambria Math";
panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
{font-family:"Courrier New";
panose-1:0 0 0 0 0 0 0 0 0 0;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0cm;
margin-bottom:.0001pt;
text-align:right;
direction:rtl;
unicode-bidi:embed;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:612.0pt 792.0pt;
margin:72.0pt 90.0pt 72.0pt 90.0pt;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">Hi,<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">I'm using ovirt-sdk to attach and detach a network to a host's Inter=
face.<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">Once the network is attached to the interface I try to detach the ne=
twork from the interface using the following steps:<span lang=3D"HE" dir=3D=
"RTL" style=3D"font-family:"Arial","sans-serif""><o:p><=
/o:p></span></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">1.Detach the network from the cluster through the GUI.<o:p></o:p></p=
>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">2.Remove the network from the datacenter through the GUI.<o:p></o:p>=
</p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">3.Detach the network from the host's interface using the SDK:<o:p></=
o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;text-autospace:none;directi=
on:ltr;unicode-bidi:embed">
<span style=3D"font-size:10.0pt;font-family:"Courrier New"">nic =
=3D api.hosts.get(name=3Dhost).nics.get(name=3Dif_name)<span style=3D"color=
:#404040;background:gray;mso-highlight:gray"><o:p></o:p></span></span></p>
<p class=3D"MsoNormal" style=3D"text-align:left;text-autospace:none;directi=
on:ltr;unicode-bidi:embed">
<span style=3D"font-size:10.0pt;font-family:"Courrier New"">net =
=3D params.Network(name=3Dnet_name)<span style=3D"color:#404040;background:=
gray;mso-highlight:gray"><o:p></o:p></span></span></p>
<p class=3D"MsoNormal" style=3D"text-align:left;text-autospace:none;directi=
on:ltr;unicode-bidi:embed">
<span style=3D"font-size:10.0pt;font-family:"Courrier New"">act =
=3D params.Action(network=3Dnet)<span style=3D"color:#404040;background:gra=
y;mso-highlight:gray"><o:p></o:p></span></span></p>
<p class=3D"MsoNormal" style=3D"text-align:left;text-autospace:none;directi=
on:ltr;unicode-bidi:embed">
<span style=3D"font-size:10.0pt;font-family:"Courrier New"">nic.d=
etach(act)<span style=3D"color:#404040;background:gray;mso-highlight:gray">=
<o:p></o:p></span></span></p>
<p class=3D"MsoNormal" style=3D"text-align:left;text-autospace:none;directi=
on:ltr;unicode-bidi:embed">
<span style=3D"font-size:10.0pt;font-family:"Courrier New"">api.h=
osts.get(name=3Dhost).commitnetconfig()<span style=3D"color:#404040;backgro=
und:gray;mso-highlight:gray"><o:p></o:p></span></span></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">Then I get the error:<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><a href=3D"http://pastebin.com/3Md07huE">http://pastebin.com/3Md07hu=
E</a><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">The same flow using the GUI works fine.<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">Network removal from the Datacenter is a trigger for me to run the d=
etachment operation therefore I use this flow.<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">I use the following components:<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><span style=3D"font-size:10.0pt;font-family:"Courrier New"=
">rhevm-3.0.2_0001-2</span><o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">ovirt-sdk (Using the latest from git repository)<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">Please advise how to proceed.<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed"><o:p> </o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">Thanks,<o:p></o:p></p>
<p class=3D"MsoNormal" style=3D"text-align:left;direction:ltr;unicode-bidi:=
embed">Itzik<o:p></o:p></p>
</div>
</body>
</html>
--_000_4488206DC085244C886DBC9E7038B68918D382CEMTRDAG01mtlcom_--
12 years, 8 months
[Engine-devel] "add permission to user" dialog - nothing shown by default
by Einav Cohen
[https://bugzilla.redhat.com/show_bug.cgi?id=810287]
When opening the "add permission to user" dialog, no user is shown in the grid by default; user has to enter something in the search text-box within the dialog (or leave it empty) and hit "Go"; only then the list of users is being filled (according to the search text-box contents).
This behavior is by design.
Do you think that this behavior should change? i.e. do you think that the users grid should be filled right after opening the dialog with a list of all users?
Please consider the following:
- calling to the search query and rendering its results may take a while, so user may open the dialog, but will be able to do something only after waiting a while (when originally, all he intended to do was to search a very particular user, which would have taken a short time).
- we may have several domains, so grid will be filled with results of the first domain selected (which might not be the domain that the user intended to search originally), so this may be annoying.
Due to the reasons above, my personal take is that the current behavior is OK and shouldn't be changed (i.e. BZ should be closed).
Any comments?
12 years, 8 months
[Engine-devel] Unable to Run 'make install-tools'
by Schoenbrun, Dustin
--_000_0A1534657992624AACDCA570F1D3E2000D3CBASACEXCMBX03PRDhqn_
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Greetings,
I'm running into an issue at the "Deploying engine-config and engine-manage=
-domains" section of the "Building oVirt Engine" article on the wiki. Buil=
ding from the source using maven2 has completed successfully and I'm stuck =
on the series of commands listed below:
# cd $OVIRT_HOME
# make create_dirs
# make install_tools
# make install_config
My build fails on the 'make install-tools' command. The output of the comm=
and is below:
[root@ovirt ovirt-engine]# make install_tools
*** Installing Common Tools
cp -f /root/ovirt-engine/rpmbuild/SOURCES/engine-tools-common-3.1.0-0001.ja=
r /usr/share/java/
cp: cannot stat `/root/ovirt-engine/rpmbuild/SOURCES/engine-tools-common-3.=
1.0-0001.jar': No such file or directory
make: *** [install_tools] Error 1
[root@ovirt ovirt-engine]# pwd
/root/ovirt-engine
[root@ovirt ovirt-engine]# ls
backend build-tools deployment frontend Makefile pom.xml
build_mvn config ear LICENSE packaging
[root@ovirt ovirt-engine]#
Any insight into how to proceed would be greatly appreciated. Thanks!
--
Dustin Schoenbrun
Software Engineer
NetApp - Data Center Platforms
919-476-5919 (office)
dustin.schoenbrun(a)netapp.com
--_000_0A1534657992624AACDCA570F1D3E2000D3CBASACEXCMBX03PRDhqn_
Content-Type: text/html; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
<html xmlns:v=3D"urn:schemas-microsoft-com:vml" xmlns:o=3D"urn:schemas-micr=
osoft-com:office:office" xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns:m=3D"http://schemas.microsoft.com/office/2004/12/omml" xmlns=3D"http:=
//www.w3.org/TR/REC-html40">
<head>
<meta http-equiv=3D"Content-Type" content=3D"text/html; charset=3Dus-ascii"=
>
<meta name=3D"Generator" content=3D"Microsoft Word 14 (filtered medium)">
<style><!--
/* Font Definitions */
@font-face
{font-family:Calibri;
panose-1:2 15 5 2 2 2 4 3 2 4;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
{margin:0in;
margin-bottom:.0001pt;
font-size:11.0pt;
font-family:"Calibri","sans-serif";}
a:link, span.MsoHyperlink
{mso-style-priority:99;
color:blue;
text-decoration:underline;}
a:visited, span.MsoHyperlinkFollowed
{mso-style-priority:99;
color:purple;
text-decoration:underline;}
span.EmailStyle17
{mso-style-type:personal-compose;
font-family:"Calibri","sans-serif";
color:windowtext;}
.MsoChpDefault
{mso-style-type:export-only;
font-family:"Calibri","sans-serif";}
@page WordSection1
{size:8.5in 11.0in;
margin:1.0in 1.0in 1.0in 1.0in;}
div.WordSection1
{page:WordSection1;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext=3D"edit">
<o:idmap v:ext=3D"edit" data=3D"1" />
</o:shapelayout></xml><![endif]-->
</head>
<body lang=3D"EN-US" link=3D"blue" vlink=3D"purple">
<div class=3D"WordSection1">
<p class=3D"MsoNormal">Greetings,<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">I’m running into an issue at the “Deploy=
ing engine-config and engine-manage-domains” section of the “Bu=
ilding oVirt Engine” article on the wiki. Building from the sou=
rce using maven2 has completed successfully and I’m stuck on the seri=
es
of commands listed below:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal"># cd $OVIRT_HOME<o:p></o:p></p>
<p class=3D"MsoNormal"># make create_dirs<o:p></o:p></p>
<p class=3D"MsoNormal"># make install_tools<o:p></o:p></p>
<p class=3D"MsoNormal"># make install_config<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">My build fails on the ‘make install-tools̵=
7; command. The output of the command is below:<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">[root@ovirt ovirt-engine]# make install_tools<o:p></=
o:p></p>
<p class=3D"MsoNormal">*** Installing Common Tools<o:p></o:p></p>
<p class=3D"MsoNormal">cp -f /root/ovirt-engine/rpmbuild/SOURCES/engine-too=
ls-common-3.1.0-0001.jar /usr/share/java/<o:p></o:p></p>
<p class=3D"MsoNormal">cp: cannot stat `/root/ovirt-engine/rpmbuild/SOURCES=
/engine-tools-common-3.1.0-0001.jar': No such file or directory<o:p></o:p><=
/p>
<p class=3D"MsoNormal">make: *** [install_tools] Error 1<o:p></o:p></p>
<p class=3D"MsoNormal">[root@ovirt ovirt-engine]# pwd<o:p></o:p></p>
<p class=3D"MsoNormal">/root/ovirt-engine<o:p></o:p></p>
<p class=3D"MsoNormal">[root@ovirt ovirt-engine]# ls<o:p></o:p></p>
<p class=3D"MsoNormal">backend build-tools deployme=
nt frontend Makefile pom.xml<o:p></o:p></p>
<p class=3D"MsoNormal">build_mvn config =
ear LICENSE &nb=
sp; packaging<o:p></o:p></p>
<p class=3D"MsoNormal">[root@ovirt ovirt-engine]#<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">Any insight into how to proceed would be greatly app=
reciated. Thanks!<o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
<p class=3D"MsoNormal">--<o:p></o:p></p>
<p class=3D"MsoNormal">Dustin Schoenbrun<o:p></o:p></p>
<p class=3D"MsoNormal">Software Engineer<o:p></o:p></p>
<p class=3D"MsoNormal">NetApp – Data Center Platforms<o:p></o:p></p>
<p class=3D"MsoNormal">919-476-5919 (office)<o:p></o:p></p>
<p class=3D"MsoNormal">dustin.schoenbrun(a)netapp.com <o:p></o:p></p>
<p class=3D"MsoNormal"><o:p> </o:p></p>
</div>
</body>
</html>
--_000_0A1534657992624AACDCA570F1D3E2000D3CBASACEXCMBX03PRDhqn_--
12 years, 8 months
[Engine-devel] Is there a preferred workflow when adding additional error messages to VDSM _and_ Engine?
by Lee Yarwood
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Hello all,
I'm currently working on a patch to correct the logic used by vdsm when
reviewing the logical and physical block size of physical volumes [1].
Once/If this is approved I'd like to look into making the exceptions
thrown from vdsm and the errors displayed within engine more descriptive.
Before I start throwing patches into gerrit I was wondering *if* there
is a preferred workflow when adding additional exceptions and error
messages across both projects. For example, committing changes to vdsm
before engine, engine before vdsm or both at the same time.
I'm also wondering if there is a way to say that vdsm gerrit changeid x
relies on engine gerrit changeid y etc?
Thanks in advance,
Lee
- --
Lee Yarwood
Software Maintenance Engineer
Red Hat UK Ltd
200 Fowler Avenue IQ Farnborough, Farnborough, Hants GU14 7JP
Registered in England and Wales under Company Registration No. 03798903
Directors: Michael Cunningham (USA), Brendan Lane (Ireland), Matt
Parson(USA), Charlie Peters (USA)
GPG fingerprint : A5D1 9385 88CB 7E5F BE64 6618 BCA6 6E33 F672 2D76
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.12 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/
iQEcBAEBAgAGBQJPgFjGAAoJELymbjP2ci12MScIANRBXgWPSjeSZvSM2+bZmDrD
FefJfxMcCQFtTqWYePXIxFgqeeRcFc57+6alExBRU2g9nKZJEIPn2vj640XSTGlt
n5T4ItED1IVydzuEXFOAvgaTmZfKzTQkxQWp8QgL6pC7cYgnp2nL7gkbkedx1JyI
gCgCGomrHeWP2++vUS8UjtCccZdTJiOiWqoH2sBCKgEVcmFMgvYREK6hTou4DHU4
DcpureWuLvM4HWUlyfl37eXQOmy66A7uHGp3xF5sykQZ9aozaiMFjSoCqQOEVqO6
jHRnsQB6FfF/xU+F/UQK5PKZOm7e+KvrMjhIDfR+/DX3t0rkrtc69gg2O6duy4o=
=vdud
-----END PGP SIGNATURE-----
12 years, 8 months
[Engine-devel] deprecating auto-detection of Ldap provider types
by Roy Golan
auto-detection featured few bugs lately which convinced me that it must
be deprecated/removed from
the code in favor of adding manual set of the provider type.
main reasons for that:
a. the provider is type is known by the user
b. identifying a provider by the rootDSE attributes is error-prone, not
reliable etc... specially if the support matrix is growing
c. auto-detection logic is duplicated (and not shared) between the
backend code and the manage-domains tool (nevermind the reasons now)
A manual set of the provider type requires a new configuration field for
a domain and the
question is the upgrade path which may look like
* set the provider type to default Active Directory (because its more
likely to be the provider type)
* things not working - use the engine-manage-domains and choose the
provider type.
* optionally - keep the auto-detection (of the tool only!) if user
wants to use it.
your suggestion and thoughts...
Thanks,
Roy
12 years, 8 months