[
https://issues.apache.org/jira/browse/CASSANDRA-18035?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17649717#comment-17649717
]
Stefan Miklosovic edited comment on CASSANDRA-18035 at 12/20/22 12:18 PM:
--------------------------------------------------------------------------
I found some time to test this already, couldnt resist! I put some comments to
PR as well.
All looks good, the only thing which might be improved is this, check the
output. What I would expect that when docker-start target is finished, I can
truly execute nodetool's commands against that. I am not sure how the start of
the container is evaluated but I would do it in such a way that unless nodetool
status does not return 0 exit code, it will be still "starting".
{code:java}
✔ ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:12 $ ant docker-start
Buildfile: /home/fermat/dev/cassandra/cassandra-instaclustr/cassandra/build.xml
docker-start:
[exec] 9c68a50bcc260c1c1ce8af5cfb9ce9f2e634cadaeda50688c52b9206ba8ab4b3
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] cassandra-test container started with id
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0
[exec]
[exec] Use 'docker-exec -it cassandra-test <CMD>' to execute commands on
this container.
[exec] ie. docker exec -it cassandra-test nodetool status
[exec] ie. docker exec -it cassandra-test cqlsh
BUILD SUCCESSFUL
Total time: 31 seconds
✔ ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:12 $ docker exec -it cassandra-test nodetool status
Error: No nodes present in the cluster. Has this node finished starting up?
✘-1 ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:12 $ docker exec -it cassandra-test nodetool status
Error: No nodes present in the cluster. Has this node finished starting up?
✘-1 ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:13 $ docker exec -it cassandra-test nodetool status
Error: No nodes present in the cluster. Has this node finished starting up?
✘-1 ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:13 $ docker exec -it cassandra-test nodetool status
Error: No nodes present in the cluster. Has this node finished starting up?
✘-1 ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:13 $ docker exec -it cassandra-test nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID
Rack
UN 172.20.0.2 130.46 KiB 16 100.0%
e966c776-351b-422e-aa05-4c21091eabd2 rack1
{code}
was (Author: smiklosovic):
I found some time to test this already, couldnt resist!
All looks good, the only thing which might be improved is this, check the
output. What I would expect that when docker-start target is finished, I can
truly execute nodetool's commands against that. I am not sure how the start of
the container is evaluated but I would do it in such a way that unless nodetool
status does not return 0 exit code, it will be still "starting".
{code}
✔ ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:12 $ ant docker-start
Buildfile: /home/fermat/dev/cassandra/cassandra-instaclustr/cassandra/build.xml
docker-start:
[exec] 9c68a50bcc260c1c1ce8af5cfb9ce9f2e634cadaeda50688c52b9206ba8ab4b3
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] Waiting for cassandra-test container
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0 to start.
[exec] cassandra-test container started with id
b434586cdf88600cbc4d231fb6baf4131aa96acb536969b9b7c5f2bb7938b8e0
[exec]
[exec] Use 'docker-exec -it cassandra-test <CMD>' to execute commands on
this container.
[exec] ie. docker exec -it cassandra-test nodetool status
[exec] ie. docker exec -it cassandra-test cqlsh
BUILD SUCCESSFUL
Total time: 31 seconds
✔ ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:12 $ docker exec -it cassandra-test nodetool status
Error: No nodes present in the cluster. Has this node finished starting up?
✘-1 ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:12 $ docker exec -it cassandra-test nodetool status
Error: No nodes present in the cluster. Has this node finished starting up?
✘-1 ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:13 $ docker exec -it cassandra-test nodetool status
Error: No nodes present in the cluster. Has this node finished starting up?
✘-1 ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:13 $ docker exec -it cassandra-test nodetool status
Error: No nodes present in the cluster. Has this node finished starting up?
✘-1 ~/dev/cassandra/cassandra-instaclustr/cassandra [CASSANDRA-18035 L|● 1]
13:13 $ docker exec -it cassandra-test nodetool status
Datacenter: datacenter1
=======================
Status=Up/Down
|/ State=Normal/Leaving/Joining/Moving
-- Address Load Tokens Owns (effective) Host ID
Rack
UN 172.20.0.2 130.46 KiB 16 100.0%
e966c776-351b-422e-aa05-4c21091eabd2 rack1
{code}
> Add quick start development guide and docker ant targets
> --------------------------------------------------------
>
> Key: CASSANDRA-18035
> URL: https://issues.apache.org/jira/browse/CASSANDRA-18035
> Project: Cassandra
> Issue Type: Task
> Components: Documentation
> Reporter: Paulo Motta
> Assignee: Paulo Motta
> Priority: Normal
> Time Spent: 1h 10m
> Remaining Estimate: 0h
>
> I propose adding a new {{QUICKSTART.md}} guide that provides instructions to
> beginner contributors on how to:
> a) Setup a development environment and IDE from scratch on WSL/Ubuntu/Debian
> environments
> b) Run a simple unit test from the IDE
> c) Create a simple patch that prints "Hello World" during Cassandra
> initialization
> d) Test the patch on a local docker instance
> A new {{docker/}} directory is added along with the guide with the following
> utilities:
> a) Dockerfile: unoptimized vanilla docker image manifest suitable only for
> local dev testing.
> b) build.sh: build a cassandra artifact and cassandra-test image.
> c) start.sh: start local cassandra-test container.
> d) stop.sh: stop local-cassandra test container.
> A couple of follow-up improvements that come to mind:
> - Add ant targets to build/start/stop cassandra-test container.
> - Add OSX instructions.
> - More IDE setup instructions (ie. Eclipse/VScode).
> - A more involved Hello World example, perhaps creating a dummy VirtualTable
> with unit/dtests.
> - Update Dockerfile to point to build/ instead of creating an artifact.
> A DEV mailing list message was sent to gather community feedback on this
> proposal: https://lists.apache.org/thread/gmb0q5yb2bzbs0cjw7mlcz1vwk2l23g2
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]