def hlpr_os_comp_setup_cmd()

in src/helperscripts/neuronsetuphelper.py [0:0]


def hlpr_os_comp_setup_cmd(nr_setup, neuron_version, comp,optional,pkg):

    os_cmd = ''

    if pkg==None:
        key=comp
        pkg_dict= nr_setup.releases_info[neuron_version].release_package_main
    else:
        key=pkg
        pkg_dict= nr_setup.releases_info[neuron_version].release_packages_all




    if (comp=='driver'):    
        os_cmd += '\n'
        os_cmd += '###############################################################################################################\n'
        os_cmd += '# Before installing or updating aws-neuron-dkms:'+ '\n'
        os_cmd += '# - Stop any existing Neuron runtime 1.0 daemon (neuron-rtd) by calling: \'sudo systemctl stop neuron-rtd\'' + '\n'
        os_cmd += '###############################################################################################################\n'
        # WARNING: Exception
        # Starting Neuron 1.16.0 , new kernel is needed to work with Runtime 2.x (library mode)
        if (parse(neuron_version)>=parse('1.16.0')):
            os_cmd += '\n'
            os_cmd += '################################################################################################################\n'
            os_cmd += '# To install or update to Neuron versions 1.16.0 and newer from previous releases:'+ '\n'
            os_cmd += '# - DO NOT skip \'aws-neuron-dkms\' install or upgrade step, you MUST install or upgrade to latest Neuron driver'+ '\n'
            os_cmd += '################################################################################################################\n'


    # Update header files if driver should be installed or updated
    if (comp=='driver'):
        os_cmd += hlpr_os_headers_update(nr_setup)




    if nr_setup.os=='ubuntu':
        os_cmd_prefix = 'sudo apt-get install '
    elif (nr_setup.action=='Install')&(nr_setup.os=='amazonlinux'):
        os_cmd_prefix = 'sudo yum install '
    elif (nr_setup.action=='Update')&(nr_setup.os=='amazonlinux'):
        os_cmd_prefix = 'sudo yum update '

    if comp in nr_setup.releases_info[neuron_version].release_os_install_list:
        # install only if there is a package associated with the component
        if (len(pkg_dict[key]['package_type']) != 0):
            #os_cmd = build_os_command(cmd=os_cmd_prefix,component=comp,is_latest_release=is_latest_neuron)
            os_cmd += '\n' 
            if (optional==False):
                os_cmd += '# ' + nr_setup.action + ' ' + package_formal_name[comp]
            else:
                os_cmd += '# Optional: ' + nr_setup.action + ' ' + package_formal_name[comp]

            if (nr_setup.is_latest_neuron==False)&(nr_setup.os=='ubuntu'):
                os_cmd += '\n'
                os_cmd += '# If you are downgrading from newer version, please add \'--allow-downgrades\' option to \'sudo apt-get install\' '
            if (nr_setup.is_latest_neuron==False)&(nr_setup.os=='amazonlinux'):
                os_cmd += '\n'
                os_cmd += '# If you are downgrading from newer version , please remove existing package using \'sudo yum remove\' before installing the older package'


            os_cmd += '\n' 
            os_cmd += os_cmd_prefix + pkg_dict[key]['package']
            if (nr_setup.is_latest_neuron==False) | (nr_setup.force_versions):
                os_cmd += '=' + pkg_dict[key]['version']
            elif (pkg!=None):
                if ( nr_setup.releases_info[neuron_version].release_package_main[comp]['version']!= nr_setup.releases_info[neuron_version].release_packages_all[pkg]['version']):
                    os_cmd += '=' + pkg_dict[key]['version']

            # Ubuntu DLAMI will not allow updating tensorflow-model-server without adding --allow-change-held-packages
            if (comp=='tensorflow-model-server') & (nr_setup.ami == 'dlami') & (nr_setup.os == 'ubuntu'):
                os_cmd += ' --allow-change-held-packages'

            os_cmd += ' -y'
            os_cmd += '\n'

    # Update header files if driver should be installed or updated
    if (comp=='driver'):
        os_cmd += '\n'
        os_cmd += '####################################################################################\n'
        os_cmd += '# Warning: If Linux kernel is updated as a result of OS package update'+ '\n'
        os_cmd += '#          Neuron driver (aws-neuron-dkms) should be re-installed after reboot'+ '\n'
        os_cmd += '####################################################################################\n'            
    
    return os_cmd