Commit Graph

304 Commits

Author SHA1 Message Date
Ulysses Souza 96bc1ca6f1 Add inspect command
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-06-15 15:08:04 +02:00
Guillaume Tardif 0de2522079 Renamed Moby backend to “local” backend. This will leave “moby” available for default type contexts 2020-06-15 12:20:03 +02:00
Guillaume Tardif 113350a09d Context create aci is now a subcommand, as Moby and example. Root `docker context create` also allows backward compatibility to create docker contexts as before 2020-06-15 12:19:06 +02:00
Guillaume Tardif d0b2bfbf52 Fix `docker context ls` that was not displaying legacy context endpoints 2020-06-15 12:10:54 +02:00
Guillaume Tardif 336df897c1
Merge pull request #207 from docker/version_cli
version command adding azure integration beta version in textual output
2020-06-15 12:02:33 +02:00
Guillaume Tardif afa205be95 Server version : will be 1.0.0-beta1, -beta2, … 2020-06-15 11:51:03 +02:00
Guillaume Tardif 376a4b671c version command adding azure integration beta version in textual output 2020-06-13 10:47:05 +02:00
Guillaume Tardif f8ea0934f0 Align login success message with old cli (& with “canceled” message) 2020-06-12 14:50:35 +02:00
Guillaume Tardif 3c2eb067bc Fix typo in DOCKER ENPOINT 2020-06-12 14:50:35 +02:00
Guillaume Tardif e7682682fb Store context type in metadata to make retrocompatibility with previous contexts easier (potentially switching back and forth) 2020-06-10 18:17:48 +02:00
Djordje Lukic 8400795caf Add the store to the gRPC context
The contexts service needs it
2020-06-09 12:11:59 +02:00
Djordje Lukic bb69de1db3 Add context endpoint to set the current context 2020-06-08 16:01:43 +02:00
Djordje Lukic 22d4d250a9 Move the config into own package and outside of cli 2020-06-08 16:01:36 +02:00
Djordje Lukic 67fb49c98c
Merge pull request #179 from rumpl/feat-stream
Feat stream
2020-06-08 06:52:56 -07:00
Guillaume Tardif f1a5f2d6cf Backend is responsible for generating containers IDs and truncate them if wanted/supported for docker ps 2020-06-08 12:37:33 +02:00
Djordje Lukic c34d016fdb Unify protos with client interfaces
* change function names in containers.proto
* add streams proto
2020-06-08 09:43:19 +02:00
Guillaume Tardif b91eab0544
Merge pull request #170 from docker/context_create_check
Do not allow context creation for unknown types
2020-06-04 16:51:11 +02:00
Guillaume Tardif 4a4b62ded2 Do not allow context creation for unknown types 2020-06-04 16:44:08 +02:00
Guillaume Tardif 427527d197
Merge pull request #146 from docker/chore-refactor-azure-login
Refactor Azure login local server
2020-06-04 10:39:30 +02:00
Christopher Crone e5335adedd Azure: Refactor login errors
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-06-04 10:20:39 +02:00
Christopher Crone 35789ace12 Azure: Refactor creation of login server
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-06-03 17:10:54 +02:00
Guillaume Tardif 5675763856 Interactive context create, adding method CreateContextData to CloudService interface, so Cloud Backends can provide a custom context creation method. 2020-06-02 16:04:08 +02:00
Guillaume Tardif e2b9f5bc57 Move login to root command, delegate to classic login when only one arg and not dot in it 2020-06-01 22:55:46 +02:00
Guillaume Tardif f1fb80ecc5
Merge pull request #161 from docker/context_inspect
Add docker context inspect command relying on classic docker
2020-05-29 15:51:10 +02:00
Guillaume Tardif 528d47ce08 Add docker context inspect command relying on classic docker 2020-05-29 12:02:14 +02:00
Guillaume Tardif 01aaec2dbe Fix Azure login : allow getting a backend when no corresponding context already exists with an explicit call from the login command. Will be usefull next for context creation with azure interactive things 2020-05-29 11:35:35 +02:00
Guillaume Tardif d2648da2d9 Fix shell out to docker-classic when invoking 2020-05-27 16:12:40 +02:00
Djordje Lukic cb14c05e74 Move the context server into own package
It had notthing to do in the cli package
2020-05-26 10:31:14 +02:00
Djordje Lukic b8658b3f54 Rename cli protos to contexts 2020-05-26 10:20:13 +02:00
Djordje Lukic 129e675932 Put all protos inside the `protos` package 2020-05-25 15:04:28 +02:00
Djordje Lukic 11339761ca Change the way a context is stored
Initially we stored the context data in the `Metadata` of the context
but in hindsight this data would be better of in the `Endpoints` because
that's what it is used for.

Before:
```json
{
  "Name": "aci",
  "Metadata": {
    "Type": "aci",
    "Data": {
      "key": "value"
    }
  },
  "Endpoints": {
      "docker": {}
  }
}
```

After:
```json
{
  "Name": "aci",
  "Type": "aci",
  "Metadata": {},
  "Endpoints": {
      "aci": {
          "key": "value"
      },
      "docker": {}
  }
}
```

With this change the contexts that we create are more in line with the contexts the docker cli creates.

It also makes the code less complicated since we don't need to marsal twice any more. The API is nicer too:

```go
// Get a context:
c, err := store.Get(contextName)

// Get the stored endpoint:
var aciContext store.AciContext
if err := contextStore.GetEndpoint(currentContext, &aciContext); err != nil {
	return nil, err
}
```
2020-05-22 16:32:43 +02:00
Djordje Lukic de33f183df
Merge pull request #139 from rumpl/feat-log-stream
Implement gRPC logging
2020-05-22 06:23:47 -07:00
Chris Crone 0917acfb01
Merge pull request #142 from chris-crone/fix-141
Set random container name if not set
2020-05-22 11:31:16 +02:00
Djordje Lukic 36c01f511b Refactor the interceptors
Avoid having a function that takes in two contexts as parameters
2020-05-22 10:16:04 +02:00
Djordje Lukic 8495500aa2 Add a CliSuite for cli unit tests
Makes writing unit tests for commands quite easier
2020-05-22 10:13:56 +02:00
Christopher Crone dd66646c06 Unit test run help
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-21 20:03:06 +02:00
Christopher Crone 0efa67f7d2 Set random container name if not set
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-21 19:28:42 +02:00
Djordje Lukic fe36c49246 Use alpine as base image
Installing docker on buster is a pain, use alpine to install it
2020-05-20 18:39:10 +02:00
Djordje Lukic 95e07a2134 Add default context to the context ls output 2020-05-20 18:39:10 +02:00
Christopher Crone ebe3fbc180 Use config dir for serving API
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-20 15:56:07 +02:00
Christopher Crone 058e6203a7 Store config dir in CLI context
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-20 15:55:05 +02:00
Ulysses Souza d2fece3311 Fix linter problems
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-20 10:16:36 +02:00
Ulysses Souza b25a6b4bd6 Add volumes to run command
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-20 10:06:12 +02:00
Djordje Lukic 0bd18986dd Add "*" for the current context 2020-05-18 16:42:06 +02:00
Djordje Lukic a0dda2d094 Add tests for ps --all 2020-05-18 15:31:59 +02:00
Djordje Lukic ce7cbd4463 Add `Stop` command on the gRPC side. 2020-05-18 15:31:59 +02:00
Guillaume Tardif 2e8251fb2d
Merge pull request #100 from gtardif/windows_grpc
Allow server to start on tcp port or if windows, named pipe rather than unix socket
2020-05-18 15:18:51 +02:00
Christopher Crone 6d2f085717 Do not pass global flags to context show
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-18 14:58:03 +02:00
Djordje Lukic 7cbbab1739
Merge pull request #109 from chris-crone/context-show
Add context show command
2020-05-18 05:50:20 -07:00
Christopher Crone 10d826eb10 Add context show command
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-18 14:48:02 +02:00
guillaume.tardif ecfffc6feb Allow server to start on tcp port or if windows, named pipe rather than unix socket. could not yet make it work on named pipe from js client (connects but error) 2020-05-18 14:14:52 +02:00
Djordje Lukic fcb4b606e2 Add labels to containers on run 2020-05-18 13:54:03 +02:00
Djordje Lukic 6fd290e2b1 Add ports convet tests 2020-05-18 12:21:27 +02:00
Djordje Lukic d8a38afecc Implement printing published ports 2020-05-16 10:41:35 +02:00
Djordje Lukic 23d2eacf84
Merge pull request #97 from docker/feat-port-parsing
Port parsing on the comand line
2020-05-15 17:49:18 +02:00
Djordje Lukic 52f7902d40 Port parsing on the comand line 2020-05-15 15:04:09 +02:00
Guillaume Tardif 7edc6659a2 Add unit tests for login process 2020-05-15 10:28:31 +02:00
Guillaume Tardif 69f10fe80c Extract interface / types to allow unit tests / mock 2020-05-15 10:15:56 +02:00
Guillaume Tardif 1e19d977e0 Initial functional login command : added Cloud API with generic Login() 2020-05-15 10:04:22 +02:00
Guillaume Tardif eea84cd487 move context cmd to its own folder ; initial `docker context login` command 2020-05-15 10:04:22 +02:00
Djordje Lukic 15fb6f63c3 Add licenses 2020-05-15 09:14:52 +02:00
Djordje Lukic 0765b08309 Put each compose command in own file 2020-05-15 09:14:51 +02:00
Djordje Lukic 962efef48c Commands run and rm only call a func 2020-05-15 09:14:51 +02:00
Djordje Lukic 42c72c365c Split context comands into own files 2020-05-15 09:14:51 +02:00
Djordje Lukic 6b435cf802
Merge pull request #86 from rumpl/feat-multierror
Add multierror
2020-05-14 21:14:32 +02:00
Christopher Crone 11b4bd19f5 Refactor global CLI options
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-14 18:29:09 +02:00
Christopher Crone 8720a62c37 Add context use command
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-14 17:10:24 +02:00
Christopher Crone c92a9b12d9 Add help to context commands
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-14 17:10:24 +02:00
Djordje Lukic 6486f199e2 Add multierror
docker/api/multierror wraps go-multierror from hashicorp with
our default error formating
2020-05-13 18:37:41 +02:00
Djordje Lukic 2d14bfeb38
Merge pull request #85 from ulyssessouza/add-run-output
WIP - Missing e2e - Print container name when successful
2020-05-13 14:30:58 +02:00
Ulysses Souza 507caabf49 Add id to the error output
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-13 12:37:18 +02:00
Ulysses Souza b98f45eb28 Enable "run->rm" cycle on e2e-aci
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-13 10:44:04 +02:00
Ulysses Souza 40fa78ac5d Add rm command
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-13 10:44:04 +02:00
Ulysses Souza 80bc3f3620 Print container name when successful
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-13 10:27:39 +02:00
Christopher Crone 1d3ffc0254 Add context rm command
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-12 12:24:43 +02:00
Guillaume Tardif 9a2ec752b5 Add ACI compose basic e2e test 2020-05-06 15:56:47 +02:00
Djordje Lukic 688e7e5deb Implement quiet flag for ps command 2020-05-06 12:18:53 +02:00
Christopher Crone 07569bffa9 Use friendly random name generator
Signed-off-by: Christopher Crone <christopher.crone@docker.com>
2020-05-05 18:14:43 +02:00
Ulysses Souza e075df6f8f Fix linter issues
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-05 16:27:22 +02:00
Ulysses Souza ba455916c6 Refactor on services
This refactors the interfaces and implementations of
services

Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-05 15:37:12 +02:00
Ulysses Souza 03e418cbbb Add compose up and down
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-05 14:03:14 +02:00
Djordje Lukic 4e9a4185af Add `make lint` and run it on CI 2020-05-05 10:50:30 +02:00
Djordje Lukic 24c035e822 Add comments on exported items, remove example command
Also add `make lint` to run the linter
2020-05-05 10:27:44 +02:00
Djordje Lukic e964a3af2e Implement `docker logs --tal <N>` 2020-05-04 16:38:02 +02:00
Djordje Lukic 1c7270b697 Implement logs 2020-05-04 15:52:31 +02:00
Djordje Lukic afca3e31b5 Implement exec command 2020-05-04 12:43:32 +02:00
Djordje Lukic 28808f3f6d Check that port definition contains source and dest 2020-05-04 11:45:34 +02:00
Djordje Lukic eee9bf449f Move run to own package 2020-05-04 11:35:11 +02:00
Djordje Lukic a1a5e1794b Add ports publishing to run 2020-05-04 11:35:11 +02:00
Djordje Lukic 3d363643ad Implement simple ACI run 2020-05-04 11:35:11 +02:00
Ulysses Souza 33c45a0a62 Add "goimports"
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-04 11:30:21 +02:00
Ulysses Souza 4f3c2c1996 Fix protos and its generation
Signed-off-by: Ulysses Souza <ulyssessouza@gmail.com>
2020-05-04 11:30:21 +02:00
Djordje Lukic 885fd799e1 Get the real status of containers 2020-05-03 14:54:15 +02:00
Djordje Lukic 6ecb5550f7 Use a request for the context list rpc in cli.proto 2020-04-30 12:42:11 +02:00
Djordje Lukic 0af5afe440 Move the proxy in the server package 2020-04-30 12:20:04 +02:00
Djordje Lukic 8571cf5a04 Create a new client on each request
`docker serve` doesn't need a context any more, the server takes the
current context from the request metadata and creates a new client
2020-04-30 12:07:26 +02:00
Djordje Lukic 9ea91791b4 Change the current context of the client on each request
* the interceptor takes the current context from the metadat
* each handler needs to call `client.SetContext()` before using the
sevices
2020-04-30 12:07:26 +02:00
Djordje Lukic 40a3a20f78 Add serve command that serves the cli and the containers services 2020-04-30 12:07:26 +02:00
Djordje Lukic b2606b91f2 Remove useless client grpc stuff 2020-04-30 11:06:04 +02:00
Djordje Lukic f4bde8cb89 Multiple backend for the cli
* implement a little azure backend
* implement an example backend
* use the right backend from the context
2020-04-30 11:01:04 +02:00
Djordje Lukic 551eb2326f ACI context creation
And remove gRPC stuff from the client for now
2020-04-29 19:08:58 +02:00
Djordje Lukic e6597d6139 Don't cd into a directory before building
We pass the directory to build to the `go build` command
2020-04-27 15:42:59 +02:00
Djordje Lukic e2c7370a82 Implement context list 2020-04-26 22:07:50 +02:00
Djordje Lukic 3bb4fe163c Add `docker context create` command
This creates a context with a name and a type
2020-04-26 19:42:20 +02:00