Delphix Toolkits (dxToolkit and dxmToolkit)

 View Only
  • 1.  dxToolkit not connecting to host after IP change

    Posted 09-08-2022 03:17:00 PM
    After a recent IP change for our Delphix engine, and updating dxtools.conf with that new IP, dxtoolkit is unable to log into the server.  Are there other configuration changes needed that I'm missing.

    Sample error ...

    login to <new IP address> failed.
    Use of uninitialized value $dx_host in concatenation (.) or string at script/dx_get_capacity.pl line 134.
    Can't connect to Dephix Engine

    ------------------------------
    David Linde
    Sr Systems Mgmt Analyst
    United HealthCare Services Inc.
    ------------------------------


  • 2.  RE: dxToolkit not connecting to host after IP change

    Posted 09-09-2022 09:35:00 AM
    Hello David-

    In general, there should be no other changes required; the error has been seen in some other instances but I don't see consistent root causes.  If you can share a copy of your dxtools.conf (with username/password removed, of course), along with debug output (add -debug 3 to the command execution), we should be able to assist further.

    It would also help to ensure you are using the latest release of dxToolkit.


    ------------------------------
    Sean Nothdurft
    Senior Principal Technical Support Engineer
    Delphix
    ------------------------------



  • 3.  RE: dxToolkit not connecting to host after IP change

    Posted 09-09-2022 12:41:00 PM
    Hi Sean,

    The config file (with ID, PW, IP removed) and the debug output are below.  dxToolkit hasn't been updated since we installed it, so it's probably at least a year and a half old.

    $ more dxtools.conf
    {
    "data" : [
    {
    "encrypted" : "true",
    "hostname" : "ovart0054",
    "protocol" : "http",
    "timeout" : "600",
    "default" : "true",
    "password" : "xxxxx",
    "ip_address" : "xxxxx",
    "port" : "80",
    "username" : "xxxxx"
    },
    {
    "default" : "true",
    "ip_address" : "xxxxx",
    "password" : "xxxxx",
    "username" : "xxxxx",
    "port" : "80",
    "encrypted" : "true",
    "hostname" : "ovart0054_sys",
    "timeout" : "600",
    "protocol" : "http"
    }
    ]
    }

    x

    Dxtoolkit version 2.4.8
    -Entering Engine::constructor
    -Entering Engine::load_config
    Loading engines from /gps_dphx_nas/dxtoolkit/dxtoolkit2/dxtools.conf
    -Loading engine ovart0054
    -Entering Engine::decrypt
    -Decryption with host name doesn't work - moving forward
    -Decryption without host name doesn't work - moving forward to old method
    -Loading engine ovart0054_sys
    -Entering Engine::decrypt
    -Decryption with host name doesn't work - moving forward
    -Decryption without host name doesn't work - moving forward to old method
    -Entering Engine::getDefaultEngines
    -Entering Engine::dlpx_connect
    -Cookie file /tmp/cookies.gps_dphx.ovart0054
    connecting to: ovart0054 ( IP/name : xxxxxxxxxx )
    -Entering Engine::getJSONResult
    GET: http://xxxxxxxxxx:80/resources/json/delphix/session
    ** GET http://xxxxxxxxxx:80/resources/json/delphix/session ==> 200 OK
    -Entering Engine::getEngineName
    -Entering Engine::session
    API Version: 1.3
    -{"version":{"type":"APIVersion","micro":0,"major":1,"minor":3},"type":"APISession"}
    -Entering Engine::postJSONData
    -{"version":{"type":"APIVersion","micro":0,"major":1,"minor":3},"type":"APISession"}
    ** POST http://xxxxxxxxxx:80/resources/json/delphix/session ==> 200 OK
    -Response message: {
    "status" : "OK",
    "type" : "OKResult",
    "job" : null,
    "action" : null,
    "result" : {
    "client" : null,
    "type" : "APISession",
    "version" : {
    "type" : "APIVersion",
    "micro" : 0,
    "major" : 1,
    "minor" : 3
    },
    "locale" : null
    }
    }

    -Entering Engine::getEngineName
    -Entering Engine::getJSONResult
    GET: http://xxxxxxxxxx:80/resources/json/delphix/about
    ** GET http://xxxxxxxxxx:80/resources/json/delphix/about ==> 200 OK
    -Entering Engine::getEngineName
    -Entering Engine::session
    API Version: 1.11
    -{"type":"APISession","version":{"major":1,"minor":11,"type":"APIVersion","micro":12}}
    -Entering Engine::postJSONData
    -{"type":"APISession","version":{"major":1,"minor":11,"type":"APIVersion","micro":12}}
    ** POST http://xxxxxxxxxx:80/resources/json/delphix/session ==> 200 OK
    -Response message: {
    "type" : "OKResult",
    "job" : null,
    "status" : "OK",
    "result" : {
    "client" : null,
    "type" : "APISession",
    "version" : {
    "type" : "APIVersion",
    "micro" : 12,
    "major" : 1,
    "minor" : 11
    },
    "locale" : null
    },
    "action" : null
    }

    -Entering Engine::getEngineName
    -Entering Engine::login
    -Entering Engine::postJSONData
    -{"password":"xxxxx","username":"admin","type":"LoginRequest"}
    ** POST http://xxxxxxxxxx:80/resources/json/delphix/login ==> 401 Unauthorized
    -HTTP POST error code: 401
    -HTTP POST error message:
    -Entering Engine::getEngineName
    login to xxxxxxxxxx failed.
    Use of uninitialized value $dx_host in concatenation (.) or string at script/dx_get_capacity.pl line 134.
    Can't connect to Dephix Engine

    -Entering Engine::dlpx_connect
    -Cookie file /tmp/cookies.gps_dphx.ovart0054_sys
    connecting to: ovart0054_sys ( IP/name : xxxxxxxxxx )
    -Entering Engine::getJSONResult
    GET: http://xxxxxxxxxx:80/resources/json/delphix/session
    ** GET http://xxxxxxxxxx:80/resources/json/delphix/session ==> 200 OK
    -Entering Engine::getEngineName
    -Entering Engine::session
    API Version: 1.3
    -{"version":{"minor":3,"major":1,"micro":0,"type":"APIVersion"},"type":"APISession"}
    -Entering Engine::postJSONData
    -{"version":{"minor":3,"major":1,"micro":0,"type":"APIVersion"},"type":"APISession"}
    ** POST http://xxxxxxxxxx:80/resources/json/delphix/session ==> 200 OK (1s)
    -Response message: {
    "job" : null,
    "type" : "OKResult",
    "status" : "OK",
    "result" : {
    "client" : null,
    "version" : {
    "minor" : 3,
    "major" : 1,
    "micro" : 0,
    "type" : "APIVersion"
    },
    "locale" : null,
    "type" : "APISession"
    },
    "action" : null
    }

    -Entering Engine::getEngineName
    -Entering Engine::getJSONResult
    GET: http://xxxxxxxxxx:80/resources/json/delphix/about
    ** GET http://xxxxxxxxxx:80/resources/json/delphix/about ==> 200 OK
    -Entering Engine::getEngineName
    -Entering Engine::session
    API Version: 1.11
    -{"type":"APISession","version":{"micro":12,"type":"APIVersion","minor":11,"major":1}}
    -Entering Engine::postJSONData
    -{"type":"APISession","version":{"micro":12,"type":"APIVersion","minor":11,"major":1}}
    ** POST http://xxxxxxxxxx:80/resources/json/delphix/session ==> 200 OK
    -Response message: {
    "status" : "OK",
    "job" : null,
    "type" : "OKResult",
    "action" : null,
    "result" : {
    "type" : "APISession",
    "locale" : null,
    "version" : {
    "minor" : 11,
    "major" : 1,
    "micro" : 12,
    "type" : "APIVersion"
    },
    "client" : null
    }
    }

    -Entering Engine::getEngineName
    -Entering Engine::login
    -Entering Engine::postJSONData
    -{"password":"xxxxx"L\u001e\t¸\u0000Â%O6ÃÂ"ÂÂ'ʟB\u0002ÃÂ"\u001aïáù1TÊamvù¸J‚;QÀ3Ë¯Z·\u0018YÃÂ"\b4\u0018","type":"LoginRequest","username":"sysadmin"}
    ** POST http://xxxxxxxxxx:80/resources/json/delphix/login ==> 401 Unauthorized
    -HTTP POST error code: 401
    -HTTP POST error message:
    -Entering Engine::getEngineName
    login to xxxxxxxxxx failed.
    Use of uninitialized value $dx_host in concatenation (.) or string at script/dx_get_capacity.pl line 134.
    Can't connect to Dephix Engine






    ------------------------------
    David Linde
    Sr Systems Mgmt Analyst
    United HealthCare Services Inc.
    ------------------------------



  • 4.  RE: dxToolkit not connecting to host after IP change
    Best Answer

    Posted 09-15-2022 08:22:00 AM
    I've found the issue. Passwords in dxtools.conf need to be re-encrytped since the IP address is used as part of the encryption.

    Password encryption procedure

    Password encryption is based on an encryption key build as combination of user name, Delphix Engine IP and from version 2.4.X a host name where dxtoolkit is installed



    ------------------------------
    David Linde
    Sr Systems Mgmt Analyst
    United HealthCare Services Inc.
    ------------------------------