Thanks for your feedback!

Troubleshooting

Run into trouble with Cloud Scripting? Here are some helpful tips and specific suggestions for troubleshooting as follows:

  • Log in to your Virtuozzo Application Platform dashboard and open the link of the following type in a new browser tab.

    http://app.{HOSTER_URL}/console/

    Here, substitute {HOSTER_URL} with the platform domain of your hosting provider (see the last column of the table within the Hosters Info page).

  • In the opened browser tab, you will see the Cloud Scripting execution log.

troubleshooting

Note

The maximum size of the log is 1 MB. The log will be truncated or overwritten, if this limit is exceeded.

Below, you can find some samples of editing custom information to the log:

    type: update
    name: LogTest
    
    onInstall:
      log:
        - Hello
        - ${user.email}
    
    {
      "type": "update",
      "name": "LogTest",
      "onInstall": {
        "log": [
          "Hello",
          "${user.email}"
        ]
      }
    }
    

  • outputting all the placeholders

    type: update
    name: LogTest
    
    onInstall:
      log: ${placeholders}
    
    {
      "type": "update",
      "name": "LogTest",
      "onInstall": {
        "log": "${placeholders}"
      }
    }
    

All dynamic placeholders in ${placeholders} value are updated immediately after any action. Also placeholders will be updated automatically before displaying ${placeholders} value into console.

  • outputting from a script

    type: update
    name: LogTest
    
    onInstall:
      script:
        type: js
        script: "http://example.com/script.js"
    
    actions:
      - myaction:
          log: ${this.message}
    
    {
      "type": "update",
      "name": "LogTest",
      "onInstall": {
        "script": {
          "type": "js",
          "script": "http://example.com/script.js"
        }
      },
      "actions": [
        {
          "myaction": {
            "log": "${this.message}"
          }
        }
      ]
    }
    

script.js body:

var message = 'Hello';

return { 
    result: 0, 
    onAfterReturn: {
        call: [{
            action: 'myaction', 
            params: {
                message: message
            } 
        }, {
            action: 'myaction',
            params: {
                message: 'World !'
            }
        }] 
    } 
};

loggerName

When installing any JPS, the logger name is displayed next to the time in each line of the log. By default, the name of the logger is determined by the parameter name inside the JPS manifest:
troubleshooting-default

If the parameter name consists of more than two words, the name of the logger is formed by the first and last word with a dot as a delimiter:
troubleshooting-default

If you start the asynchronous installation of several identical JPSs, the name of logger may be overridden with loggerName parameter for each JPS in order to distinguish different JPS installation logs.

  • inside install action: Example 1
install:
  - jps: https://example.com/manifest.jps
    loggerName: Test 1

  - jps: https://example.com/manifest.jps
    loggerName: Test 2

Example 2

install:
  - loggerName: Test 1
    jps: 
      type: install
      name: test
      onInstall: 
        log: Test    

  - loggerName: Test 2
    jps:
      type: install
      name: test
      onInstall: 
        log: Test

troubleshooting-loggername

  • with parameter of API request:
api.marketplace.jps.Install({
  jps: "https://example.com/manifest.jps",
  loggerName: "Test 1"
});

Current Step

To simplify debugging, the number of the current step is added to the logs. As you can see from the examples above, the step number follows the logger name and a colon.

troubleshooting-steps

separate log for each node in group

In case the engine splits action execution into separate requests, the logging is performed for each node separately. For example:

  • asynchronous execution
cmd [cp, bl]: echo test

troubleshooting-async-nodesseparate

  • synchronous execution
sync: true
cmd [cp, bl]: echo test

troubleshooting-sync-nodesseparate

warning

The warnings are highlighted with orange.

onInstall:
  return:
    type: warning
    message: Warning message!

troubleshooting-warning


What's next?

v: 8.8.1