goversion

package module
v1.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 27, 2016 License: MIT Imports: 0 Imported by: 0

README

Scaleway CLI

Interact with Scaleway API from the command line.

Build Status (Travis) GoDoc Packager License Release IRC

Scaleway CLI demo

Read the blog post.

Table of Contents
  1. Overview
  2. Setup
  1. Use in Golang
  2. Usage
  1. Changelog
  2. Development
  1. License

Overview

A command-line tool to manage Scaleway servers à-la-Docker.

For node version, check out scaleway-cli-node.

Setup

We recommend to use the latest version, using:

go get -u github.com/scaleway/scaleway-cli/cmd/scw

or

brew install "https://raw.githubusercontent.com/scaleway/scaleway-cli/master/contrib/builder/homebrew/scw.rb" --HEAD

To install a release, checkout the latest release page.

Install the latest stable release on Mac OS X using Homebrew:

brew install scw

Install the latest stable release on Mac OS X manually:

# prepare for forst install and upgrade
mkdir -p /usr/local/bin
mv /usr/local/bin/scw /tmp/scw.old

# get latest release
wget "https://github.com/scaleway/scaleway-cli/releases/download/v1.7.0/scw_1.7.0_darwin_amd64.zip" -O /tmp/scw.zip
unzip /tmp/scw.zip \*/scw -d /tmp
mv /tmp/scw_*/scw /usr/local/bin
rm -rf /tmp/scw.zip /tmp/scw_*_darwin_amd64

# test
scw version

Install the latest release on Linux:

# get latest release
export ARCH=amd64  # can be 'i386', 'amd64' or 'armhf'
wget "https://github.com/scaleway/scaleway-cli/releases/download/v1.7.0/scw_1.7.0_${ARCH}.deb" -O /tmp/scw.deb
dpkg -i /tmp/scw.deb && rm -f /tmp/scw.deb

# test
scw version
Requirements

By using the static-compiled release binaries, you only needs to have one of the following platform+architecture :

Platform Architecture
Darwin (Mac OS X) i386, x86_64
FreeBSD arm, i386, x86_64
Linux arm, armv7, armv7, i386, x86_64
Windows x86_64
Run in Docker

You can run scaleway-cli in a sandboxed way using Docker.

warning: caching is disabled

$ docker run -it --rm --volume=$HOME/.scwrc:/.scwrc scaleway/cli ps
Manual build
  1. Install go
  2. Ensure you have $GOPATH and $PATH well configured, something like:
  • export GOPATH=$HOME/go
  • export PATH=$PATH:$GOPATH/bin
  1. Install the project: go get github.com/scaleway/scaleway-cli/...
  2. Run: scw

Use in Golang

Scaleway-cli is written in Go, the code is splitted across multiple go-getable packages

Usage

Usage inspired by Docker CLI

$ scw
Usage: scw [OPTIONS] COMMAND [arg...]

Interact with Scaleway from the command line.

Options:
 -h, --help=false             Print usage
 -D, --debug=false            Enable debug mode
 -V, --verbose=false          Enable verbose mode
 -q, --quiet=false            Enable quiet mode
 --api-endpoint=APIEndPoint   Set the API endpoint
 --sensitive=false            Show sensitive data in outputs, i.e. API Token/Organization
 -v, --version=false          Print version information and quit

Commands:
    help      help of the scw command line
    attach    Attach to a server serial console
    commit    Create a new snapshot from a server's volume
    cp        Copy files/folders from a PATH on the server to a HOSTDIR on the host
    create    Create a new server but do not start it
    events    Get real time events from the API
    exec      Run a command on a running server
    history   Show the history of an image
    images    List images
    info      Display system-wide information
    inspect   Return low-level information on a server, image, snapshot, volume or bootscript
    kill      Kill a running server
    login     Log in to Scaleway API
    logout    Log out from the Scaleway API
    logs      Fetch the logs of a server
    port      Lookup the public-facing port that is NAT-ed to PRIVATE_PORT
    ps        List servers
    rename    Rename a server
    restart   Restart a running server
    rm        Remove one or more servers
    rmi       Remove one or more images
    run       Run a command in a new server
    search    Search the Scaleway Hub for images
    start     Start a stopped server
    stop      Stop a running server
    tag       Tag a snapshot into an image
    top       Lookup the running processes of a server
    version   Show the version information
    wait      Block until a server stops

Run 'scw COMMAND --help' for more information on a command.
Quick start

Login

$ scw login
Login (cloud.scaleway.com): xxxx@xx.xx
Password:
$

Run a new server my-ubuntu

$ scw run --name=my-ubuntu ubuntu-trusty bash
   [...] wait about a minute for the first boot
root@my-ubuntu:~#
Workflows

See ./examples/ directory

Commands
scw attach
Usage: scw attach [OPTIONS] SERVER

Attach to a running server serial console.

Options:

  -h, --help=false      Print usage

Examples:

    $ scw attach my-running-server
    $ scw attach $(scw start my-stopped-server)
    $ scw attach $(scw start $(scw create ubuntu-vivid))
scw commit
Usage: scw commit [OPTIONS] SERVER [NAME]

Create a new snapshot from a server's volume.

Options:

  -h, --help=false      Print usage
  -v, --volume=0        Volume slot

Examples:

    $ scw commit my-stopped-server
    $ scw commit -v 1 my-stopped-server
scw cp
Usage: scw cp [OPTIONS] SERVER:PATH HOSTDIR|-

Copy files/folders from a PATH on the server to a HOSTDIR on the host
running the command. Use '-' to write the data as a tar file to STDOUT.

Options:

  -g, --gateway=""      Use a SSH gateway
  -h, --help=false      Print usage

Examples:

    $ scw cp path/to/my/local/file myserver:path
    $ scw cp --gateway=myotherserver path/to/my/local/file myserver:path
    $ scw cp myserver:path/to/file path/to/my/local/dir
    $ scw cp myserver:path/to/file myserver2:path/to/dir
    $ scw cp myserver:path/to/file - > myserver-pathtofile-backup.tar
    $ scw cp myserver:path/to/file - | tar -tvf -
    $ scw cp path/to/my/local/dir  myserver:path
    $ scw cp myserver:path/to/dir  path/to/my/local/dir
    $ scw cp myserver:path/to/dir  myserver2:path/to/dir
    $ scw cp myserver:path/to/dir  - > myserver-pathtodir-backup.tar
    $ scw cp myserver:path/to/dir  - | tar -tvf -
    $ cat archive.tar | scw cp - myserver:/path
    $ tar -cvf - . | scw cp - myserver:path
scw create
Usage: scw create [OPTIONS] IMAGE

Create a new server but do not start it.

Options:

  --bootscript=""       Assign a bootscript
  -e, --env=""          Provide metadata tags passed to initrd (i.e., boot=resue INITRD_DEBUG=1)
  -h, --help=false      Print usage
  --ip-address=""       Assign an IP
  --name=""             Assign a name
  --tmp-ssh-key=false   Access your server without uploading your SSH key to your account
  -v, --volume=""       Attach additional volume (i.e., 50G)

Examples:

    $ scw create docker
    $ scw create 10GB
    $ scw create --bootscript=3.2.34 --env="boot=live rescue_image=http://j.mp/scaleway-ubuntu-trusty-tarball" 50GB
    $ scw inspect $(scw create 1GB --bootscript=rescue --volume=50GB)
    $ scw create $(scw tag my-snapshot my-image)
    $ scw create --tmp-ssh-key 10GB
scw events
Usage: scw events [OPTIONS]

Get real time events from the API.

Options:

  -h, --help=false      Print usage
scw exec
Usage: scw exec [OPTIONS] SERVER [COMMAND] [ARGS...]

Run a command on a running server.

Options:

  -g, --gateway=""      Use a SSH gateway
  -h, --help=false      Print usage
  -T, --timeout=0       Set timeout values to seconds
  -w, --wait=false      Wait for SSH to be ready

Examples:

    $ scw exec myserver
    $ scw exec myserver bash
    $ scw exec --gateway=myotherserver myserver bash
    $ scw exec myserver 'tmux a -t joe || tmux new -s joe || bash'
    $ exec_secure=1 scw exec myserver bash
    $ scw exec -w $(scw start $(scw create ubuntu-trusty)) bash
    $ scw exec $(scw start -w $(scw create ubuntu-trusty)) bash
    $ scw exec myserver tmux new -d sleep 10
    $ scw exec myserver ls -la | grep password
    $ cat local-file | scw exec myserver 'cat > remote/path'
scw help
Usage: scw help [COMMAND]


Help prints help information about scw and its commands.

By default, help lists available commands with a short description.
When invoked with a command name, it prints the usage and the help of
the command.


Options:

  -h, --help=false      Print usage
scw history
Usage: scw history [OPTIONS] IMAGE

Show the history of an image.

Options:

  -h, --help=false      Print usage
  --no-trunc=false      Don't truncate output
  -q, --quiet=false     Only show numeric IDs
scw images
Usage: scw images [OPTIONS]

List images.

Options:

  -a, --all=false       Show all iamges
  -f, --filter=""       Filter output based on conditions provided
  -h, --help=false      Print usage
  --no-trunc=false      Don't truncate output
  -q, --quiet=false     Only show numeric IDs

Examples:

    $ scw images
    $ scw images -a
    $ scw images -q
    $ scw images --no-trunc
    $ scw images -f organization=me
    $ scw images -f organization=official-distribs
    $ scw images -f organization=official-apps
    $ scw images -f organization=UUIDOFORGANIZATION
    $ scw images -f name=ubuntu
    $ scw images -f type=image
    $ scw images -f type=bootscript
    $ scw images -f type=snapshot
    $ scw images -f type=volume
    $ scw images -f public=true
    $ scw images -f public=false
    $ scw images -f "organization=me type=volume" -q
scw info
Usage: scw info [OPTIONS]

Display system-wide information.

Options:

  -h, --help=false      Print usage
scw inspect
Usage: scw inspect [OPTIONS] IDENTIFIER [IDENTIFIER...]

Return low-level information on a server, image, snapshot or bootscript.

Options:

  -b, --browser=false   Inspect object in browser
  -f, --format=""       Format the output using the given go template.
  -h, --help=false      Print usage

Examples:

    $ scw inspect my-server
    $ scw inspect server:my-server
    $ scw inspect --browser my-server
    $ scw inspect a-public-image
    $ scw inspect image:a-public-image
    $ scw inspect my-snapshot
    $ scw inspect snapshot:my-snapshot
    $ scw inspect my-volume
    $ scw inspect volume:my-volume
    $ scw inspect my-image
    $ scw inspect image:my-image
    $ scw inspect my-server | jq '.[0].public_ip.address'
    $ scw inspect $(scw inspect my-image | jq '.[0].root_volume.id')
    $ scw inspect -f "{{ .PublicAddress.IP }}" my-server
    $ scw --sensitive inspect my-server
scw kill
Usage: scw kill [OPTIONS] SERVER

Kill a running server.

Options:

  -g, --gateway=""      Use a SSH gateway
  -h, --help=false      Print usage
scw login
Usage: scw login [OPTIONS]

Generates a configuration file in '/home/$USER/.scwrc'
containing credentials used to interact with the Scaleway API. This
configuration file is automatically used by the 'scw' commands.

You can get your credentials on https://cloud.scaleway.com/#/credentials


Options:

  -h, --help=false      Print usage
  -o, --organization="" Organization
  -s, --skip-ssh-key=false Don't ask to upload an SSH Key
  -t, --token=""        Token
scw logout
Usage: scw logout [OPTIONS]

Log out from the Scaleway API.

Options:

  -h, --help=false      Print usage
scw logs
Usage: scw logs [OPTIONS] SERVER

Fetch the logs of a server.

Options:

  -g, --gateway=""      Use a SSH gateway
  -h, --help=false      Print usage
scw port
Usage: scw port [OPTIONS] SERVER [PRIVATE_PORT[/PROTO]]

List port mappings for the SERVER, or lookup the public-facing port that is NAT-ed to the PRIVATE_PORT

Options:

  -g, --gateway=""      Use a SSH gateway
  -h, --help=false      Print usage
scw ps
Usage: scw ps [OPTIONS]

List servers. By default, only running servers are displayed.

Options:

  -a, --all=false       Show all servers. Only running servers are shown by default
  -f, --filter=""       Filter output based on conditions provided
  -h, --help=false      Print usage
  -l, --latest=false    Show only the latest created server, include non-running ones
  -n=0                  Show n last created servers, include non-running ones
  --no-trunc=false      Don't truncate output
  -q, --quiet=false     Only display numeric IDs

Examples:

    $ scw ps
    $ scw ps -a
    $ scw ps -l
    $ scw ps -n=10
    $ scw ps -q
    $ scw ps --no-trunc
    $ scw ps -f state=booted
    $ scw ps -f state=running
    $ scw ps -f state=stopped
    $ scw ps -f ip=212.47.229.26
    $ scw ps -f tags=prod
    $ scw ps -f tags=boot=live
    $ scw ps -f image=docker
    $ scw ps -f image=alpine
    $ scw ps -f image=UUIDOFIMAGE
    $ scw ps -f "state=booted image=docker tags=prod"
scw rename
Usage: scw rename [OPTIONS] SERVER NEW_NAME

Rename a server.

Options:

  -h, --help=false      Print usage
scw restart
Usage: scw restart [OPTIONS] SERVER [SERVER...]

Restart a running server.

Options:

  -h, --help=false      Print usage
  -T, --timeout=0       Set timeout value to seconds
  -w, --wait=false      Synchronous restart. Wait for SSH to be ready
scw rm
Usage: scw rm [OPTIONS] SERVER [SERVER...]

Remove one or more servers.

Options:

  -f, --force=false     Force the removal of a server
  -h, --help=false      Print usage

Examples:

    $ scw rm myserver
    $ scw rm -f myserver
    $ scw rm my-stopped-server my-second-stopped-serv
    $ scw rm $(scw ps -q)
    $ scw rm $(scw ps | grep mysql | awk '{print $1}')
scw rmi
Usage: scw rmi [OPTIONS] IDENTIFIER [IDENTIFIER...]

Remove one or more image(s)/volume(s)/snapshot(s)

Options:

  -h, --help=false      Print usage

Examples:

    $ scw rmi myimage
    $ scw rmi mysnapshot
    $ scw rmi myvolume
    $ scw rmi $(scw images -q)
scw run
Usage: scw run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new server.

Options:

  -a, --attach=false    Attach to serial console
  --bootscript=""       Assign a bootscript
  -d, --detach=false    Run server in background and print server ID
  -e, --env=""          Provide metadata tags passed to initrd (i.e., boot=rescue INITRD_DEBUG=1)
  -g, --gateway=""      Use a SSH gateway
  -h, --help=false      Print usage
  --ip-address=""       Assign an IP
  --name=""             Assign a name
  --rm=false            Automatically remove the server when it exits
  --show-boot=false     Allows to show the boot
  -T, --timeout=0       Set timeout value to seconds
  --tmp-ssh-key=false   Access your server without uploading your SSH key to your account
  -u, --userdata=""     Start a server with userdata predefined
  -v, --volume=""       Attach additional volume (i.e., 50G)

Examples:

    $ scw run ubuntu-trusty
    $ scw run --rm ubuntu-trusty
    $ scw run -a --rm ubuntu-trusty
    $ scw run --gateway=myotherserver ubuntu-trusty
    $ scw run ubuntu-trusty bash
    $ scw run --name=mydocker docker docker run moul/nyancat:armhf
    $ scw run --bootscript=3.2.34 --env="boot=live rescue_image=http://j.mp/scaleway-ubuntu-trusty-tarball" 50GB bash
    $ scw run --attach alpine
    $ scw run --detach alpine
    $ scw run --tmp-ssh-key alpine
    $ scw run --userdata="FOO=BAR FILE=@/tmp/file" alpine
Usage: scw search [OPTIONS] TERM

Search the Scaleway Hub for images.

Options:

  -h, --help=false      Print usage
  --no-trunc=false      Don't truncate output
scw start
Usage: scw start [OPTIONS] SERVER [SERVER...]

Start a stopped server.

Options:

  -h, --help=false      Print usage
  -T, --timeout=0       Set timeout values to seconds
  -w, --wait=false      Synchronous start. Wait for SSH to be ready
scw stop
➜  scaleway-cli git:(master) ✗ clear; scw help stop
Usage: scw stop [OPTIONS] SERVER [SERVER...]

Stop a running server.

Options:

  -h, --help=false      Print usage
  -t, --terminate=false Stop and trash a server with its volumes
  -w, --wait=false      Synchronous stop. Wait for SSH to be ready

Examples:

    $ scw stop my-running-server my-second-running-server
    $ scw stop -t my-running-server my-second-running-server
    $ scw stop $(scw ps -q)
    $ scw stop $(scw ps | grep mysql | awk '{print $1}')
    $ scw stop server && stop wait server
    $ scw stop -w server
scw tag
Usage: scw tag [OPTIONS] SNAPSHOT NAME

Tag a snapshot into an image.

Options:

  -h, --help=false      Print usage
  --bootscript=""       Assign a bootscript
scw top
Usage: scw top [OPTIONS] SERVER

Lookup the running processes of a server.

Options:

  -g, --gateway=""      Use a SSH gateway
  -h, --help=false      Print usage
scw version
Usage: scw version [OPTIONS]

Show the version information.

Options:

  -h, --help=false      Print usage
scw wait
➜  scaleway-cli git:(master) ✗ clear; scw help wait
Usage: scw wait [OPTIONS] SERVER [SERVER...]

Block until a server stops.

Options:

  -h, --help=false      Print usage

Examples

Create a server with Ubuntu Trusty image and 3.2.34 bootscript

$ scw create --bootscript=3.2.34 trusty
df271f73-60ce-47fd-bd7b-37b5f698d8b2

Create a server with Fedora 21 image

$ scw create 1f164079
7313af22-62bf-4df1-9dc2-c4ffb4cb2d83

Create a server with an empty disc of 20G and rescue bootscript

$ scw create --bootscript=rescue 20G
5cf8058e-a0df-4fc3-a772-8d44e6daf582

Run a stopped server

$ scw start 7313af22
7313af22-62bf-4df1-9dc2-c4ffb4cb2d83

Run a stopped server and wait for SSH to be ready

$ scw start --wait myserver
myserver
$ scw exec myserver /bin/bash
[root@noname ~]#

Run a stopped server and wait for SSH to be ready (inline version)

$ scw exec $(scw start --wait myserver) /bin/bash
[root@noname ~]#

Create, start and ssh to a new server (inline version)

$ scw exec $(scw start --wait $(scw create ubuntu-trusty)) /bin/bash
[root@noname ~]#

or

$ scw exec --wait $(scw start $(scw create ubuntu-trusty)) /bin/bash
[root@noname ~]#

Wait for a server to be available, then execute a command

$ scw exec --wait myserver /bin/bash
[root@noname ~]#

Run a command in background

$ scw exec alpine tmux new -d "sleep 10"

Run a stopped server and wait for SSH to be ready with a global timeout of 150 seconds

$ scw start --wait --timeout=150 myserver
global execution... failed: Operation timed out.

Wait for a server to be in 'stopped' state

$ scw wait 7313af22
[...] some seconds later
0

Attach to server serial port

$ scw attach 7313af22
[RET]
Ubuntu Vivid Vervet (development branch) nfs-server ttyS0
my-server login:
^C
$

Create a server with Fedora 21 image and start it

$ scw start `scw create 1f164079`
5cf8058e-a0df-4fc3-a772-8d44e6daf582

Execute a 'ls -la' on a server (via SSH)

$ scw exec myserver ls -la
total 40
drwx------.  4 root root 4096 Mar 26 05:56 .
drwxr-xr-x. 18 root root 4096 Mar 26 05:56 ..
-rw-r--r--.  1 root root   18 Jun  8  2014 .bash_logout
-rw-r--r--.  1 root root  176 Jun  8  2014 .bash_profile
-rw-r--r--.  1 root root  176 Jun  8  2014 .bashrc
-rw-r--r--.  1 root root  100 Jun  8  2014 .cshrc
drwxr-----.  3 root root 4096 Mar 16 06:31 .pki
-rw-rw-r--.  1 root root 1240 Mar 12 08:16 .s3cfg.sample
drwx------.  2 root root 4096 Mar 26 05:56 .ssh
-rw-r--r--.  1 root root  129 Jun  8  2014 .tcshrc

Run a shell on a server (via SSH)

$ scw exec 5cf8058e /bin/bash
[root@noname ~]#

List public images and my images

$ scw images
REPOSITORY                                 TAG      IMAGE ID   CREATED        VIRTUAL SIZE
user/Alpine_Linux_3_1                      latest   854eef72   10 days ago    50 GB
Debian_Wheezy_7_8                          latest   cd66fa55   2 months ago   20 GB
Ubuntu_Utopic_14_10                        latest   1a702a4e   4 months ago   20 GB
...

List public images, my images and my snapshots

$ scw images -a
REPOSITORY                                 TAG      IMAGE ID   CREATED        VIRTUAL SIZE
noname-snapshot                            <none>   54df92d1   a minute ago   50 GB
cool-snapshot                              <none>   0dbbc64c   11 hours ago   20 GB
user/Alpine_Linux_3_1                      latest   854eef72   10 days ago    50 GB
Debian_Wheezy_7_8                          latest   cd66fa55   2 months ago   20 GB
Ubuntu_Utopic_14_10                        latest   1a702a4e   4 months ago   20 GB

List running servers

$ scw ps
SERVER ID   IMAGE                       COMMAND   CREATED          STATUS    PORTS   NAME
7313af22    user/Alpine_Linux_3_1                 13 minutes ago   running           noname
32070fa4    Ubuntu_Utopic_14_10                   36 minutes ago   running           labs-8fe556

List all servers

$ scw ps -a
SERVER ID   IMAGE                       COMMAND   CREATED          STATUS    PORTS   NAME
7313af22    user/Alpine_Linux_3_1                 13 minutes ago   running           noname
32070fa4    Ubuntu_Utopic_14_10                   36 minutes ago   running           labs-8fe556
7fc76a15    Ubuntu_Utopic_14_10                   11 hours ago     stopped           backup

Stop a running server

$ scw stop 5cf8058e
5cf8058e

Stop multiple running servers

$ scw stop myserver myotherserver
901d082d-9155-4046-a49d-94355344246b
a0320ec6-141f-4e99-bf33-9e1a9de34171

Terminate a running server

$ scw stop -t myserver
901d082d-9155-4046-a49d-94355344246b

Stop all running servers matching 'mysql'

$ scw stop $(scw ps | grep mysql | awk '{print $1}')
901d082d-9155-4046-a49d-94355344246b
a0320ec6-141f-4e99-bf33-9e1a9de34171
36756e6e-3146-4b89-8248-abb060fc5b61

Create a snapshot of the root volume of a server

$ scw commit 5cf8058e
54df92d1

Delete a stopped server

$ scw rm 5cf8
5cf8082d-9155-4046-a49d-94355344246b

Delete multiple stopped servers

$ scw rm myserver myotherserver
901d082d-9155-4046-a49d-94355344246b
a0320ec6-141f-4e99-bf33-9e1a9de34171

Delete all stopped servers matching 'mysql'

$ scw rm $(scw ps -a | grep mysql | awk '{print $1}')
901d082d-9155-4046-a49d-94355344246b
a0320ec6-141f-4e99-bf33-9e1a9de34171
36756e6e-3146-4b89-8248-abb060fc5b61

Create a snapshot of nbd1

$ scw commit 5cf8058e -v 1
f1851f99

Create an image based on a snapshot

$ scw tag 87f4526b my_image
46689419

Delete an image

$ scw rmi 46689419

Send a 'halt' command via SSH

$ scw kill 5cf8058e
5cf8058e

Inspect a server

$ scw inspect 90074de6
[
  {
    "server": {
    "dynamic_ip_required": true,
    "name": "My server",
    "modification_date": "2015-03-26T09:01:07.691774+00:00",
    "tags": [
      "web",
      "production"
    ],
    "state_detail": "booted",
    "public_ip": {
      "dynamic": true,
      "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
      "address": "212.47.xxx.yyy"
    },
    "state": "running",
  }
]

Show public ip address of a server

$ scw inspect myserver | jq '.[0].public_ip.address'
212.47.xxx.yyy

Changelog

v1.7.0 (2016-01-27)
  • SCALEWAY_VERBOSE_API is now SCW_VERBOSE_API
  • SCALEWAY_TLSVERIFY is now SCW_TLSVERIFY
  • Add a warn message when using ssh exec on host without public ip nor gateway (#171)
  • Display ssh-host-fingerprints when it's available (#194)
  • Support of scw rmi snapshot|volume (#258)
  • Match bootscript/image with the good architecture (#255)
  • Support of region/owner/arch in the cache file (#255)
  • Remove some fatal and Exit
  • Use rfc4716 (openSSH) to generate the fingerprints (#151)
  • Switch from Party to Godep
  • create-image-from-http.sh: Support HTTP proxy (#249)
  • Support of scw run --userdata=... (#202)
  • Refactor of scw _security-groups (#197)
  • Support of scw tag --arch=XXX
  • Support of scw run --timeout=X (#239)
  • Check the "stopped" state for scw run | exec -w(#229)
  • Basic support of Server.CommercialType
  • Support of SCW_GOTTY_URL environment variable

View full commits list

v1.6.0 (2015-11-18)
  • Support of scw create|run --ip-address (#235)
  • Update gotty-client to 1.3.0
  • Support of scw run --show-boot option (#156)
  • Remove go1.[34] support
  • Improve _cs format (#223)
  • Use gotty-client instead of termjs-cli
  • Fix: bad detection of server already started when starting a server (#224) - @arianvp
  • Added _cs (#180)
  • Report quotas in scw info (#130)
  • Added SCALEWAY_VERBOSE_API to make the API more verbose
  • Support of scw _ips command ... (#196)
  • Report permissions in scw info (#191)
  • Report dashboard statistics in scw info (#177)
  • Support of scw _userdata name VAR=@/path/to/file (#183)
  • Support of scw restart -w (#185)
  • Restarting multiple servers in parallel (#185)
  • Added _security-groups (#179)
  • Reflect server location in scw inspect (#204)

View full commits list

v1.5.0 (2015-09-11)
  • Support of scw tag --bootscript="" option (#149)
  • scw info now prints user/organization info from the API (#130)
  • Added helpers to manipulate new user_data API (#150)
  • Renamed create-image-from-s3.sh example and now auto-filling image metadata (title and bootscript) based on the Makefile configuration
  • Support of scw rm -f/--force option (#158)
  • Added scw _userdata local ... option which interacts with the Metadata API without authentication (#166)
  • Initial version of scw _billing (price estimation tool) (#118)
  • Fix: debian-package installation
  • Fix: nil pointer dereference (#155) (@ebfe)
  • Fix: regression on scw create (#142)
  • Stability improvements

View full commits list


v1.4.0 (2015-08-28)
Features
  • -D,--debug mode shows ready to copy-paste curl commands when using the API (must be used with --sensitive to unhide private token)
  • Support of _patch SERVER tags="tag1 tag2=value2 tag3"
  • scw -D login displays a fake password
  • Support --skip-ssh-key scw login (#129)
  • Now scw login ask your login/password, you can also pass token and organization with -o and -t (#59)
  • Support of scw images --filter option (type, organization, name, public) (#134)
  • Support of scw {ps,images} --filter option (images: type,organization,name,public; ps:state,ip,tags,image) (#134)
  • Syncing cache to disk after server creation when running scw run in a non-detached mode
  • Bump to Golang 1.5
  • Support --tmp-ssh-key scw {run,create} option (#99)
  • Support of scw run --rm option (#117)
  • Support of --gateway=login@host (#110)
  • Upload local ssh key to scaleway account on scw login (#100)
  • Add a 'running indicator' for scw run, can be disabled with the new flag --quiet
  • Support of scw -V/--verbose option (#83)
  • Support of scw inspect --browser option
  • Support of scw _flush-cache internal command
  • scw run --gateway ... or SCW_GATEWAY="..." scw run ... now creates a server without public ip address (#74)
  • scw inspect TYPE:xxx TYPE:yyy will only refresh cache for TYPE
  • Sorting cache search by Levenshtein distance (#87)
  • Allow set up api endpoint using the environment variable $scaleway_api_endpoint
  • Use TLS and verify can now be disabled using SCALEWAY_TLSVERIFY=0 env var (#115)
  • Switched to goxc for releases
Fixes
  • Moved ssh command generation code to dedicated package
  • Global refactor to improve Golang library usage, allow chaining of commands and ease the writing of unit tests (#80)
  • scw search TERM was not restricting results based on TERM
  • Bumped dependencies
  • Hiding more sensitive data (#77)
  • Fixed "Run in Docker" usage (#90)
  • Improved -D/--debug outputs

View full commits list


1.3.0 (2015-07-20)
Features
Fixes
  • Issue with scw top's usage
  • Minor code improvements

View full commits list


1.2.1 (2015-07-01)
Features
  • Support of scw run -d option (#69)
Fixes
  • Version vendor source code (Godeps)

View full commits list


1.2.0 (2015-07-29)
Features
  • Support of _patch SERVER security_group and _patch SERVER bootscript
  • Improved resolver behavior when matching multiple results, now displaying more info too help choosing candidates (#47)
  • scw exec SERVER [COMMAND] [ARGS...], COMMAND is now optional
  • Showing the server MOTD when calling scw run <image> [COMMAND] without COMMAND
  • Support of scw attach --no-stdin option
  • Hiding sensitive data by default on scw inspect (#64)
  • Support of scw --sensitive option (#64)
  • Support of scw run --attach option (#65)
  • scw {create,run}, prefixing root-volume with the server hostname (#63)
  • scw {create,run} IMAGE, IMAGE can be a snapshot (#19)
  • Support of scw stop -w, --wait option
  • Identifiers can be prefixed with the type of the resource, i.e: scw inspect my-server == scw inspect server:my-server It may be useful if you have the same name in a server and a volume
  • Improved support of zsh completion
Fixes
  • scw inspect -f was always exiting 0
  • scw images -a does not prefix snapshots, volumes and bootscripts (only images)
  • scw run ... waits for 30 seconds before polling the API
  • scw stop server1 server2 doesn't exit on first stopping failure
  • scw run IMAGE [COMMAND], default COMMAND is now if [ -x /bin/bash ]; then exec /bin/bash; else exec /bin/sh; fi
  • scw run|create SNAPSHOT, raised an error if snapshot does not have base volume
  • scw stop -t removes server entry from cache

View full commits list


1.1.0 (2015-06-12)
Features
  • Support of scw cp from {server-path,local-path,stdin} to {server-path,local-path,stdout} (#56)
  • Support of scw logout command
  • Support of _patch experimental command (#57)
  • Support of _completion command (shell completion helper) (#45)
  • Returning more resource fields on scw inspect (#50)
  • Show public ip address in PORTS field in scw ps (#54)
  • Support of inspect --format option
  • Support of exec --timeout option (#31)
  • Support of volumes in images -a and inspect (#49)
  • Tuned ~/.scwrc unix permissions + added a warning if the file is too open (#48)
Fixes
  • The project is now go get-able and splitted into packages
  • Added timeout when polling SSH TCP port for scw start -w and scw exec -w (#46)
  • Improved resolver behavior for exact matching (#53, #55)
  • Verbose error message when scw exec fails (#42)
  • Fixed scw login parameters parsing
  • Speed and stability improvements

View full commits list


1.0.0 (2015-06-05)

First Golang version. For previous Node.js versions, see scaleway-cli-node.

Features
  • Support of attach command
  • Support of commit command
    • Support of commit -v, --volume option
  • Support of cp command
  • Support of create command
    • Support of create --bootscript option
    • Support of create -e, --env option
    • Support of create --name option
    • Support of create -v, --volume option
  • Support of events command
  • Support of exec command
    • Support of exec -w, --wait option
  • Support of help command
  • Support of history command
    • Support of history --no-trunc option
    • Support of history -q, --quiet option
  • Support of images command
    • Support of images -a, --all option
    • Support of images --no-trunc option
    • Support of images -q, --quiet option
  • Support of info command
  • Support of inspect command
  • Support of kill command
  • Support of login command
  • Support of logs command
  • Support of port command
  • Support of ps command
    • Support of ps -a, --all option
    • Support of ps -n option
    • Support of ps -l, --latest option
    • Support of ps --no-trunc option
    • Support of ps -q, --quiet option
  • Support of rename command
  • Support of restart command
  • Support of rm command
  • Support of rmi command
  • Support of run command
    • Support of run --bootscript option
    • Support of run -e, --env option
    • Support of run --name option
    • Support of run -v, --volume option
  • Support of search command
    • Support of search --no-trunc option
  • Support of start command
    • Support of start -w, --wait option
    • Support of start -T, --timeout option
  • Support of stop command
    • Support of stop -t, --terminate option
  • Support of tag command
  • Support of top command
  • Support of version command
  • Support of wait command

gopkg.in/scaleway/scaleway-cli.v1


POC (2015-03-20)

First Node.js version


Development

Feel free to contribute 😃🍻

Hack
  1. Install go
  2. Ensure you have $GOPATH and $PATH well configured, something like:
  • export GOPATH=$HOME/go
  • export PATH=$PATH:$GOPATH/bin
  1. Fetch the project: go get -d github.com/scaleway/scaleway-cli/...
  2. Go to scaleway-cli directory: cd $GOPATH/src/github.com/scaleway/scaleway-cli
  3. Hack: emacs
  4. Build: make
  5. Run: ./scw

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
scw
pkg
api
Package api contains client and functions to interact with Scaleway API
Package api contains client and functions to interact with Scaleway API
cli
Package cli contains CLI commands
Package cli contains CLI commands
commands
Package commands contains the workflows behind each commands of the CLI (run, attach, start, exec, commit, ...)
Package commands contains the workflows behind each commands of the CLI (run, attach, start, exec, commit, ...)
config
Package config contains helpers to manage '~/.scwrc'
Package config contains helpers to manage '~/.scwrc'
utils
Package utils contains logquiet Package utils contains helpers
Package utils contains logquiet Package utils contains helpers

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL