PROCEDURE rap$create_dmroot_user_name, credun (
  password, pw: (secure) name = $required
  family, f: name = NVE
  account_name, an: name = NONE
  project_name, pn: name = NONE
  scheduling_class, sc: name = DM_KERNEL
  status)

  "$FORMAT=OFF"
  VAR
    local_status       : status
    ignore_status      : status
    job_complete       : boolean
    command_file       : file = $fname($unique)
    scratch_file       : file = $fname($unique)
    dmroot_catalog     : file
  VAREND
  "$FORMAT=ON"

create_block: BLOCK

COLLECT_TEXT o=command_file sm='?'

  ADMINISTER_VALIDATIONS
    use_validation_file vf=:?family?.$system.$validations
    CREATE_USER u=dmroot
      change_login_password npw=password
      change_ring_privilege minr=4
      change_job_class add=scheduling_class
      change_default_account_project account=account_name project=project_name
    QUIT
  QUIT
**

include_file f=command_file status=local_status
delete_file f=command_file status=ignore_status

EXIT create_block WHEN NOT local_status.normal

COLLECT_TEXT o=scratch_file sm='?'
      login u=dmroot pw=?password? lf=?family?
      logout
**
  submit_job f=scratch_file ujn=dmroot_job_name
  delete_file f=scratch_file

REPEAT
  wait 5000
UNTIL $job_status(dmroot_job_name, job_state) <> INITIATED

dmroot_catalog=$fname(':'//family//'.dmroot')
display_catalog c=dmroot_catalog status=local_status o=$null

BLOCKEND   create_block

EXIT procedure WITH local_status WHEN NOT local_status.normal

PROCEND rap$create_dmroot_user_name

