def osh_createDsgAndMemberOsh(db2SubsystemName, db2SubsystemOsh, dsg): str_name = 'name' str_membership = 'membership' if UCMDB_VERSION < 9: str_name = 'data_name' str_membership = 'member' _vector = ObjectStateHolderVector() if isNotNull(dsg) and isNotNull(dsg.name): dsgOsh = ObjectStateHolder('db2_datasharing_group') dsgOsh.setAttribute(str_name, dsg.name) dsgOsh.setAttribute('group_attach_name', dsg.attachName) dsgOsh.setAttribute('group_mode', dsg.mode) if isNotNull(dsg.level) and isnumeric(dsg.level): dsgOsh.setIntegerAttribute('group_level', int(dsg.level)) if isNotNull(dsg.protocolLevel) and isnumeric(dsg.protocolLevel): dsgOsh.setIntegerAttribute('group_protocol_level', int(dsg.protocolLevel)) _vector.add(dsgOsh) for member in dsg.members: if isNotNull(member) and isNotNull(member.db2Member) and isNotNull(member.subsys) and upper(member.subsys) == db2SubsystemName: dsgMemberOsh = ObjectStateHolder('db2_datasharing_group_member') dsgMemberOsh.setAttribute(str_name, member.db2Member) dsgMemberOsh.setAttribute('member_id', member.id) dsgMemberOsh.setAttribute('member_level', member.db2Level) dsgMemberOsh.setAttribute('member_status', member.status) dsgMemberOsh.setContainer(db2SubsystemOsh) _vector.add(dsgMemberOsh) # if DSG Member available, make subsystem member of DSB --------s memberLinkOsh = modeling.createLinkOSH(str_membership, dsgOsh, db2SubsystemOsh) _vector.add(memberLinkOsh) return _vector
def osh_createDb2Tablespace(db2SubsystemOsh, tb): str_name = 'name' if UCMDB_VERSION < 9: str_name = 'data_name' if isNotNull(tb) and isNotNull(tb[0]): tbOsh = ObjectStateHolder('mainframe_db2_tablespace') tbOsh.setAttribute(str_name, tb[0]) tbOsh.setAttribute('dbtablespace_status', tb[1]) tbOsh.setAttribute('type', tb[2]) tbOsh.setAttribute('encoding_scheme', tb[3]) tbOsh.setAttribute('dbtablespace_initialextent', tb[4]) if isNotNull(tb[5]) and isnumeric(tb[5]): tbOsh.setIntegerAttribute('max_dataset_size', int(tb[5])) if isNotNull(tb[6]) and isnumeric(tb[6]): tbOsh.setIntegerAttribute('number_tables', int(tb[6])) if isNotNull(tb[7]) and isnumeric(tb[7]): tbOsh.setIntegerAttribute('number_partitions', int(tb[7])) try: if len(tb[8]) > 19: tb[8] = tb[8][0:18] created = modeling.getDateFromString(tb[8], 'yyyy-MM-dd-kk.mm.ss', None) tbOsh.setDateAttribute('create_date', created) except: logger.debug("Ignoring create_date. Unable to parse date string") tbOsh.setContainer(db2SubsystemOsh) return tbOsh return None
def osh_createDdfOsh(db2SubsystemOsh, ddfObj): str_name = 'name' if UCMDB_VERSION < 9: str_name = 'data_name' _vector = ObjectStateHolderVector() if isNotNull(ddfObj.locationName): ddfOsh = ObjectStateHolder('db2_ddf') ddfOsh.setAttribute(str_name, ddfObj.locationName) ddfOsh.setAttribute('ddf_status', ddfObj.status) ddfOsh.setAttribute('ddf_luname', ddfObj.locationLuName) ddfOsh.setAttribute('ddf_generic_luname', ddfObj.locationGenericLuName) ddfOsh.setAttribute('ddf_ip_address', ddfObj.ipAddress) if isNotNull(ddfObj.ipAddress) and isnumeric(ddfObj.ipAddress): ddfOsh.setAttribute('ddf_tcp_port', int(ddfObj.tcpPort)) ddfOsh.setAttribute('ddf_sql_domain', ddfObj.sqlDomain) ddfOsh.setContainer(db2SubsystemOsh) _vector.add(ddfOsh) for alias in ddfObj.ddfAlias: ddfAliasOsh = ObjectStateHolder('db2_ddf_alias') ddfAliasOsh.setAttribute(str_name, alias.aliasName) if isNotNull(alias.aliasPort) and isnumeric(alias.aliasPort): ddfAliasOsh.setIntegerAttribute('ddf_alias_port', int(alias.aliasPort)) ddfAliasOsh.setContainer(ddfOsh) _vector.add(ddfAliasOsh) return _vector
def osh_createEviewOsh(localshell, zOsOsh, appPath, confFolder, file, nodeName, eviewVersion, defaultIp): # Create EView agent OSH --------------------------------------------------- logger.debug('Creating EView object') eviewOSH = ObjectStateHolder('eview') if _CMDB_CLASS_MODEL.version() >= 9: eviewOSH.setAttribute('name', nodeName) eviewOSH.setAttribute('discovered_product_name', nodeName) eviewOSH.setAttribute('version', eviewVersion) else: eviewOSH.setAttribute('data_name', nodeName) eviewOSH.setAttribute('application_version', eviewVersion) eviewOSH.setAttribute('application_path', appPath) eviewOSH.setAttribute('application_ip', defaultIp) eviewOSH.setAttribute('vendor', 'EView Technology Inc.') eviewOSH.setAttribute('eview_agent_type', 'z/OS') fileContents = localshell.safecat('%s%s' % (confFolder, file)) address, port = eview_lib.getEviewAgentAddress(localshell, fileContents) if eview_lib.isNotNull(address): eviewOSH.setAttribute('application_ip', address) if eview_lib.isNotNull(port) and eview_lib.isnumeric(port): eviewOSH.setIntegerAttribute('application_port', int(port)) eviewOSH.setContainer(zOsOsh) return eviewOSH
def osh_createDsgAndMemberOsh(db2SubsystemName, db2SubsystemOsh, dsg): str_name = 'name' str_membership = 'membership' if UCMDB_VERSION < 9: str_name = 'data_name' str_membership = 'member' _vector = ObjectStateHolderVector() if isNotNull(dsg) and isNotNull(dsg.name): dsgOsh = ObjectStateHolder('db2_datasharing_group') dsgOsh.setAttribute(str_name, dsg.name) dsgOsh.setAttribute('group_attach_name', dsg.attachName) dsgOsh.setAttribute('group_mode', dsg.mode) if isNotNull(dsg.level) and isnumeric(dsg.level): dsgOsh.setIntegerAttribute('group_level', int(dsg.level)) if isNotNull(dsg.protocolLevel) and isnumeric(dsg.protocolLevel): dsgOsh.setIntegerAttribute('group_protocol_level', int(dsg.protocolLevel)) _vector.add(dsgOsh) for member in dsg.members: if isNotNull(member) and isNotNull(member.db2Member) and isNotNull( member.subsys) and upper( member.subsys) == db2SubsystemName: dsgMemberOsh = ObjectStateHolder( 'db2_datasharing_group_member') dsgMemberOsh.setAttribute(str_name, member.db2Member) dsgMemberOsh.setAttribute('member_id', member.id) dsgMemberOsh.setAttribute('member_level', member.db2Level) dsgMemberOsh.setAttribute('member_status', member.status) dsgMemberOsh.setContainer(db2SubsystemOsh) _vector.add(dsgMemberOsh) # if DSG Member available, make subsystem member of DSB --------s memberLinkOsh = modeling.createLinkOSH(str_membership, dsgOsh, db2SubsystemOsh) _vector.add(memberLinkOsh) return _vector