For the IMM OM API there are higher level python bindings that make it much easier to use compared with the 1-to-1 python bindings. There is for example an InstanceIterator class that iterates through instances for a given class, Ccb class for transactions and immom.get() to retrieve a single object.
The IMM OI API only has the 1-to-1 mappings. This makes it hard to write an OI as all the wrapping of python types to C and back has to be done by each user. OpenSAF should have an abstracted OI python mapping that hides the C (un)marshalling and caching and re-construction of CCB operations.
There are a set of requirements a high-level API for OI should fulfill:
Here is an example of how a (working) prototype program could look like that's using higher level bindings.
[staging:7ea1b9]
[staging:ff9e81]
[staging:7144cf]
[staging:110cc9]
[staging:ae9290]
[staging:f3f3e1]
[staging:b0400b]
[staging:652748]
[staging:47b0f9]
[staging:7776d2]
[staging:70a035]
[staging:004441]
[staging:4bae88]
[staging:366d15]
[staging:aac271]
[staging:bde89d]
[staging:d5c1fc]
[staging:930ec5]
[staging:526542]
[staging:0da37f]
[staging:358a2f]
[staging:b6eac4]
[staging:e4b283]
changeset: 6942:e4b283277fcb
tag: tip
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Mon Sep 28 10:24:31 2015 +0200
summary: pyosaf: Fix get_object_names_for_class to only read the class name attribute [#1406]
changeset: 6941:b6eac46016ff
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Mon Sep 28 10:22:05 2015 +0200
summary: pyosaf: Add usage examples to the immoi sample applications [#1406]
changeset: 6940:358a2f7dd6b2
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Thu Sep 17 14:49:06 2015 +0200
summary: pyosaf: Update users sample OI to work psutil 2.0 [#1406]
changeset: 6939:0da37fc4587c
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Thu Sep 17 14:45:24 2015 +0200
summary: pyosaf: Add usage text for the tones sample OI [#1406]
changeset: 6938:52654216e73e
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Thu Sep 17 14:37:18 2015 +0200
summary: pyosaf: Remove un-used functions from immoi utils and minor cleanups [#1406]
changeset: 6937:930ec5a96cd2
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Thu Sep 17 13:01:02 2015 +0200
summary: pyosaf: Pylint corrections for immoi [#1406]
changeset: 6936:d5c1fcb32cf0
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Tue Sep 15 14:12:40 2015 +0200
summary: pyosaf: Minor fixes to the caps and interface sample OIs [#1406]
changeset: 6935:bde89d10adcf
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Tue Sep 15 11:58:33 2015 +0200
summary: pyosaf: Include admin op parameter name and type in upcall and minor corrections after review [#1406]
changeset: 6934:aac271ce928d
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Mon Sep 14 16:26:02 2015 +0200
summary: pyosaf: Correct sample applications and add help text [#1406]
changeset: 6933:366d15be3683
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Mon Sep 14 15:16:53 2015 +0200
summary: pyosaf: Finish merge of samples and immoi/samples [#1406]
changeset: 6932:4bae881b835b
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Mon Sep 14 15:13:46 2015 +0200
summary: pyosaf: Correct cardinality validation and validate 'deleted' argument [#1406]
changeset: 6931:00444178a1d8
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Mon Sep 14 15:06:17 2015 +0200
summary: pyosaf: Correct interface-handler sample OI and add to README [#1406]
changeset: 6930:70a0352407a1
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Mon Sep 14 12:59:43 2015 +0200
summary: pyosaf: Fix the _validate() method in Applier to include the CCB id in its arguments [#1406]
changeset: 6929:7776d2de68be
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Mon Sep 14 11:28:54 2015 +0200
summary: pyosaf: Use SA_IMM_SEARCH_GET_CONFIG_ATTR to exclude runtime attributes [#1406]
changeset: 6928:47b0f9a60d68
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Thu Sep 03 17:13:29 2015 +0200
summary: pyosaf: Add immoi utils to the makefiles and rpm spec file [#1406]
changeset: 6927:652748dd599c
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Thu Sep 03 17:07:07 2015 +0200
summary: pyosaf: Move sample OIs to the correct directory and merge READMEs [#1406]
changeset: 6926:b0400b9f9079
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Thu Sep 03 16:39:41 2015 +0200
summary: pyosaf: Make 'deleted' contain objects and fix containment code [#1406]
changeset: 6925:f3f3e11bf82e
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Fri Aug 28 15:20:32 2015 +0200
summary: pyosaf: Define DN before using it to filter [#1406]
changeset: 6924:ae92908aaff1
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Fri Aug 28 11:33:33 2015 +0200
summary: pyosaf: Add the users sample OI to the README [#1406]
changeset: 6923:110cc964cb79
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Fri Aug 28 11:33:03 2015 +0200
summary: pyosaf: Correct the users inheritance sample OI to use the right IMM object [#1406]
changeset: 6922:7144cf492457
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Fri Aug 28 11:31:48 2015 +0200
summary: pyosaf: Make the users attribute in the UsersSampleClass multivalued [#1406]
changeset: 6921:ff9e8180405b
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Thu Aug 27 15:23:53 2015 +0200
summary: pyosaf: Fix handling of attribute updates and associated sample applications [#1406]
changeset: 6920:7ea1b951b083
user: Johan Mårtensson johan.o.martensson@ericsson.com
date: Thu Aug 20 13:13:41 2015 +0200
summary: pyosaf: Add Python imm oi utils module and sample applications [#1406]
Related
Tickets:
#1406Commit: [004441]
Commit: [0da37f]
Commit: [110cc9]
Commit: [358a2f]
Commit: [366d15]
Commit: [47b0f9]
Commit: [4bae88]
Commit: [526542]
Commit: [652748]
Commit: [70a035]
Commit: [7144cf]
Commit: [7776d2]
Commit: [7ea1b9]
Commit: [930ec5]
Commit: [aac271]
Commit: [ae9290]
Commit: [b0400b]
Commit: [b6eac4]
Commit: [bde89d]
Commit: [d5c1fc]
Commit: [e4b283]
Commit: [f3f3e1]
Commit: [ff9e81]