261 lines
4.7 KiB
Markdown
261 lines
4.7 KiB
Markdown
# SAP HANA CLI - HDI Container Management
|
|
|
|
**Source**: [https://github.com/SAP-samples/hana-developer-cli-tool-example](https://github.com/SAP-samples/hana-developer-cli-tool-example)
|
|
|
|
HDI (HANA Deployment Infrastructure) containers provide isolated runtime environments for database artifacts.
|
|
|
|
---
|
|
|
|
## HDI Command Overview
|
|
|
|
| Command | Purpose |
|
|
|---------|---------|
|
|
| `activateHDI` | Enable HDI service |
|
|
| `adminHDI` | Assign HDI admin privileges |
|
|
| `adminHDIGroup` | Manage group administrators |
|
|
| `containers` | List containers |
|
|
| `createContainer` | Create new container |
|
|
| `createContainerUsers` | Create access users |
|
|
| `dropContainer` | Remove container |
|
|
| `createGroup` | Create container group |
|
|
| `dropGroup` | Remove container group |
|
|
|
|
---
|
|
|
|
## Activate HDI Service
|
|
|
|
Enable HDI for a database tenant.
|
|
|
|
```bash
|
|
# Activate HDI
|
|
hana-cli activateHDI
|
|
|
|
# For specific tenant
|
|
hana-cli activateHDI [tenant]
|
|
```
|
|
|
|
**Prerequisites**: SYSTEM user or equivalent privileges.
|
|
|
|
---
|
|
|
|
## HDI Administration
|
|
|
|
### Assign HDI Admin
|
|
|
|
```bash
|
|
# Make user an HDI administrator
|
|
hana-cli adminHDI [user]
|
|
```
|
|
|
|
### Group Administration
|
|
|
|
```bash
|
|
# Add group administrator
|
|
hana-cli adminHDIGroup [group] [user]
|
|
```
|
|
|
|
---
|
|
|
|
## Container Operations
|
|
|
|
### List Containers
|
|
|
|
```bash
|
|
# List all containers
|
|
hana-cli containers
|
|
|
|
# With aliases
|
|
hana-cli cont
|
|
hana-cli listContainers
|
|
|
|
# Filter by container name pattern
|
|
hana-cli containers -c "MY_APP*"
|
|
|
|
# Filter by group
|
|
hana-cli containers -g "DEV_GROUP"
|
|
|
|
# Limit results
|
|
hana-cli containers -l 50
|
|
```
|
|
|
|
**Options**:
|
|
| Option | Alias | Default | Description |
|
|
|--------|-------|---------|-------------|
|
|
| container | c | * | Container filter pattern |
|
|
| containerGroup | g | * | Group filter pattern |
|
|
| limit | l | 200 | Maximum results |
|
|
|
|
**Output**: Container name, group, schema, creator, creation timestamp (UTC).
|
|
|
|
**UI Alternative**:
|
|
```bash
|
|
hana-cli containersUI
|
|
```
|
|
|
|
### Create Container
|
|
|
|
```bash
|
|
# Create new container
|
|
hana-cli createContainer [container] [group]
|
|
|
|
# Example
|
|
hana-cli createContainer MY_APP_HDI DEV_GROUP
|
|
```
|
|
|
|
### Create Container Users
|
|
|
|
Creates the standard HDI access users for a container.
|
|
|
|
```bash
|
|
# Create users for container
|
|
hana-cli createContainerUsers [container]
|
|
|
|
# Example
|
|
hana-cli createContainerUsers MY_APP_HDI
|
|
```
|
|
|
|
**Users Created**:
|
|
- Runtime user (read/execute)
|
|
- Design-time user (deploy artifacts)
|
|
- Admin user (full access)
|
|
|
|
### Drop Container
|
|
|
|
```bash
|
|
# Remove container
|
|
hana-cli dropContainer [container]
|
|
|
|
# Example
|
|
hana-cli dropContainer MY_APP_HDI
|
|
```
|
|
|
|
**Warning**: This permanently deletes all artifacts in the container.
|
|
|
|
---
|
|
|
|
## Container Groups
|
|
|
|
### Create Group
|
|
|
|
```bash
|
|
# Create container group
|
|
hana-cli createGroup [group]
|
|
|
|
# Example
|
|
hana-cli createGroup DEV_GROUP
|
|
```
|
|
|
|
### Drop Group
|
|
|
|
```bash
|
|
# Remove container group
|
|
hana-cli dropGroup [group]
|
|
|
|
# Example
|
|
hana-cli dropGroup DEV_GROUP
|
|
```
|
|
|
|
**Note**: Group must be empty before deletion.
|
|
|
|
---
|
|
|
|
## HANA Cloud HDI Instances
|
|
|
|
For SAP HANA Cloud, use cloud-specific commands:
|
|
|
|
```bash
|
|
# List Cloud HDI instances
|
|
hana-cli hanaCloudHDIInstances
|
|
|
|
# UI version
|
|
hana-cli hanaCloudHDIInstancesUI
|
|
```
|
|
|
|
---
|
|
|
|
## HDI Container Workflow
|
|
|
|
### Typical Development Workflow
|
|
|
|
1. **Enable HDI** (if not enabled):
|
|
```bash
|
|
hana-cli activateHDI
|
|
```
|
|
|
|
2. **Create group** (optional organization):
|
|
```bash
|
|
hana-cli createGroup MY_PROJECT_GROUP
|
|
```
|
|
|
|
3. **Create container**:
|
|
```bash
|
|
hana-cli createContainer MY_APP_HDI MY_PROJECT_GROUP
|
|
```
|
|
|
|
4. **Create users**:
|
|
```bash
|
|
hana-cli createContainerUsers MY_APP_HDI
|
|
```
|
|
|
|
5. **Verify**:
|
|
```bash
|
|
hana-cli containers -c "MY_APP*"
|
|
```
|
|
|
|
### Cleanup Workflow
|
|
|
|
1. **List containers**:
|
|
```bash
|
|
hana-cli containers
|
|
```
|
|
|
|
2. **Drop container**:
|
|
```bash
|
|
hana-cli dropContainer MY_APP_HDI
|
|
```
|
|
|
|
3. **Drop group** (if empty):
|
|
```bash
|
|
hana-cli dropGroup MY_PROJECT_GROUP
|
|
```
|
|
|
|
---
|
|
|
|
## HDI Connection in default-env.json
|
|
|
|
```json
|
|
{
|
|
"VCAP_SERVICES": {
|
|
"hana": [{
|
|
"name": "hdi-container",
|
|
"label": "hana",
|
|
"credentials": {
|
|
"host": "hostname",
|
|
"port": "443",
|
|
"user": "MY_APP_HDI_RT",
|
|
"password": "RuntimeUserPassword",
|
|
"schema": "MY_APP_HDI",
|
|
"hdi_user": "MY_APP_HDI_DT",
|
|
"hdi_password": "DesignTimePassword",
|
|
"certificate": "-----BEGIN CERTIFICATE-----..."
|
|
}
|
|
}]
|
|
}
|
|
}
|
|
```
|
|
|
|
---
|
|
|
|
## Common Issues
|
|
|
|
| Issue | Cause | Solution |
|
|
|-------|-------|----------|
|
|
| HDI not activated | Service disabled | Run `activateHDI` |
|
|
| Cannot create container | Insufficient privileges | Get HDI admin rights |
|
|
| Container exists | Name conflict | Use unique name |
|
|
| Cannot drop group | Group not empty | Drop containers first |
|
|
|
|
---
|
|
|
|
*Reference: [https://github.com/SAP-samples/hana-developer-cli-tool-example*](https://github.com/SAP-samples/hana-developer-cli-tool-example*)
|