Фильтрация по типу машины в GCP - PullRequest
0 голосов
/ 02 июля 2018

Я пытаюсь отфильтровать список экземпляров по типу машины. Однако это не похоже на работу.

Compute.Instances.List request = computeService.instances().list("project-name","us-central1-a" );
request.setFilter("(machinetype = zones/us-central1-a/machineTypes/n1-standard-1)");

InstanceList instanceList = request.execute();
List<Instance> instances = instanceList.getItems();

Ответ пуст, хотя у меня есть экземпляр, который соответствует фильтру! (когда я удаляю фильтр, он получает экземпляр.)

[chaker@cbenhamed:~]$ gcloud compute instances list                                                                                                                                                                                      
NAME                                          ZONE           MACHINE_TYPE   PREEMPTIBLE  INTERNAL_IP  EXTERNAL_IP    STATUS                                                                                                                   
foo-bar-worker-n1-standard-1-65304152130-zfq  us-central1-a  n1-standard-1  true         10.240.0.2   00.000.00.255  RUNNING

Согласно документации , в этом случае должен работать параметр filter . Потому что сначала machineType находится в корне объекта Instance. И второе - это правильная форма аргумента machineType

Полный или частичный URL-адрес ресурса типа машины, который будет использоваться для этого экземпляра, в формате: zone / zone / machineTypes / machine-type. Это обеспечивается клиентом при создании экземпляра.

Я пытался проверить HTTP-запросы, сделанные gcloud

gcloud compute instances list --filter="machineType:n1-standard-1" --log-http

Но оказалось, что он получает весь список (по всем зонам!) И фильтрует их локально!

1 Ответ

0 голосов
/ 09 ноября 2018

Кажется неправильным, документация описывает machineType в качестве аргумента Тело ответа no в качестве фильтра. Таким образом, в этом случае вы не можете использовать частичный URL, а также можете использовать только следующие операторы сравнения =,! =,> Или <, которые ни один из них не работает как. </p>

Я думаю, что единственный способ использовать этот фильтр - использовать полный URL-адрес так же, как Александр Бушковский прокомментировал:

= Тип машины "https://www.googleapis.com/compute/v1/projects/[PROJECT]/zones/[ZONE]/machineTypes/[MACHINE_TYPE]"

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