Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  • Preconditions
    • Admin is logged in
  • Test steps
    • ndslabsctl delete service <key>
  • Expected results
    • Service is deleted
  • Alternate flows:
    • Project does not exist (404 not found) 
    • User is not admin (401 unauthorized)
    • Not logged in (401)
    • Not admin user (401)
    • Service is in use by projects (409)
    • Service required by other services (409)
    • No such service (404)
  • Issues:
    • Throws a 500 error on delete (wget https://raw.githubusercontent.com/nds-org/ndslabs-specs/master/elk/elastic.json, change key, then add / delete):

      Code Block
      languagebash
      runtime error: invalid memory address or nil pointer dereference
      goroutine 7674 [running]:
      runtime/debug.Stack(0x0, 0x0, 0x0)
      	/usr/local/go/src/runtime/debug/stack.go:24 +0x80
      github.com/ant0ine/go-json-rest/rest.(*RecoverMiddleware).MiddlewareFunc.func1.1(0xc820014ee0, 0x7f8379174910, 0xc8203dbb00)
      	/go/src/github.com/ant0ine/go-json-rest/rest/recover.go:41 +0x53
      panic(0xf83620, 0xc820014090)
      	/usr/local/go/src/runtime/panic.go:426 +0x4e9
      main.(*Server).serviceInUse(0xc820143110, 0xc82027d711, 0x17, 0x0)
      	/go/src/github.com/ndslabs/apiserver/server.go:661 +0x2ed
      main.(*Server).DeleteService(0xc820143110, 0x7f8379174950, 0xc82027d740, 0xc820527840)
      	/go/src/github.com/ndslabs/apiserver/server.go:642 +0x458
      main.(*Server).DeleteService-fm(0x7f8379174950, 0xc82027d740, 0xc820527840)
      	/go/src/github.com/ndslabs/apiserver/server.go:253 +0x3e
      github.com/ant0ine/go-json-rest/rest.(*router).AppFunc.func1(0x7f8379174950, 0xc82027d740, 0xc820527840)
      	/go/src/github.com/ant0ine/go-json-rest/rest/router.go:56 +0xf1
      github.com/StephanDollberg/go-json-rest-middleware-jwt.(*JWTMiddleware).middlewareImpl(0xc8201c6a80, 0x7f8379174950, 0xc82027d740, 0xc820527840, 0xc82025adc0)
      	/go/src/github.com/StephanDollberg/go-json-rest-middleware-jwt/auth_jwt.go:103 +0x2bf
      github.com/StephanDollberg/go-json-rest-middleware-jwt.(*JWTMiddleware).MiddlewareFunc.func2(0x7f8379174950, 0xc82027d740, 0xc820527840)
      	/go/src/github.com/StephanDollberg/go-json-rest-middleware-jwt/auth_jwt.go:82 +0x47
      github.com/ant0ine/go-json-rest/rest.(*IfMiddleware).MiddlewareFunc.func1(0x7f8379174950, 0xc82027d740, 0xc820527840)
      	/go/src/github.com/ant0ine/go-json-rest/rest/if.go:47 +0x6b
      github.com/ant0ine/go-json-rest/rest.(*CorsMiddleware).MiddlewareFunc.func1(0x7f8379174950, 0xc82027d740, 0xc820527840)
      	/go/src/github.com/ant0ine/go-json-rest/rest/cors.go:86 +0xc2
      github.com/ant0ine/go-json-rest/rest.(*ContentTypeCheckerMiddleware).MiddlewareFunc.func1(0x7f8379174950, 0xc82027d740, 0xc820527840)
      	/go/src/github.com/ant0ine/go-json-rest/rest/content_type_checker.go:38 +0x1e9
      github.com/ant0ine/go-json-rest/rest.(*JsonIndentMiddleware).MiddlewareFunc.func1(0x7f8379174910, 0xc8203dbb00, 0xc820527840)
      	/go/src/github.com/ant0ine/go-json-rest/rest/json_indent.go:35 +0x118
      github.com/ant0ine/go-json-rest/rest.(*RecoverMiddleware).MiddlewareFunc.func1(0x7f8379174910, 0xc8203dbb00, 0xc820527840)
      	/go/src/github.com/ant0ine/go-json-rest/rest/recover.go:57 +0x81
      github.com/ant0ine/go-json-rest/rest.(*PoweredByMiddleware).MiddlewareFunc.func1(0x7f8379174910, 0xc8203dbb00, 0xc820527840)
      	/go/src/github.com/ant0ine/go-json-rest/rest/powered_by.go:26 +0xa7
      github.com/ant0ine/go-json-rest/rest.(*RecorderMiddleware).MiddlewareFunc.func1(0x7f83791748d0, 0xc820527860, 0xc820527840)
      	/go/src/github.com/ant0ine/go-json-rest/rest/recorder.go:22 +0xbc
      github.com/ant0ine/go-json-rest/rest.(*TimerMiddleware).MiddlewareFunc.func1(0x7f83791748d0, 0xc820527860, 0xc820527840)
      	/go/src/github.com/ant0ine/go-json-rest/rest/timer.go:20 +0x117
      github.com/ant0ine/go-json-rest/rest.(*AccessLogApacheMiddleware).MiddlewareFunc.func1(0x7f83791748d0, 0xc820527860, 0xc820527840)
      	/go/src/github.com/ant0ine/go-json-rest/rest/access_log_apache.go:87 +0x55
      github.com/ant0ine/go-json-rest/rest.adapterFunc.func1(0x7f8379174898, 0xc820215790, 0xc82021ae00)
      	/go/src/github.com/ant0ine/go-json-rest/rest/middleware.go:70 +0x132
      net/http.HandlerFunc.ServeHTTP(0xc82025b130, 0x7f8379174898, 0xc820215790, 0xc82021ae00)
      	/usr/local/go/src/net/http/server.go:1618 +0x3a
      net/http.serverHandler.ServeHTTP(0xc820081800, 0x7f8379174898, 0xc820215790, 0xc82021ae00)
      	/usr/local/go/src/net/http/server.go:2081 +0x19e
      net/http.(*conn).serve(0xc8203fad80)
      	/usr/local/go/src/net/http/server.go:1472 +0xf2e
      created by net/http.(*Server).Serve
      	/usr/local/go/src/net/http/server.go:2137 +0x44e
      29/Mar/2016:20:31:55 +0000 500 2890μs "DELETE /services/hellomynameisnewservice HTTP/1.1" admin "Go-http-client/1.1"

Get service details

  • Preconditions
    • User is logged in
  • Test steps
    • ndslabsctl get service <key>
  • Expected results
    • Displays service spec (as json)
  • Alternate flows:
    • Service does not exist (404

...