Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
D
djangoldp
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
0
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Container Registry
Model registry
Operate
Environments
Monitor
Incidents
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Fay Arnold
djangoldp
Commits
60b29471
Commit
60b29471
authored
4 years ago
by
Calum Mackervoy
Browse files
Options
Downloads
Patches
Plain Diff
logger messages for debugging
parent
22ff182b
No related branches found
No related tags found
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
djangoldp/activities/services.py
+21
-31
21 additions, 31 deletions
djangoldp/activities/services.py
djangoldp/models.py
+6
-2
6 additions, 2 deletions
djangoldp/models.py
with
27 additions
and
33 deletions
djangoldp/activities/services.py
+
21
−
31
View file @
60b29471
...
...
@@ -10,6 +10,10 @@ from djangoldp.models import Model
from
.objects
import
*
from
.verbs
import
*
import
logging
logger
=
logging
.
getLogger
(
'
djangoldp
'
)
class
ActivityPubService
(
object
):
...
...
@@ -18,7 +22,6 @@ class ActivityPubService(object):
@classmethod
def
build_object_tree
(
cls
,
instance
):
'''
builds an object tree from a parameterised instance
'''
print
(
'
build_object_tree
'
)
model
=
type
(
instance
)
info
=
model_meta
.
get_field_info
(
model
)
...
...
@@ -30,7 +33,7 @@ class ActivityPubService(object):
"
@id
"
:
instance
.
urlid
}
if
obj
[
'
@type
'
]
is
None
:
pr
in
t
(
'
[
WARN
] model
'
+
str
(
model
)
+
'
has no rdf_type
'
)
logger
.
warn
in
g
(
'
[
Backlink-Creation
] model
'
+
str
(
model
)
+
'
has no rdf_type
'
)
return
# append relations
...
...
@@ -46,12 +49,11 @@ class ActivityPubService(object):
}
if
sub_object
[
'
@type
'
]
is
None
:
pr
in
t
(
'
[
WARN
] model
'
+
str
(
type
(
value
))
+
'
has no rdf_type
'
)
logger
.
warn
in
g
(
'
[
Backlink-Creation
] model
'
+
str
(
type
(
value
))
+
'
has no rdf_type
'
)
continue
obj
[
field_name
]
=
sub_object
print
(
'
built object =
'
+
str
(
obj
))
return
obj
@classmethod
...
...
@@ -74,8 +76,6 @@ class ActivityPubService(object):
'
@id
'
:
actor
.
urlid
}
print
(
'
objectid
'
+
str
(
object
[
'
@id
'
]))
print
(
'
targetid
'
+
str
(
target
[
'
@id
'
]))
summary
=
str
(
object
[
'
@id
'
])
+
"
was added to
"
+
str
(
target
[
'
@id
'
])
# TODO: hd context is under @vocab.. does it work with hd:circlemember for example?
...
...
@@ -91,15 +91,13 @@ class ActivityPubService(object):
"
target
"
:
target
}
print
(
'
built
activity
'
+
str
(
activity
))
logger
.
debug
(
'
[Sender] sending add
activity
'
+
str
(
activity
))
inbox
=
ActivityPubService
.
_discover_inbox
(
target
[
'
@id
'
])
# send request
t
=
threading
.
Thread
(
target
=
cls
.
do_post
,
args
=
[
inbox
,
activity
])
t
.
start
()
print
()
print
()
@classmethod
def
send_remove_activity
(
cls
,
actor
,
object
,
origin
):
...
...
@@ -116,8 +114,6 @@ class ActivityPubService(object):
'
@id
'
:
actor
.
urlid
}
print
(
'
objectid
'
+
str
(
object
[
'
@id
'
]))
print
(
'
originid
'
+
str
(
origin
[
'
@id
'
]))
summary
=
str
(
object
[
'
@id
'
])
+
"
was removed from
"
+
str
(
origin
[
'
@id
'
])
activity
=
{
...
...
@@ -132,15 +128,13 @@ class ActivityPubService(object):
"
origin
"
:
origin
}
print
(
'
built
activity
'
+
str
(
activity
))
logger
.
debug
(
'
[Sender] sending remove
activity
'
+
str
(
activity
))
inbox
=
ActivityPubService
.
_discover_inbox
(
origin
[
'
@id
'
])
# send request
t
=
threading
.
Thread
(
target
=
cls
.
do_post
,
args
=
[
inbox
,
activity
])
t
.
start
()
print
()
print
()
@classmethod
def
send_delete_activity
(
cls
,
actor
,
object
,
origin
):
...
...
@@ -156,7 +150,6 @@ class ActivityPubService(object):
'
@id
'
:
actor
.
urlid
}
print
(
'
objectid
'
+
str
(
object
[
'
@id
'
]))
summary
=
str
(
object
[
'
@id
'
])
+
"
was deleted
"
activity
=
{
...
...
@@ -170,28 +163,24 @@ class ActivityPubService(object):
"
object
"
:
object
}
print
(
'
built
activity
'
+
str
(
activity
))
logger
.
debug
(
'
[Sender] sending delete
activity
'
+
str
(
activity
))
inbox
=
ActivityPubService
.
_discover_inbox
(
origin
[
'
@id
'
])
# send request
t
=
threading
.
Thread
(
target
=
cls
.
do_post
,
args
=
[
inbox
,
activity
])
t
.
start
()
print
()
print
()
@classmethod
def
do_post
(
cls
,
url
,
activity
,
auth
=
None
):
headers
=
{
'
Content-Type
'
:
'
application/ld+json
'
}
print
(
'
[THREAD] sending POST to
'
+
url
)
response
=
requests
.
post
(
url
,
data
=
json
.
dumps
(
activity
),
headers
=
headers
)
print
(
'
[THREAD] sent
'
+
response
.
text
)
logger
.
debug
(
'
[Sender] sent, receiver responded
'
+
response
.
text
)
return
response
def
_check_instance_for_backlinks
(
sender
,
instance
):
'''
Auxiliary function returns a dictionary of backlink targets from paramertised instance
'''
print
(
str
(
sender
))
info
=
model_meta
.
get_field_info
(
sender
)
# bounds checking
...
...
@@ -207,7 +196,7 @@ def _check_instance_for_backlinks(sender, instance):
target_type
=
Model
.
get_model_rdf_type
(
type
(
value
))
if
target_type
is
None
:
pr
in
t
(
'
[
WARN
] model
'
+
str
(
type
(
value
))
+
'
has no rdf_type
'
)
logger
.
warn
in
g
(
'
[
Create-Backlink
] model
'
+
str
(
type
(
value
))
+
'
has no rdf_type
'
)
continue
targets
[
value
.
urlid
]
=
{
...
...
@@ -215,7 +204,7 @@ def _check_instance_for_backlinks(sender, instance):
"
@id
"
:
value
.
urlid
}
print
(
'
built dict of targets:
'
+
str
(
targets
))
logger
.
debug
(
'
[Sender]
built dict of targets:
'
+
str
(
targets
))
return
targets
...
...
@@ -223,7 +212,7 @@ def _check_instance_for_backlinks(sender, instance):
def
check_save_for_backlinks
(
sender
,
instance
,
**
kwargs
):
if
kwargs
[
'
created
'
]
is
True
and
not
getattr
(
instance
,
'
backlink_created
'
,
False
)
\
and
getattr
(
instance
,
'
allow_create_backlink
'
,
False
):
print
(
'
-save_listener-
'
)
logger
.
debug
(
'
[Sender] Received created non-backlink instance
'
)
targets
=
_check_instance_for_backlinks
(
sender
,
instance
)
if
len
(
targets
.
items
())
>
0
:
...
...
@@ -238,7 +227,7 @@ def check_save_for_backlinks(sender, instance, **kwargs):
@receiver
([
post_delete
])
def
check_delete_for_backlinks
(
sender
,
instance
,
**
kwargs
):
if
getattr
(
instance
,
'
allow_create_backlink
'
,
False
):
print
(
'
-delete_listener-
'
)
logger
.
debug
(
'
[Sender] Received deleted non-backlink instance
'
)
targets
=
_check_instance_for_backlinks
(
sender
,
instance
)
if
len
(
targets
.
items
())
>
0
:
...
...
@@ -259,9 +248,11 @@ def check_m2m_for_backlinks(sender, instance, action, *args, **kwargs):
member_rdf_type
=
Model
.
get_model_rdf_type
(
member_model
)
container_rdf_type
=
Model
.
get_model_rdf_type
(
type
(
instance
))
if
member_rdf_type
is
None
or
container_rdf_type
is
None
:
print
(
'
an rdf_type was None! (member:
'
+
str
(
member_rdf_type
)
+
"
, container:
"
+
str
(
container_rdf_type
)
+
"
)
"
)
if
member_rdf_type
is
None
:
logger
.
warning
(
'
[Backlink-Creation] model
'
+
str
(
member_model
)
+
'
has no rdf_type
'
)
return
if
container_rdf_type
is
None
:
logger
.
warning
(
'
[Backlink-Creation] model
'
+
str
(
type
(
instance
))
+
'
has no rdf_type
'
)
return
# build list of targets (models affected by the change)
...
...
@@ -279,7 +270,8 @@ def check_m2m_for_backlinks(sender, instance, action, *args, **kwargs):
"
@id
"
:
obj
.
urlid
})
print
(
'
built targets:
'
+
str
(
targets
))
logger
.
debug
(
'
[Sender] checking many2many for backlinks
'
)
logger
.
debug
(
'
[Sender] built targets:
'
+
str
(
targets
))
if
len
(
targets
)
>
0
:
obj
=
{
...
...
@@ -287,7 +279,6 @@ def check_m2m_for_backlinks(sender, instance, action, *args, **kwargs):
"
@id
"
:
instance
.
urlid
}
if
action
==
'
post_add
'
:
print
(
'
-m2m_post_add_listener-
'
)
for
target
in
targets
:
ActivityPubService
.
send_add_activity
({
"
type
"
:
"
Service
"
,
...
...
@@ -295,7 +286,6 @@ def check_m2m_for_backlinks(sender, instance, action, *args, **kwargs):
},
obj
,
target
)
elif
action
==
"
post_remove
"
:
print
(
'
-m2m_post_remove_listener-
'
)
for
target
in
targets
:
ActivityPubService
.
send_remove_activity
({
"
type
"
:
"
Service
"
,
...
...
This diff is collapsed.
Click to expand it.
djangoldp/models.py
+
6
−
2
View file @
60b29471
...
...
@@ -15,6 +15,10 @@ from django.utils.decorators import classonlymethod
from
djangoldp.fields
import
LDPUrlField
from
djangoldp.permissions
import
LDPPermissions
import
logging
logger
=
logging
.
getLogger
(
'
djangoldp
'
)
class
LDPModelManager
(
models
.
Manager
):
...
...
@@ -152,10 +156,10 @@ class Model(models.Model):
@classonlymethod
def
get_or_create
(
cls
,
model
,
urlid
,
**
field_tuples
):
try
:
print
(
'
get_or_create
'
+
str
(
model
)
+
'
backlink
'
+
str
(
urlid
))
logger
.
debug
(
'
[
get_or_create
]
'
+
str
(
model
)
+
'
backlink
'
+
str
(
urlid
))
return
model
.
objects
.
get
(
urlid
=
urlid
)
except
ObjectDoesNotExist
:
print
(
'
creating..
'
)
logger
.
debug
(
'
[get_or_create]
creating..
'
)
if
model
is
get_user_model
():
field_tuples
[
'
username
'
]
=
uuid
.
uuid4
()
return
model
.
objects
.
create
(
urlid
=
urlid
,
backlink_created
=
True
,
**
field_tuples
)
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment