cloudera/cm_ext

parameter of type localDataDir doesn't get created

Opened this issue · 2 comments

I created the below service.sdl, however log_dir doesn't get created. It is a parameter of type "path"

{
  "name": "STORM",
  "label": "STORM",
  "description": "storm",
  "version": "0.9.4.5",
  "runAs": {
    "user": "storm",
    "group": "storm"
  },
  "icon": "images/icon.png",
  "parcel": {
    "requiredTags": [
      "storm"
    ]
  },
  "serviceDependencies": [
    {
      "name": "ZOOKEEPER",
      "required": "true"
    }
  ],
  "parameters": [
    {
      "name": "topology_max_spout_pending",
      "label": "topology.max.spout.pending",
      "description": "topology.max.spout.pending",
      "type": "long",
      "default": 10,
      "min": 1,
      "max": 50
    },
    {
      "name": "log_dir",
      "label": "log dir",
      "description": "log dir",
      "type": "path",
      "default": "/var/log/storm",
      "pathType": "localDataDir",
      "required": true,
      "mode": "0755"
    }
  ],
  "roles": [
    {
      "name": "STORM_SUPERVISOR",
      "label": "storm supervisor",
      "pluralLabel": "storm supervisors",
      "jvmBased": true,
      "startRunner": {
        "program": "scripts/control.sh",
        "args": [
          "supervisor"
        ],
        "environmentVariables": {
          "LOG_DIR": "${log_dir}"
        }
      }
    },
    {
      "name": "STORM_UI",
      "label": "storm ui",
      "pluralLabel": "storm ui",
      "jvmBased": true,
      "startRunner": {
        "program": "scripts/control.sh",
        "args": [
          "ui"
        ],
        "environmentVariables": {
          "UI_PORT": "${ui_port}",
          "LOG_DIR": "${log_dir}"
        }
      },
      "externalLink": {
        "name": "storm_ui",
        "label": "storm Web ui",
        "url": "http://${host}:${ui_port}"
      },
      "topology": {
        "minInstances": "1",
        "maxInstances": "1"
      },
      "parameters": [
        {
          "name": "ui_port",
          "label": "ui.port",
          "description": "ui.port",
          "type": "port",
          "default": 9999
        }
      ]
    },
    {
      "name": "STORM_NIMBUS",
      "label": "storm nimbus",
      "pluralLabel": "storm nimbus",
      "jvmBased": true,
      "startRunner": {
        "program": "scripts/control.sh",
        "args": [
          "nimbus"
        ],
        "environmentVariables": {
          "LOG_DIR": "${log_dir}"
        }
      },
      "topology": {
        "minInstances": "1",
        "maxInstances": "1"
      },
      "parameters": []
    }
  ]
}

I've encountered this as well. I could be wrong, but I believe LocalDataDirs only get created for parameters defined at the role level, and not service-wide. Give that a try.

Yes, it seems that LocalDataDirs only get created for parameters defined at the role level, and not service-wide