List regions for specified google cloud project :param project: google cloud project id. :return:
(self, project)
| 547 | return projects, error |
| 548 | |
| 549 | def get_regions(self, project): |
| 550 | """ |
| 551 | List regions for specified google cloud project |
| 552 | :param project: google cloud project id. |
| 553 | :return: |
| 554 | """ |
| 555 | self._project_id = project |
| 556 | credentials = self._get_credentials(self._scopes) |
| 557 | service = discovery.build('compute', |
| 558 | self._compute_api_version, |
| 559 | credentials=credentials) |
| 560 | error = None |
| 561 | try: |
| 562 | req = service.regions().list(project=project) |
| 563 | res = req.execute() |
| 564 | for item in res.get('items', []): |
| 565 | region_name = item['name'] |
| 566 | self._regions.append( |
| 567 | {'label': region_name, 'value': region_name}) |
| 568 | region_zones = item.get('zones', []) |
| 569 | region_zones = list( |
| 570 | map(lambda region: region.split('/')[-1], region_zones)) |
| 571 | self._availability_zones[region_name] = region_zones |
| 572 | except HttpError as e: |
| 573 | error = e.reason |
| 574 | except Exception as e: |
| 575 | error = str(e) |
| 576 | return self._regions, error |
| 577 | |
| 578 | def get_availability_zones(self, region): |
| 579 | """ |
no test coverage detected