docs: def _update_raid_input_data(target_raid_config, raid_input):
      """Process raid input data.
  
      :param target_raid_config: node raid info
      :param raid_input: raid information for creating via eLCM
      :raises ELCMValueError: raise msg if wrong input
      :return: raid_input: raid input data which create raid configuration
          {
            "Server":{
              "HWConfigurationIrmc":{
                "@Processing":"execute",
                "Adapters":{
                  "RAIDAdapter":[
                    {
                      "@AdapterId":"RAIDAdapter0",
                      "@ConfigurationType":"Addressing",
                      "LogicalDrives":{
                      "LogicalDrive":[
                          {
                            "@Number":0,
                            "@Action":"Create",
                            "RaidLevel":"1"
                          }
                        ]
                      }
                    }
                  ]
                 },
                 "@Version":"1.00"
               },
               "@Version":"1.01"
             }
          }
      """
  
      logical_disk_list = target_raid_config['logical_disks']
  
      raid_input['Server']['HWConfigurationIrmc'].update({'@Processing':
                                                          'execute'})
      array_info = raid_input['Server']['HWConfigurationIrmc']['Adapters'][
          'RAIDAdapter'][0]
      array_info['LogicalDrives'] = {'LogicalDrive': []}
      array_info['Arrays'] = {'Array': []}
  
      for i, logical_disk in enumerate(logical_disk_list):
          physical_disks = logical_disk.get('physical_disks')
  
          # Auto create logical drive along with random physical disks.
          # Allow auto create along with raid 10 and raid 50
          # with specific physical drive.
          if not physical_disks or logical_disk['raid_level'] \
                  in ('10', '50'):
              array_info['LogicalDrives']['LogicalDrive'].append(
                  {'@Action': 'Create',
                   'RaidLevel': logical_disk['raid_level'],
                   'InitMode': 'slow'})
              array_info['LogicalDrives']['LogicalDrive'][i].update({
                  "@Number": i})
  
          else:
              # Create array disks with specific physical servers
              arrays = {
                  "@Number": i,
                  "@ConfigurationType": "Setting",
                  "PhysicalDiskRefs": {
                      "PhysicalDiskRef": []
                  }
              }
  
              lo_drive = {
                  "@Number": i,
                  "@Action": "Create",
                  "RaidLevel": "",
                  "ArrayRefs": {
                      "ArrayRef": [
                      ]
                  },
                  "InitMode": "slow"
              }
  
              array_info['Arrays']['Array'].append(arrays)
              array_info['LogicalDrives']['LogicalDrive'].append(lo_drive)
  
              lo_drive.update({'RaidLevel': logical_disk['raid_level']})
              lo_drive['ArrayRefs']['ArrayRef'].append({"@Number": i})
  
              for element in logical_disk['physical_disks']:
                  arrays['PhysicalDiskRefs']['PhysicalDiskRef'].append({
                      '@Number': element})
          if logical_disk['size_gb'] != "MAX":
              # Ensure correctly order these items in dict
              size = collections.OrderedDict()
              size['@Unit'] = 'GB'
              size['#text'] = logical_disk['size_gb']
              array_info['LogicalDrives']['LogicalDrive'][i]['Size'] = size
  
      return raid_input