vendor/google.golang.org/appengine/internal/identity.go
changeset 251 1c52a0eeb952
parent 242 2a9ec03fe5a1
equal deleted inserted replaced
250:c040f992052f 251:1c52a0eeb952
     2 // Use of this source code is governed by the Apache 2.0
     2 // Use of this source code is governed by the Apache 2.0
     3 // license that can be found in the LICENSE file.
     3 // license that can be found in the LICENSE file.
     4 
     4 
     5 package internal
     5 package internal
     6 
     6 
     7 import netcontext "golang.org/x/net/context"
     7 import (
       
     8 	"os"
     8 
     9 
     9 // These functions are implementations of the wrapper functions
    10 	netcontext "golang.org/x/net/context"
    10 // in ../appengine/identity.go. See that file for commentary.
    11 )
    11 
    12 
       
    13 var (
       
    14 	// This is set to true in identity_classic.go, which is behind the appengine build tag.
       
    15 	// The appengine build tag is set for the first generation runtimes (<= Go 1.9) but not
       
    16 	// the second generation runtimes (>= Go 1.11), so this indicates whether we're on a
       
    17 	// first-gen runtime. See IsStandard below for the second-gen check.
       
    18 	appengineStandard bool
       
    19 
       
    20 	// This is set to true in identity_flex.go, which is behind the appenginevm build tag.
       
    21 	appengineFlex bool
       
    22 )
       
    23 
       
    24 // AppID is the implementation of the wrapper function of the same name in
       
    25 // ../identity.go. See that file for commentary.
    12 func AppID(c netcontext.Context) string {
    26 func AppID(c netcontext.Context) string {
    13 	return appID(FullyQualifiedAppID(c))
    27 	return appID(FullyQualifiedAppID(c))
    14 }
    28 }
       
    29 
       
    30 // IsStandard is the implementation of the wrapper function of the same name in
       
    31 // ../appengine.go. See that file for commentary.
       
    32 func IsStandard() bool {
       
    33 	// appengineStandard will be true for first-gen runtimes (<= Go 1.9) but not
       
    34 	// second-gen (>= Go 1.11).
       
    35 	return appengineStandard || IsSecondGen()
       
    36 }
       
    37 
       
    38 // IsStandard is the implementation of the wrapper function of the same name in
       
    39 // ../appengine.go. See that file for commentary.
       
    40 func IsSecondGen() bool {
       
    41 	// Second-gen runtimes set $GAE_ENV so we use that to check if we're on a second-gen runtime.
       
    42 	return os.Getenv("GAE_ENV") == "standard"
       
    43 }
       
    44 
       
    45 // IsFlex is the implementation of the wrapper function of the same name in
       
    46 // ../appengine.go. See that file for commentary.
       
    47 func IsFlex() bool {
       
    48 	return appengineFlex
       
    49 }
       
    50 
       
    51 // IsAppEngine is the implementation of the wrapper function of the same name in
       
    52 // ../appengine.go. See that file for commentary.
       
    53 func IsAppEngine() bool {
       
    54 	return IsStandard() || IsFlex()
       
    55 }