[ovirt-users] Request for oVirt Ansible modules testing feedback
Nathanaël Blanchet
blanchet at abes.fr
Fri Jan 13 11:54:47 UTC 2017
Le 10/01/2017 à 16:41, Yaniv Kaul a écrit :
>
>
> On Fri, Jan 6, 2017 at 3:51 PM, Nathanaël Blanchet <blanchet at abes.fr
> <mailto:blanchet at abes.fr>> wrote:
>
> There was a last error in the script :
>
> snap_service = snaps_service.snapshot_service(snap.id
> <http://snap.id>) instead of snap_service =
> snaps_service.snap_service(snap.id <http://snap.id>)
>
> For those who are interested in using a full remove_vm_snapshot
> working script:
>
>
> Perhaps worth contributing to the examples[1] of the SDK?
> Y.
>
> [1] https://github.com/oVirt/ovirt-engine-sdk/tree/master/sdk/examples
Done, you're right, this is the best way to do!
>
>
> # Create the connection to the server:
> connection = sdk.Connection(
> url='https://engine/ovirt-engine/api
> <https://engine/ovirt-engine/api>',
> username='admin at internal',
> password='passwd',
> # ca_file='ca.pem',
> insecure=True,
> debug=True,
> log=logging.getLogger(),
> )
>
> # Locate the virtual machines service and use it to find the virtual
> # machine:
> vms_service = connection.system_service().vms_service()
> vm = vms_service.list(search='name=myvm')[0]
>
> # Locate the service that manages the snapshots of the virtual
> machine:
> vm_service = vms_service.vm_service(vm.id <http://vm.id>)
> snaps_service = vm_service.snapshots_service()
> snaps = snaps_service.list()
> snap = [s for s in snaps if s.description == 'My snapshot2'][0]
>
> # Remove the snapshot:
> snap_service = snaps_service.snapshot_service(snap.id
> <http://snap.id>)
> snap_service.remove()
>
> # Close the connection to the server:
> connection.close()
>
>
> Le 06/01/2017 à 14:44, Nathanaël Blanchet a écrit :
>
>
>
> Le 06/01/2017 à 13:39, Juan Hernández a écrit :
>
> On 01/06/2017 12:20 PM, Nathanaël Blanchet wrote:
>
>
> Le 04/01/2017 à 18:55, Juan Hernández a écrit :
>
> On 01/04/2017 05:38 PM, Nathanaël Blanchet wrote:
>
> Le 04/01/2017 à 15:41, Juan Hernández a écrit :
>
> On 01/04/2017 12:30 PM, Yaniv Kaul wrote:
>
> On Wed, Jan 4, 2017 at 1:04 PM,
> Nicolas Ecarnot <nicolas at ecarnot.net
> <mailto:nicolas at ecarnot.net>
> <mailto:nicolas at ecarnot.net
> <mailto:nicolas at ecarnot.net>>> wrote:
>
> Hello,
>
> Le 04/01/2017 à 11:49,
> Nathanaël Blanchet a écrit :
>
>
>
> Le 04/01/2017 à 10:09,
> Andrea Ghelardi a écrit :
>
>
> Personally I don’t
> think ansible and ovirt-shell are
> mutually exclusive.
>
> Those who are in
> ansible and devops realms are not
> really
> scared by
> making python/ansible
> work with ovirt.
>
> From what I gather,
> playbooks are quite a de-facto
> pre-requisite to
> build up a real SaaC
> “Software as a Code” environment.
>
>
>
> On the other hand,
> ovirt-shell can and is a fast/easy
> way to
> perform
> “normal daily tasks”.
>
> totally agree but
> ovirt-shell is deprecated in 4.1 et
> will be
> removed in
> 4.2. Ansible or sdk4 are
> proposed as an alternative.
>
>
> Could someone point me to an
> URL where sdk4 is fully
> documented, as
> I have to get ready for
> ovirt-shell deprecation?
>
>
> The Rest API is partially documented under
> https://<engine>/api/model .
> It's not complete yet. All new
> features in 4.0 are documented and
> we are
> working on the 'older' features now.
> (contributions are welcome!)
>
>
> I'm sure no one at Redhat
> thought about deprecating a tool in
> favor
> of a new one before providing a
> complete user doc!
>
>
> In addition, the SDK RPM itself
> contains many examples. See [1].
> (contributions are welcome!)
>
> Y.
>
> [1]
> https://github.com/oVirt/ovirt-engine-sdk/tree/master/sdk/examples
> <https://github.com/oVirt/ovirt-engine-sdk/tree/master/sdk/examples>
>
> Although these examples, I can successfully
> create a snapshot, but I
> didn't find the way to delete it...
> Regarding many example, it should be possible
> to locate any service by :
> name_service =
> connection.system_service().name.service()
>
> So logically it should be doable with snapshot
> like
> snapshots_service =
> connection.system_service().snapshots.service()
> but : AttributeError: 'SystemService' object
> has no attribute 'snapshots
>
> In the SDK the services are arranged in a tree
> structure that mimics the
> URL structure of the API. For example, if you want
> to get the service
> that manages a particular snapshot, in the API you
> would use an URL like
> this:
>
> /ovirt-engine/api/vms/123/snapshots/456
>
> In the Python SDK that translates into this:
>
> snap_service = connection.system_service() \
> .vms_service() \
> .vm_service('123') \
> .snapshots_service() \
> .snapshot_service('456')
>
> There is also a generic "service" method that is
> useful when you already
> have all that path as an string:
>
> snap_service =
> connection.service("vms/123/snapshots/456")
>
> Both return exactly the same object. The first is
> usually better when
> you are calculating the path of the object step by
> step, and I generally
> prefer it as it is less error prone.
>
> Once you have the reference to the service, you
> can use the 'remove'
> method:
>
> snap_service.remove()
>
> If you need to search by the names of the objects,
> then you can use the
> 'search' methods, which are only available for the
> top level objects,
> like VM, data centers, clusters, etc. For example,
> to find your virtual
> machine and then the snapshot:
>
> # Get the root service:
> system_service = connection.system_service()
>
> # Find the virtual machine:
> vms_service = system_service.vms_service()
> vm = vms_service.list(search='name=myvm')[0]
>
> # Find the snapshot:
> vm_service = vms_service.vm_service(vm.id
> <http://vm.id>)
> snaps_service = vm_service.snapshots_service()
> snaps = snaps_service.list()
> snap = [s for s in snaps where s.description
> == 'My snap'][0]
>
> sounds good, thank so much for taking time to explain,
> but for the last
> entry, I get ;
>
> snap = [s for s in snaps where s.description == 'My
> snapshot2'][0]
> ^
> SyntaxError: invalid syntax
>
> I apologize, I wrote that too fast. That is SQL syntax,
> not Python. In
> python should be "if" instead of "where":
>
> snap = [s for s in snaps if s.description == 'My
> snapshot2'][0]
>
> Thank you, it's ok for now.
>
>
> May I use a version 3 of python?
>
> You SDK supports both Python 2 and Python 3. If you are
> using the RPMs
> make sure to install the 'python3-ovirt-engine-sdk4' package.
>
>
> python3-ovirt-engine-sdk4 doesn't exist in repos, only
> python-ovirt-engine-sdk4
> Thanks to your explanations, I begin to understand the
> philosophy of this sdk, it's far different from sdk3.
> What's was wrong with the v3, what was the motivation to write
> a new version?
> Will it be possible to use the old sdk3 (manually installed)
> for old scripts in ovirt 4.2 ?
>
>
> Note that both are supported, but Python 3 doesn't get a
> lot of
> attention yet, so you may find issues. If you find any
> issue with Python
> 3 let as know, as we are committed to make it work.
>
> # Remove the snapshot:
> snap_service =
> snaps_service.snap_service(snap.id <http://snap.id>)
> snap_service.remove()
>
> I saw an example into the ansible [ working ]
> way to do the same thing
> and I found this :
> snapshot =
> snapshots_service.snapshot_service(module.params['snapshot_id']).get()
>
>
> How can I get this working with sdk, I mean
> giving snapshot_id as a
> parameter?
>
>
> Also the complete reference documentation
> of the Python SDK is
> available
> here:
>
> http://ovirt.github.io/ovirt-engine-sdk/v4.0/4.0.3/index.html
> <http://ovirt.github.io/ovirt-engine-sdk/v4.0/4.0.3/index.html>
>
> There also SDKs for Ruby and Java, in case
> Python is not your preferred
> language:
>
> Ruby:
> https://github.com/oVirt/ovirt-engine-sdk-ruby/tree/master/sdk
> <https://github.com/oVirt/ovirt-engine-sdk-ruby/tree/master/sdk>
> https://github.com/oVirt/ovirt-engine-sdk-ruby/tree/master/sdk/examples
> <https://github.com/oVirt/ovirt-engine-sdk-ruby/tree/master/sdk/examples>
>
> http://www.rubydoc.info/gems/ovirt-engine-sdk
> <http://www.rubydoc.info/gems/ovirt-engine-sdk>
>
> Java:
> https://github.com/oVirt/ovirt-engine-sdk-java/tree/master/sdk
> <https://github.com/oVirt/ovirt-engine-sdk-java/tree/master/sdk>
>
> https://github.com/oVirt/ovirt-engine-sdk-java/tree/master/sdk/src/test/java/org/ovirt/engine/sdk4/examples
> <https://github.com/oVirt/ovirt-engine-sdk-java/tree/master/sdk/src/test/java/org/ovirt/engine/sdk4/examples>
>
>
>
> http://www.javadoc.io/doc/org.ovirt.engine.api/sdk
> <http://www.javadoc.io/doc/org.ovirt.engine.api/sdk>
>
> --
> Nicolas ECARNOT
>
>
> _______________________________________________
> Users mailing list
> Users at ovirt.org
> <mailto:Users at ovirt.org>
> <mailto:Users at ovirt.org
> <mailto:Users at ovirt.org>>
> http://lists.ovirt.org/mailman/listinfo/users
> <http://lists.ovirt.org/mailman/listinfo/users>
> <http://lists.ovirt.org/mailman/listinfo/users
> <http://lists.ovirt.org/mailman/listinfo/users>>
>
>
>
>
> _______________________________________________
> Users mailing list
> Users at ovirt.org <mailto:Users at ovirt.org>
> http://lists.ovirt.org/mailman/listinfo/users
> <http://lists.ovirt.org/mailman/listinfo/users>
>
> _______________________________________________
> Users mailing list
> Users at ovirt.org <mailto:Users at ovirt.org>
> http://lists.ovirt.org/mailman/listinfo/users
> <http://lists.ovirt.org/mailman/listinfo/users>
>
>
>
> --
> Nathanaël Blanchet
>
> Supervision réseau
> Pôle Infrastrutures Informatiques
> 227 avenue Professeur-Jean-Louis-Viala
> 34193 MONTPELLIER CEDEX 5
> Tél. 33 (0)4 67 54 84 55
> Fax 33 (0)4 67 54 84 14
> blanchet at abes.fr <mailto:blanchet at abes.fr>
>
> _______________________________________________
> Users mailing list
> Users at ovirt.org <mailto:Users at ovirt.org>
> http://lists.ovirt.org/mailman/listinfo/users
> <http://lists.ovirt.org/mailman/listinfo/users>
>
>
--
Nathanaël Blanchet
Supervision réseau
Pôle Infrastrutures Informatiques
227 avenue Professeur-Jean-Louis-Viala
34193 MONTPELLIER CEDEX 5
Tél. 33 (0)4 67 54 84 55
Fax 33 (0)4 67 54 84 14
blanchet at abes.fr
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ovirt.org/pipermail/users/attachments/20170113/707f190b/attachment-0001.html>
More information about the Users
mailing list