| skipped 746 lines |
747 | 747 | | |
748 | 748 | | GYB_PROJECT_APIS = 'https://raw.githubusercontent.com/jay0lee/got-your-back/master/project-apis.txt?' |
749 | 749 | | def enableProjectAPIs(project_name, checkEnabled, httpc): |
| 750 | + | parent = f'projects/{project_name}' |
750 | 751 | | anonhttpc = _createHttpObj() |
751 | 752 | | headers = {'User-Agent': getGYBVersion(' | ')} |
752 | 753 | | s, c = anonhttpc.request(GYB_PROJECT_APIS, 'GET', headers=headers) |
| skipped 1 lines |
754 | 755 | | print('ERROR: tried to retrieve %s but got %s' % (GYB_PROJECT_APIS, s.status)) |
755 | 756 | | sys.exit(0) |
756 | 757 | | apis = c.decode("utf-8").splitlines() |
757 | | - | serveman = googleapiclient.discovery.build('servicemanagement', 'v1', |
| 758 | + | serveu = googleapiclient.discovery.build('serviceusage', 'v1', |
758 | 759 | | http=httpc, cache_discovery=False, |
759 | 760 | | discoveryServiceUrl=googleapiclient.discovery.V2_DISCOVERY_URI) |
760 | 761 | | if checkEnabled: |
761 | | - | enabledServices = callGAPIpages(serveman.services(), 'list', 'services', |
762 | | - | consumerId=project_name, fields='nextPageToken,services(serviceName)') |
| 762 | + | enabledServices = callGAPIpages(serveu.services(), 'list', 'services', |
| 763 | + | parent=parent, filter='state:ENABLED', |
| 764 | + | fields='nextPageToken,services(name)') |
763 | 765 | | for enabled in enabledServices: |
764 | | - | if 'serviceName' in enabled: |
765 | | - | if enabled['serviceName'] in apis: |
766 | | - | print(' API %s already enabled...' % enabled['serviceName']) |
767 | | - | apis.remove(enabled['serviceName']) |
768 | | - | else: |
769 | | - | print(' API %s (non-GYB) is enabled (which is fine)' % enabled['serviceName']) |
| 766 | + | service_name = enabled.get('name', '').split('/')[-1] |
| 767 | + | if service_name in apis: |
| 768 | + | print(' API %s already enabled...' % service_name) |
| 769 | + | apis.remove(service_name) |
| 770 | + | elif service_name: |
| 771 | + | print(' API %s (non-GYB) is enabled (which is fine)' % service_name) |
770 | 772 | | for api in apis: |
771 | 773 | | while True: |
772 | 774 | | print(' enabling API %s...' % api) |
| 775 | + | service_name = f'{parent}/services/{api}' |
773 | 776 | | try: |
774 | | - | callGAPI(serveman.services(), 'enable', |
| 777 | + | callGAPI(serveu.services(), 'enable', |
775 | 778 | | throw_reasons=['failedPrecondition'], |
776 | | - | serviceName=api, body={'consumerId': project_name}) |
| 779 | + | name=service_name) |
777 | 780 | | break |
778 | 781 | | except googleapiclient.errors.HttpError as e: |
779 | 782 | | print('\nThere was an error enabling %s. Please resolve error as described below:' % api) |
| skipped 221 lines |
1001 | 1004 | | print(status['error']) |
1002 | 1005 | | sys.exit(2) |
1003 | 1006 | | break |
1004 | | - | enableProjectAPIs(project_name, False, httpc) |
| 1007 | + | enableProjectAPIs(project_id, False, httpc) |
1005 | 1008 | | iam = googleapiclient.discovery.build('iam', 'v1', http=httpc, |
1006 | 1009 | | cache_discovery=False, |
1007 | 1010 | | discoveryServiceUrl=googleapiclient.discovery.V2_DISCOVERY_URI) |
| skipped 1216 lines |