def create_windows_env(dlpx_obj, env_name, host_user, ip_addr,
                     pw=None, connector_name=None):

    """
    Create a Windows environment.

    env_name: The name of the environment
    host_user: The server account used to authenticate 
    ip_addr: DNS name or IP address of the environment
    toolkit_path: Path to the toolkit. Note: This directory must be 
                  writable by the host_user
    pw: Password of the user. Default: None (use SSH keys instead)
    """
    engine_name = dlpx_obj.dlpx_engines.keys()[0]

    env_params_obj = HostEnvironmentCreateParameters()

    print_debug('Creating the environment with a password')

    env_params_obj.primary_user = {'type': 'EnvironmentUser',
                                      'name': host_user,
                                      'credential': {
                                      'type': 'PasswordCredential',
                                      'password': pw }}

    env_params_obj.host_parameters = {'type': 'WindowsHostCreateParameters',
                                     'host': { 'address': ip_addr,
                                     'type': 'WindowsHost',
                                     'name': env_name,
                                     'connectorPort': 9100}}

    env_params_obj.host_environment = WindowsHostEnvironment()
    env_params_obj.host_environment.name = env_name

    if connector_name:
      env_obj = find_obj_by_name(dlpx_obj.server_session, environment,
                                   connector_name)

      if env_obj:
        env_params_obj.host_environment.proxy = env_obj.host
      elif env_obj is None:
        print('Host was not found in the Engine: {}'.format(arguments[--connector_name]))
        sys.exit(1)

    try:
        environment.create(dlpx_obj.server_session,
                           env_params_obj)
        dlpx_obj.jobs[engine_name] = \
                                   dlpx_obj.server_session.last_job

    except (DlpxException, RequestError, HttpError) as e:
        print('\nERROR: Encountered an exception while creating the '
              'environment:\n{}'.format(e))
def create_windows_env(dlpx_obj,
                       env_name,
                       host_user,
                       ip_addr,
                       pw=None,
                       connector_name=None):
    """
    Create a Windows environment.

    env_name: The name of the environment
    host_user: The server account used to authenticate
    ip_addr: DNS name or IP address of the environment
    toolkit_path: Path to the toolkit. Note: This directory must be
                  writable by the host_user
    pw: Password of the user. Default: None (use SSH keys instead)
    """
    engine_name = dlpx_obj.dlpx_engines.keys()[0]

    env_params_obj = HostEnvironmentCreateParameters()

    print_debug("Creating the environment with a password")

    env_params_obj.primary_user = {
        "type": "EnvironmentUser",
        "name": host_user,
        "credential": {
            "type": "PasswordCredential",
            "password": pw
        },
    }

    env_params_obj.host_parameters = {
        "type": "WindowsHostCreateParameters",
        "host": {
            "address": ip_addr,
            "type": "WindowsHost",
            "name": env_name,
            "connectorPort": 9100,
        },
    }

    env_params_obj.host_environment = WindowsHostEnvironment()
    env_params_obj.host_environment.name = env_name

    if connector_name:
        env_obj = find_obj_by_name(dlpx_obj.server_session, environment,
                                   connector_name)

        if env_obj:
            env_params_obj.host_environment.proxy = env_obj.host
        elif env_obj is None:
            print("Host was not found in the Engine: {}".format(
                arguments[--connector_name]))
            sys.exit(1)

    try:
        environment.create(dlpx_obj.server_session, env_params_obj)
        dlpx_obj.jobs[engine_name] = dlpx_obj.server_session.last_job

    except (DlpxException, RequestError, HttpError) as e:
        print("\nERROR: Encountered an exception while creating the "
              "environment:\n{}".format(e))
def create_linux_env(dlpx_obj,
                     env_name,
                     host_user,
                     ip_addr,
                     toolkit_path,
                     pw=None):
    """
    Create a Linux environment.

    env_name: The name of the environment
    host_user: The server account used to authenticate
    ip_addr: DNS name or IP address of the environment
    toolkit_path: Path to the toolkit. Note: This directory must be
                  writable by the host_user
    pw: Password of the user. Default: None (use SSH keys instead)
    """
    engine_name = dlpx_obj.dlpx_engines.keys()[0]
    env_params_obj = HostEnvironmentCreateParameters()

    if pw is None:
        print_debug("Creating the environment with SSH Keys")
        env_params_obj.primary_user = {
            "type": "EnvironmentUser",
            "name": host_user,
            "credential": {
                "type": "SystemKeyCredential"
            },
        }

    else:
        print_debug("Creating the environment with a password")
        env_params_obj.primary_user = {
            "type": "EnvironmentUser",
            "name": host_user,
            "credential": {
                "type": "PasswordCredential",
                "password": pw
            },
        }

    env_params_obj.host_parameters = {
        "type": "UnixHostCreateParameters",
        "host": {
            "address": ip_addr,
            "type": "UnixHost",
            "name": env_name,
            "toolkitPath": toolkit_path,
        },
    }

    env_params_obj.host_environment = UnixHostEnvironment()
    env_params_obj.host_environment.name = env_name

    if arguments["--ase"]:
        env_params_obj.host_environment.ase_host_environment_parameters = (
            ASEHostEnvironmentParameters())

        try:
            env_params_obj.host_environment.ase_host_environment_parameters.db_user = (
                arguments["--ase_user"])
            env_params_obj.host_environment.ase_host_environment_parameters.credentials = {
                "type": "PasswordCredential",
                "password": arguments["--ase_pw"],
            }
        except KeyError:
            print_exception("The --ase_user and --ase_pw arguments are"
                            " required with the --ase flag.\n")

    try:
        environment.create(dlpx_obj.server_session, env_params_obj)
        dlpx_obj.jobs[engine_name] = dlpx_obj.server_session.last_job

    except (DlpxException, RequestError, HttpError) as e:
        print("\nERROR: Encountered an exception while creating the "
              "environment:\n{}".format(e))
    except JobError as e:
        print_exception("JobError while creating environment {}:\n{}".format(
            e, e.message))
def create_linux_env(dlpx_obj, env_name, host_user, ip_addr, toolkit_path,
                     pw=None):

    """
    Create a Linux environment.

    env_name: The name of the environment
    host_user: The server account used to authenticate 
    ip_addr: DNS name or IP address of the environment
    toolkit_path: Path to the toolkit. Note: This directory must be 
                  writable by the host_user
    pw: Password of the user. Default: None (use SSH keys instead)
    """
    engine_name = dlpx_obj.dlpx_engines.keys()[0]
    env_params_obj = HostEnvironmentCreateParameters()

    if pw is None:
        print_debug('Creating the environment with SSH Keys')
        env_params_obj.primary_user = {'type': 'EnvironmentUser',
                                          'name': host_user,
                                          'credential': {
                                          'type': 'SystemKeyCredential'}}

    else:
        print_debug('Creating the environment with a password')
        env_params_obj.primary_user = {'type': 'EnvironmentUser',
                                          'name': host_user,
                                          'credential': {
                                          'type': 'PasswordCredential',
                                          'password': pw }}

    env_params_obj.host_parameters = {'type': 'UnixHostCreateParameters',
                                     'host': { 'address': ip_addr,
                                     'type': 'UnixHost',
                                     'name': env_name,
                                     'toolkitPath': toolkit_path}}

    env_params_obj.host_environment = UnixHostEnvironment()
    env_params_obj.host_environment.name = env_name

    if arguments['--ase']:
        env_params_obj.host_environment.ase_host_environment_parameters = \
            ASEHostEnvironmentParameters()

        try:
            env_params_obj.host_environment.ase_host_environment_parameters.db_user = \
                arguments['--ase_user']
            env_params_obj.host_environment.ase_host_environment_parameters.credentials = {
                                            'type': 'PasswordCredential',
                                            'password': arguments['--ase_pw']}
        except KeyError:
            print_exception('The --ase_user and --ase_pw arguments are'
                            ' required with the --ase flag.\n')

    try:
        environment.create(dlpx_obj.server_session,
                           env_params_obj)
        dlpx_obj.jobs[engine_name] = \
                                   dlpx_obj.server_session.last_job

    except (DlpxException, RequestError, HttpError) as e:
        print('\nERROR: Encountered an exception while creating the '
              'environment:\n{}'.format(e))
    except JobError as e:
        print_exception('JobError while creating environment {}:\n{}'.format(
            e, e.message))
def create_linux_env(dlpx_obj,
                     env_name,
                     host_user,
                     ip_addr,
                     toolkit_path,
                     pw=None):
    """
    Create a Linux environment.

    env_name: The name of the environment
    host_user: The server account used to authenticate 
    ip_addr: DNS name or IP address of the environment
    toolkit_path: Path to the toolkit. Note: This directory must be 
                  writable by the host_user
    pw: Password of the user. Default: None (use SSH keys instead)
    """
    engine_name = dlpx_obj.dlpx_engines.keys()[0]
    env_params_obj = HostEnvironmentCreateParameters()

    if pw is None:
        print_debug('Creating the environment with SSH Keys')
        env_params_obj.primary_user = {
            'type': 'EnvironmentUser',
            'name': host_user,
            'credential': {
                'type': 'SystemKeyCredential'
            }
        }

    else:
        print_debug('Creating the environment with a password')
        env_params_obj.primary_user = {
            'type': 'EnvironmentUser',
            'name': host_user,
            'credential': {
                'type': 'PasswordCredential',
                'password': pw
            }
        }

    env_params_obj.host_parameters = {
        'type': 'UnixHostCreateParameters',
        'host': {
            'address': ip_addr,
            'type': 'UnixHost',
            'name': env_name,
            'toolkitPath': toolkit_path
        }
    }

    env_params_obj.host_environment = UnixHostEnvironment()
    env_params_obj.host_environment.name = env_name

    if arguments['--ase']:
        env_params_obj.host_environment.ase_host_environment_parameters = \
            ASEHostEnvironmentParameters()

        try:
            env_params_obj.host_environment.ase_host_environment_parameters.db_user = \
                arguments['--ase_user']
            env_params_obj.host_environment.ase_host_environment_parameters.credentials = {
                'type': 'PasswordCredential',
                'password': arguments['--ase_pw']
            }
        except KeyError:
            print_exception('The --ase_user and --ase_pw arguments are'
                            ' required with the --ase flag.\n')

    try:
        environment.create(dlpx_obj.server_session, env_params_obj)
        dlpx_obj.jobs[engine_name] = \
                                   dlpx_obj.server_session.last_job

    except (DlpxException, RequestError, HttpError) as e:
        print(
            '\nERROR: Encountered an exception while creating the '
            'environment:\n{}'.format(e))
    except JobError as e:
        print_exception('JobError while creating environment {}:\n{}'.format(
            e, e.message))