예제 #1
0
def replace_service_key(old_kid, kid, jwk, metadata, expiration_date):
    try:
        with db_transaction():
            key = db_for_update(
                ServiceKey.select().where(ServiceKey.kid == old_kid)).get()
            key.metadata.update(metadata)

            ServiceKey.create(
                name=key.name,
                kid=kid,
                service=key.service,
                jwk=jwk,
                metadata=key.metadata,
                expiration_date=expiration_date,
                rotation_duration=key.rotation_duration,
                approval=key.approval,
            )
            key.delete_instance()
    except ServiceKey.DoesNotExist:
        raise ServiceKeyDoesNotExist

    _notify_superusers(key)
    delete_all_notifications_by_path_prefix(
        "/service_key_approval/{0}".format(old_kid))
    _gc_expired(key.service)
예제 #2
0
def create_service_key(name, kid, service, jwk, metadata, expiration_date, rotation_duration=None):
  _verify_service_name(service)
  _gc_expired(service)

  key = ServiceKey.create(name=name, kid=kid, service=service, jwk=jwk, metadata=metadata,
                          expiration_date=expiration_date, rotation_duration=rotation_duration)

  _notify_superusers(key)
  return key