|
8 | 8 | "encoding/base64" |
9 | 9 | "encoding/json" |
10 | 10 | "fmt" |
| 11 | + "github.com/uselagoon/machinery/utils/namespace" |
11 | 12 | "io" |
12 | 13 | "io/ioutil" |
13 | 14 | "log" |
@@ -428,24 +429,28 @@ func (h *Messaging) getApiClient() graphql.Client { |
428 | 429 | return apiClient |
429 | 430 | } |
430 | 431 |
|
431 | | -func determineResourceFromLagoonAPI(apiClient graphql.Client, resource ResourceDestination) (lagoonclient.Project, lagoonclient.Environment, error) { |
432 | | - // Get project data (we need the project ID to be able to utilise the environmentByName query) |
433 | | - project, err := lagoonclient.GetProjectByName(context.TODO(), apiClient, resource.Project) |
| 432 | +func determineResourceFromLagoonAPIByKubernetesNamespace(apiClient graphql.Client, k8sNamespaceName string) (lagoonclient.Project, lagoonclient.Environment, error) { |
| 433 | + project, environment, err := lagoonclient.GetEnvironmentFromKubernetesNamespaceName(context.TODO(), apiClient, k8sNamespaceName) |
434 | 434 | if err != nil { |
435 | | - return lagoonclient.Project{}, lagoonclient.Environment{}, fmt.Errorf("error: unable to determine resource destination (does %s:%s exist?): %v", resource.Project, resource.Environment, err.Error()) |
| 435 | + return lagoonclient.Project{}, lagoonclient.Environment{}, fmt.Errorf("error: unable to determine resource destination (does %s exist?): %v", k8sNamespaceName, err.Error()) |
436 | 436 | } |
437 | | - |
438 | 437 | if project.Id == 0 || project.Name == "" { |
439 | | - return lagoonclient.Project{}, lagoonclient.Environment{}, fmt.Errorf("error: unable to determine resource destination (does %s:%s exist?): %v", resource.Project, resource.Environment, err.Error()) |
| 438 | + return lagoonclient.Project{}, lagoonclient.Environment{}, fmt.Errorf("error: unable to determine resource destination (does %s exist?): %v", k8sNamespaceName, err.Error()) |
440 | 439 | } |
441 | | - |
442 | | - environment, err := lagoonclient.GetEnvironmentFromName(context.TODO(), apiClient, resource.Environment, project.Id) |
443 | | - if err != nil { |
444 | | - return lagoonclient.Project{}, lagoonclient.Environment{}, err |
| 440 | + if environment.Id == 0 || environment.Name == "" { |
| 441 | + return lagoonclient.Project{}, lagoonclient.Environment{}, fmt.Errorf("error: unable to determine resource destination (does %s exist?): %v", k8sNamespaceName, err.Error()) |
445 | 442 | } |
| 443 | + |
446 | 444 | return project, environment, nil |
447 | 445 | } |
448 | 446 |
|
| 447 | +func determineResourceFromLagoonAPI(apiClient graphql.Client, resource ResourceDestination) (lagoonclient.Project, lagoonclient.Environment, error) { |
| 448 | + // Determine lagoon resource destination |
| 449 | + // let's grab the environment via the kubernetes namespace |
| 450 | + kubernetesNamespaceName := namespace.GenerateNamespaceName("", resource.Environment, resource.Project, "", "", false) |
| 451 | + return determineResourceFromLagoonAPIByKubernetesNamespace(apiClient, kubernetesNamespaceName) |
| 452 | +} |
| 453 | + |
449 | 454 | func (h *Messaging) sendToLagoonS3(incoming *InsightsMessage, insights InsightsData, resource ResourceDestination) (err error) { |
450 | 455 | // strip http/s protocol from origin |
451 | 456 | u, _ := url.Parse(h.S3Config.S3Origin) |
|
0 commit comments