def configure_lan_connectivity(ucs, module, dn): from ucsmsdk.mometa.vnic.VnicLanConnPolicy import VnicLanConnPolicy from ucsmsdk.mometa.vnic.VnicEther import VnicEther from ucsmsdk.mometa.vnic.VnicIScsiLCP import VnicIScsiLCP from ucsmsdk.mometa.vnic.VnicVlan import VnicVlan if not module.check_mode: try: # create if mo does not already exist mo = VnicLanConnPolicy( parent_mo_or_dn=module.params['org_dn'], name=module.params['name'], descr=module.params['description'], ) if module.params.get('vnic_list'): for vnic in module.params['vnic_list']: if vnic['state'] == 'absent': child_dn = dn + '/ether-' + vnic['name'] mo_1 = ucs.login_handle.query_dn(child_dn) if mo_1: ucs.login_handle.remove_mo(mo_1) else: # state == 'present' mo_1 = VnicEther( addr='derived', parent_mo_or_dn=mo, name=vnic['name'], adaptor_profile_name=vnic['adapter_policy'], nw_templ_name=vnic['vnic_template'], order=vnic['order'], ) if module.params.get('iscsi_vnic_list'): for iscsi_vnic in module.params['iscsi_vnic_list']: if iscsi_vnic['state'] == 'absent': child_dn = dn + '/iscsi-' + iscsi_vnic['name'] mo_1 = ucs.login_handle.query_dn(child_dn) if mo_1: ucs.login_handle.remove_mo(mo_1) else: # state == 'present' mo_1 = VnicIScsiLCP( parent_mo_or_dn=mo, name=iscsi_vnic['name'], adaptor_profile_name=iscsi_vnic[ 'iscsi_adapter_policy'], vnic_name=iscsi_vnic['overlay_vnic'], addr=iscsi_vnic['mac_address'], ) VnicVlan( parent_mo_or_dn=mo_1, vlan_name=iscsi_vnic['vlan_name'], ) ucs.login_handle.add_mo(mo, True) ucs.login_handle.commit() except Exception as e: # generic Exception handling because SDK can throw a variety of exceptions ucs.result['msg'] = "setup error: %s " % str(e) module.fail_json(**ucs.result) ucs.result['changed'] = True
def add_vnic_iscsi(handle, parent_dn, name, addr="derived", admin_host_port="ANY", admin_vcon="any", stats_policy_name="default", admin_cdn_name="", switch_id="A", pin_to_group_name="", vnic_name="", qos_policy_name="", adaptor_profile_name="", ident_pool_name="", order="unspecified", nw_templ_name="", vlan_name="default"): """ Adds iSCSI vNIC to LAN Connectivity Policy Args: handle (UcsHandle) parent_dn (string): dn of VnicLanConnPolicy name (string): iSCSI name addr (string): address admin_host_port (number): admin host port admin_vcon (string): ["1", "2", "3", "4", "any"] stats_policy_name (string): stats policy name admin_cdn_name (string): admin cdn name switch_id (string): ["A", "A-B", "B", "B-A", "NONE"] pin_to_group_name (string): pin to group name vnic_name (string): vnic name qos_policy_name (string): qos policy name adaptor_profile_name (string): adaptor profile name ident_pool_name (string): ident pool name order (string):["unspecified"], ["0-256"] nw_templ_name (string): network template name vlan_name (string): vlan name Returns: VnicIScsiLCP: Managed Object Raises: ValueError: If VnicLanConnPolicy object is not present Example: add_vnic_iscsi(handle, name="sample-vnic-iscsi", parent_dn="org-root/lan-conn-pol-samp_conn_pol") """ from ucsmsdk.mometa.vnic.VnicIScsiLCP import VnicIScsiLCP from ucsmsdk.mometa.vnic.VnicVlan import VnicVlan obj = handle.query_dn(parent_dn) if obj: mo = VnicIScsiLCP(parent_mo_or_dn=obj, addr=addr, admin_host_port=admin_host_port, admin_vcon=admin_vcon, stats_policy_name=stats_policy_name, admin_cdn_name=admin_cdn_name, switch_id=switch_id, pin_to_group_name=pin_to_group_name, vnic_name=vnic_name, qos_policy_name=qos_policy_name, adaptor_profile_name=adaptor_profile_name, ident_pool_name=ident_pool_name, order=order, nw_templ_name=nw_templ_name, name=name) VnicVlan(parent_mo_or_dn=mo, name="", vlan_name=vlan_name) handle.add_mo(mo) handle.commit() return mo else: raise ValueError(parent_dn + " MO is not available")
def add_vnic_iscsi(handle, parent_dn, name, addr="derived", admin_host_port="ANY", admin_vcon="any", stats_policy_name="default", admin_cdn_name="", switch_id="A", pin_to_group_name="", vnic_name="", qos_policy_name="", adaptor_profile_name="", ident_pool_name="", order="unspecified", nw_templ_name="", vlan_name="default"): """ Adds iSCSI vNIC to LAN Connectivity Policy Args: handle parent_dn name addr admin_host_port admin_vcon stats_policy_name admin_cdn_name switch_id pin_to_group_name vnic_name qos_policy_name adaptor_profile_name ident_pool_name order nw_templ_name vlan_name Returns: None Example: """ from ucsmsdk.mometa.vnic.VnicIScsiLCP import VnicIScsiLCP from ucsmsdk.mometa.vnic.VnicVlan import VnicVlan obj = handle.query_dn(parent_dn) if obj: mo_1 = VnicIScsiLCP(parent_mo_or_dn=obj, addr=addr, admin_host_port=admin_host_port, admin_vcon=admin_vcon, stats_policy_name=stats_policy_name, admin_cdn_name=admin_cdn_name, switch_id=switch_id, pin_to_group_name=pin_to_group_name, vnic_name=vnic_name, qos_policy_name=qos_policy_name, adaptor_profile_name=adaptor_profile_name, ident_pool_name=ident_pool_name, order=order, nw_templ_name=nw_templ_name, name=name) mo_1_1 = VnicVlan(parent_mo_or_dn=mo_1, name="", vlan_name=vlan_name) handle.add_mo(mo_1) handle.commit() else: log.info(parent_dn + " MO is not available")