CreateInstanceΒΆ

#!/usr/bin/python
#
# This example is based upon openlmi-account provider and adds a user account
# to the given group on managed system.
#
# To make this example work, modify following variables:
#   hostname
#   username
#   password
#   account
#   group

import lmiwbem


hostname = 'hostname'
username = 'username'
password = 'password'
account  = 'account'
group    = 'group'

# Connect to CIMOM.
conn = lmiwbem.WBEMConnection()
conn.connect(hostname, username, password)

# Create LMI_Account instance name.
account_iname = lmiwbem.CIMInstanceName(
    'LMI_Account',
    lmiwbem.NocaseDict({
        'CreationClassName': 'LMI_Account',
        'Name': account,
        'SystemCreationClassName': 'PG_ComputerSystem',
        'SystemName': hostname}),
    hostname,
    'root/cimv2')

# Get account LMI_Identity association.
identity_iname = conn.AssociatorNames(
    account_iname,
    ResultClass='LMI_Identity')[0]

# Create LMI_Group instance name.
group_iname = lmiwbem.CIMInstanceName(
    'LMI_Group',
    lmiwbem.NocaseDict({
        'CreationClassName': 'LMI_Group',
        'Name': group}),
    hostname,
    'root/cimv2')

if 1:
    # Prepare LMI_MemberOfGroup instance.
    member_of_group = lmiwbem.CIMInstance(
        'LMI_MemberOfGroup',
        lmiwbem.NocaseDict({
            'Member': identity_iname,
            'Collection': group_iname}),
        # No qualifiers.
        None,
        lmiwbem.CIMInstanceName(
            'LMI_MemberOfGroup',
            # No keybindings; Member and Collection are not key properties in
            # LMI_MemberOfGroup.
            None,
            hostname,
            'root/cimv2'))

    # Create new instance of LMI_MemberOfGroup.
    new_iname = conn.CreateInstance(member_of_group)
else:
    # CIMInstance can be constructed without CIMInstanceName.
    member_of_group = lmiwbem.CIMInstance(
        'LMI_MemberOfGroup',
        lmiwbem.NocaseDict({
            'Member': identity_iname,
            'Collection': group_iname}),
        # No qualifiers.
        None,
        # No path.
        None)

    # Create new instance of LMI_MemberOfGroup.
    new_iname = conn.CreateInstance(member_of_group, 'root/cimv2')

# Do something with new CIMInstanceName.
print new_iname

# Disconnect from CIMOM.
conn.disconnect()