No description
Find a file
Waldemar 60f038e9ab
feat(examples): Add instance state polling with 5-minute timeout
Enhanced comprehensive example to wait for AppInstance deployment completion:

## New Polling Features:
- **State Monitoring**: Polls ShowAppInst every 10 seconds until ready
- **Timeout Protection**: 5-minute maximum wait time with context cancellation
- **Smart State Detection**: Handles Creating, Ready, Running, Error states
- **Progress Feedback**: Real-time status updates during deployment

## Implementation Details:
- **waitForInstanceReady()**: Robust polling function with timeout
- **State Logic**: Exits on non-creating states (Ready, Running, Error)
- **Error Handling**: Distinguishes between polling errors and failure states
- **Context Management**: Proper timeout context with cleanup

## User Experience:
```
5️⃣  Waiting for application instance to be ready...
   Polling instance state (timeout: 5 minutes)...
   📊 Instance state: Creating
   📊 Instance state: Creating (power: PowerOn)
   📊 Instance state: Ready (power: PowerOn)
    Instance reached ready state: Ready
```

This ensures the example demonstrates a complete, realistic deployment
workflow where instance creation is fully completed before proceeding
to subsequent operations.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-25 16:59:24 +02:00
.claude feat(sdk): Implement EdgeXR Master Controller Go SDK foundation 2025-09-25 14:05:20 +02:00
api feat(sdk): Implement EdgeXR Master Controller Go SDK foundation 2025-09-25 14:05:20 +02:00
cmd feat(sdk): Complete Phase 2 - AppInstance, Cloudlet APIs & CLI integration 2025-09-25 14:53:43 +02:00
sdk feat(examples): Add instance state polling with 5-minute timeout 2025-09-25 16:59:24 +02:00
.gitignore feat(cli): Implement Edge Connect CLI tool 2025-09-18 13:51:09 +02:00
comprehensive feat(examples): Add instance state polling with 5-minute timeout 2025-09-25 16:59:24 +02:00
config.yaml.example feat(cli): Implement Edge Connect CLI tool 2025-09-18 13:51:09 +02:00
Dockerfile feat(client): add basic client, model 2025-09-16 13:02:33 +02:00
edge-connect-client feat(sdk): Complete Phase 2 - AppInstance, Cloudlet APIs & CLI integration 2025-09-25 14:53:43 +02:00
go.mod feat(sdk): Implement EdgeXR Master Controller Go SDK foundation 2025-09-25 14:05:20 +02:00
go.sum feat(sdk): Implement EdgeXR Master Controller Go SDK foundation 2025-09-25 14:05:20 +02:00
main.go feat(cli): Implement Edge Connect CLI tool 2025-09-18 13:51:09 +02:00
Makefile feat(sdk): Implement EdgeXR Master Controller Go SDK foundation 2025-09-25 14:05:20 +02:00
oapi-codegen.yaml feat(sdk): Implement EdgeXR Master Controller Go SDK foundation 2025-09-25 14:05:20 +02:00
plan.md feat(sdk): Implement EdgeXR Master Controller Go SDK foundation 2025-09-25 14:05:20 +02:00
project.md feat(sdk): Implement EdgeXR Master Controller Go SDK foundation 2025-09-25 14:05:20 +02:00
README.md feat(cli): Implement Edge Connect CLI tool 2025-09-18 13:51:09 +02:00

Edge Connect CLI

A command-line interface for managing Edge Connect applications and their instances.

Installation

go install

Configuration

The CLI can be configured using a configuration file or environment variables. The default configuration file location is $HOME/.edge-connect.yaml.

You can also specify a different configuration file using the --config flag.

Configuration File Format

Create a YAML file with the following structure:

base_url: "https://api.edge-connect.example.com"
username: "your-username"
password: "your-password"

Environment Variables

You can also use environment variables to configure the CLI:

  • EDGE_CONNECT_BASE_URL: Base URL for the Edge Connect API
  • EDGE_CONNECT_USERNAME: Username for authentication
  • EDGE_CONNECT_PASSWORD: Password for authentication

Usage

Managing Applications

Create a new application:

edge-connect app create --org myorg --name myapp --version 1.0.0 --region us-west

Show application details:

edge-connect app show --org myorg --name myapp --version 1.0.0 --region us-west

List applications:

edge-connect app list --org myorg --region us-west

Delete an application:

edge-connect app delete --org myorg --name myapp --version 1.0.0 --region us-west

Managing Application Instances

Create a new application instance:

edge-connect instance create \
  --org myorg \
  --name myinstance \
  --cloudlet mycloudlet \
  --cloudlet-org cloudletorg \
  --region us-west \
  --app myapp \
  --version 1.0.0 \
  --flavor myflavor

Show instance details:

edge-connect instance show \
  --org myorg \
  --name myinstance \
  --cloudlet mycloudlet \
  --cloudlet-org cloudletorg \
  --region us-west

List instances:

edge-connect instance list \
  --org myorg \
  --cloudlet mycloudlet \
  --cloudlet-org cloudletorg \
  --region us-west

Delete an instance:

edge-connect instance delete \
  --org myorg \
  --name myinstance \
  --cloudlet mycloudlet \
  --cloudlet-org cloudletorg \
  --region us-west

Global Flags

  • --config: Config file (default is $HOME/.edge-connect.yaml)
  • --base-url: Base URL for the Edge Connect API
  • --username: Username for authentication
  • --password: Password for authentication