|
1 | 1 | package gcpen |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "context" |
4 | 5 | "os" |
| 6 | + |
| 7 | + "google.golang.org/api/cloudresourcemanager/v1" |
5 | 8 | ) |
6 | 9 |
|
7 | 10 | var ( |
8 | 11 | // ProjectID - Google Cloud Platform Project ID |
9 | | - ProjectID = getProjectID() |
| 12 | + ProjectID = getProjectID() |
| 13 | + projectNumber int64 |
10 | 14 |
|
11 | 15 | // ServiceName - Google App Engine service name |
12 | 16 | // Deprecated |
@@ -40,19 +44,40 @@ func getProjectID() string { |
40 | 44 | return "" |
41 | 45 | } |
42 | 46 |
|
43 | | -// Reload - Reload environment variables. |
| 47 | +// Reload - reload environment variables. |
44 | 48 | func Reload() { |
45 | 49 | ProjectID = getProjectID() |
46 | 50 |
|
| 51 | + // ServiceName - will be deleted in a major version upgrade |
47 | 52 | // Deprecated |
48 | | - // ServiceName - Deprecated |
49 | 53 | ServiceName = os.Getenv(EnvKeyServiceName) |
| 54 | + // ServiceVersion - will be deleted in a major version upgrade |
50 | 55 | // Deprecated |
51 | | - // ServiceVersion - Deprecated |
52 | 56 | ServiceVersion = os.Getenv(EnvKeyServiceVersion) |
53 | 57 |
|
54 | 58 | GAEServiceName = os.Getenv(EnvKeyGAEServiceName) |
55 | 59 | GAEServiceVersion = os.Getenv(EnvKeyGAEServiceVersion) |
56 | 60 | RUNServiceName = os.Getenv(EnvKeyRUNServiceName) |
57 | 61 | RUNServiceRevision = os.Getenv(EnvKeyRUNServiceRevision) |
58 | 62 | } |
| 63 | + |
| 64 | +// GetProjectNumber - get project number |
| 65 | +func GetProjectNumber(ctx context.Context, forceRefresh ...bool) (int64, error) { |
| 66 | + if projectNumber != 0 && !(len(forceRefresh) > 0 && forceRefresh[0]) { |
| 67 | + return projectNumber, nil |
| 68 | + } |
| 69 | + |
| 70 | + service, err := cloudresourcemanager.NewService(ctx) |
| 71 | + if err != nil { |
| 72 | + return 0, err |
| 73 | + } |
| 74 | + |
| 75 | + project, err := service.Projects.Get(getProjectID()).Context(ctx).Do() |
| 76 | + if err != nil { |
| 77 | + return 0, err |
| 78 | + } |
| 79 | + |
| 80 | + projectNumber = project.ProjectNumber |
| 81 | + |
| 82 | + return projectNumber, nil |
| 83 | +} |
0 commit comments