Skip to content

Commit

Permalink
Rename gmn package dir for consistency
Browse files Browse the repository at this point in the history
  • Loading branch information
rogerdahl committed Jun 9, 2017
1 parent 818d926 commit 6518e9a
Show file tree
Hide file tree
Showing 485 changed files with 1,042 additions and 1,001 deletions.
2 changes: 1 addition & 1 deletion .flake8
Original file line number Diff line number Diff line change
Expand Up @@ -20,4 +20,4 @@ ignore = E111,E114,E121,E122,E125,E126,E127,E131,E261,E265,E266
addopts = --failed-first -p no:random-order --cov=. --cov-report=term --cov-report=xml
testpaths = ./lib_common ./lib_client ./test_utilities ./gmn ./client_cli ./client_onedrive
python_files = test_*.py
DJANGO_SETTINGS_MODULE = gmn.settings_test
DJANGO_SETTINGS_MODULE = d1_gmn.settings_test
2 changes: 1 addition & 1 deletion .isort.cfg
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
[settings]
forced_separate=d1_common,d1_client,django,gmn,d1_test
forced_separate=d1_common,d1_client,django,d1_gmn,d1_test
indent=' '
line_length=80
#multi_line_output=3
Expand Down
2 changes: 1 addition & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ install:
script:
# Travis clones the project to $TRAVIS_BUILD_DIR and cds there before running
# the scripts.
- python ./dev_tools/setup_all.py $TRAVIS_BUILD_DIR develop
- python ./dev_tools/src/d1_dev/setup-all.py develop
# Debug
- pip freeze
- pip check
Expand Down
2 changes: 1 addition & 1 deletion gmn/src/gmn/__init__.py → gmn/src/d1_gmn/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.

default_app_config = 'gmn.app.startup.GMNStartupChecks'
default_app_config = 'd1_gmn.app.startup.GMNStartupChecks'
File renamed without changes.
18 changes: 9 additions & 9 deletions gmn/src/gmn/app/auth.py → gmn/src/d1_gmn/app/auth.py
Original file line number Diff line number Diff line change
Expand Up @@ -27,13 +27,13 @@

import logging

import d1_common.const
import d1_gmn.app.models
import d1_gmn.app.node_registry

import d1_common.cert.subjects
import d1_common.types.exceptions
import d1_common.const
import d1_common.types.dataoneTypes

import gmn.app.models
import gmn.app.node_registry
import d1_common.types.exceptions

import django.conf
import django.core.cache
Expand Down Expand Up @@ -90,7 +90,7 @@ def level_to_action(level):

def get_trusted_subjects():
return (
gmn.app.node_registry.get_cn_subjects() |
d1_gmn.app.node_registry.get_cn_subjects() |
django.conf.settings.DATAONE_TRUSTED_SUBJECTS |
{_get_client_side_certificate_subject()}
)
Expand Down Expand Up @@ -168,14 +168,14 @@ def is_allowed(request, level, pid):
# and when the ACL is updated.
# - The permission must be for an action level that is the same or higher than
# the requested action level.
return gmn.app.models.Permission.objects.filter(
return d1_gmn.app.models.Permission.objects.filter(
sciobj__pid__did=pid, subject__subject__in=request.all_subjects_set,
level__gte=level
).exists()


def has_create_update_delete_permission(request):
return gmn.app.models.WhitelistForCreateUpdateDelete.objects.filter(
return d1_gmn.app.models.WhitelistForCreateUpdateDelete.objects.filter(
subject__subject__in=request.all_subjects_set).exists() \
or is_trusted_subject(request)

Expand All @@ -198,7 +198,7 @@ def assert_allowed(request, level, pid):
Raise NotFound if object does not exist.
Return NoneType if subject is allowed.
"""
if not gmn.app.models.ScienceObject.objects.filter(pid__did=pid).exists():
if not d1_gmn.app.models.ScienceObject.objects.filter(pid__did=pid).exists():
raise d1_common.types.exceptions.NotFound(
0, u'Attempted to perform operation on non-existing object. pid="{}"'.
format(pid)
Expand Down
23 changes: 12 additions & 11 deletions gmn/src/gmn/app/db_filter.py → gmn/src/d1_gmn/app/db_filter.py
Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,20 @@

import re

import d1_gmn.app.models
import d1_gmn.app.views.asserts
import d1_gmn.app.views.util

import d1_common.const
import d1_common.date_time
import d1_common.types.exceptions

import gmn.app.models
import gmn.app.views.asserts
import gmn.app.views.util


def add_access_policy_filter(query, request, column_name):
q = (
gmn.app.models.Subject.objects.filter(subject__in=request.all_subjects_set)
.values('permission__sciobj')
d1_gmn.app.models.Subject.objects.filter(
subject__in=request.all_subjects_set
).values('permission__sciobj')
)
filter_arg = '{}__in'.format(column_name)
return query.filter(**{filter_arg: q})
Expand All @@ -62,8 +63,8 @@ def add_replica_filter(query, request):
bool_val = request.GET.get(param_name, True)
if bool_val is None:
return query
gmn.app.views.asserts.is_bool_param(param_name, bool_val)
if gmn.app.views.util.is_false_param(bool_val):
d1_gmn.app.views.asserts.is_bool_param(param_name, bool_val)
if d1_gmn.app.views.util.is_false_param(bool_val):
query = query.filter(pid__localreplica_pid__isnull=True)
return query

Expand All @@ -72,10 +73,10 @@ def add_bool_filter(query, request, column_name, param_name):
bool_val = request.GET.get(param_name, None)
if bool_val is None:
return query
gmn.app.views.asserts.is_bool_param(param_name, bool_val)
d1_gmn.app.views.asserts.is_bool_param(param_name, bool_val)
filter_arg = column_name
return query.filter(
**{filter_arg: gmn.app.views.util.is_true_param(bool_val)}
**{filter_arg: d1_gmn.app.views.util.is_true_param(bool_val)}
)


Expand All @@ -94,7 +95,7 @@ def add_datetime_filter(query, request, column_name, param_name, operator):
0, u'Invalid date format for parameter. parameter="{}" date="{}", '
u'parse_error="{}"'.format(param_name, date_str, str(e))
)
gmn.app.views.asserts.date_is_utc(date)
d1_gmn.app.views.asserts.date_is_utc(date)
date = d1_common.date_time.strip_timezone(date)
filter_arg = '{}__{}'.format(column_name, operator)
return query.filter(**{filter_arg: date})
Expand Down
22 changes: 12 additions & 10 deletions gmn/src/gmn/app/event_log.py → gmn/src/d1_gmn/app/event_log.py
Original file line number Diff line number Diff line change
Expand Up @@ -25,24 +25,26 @@

from __future__ import absolute_import

import d1_common.types.exceptions
import d1_gmn.app.auth
import d1_gmn.app.models

import gmn.app.auth
import gmn.app.models
import d1_common.types.exceptions


def _log(pid, request, event, timestamp=None):
"""Log an operation that was performed on a sciobj.
"""
ip_address = request.META['REMOTE_ADDR']
user_agent = request.META['HTTP_USER_AGENT']
subject = gmn.app.auth.get_trusted_subjects_string()
subject = d1_gmn.app.auth.get_trusted_subjects_string()

# Support logging events that are not associated with an object.
object_model = None
if pid is not None:
try:
object_model = gmn.app.models.ScienceObject.objects.filter(pid__did=pid)[0]
object_model = d1_gmn.app.models.ScienceObject.objects.filter(
pid__did=pid
)[0]
except IndexError:
err_msg = u'Attempted to create event log for non-existing object. pid="{}"'\
.format(pid)
Expand All @@ -62,12 +64,12 @@ def _log(pid, request, event, timestamp=None):


def create_log_entry(object_model, event, ip_address, user_agent, subject):
event_log_model = gmn.app.models.EventLog()
event_log_model = d1_gmn.app.models.EventLog()
event_log_model.sciobj = object_model
event_log_model.event = gmn.app.models.event(event)
event_log_model.ip_address = gmn.app.models.ip_address(ip_address)
event_log_model.user_agent = gmn.app.models.user_agent(user_agent)
event_log_model.subject = gmn.app.models.subject(subject)
event_log_model.event = d1_gmn.app.models.event(event)
event_log_model.ip_address = d1_gmn.app.models.ip_address(ip_address)
event_log_model.user_agent = d1_gmn.app.models.user_agent(user_agent)
event_log_model.subject = d1_gmn.app.models.subject(subject)
event_log_model.save()
return event_log_model

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,12 @@

from __future__ import absolute_import

import d1_gmn.app.models

import d1_common.checksum
import d1_common.types.dataoneTypes
import d1_common.types.exceptions

import gmn.app.models

import django.conf
from django.db.models import Sum

Expand All @@ -38,12 +38,12 @@

def is_local_replica(pid):
"""Includes unprocessed replication requests."""
return gmn.app.models.LocalReplica.objects.filter(pid__did=pid).exists()
return d1_gmn.app.models.LocalReplica.objects.filter(pid__did=pid).exists()


def is_unprocessed_local_replica(pid):
"""Is local replica with status "queued"."""
return gmn.app.models.LocalReplica.objects.filter(
return d1_gmn.app.models.LocalReplica.objects.filter(
pid__did=pid,
info__status__status='queued',
).exists()
Expand All @@ -52,7 +52,7 @@ def is_unprocessed_local_replica(pid):
def is_revision_chain_placeholder(pid):
"""For replicas, the PIDs referenced in revision chains are reserved for
use by other replicas."""
return gmn.app.models.ReplicaRevisionChainReference.objects.filter(
return d1_gmn.app.models.ReplicaRevisionChainReference.objects.filter(
pid__did=pid
).exists()

Expand All @@ -65,14 +65,14 @@ def get_total_size_of_replicas():
def get_total_size_of_completed_replicas():
"""Return the total number of bytes of successfully processed replicas.
"""
return gmn.app.models.LocalReplica.objects.aggregate(
return d1_gmn.app.models.LocalReplica.objects.aggregate(
Sum('pid__scienceobject__size')
)['pid__scienceobject__size__sum'] or 0


def get_total_size_of_queued_replicas():
"""Return the total number of bytes of requested, unprocessed replicas."""
return gmn.app.models.ReplicationQueue.objects.filter(
return d1_gmn.app.models.ReplicationQueue.objects.filter(
local_replica__info__status__status='queued'
).aggregate(Sum('size'))['size__sum'] or 0

Expand All @@ -83,22 +83,22 @@ def add_to_replication_queue(source_node_urn, sysmeta_pyxb):
Preconditions:
- sysmeta_pyxb.identifier is verified not to exist. E.g., with
gmn.app.views.asserts.is_unused(pid).
d1_gmn.app.views.asserts.is_unused(pid).
Postconditions:
- The database is set up to track a new replica, with initial status,
"queued".
- The PID provided in the sysmeta_pyxb is reserved for the replica.
"""
replica_info_model = gmn.app.models.replica_info(
replica_info_model = d1_gmn.app.models.replica_info(
status_str='queued',
source_node_urn=source_node_urn,
)
local_replica_model = gmn.app.models.local_replica(
pid=gmn.app.util.uvalue(sysmeta_pyxb.identifier),
local_replica_model = d1_gmn.app.models.local_replica(
pid=d1_gmn.app.util.uvalue(sysmeta_pyxb.identifier),
replica_info_model=replica_info_model,
)
gmn.app.models.replication_queue(
d1_gmn.app.models.replication_queue(
local_replica_model=local_replica_model,
size=sysmeta_pyxb.size,
)
Expand Down Expand Up @@ -140,13 +140,13 @@ def assert_request_complies_with_replication_policy(sysmeta_pyxb):
raise d1_common.types.exceptions.InvalidRequest(
0, u'This node does not accept replicas from originating node. '
u'originating_node="{}"'.
format(gmn.app.util.uvalue(sysmeta_pyxb.originMemberNode))
format(d1_gmn.app.util.uvalue(sysmeta_pyxb.originMemberNode))
)

if len(django.conf.settings.REPLICATION_ALLOWEDOBJECTFORMAT):
if sysmeta_pyxb.formatId.value(
) not in django.conf.settings.REPLICATION_ALLOWEDOBJECTFORMAT:
raise d1_common.types.exceptions.InvalidRequest(
0, u'This node does not accept objects of specified format. format="{}"'
.format(gmn.app.util.uvalue(sysmeta_pyxb.formatId))
.format(d1_gmn.app.util.uvalue(sysmeta_pyxb.formatId))
)
File renamed without changes.
Original file line number Diff line number Diff line change
Expand Up @@ -35,13 +35,14 @@

import logging

import d1_gmn.app.management.commands.util
import d1_gmn.app.middleware.session_cert
import d1_gmn.app.models

import d1_common.types.exceptions
import d1_common.util
import django.core.management.base

import gmn.app.management.commands.util
import gmn.app.middleware.session_cert
import gmn.app.models
import django.core.management.base


# noinspection PyClassHasNoInit
Expand Down Expand Up @@ -72,7 +73,7 @@ def add_arguments(self, parser):
)

def handle(self, *args, **options):
gmn.app.management.commands.util.log_setup(options['debug'])
d1_gmn.app.management.commands.util.log_setup(options['debug'])
if options['command'] not in ('view', 'whitelist'):
logging.info(self.missing_args_message)
return
Expand All @@ -84,7 +85,7 @@ def handle(self, *args, **options):
def _handle(self, command_str, cert_pem_path):
cert_pem = self._read_pem_cert(cert_pem_path)
primary_str, equivalent_set = (
gmn.app.middleware.session_cert.get_authenticated_subjects(cert_pem)
d1_gmn.app.middleware.session_cert.get_authenticated_subjects(cert_pem)
)
if command_str == 'view':
self._view(primary_str, equivalent_set)
Expand All @@ -103,14 +104,14 @@ def _view(self, primary_str, equivalent_set):
logging.info(u' {}'.format(subject_str))

def _whitelist(self, primary_str):
if gmn.app.models.WhitelistForCreateUpdateDelete.objects.filter(
subject=gmn.app.models.subject(primary_str)
if d1_gmn.app.models.WhitelistForCreateUpdateDelete.objects.filter(
subject=d1_gmn.app.models.subject(primary_str)
).exists():
raise django.core.management.base.CommandError(
u'Create, update and delete already enabled for subject: {}'.
format(primary_str)
)
gmn.app.models.whitelist_for_create_update_delete(primary_str)
d1_gmn.app.models.whitelist_for_create_update_delete(primary_str)
logging.info(
u'Enabled create, update and delete for subject: {}'.format(primary_str)
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,10 @@

import logging

import django.core.management.base
import d1_gmn.app.management.commands.util
import d1_gmn.app.models

import gmn.app.management.commands.util
import gmn.app.models
import django.core.management.base


# noinspection PyClassHasNoInit
Expand All @@ -51,22 +51,22 @@ def add_arguments(self, parser):
parser.add_argument('path', type=str, help='path to export file')

def handle(self, *args, **options):
gmn.app.management.commands.util.log_setup(options['debug'])
d1_gmn.app.management.commands.util.log_setup(options['debug'])
logging.info(
u'Running management command: {}'.
format(gmn.app.management.commands.util.get_command_name())
format(d1_gmn.app.management.commands.util.get_command_name())
)
gmn.app.management.commands.util.abort_if_other_instance_is_running()
d1_gmn.app.management.commands.util.abort_if_other_instance_is_running()
self.export_object_list(options['path'], options['public'])
logging.info(u'Exported object list to: {}'.format(options['path']))

def export_object_list(self, path, public_only):
with open(path, 'w') as f:
for sciobj_model in gmn.app.models.ScienceObject.objects.all():
for sciobj_model in d1_gmn.app.models.ScienceObject.objects.all():
# Permissions are cumulative, so if a subject has permissions for an
# object, that permissions are guaranteed to include "read", the
# lowest level permission.
for permission_model in gmn.app.models.Permission.objects.filter(
for permission_model in d1_gmn.app.models.Permission.objects.filter(
sciobj=sciobj_model
):
if public_only:
Expand Down
Loading

0 comments on commit 6518e9a

Please sign in to comment.