Пользовательский поставщик Terraform - источник данных - PullRequest
0 голосов
/ 28 марта 2020

В настоящее время я работаю над настраиваемым поставщиком Terraform для Jumpcloud и испытываю некоторые проблемы с настройкой настраиваемого источника данных. Я вижу, что схема Resource требует создания, чтения, обновления и удаления.

Я просто хочу выполнить запрос API в Terraform, чтобы я мог вернуть список пользователей и использовать этих пользователей в течение для l oop.

Ниже приведен вызов API, который я пометил как схему. Ресурс

func userquery() *schema.Resource {
    apiKey := ""
    userGroupID := ""

    contentType := "application/json"
    accept := "application/json"

    // Instantiate the API client
    client := jcapiv2.NewAPIClient(jcapiv2.NewConfiguration())

    // Set up the API key via context
    auth := context.WithValue(context.TODO(), jcapiv2.ContextAPIKey, jcapiv2.APIKey{
        Key: apiKey,
    })

    // Make an API call to retrieve a specific user group by ID
    userGroup, res, err := client.UserGroupsApi.GroupsUserGet(auth, userGroupID, contentType, accept, nil)
    if err != nil {
        fmt.Printf("Error retrieving user group %s: %s - response = %+v\n", userGroupID, err, res)
    } else {
        fmt.Printf("Details for User group %s: %+v\n", userGroupID, userGroup)
    }

    return nil

}

Это отображение

ResourcesMap: map[string]*schema.Resource{
            "jumpcloud_user":                  resourceUser(),
            "jumpcloud_user_group":            resourceUserGroup(),
            "jumpcloud_user_group_membership": resourceUserGroupMembership(),
            "jumpcloud_user_query":            userquery(),

        },

И это ошибка, которую я получение. Интересно то, что это возвращает имя правильно из вызова API, однако все еще есть ошибка ...

error

1 Ответ

1 голос
/ 30 марта 2020

У меня нет большого опыта работы с Terraform, но я переправил эту ветку коллеге, который это делает, и именно это они мне отправили

"Пользователь пытается создать собственный источник данных для своего пользовательский провайдер J C вместо ресурса. У меня был минимальный опыт с этим, однако, его ошибка, кажется, есть проблема с тем, как он строит свой плагин, но нет информации о том, какая версия terraform или golang он использует, поэтому я не смогу там помочь. Я бы предложил обратиться к пользовательскому провайдеру J C (https://github.com/sagewave/terraform-provider-jumpcloud), поскольку у них есть несколько пользовательских источников данных, но нет никаких пользовательских источники данных, которые указывают jumpcloud c. Надеюсь, это поможет. "

Вы проверили этого провайдера J C terraform, чтобы увидеть, подходит ли он для вашего варианта использования?

https://github.com/sagewave/terraform-provider-jumpcloud

Приветствия

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...