def hello(): credentials = AppAssertionCredentials([]) client = datastore.Client(project = 'mq-cloud-prototyping-3', credentials = credentials) sys.stdout.write(credentials.to_json()) query = client.query(kind='Person') res = query.fetch() all = dict(res) sys.stdout.write(str(all)) return credentials.to_json() try : token = '' #ouath O_AUTH_EMAIL_SCOPE = 'https://www.googleapis.com/auth/userinfo.email' credentials = GoogleCredentials.get_application_default() if credentials.create_scoped_required(): credentials = credentials.create_scoped(PUBSUB_SCOPES) http = httplib2.Http() credentials.authorize(http) cl = discovery.build('pubsub', 'v1', http=http) return credentials.to_json() credentials = GoogleCredentials.get_application_default() credentials = credentials.create_scoped([O_AUTH_EMAIL_SCOPE]) http = httplib2.Http() credentials.authorize(http) return credentials.to_json() #if not http: # http = httplib2.Http() #credentials.authorize(http) #temp hardcoded token #token = 'ya29.CjjlAlrvqUwXrujCnJuqa08HTtmNilyP7K1GGrHQ40Gt489H6NGT9WQAxEL92OSQ6anGYeFPRcvI4g' tokenBearer = 'Bearer %s' % token url = 'https://admin-dot-mq-vouchers.appspot.com/api/communities/mtv1/campaigns?page=0&size=1000&sorting=campaignName,ASC' req = urllib2.Request(url, headers = {'Content-Type': 'application/json', 'Authorization' : tokenBearer}) f = urllib2.urlopen(req) response = f.read() sys.stdout.write(str(response)) respjson = json.loads(response) f.close() #respjson = '3333' #sys.stdout.write(str(all)) return str(response) except urllib2.HTTPError, error: return ('get failed %s' % error)
class GCloud(): def __init__(self): self.credentials = GoogleCredentials.get_application_default() scope = ["https://www.googleapis.com/auth/cloud-platform"] self.credentials = AppAssertionCredentials(scope=scope) def create_gcloud_project(self, project_id, project_name, parent_id=None, parent_type=None): crm = discovery.build('cloudresourcemanager', 'v1', http=self.credentials.authorize(httplib2.Http())) body = {'project_id': project_id, 'name': project_name} if parent_id and parent_type: body['parent'] = {} body['parent']['type'] = parent_type body['parent']['id'] = parent_id operation = crm.projects().create(body=body).execute() def create_appengine_app(self, project_id, location_id): app = discovery.build('appengine', 'v1', http=self.credentials.authorize(httplib2.Http())) body = {'id': project_id, 'locationId': location_id} operation = app.apps().create(body=body).execute() def enable_service(self, project_id, service_id): serviceusage = discovery.build('serviceusage', 'v1', http=self.credentials.authorize( httplib2.Http())) logging.debug('trying to enable service {}'.format(service_id)) service_name = 'projects/{}/services/{}.googleapis.com'.format( project_id, service_id) operation = serviceusage.services().enable(name=service_name).execute() def create_cloud_build_trigger(self, project_id, description): cloudbuild = discovery.build('cloudbuild', 'v1', http=self.credentials.authorize( httplib2.Http())) body = {'description': 'test'} operation = cloudbuild.projects().triggers().create( projectId=project_id, body=body).execute()
def stop_vm(instance_name): credentials = AppAssertionCredentials(scope='https://www.googleapis.com/auth/compute') http = credentials.authorize(httplib2.Http(memcache)) compute = discovery.build('compute', 'v1', http=http) result = compute.instances().stop(instance=instance_name, zone=INSTANCE_ZONE, project=PROJECT).execute() logging.debug(result) return json.dumps(result, indent=4)
def get(self): if self.request.get('site') == 'issues': url = "https://bugs.chromium.org/p/chromium/issues/csv?" for item in self.request.GET.items(): if item[0] != 'site': url += item[0] +'=' + item[1] + '&' scope = 'https://www.googleapis.com/auth/userinfo.email' credentials = AppAssertionCredentials(scope) http = credentials.authorize(Http()) DISCOVERY_URL = ( 'https://monorail-prod.appspot.com/_ah/api/discovery/v1/apis/' '{api}/{apiVersion}/rest' ) monorail = build( 'monorail', 'v1', discoveryServiceUrl=DISCOVERY_URL, http=http ) urlfetch.set_default_fetch_deadline(10) self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = monorail.issues().list(projectId='chromium', owner=self.request.get('q')[6:], can='open').execute() self.response.write(json.dumps(result))
def get(self): scope = 'https://www.googleapis.com/auth/userinfo.email' credentials = AppAssertionCredentials(scope) http = credentials.authorize(Http()) DISCOVERY_URL = ( 'https://monorail-prod.appspot.com/_ah/api/discovery/v1/apis/' '{api}/{apiVersion}/rest' ) monorail = build( 'monorail', 'v1', discoveryServiceUrl=DISCOVERY_URL, http=http ) if self.request.get('site') == 'issues': urlfetch.set_default_fetch_deadline(10) self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = monorail.issues().list(projectId='chromium', q=self.request.get('q'), can='open').execute() self.response.write(json.dumps(result)) elif self.request.get('site') == 'issue': urlfetch.set_default_fetch_deadline(10) self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = monorail.issues().get(projectId='chromium', issueId=self.request.get('issueId')).execute() self.response.write(json.dumps(result)) elif self.request.get('site') == 'comments': urlfetch.set_default_fetch_deadline(10) self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = monorail.issues().comments().list(projectId='chromium', issueId=self.request.get('issueId')).execute() self.response.write(json.dumps(result))
def generate_jwt(): """Generates a signed JSON Web Token using a service account.""" credentials = AppAssertionCredentials( 'https://www.googleapis.com/auth/iam') http_auth = credentials.authorize(httplib2.Http()) service = build(serviceName='iam', version='v1', http=http_auth) now = int(time.time()) header_json = json.dumps({"typ": "JWT", "alg": "RS256"}) payload_json = json.dumps({ 'iat': now, # expires after one hour. "exp": now + 3600, # iss is the service account email. 'iss': SERVICE_ACCOUNT_EMAIL, 'sub': SERVICE_ACCOUNT_EMAIL, # aud must match 'audience' in the security configuration in your # swagger spec.It can be any string. 'aud': 'echo.endpoints.sample.google.com', "email": SERVICE_ACCOUNT_EMAIL }) headerAndPayload = '{}.{}'.format(base64.urlsafe_b64encode(header_json), base64.urlsafe_b64encode(payload_json)) slist = service.projects().serviceAccounts().signBlob( name=SERVICE_ACCOUNT, body={'bytesToSign': base64.b64encode(headerAndPayload)}) res = slist.execute() signature = base64.urlsafe_b64encode(base64.decodestring(res['signature'])) signed_jwt = '{}.{}'.format(headerAndPayload, signature) return signed_jwt
def get_service(api_client, version, scope): if DEV: scopes = [scope] credentials = ServiceAccountCredentials.from_json_keyfile_name( 'qvo-vadis-0c249553334b.json', scopes) else: credentials = AppAssertionCredentials(scope) http_auth = credentials.authorize(Http()) service = build(api_client, version, http=http_auth) return service
def _decorated(self, *args, **kwargs): credentials = AppAssertionCredentials( scope='https://www.googleapis.com/auth/devstorage.full_control') http = credentials.authorize(httplib2.Http(memcache)) self.gcs_service = build('storage', 'v1', http=http, developerKey=DEVELOPER_KEY) self.gcs_service.BUCKET = BUCKET return function(self, *args, **kwargs)
def start_vm(): credentials = AppAssertionCredentials(scope='https://www.googleapis.com/auth/compute') logging.debug(memcache) http = credentials.authorize(httplib2.Http(memcache)) logging.debug(http) compute = build('compute', 'v1') # Start the VM! # result = compute.instances().start(instance='jocsub-1', zone='asia-northeast1-b', project='jocc-121ee').execute() result = compute.instances().start(instance='swing', zone='asia-southeast1-b', project='sage-buttress-226108').execute() logging.debug(result) return json.dumps(result, indent=4)
def modelDelete(self, request): logging.info('modelDelete') # Verify Firebase auth. #claims = firebase_helper.verify_auth_token(self.request_state) id_token = self.request_state.headers['x-metagame-auth'].split( ' ').pop() claims = google.oauth2.id_token.verify_firebase_token( id_token, HTTP_REQUEST) if not claims: ## TODO make this more modular, somehow. We have no idea who this user is at this point, so can't write to the firebase user record. logging.error('Firebase Unauth') response = ModelResponse( #models = None, more=None, cursor=None, response_message='Firebase Unauth.', response_successful=False) return response ## get the model modelController = ModelController() model = modelController.get_by_key_id(int(request.key_id)) if not model: logging.error('model not found') return ModelResponse(response_message="Model Not Found", response_successful=False) modelController.delete(model) credentials = AppAssertionCredentials( 'https://www.googleapis.com/auth/sqlservice.admin') http_auth = credentials.authorize(Http()) model_json = json.dumps(model.to_json()) logging.info(model_json) headers = {"Content-Type": "application/json"} URL = "https://ue4topia.firebaseio.com/model/%s.json" % model.key.id() resp, content = http_auth.request( URL, "DELETE", ## We can delete data with a DELETE request model_json, headers=headers) logging.info(resp) logging.info(content) return ModelResponse(response_message="Model Deleted")
def start_vm(): """Start VM instance""" credentials = AppAssertionCredentials( scope='https://www.googleapis.com/auth/compute') http = credentials.authorize(httplib2.Http()) compute = discovery.build('compute', 'v1', http=http) # Start the VM! zone = os.environ.get('ZONE') inst = os.environ.get('INST') proj = os.environ.get('PROJ') result = compute.instances().start(instance=inst, zone=zone, project=proj).execute() logging.debug(result) # return json.dumps(result, indent=4) return result["insertTime"]
def start_vm(): credentials = AppAssertionCredentials( scope='https://www.googleapis.com/auth/compute') http = credentials.authorize(httplib2.Http()) compute = discovery.build('compute', 'v1', http=http) # Start the VM! result = compute.instances().start(instance=INSTANCE_NAME, zone=INSTANCE_ZONE, project=PROJECT).execute() result2 = compute.instances().start(instance=INSTANCE_NAME2, zone=INSTANCE_ZONE, project=PROJECT).execute() logging.debug(result) logging.debug(result2) return json.dumps(result, indent=4) return json.dumps(result2, indent=4)
def model_create(self, request): # Verify Firebase auth. #claims = firebase_helper.verify_auth_token(self.request_state) id_token = self.request_state.headers['x-metagame-auth'].split( ' ').pop() claims = google.oauth2.id_token.verify_firebase_token( id_token, HTTP_REQUEST) if not claims: ## TODO make this more modular, somehow. We have no idea who this user is at this point, so can't write to the firebase user record. logging.error('Firebase Unauth') response = ModelResponse(response_message='Firebase Unauth.', response_successful=False) return response model = ModelController().create(description=request.description, name=request.name, user_id=claims['user_id']) credentials = AppAssertionCredentials( 'https://www.googleapis.com/auth/sqlservice.admin') http_auth = credentials.authorize(Http()) model_json = json.dumps(model.to_json()) #logging.info(model_json) headers = {"Content-Type": "application/json"} URL = "https://ue4topia.firebaseio.com/model/%s.json" % model.key.id() resp, content = http_auth.request( URL, "PUT", ## Write or replace data to a defined path, model_json, headers=headers) #logging.info(resp) #logging.info(content) return ModelResponse(response_message="Model Created")
def generate_jwt(): """Generates a signed JSON Web Token using a service account.""" credentials = AppAssertionCredentials( 'https://www.googleapis.com/auth/iam') http_auth = credentials.authorize(httplib2.Http()) service = googleapiclient.discovery.build( serviceName='iam', version='v1', http=http_auth) now = int(time.time()) header_json = json.dumps({ "typ": "JWT", "alg": "RS256"}) payload_json = json.dumps({ 'iat': now, # expires after one hour. "exp": now + 3600, # iss is the service account email. 'iss': SERVICE_ACCOUNT_EMAIL, 'sub': SERVICE_ACCOUNT_EMAIL, # aud must match 'audience' in the security configuration in your # swagger spec.It can be any string. 'aud': 'echo.endpoints.sample.google.com', "email": SERVICE_ACCOUNT_EMAIL }) headerAndPayload = '{}.{}'.format( base64.urlsafe_b64encode(header_json), base64.urlsafe_b64encode(payload_json)) slist = service.projects().serviceAccounts().signBlob( name=SERVICE_ACCOUNT, body={'bytesToSign': base64.b64encode(headerAndPayload)}) res = slist.execute() signature = base64.urlsafe_b64encode( base64.decodestring(res['signature'])) signed_jwt = '{}.{}'.format(headerAndPayload, signature) return signed_jwt
def get(self): scope = 'https://www.googleapis.com/auth/userinfo.email' credentials = AppAssertionCredentials(scope) http = credentials.authorize(Http()) DISCOVERY_URL = ( 'https://monorail-prod.appspot.com/_ah/api/discovery/v1/apis/' '{api}/{apiVersion}/rest') monorail = build('monorail', 'v1', discoveryServiceUrl=DISCOVERY_URL, http=http) if self.request.get('site') == 'issues': urlfetch.set_default_fetch_deadline(10) self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = monorail.issues().list(projectId='chromium', q=self.request.get('q'), can='open').execute() self.response.write(json.dumps(result)) elif self.request.get('site') == 'issue': urlfetch.set_default_fetch_deadline(10) self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = monorail.issues().get( projectId='chromium', issueId=self.request.get('issueId')).execute() self.response.write(json.dumps(result)) elif self.request.get('site') == 'comments': urlfetch.set_default_fetch_deadline(10) self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = monorail.issues().comments().list( projectId='chromium', issueId=self.request.get('issueId')).execute() self.response.write(json.dumps(result))
def generate_jwt(): """Generates a signed JSON Web Token using a service account.""" credentials = AppAssertionCredentials("https://www.googleapis.com/auth/iam") http_auth = credentials.authorize(httplib2.Http()) service = build(serviceName="iam", version="v1", http=http_auth) now = int(time.time()) header_json = json.dumps({"typ": "JWT", "alg": "RS256"}) payload_json = json.dumps( { "iat": now, # expires after one hour. "exp": now + 3600, # iss is the service account email. "iss": SERVICE_ACCOUNT_EMAIL, "sub": SERVICE_ACCOUNT_EMAIL, # aud must match 'audience' in the security configuration in your # swagger spec.It can be any string. "aud": "echo.endpoints.sample.google.com", "email": SERVICE_ACCOUNT_EMAIL, } ) headerAndPayload = "{}.{}".format(base64.urlsafe_b64encode(header_json), base64.urlsafe_b64encode(payload_json)) slist = ( service.projects() .serviceAccounts() .signBlob(name=SERVICE_ACCOUNT, body={"bytesToSign": base64.b64encode(headerAndPayload)}) ) res = slist.execute() signature = base64.urlsafe_b64encode(base64.decodestring(res["signature"])) signed_jwt = "{}.{}".format(headerAndPayload, signature) return signed_jwt
# found in the LICENSE file. """Classes representing the monitoring interface for tasks or devices.""" import base64 import httplib2 from google.appengine.api import memcache from oauth2client.contrib.appengine import AppAssertionCredentials from apiclient import discovery # Obtain service account credentials and authorize HTTP connection. credentials = AppAssertionCredentials( scope='https://www.googleapis.com/auth/userinfo.email') http = credentials.authorize(httplib2.Http(memcache)) def _get_swarming_api(server='chromium-swarm.appspot.com'): # Build a service object for interacting with the API. api_root = 'https://%s/_ah/api' % server api = 'swarming' version = 'v1' discovery_url = '%s/discovery/v1/apis/%s/%s/rest' % (api_root, api, version) return discovery.build( api, version, discoveryServiceUrl=discovery_url, http=http) swarming = _get_swarming_api() def _get_isolate_api(server='isolateserver.appspot.com'): # Build a service object for interacting with the API. api_root = 'https://%s/_ah/api' % server
def get(self): credentials = AppAssertionCredentials( "https://www.googleapis.com/auth/calendar.readonly") http_auth = credentials.authorize(Http()) cal_service = discovery.build('calendar', 'v3', http=http_auth) service_settings = ServiceSettings.query().get() if not service_settings: service_settings = ServiceSettings() next_sync_token = service_settings.cal_sync_token cal_events = [] if next_sync_token: now = None else: now = strict_rfc3339.now_to_rfc3339_utcoffset() try: events_result = cal_service.events().list( calendarId="*****@*****.**", timeMin=now, syncToken=next_sync_token).execute() except: service_settings.cal_sync_token = None service_settings.put() raise cal_events += events_result.get('items', []) next_page_token = events_result.get('nextPageToken', None) while next_page_token: events_result = cal_service.events().list( calendarId="*****@*****.**", timeMin=now, syncToken=next_sync_token, pageToken=next_page_token).execute() cal_events += events_result.get('items', []) next_page_token = events_result.get('nextPageToken', None) next_sync_token = events_result.get("nextSyncToken", None) service_settings.cal_sync_token = next_sync_token service_settings.put() for cal_event in cal_events: cal_id = cal_event.get("id") event = Event.query().filter(Event.cal_id == cal_id).get() if event: q = taskqueue.Queue('default') for task in event.tasks: q.delete_tasks(taskqueue.Task(name=task)) event.tasks = [] if cal_event.get("status") == "cancelled": event.key.delete() logging.info("Event deleted: %s", event) continue else: event = Event(cal_id=cal_id) event.put() summary = cal_event.get("summary") description = cal_event.get("description") start = cal_event.get("start") end = cal_event.get("end") start = parse_date_time(start.get("date"), start.get("dateTime")) end = parse_date_time(end.get("date"), end.get("dateTime")) event.summary = summary event.description = description event.start = start event.end = end set_event_reminders(event) event.put() logging.info("New event created: %s", event)
def get_http(): credentials = AppAssertionCredentials( scope='https://www.googleapis.com/auth/compute') http = credentials.authorize(httplib2.Http(memcache)) return http
def get_credentials(): """Authorizes a request to Google Cloud Platform.""" credentials = AppAssertionCredentials( 'https://www.googleapis.com/auth/cloud-platform') http_auth = credentials.authorize(Http()) return build('compute', 'v1', http=http_auth)
#from oauth2client.client import GoogleCredentials #credentials = GoogleCredentials.get_application_default() # from oauth2client.service_account import ServiceAccountCredentials # scopes = ['https://www.googleapis.com/auth/compute'] # cred_file = "./alexwiss-07e55c19e381.json" # credentials = ServiceAccountCredentials.from_json_keyfile_name(cred_file, scopes=scopes) redirect_uri = "http://localhost:8888/callback" #from oauth2client.contrib.gce import AppAssertionCredentials from oauth2client.contrib.appengine import AppAssertionCredentials #from oauth2client.client import GoogleCredentials #credentials = GoogleCredentials.get_application_default() credentials = AppAssertionCredentials( 'https://www.googleapis.com/auth/compute') http_auth = credentials.authorize(Http()) service = discovery.build('compute', 'v1', credentials=credentials) project = 'alexwiss-website' # TODO: Update placeholder value. zone = 'us-central1-f' user = "******" class Instance(ndb.Model): user = ndb.StringProperty(indexed=True) name = ndb.StringProperty(indexed=False) expire_dttm = ndb.DateTimeProperty(auto_now_add=False) def create_app(config, debug=False, testing=False, config_overrides=None): app = Flask(__name__) app.config.from_object(config)
def build_request(_, *args, **kwargs): credentials = AppAssertionCredentials( scope='https://www.googleapis.com/auth/bigquery') new_http = credentials.authorize(httplib2.Http()) return apiclient.http.HttpRequest(new_http, *args, **kwargs)
def get(self): scope = 'https://www.googleapis.com/auth/userinfo.email' credentials = AppAssertionCredentials(scope) http = credentials.authorize(Http()) MONORAIL_DISCOVERY_URL = ( 'https://monorail-prod.appspot.com/_ah/api/discovery/v1/apis/' '{api}/{apiVersion}/rest') monorail = build('monorail', 'v1', discoveryServiceUrl=MONORAIL_DISCOVERY_URL, http=http) scope = "https://www.googleapis.com/auth/gerritcodereview" auth_token, _ = app_identity.get_access_token(scope) if self.request.get('site') == 'issues': urlfetch.set_default_fetch_deadline(10) startIndex = self.request.get('start') try: startIndex = int(startIndex) except: startIndex = 0 self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = monorail.issues().list(projectId='chromium', q=self.request.get('q'), can='open', startIndex=startIndex).execute() self.response.write(json.dumps(result)) elif self.request.get('site') == 'issue': urlfetch.set_default_fetch_deadline(10) self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = monorail.issues().get( projectId='chromium', issueId=self.request.get('issueId')).execute() self.response.write(json.dumps(result)) elif self.request.get('site') == 'comments': urlfetch.set_default_fetch_deadline(10) startIndex = self.request.get('start') try: startIndex = int(startIndex) except: startIndex = 0 maxResults = self.request.get('max') try: maxResults = int(maxResults) if (maxResults > 200): maxResults = 200 logging.error( 'You can only fetch 200 comments at a time. If you need to fetch more comments than that please paginate using the startIndex.' ) except: maxResults = 0 self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = monorail.issues().comments().list( projectId='chromium', issueId=self.request.get('issueId'), maxResults=maxResults, startIndex=startIndex).execute() self.response.write(json.dumps(result)) elif self.request.get('site') == 'gerrit': urlfetch.set_default_fetch_deadline(10) self.response.headers.add_header("Access-Control-Allow-Origin", "*") result = urlfetch.fetch( url="https://chromium-review.googlesource.com/a/changes/?q=" + self.request.get('q') + "&o=" + self.request.get('o') + "&o=DETAILED_ACCOUNTS&o=REVIEWER_UPDATES", headers={"Authorization": "Bearer " + auth_token}) self.response.write(json.dumps(result.content[5:]))
import re from google.appengine.api import memcache from google.appengine.ext import webapp from google.appengine.ext.webapp import template from google.appengine.ext.webapp.util import run_wsgi_app from oauth2client.contrib.appengine import AppAssertionCredentials # Constants for the XSL stylesheet and the Google Cloud Storage URI. XSL = '\n<?xml-stylesheet href="/listing.xsl" type="text/xsl"?>\n'; URI = 'http://commondatastorage.googleapis.com' # Obtain service account credentials and authorize HTTP connection. credentials = AppAssertionCredentials( scope='https://www.googleapis.com/auth/devstorage.read_write') http = credentials.authorize(httplib2.Http(memcache)) class MainHandler(webapp.RequestHandler): def get(self): try: # Derive desired bucket name from path after domain name. bucket = self.request.path if bucket[-1] == '/': # Trim final slash, if necessary. bucket = bucket[:-1] # Send HTTP request to Google Cloud Storage to obtain bucket listing. resp, content = http.request(URI + bucket, "GET") if resp.status != 200: # If error getting bucket listing, raise exception.
def get(self): credentials = AppAssertionCredentials("https://www.googleapis.com/auth/calendar.readonly") http_auth = credentials.authorize(Http()) cal_service = discovery.build('calendar', 'v3', http=http_auth) service_settings = ServiceSettings.query().get() if not service_settings: service_settings = ServiceSettings() next_sync_token = service_settings.cal_sync_token cal_events = [] if next_sync_token: now = None else: now = strict_rfc3339.now_to_rfc3339_utcoffset() try: events_result = cal_service.events().list(calendarId="*****@*****.**", timeMin=now, syncToken=next_sync_token).execute() except: service_settings.cal_sync_token = None service_settings.put() raise cal_events += events_result.get('items', []) next_page_token = events_result.get('nextPageToken', None) while next_page_token: events_result = cal_service.events().list(calendarId="*****@*****.**", timeMin=now, syncToken=next_sync_token, pageToken=next_page_token).execute() cal_events += events_result.get('items', []) next_page_token = events_result.get('nextPageToken', None) next_sync_token = events_result.get("nextSyncToken", None) service_settings.cal_sync_token = next_sync_token service_settings.put() for cal_event in cal_events: cal_id = cal_event.get("id") event = Event.query().filter(Event.cal_id == cal_id).get() if event: q = taskqueue.Queue('default') for task in event.tasks: q.delete_tasks(taskqueue.Task(name=task)) event.tasks = [] if cal_event.get("status") == "cancelled": event.key.delete() logging.info("Event deleted: %s", event) continue else: event = Event(cal_id=cal_id) event.put() summary = cal_event.get("summary") description = cal_event.get("description") start = cal_event.get("start") end = cal_event.get("end") start = parse_date_time(start.get("date"), start.get("dateTime")) end = parse_date_time(end.get("date"), end.get("dateTime")) event.summary = summary event.description = description event.start = start event.end = end set_event_reminders(event) event.put() logging.info("New event created: %s", event)
def auth_bq(self): credentials = AppAssertionCredentials(scope=SCOPE) http = credentials.authorize(httplib2.Http()) bigquery = build('bigquery', 'v2', http=http) return bigquery