def _create_or_update_partition(self, org_name, part_name, desc,<EOL>dci_id=UNKNOWN_DCI_ID, vrf_prof=None,<EOL>service_node_ip=UNKNOWN_SRVN_NODE_IP,<EOL>operation='<STR_LIT:POST>'):
if part_name is None:<EOL><INDENT>part_name = self._part_name<EOL><DEDENT>if vrf_prof is None or dci_id == UNKNOWN_DCI_ID or (<EOL>service_node_ip == UNKNOWN_SRVN_NODE_IP):<EOL><INDENT>part_info = self._get_partition(org_name, part_name)<EOL><DEDENT>if vrf_prof is None:<EOL><INDENT>vrf_prof = self.get_partition_vrfProf(org_name, part_name,<EOL>part_info=part_info)<EOL><DEDENT>if dci_id == UNKNOWN_DCI_ID:<EOL><INDENT>dci_id = self.get_partition_dciId(org_name, part_name,<EOL>part_info=part_info)<EOL><DEDENT>if service_node_ip == UNKNOWN_SRVN_NODE_IP:<EOL><INDENT>service_node_ip = self.get_partition_serviceNodeIp(<EOL>org_name, part_name, part_info=part_info)<EOL><DEDENT>url = ((self._create_part_url % (org_name)) if operation == '<STR_LIT:POST>' else<EOL>self._update_part_url % (org_name, part_name))<EOL>payload = {<EOL>"<STR_LIT>": part_name,<EOL>"<STR_LIT:description>": part_name if len(desc) == <NUM_LIT:0> else desc,<EOL>"<STR_LIT>": service_node_ip,<EOL>"<STR_LIT>": org_name}<EOL>if self._is_iplus:<EOL><INDENT>enable_dci = "<STR_LIT:true>" if dci_id and int(dci_id) != <NUM_LIT:0> else "<STR_LIT:false>"<EOL>extra_payload = {<EOL>"<STR_LIT>": vrf_prof,<EOL>"<STR_LIT>": '<STR_LIT::>'.join((org_name, part_name)),<EOL>"<STR_LIT>": dci_id,<EOL>"<STR_LIT>": enable_dci}<EOL>payload.update(extra_payload)<EOL><DEDENT>return self._send_request(operation, url, payload, '<STR_LIT>')<EOL>
Send create or update partition request to the DCNM.

        :param org_name: name of organization
        :param part_name: name of partition
        :param desc: description of partition
        :dci_id: DCI ID for inter-DC
        :vrf_prof: VRF Profile Name
        :service_node_ip: Service Node's Address