python and em cli: the enterprise management super tools
DESCRIPTION
Release 3 of Enterprise Manager gives the command line interface for EM a distinct advantage by moving the EMCLI functionality into Jython, a Java implementation of the Python programming language. This session will provide an introduction to Python and give attendees a crash course in the newest version of EMCLI so they can get started using this powerful tool in their environments right away. Learning Objectives: -- Evaluate where Python can provide solutions in other aspects of the DBA's responsibility including automating password changes and backups. -- Understand how to implement and use release 3 of EMCLI. Differentiate between the Jython architecture of release 3 versus earlier versions of EMCLI. -- Have a basic understanding of and be able to construct simple scripts in Python.TRANSCRIPT
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
Python and EM CLI
The Enterprise Management
Super Tools
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgWho Am I?
• Oracle ACE• IOUG Board of Directors• Oracle University Instructor• TCOUG Vice President• RAC Attack! Ninja• Lives in St. Paul, MN
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgOverview
• History of Python• BDFL• Jython• JSON• Python Examples• EM CLI Examples
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgHistory
• Created by Guido Van Rossum • Influenced by ABC• Released in 1991• Named after Monty Python’s
Flying Circus
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgBenevolent Dictator for Life (BDFL)
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
Scripting or Programming
• Both!• Programming
languages must be compiled
• Compiled at runtime
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJython
• Python written in Java• Released in 1997 as JPython• Replaced “C” implementation of
Python• EM CLI and WLST• No Java Experience Required
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJSON
• JavaScript Object Notation• Data Interchange Standard• A collection of name/value pairs• Universal• Python object
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgGetting Started
• Built for Ease-of-Use• Indentation Format• Interactive Interface
for VAR in myLoop: do this commandprint('This line does not \ belong in myLoop')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgHello World!
myvar = 'Hello World!'if myvar: print(myvar)
Hello World!
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgHELP!
• Search for Python
help()help> STRINGSemcli> help('list_active_sessions')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgBasic Object Types
• String• List• Dictionary (Hash)
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
>>> mystring = 'word word word'>>> yourstring = mystring>>> yourstring += mystring>>> yourstring'word word wordword word word'
Strings
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
mystring = 'word word word'
Strings
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
yourstring = mystring
Strings
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
yourstring += mystring
Strings
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
>>> yourstring 'word word wordword word word'
Strings
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
>>> mystring = 'word word word'>>> yourstring = mystring>>> yourstring += mystring>>> yourstring'word word wordword word word'
Strings
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgLists – Parse /etc/oratab entries
>>> oraline = 'orcl:/u01/app/oracle:N'>>> oraline.split(':')['orcl', '/u01/app/oracle', 'N']>>> orasplit = oraline.split(':')>>> if orasplit[0] == 'orcl':... print('ORACLE_HOME: ' + orasplit[1])ORACLE_HOME: /u01/app/oracle>>> while orasplit:... print(orasplit.pop())N/u01/app/oracleorcl>>> orasplit[]
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgLists – Parse /etc/oratab entries
>>> oraline = 'orcl:/u01/app/oracle:N'
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgLists – Parse /etc/oratab entries
>>> oraline.split(':')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgLists – Parse /etc/oratab entries
>>> oraline.split(':') ['orcl', '/u01/app/oracle', 'N']
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgLists – Parse /etc/oratab entries
>>> orasplit = oraline.split(':')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgLists – Parse /etc/oratab entries
>>> if orasplit[0] == 'orcl': print('ORACLE_HOME: ' + orasplit[1])ORACLE_HOME: /u01/app/oracle
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgLists – Parse /etc/oratab entries
>>> while orasplit: print(orasplit.pop()) N /u01/app/oracle orcl
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgLists – Parse /etc/oratab entries
>>> orasplit []
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgLists – Parse /etc/oratab entries
>>> oraline = 'orcl:/u01/app/oracle:N'>>> oraline.split(':')['orcl', '/u01/app/oracle', 'N']>>> orasplit = oraline.split(':')>>> if orasplit[0] == 'orcl':... print('ORACLE_HOME: ' + orasplit[1])ORACLE_HOME: /u01/app/oracle>>> while orasplit:... print(orasplit.pop())N/u01/app/oracleorcl>>> orasplit[]
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
Dictionaries (Hashes) Target Properties
>>> mydict = {'Product':'Enterprise Manager', 'Vendor':'Oracle', 'Acronym':'EM', 'CLI':'EM CLI'}>>> mydict['Product']'Enterprise Manager'>>> mydict2 = {'Purpose':'Alerts', 'Size':'100GB'}>>> mydict.update(mydict2)>>> mydict{'Product': 'Enterprise Manager', 'Vendor': 'Oracle', 'CLI': 'EM CLI', 'Acronym': 'EM', 'Size': '100GB', 'Purpose': 'Alerts'}>>> for a, b in mydict.items(): print('Key: ' + a + '\nValue: ' + b + '\n')Key: ProductValue: Enterprise Manager
Key: VendorValue: Oracle
Key: CLIValue: EM CLI
Key: AcronymValue: EM
Key: SizeValue: 100GB
Key: PurposeValue: Alerts
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
>>> mydict = {'Product':'Enterprise Manager', 'Vendor':'Oracle', 'Acronym':'EM', 'CLI':'EM CLI'}
Dictionaries (Hashes) Target Properties
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
>>> mydict['Product']'Enterprise Manager'
Dictionaries (Hashes) Target Properties
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
>>> mydict2 = {'Purpose':'Alerts', 'Size':'100GB'}
Dictionaries (Hashes) Target Properties
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
>>> mydict.update(mydict2)
Dictionaries (Hashes) Target Properties
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
>>> mydict{'Product': 'Enterprise Manager‘, 'Vendor': 'Oracle', 'CLI': 'EM CLI', 'Acronym': 'EM', 'Size': '100GB', 'Purpose': 'Alerts'}
Dictionaries (Hashes) Target Properties
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
>>> for a, b in mydict.items(): print('Key: ' + a + '\nValue: ' + b + '\n')
Dictionaries (Hashes) Target Properties
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
Key: VendorValue: Oracle
Key: CLIValue: EM CLI
Key: AcronymValue: EM
Key: SizeValue: 100GB
Key: PurposeValue: Alerts
Dictionaries (Hashes) Target Properties
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
>>> mydict = {'Product':'Enterprise Manager', 'Vendor':'Oracle', 'Acronym':'EM', 'CLI':'EM CLI'}>>> mydict['Product']'Enterprise Manager'>>> mydict2 = {'Purpose':'Alerts', 'Size':'100GB'}>>> mydict.update(mydict2)>>> mydict{'Product': 'Enterprise Manager', 'Vendor': 'Oracle', 'CLI': 'EM CLI', 'Acronym': 'EM', 'Size': '100GB', 'Purpose': 'Alerts'}>>> for a, b in mydict.items(): print('Key: ' + a + '\nValue: ' + b + '\n')Key: ProductValue: Enterprise Manager
Key: VendorValue: Oracle
Key: CLIValue: EM CLI
Key: AcronymValue: EM
Key: SizeValue: 100GB
Key: PurposeValue: Alerts
Dictionaries (Hashes) Target Properties
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgExamples
• Logon Script• Text Mode• JSON Mode• Update Properties Function• Class
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
from emcli import *
def myLogin(): set_client_property('EMCLI_OMS_URL', 'https://em12cr3.example.com:7802/em') set_client_property('EMCLI_TRUSTALL', 'true') login(username='sysman')
myLogin()
Logon Script
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org
[oracle~] export JYTHONPATH=/home/oracle/scripts[oracle~] $ORACLE_HOME/bin/emcli
emcli>import startEnter password : **********emcli>
Logon Script
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgTEXT Mode
emcli>set_client_property('EMCLI_OUTPUT_TYPE', 'TEXT')emcli>str(get_client_property('EMCLI_OUTPUT_TYPE'))'TEXT'emcli>get_targets().isJson()Falseemcli>type(get_targets().out())<type 'unicode'>emcli>type(get_targets().out().splitlines())<type 'list'>emcli>get_targets()Status Status Target Type Target Name ID4 Agent Unreachab host em12cr3.example.com le
emcli>linenum = 0emcli>for i in get_targets().out().splitlines()[0:4]: linenum += 1 print('Linenum ' + str(linenum) + ': ' + i)Linenum 1: Status Status Target Type Target NameLinenum 2: IDLinenum 3: 4 Agent Unreachab host em12cr3.example.comLinenum 4: le
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgTEXT Mode
emcli>set_client_property('EMCLI_OUTPUT_TYPE', 'TEXT')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgTEXT Mode
emcli>str(get_client_property('EMCLI_OUTPUT_TYPE'))'TEXT'
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgTEXT Mode
emcli>get_targets().isJson()False
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgTEXT Mode
emcli>type(get_targets().out())<type 'unicode'>
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgTEXT Mode
emcli>type(get_targets().out().splitlines())<type 'list'>
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgTEXT Mode
emcli>get_targets()Status Status Target Type Target NameID4 Agent Unreachab host em12cr3.example.comle
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgTEXT Mode
emcli>linenum = 0emcli>for i in get_targets().out().splitlines()[0:4]: linenum += 1 print('Linenum ' + str(linenum) + ': ' + i)Linenum 1: Status Status Target Type Target NameLinenum 2: IDLinenum 3: 4 Agent Unreachab host em12cr3.example.comLinenum 4: le
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgTEXT Mode
emcli>set_client_property('EMCLI_OUTPUT_TYPE', 'TEXT')emcli>str(get_client_property('EMCLI_OUTPUT_TYPE'))'TEXT'emcli>get_targets().isJson()Falseemcli>type(get_targets().out())<type 'unicode'>emcli>type(get_targets().out().splitlines())<type 'list'>emcli>get_targets()Status Status Target Type Target Name ID4 Agent Unreachab host em12cr3.example.com le
emcli>linenum = 0emcli>for i in get_targets().out().splitlines()[0:4]: linenum += 1 print('Linenum ' + str(linenum) + ': ' + i)Linenum 1: Status Status Target Type Target NameLinenum 2: IDLinenum 3: 4 Agent Unreachab host em12cr3.example.comLinenum 4: le
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJSON Mode
emcli>set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')emcli>str(get_client_property('EMCLI_OUTPUT_TYPE'))'JSON'emcli>get_targets().isJson()Trueemcli>type(get_targets().out())<type 'dict'>emcli>type(get_targets().out()['data'])<type 'list'>emcli>get_targets().out()['data'][0]{'Status': 'Agent Unreachable', 'Target Name': 'em12cr3.example.com', 'Status ID': '4', 'Warning': '0', 'Critical': '0', 'Target Type': 'host'}emcli>for i in get_targets().out()['data']: print('Target: ' + i['Target Name'])Target: em12cr3.example.comTarget: /EMGC_GCDomain/GCDomain/EMGC_OMS1/emgcTarget: /EMGC_GCDomain/GCDomain/EMGC_OMS1/OCMRepeater
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJSON Mode
emcli>set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJSON Mode
emcli>str(get_client_property('EMCLI_OUTPUT_TYPE'))'JSON'
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJSON Mode
emcli>get_targets().isJson()True
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJSON Mode
emcli>type(get_targets().out())<type 'dict'>
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJSON Mode
emcli>type(get_targets().out()['data'])<type 'list'>
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJSON Mode
emcli>get_targets().out()['data'][0]{'Status': 'Agent Unreachable', 'Target Name': 'em12cr3.example.com', 'Status ID': '4', 'Warning': '0', 'Critical': '0', 'Target Type': 'host'}
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJSON Mode
emcli>for i in get_targets().out()['data']: print('Target: ' + i['Target Name'])Target: em12cr3.example.comTarget: /EMGC_GCDomain/GCDomain/EMGC_OMS1/emgcTarget: /EMGC_GCDomain/GCDomain/EMGC_OMS1/OCMRepeater
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgJSON Mode
emcli>set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')emcli>str(get_client_property('EMCLI_OUTPUT_TYPE'))'JSON'emcli>get_targets().isJson()Trueemcli>type(get_targets().out())<type 'dict'>emcli>type(get_targets().out()['data'])<type 'list'>emcli>get_targets().out()['data'][0]{'Status': 'Agent Unreachable', 'Target Name': 'em12cr3.example.com', 'Status ID': '4', 'Warning': '0', 'Critical': '0', 'Target Type': 'host'}emcli>for i in get_targets().out()['data']: print('Target: ' + i['Target Name'])Target: em12cr3.example.comTarget: /EMGC_GCDomain/GCDomain/EMGC_OMS1/emgcTarget: /EMGC_GCDomain/GCDomain/EMGC_OMS1/OCMRepeater
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
emcli>myprops = {'LifeCycle Status':'Development', 'Location':'COLO'}emcli>set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')emcli>mytargs = list(resource='Targets').out()['data']emcli>mytargprops = list(resource='TargetProperties').out()['data']emcli>for targ in mytargs: if targ['TARGET_TYPE'] == 'oracle_database' and 'em12cr3' in targ['TARGET_NAME']: print(targ['TARGET_NAME'])orcl_em12cr3.example.com
emcli>for targ in mytargs: if 'oracle_database' in targ['TARGET_TYPE'] and 'em12cr3' in targ['TARGET_NAME']: target_name = targ['TARGET_NAME'] target_type = targ['TARGET_TYPE'] for propkey, propvalue in myprops.items(): myrec = target_name + ':' + target_type + ':' + propkey + ':' + propvalue set_target_property_value(property_records=myrec)Properties updated successfully
Properties updated successfully
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
emcli>myprops = { 'LifeCycle Status':'Development', 'Location':'COLO'}
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
emcli>set_client_property( 'EMCLI_OUTPUT_TYPE', 'JSON')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
emcli>mytargs = list( resource='Targets').out()['data']
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
emcli>mytargprops = list( resource='TargetProperties' ).out()['data']
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
emcli>for targ in mytargs: if targ['TARGET_TYPE'] == \ 'oracle_database' and 'em12cr3' \ in targ['TARGET_NAME']: print(targ['TARGET_NAME'])
orcl_em12cr3.example.com
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
emcli>for targ in mytargs: if 'oracle_database' in \ targ['TARGET_TYPE'] and \ 'em12cr3' in targ['TARGET_NAME']:
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
target_name = targ['TARGET_NAME']target_type = targ['TARGET_TYPE']
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
for propkey, propvalue in myprops.items():
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
for propkey, propvalue in myprops.items():
myrec = target_name + ':' + \ target_type + ':' + propkey + ':' + \ propvalue
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
for propkey, propvalue in myprops.items():
set_target_property_value( property_records=myrec)
Properties updated successfully
Properties updated successfully
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgUpdate Properties
emcli>myprops = {'LifeCycle Status':'Development', 'Location':'COLO'}emcli>set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')emcli>mytargs = list(resource='Targets').out()['data']emcli>mytargprops = list(resource='TargetProperties').out()['data']emcli>for targ in mytargs: if targ['TARGET_TYPE'] == 'oracle_database' and 'em12cr3' in targ['TARGET_NAME']: print(targ['TARGET_NAME'])orcl_em12cr3.example.com
emcli>for targ in mytargs: if 'oracle_database' in targ['TARGET_TYPE'] and 'em12cr3' in targ['TARGET_NAME']: target_name = targ['TARGET_NAME'] target_type = targ['TARGET_TYPE'] for propkey, propvalue in myprops.items(): myrec = target_name + ':' + target_type + ':' + propkey + ':' + propvalue set_target_property_value(property_records=myrec)Properties updated successfully
Properties updated successfully
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgQuery Target Properties
emcli>mytargprops = list(resource='TargetProperties').out()['data'] emcli>for i in mytargprops: if i['TARGET_TYPE'] == 'oracle_database' and i['TARGET_NAME'] == \ 'orcl_em12cr3.example.com' and 'orcl_gtp' in i['PROPERTY_NAME']: print([i['PROPERTY_NAME'], i['PROPERTY_VALUE']])['orcl_gtp_os', 'Linux']['orcl_gtp_platform', 'x86_64']['orcl_gtp_target_version', '12.1.0.1.0']['orcl_gtp_location', 'COLO']['orcl_gtp_lifecycle_status', 'Development']
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgQuery Target Properties
emcli>mytargprops = list( resource='TargetProperties' ).out()['data']
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgQuery Target Properties
emcli>for i in mytargprops: if i['TARGET_TYPE'] == \ 'oracle_database' and \ i['TARGET_NAME'] == \ 'orcl_em12cr3.example.com' and \ 'orcl_gtp' in i['PROPERTY_NAME']: print([i['PROPERTY_NAME‘ ], i['PROPERTY_VALUE']])
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgQuery Target Properties
['orcl_gtp_os', 'Linux']['orcl_gtp_platform', 'x86_64']['orcl_gtp_target_version', '12.1.0.1.0']['orcl_gtp_location', 'COLO']['orcl_gtp_lifecycle_status', 'Development']
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgQuery Target Properties
emcli>mytargprops = list(resource='TargetProperties').out()['data'] emcli>for i in mytargprops: if i['TARGET_TYPE'] == 'oracle_database' and i['TARGET_NAME'] == \ 'orcl_em12cr3.example.com' and 'orcl_gtp' in i['PROPERTY_NAME']: print([i['PROPERTY_NAME'], i['PROPERTY_VALUE']])['orcl_gtp_os', 'Linux']['orcl_gtp_platform', 'x86_64']['orcl_gtp_target_version', '12.1.0.1.0']['orcl_gtp_location', 'COLO']['orcl_gtp_lifecycle_status', 'Development']
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
import emcliimport reemcli.set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')
class mySetProperties(): def __init__(self, filter='.*'): self.targs = [] self.filt(filter) def filt(self, filter): self.targs = [] __compfilt = re.compile(filter) for __inttarg in emcli.list(resource='Targets' ).out()['data']: if __compfilt.search(__inttarg['TARGET_NAME']): self.targs.append(__inttarg) def show(self): self.targprops = emcli.list( resource='TargetProperties').out()['data'] print('%-5s%-40s%s' % (' ', 'TARGET_TYPE'.ljust(40, '.'), 'TARGET_NAME')) print('%-15s%-30s%s\n%s\n' % (' ', 'PROPERTY_NAME'.ljust(30, '.'), 'PROPERTY_VALUE', '=' * 80)) for __inttarg in self.targs: print('%-5s%-40s%s' % (' ', __inttarg['TARGET_TYPE'].ljust(40, '.'), __inttarg['TARGET_NAME']))
self.__showprops(__inttarg['TARGET_GUID']) print('') def setprops(self, props): __delim = '@#&@#&&' __subseparator = 'property_records=' + __delim for __inttarg in self.targs: for __propkey, __propvalue in props.items(): __property_records = __inttarg['TARGET_NAME'] + \ __delim + __inttarg['TARGET_TYPE'] + \ __delim + __propkey + __delim + __propvalue print('Target: ' + __inttarg['TARGET_NAME'] + ' (' + __inttarg['TARGET_TYPE'] + ')\n\tProperty: ‘ +__propkey + '\n\tValue: ' + __propvalue + '\n') emcli.set_target_property_value( subseparator=__subseparator, property_records=__property_records) def __showprops(self, guid): for __inttargprops in self.targprops: __intpropname = \ __inttargprops['PROPERTY_NAME'].split('_') if (__inttargprops['TARGET_GUID']) == guid and ( __intpropname[0:2] == ['orcl', 'gtp']): print('%-15s%-30s%s' % (' ', ' '.join(__intpropname[2:]).ljust(30, '.'), __inttargprops['PROPERTY_VALUE']))
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
import emcliimport reemcli.set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')
class mySetProperties(): def __init__(self, filter='.*'): self.targs = [] self.filt(filter) def filt(self, filter): self.targs = [] __compfilt = re.compile(filter) for __inttarg in emcli.list(resource='Targets' ).out()['data']: if __compfilt.search(__inttarg['TARGET_NAME']): self.targs.append(__inttarg) def show(self): self.targprops = emcli.list( resource='TargetProperties').out()['data'] print('%-5s%-40s%s' % (' ', 'TARGET_TYPE'.ljust(40, '.'), 'TARGET_NAME')) print('%-15s%-30s%s\n%s\n' % (' ', 'PROPERTY_NAME'.ljust(30, '.'), 'PROPERTY_VALUE', '=' * 80)) for __inttarg in self.targs: print('%-5s%-40s%s' % (' ', __inttarg['TARGET_TYPE'].ljust(40, '.'), __inttarg['TARGET_NAME']))
self.__showprops(__inttarg['TARGET_GUID']) print('') def setprops(self, props): __delim = '@#&@#&&' __subseparator = 'property_records=' + __delim for __inttarg in self.targs: for __propkey, __propvalue in props.items(): __property_records = __inttarg['TARGET_NAME'] + \ __delim + __inttarg['TARGET_TYPE'] + \ __delim + __propkey + __delim + __propvalue print('Target: ' + __inttarg['TARGET_NAME'] + ' (' + __inttarg['TARGET_TYPE'] + ')\n\tProperty: ‘ +__propkey + '\n\tValue: ' + __propvalue + '\n') emcli.set_target_property_value( subseparator=__subseparator, property_records=__property_records) def __showprops(self, guid): for __inttargprops in self.targprops: __intpropname = \ __inttargprops['PROPERTY_NAME'].split('_') if (__inttargprops['TARGET_GUID']) == guid and ( __intpropname[0:2] == ['orcl', 'gtp']): print('%-15s%-30s%s' % (' ', ' '.join(__intpropname[2:]).ljust(30, '.'), __inttargprops['PROPERTY_VALUE']))
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
import emcliimport reemcli.set_client_property( 'EMCLI_OUTPUT_TYPE', 'JSON')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
class mySetProperties():
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
import emcliimport reemcli.set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')
class mySetProperties(): def __init__(self, filter='.*'): self.targs = [] self.filt(filter) def filt(self, filter): self.targs = [] __compfilt = re.compile(filter) for __inttarg in emcli.list(resource='Targets' ).out()['data']: if __compfilt.search(__inttarg['TARGET_NAME']): self.targs.append(__inttarg) def show(self): self.targprops = emcli.list( resource='TargetProperties').out()['data'] print('%-5s%-40s%s' % (' ', 'TARGET_TYPE'.ljust(40, '.'), 'TARGET_NAME')) print('%-15s%-30s%s\n%s\n' % (' ', 'PROPERTY_NAME'.ljust(30, '.'), 'PROPERTY_VALUE', '=' * 80)) for __inttarg in self.targs: print('%-5s%-40s%s' % (' ', __inttarg['TARGET_TYPE'].ljust(40, '.'), __inttarg['TARGET_NAME']))
self.__showprops(__inttarg['TARGET_GUID']) print('') def setprops(self, props): __delim = '@#&@#&&' __subseparator = 'property_records=' + __delim for __inttarg in self.targs: for __propkey, __propvalue in props.items(): __property_records = __inttarg['TARGET_NAME'] + \ __delim + __inttarg['TARGET_TYPE'] + \ __delim + __propkey + __delim + __propvalue print('Target: ' + __inttarg['TARGET_NAME'] + ' (' + __inttarg['TARGET_TYPE'] + ')\n\tProperty: ‘ +__propkey + '\n\tValue: ' + __propvalue + '\n') emcli.set_target_property_value( subseparator=__subseparator, property_records=__property_records) def __showprops(self, guid): for __inttargprops in self.targprops: __intpropname = \ __inttargprops['PROPERTY_NAME'].split('_') if (__inttargprops['TARGET_GUID']) == guid and ( __intpropname[0:2] == ['orcl', 'gtp']): print('%-15s%-30s%s' % (' ', ' '.join(__intpropname[2:]).ljust(30, '.'), __inttargprops['PROPERTY_VALUE']))
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
def __init__(self, filter='.*'):
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
self.targs = []self.filt(filter)
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
def __init__(self, filter='.*'): self.targs = [] self.filt(filter)
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
import emcliimport reemcli.set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')
class mySetProperties(): def __init__(self, filter='.*'): self.targs = [] self.filt(filter) def filt(self, filter): self.targs = [] __compfilt = re.compile(filter) for __inttarg in emcli.list(resource='Targets' ).out()['data']: if __compfilt.search(__inttarg['TARGET_NAME']): self.targs.append(__inttarg) def show(self): self.targprops = emcli.list( resource='TargetProperties').out()['data'] print('%-5s%-40s%s' % (' ', 'TARGET_TYPE'.ljust(40, '.'), 'TARGET_NAME')) print('%-15s%-30s%s\n%s\n' % (' ', 'PROPERTY_NAME'.ljust(30, '.'), 'PROPERTY_VALUE', '=' * 80)) for __inttarg in self.targs: print('%-5s%-40s%s' % (' ', __inttarg['TARGET_TYPE'].ljust(40, '.'), __inttarg['TARGET_NAME']))
self.__showprops(__inttarg['TARGET_GUID']) print('') def setprops(self, props): __delim = '@#&@#&&' __subseparator = 'property_records=' + __delim for __inttarg in self.targs: for __propkey, __propvalue in props.items(): __property_records = __inttarg['TARGET_NAME'] + \ __delim + __inttarg['TARGET_TYPE'] + \ __delim + __propkey + __delim + __propvalue print('Target: ' + __inttarg['TARGET_NAME'] + ' (' + __inttarg['TARGET_TYPE'] + ')\n\tProperty: ‘ +__propkey + '\n\tValue: ' + __propvalue + '\n') emcli.set_target_property_value( subseparator=__subseparator, property_records=__property_records) def __showprops(self, guid): for __inttargprops in self.targprops: __intpropname = \ __inttargprops['PROPERTY_NAME'].split('_') if (__inttargprops['TARGET_GUID']) == guid and ( __intpropname[0:2] == ['orcl', 'gtp']): print('%-15s%-30s%s' % (' ', ' '.join(__intpropname[2:]).ljust(30, '.'), __inttargprops['PROPERTY_VALUE']))
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
def filt(self, filter): self.targs = [] __compfilt = re.compile(filter)
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
for __inttarg in emcli.list( resource='Targets' ).out()['data']:
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
for __inttarg in emcli.list(resource='Targets').out()['data']:
if __compfilt.search( __inttarg['TARGET_NAME']): self.targs.append(__inttarg)
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
def filt(self, filter): self.targs = [] __compfilt = re.compile(filter) for __inttarg in emcli.list( resource='Targets').out()['data']: if __compfilt.search( __inttarg['TARGET_NAME']): self.targs.append(__inttarg)
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
import emcliimport reemcli.set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')
class mySetProperties(): def __init__(self, filter='.*'): self.targs = [] self.filt(filter) def filt(self, filter): self.targs = [] __compfilt = re.compile(filter) for __inttarg in emcli.list(resource='Targets' ).out()['data']: if __compfilt.search(__inttarg['TARGET_NAME']): self.targs.append(__inttarg) def show(self): self.targprops = emcli.list( resource='TargetProperties').out()['data'] print('%-5s%-40s%s' % (' ', 'TARGET_TYPE'.ljust(40, '.'), 'TARGET_NAME')) print('%-15s%-30s%s\n%s\n' % (' ', 'PROPERTY_NAME'.ljust(30, '.'), 'PROPERTY_VALUE', '=' * 80)) for __inttarg in self.targs: print('%-5s%-40s%s' % (' ', __inttarg['TARGET_TYPE'].ljust(40, '.'), __inttarg['TARGET_NAME']))
self.__showprops(__inttarg['TARGET_GUID']) print('') def setprops(self, props): __delim = '@#&@#&&' __subseparator = 'property_records=' + __delim for __inttarg in self.targs: for __propkey, __propvalue in props.items(): __property_records = __inttarg['TARGET_NAME'] + \ __delim + __inttarg['TARGET_TYPE'] + \ __delim + __propkey + __delim + __propvalue print('Target: ' + __inttarg['TARGET_NAME'] + ' (' + __inttarg['TARGET_TYPE'] + ')\n\tProperty: ‘ +__propkey + '\n\tValue: ' + __propvalue + '\n') emcli.set_target_property_value( subseparator=__subseparator, property_records=__property_records) def __showprops(self, guid): for __inttargprops in self.targprops: __intpropname = \ __inttargprops['PROPERTY_NAME'].split('_') if (__inttargprops['TARGET_GUID']) == guid and ( __intpropname[0:2] == ['orcl', 'gtp']): print('%-15s%-30s%s' % (' ', ' '.join(__intpropname[2:]).ljust(30, '.'), __inttargprops['PROPERTY_VALUE']))
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
def show(self): self.targprops = emcli.list( resource='TargetProperties' ).out()['data']
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
print('%-5s%-40s%s' % (' ', 'TARGET_TYPE'.ljust(40, '.'), 'TARGET_NAME'))print('%-15s%-30s%s\n%s\n' % (' ', 'PROPERTY_NAME'.ljust(30, '.'), 'PROPERTY_VALUE', '=' * 80))
TARGET_TYPE.....................TARGET_NAME PROPERTY_NAME.........PROPERTY_VALUE=========================================================================
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
for __inttarg in self.targs: print('%-5s%-40s%s' % (' ', __inttarg['TARGET_TYPE'].ljust(40, '.'), __inttarg['TARGET_NAME'])) self.__showprops(__inttarg['TARGET_GUID']) print('')
oracle_dbsys....................orcl_em12cr3.example.com_sys
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
def show(self): self.targprops = emcli.list( resource='TargetProperties').out()['data'] print('%-5s%-40s%s' % (' ', 'TARGET_TYPE'.ljust(40, '.'), 'TARGET_NAME')) print('%-15s%-30s%s\n%s\n' % (' ', 'PROPERTY_NAME'.ljust(30, '.'), 'PROPERTY_VALUE', '=' * 80)) for __inttarg in self.targs: print('%-5s%-40s%s' % (' ', __inttarg['TARGET_TYPE'].ljust(40, '.'), __inttarg['TARGET_NAME'])) self.__showprops(__inttarg['TARGET_GUID']) print('')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
import emcliimport reemcli.set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')
class mySetProperties(): def __init__(self, filter='.*'): self.targs = [] self.filt(filter) def filt(self, filter): self.targs = [] __compfilt = re.compile(filter) for __inttarg in emcli.list(resource='Targets' ).out()['data']: if __compfilt.search(__inttarg['TARGET_NAME']): self.targs.append(__inttarg) def show(self): self.targprops = emcli.list( resource='TargetProperties').out()['data'] print('%-5s%-40s%s' % (' ', 'TARGET_TYPE'.ljust(40, '.'), 'TARGET_NAME')) print('%-15s%-30s%s\n%s\n' % (' ', 'PROPERTY_NAME'.ljust(30, '.'), 'PROPERTY_VALUE', '=' * 80)) for __inttarg in self.targs: print('%-5s%-40s%s' % (' ', __inttarg['TARGET_TYPE'].ljust(40, '.'), __inttarg['TARGET_NAME']))
self.__showprops(__inttarg['TARGET_GUID']) print('') def setprops(self, props): __delim = '@#&@#&&' __subseparator = 'property_records=' + __delim for __inttarg in self.targs: for __propkey, __propvalue in props.items(): __property_records = __inttarg['TARGET_NAME'] + \ __delim + __inttarg['TARGET_TYPE'] + \ __delim + __propkey + __delim + __propvalue print('Target: ' + __inttarg['TARGET_NAME'] + ' (' + __inttarg['TARGET_TYPE'] + ')\n\tProperty: ‘ +__propkey + '\n\tValue: ' + __propvalue + '\n') emcli.set_target_property_value( subseparator=__subseparator, property_records=__property_records) def __showprops(self, guid): for __inttargprops in self.targprops: __intpropname = \ __inttargprops['PROPERTY_NAME'].split('_') if (__inttargprops['TARGET_GUID']) == guid and ( __intpropname[0:2] == ['orcl', 'gtp']): print('%-15s%-30s%s' % (' ', ' '.join(__intpropname[2:]).ljust(30, '.'), __inttargprops['PROPERTY_VALUE']))
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
def setprops(self, props): __delim = '@#&@#&&' __subseparator = 'property_records=' + \ __delim
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
for __inttarg in self.targs: for __propkey, __propvalue in props.items():
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
for __inttarg in self.targs: for __propkey, __propvalue in props.items():
__property_records = \ __inttarg['TARGET_NAME'] + \ __delim + __inttarg['TARGET_TYPE'] + \ __delim + __propkey + __delim + \ __propvalue
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
for __inttarg in self.targs: for __propkey, __propvalue in props.items():
print('Target: ' + \ __inttarg['TARGET_NAME'] + \ ' (' + __inttarg['TARGET_TYPE'] + \ ')\n\tProperty: ' +__propkey + \ '\n\tValue: ' + __propvalue + '\n')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
for __inttarg in self.targs: for __propkey, __propvalue in props.items():
emcli.set_target_property_value( subseparator=__subseparator, property_records=__property_records)
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
def setprops(self, props): __delim = '@#&@#&&' __subseparator = 'property_records=' + __delim for __inttarg in self.targs: for __propkey, __propvalue in props.items(): __property_records = __inttarg['TARGET_NAME'] + \ __delim + __inttarg['TARGET_TYPE'] + \ __delim + __propkey + __delim + __propvalue print('Target: ' + __inttarg['TARGET_NAME'] + ' (' + __inttarg['TARGET_TYPE'] + ')\n\tProperty: ‘ +__propkey + '\n\tValue: ' + __propvalue + '\n') emcli.set_target_property_value( subseparator=__subseparator, property_records=__property_records)
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
import emcliimport reemcli.set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')
class mySetProperties(): def __init__(self, filter='.*'): self.targs = [] self.filt(filter) def filt(self, filter): self.targs = [] __compfilt = re.compile(filter) for __inttarg in emcli.list(resource='Targets' ).out()['data']: if __compfilt.search(__inttarg['TARGET_NAME']): self.targs.append(__inttarg) def show(self): self.targprops = emcli.list( resource='TargetProperties').out()['data'] print('%-5s%-40s%s' % (' ', 'TARGET_TYPE'.ljust(40, '.'), 'TARGET_NAME')) print('%-15s%-30s%s\n%s\n' % (' ', 'PROPERTY_NAME'.ljust(30, '.'), 'PROPERTY_VALUE', '=' * 80)) for __inttarg in self.targs: print('%-5s%-40s%s' % (' ', __inttarg['TARGET_TYPE'].ljust(40, '.'), __inttarg['TARGET_NAME']))
self.__showprops(__inttarg['TARGET_GUID']) print('') def setprops(self, props): __delim = '@#&@#&&' __subseparator = 'property_records=' + __delim for __inttarg in self.targs: for __propkey, __propvalue in props.items(): __property_records = __inttarg['TARGET_NAME'] + \ __delim + __inttarg['TARGET_TYPE'] + \ __delim + __propkey + __delim + __propvalue print('Target: ' + __inttarg['TARGET_NAME'] + ' (' + __inttarg['TARGET_TYPE'] + ')\n\tProperty: ‘ +__propkey + '\n\tValue: ' + __propvalue + '\n') emcli.set_target_property_value( subseparator=__subseparator, property_records=__property_records) def __showprops(self, guid): for __inttargprops in self.targprops: __intpropname = \ __inttargprops['PROPERTY_NAME'].split('_') if (__inttargprops['TARGET_GUID']) == guid and ( __intpropname[0:2] == ['orcl', 'gtp']): print('%-15s%-30s%s' % (' ', ' '.join(__intpropname[2:]).ljust(30, '.'), __inttargprops['PROPERTY_VALUE']))
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
def __showprops(self, guid): for __inttargprops in self.targprops: __intpropname = \ __inttargprops[ 'PROPERTY_NAME'].split('_')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
for __inttargprops in self.targprops:
if (__inttargprops['TARGET_GUID'] ) == guid and ( __intpropname[0:2] == [ 'orcl', 'gtp']):
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
for __inttargprops in self.targprops: if (__inttargprops['TARGET_GUID‘]) == guid and (__intpropname[0:2] == ['orcl', 'gtp']):
print('%-15s%-30s%s' % (' ', ' '.join(__intpropname[2:] ).ljust(30, '.'), __inttargprops[ 'PROPERTY_VALUE']))
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
def __showprops(self, guid): for __inttargprops in self.targprops: __intpropname = __inttargprops[ 'PROPERTY_NAME'].split('_') if (__inttargprops['TARGET_GUID'] ) == guid and ( __intpropname[0:2] == [ 'orcl', 'gtp']): print('%-15s%-30s%s' % (' ', ' '.join(__intpropname[2:] ).ljust(30, '.'), __inttargprops[ 'PROPERTY_VALUE']))
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
import emcliimport reemcli.set_client_property('EMCLI_OUTPUT_TYPE', 'JSON')
class mySetProperties(): def __init__(self, filter='.*'): self.targs = [] self.filt(filter) def filt(self, filter): self.targs = [] __compfilt = re.compile(filter) for __inttarg in emcli.list(resource='Targets' ).out()['data']: if __compfilt.search(__inttarg['TARGET_NAME']): self.targs.append(__inttarg) def show(self): self.targprops = emcli.list( resource='TargetProperties').out()['data'] print('%-5s%-40s%s' % (' ', 'TARGET_TYPE'.ljust(40, '.'), 'TARGET_NAME')) print('%-15s%-30s%s\n%s\n' % (' ', 'PROPERTY_NAME'.ljust(30, '.'), 'PROPERTY_VALUE', '=' * 80)) for __inttarg in self.targs: print('%-5s%-40s%s' % (' ', __inttarg['TARGET_TYPE'].ljust(40, '.'), __inttarg['TARGET_NAME']))
self.__showprops(__inttarg['TARGET_GUID']) print('') def setprops(self, props): __delim = '@#&@#&&' __subseparator = 'property_records=' + __delim for __inttarg in self.targs: for __propkey, __propvalue in props.items(): __property_records = __inttarg['TARGET_NAME'] + \ __delim + __inttarg['TARGET_TYPE'] + \ __delim + __propkey + __delim + __propvalue print('Target: ' + __inttarg['TARGET_NAME'] + ' (' + __inttarg['TARGET_TYPE'] + ')\n\tProperty: ‘ +__propkey + '\n\tValue: ' + __propvalue + '\n') emcli.set_target_property_value( subseparator=__subseparator, property_records=__property_records) def __showprops(self, guid): for __inttargprops in self.targprops: __intpropname = \ __inttargprops['PROPERTY_NAME'].split('_') if (__inttargprops['TARGET_GUID']) == guid and ( __intpropname[0:2] == ['orcl', 'gtp']): print('%-15s%-30s%s' % (' ', ' '.join(__intpropname[2:]).ljust(30, '.'), __inttargprops['PROPERTY_VALUE']))
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
emcli>myprops = {'LifeCycle Status':'Development', 'Location':'COLO'}emcli>from mySetProperties import mySetProperties
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
emcli>mySetProperties(filter= '^orcl_em12cr3' ).show() TARGET_TYPE.....................TARGET_NAME PROPERTY_NAME.........PROPERTY_VALUE=========================================================================
oracle_dbsys....................orcl_em12cr3.example.com_sys
oracle_database.................orcl_em12cr3.example.com os....................Linux platform..............x86_64 target version........12.1.0.1.0
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
emcli>mySetProperties(filter= '^orcl_em12cr3.*[^(_sys)]$' ).show() TARGET_TYPE.....................TARGET_NAME PROPERTY_NAME.........PROPERTY_VALUE=========================================================================
oracle_database.................orcl_em12cr3.example.com os....................Linux platform..............x86_64 target version........12.1.0.1.0
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
emcli>mysetp = mySetProperties( '^orcl_em12cr3.*[^(_sys)]$')
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
emcli>mysetp.setprops(myprops)Target: orcl_em12cr3.example.com (oracle_database) Property: Location Value: COLO
Target: orcl_em12cr3.example.com (oracle_database) Property: LifeCycle Status Value: Development
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.orgClasses
emcli>mysetp.show() TARGET_TYPE.......................TARGET_NAME PROPERTY_NAME...........PROPERTY_VALUE================================================================= oracle_database...................orcl_em12cr3.example.com os......................Linux platform................x86_64 target version..........12.1.0.1.0 location................COLO lifecycle status........Development
#C14LV #EM12c #EMCLI #Python@Seth_M_Miller
[email protected]://sethmiller.org