Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
RECIRCLE
/
portal
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
11
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
2e681869
authored
Aug 08, 2019
by
Chif Gergő
Browse files
Options
Browse Files
Download
Plain Diff
Resolve merge conflict in gitignore and Pipfile.lock
parents
31723e86
12683431
Pipeline
#820
failed with stage
in 1 minute 19 seconds
Changes
16
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
170 additions
and
36 deletions
+170
-36
.gitignore
+8
-0
.gitlab-ci.yml
+4
-8
Pipfile
+2
-1
Pipfile.lock
+17
-1
recircle/image/models.py
+24
-2
recircle/image/serializers.py
+10
-2
recircle/image/tests.py
+5
-2
recircle/image/views.py
+38
-14
recircle/instance/migrations/0010_merge_20190723_0841.py
+14
-0
recircle/instance/migrations/0010_merge_20190731_1215.py
+14
-0
recircle/instance/migrations/0011_merge_20190806_1052.py
+14
-0
recircle/instance/tests.py
+5
-2
recircle/recircle/settings/base.py
+1
-0
recircle/recircle/settings/local.py
+4
-0
recircle/storage/tests.py
+5
-2
recircle/template/tests.py
+5
-2
No files found.
.gitignore
View file @
2e681869
# IDEs
.vscode/
<<<<<<< HEAD
.idea/
# Byte-compiled / optimized / DLL files
...
...
@@ -87,3 +88,10 @@ clouds.yaml
=======
*.sqlite3
recircle/clouds.yaml
environment.sh
.idea/
__pycache__
>>>>>>> 126834316017d9a2654cc913e7eec8a47fee93e6
.gitlab-ci.yml
View file @
2e681869
image
:
python:3.6
stages
:
-
lint
-
test
before_script
:
-
pip install pipenv
-
pipenv install -d
-
git submodule sync --recursive
-
git submodule update --init --recursive
flake8
:
stage
:
lint
script
:
-
pipenv run flake8
-
pip install flake8
-
flake8
test
:
script
:
-
pip install pipenv
-
pipenv install -d
-
cd recircle
-
pipenv run python manage.py test
Pipfile
View file @
2e681869
...
...
@@ -8,15 +8,16 @@ httpie = "*"
flake8 = "*"
django-rest-swagger = "*"
coverage = "*"
django-nose = "*"
[packages]
django = "*"
djangorestframework = "*"
djoser = "*"
django-cors-headers = "*"
openstacksdk = "*"
python-novaclient = "*"
keystoneauth1 = "*"
djoser = "*"
[requires]
python_version = "3.6"
Pipfile.lock
View file @
2e681869
{
"_meta": {
"hash": {
"sha256": "
f991f85fb7c006559ee78cb35cc3a18089dfd0065a565f2b194c197cbf772a50
"
"sha256": "
8cb2efb1cfa79de96297c90953faf757011ca1f1ff4784ac05226a249001e1f5
"
},
"pipfile-spec": 6,
"requires": {
...
...
@@ -500,6 +500,14 @@
"index": "pypi",
"version": "==4.5.4"
},
"django-nose": {
"hashes": [
"sha256:58934a06a6932696e54c9e8af3fab49bf67ca9e9c840ad668cb7f51219808a07",
"sha256:f515d903cfaeda52c7a9198e0c8ed51563e82802b62a4e5fbd056fd830095318"
],
"index": "pypi",
"version": "==1.4.6"
},
"django-rest-swagger": {
"hashes": [
"sha256:48f6aded9937e90ae7cbe9e6c932b9744b8af80cc4e010088b3278c700e0685b",
...
...
@@ -599,6 +607,14 @@
],
"version": "==0.6.1"
},
"nose": {
"hashes": [
"sha256:9ff7c6cc443f8c51994b34a667bbcf45afd6d945be7477b52e97516fd17c53ac",
"sha256:dadcddc0aefbf99eea214e0f1232b94f2fa9bd98fa8353711dacb112bfcbbb2a",
"sha256:f1bffef9cbc82628f6e7d7b40d7e255aefaa1adb6a1b1d26c69a8b79e6208a98"
],
"version": "==1.3.7"
},
"openapi-codec": {
"hashes": [
"sha256:1bce63289edf53c601ea3683120641407ff6b708803b8954c8a876fe778d2145"
...
...
recircle/image/models.py
View file @
2e681869
...
...
@@ -82,7 +82,9 @@ class Image(models.Model):
uploaded_by_user
=
False
,
description
=
description
)
return
new_image
for
attr
,
value
in
new_image
.
__dict__
.
items
():
setattr
(
remote_image
,
attr
,
value
)
return
remote_image
@classmethod
def
create_from_user
(
cls
,
description
,
file_format
,
image_file
,
name
,
user
):
...
...
@@ -96,4 +98,24 @@ class Image(models.Model):
uploaded_by_user
=
True
,
description
=
description
)
return
new_image
for
attr
,
value
in
new_image
.
__dict__
.
items
():
setattr
(
remote_image
,
attr
,
value
)
return
remote_image
def
delete
(
self
):
interface
=
OpenstackImageManager
(
settings
.
CONNECTION
)
if
interface
.
delete
(
self
.
remote_id
):
super
()
.
delete
()
def
get
(
self
):
interface
=
OpenstackImageManager
(
settings
.
CONNECTION
)
image
=
interface
.
get
(
self
.
remote_id
)
for
attr
,
value
in
self
.
__dict__
.
items
():
setattr
(
image
,
attr
,
value
)
return
image
def
update
(
self
,
data
):
for
(
key
,
value
)
in
data
.
items
():
setattr
(
self
,
key
,
value
)
self
.
save
()
return
self
.
get
()
recircle/image/serializers.py
View file @
2e681869
...
...
@@ -3,9 +3,15 @@ from rest_framework import serializers
from
.models
import
Image
class
ImageUpdateSerializer
(
serializers
.
Serializer
):
name
=
serializers
.
CharField
(
required
=
False
)
description
=
serializers
.
CharField
(
required
=
False
)
class
ImageSerializer
(
serializers
.
ModelSerializer
):
image_file
=
serializers
.
FileField
(
write_only
=
True
)
file_format
=
serializers
.
CharField
(
max_length
=
10
,
write_only
=
True
)
file_format
=
serializers
.
CharField
(
max_length
=
10
)
size
=
serializers
.
IntegerField
()
class
Meta
:
model
=
Image
...
...
@@ -18,5 +24,7 @@ class ImageSerializer(serializers.ModelSerializer):
"created_at"
,
"uploaded_by_user"
,
"created_by"
,
"id"
,
"size"
,
)
read_only_fields
=
(
"created_at"
,
"uploaded_by_user"
,
"created_by"
,
"remote_id"
,
)
read_only_fields
=
(
"created_at"
,
"uploaded_by_user"
,
"created_by"
,
"remote_id"
,
"size"
,
)
recircle/image/tests.py
View file @
2e681869
#
from django.test import TestCase
from
django.test
import
TestCase
# Create your tests here.
class
ImageTest
(
TestCase
):
def
test_test
(
self
):
self
.
assertEqual
(
""
,
""
)
recircle/image/views.py
View file @
2e681869
# from django.shortcuts import render
from
rest_framework.viewsets
import
Model
ViewSet
from
rest_framework.viewsets
import
ViewSet
from
rest_framework.response
import
Response
from
django.shortcuts
import
get_object_or_404
from
rest_framework
import
status
from
django.core.exceptions
import
ObjectDoesNotExist
from
image.models
import
Image
from
image.serializers
import
ImageSerializer
from
image.serializers
import
ImageUpdateSerializer
class
ImageViewSet
(
ModelViewSet
):
serializer_class
=
ImageSerializer
queryset
=
Image
.
objects
.
all
()
# def list(self, request):
# return HttpResponse("list")
class
ImageViewSet
(
ViewSet
):
def
list
(
self
,
request
):
image_list
=
[]
images
=
Image
.
objects
.
all
()
for
image
in
images
:
image_list
.
append
(
image
.
get
())
serializer
=
ImageSerializer
(
image_list
,
many
=
True
)
return
Response
(
serializer
.
data
)
def
create
(
self
,
request
):
serializer
=
ImageSerializer
(
data
=
request
.
data
)
...
...
@@ -26,14 +34,30 @@ class ImageViewSet(ModelViewSet):
serializer
=
ImageSerializer
(
instance
=
new_image
)
return
Response
(
serializer
.
data
)
# def retrieve(self, request, pk=None):
# return HttpResponse("retrive")
def
retrieve
(
self
,
request
,
pk
=
None
):
queryset
=
Image
.
objects
.
all
()
image
=
get_object_or_404
(
queryset
,
pk
=
pk
)
serializer
=
ImageSerializer
(
instance
=
image
)
image
=
image
.
get
()
serializer
=
ImageSerializer
(
instance
=
image
)
return
Response
(
serializer
.
data
)
# def update(self, request, pk=None):
# return HttpResponse("update")
def
update
(
self
,
request
,
pk
=
None
):
serializer
=
ImageUpdateSerializer
(
data
=
request
.
data
)
serializer
.
is_valid
(
raise_exception
=
True
)
queryset
=
Image
.
objects
.
all
()
image
=
get_object_or_404
(
queryset
,
pk
=
pk
)
image
=
image
.
update
(
serializer
.
validated_data
)
serializer
=
ImageSerializer
(
instance
=
image
)
return
Response
(
serializer
.
data
)
#
def partial_update(self, request, pk=None):
# return HttpResponse("patch"
)
def
partial_update
(
self
,
request
,
pk
=
None
):
return
self
.
update
(
request
,
pk
)
# def destroy(self, request, pk=None):
# return HttpResponse("delete")
def
destroy
(
self
,
request
,
pk
=
None
):
try
:
image
=
Image
.
objects
.
get
(
id
=
pk
)
image
.
delete
()
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
except
ObjectDoesNotExist
:
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
recircle/instance/migrations/0010_merge_20190723_0841.py
0 → 100644
View file @
2e681869
# Generated by Django 2.2.3 on 2019-07-23 08:41
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'instance'
,
'0009_auto_20190715_0929'
),
(
'instance'
,
'0009_auto_20190715_1354'
),
]
operations
=
[
]
recircle/instance/migrations/0010_merge_20190731_1215.py
0 → 100644
View file @
2e681869
# Generated by Django 2.2.3 on 2019-07-31 12:15
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'instance'
,
'0009_auto_20190715_0929'
),
(
'instance'
,
'0009_auto_20190715_1354'
),
]
operations
=
[
]
recircle/instance/migrations/0011_merge_20190806_1052.py
0 → 100644
View file @
2e681869
# Generated by Django 2.2.3 on 2019-08-06 08:52
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'instance'
,
'0010_merge_20190731_1215'
),
(
'instance'
,
'0010_merge_20190723_0841'
),
]
operations
=
[
]
recircle/instance/tests.py
View file @
2e681869
#
from django.test import TestCase
from
django.test
import
TestCase
# Create your tests here.
class
InstanceTest
(
TestCase
):
def
test_test
(
self
):
self
.
assertEqual
(
""
,
""
)
recircle/recircle/settings/base.py
View file @
2e681869
...
...
@@ -41,6 +41,7 @@ INSTALLED_APPS = [
"djoser"
,
"rest_framework_swagger"
,
"corsheaders"
,
"django_nose"
,
]
LOCAL_APPS
=
[
...
...
recircle/recircle/settings/local.py
View file @
2e681869
...
...
@@ -11,3 +11,6 @@ for i in LOCAL_APPS:
ADMIN_ENABLED
=
True
ALLOWED_HOSTS
=
[
'*'
]
TEST_RUNNER
=
'django_nose.NoseTestSuiteRunner'
NOSE_ARGS
=
LOCAL_APPS
\ No newline at end of file
recircle/storage/tests.py
View file @
2e681869
#
from django.test import TestCase
from
django.test
import
TestCase
# Create your tests here.
class
StorageTest
(
TestCase
):
def
test_test
(
self
):
self
.
assertEqual
(
""
,
""
)
recircle/template/tests.py
View file @
2e681869
#
from django.test import TestCase
from
django.test
import
TestCase
# Create your tests here.
class
TemplateTest
(
TestCase
):
def
test_test
(
self
):
self
.
assertEqual
(
""
,
""
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment