def run_module(): argument_spec = ucs_argument_spec argument_spec.update( ntp_server=dict(type='str', aliases=['name']), description=dict(type='str', aliases=['descr'], default=''), state=dict(type='str', default='present', choices=['present', 'absent']), ) module = AnsibleModule( argument_spec, supports_check_mode=True, required_if=[ ['state', 'present', ['ntp_server']], ], ) # UCSModule verifies ucsmsdk is present and exits on failure. Imports are below ucs object creation. ucs = UCSModule(module) err = False from ucsmsdk.mometa.comm.CommNtpProvider import CommNtpProvider changed = False try: mo_exists = False props_match = False dn = 'sys/svc-ext/datetime-svc/ntp-' + module.params['ntp_server'] mo = ucs.login_handle.query_dn(dn) if mo: mo_exists = True if module.params['state'] == 'absent': if mo_exists: if not module.check_mode: ucs.login_handle.remove_mo(mo) ucs.login_handle.commit() changed = True else: if mo_exists: # check top-level mo props kwargs = dict(descr=module.params['description']) if mo.check_prop_match(**kwargs): props_match = True if not props_match: if not module.check_mode: # update/add mo mo = CommNtpProvider( parent_mo_or_dn='sys/svc-ext/datetime-svc', name=module.params['ntp_server'], descr=module.params['description']) ucs.login_handle.add_mo(mo, modify_present=True) ucs.login_handle.commit() changed = True except Exception as e: err = True ucs.result['msg'] = "setup error: %s " % str(e) ucs.result['changed'] = changed if err: module.fail_json(**ucs.result) module.exit_json(**ucs.result)
def create_policies(self,s_policies): """Policies""" policies = {} """ NTP """ ntp_servers = {} for key in s_policies['ntp']: n_dn = str(s_policies['ntp'][key]['dn']) n_name = str(s_policies['ntp'][key]['name']) n_descr = str(s_policies['ntp'][key]['descr']) mo = CommNtpProvider(parent_mo_or_dn=n_dn, name=n_name, descr=n_descr) ntp_servers.update({key: {'mo':mo}}) policies.update({'ntp': ntp_servers}) print "> NTP.............................................[OK]" """ DNS """ dns_servers = {} for key in s_policies['dns']: d_dn = str(s_policies['dns'][key]['dn']) d_name = str(s_policies['dns'][key]['name']) d_descr = str(s_policies['dns'][key]['descr']) mo = CommDnsProvider(parent_mo_or_dn=d_dn, name=d_name, descr=d_descr) dns_servers.update({key: {'mo':mo}}) policies.update({'dns': dns_servers}) print "> DNS.............................................[OK]" """ General """ general = {} g_dn = str(s_policies['general']['global']['dn']) g_backplane = str(s_policies['general']['global']['backplane']) g_discovery = str(s_policies['general']['global']['discovery']) mo = ComputeChassisDiscPolicy(parent_mo_or_dn=g_dn, name="", descr="", multicast_hw_hash="disabled", backplane_speed_pref=g_backplane, action=g_discovery, rebalance="user-acknowledged", link_aggregation_pref="none") general.update({'global': {'mo':mo}}) print "> Global Policies.................................[OK]" policies.update({'general': general}) return policies
handle.set_mo(timezone_mo) handle.commit() handle.logout() # Add NTP Server from ucsmsdk.ucshandle import UcsHandle from ucsmsdk.mometa.comm.CommNtpProvider import CommNtpProvider handle = UcsHandle("198.18.133.91", "admin", "C1sco12345") handle.login() timezone_mo = handle.query_dn("sys/svc-ext/datetime-svc") ntp_provider_mo = CommNtpProvider(parent_mo_or_dn=timezone_mo, name="198.18.128.3") handle.add_mo(ntp_provider_mo) handle.commit() handle.logout() input("NTP Server Added - Press Enter to Continue to Remove NTP Server...") # Delete NTP Server from ucsmsdk.ucshandle import UcsHandle handle = UcsHandle("198.18.133.91", "admin", "C1sco12345") handle.login() ntp_provider_mo = handle.query_dn("sys/svc-ext/datetime-svc/ntp-198.18.128.3")