Nit: libaiscf.py line 64: service is misspelled.
libaiscf_pymod/Makefile: copyright date should be 2009
General: Please add header block comments for all new methods. Some are
there, some aren't.
libaiscf_instance.c line 411-412: Why the empty if?
libaiscf_service.c line201 and 209: Any reason why you did if (0 !=
function()) and not if (function != 0) ?
Most people will be more used to seeing the later which makes it
easier to read.
Jean
Clay Baenziger wrote:
> Hi all,
> Per some initial feedback from Jean and Dave I've come to round
> two. Here are a few fixes for Python objects which had reference
> counts which were wrong (memory leaks) and I've added support for
> specifying the FMRI for AISCF() objects bringing them closer to being
> fully general.
>
> The diffs can be found at:
> http://cr.opensolaris.org/~clayb/10740/webrev_1_2_diff/
> Or the full webrev at:
> http://cr.opensolaris.org/~clayb/10740/webrev2/
>
> Thank you,
> Clay
>
> On Wed, 19 Aug 2009, Clay Baenziger wrote:
>
>> Hi all,
>> I believe the code is stable, clean, builds correctly and ready
>> for a full code review. I've implemented the last necessary for the
>> library. Now, one can view an instance's state (online, offline,
>> maintenance, etc.) and one can change the state too. For example:
>>>>> libaiscf.AISCF().state
>> 'online'
>>>>> libaiscf.AISCF().state="DISABLE"
>> [wait a bit (~5 sec), or it'll return online still]
>>>>> libaiscf.AISCF().state
>> 'offline'
>>
>> Webrev now at:
>> http://cr.opensolaris.org/~clayb/10740/webrev/
>>
>> Thank you,
>> Clay
>>
>> On Tue, 18 Aug 2009, Clay Baenziger wrote:
>>
>>> Hi all,
>>> I've written a Python<->C bridge for libaiscf. It provides a few
>>> ways to interact with SMF. I'm looking for some folks to look the
>>> code over for memory management issues, for any potential SMF issues
>>> or any other issues others might see. This code has not be whacked
>>> to be c-style happy, so don't worry about that unless you really want.
>>> I am having issues with the delete section of
>>> AIservice_set_subscript(), if anyone has any suggestions what might
>>> be happening (dbx stack trace included). This is triggered when one
>>> tries to delete a property via:
>>> del(libaiscf.AIservice(libaiscf.AISCF(),"test")['status'])
>>>
>>> Thank you,
>>> Clay
>>>
>>> Webrev is at:
>>> http://cr.opensolaris.org/~clayb/10740/webrev_prelim1/
>>>
>>> How the module works:
>>> ---------------------
>>> To load the module, one runs
>>> import libaiscf
>>>
>>> Then to create an SMF instance object, one can run
>>> (for svc:/system/install/server:default)
>>> instance=libaiscf.AISCF()
>>> (for svc:/system/install/server:someThingElse)
>>> instance=libaiscf.AISCF("someThingElse")
>>
>> This has changed to:
>> instance=libaiscf.AISCF(instance="someThingElse")
>>
>>> Further, to create an AI service object, one runs:
>>
>> For clarification, this is just an SMF property group representation
>>
>>> service=libaiscf.AIservice(instance,"serviceName")
>>>
>>> To see a property key under the service, one can do:
>>> service['boot-dir'] (which returns the string value or a KeyError as a
>>> dictionary would if the key doesn't exist)
>>> To set or change a property under the service, one can do:
>>> serivce['boot-dir']="/var/ai/service1_image"
>>>
>>> All actions query SMF and no data is cached in case something
>>> changes under the consumer. All actions are handed to SMF when
>>> executed. Other functions implemented can be read in the PyDoc
>>> output for the module, here attached.
>>