Skip to content

Commit

Permalink
Adds tests for HTTP device sample. (#954)
Browse files Browse the repository at this point in the history
* Adds tests for HTTP device sample.

* Small change to instructions for README.
  • Loading branch information
gguuss authored Dec 19, 2017
1 parent 4cf0e2b commit f0d5a95
Show file tree
Hide file tree
Showing 12 changed files with 297 additions and 158 deletions.
75 changes: 0 additions & 75 deletions iot/api-client/http_example/README.md

This file was deleted.

62 changes: 0 additions & 62 deletions iot/api-client/http_example/pom.xml

This file was deleted.

77 changes: 77 additions & 0 deletions iot/api-client/manager/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -134,3 +134,80 @@ Patch a device with RSA:
-project_id=blue-jet-123 -pubsub_topic=hello-java \
-registry_name=hello-java -rsa_certificate_file ../rsa_cert.pem \
-device_id="java-device-0" -command=patch-device-rsa


# Cloud IoT Core Java HTTP example

This sample app publishes data to Cloud Pub/Sub using the HTTP bridge provided
as part of Google Cloud IoT Core.

Note that before you can run the sample, you must configure a Google Cloud
PubSub topic for Cloud IoT Core and register a device as described in the
[parent README](../README.md).

## Setup

Run the following command to install the dependencies using Maven:

mvn clean compile

## Running the sample

The following command summarizes the sample usage:

```
mvn exec:java \
-Dexec.mainClass="com.example.cloud.iot.examples.HttpExample" \
-Dexec.args="-project_id=<your-iot-project> \
-registry_id=<your-registry-id> \
-device_id=<device-id> \
-private_key_file=<path-to-keyfile> \
-message_type=<event|state> \
-algorithm=<RS256|ES256>"
```

For example, if your project ID is `blue-jet-123`, your service account
credentials are stored in your home folder in creds.json and you have generated
your credentials using the [`generate_keys.sh`](../generate_keys.sh) script
provided in the parent folder, you can run the sample as:

```
mvn exec:java \
-Dexec.mainClass="com.example.cloud.iot.examples.HttpExample" \
-Dexec.args="-project_id=blue-jet-123 \
-registry_id=my-registry \
-device_id=my-java-device \
-private_key_file=../rsa_private_pkcs8 \
-algorithm=RS256"
```

To publish state messages, run the sample as follows:

```
mvn exec:java \
-Dexec.mainClass="com.example.cloud.iot.examples.HttpExample" \
-Dexec.args="-project_id=blue-jet-123 \
-registry_id=my-registry \
-device_id=my-java-device \
-private_key_file=../rsa_private_pkcs8 \
-message_type=state \
-algorithm=RS256"
```


## Reading the messages written by the sample client

1. Create a subscription to your topic.

```
gcloud beta pubsub subscriptions create \
projects/your-project-id/subscriptions/my-subscription \
--topic device-events
```

2. Read messages published to the topic

```
gcloud beta pubsub subscriptions pull --auto-ack \
projects/my-iot-project/subscriptions/my-subscription
```
15 changes: 15 additions & 0 deletions iot/api-client/manager/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,21 @@
</properties>

<dependencies>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
<dependency>
<groupId>io.jsonwebtoken</groupId>
<artifactId>jjwt</artifactId>
<version>0.7.0</version>
</dependency>
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>2.1</version>
</dependency>
<dependency>
<groupId>com.google.apis</groupId>
<artifactId>google-api-services-cloudiot</artifactId>
Expand Down
5 changes: 5 additions & 0 deletions iot/api-client/manager/resources/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Test public certificate files

The certificates in this folder are only provided for testing and should not be
used for registering your devices. Instructions and a shell script are in the
parent folder for getting started.
4 changes: 2 additions & 2 deletions iot/api-client/manager/resources/ec_public.pem
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAECfwA4OrF9Pcr1W5mXUa+Dx8hpPYd
+pQ5153zNtSSaeEnA/4hrY2AKxUHmKIPJXYRkZrxTxsFElkkpLcoi/CUNQ==
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEJ/zj75PhGtoayWD9pm/IbXRXi9ai
RQDMFQ87sOOQIWDTxnsHFplqb8cDCtO1h5QsutcAVTPZL0CZiqIg5j7b1w==
-----END PUBLIC KEY-----
32 changes: 16 additions & 16 deletions iot/api-client/manager/resources/rsa_cert.pem
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
-----BEGIN CERTIFICATE-----
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
-----END CERTIFICATE-----
28 changes: 28 additions & 0 deletions iot/api-client/manager/resources/rsa_private.pem
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
-----BEGIN PRIVATE KEY-----
MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDdWhkFaxeyeXKe
2Sa2pfuzIGH5jmiuDq+bETmVRSMRuNL3o1hyxMAH+Pch1h8yXacWLqrwg4gSnLfo
SRIVCbTyjB8miabCZ0IhLHG4Bs+3Yz2Bf4sNiNQU3Z68mkUBMPQxg8tlYJR/xK9w
nQv14jF0lGqqBO3I9Pu6AHN4PpBAnos7PIM8B2mLDFkltvoZx0/Sa9yImk01RlO0
QGhkNS60AXdD8PQZaE94b5L5A1v7PqVUmyqQXQHKO4BaniNOc9zMXg7EklYWSpOR
VK9ExYV7IAo/3G8p41cHim3QuKbxAAEEt0Cd7zm1v9W0PQLSDUcCaOd7DWO/HwGF
F29z82NZAgMBAAECggEBAKMHcfhQqRJ1apteWqoZ1ClZR2/zmFviSypN5HhxhGPQ
Gen0b/ePu9PjZbmRKEcDPUYUNyiP58+1h6pY7y15icE+vM64gY8bWFRwlI0yzxhF
yo4vby4XwgRgOkK06O/4q1IwvMS8/oKgTYsG0EFYSI6RpYH1wWDKNwEGxgUhJ0O/
YxTlFpEObuBg+aILeEemU6+QoULwNgfCqVUEkbSZFy5Z9D66PdRoiLum6FmwICBd
rChr06ACqCxuiFhMb1VoHPinIvJNZeLClUGShi9R/hgUZfZxddpNKDtEjZGFWgNw
dVpDFbpVLsqiV+B2TlfX10u9RnWoVi5r8Iv3gMdpqqUCgYEA82c9rm/fEi7fp03U
Y5C1z1YX/7UP+bbsOEZi6BsnJOSptbnBt0g4Ph0TRIbWsAAjd9psU3rSK73U8kso
6xCRe05RzhXWbnl80TUGQpLFcAlZd7R6eXe9kESGu+sheIXGcRJnzM6CFykerkhV
nGp29t/sQBVggqBm7/o8oJg1cLcCgYEA6M608xHaMr1Xw+hEdYqAnxJ4nLwG5Gja
T5NyeGyuJnPP9ullza/n2mOm6ujznzD3JGLqhixR4TI3h2vQ7oMDtkbytRFmishW
rrW59OM3hohvdd0GMfI4boNCyEBMc1s1855nqHprpje+l3S9HuPUHYI4KXlQzz4o
fqCoWHSonG8CgYEAjYhO2Yu7jnsrGcGr6mlPDszlD49dRrsTCHYFNSn0zQMZm83z
0ntwGM4XUhWF6Llr5llf+/rDEyRDGtCRbn4n2idkcg1Irtx9s7i9dyCZJdiJ6Y1M
Wi1CUQ1HuyWyRL6k8ULekLzT8Fu8t2LgRR+zJUJ3wZusjshuksRTVJ6tFGkCgYBl
VxWNeYfx7ln1/XVPdSroE7JNB8w4QSxG13hM04I7Ws58PL0D/D6A4kAWobDq6vWp
8SUFouVBkgp5+ITKTl2fSuL7zsdEQlD5XEHGR+IzvdBHDh9UPowyDxFS+ipNTLb/
hUS6IhAaGsnsQ/TPLX14Guc3pod2rygRdv3RA3ciIQKBgEhWmdwDjB3c8/7c/vhV
gU+OYziQPHJb7IYrvCxAMym+lM6SVAR62vDSkGBwZdgnr4X1LwO9/qbV+eOR07hv
KhDQ9AX10y1t7FHybZMatvr0l283/BVanXonq7ihzrWjDnZU97N05gIj6Ew4EHy7
EGgOLKa63rYJQK4WLwP4mMEF
-----END PRIVATE KEY-----
Binary file not shown.
Loading

0 comments on commit f0d5a95

Please sign in to comment.