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()