mirror of
https://github.com/outbackdingo/xmidt.git
synced 2026-08-25 14:53:55 +00:00
Merge pull request #5 from selvamKrish/xmidt_crud
Rename folder name and incorporate review comments
This commit is contained in:
@@ -1,42 +0,0 @@
|
|||||||
## CRUD
|
|
||||||
Utility to perform parodus CRUD operations for a particular device mac.
|
|
||||||
|
|
||||||
To build with just go:
|
|
||||||
```
|
|
||||||
export GOPATH=`pwd`
|
|
||||||
cd src
|
|
||||||
glide install
|
|
||||||
cd CRUD
|
|
||||||
go build
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
## Authentication
|
|
||||||
export WEBPA_SAT=<SAT_Token>
|
|
||||||
|
|
||||||
### Example :
|
|
||||||
|
|
||||||
### Create
|
|
||||||
```
|
|
||||||
./CRUD -messageType=5 -source="tag-update" -dest="mac:14cfe21421xx/parodus/tag/test1" -transId="bd4ad2d1-5c9c-486f-8e25-52c242b38" -contentType="application/json" -payload='{ "expires" : 12345}'
|
|
||||||
```
|
|
||||||
|
|
||||||
### Retrieve
|
|
||||||
```
|
|
||||||
./CRUD -messageType=6 -source="tag-update" -dest="mac:14cfe21421xx/parodus/tag/test1" -transId="bd4ad2d1-5c9c-486f-8e25-52c242b38" -contentType="application/json"
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### Update
|
|
||||||
```
|
|
||||||
./CRUD -messageType=7 -source="tag-update" -dest="mac:14cfe21421xx/parodus/tag/test1" -transId="bd4ad2d1-5c9c-486f-8e25-52c242b38" -contentType="application/json" -payload='{ "expires" : 12345}'
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
### Delete
|
|
||||||
```
|
|
||||||
./CRUD -messageType=8 -source="tag-update" -dest="mac:14cfe21421xx/parodus/tag/test1" -transId="bd4ad2d1-5c9c-486f-8e25-52c242b38" -contentType="application/json"
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
@@ -0,0 +1,42 @@
|
|||||||
|
## CRUD
|
||||||
|
Utility to perform parodus CRUD operations for a particular device mac.
|
||||||
|
|
||||||
|
To build with just go:
|
||||||
|
```
|
||||||
|
export GOPATH=`pwd`
|
||||||
|
cd src
|
||||||
|
glide install
|
||||||
|
cd xmidt
|
||||||
|
go build
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
## Authentication
|
||||||
|
export WEBPA_SAT=<SAT_Token>
|
||||||
|
|
||||||
|
### Example :
|
||||||
|
|
||||||
|
### Create
|
||||||
|
```
|
||||||
|
./xmidt -messageType=5 -source="tag-update" -dest="mac:14cfe21421xx/parodus/tag/test1" -transId="bd4ad2d1-5c9c-486f-8e25-52c242b38" -contentType="application/json" -payload='{ "expires" : 12345}'
|
||||||
|
```
|
||||||
|
|
||||||
|
### Retrieve
|
||||||
|
```
|
||||||
|
./xmidt -messageType=6 -source="tag-update" -dest="mac:14cfe21421xx/parodus/tag/test1" -transId="bd4ad2d1-5c9c-486f-8e25-52c242b38" -contentType="application/json"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
### Update
|
||||||
|
```
|
||||||
|
./xmidt -messageType=7 -source="tag-update" -dest="mac:14cfe21421xx/parodus/tag/test1" -transId="bd4ad2d1-5c9c-486f-8e25-52c242b38" -contentType="application/json" -payload='{ "expires" : 12345}'
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
|
### Delete
|
||||||
|
```
|
||||||
|
./xmidt -messageType=8 -source="tag-update" -dest="mac:14cfe21421xx/parodus/tag/test1" -transId="bd4ad2d1-5c9c-486f-8e25-52c242b38" -contentType="application/json"
|
||||||
|
|
||||||
|
```
|
||||||
|
|
||||||
@@ -8,41 +8,45 @@ import (
|
|||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net/http"
|
"net/http"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/Comcast/webpa-common/wrp"
|
"github.com/Comcast/webpa-common/wrp"
|
||||||
)
|
)
|
||||||
|
|
||||||
const (
|
const (
|
||||||
AuthHeaderName = "Authorization"
|
AuthHeaderName = "Authorization"
|
||||||
TypeHeaderName = "X-Xmidt-Message-Type"
|
TypeHeaderName = "X-Xmidt-Message-Type"
|
||||||
ContentHeaderName = "X-Xmidt-Content-Type"
|
ContentHeaderName = "X-Xmidt-Content-Type"
|
||||||
TransIdHeaderName = "X-Xmidt-Transaction-Uuid"
|
TransIdHeaderName = "X-Xmidt-Transaction-Uuid"
|
||||||
SourceHeaderName = "X-Xmidt-Source"
|
SourceHeaderName = "X-Xmidt-Source"
|
||||||
DestHeaderName = "X-Webpa-Device-Name"
|
DestHeaderName = "X-Webpa-Device-Name"
|
||||||
PathURL = "https://api.xmidt.comcast.net/api/v2/device"
|
PathURL = "https://api.xmidt.comcast.net/api/v2/device"
|
||||||
|
ContentType = "Content-Type"
|
||||||
|
XScytaleBuild = "X-Scytale-Build"
|
||||||
|
//XmidtStatus = "X-Xmidt-Status"
|
||||||
|
XScytaleFlavor = "X-Scytale-Flavor"
|
||||||
|
XScytaleRegion = "X-Scytale-Region"
|
||||||
|
XScytaleServer = "X-Scytale-Server"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
var auth string
|
var auth string
|
||||||
|
|
||||||
func makeRequest(requestType, messageType, source, transId, dest, contentType, payload string, client *http.Client) {
|
func makeRequest(requestType, messageType, source, transId, dest, contentType, payload string, client *http.Client) {
|
||||||
|
|
||||||
|
|
||||||
headers := make(map[string]string)
|
headers := make(map[string]string)
|
||||||
|
|
||||||
headers[AuthHeaderName] = auth
|
headers[AuthHeaderName] = auth
|
||||||
var req *http.Request
|
var req *http.Request
|
||||||
var err error
|
var err error
|
||||||
|
|
||||||
if "POST" == requestType {
|
if "POST" == requestType {
|
||||||
headers[TypeHeaderName]= messageType
|
headers[TypeHeaderName] = messageType
|
||||||
headers[ContentHeaderName]= contentType
|
headers[ContentHeaderName] = contentType
|
||||||
headers[TransIdHeaderName]= transId
|
headers[TransIdHeaderName] = transId
|
||||||
headers[SourceHeaderName]= source
|
headers[SourceHeaderName] = source
|
||||||
headers[DestHeaderName]= dest
|
headers[DestHeaderName] = dest
|
||||||
|
|
||||||
req, err = http.NewRequest(requestType, PathURL, bytes.NewBufferString(payload))
|
req, err = http.NewRequest(requestType, PathURL, bytes.NewBufferString(payload))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Request %s failed: %s, %v\n", requestType, PathURL, err)
|
fmt.Printf("Request %s failed: %s, %v\n", requestType, PathURL, err)
|
||||||
@@ -51,9 +55,9 @@ func makeRequest(requestType, messageType, source, transId, dest, contentType, p
|
|||||||
for k, v := range headers {
|
for k, v := range headers {
|
||||||
req.Header.Set(k, v)
|
req.Header.Set(k, v)
|
||||||
}
|
}
|
||||||
|
|
||||||
resp, err := client.Do(req)
|
resp, err := client.Do(req)
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Printf("Failed to obtain request: %v\n", err)
|
fmt.Printf("Failed to obtain request: %v\n", err)
|
||||||
} else {
|
} else {
|
||||||
@@ -62,28 +66,22 @@ func makeRequest(requestType, messageType, source, transId, dest, contentType, p
|
|||||||
fmt.Printf("Failed. resp.StatusCode %v \n", resp.StatusCode)
|
fmt.Printf("Failed. resp.StatusCode %v \n", resp.StatusCode)
|
||||||
} else if 200 == resp.StatusCode {
|
} else if 200 == resp.StatusCode {
|
||||||
/*Decode Msgpack response to JSON format*/
|
/*Decode Msgpack response to JSON format*/
|
||||||
target := wrp.AllFormats()
|
decoder := wrp.NewDecoder(resp.Body, wrp.Msgpack)
|
||||||
decoder := wrp.NewDecoder(resp.Body, target[0])
|
|
||||||
var buffer bytes.Buffer
|
var buffer bytes.Buffer
|
||||||
encoder := wrp.NewEncoder(&buffer, target[1])
|
encoder := wrp.NewEncoder(&buffer, wrp.JSON)
|
||||||
|
|
||||||
if message, err := wrp.TranscodeMessage(encoder, decoder); err != nil {
|
if message, err := wrp.TranscodeMessage(encoder, decoder); err != nil {
|
||||||
fmt.Println("Error while converting:", target[0], "to", target[1], err)
|
fmt.Println("Error while converting:", wrp.Msgpack, "to", wrp.JSON, err)
|
||||||
} else {
|
} else {
|
||||||
//Headers
|
//Headers
|
||||||
fmt.Println("Content-Type :", resp.Header.Get("Content-Type"))
|
fmt.Println(ContentType, ":", resp.Header.Get(ContentType))
|
||||||
fmt.Println("Status :", resp.Header.Get("X-Xmidt-Status"))
|
//fmt.Println(XmidtStatus, ":", resp.Header.Get(XmidtStatus))
|
||||||
fmt.Println("Build :", resp.Header.Get("X-Scytale-Build"))
|
fmt.Println(XScytaleBuild, ":", resp.Header.Get(XScytaleBuild))
|
||||||
fmt.Println("Flavor :", resp.Header.Get("X-Scytale-Flavor"))
|
fmt.Println(XScytaleFlavor, ":", resp.Header.Get(XScytaleFlavor))
|
||||||
fmt.Println("Region :", resp.Header.Get("X-Scytale-Region"))
|
fmt.Println(XScytaleRegion, ":", resp.Header.Get(XScytaleRegion))
|
||||||
fmt.Println("Server :", resp.Header.Get("X-Scytale-Server"))
|
fmt.Println(XScytaleServer, ":", resp.Header.Get(XScytaleServer))
|
||||||
//Metadata
|
//Response from cloud
|
||||||
fmt.Println("Fw-name :", message.Metadata["fw-name"])
|
fmt.Println("WRP response", string(buffer.Bytes()))
|
||||||
//WRP fields
|
|
||||||
fmt.Println("TransactionKey :", message.TransactionKey())
|
|
||||||
fmt.Println("source :", message.Source)
|
|
||||||
fmt.Println("Destination :", message.Destination)
|
|
||||||
fmt.Println("MessageType :", message.Type)
|
|
||||||
fmt.Println("payload :", string(message.Payload))
|
fmt.Println("payload :", string(message.Payload))
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -116,7 +114,7 @@ func main() {
|
|||||||
|
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
if "" == messageType{
|
if "" == messageType {
|
||||||
fmt.Printf("Please provide messageType option\n")
|
fmt.Printf("Please provide messageType option\n")
|
||||||
return
|
return
|
||||||
} else if "" != messageType {
|
} else if "" != messageType {
|
||||||
@@ -127,7 +125,7 @@ func main() {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if "" == source || "" == dest || "" == transId || "" == contentType {
|
if "" == source || "" == dest || "" == transId || "" == contentType {
|
||||||
fmt.Printf("Please provide the required arguments: source, dest, transId, contentType\n")
|
fmt.Printf("Please provide the required arguments: source, dest, transId, contentType\n")
|
||||||
return
|
return
|
||||||
Reference in New Issue
Block a user