Merge pull request #1458 from rtfd/refactor-tastyapi-package

Refactor tastyapi package
front-end-standardization
Eric Holscher 2015-07-20 13:43:18 -07:00
commit d0a97a6882
17 changed files with 33 additions and 64 deletions

View File

@ -15,10 +15,3 @@ if USER and PASS:
else:
log.warning("SLUMBER_USERNAME/PASSWORD settings are not set")
api = slumber.API(base_url='%s/api/v1/' % API_HOST)
if USER and PASS:
log.debug("Using slumber v2 with user %s, pointed at %s" % (USER, API_HOST))
apiv2 = slumber.API(base_url='%s/api/v2/' % API_HOST, auth=(USER, PASS))
else:
log.warning("SLUMBER_USERNAME/PASSWORD settings are not set")
apiv2 = slumber.API(base_url='%s/api/v2/' % API_HOST)

View File

@ -5,7 +5,6 @@ import json
from django.core.management.base import BaseCommand
from projects import tasks
from tastyapi import api
log = logging.getLogger(__name__)

View File

@ -3,7 +3,7 @@ from optparse import make_option
from django.core.management.base import BaseCommand
from projects import tasks
from tastyapi import api
from api.client import api
log = logging.getLogger(__name__)

View File

@ -3,7 +3,7 @@ from optparse import make_option
from django.core.management.base import BaseCommand
from projects import tasks
from tastyapi import api
from api.client import api
log = logging.getLogger(__name__)

View File

@ -14,7 +14,7 @@ from builds import utils as version_utils
from doc_builder.base import BaseBuilder, restoring_chdir
from projects.utils import run, safe_write
from projects.exceptions import ProjectImportError
from tastyapi import apiv2
from restapi.client import api
log = logging.getLogger(__name__)
@ -109,7 +109,7 @@ class BaseSphinx(BaseBuilder):
rtd_ctx['downloads'] = self.version.get_downloads(pretty=True)
else:
rtd_ctx['versions'] = project.api_versions()
rtd_ctx['downloads'] = (apiv2.version(self.version.pk)
rtd_ctx['downloads'] = (api.version(self.version.pk)
.get()['downloads'])
rtd_string = template_loader.get_template('doc_builder/conf.py.tmpl').render(rtd_ctx)

View File

@ -6,7 +6,7 @@ from django.conf import settings
from requests_oauthlib import OAuth1Session, OAuth2Session
from .models import GithubProject, GithubOrganization, BitbucketProject, BitbucketTeam
from tastyapi import apiv2
from restapi.client import api
log = logging.getLogger(__name__)
@ -82,7 +82,7 @@ def get_token_for_project(project, force_local=False):
token = None
try:
if getattr(settings, 'DONT_HIT_DB', True) and not force_local:
token = apiv2.project(project.pk).token().get()['token']
token = api.project(project.pk).token().get()['token']
else:
for user in project.users.all():
tokens = SocialToken.objects.filter(account__user__username=user.username, app__provider='github')

View File

@ -24,7 +24,7 @@ from projects.utils import make_api_version, symlink, update_static_metadata
from projects.version_handling import determine_stable_version
from projects.version_handling import version_windows
from taggit.managers import TaggableManager
from tastyapi.slum import api
from api.client import api
from vcs_support.base import VCSProject
from vcs_support.backends import backend_cls

View File

@ -6,7 +6,7 @@ import redis
from core.utils import run_on_app_servers
from projects.constants import LOG_TEMPLATE
from tastyapi import apiv2
from restapi.client import api
log = logging.getLogger(__name__)
@ -49,7 +49,7 @@ def symlink_subprojects(version):
"""
# Subprojects
if getattr(settings, 'DONT_HIT_DB', True):
subproject_slugs = [data['slug'] for data in apiv2.project(version.project.pk).subprojects.get()['subprojects']]
subproject_slugs = [data['slug'] for data in api.project(version.project.pk).subprojects.get()['subprojects']]
else:
rels = version.project.subprojects.all()
subproject_slugs = [rel.child.slug for rel in rels]
@ -77,7 +77,7 @@ def symlink_translations(version):
translations = {}
if getattr(settings, 'DONT_HIT_DB', True):
for trans in (apiv2
for trans in (api
.project(version.project.pk)
.translations.get()['translations']):
translations[trans['language']] = trans['slug']

View File

@ -29,12 +29,12 @@ from projects.constants import LOG_TEMPLATE
from builds.constants import STABLE
from projects import symlinks
from privacy.loader import Syncer
from tastyapi import api, apiv2
from search.parse_json import process_all_json_files
from search.utils import process_mkdocs_json
from restapi.utils import index_search_request
from vcs_support import utils as vcs_support_utils
import tastyapi
import api.client
import restapi.client
try:
from readthedocs.projects.signals import before_vcs, after_vcs, before_build, after_build
@ -69,8 +69,8 @@ def update_docs(pk, version_pk=None, build_pk=None, record=True, docker=False,
"""
# Dependency injection to allow for testing
if api is None:
api = tastyapi.api
apiv2 = tastyapi.apiv2
api = api.client.api
apiv2 = restapi.client.api
else:
apiv2 = api
@ -223,7 +223,7 @@ def update_imported_docs(version_pk, api=None):
Check out or update the given project's repository.
"""
if api is None:
api = tastyapi.api
api = api.client.api
version_data = api.version(version_pk).get()
version = make_api_version(version_data)

View File

@ -19,7 +19,7 @@ log = logging.getLogger(__name__)
def version_from_slug(slug, version):
from projects import tasks
from builds.models import Version
from tastyapi import apiv2 as api
from restapi.client import api
if getattr(settings, 'DONT_HIT_DB', True):
version_data = api.version().get(project=slug, slug=version)['results'][0]
v = tasks.make_api_version(version_data)

View File

@ -0,0 +1,17 @@
import slumber
import logging
from django.conf import settings
log = logging.getLogger(__name__)
USER = getattr(settings, 'SLUMBER_USERNAME', None)
PASS = getattr(settings, 'SLUMBER_PASSWORD', None)
API_HOST = getattr(settings, 'SLUMBER_API_HOST', 'https://readthedocs.org')
if USER and PASS:
log.debug("Using slumber v2 with user %s, pointed at %s" % (USER, API_HOST))
api = slumber.API(base_url='%s/api/v2/' % API_HOST, auth=(USER, PASS))
else:
log.warning("SLUMBER_USERNAME/PASSWORD settings are not set")
api = slumber.API(base_url='%s/api/v2/' % API_HOST)

View File

@ -270,8 +270,6 @@ ABSOLUTE_URL_OVERRIDES = {
INTERNAL_IPS = ('127.0.0.1',)
IMPORT_EXTERNAL_DATA = True
backup_count = 1000
maxBytes = 500 * 100 * 100
if LOG_DEBUG:

View File

@ -34,7 +34,6 @@ WEBSOCKET_HOST = None
HAYSTACK_CONNECTIONS = {'default': {}}
IMPORT_EXTERNAL_DATA = False
DONT_HIT_DB = True
DONT_HIT_API = True
NGINX_X_ACCEL_REDIRECT = True

View File

@ -47,7 +47,6 @@ SLUMBER_API_HOST = 'http://localhost:8000'
WEBSOCKET_HOST = 'localhost:8088'
IMPORT_EXTERNAL_DATA = False
DONT_HIT_DB = False
#PRODUCTION_DOMAIN = 'readthedocs.org'
#USE_SUBDOMAIN = True

View File

@ -38,7 +38,6 @@ HAYSTACK_CONNECTIONS = {
},
}
IMPORT_EXTERNAL_DATA = False
DONT_HIT_DB = False
NGINX_X_ACCEL_REDIRECT = True

View File

@ -1 +0,0 @@
from .slum import api, apiv2 # noqa

View File

@ -1,34 +0,0 @@
import logging
from django.conf import settings
from django.utils import simplejson as json
import requests
log = logging.getLogger(__name__)
SERVER_LIST = [
'http://djangopackages.com',
'http://plone.opencomparison.org',
'http://pyramid.opencomparison.org',
]
def import_project(project):
if not settings.IMPORT_EXTERNAL_DATA:
log.debug('importing of external data is disabled')
return False
for BASE_SERVER in SERVER_LIST:
API_SERVER = '%s/api/v1/' % BASE_SERVER
URL = API_SERVER + "package/%s/" % project.slug
try:
log.info("Trying to import from %s" % API_SERVER)
resp = requests.get(URL)
except AttributeError:
log.error("Socket error trying to pull from Open Comparison",
exc_info=True)
if resp.status_code == 200:
content_dict = json.loads(resp.content)
project.django_packages_url = (BASE_SERVER +
content_dict['absolute_url'])
project.save()
return True
return False