diff --git a/go.mod b/go.mod index 5101de4..c29e5e5 100644 --- a/go.mod +++ b/go.mod @@ -3,12 +3,12 @@ module github.com/amenzhinsky/iothub go 1.18 require ( - github.com/Azure/go-amqp v1.0.1 - github.com/eclipse/paho.mqtt.golang v1.4.2 + github.com/Azure/go-amqp v1.3.0 + github.com/eclipse/paho.mqtt.golang v1.5.0 ) require ( - github.com/gorilla/websocket v1.5.0 // indirect - golang.org/x/net v0.17.0 // indirect - golang.org/x/sync v0.0.0-20210220032951-036812b2e83c // indirect + github.com/gorilla/websocket v1.5.3 // indirect + golang.org/x/net v0.34.0 // indirect + golang.org/x/sync v0.10.0 // indirect ) diff --git a/go.sum b/go.sum index 22634b0..149b0cd 100644 --- a/go.sum +++ b/go.sum @@ -1,22 +1,16 @@ -github.com/Azure/go-amqp v1.0.1 h1:Jf8OQCKzRDMZ3pCiH4onM7yrhl5curkRSGkRLTyP35o= -github.com/Azure/go-amqp v1.0.1/go.mod h1:+bg0x3ce5+Q3ahCEXnCsGG3ETpDQe3MEVnOuT2ywPwc= +github.com/Azure/go-amqp v1.3.0 h1://1rikYhoIQNXJFXyoO/Rlb4+4EkHYfJceNtLlys2/4= +github.com/Azure/go-amqp v1.3.0/go.mod h1:vZAogwdrkbyK3Mla8m/CxSc/aKdnTZ4IbPxl51Y5WZE= github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/eclipse/paho.mqtt.golang v1.4.2 h1:66wOzfUHSSI1zamx7jR6yMEI5EuHnT1G6rNA5PM12m4= -github.com/eclipse/paho.mqtt.golang v1.4.2/go.mod h1:JGt0RsEwEX+Xa/agj90YJ9d9DH2b7upDZMK9HRbFvCA= +github.com/eclipse/paho.mqtt.golang v1.5.0 h1:EH+bUVJNgttidWFkLLVKaQPGmkTUfQQqjOsyvMGvD6o= +github.com/eclipse/paho.mqtt.golang v1.5.0/go.mod h1:du/2qNQVqJf/Sqs4MEL77kR8QTqANF7XU7Fk0aOTAgk= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= -github.com/google/go-cmp v0.5.8 h1:e6P7q2lk1O+qJJb4BtCQXlK8vWEO8V1ZeuEdJNOqZyg= -github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= -github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc= -github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +github.com/google/go-cmp v0.5.9 h1:O2Tfq5qg4qc4AmwVlvv0oLiVAGB7enBSJ2x2DqQFi38= +github.com/gorilla/websocket v1.5.3 h1:saDtZ6Pbx/0u+bgYQ3q96pZgCzfhKXGPqt7kZ72aNNg= +github.com/gorilla/websocket v1.5.3/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/stretchr/testify v1.7.1 h1:5TQK59W5E3v0r2duFAb7P95B6hEeOyEnHRa8MjYSMTY= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/net v0.0.0-20200425230154-ff2c4b7c35a0/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.17.0 h1:pVaXccu2ozPjCXewfr1S7xza/zcXTity9cCdXQYSjIM= -golang.org/x/net v0.17.0/go.mod h1:NxSsAGuq816PNPmqtQdLE42eU2Fs7NoRIZrHJAlaCOE= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= +github.com/stretchr/testify v1.8.4 h1:CcVxjf3Q8PM0mHUKJCdn+eZZtm5yQwehR5yeSVQQcUk= +golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= +golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= +golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ= +golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk= +gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= diff --git a/iotservice/client_test.go b/iotservice/client_test.go index cbf38ab..4d2ce18 100644 --- a/iotservice/client_test.go +++ b/iotservice/client_test.go @@ -149,7 +149,7 @@ func TestRegistryError(t *testing.T) { if !ok { t.Fatalf("expected a registry error, got = %v", err) } - if re.Message == "" || re.ExceptionMessage == "" { + if re.Message == "" && re.ExceptionMessage == "" { t.Fatal("message is empty") } } @@ -427,7 +427,7 @@ func TestScheduleMethodCall(t *testing.T) { CloudToDeviceMethod: &DeviceMethodParams{ MethodName: "dist-upgrade", Payload: map[string]interface{}{"time": "now"}, - TimeoutInSeconds: 0, + TimeoutInSeconds: 5, }, QueryCondition: "deviceId='nonexisting'", StartTime: time.Now().Add(time.Minute), diff --git a/iotservice/message.go b/iotservice/message.go index e7211fa..de2a0aa 100644 --- a/iotservice/message.go +++ b/iotservice/message.go @@ -24,7 +24,16 @@ func FromAMQPMessage(msg *amqp.Message) *common.Message { m.MessageID = msg.Properties.MessageID.(string) } if msg.Properties.CorrelationID != nil { - m.CorrelationID = msg.Properties.CorrelationID.(string) + switch v := msg.Properties.CorrelationID.(type) { + case uint64: + m.CorrelationID = fmt.Sprintf("%d", v) + case amqp.UUID: + m.CorrelationID = v.String() + case []byte: + m.CorrelationID = string(v) + case string: + m.CorrelationID = v + } } if msg.Properties.To != nil { m.To = *msg.Properties.To diff --git a/iotservice/registry.go b/iotservice/registry.go index 56b416e..ed009c9 100644 --- a/iotservice/registry.go +++ b/iotservice/registry.go @@ -231,9 +231,10 @@ const ( ) type DeviceMethodParams struct { - MethodName string `json:"methodName"` - Payload interface{} `json:"payload"` - TimeoutInSeconds uint `json:"timeoutInSeconds"` + MethodName string `json:"methodName"` + Payload interface{} `json:"payload"` + TimeoutInSeconds uint `json:"responseTimeoutInSeconds"` + ConnectTimeoutInSeconds uint `json:"connectTimeoutInSeconds"` } type BadRequestError struct {