pulumi / pulumi-meraki

Apache License 2.0
0 stars 0 forks source link

Panic on network creation with invalid organization id #98

Closed VenelinMartinov closed 3 days ago

VenelinMartinov commented 2 weeks ago

Describe what happened

Picked up the Base network example from the docs and tried to run it but I'm getting a panic:

esc run providers.all -- pulumi up --yes
Previewing update (dev)

View Live: https://app.pulumi.com/pulumi/meraki_97/dev/previews/5c810ea5-0369-4fdf-a594-6ebb0a7e2587

Loading policy packs...

@ Previewing update....

    pulumi:pulumi:Stack meraki_97-dev running
@ Previewing update....
 +  meraki:networks:base example create
    pulumi:pulumi:Stack meraki_97-dev
Policies:
    ✅ pulumi-internal-policies@v0.0.6

Outputs:
  + merakiNetworksExample: {
      + enrollmentString       : output<string>
      + id                     : output<string>
      + isBoundToConfigTemplate: output<string>
      + name                   : "Main Office"
      + networkId              : output<string>
      + notes                  : "Additional description of the network"
      + organizationId         : "string"
      + productTypes           : [
      +     [0]: "appliance"
      +     [1]: "switch"
      +     [2]: "wireless"
        ]
      + tags                   : [
      +     [0]: "tag1"
      +     [1]: "tag2"
        ]
      + timeZone               : "America/Los_Angeles"
      + url                    : output<string>
      + urn                    : "urn:pulumi:dev::meraki_97::meraki:networks/base:base::example"
    }

Resources:
    + 1 to create
    1 unchanged

Updating (dev)

View Live: https://app.pulumi.com/pulumi/meraki_97/dev/updates/2

Loading policy packs...

@ Updating....
    pulumi:pulumi:Stack meraki_97-dev running
 +  meraki:networks:base example creating (0s)
@ Updating....
    pulumi:pulumi:Stack meraki_97-dev running 2024/07/08 17:20:42 Cannot unmarshal response body: unexpected end of JSON input
    pulumi:pulumi:Stack meraki_97-dev running panic: runtime error: invalid memory address or nil pointer dereference
    pulumi:pulumi:Stack meraki_97-dev running [signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x103c708cc]
    pulumi:pulumi:Stack meraki_97-dev running goroutine 26 [running]:
    pulumi:pulumi:Stack meraki_97-dev running github.com/cisco-open/terraform-provider-meraki/internal/provider.getAllItemsNetworks({{0x14000151b88, 0x140008c6720}, 0x1400042b780, 0x1400042b780, 0x1400042b780, 0x1400042b780, 0x1400042b780, 0x1400042b780, 0x1400042b780, 0x1400042b780, ...}, ...)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/work/pulumi-meraki/pulumi-meraki/upstream/internal/provider/resource_meraki_networks.go:521 +0x9c
    pulumi:pulumi:Stack meraki_97-dev running github.com/cisco-open/terraform-provider-meraki/internal/provider.(*NetworksResource).Create(0x1400007cde8, {0x1048bb8c8, 0x14000b20900}, {{{{0x1048c8438, 0x14000b2e120}, {0x104536040, 0x14000b21a40}}, {0x1048dec40, 0x1400052c500}}, {{{0x1048c8438, ...}, ...}, ...}, ...}, ...)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/work/pulumi-meraki/pulumi-meraki/upstream/internal/provider/resource_meraki_networks.go:167 +0x338
    pulumi:pulumi:Stack meraki_97-dev running github.com/hashicorp/terraform-plugin-framework/internal/fwserver.(*Server).CreateResource(0x14000730000, {0x1048bb8c8, 0x14000b20900}, 0x14000b0d168, 0x14000b0d140)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/github.com/hashicorp/terraform-plugin-framework@v1.9.0/internal/fwserver/server_createresource.go:101 +0x400
    pulumi:pulumi:Stack meraki_97-dev running github.com/hashicorp/terraform-plugin-framework/internal/fwserver.(*Server).ApplyResourceChange(0x14000730000, {0x1048bb8c8, 0x14000b20900}, 0x140005b2b90, 0x14000b0d260)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/github.com/hashicorp/terraform-plugin-framework@v1.9.0/internal/fwserver/server_applyresourcechange.go:57 +0x380
    pulumi:pulumi:Stack meraki_97-dev running github.com/hashicorp/terraform-plugin-framework/internal/proto6server.(*Server).ApplyResourceChange(0x14000730000, {0x1048bb8c8?, 0x14000a2a690?}, 0x140005b2af0)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/github.com/hashicorp/terraform-plugin-framework@v1.9.0/internal/proto6server/server_applyresourcechange.go:55 +0x2e0
    pulumi:pulumi:Stack meraki_97-dev running github.com/pulumi/pulumi-terraform-bridge/pf/tfbridge.(*provider).CreateWithContext(0x14000d56008, {0x1048bb8c8?, 0x14000a15e30?}, {0x1400070df40, 0x3d}, 0x14000a15e90, 0x0?, 0x0)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/github.com/pulumi/pulumi-terraform-bridge/pf@v0.38.0/tfbridge/provider_create.go:98 +0x598
    pulumi:pulumi:Stack meraki_97-dev running github.com/pulumi/pulumi-terraform-bridge/pf/internal/plugin.(*providerServer).Create(0x140008622a0, {0x1048bb8c8, 0x14000a15e30}, 0x14000550910)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/github.com/pulumi/pulumi-terraform-bridge/pf@v0.38.0/internal/plugin/provider_server.go:385 +0x12c
    pulumi:pulumi:Stack meraki_97-dev running github.com/pulumi/pulumi/sdk/v3/proto/go._ResourceProvider_Create_Handler.func1({0x1048bb8c8?, 0x14000a15e30?}, {0x10476d2a0?, 0x14000550910?})
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/github.com/pulumi/pulumi/sdk/v3@v3.121.0/proto/go/provider_grpc.pb.go:651 +0xd0
    pulumi:pulumi:Stack meraki_97-dev running github.com/grpc-ecosystem/grpc-opentracing/go/otgrpc.OpenTracingServerInterceptor.func1({0x1048bb8c8, 0x14000a15740}, {0x10476d2a0, 0x14000550910}, 0x14000acfc00, 0x140008905b8)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/github.com/grpc-ecosystem/grpc-opentracing@v0.0.0-20180507213350-8e809c8a8645/go/otgrpc/server.go:57 +0x2e4
    pulumi:pulumi:Stack meraki_97-dev running github.com/pulumi/pulumi/sdk/v3/proto/go._ResourceProvider_Create_Handler({0x10485ab40, 0x140008622a0}, {0x1048bb8c8, 0x14000a15740}, 0x140000e3a80, 0x140006ea260)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/github.com/pulumi/pulumi/sdk/v3@v3.121.0/proto/go/provider_grpc.pb.go:653 +0x148
    pulumi:pulumi:Stack meraki_97-dev running google.golang.org/grpc.(*Server).processUnaryRPC(0x1400032a400, {0x1048bb8c8, 0x14000a155f0}, {0x1048d9980, 0x140001ec600}, 0x14000938240, 0x14000862360, 0x105988bd8, 0x0)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/google.golang.org/grpc@v1.63.2/server.go:1369 +0xb58
    pulumi:pulumi:Stack meraki_97-dev running google.golang.org/grpc.(*Server).handleStream(0x1400032a400, {0x1048d9980, 0x140001ec600}, 0x14000938240)
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/google.golang.org/grpc@v1.63.2/server.go:1780 +0xb20
    pulumi:pulumi:Stack meraki_97-dev running google.golang.org/grpc.(*Server).serveStreams.func2.1()
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/google.golang.org/grpc@v1.63.2/server.go:1019 +0x8c
    pulumi:pulumi:Stack meraki_97-dev running created by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 61
    pulumi:pulumi:Stack meraki_97-dev running   /home/runner/go/pkg/mod/google.golang.org/grpc@v1.63.2/server.go:1030 +0x13c
 +  meraki:networks:base example creating (1s) error: error reading from server: EOF
 +  meraki:networks:base example **creating failed** error: error reading from server: EOF
@ Updating....
    pulumi:pulumi:Stack meraki_97-dev running error: update failed
    pulumi:pulumi:Stack meraki_97-dev **failed** 1 error; 32 messages
Policies:
    ✅ pulumi-internal-policies@v0.0.6

Diagnostics:
  pulumi:pulumi:Stack (meraki_97-dev):
    2024/07/08 17:20:42 Cannot unmarshal response body: unexpected end of JSON input
    panic: runtime error: invalid memory address or nil pointer dereference
    [signal SIGSEGV: segmentation violation code=0x2 addr=0x0 pc=0x103c708cc]
    goroutine 26 [running]:
    github.com/cisco-open/terraform-provider-meraki/internal/provider.getAllItemsNetworks({{0x14000151b88, 0x140008c6720}, 0x1400042b780, 0x1400042b780, 0x1400042b780, 0x1400042b780, 0x1400042b780, 0x1400042b780, 0x1400042b780, 0x1400042b780, ...}, ...)
        /home/runner/work/pulumi-meraki/pulumi-meraki/upstream/internal/provider/resource_meraki_networks.go:521 +0x9c
    github.com/cisco-open/terraform-provider-meraki/internal/provider.(*NetworksResource).Create(0x1400007cde8, {0x1048bb8c8, 0x14000b20900}, {{{{0x1048c8438, 0x14000b2e120}, {0x104536040, 0x14000b21a40}}, {0x1048dec40, 0x1400052c500}}, {{{0x1048c8438, ...}, ...}, ...}, ...}, ...)
        /home/runner/work/pulumi-meraki/pulumi-meraki/upstream/internal/provider/resource_meraki_networks.go:167 +0x338
    github.com/hashicorp/terraform-plugin-framework/internal/fwserver.(*Server).CreateResource(0x14000730000, {0x1048bb8c8, 0x14000b20900}, 0x14000b0d168, 0x14000b0d140)
        /home/runner/go/pkg/mod/github.com/hashicorp/terraform-plugin-framework@v1.9.0/internal/fwserver/server_createresource.go:101 +0x400
    github.com/hashicorp/terraform-plugin-framework/internal/fwserver.(*Server).ApplyResourceChange(0x14000730000, {0x1048bb8c8, 0x14000b20900}, 0x140005b2b90, 0x14000b0d260)
        /home/runner/go/pkg/mod/github.com/hashicorp/terraform-plugin-framework@v1.9.0/internal/fwserver/server_applyresourcechange.go:57 +0x380
    github.com/hashicorp/terraform-plugin-framework/internal/proto6server.(*Server).ApplyResourceChange(0x14000730000, {0x1048bb8c8?, 0x14000a2a690?}, 0x140005b2af0)
        /home/runner/go/pkg/mod/github.com/hashicorp/terraform-plugin-framework@v1.9.0/internal/proto6server/server_applyresourcechange.go:55 +0x2e0
    github.com/pulumi/pulumi-terraform-bridge/pf/tfbridge.(*provider).CreateWithContext(0x14000d56008, {0x1048bb8c8?, 0x14000a15e30?}, {0x1400070df40, 0x3d}, 0x14000a15e90, 0x0?, 0x0)
        /home/runner/go/pkg/mod/github.com/pulumi/pulumi-terraform-bridge/pf@v0.38.0/tfbridge/provider_create.go:98 +0x598
    github.com/pulumi/pulumi-terraform-bridge/pf/internal/plugin.(*providerServer).Create(0x140008622a0, {0x1048bb8c8, 0x14000a15e30}, 0x14000550910)
        /home/runner/go/pkg/mod/github.com/pulumi/pulumi-terraform-bridge/pf@v0.38.0/internal/plugin/provider_server.go:385 +0x12c
    github.com/pulumi/pulumi/sdk/v3/proto/go._ResourceProvider_Create_Handler.func1({0x1048bb8c8?, 0x14000a15e30?}, {0x10476d2a0?, 0x14000550910?})
        /home/runner/go/pkg/mod/github.com/pulumi/pulumi/sdk/v3@v3.121.0/proto/go/provider_grpc.pb.go:651 +0xd0
    github.com/grpc-ecosystem/grpc-opentracing/go/otgrpc.OpenTracingServerInterceptor.func1({0x1048bb8c8, 0x14000a15740}, {0x10476d2a0, 0x14000550910}, 0x14000acfc00, 0x140008905b8)
        /home/runner/go/pkg/mod/github.com/grpc-ecosystem/grpc-opentracing@v0.0.0-20180507213350-8e809c8a8645/go/otgrpc/server.go:57 +0x2e4
    github.com/pulumi/pulumi/sdk/v3/proto/go._ResourceProvider_Create_Handler({0x10485ab40, 0x140008622a0}, {0x1048bb8c8, 0x14000a15740}, 0x140000e3a80, 0x140006ea260)
        /home/runner/go/pkg/mod/github.com/pulumi/pulumi/sdk/v3@v3.121.0/proto/go/provider_grpc.pb.go:653 +0x148
    google.golang.org/grpc.(*Server).processUnaryRPC(0x1400032a400, {0x1048bb8c8, 0x14000a155f0}, {0x1048d9980, 0x140001ec600}, 0x14000938240, 0x14000862360, 0x105988bd8, 0x0)
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.63.2/server.go:1369 +0xb58
    google.golang.org/grpc.(*Server).handleStream(0x1400032a400, {0x1048d9980, 0x140001ec600}, 0x14000938240)
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.63.2/server.go:1780 +0xb20
    google.golang.org/grpc.(*Server).serveStreams.func2.1()
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.63.2/server.go:1019 +0x8c
    created by google.golang.org/grpc.(*Server).serveStreams.func2 in goroutine 61
        /home/runner/go/pkg/mod/google.golang.org/grpc@v1.63.2/server.go:1030 +0x13c

    error: update failed

  meraki:networks:base (example):
    error: error reading from server: EOF

Resources:
    1 unchanged

Duration: 3s

Error: exit status 255

Sample program

import * as pulumi from "@pulumi/pulumi";
import * as meraki from "@pulumi/meraki";

const example = new meraki.networks.Base("example", {
    name: "Main Office",
    notes: "Additional description of the network",
    organizationId: "string",
    productTypes: [
        "appliance",
        "switch",
        "wireless",
    ],
    tags: [
        "tag1",
        "tag2",
    ],
    timeZone: "America/Los_Angeles",
});
export const merakiNetworksExample = example;

Log output

.

Affected Resource(s)

No response

Output of pulumi about

pulumi about
CLI
Version      3.122.0
Go Version   go1.22.4
Go Compiler  gc

Plugins
KIND      NAME    VERSION
resource  meraki  0.2.5
language  nodejs  unknown

Host
OS       darwin
Version  14.1.1
Arch     arm64

This project is written in nodejs: executable='/opt/homebrew/bin/node' version='v22.4.0'

Current Stack: pulumi/meraki_97/dev

TYPE                     URN
pulumi:pulumi:Stack      urn:pulumi:dev::meraki_97::pulumi:pulumi:Stack::meraki_97-dev
pulumi:providers:meraki  urn:pulumi:dev::meraki_97::pulumi:providers:meraki::default_0_2_5_github_/api.github.com/pulumi/pulumi-meraki

Found no pending operations associated with dev

Backend
Name           pulumi.com
URL            https://app.pulumi.com/venelin-pulumi-corp
User           venelin-pulumi-corp
Organizations  venelin-pulumi-corp, demo, pulumi
Token type     personal

Dependencies:
NAME            VERSION
@pulumi/meraki  0.2.5
@pulumi/pulumi  3.122.0
@types/node     18.19.39
typescript      5.5.3

Pulumi locates its logs in /var/folders/82/nqnqw81s1h56l5nv940f9mq00000gn/T/ by default

Additional context

No response

Contributing

Vote on this issue by adding a 👍 reaction. To contribute a fix for this issue, leave a comment (and link to your pull request, if you've opened one already).

VenelinMartinov commented 2 weeks ago

Reproed in TF:

terraform {
  required_providers {
    meraki = {
      source  = "cisco-open/meraki"
      version = "0.2.5-alpha"
    }
  }
}

provider "meraki" {
}

resource "meraki_networks" "example" {
  name           = "Main Office"
  notes          = "Additional description of the network"
  organization_id = "your_organization_id"
  product_types = [
    "appliance",
    "switch",
    "wireless",
  ]
  tags = [
    "tag1",
    "tag2",
  ]
  time_zone = "America/Los_Angeles"
}
VenelinMartinov commented 2 weeks ago

opened https://github.com/cisco-open/terraform-provider-meraki/issues/101 upstream

VenelinMartinov commented 3 days ago

This was fixed upstream. Confirmed this no longer reproes.