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
2db0bd2a
authored
May 30, 2019
by
Belákovics Ádám
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Demo features and Pipfile update
parent
261dd9e0
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
542 additions
and
78 deletions
+542
-78
Pipfile
+2
-3
Pipfile.lock
+386
-42
recircle/image/migrations/0001_initial.py
+22
-0
recircle/image/views.py
+2
-2
recircle/instance/migrations/0004_instance_remoteid.py
+19
-0
recircle/instance/migrations/0005_auto_20190513_1203.py
+18
-0
recircle/instance/models.py
+2
-0
recircle/instance/serializers.py
+0
-18
recircle/instance/views.py
+29
-13
recircle/views.py
+62
-0
No files found.
Pipfile
View file @
2db0bd2a
...
...
@@ -5,17 +5,16 @@ verify_ssl = true
[dev-packages]
httpie = "*"
autopep8 = "*"
django-rest-swagger = "*"
[packages]
django = "*"
django-rest-framework = "*"
djangorestframework = "*"
djoser = "*"
django-cors-headers = "*"
openstack = "*"
openstacksdk = "*"
python-novaclient = "*"
keystoneauth1 = "*"
[requires]
python_version = "3.6"
Pipfile.lock
View file @
2db0bd2a
{
"_meta": {
"hash": {
"sha256": "
efd17ef994a943079b5eee780633552565e788c237f155c5a02085c4ea40be66
"
"sha256": "
5769a934a63e72f37fee8bb424742092d70539e55c61de9d2071a7281ebd9081
"
},
"pipfile-spec": 6,
"requires": {
...
...
@@ -16,6 +16,112 @@
]
},
"default": {
"appdirs": {
"hashes": [
"sha256:9e5896d1372858f8dd3344faf4e5014d21849c756c8d5701f78f8a103b372d92",
"sha256:d8b24664561d0d34ddfaec54636d502d7cea6e29c3eaf68f3df6180863e2166e"
],
"version": "==1.4.3"
},
"asn1crypto": {
"hashes": [
"sha256:2f1adbb7546ed199e3c90ef23ec95c5cf3585bac7d11fb7eb562a3fe89c64e87",
"sha256:9d5c20441baf0cb60a4ac34cc447c6c189024b6b4c6cd7877034f4965c464e49"
],
"version": "==0.24.0"
},
"babel": {
"hashes": [
"sha256:af92e6106cb7c55286b25b38ad7695f8b4efb36a90ba483d7f7a6628c46158ab",
"sha256:e86135ae101e31e2c8ec20a4e0c5220f4eed12487d5cf3f78be7e98d3a57fc28"
],
"version": "==2.7.0"
},
"certifi": {
"hashes": [
"sha256:59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5",
"sha256:b26104d6835d1f5e49452a26eb2ff87fe7090b89dfcaee5ea2212697e1e1d7ae"
],
"version": "==2019.3.9"
},
"cffi": {
"hashes": [
"sha256:041c81822e9f84b1d9c401182e174996f0bae9991f33725d059b771744290774",
"sha256:046ef9a22f5d3eed06334d01b1e836977eeef500d9b78e9ef693f9380ad0b83d",
"sha256:066bc4c7895c91812eff46f4b1c285220947d4aa46fa0a2651ff85f2afae9c90",
"sha256:066c7ff148ae33040c01058662d6752fd73fbc8e64787229ea8498c7d7f4041b",
"sha256:2444d0c61f03dcd26dbf7600cf64354376ee579acad77aef459e34efcb438c63",
"sha256:300832850b8f7967e278870c5d51e3819b9aad8f0a2c8dbe39ab11f119237f45",
"sha256:34c77afe85b6b9e967bd8154e3855e847b70ca42043db6ad17f26899a3df1b25",
"sha256:46de5fa00f7ac09f020729148ff632819649b3e05a007d286242c4882f7b1dc3",
"sha256:4aa8ee7ba27c472d429b980c51e714a24f47ca296d53f4d7868075b175866f4b",
"sha256:4d0004eb4351e35ed950c14c11e734182591465a33e960a4ab5e8d4f04d72647",
"sha256:4e3d3f31a1e202b0f5a35ba3bc4eb41e2fc2b11c1eff38b362de710bcffb5016",
"sha256:50bec6d35e6b1aaeb17f7c4e2b9374ebf95a8975d57863546fa83e8d31bdb8c4",
"sha256:55cad9a6df1e2a1d62063f79d0881a414a906a6962bc160ac968cc03ed3efcfb",
"sha256:5662ad4e4e84f1eaa8efce5da695c5d2e229c563f9d5ce5b0113f71321bcf753",
"sha256:59b4dc008f98fc6ee2bb4fd7fc786a8d70000d058c2bbe2698275bc53a8d3fa7",
"sha256:73e1ffefe05e4ccd7bcea61af76f36077b914f92b76f95ccf00b0c1b9186f3f9",
"sha256:a1f0fd46eba2d71ce1589f7e50a9e2ffaeb739fb2c11e8192aa2b45d5f6cc41f",
"sha256:a2e85dc204556657661051ff4bab75a84e968669765c8a2cd425918699c3d0e8",
"sha256:a5457d47dfff24882a21492e5815f891c0ca35fefae8aa742c6c263dac16ef1f",
"sha256:a8dccd61d52a8dae4a825cdbb7735da530179fea472903eb871a5513b5abbfdc",
"sha256:ae61af521ed676cf16ae94f30fe202781a38d7178b6b4ab622e4eec8cefaff42",
"sha256:b012a5edb48288f77a63dba0840c92d0504aa215612da4541b7b42d849bc83a3",
"sha256:d2c5cfa536227f57f97c92ac30c8109688ace8fa4ac086d19d0af47d134e2909",
"sha256:d42b5796e20aacc9d15e66befb7a345454eef794fdb0737d1af593447c6c8f45",
"sha256:dee54f5d30d775f525894d67b1495625dd9322945e7fee00731952e0368ff42d",
"sha256:e070535507bd6aa07124258171be2ee8dfc19119c28ca94c9dfb7efd23564512",
"sha256:e1ff2748c84d97b065cc95429814cdba39bcbd77c9c85c89344b317dc0d9cbff",
"sha256:ed851c75d1e0e043cbf5ca9a8e1b13c4c90f3fbd863dacb01c0808e2b5204201"
],
"version": "==1.12.3"
},
"chardet": {
"hashes": [
"sha256:84ab92ed1c4d4f16916e05906b6b75a6c0fb5db821cc65e70cbd64a3e2a5eaae",
"sha256:fc323ffcaeaed0e0a02bf4d117757b98aed530d9ed4531e3e15460124c106691"
],
"version": "==3.0.4"
},
"cryptography": {
"hashes": [
"sha256:066f815f1fe46020877c5983a7e747ae140f517f1b09030ec098503575265ce1",
"sha256:210210d9df0afba9e000636e97810117dc55b7157c903a55716bb73e3ae07705",
"sha256:26c821cbeb683facb966045e2064303029d572a87ee69ca5a1bf54bf55f93ca6",
"sha256:2afb83308dc5c5255149ff7d3fb9964f7c9ee3d59b603ec18ccf5b0a8852e2b1",
"sha256:2db34e5c45988f36f7a08a7ab2b69638994a8923853dec2d4af121f689c66dc8",
"sha256:409c4653e0f719fa78febcb71ac417076ae5e20160aec7270c91d009837b9151",
"sha256:45a4f4cf4f4e6a55c8128f8b76b4c057027b27d4c67e3fe157fa02f27e37830d",
"sha256:48eab46ef38faf1031e58dfcc9c3e71756a1108f4c9c966150b605d4a1a7f659",
"sha256:6b9e0ae298ab20d371fc26e2129fd683cfc0cfde4d157c6341722de645146537",
"sha256:6c4778afe50f413707f604828c1ad1ff81fadf6c110cb669579dea7e2e98a75e",
"sha256:8c33fb99025d353c9520141f8bc989c2134a1f76bac6369cea060812f5b5c2bb",
"sha256:9873a1760a274b620a135054b756f9f218fa61ca030e42df31b409f0fb738b6c",
"sha256:9b069768c627f3f5623b1cbd3248c5e7e92aec62f4c98827059eed7053138cc9",
"sha256:9e4ce27a507e4886efbd3c32d120db5089b906979a4debf1d5939ec01b9dd6c5",
"sha256:acb424eaca214cb08735f1a744eceb97d014de6530c1ea23beb86d9c6f13c2ad",
"sha256:c8181c7d77388fe26ab8418bb088b1a1ef5fde058c6926790c8a0a3d94075a4a",
"sha256:d4afbb0840f489b60f5a580a41a1b9c3622e08ecb5eec8614d4fb4cd914c4460",
"sha256:d9ed28030797c00f4bc43c86bf819266c76a5ea61d006cd4078a93ebf7da6bfd",
"sha256:e603aa7bb52e4e8ed4119a58a03b60323918467ef209e6ff9db3ac382e5cf2c6"
],
"version": "==2.6.1"
},
"debtcollector": {
"hashes": [
"sha256:721b508130c2f133dcc14145c1e213967a84e31a15619b73d51dee79baef7f54",
"sha256:f6ce5a383ad73c23e1138dbb69bf45d33f4a4bdec38f02dbf2b89477ec5e55bc"
],
"version": "==1.21.0"
},
"decorator": {
"hashes": [
"sha256:86156361c50488b84a3f148056ea716ca587df2f0de1d34750d35c21312725de",
"sha256:f069f3a01830ca754ba5258fde2278454a0b5b79e0d7f5c13b3b97e57d4acff6"
],
"version": "==4.4.0"
},
"django": {
"hashes": [
"sha256:6fcc3cbd55b16f9a01f37de8bcbe286e0ea22e87096557f1511051780338eaea",
...
...
@@ -26,18 +132,11 @@
},
"django-cors-headers": {
"hashes": [
"sha256:c7987faa9aaef7f6a802b0f354a719e80a9158c284f530265ac792f1ee725e52",
"sha256:ceacbd60dd5a65c95e65e74b5559bd4161aa3fe5713c44e1f3417a12bd41e7ba"
],
"index": "pypi",
"version": "==2.5.3"
},
"django-rest-framework": {
"hashes": [
"sha256:47a8f496fa69e3b6bd79f68dd7a1527d907d6b77f009e9db7cf9bb21cc565e4a"
"sha256:5b80bf0f8d7fc6e2bcb4f40781d5ff3661961bbf1982e52daec77241dea3b890",
"sha256:ebf3e2cf25aa6993b959a8e6a87828ebb3c8fe5bc3ec4a2d6e65f3b8d9b4212c"
],
"index": "pypi",
"version": "==
0.1.0
"
"version": "==
3.0.2
"
},
"django-templated-mail": {
"hashes": [
...
...
@@ -48,19 +147,203 @@
},
"djangorestframework": {
"hashes": [
"sha256:
1d22971a5fc98becdbbad9710ca2a9148dd339f6cbea4c3ddbed2cb84bab94e
1",
"sha256:
2884763160b997073ff1e937bd820a69d23978902a3ccd0ba53a217e196239f0
"
"sha256:
376f4b50340a46c15ae15ddd0c853085f4e66058f97e4dbe7d43ed62f5e6065
1",
"sha256:
c12869cfd83c33d579b17b3cb28a2ae7322a53c3ce85580c2a2ebe4e3f56c4fb
"
],
"index": "pypi",
"version": "==3.9.
3
"
"version": "==3.9.
4
"
},
"djoser": {
"hashes": [
"sha256:a9eaf1b172c40f14be82fd145bfc02de7b3470b085b53169755c2c08fb7bd0a2",
"sha256:f311248eda5f14dcfe839b9481721a701aa9b67195b4e7606c234d476cb24cdf"
"sha256:1e310801b225ea668a035d3da90c1c9ca5b80a294235b9a25a5999fbc9ac5a96",
"sha256:d0ca48a05f590d77d6d292177c735a92b639f78a7060c1861d9b5317843a0685"
],
"index": "pypi",
"version": "==1.7.0"
},
"dogpile.cache": {
"hashes": [
"sha256:691b7f199561c4bd6e7e96f164a43cc3781b0c87bea29b7d59d859f873fd4a31"
],
"version": "==0.7.1"
},
"idna": {
"hashes": [
"sha256:c357b3f628cf53ae2c4c05627ecc484553142ca23264e593d327bcde5e9c3407",
"sha256:ea8b7f6188e6fa117537c3df7da9fc686d485087abf6ac197f9c46432f7e4a3c"
],
"version": "==2.8"
},
"iso8601": {
"hashes": [
"sha256:210e0134677cc0d02f6028087fee1df1e1d76d372ee1db0bf30bf66c5c1c89a3",
"sha256:49c4b20e1f38aa5cf109ddcd39647ac419f928512c869dc01d5c7098eddede82",
"sha256:bbbae5fb4a7abfe71d4688fd64bff70b91bbd74ef6a99d964bab18f7fdf286dd"
],
"version": "==0.1.12"
},
"jmespath": {
"hashes": [
"sha256:3720a4b1bd659dd2eecad0666459b9788813e032b83e7ba58578e48254e0a0e6",
"sha256:bde2aef6f44302dfb30320115b17d030798de8c4110e28d5cf6cf91a7a31074c"
],
"version": "==0.9.4"
},
"jsonpatch": {
"hashes": [
"sha256:49f29cab70e9068db3b1dc6b656cbe2ee4edf7dfe9bf5a0055f17a4b6804a4b9",
"sha256:8bf92fa26bc42c346c03bd4517722a8e4f429225dbe775ac774b2c70d95dbd33"
],
"version": "==1.23"
},
"jsonpointer": {
"hashes": [
"sha256:c192ba86648e05fdae4f08a17ec25180a9aef5008d973407b581798a83975362",
"sha256:ff379fa021d1b81ab539f5ec467c7745beb1a5671463f9dcc2b2d458bd361c1e"
],
"version": "==2.0"
},
"keystoneauth1": {
"hashes": [
"sha256:b14f363d02142177c968cfffeb9eb37113682c03ac3c65d483424e203dd602c3",
"sha256:b1e3910e09b01f88e84ce4c873f271f2b076b4ad266c2815c16ee3aef8319192"
],
"index": "pypi",
"version": "==3.14.0"
},
"msgpack": {
"hashes": [
"sha256:26cb40116111c232bc235ce131cc3b4e76549088cb154e66a2eb8ff6fcc907ec",
"sha256:300fd3f2c664a3bf473d6a952f843b4a71454f4c592ed7e74a36b205c1782d28",
"sha256:3129c355342853007de4a2a86e75eab966119733eb15748819b6554363d4e85c",
"sha256:31f6d645ee5a97d59d3263fab9e6be76f69fa131cddc0d94091a3c8aca30d67a",
"sha256:3ce7ef7ee2546c3903ca8c934d09250531b80c6127e6478781ae31ed835aac4c",
"sha256:4008c72f5ef2b7936447dcb83db41d97e9791c83221be13d5e19db0796df1972",
"sha256:62bd8e43d204580308d477a157b78d3fee2fb4c15d32578108dc5d89866036c8",
"sha256:70cebfe08fb32f83051971264466eadf183101e335d8107b80002e632f425511",
"sha256:72cb7cf85e9df5251abd7b61a1af1fb77add15f40fa7328e924a9c0b6bc7a533",
"sha256:7c55649965c35eb32c499d17dadfb8f53358b961582846e1bc06f66b9bccc556",
"sha256:86b963a5de11336ec26bc4f839327673c9796b398b9f1fe6bb6150c2a5d00f0f",
"sha256:8c73c9bcdfb526247c5e4f4f6cf581b9bb86b388df82cfcaffde0a6e7bf3b43a",
"sha256:8e68c76c6aff4849089962d25346d6784d38e02baa23ffa513cf46be72e3a540",
"sha256:97ac6b867a8f63debc64f44efdc695109d541ecc361ee2dce2c8884ab37360a1",
"sha256:9d4f546af72aa001241d74a79caec278bcc007b4bcde4099994732e98012c858",
"sha256:a28e69fe5468c9f5251c7e4e7232286d71b7dfadc74f312006ebe984433e9746",
"sha256:fd509d4aa95404ce8d86b4e32ce66d5d706fd6646c205e1c2a715d87078683a2"
],
"version": "==0.6.1"
},
"munch": {
"hashes": [
"sha256:6ae3d26b837feacf732fb8aa5b842130da1daf221f5af9f9d4b2a0a6414b0d51"
],
"version": "==2.3.2"
},
"netaddr": {
"hashes": [
"sha256:38aeec7cdd035081d3a4c306394b19d677623bf76fa0913f6695127c7753aefd",
"sha256:56b3558bd71f3f6999e4c52e349f38660e54a7a8a9943335f73dfc96883e08ca"
],
"version": "==0.7.19"
},
"netifaces": {
"hashes": [
"sha256:078986caf4d6a602a4257d3686afe4544ea74362b8928e9f4389b5cd262bc215",
"sha256:0c4304c6d5b33fbd9b20fdc369f3a2fef1a8bbacfb6fd05b9708db01333e9e7b",
"sha256:2dee9ffdd16292878336a58d04a20f0ffe95555465fee7c9bd23b3490ef2abf3",
"sha256:3095218b66d359092b82f07c5422293c2f6559cf8d36b96b379cc4cdc26eeffa",
"sha256:30ed89ab8aff715caf9a9d827aa69cd02ad9f6b1896fd3fb4beb998466ed9a3c",
"sha256:4921ed406386246b84465950d15a4f63480c1458b0979c272364054b29d73084",
"sha256:563a1a366ee0fb3d96caab79b7ac7abd2c0a0577b157cc5a40301373a0501f89",
"sha256:5b3167f923f67924b356c1338eb9ba275b2ba8d64c7c2c47cf5b5db49d574994",
"sha256:6d84e50ec28e5d766c9911dce945412dc5b1ce760757c224c71e1a9759fa80c2",
"sha256:755050799b5d5aedb1396046f270abfc4befca9ccba3074f3dbbb3cb34f13aae",
"sha256:75d3a4ec5035db7478520ac547f7c176e9fd438269e795819b67223c486e5cbe",
"sha256:7a25a8e28281504f0e23e181d7a9ed699c72f061ca6bdfcd96c423c2a89e75fc",
"sha256:7cc6fd1eca65be588f001005446a47981cbe0b2909f5be8feafef3bf351a4e24",
"sha256:86b8a140e891bb23c8b9cb1804f1475eb13eea3dbbebef01fcbbf10fbafbee42",
"sha256:ad10acab2ef691eb29a1cc52c3be5ad1423700e993cc035066049fa72999d0dc",
"sha256:b2ff3a0a4f991d2da5376efd3365064a43909877e9fabfa801df970771161d29",
"sha256:b47e8f9ff6846756be3dc3fb242ca8e86752cd35a08e06d54ffc2e2a2aca70ea",
"sha256:da298241d87bcf468aa0f0705ba14572ad296f24c4fda5055d6988701d6fd8e1",
"sha256:db881478f1170c6dd524175ba1c83b99d3a6f992a35eca756de0ddc4690a1940",
"sha256:f0427755c68571df37dc58835e53a4307884a48dec76f3c01e33eb0d4a3a81d7",
"sha256:f8885cc48c8c7ad51f36c175e462840f163cb4687eeb6c6d7dfaf7197308e36b",
"sha256:f911b7f0083d445c8d24cfa5b42ad4996e33250400492080f5018a28c026db2b"
],
"version": "==0.10.9"
},
"openstacksdk": {
"hashes": [
"sha256:57e7b3c613b08ea1f0c3d2b70c3ba1a11de4cda5e6df3e6e955d26a3858867d6",
"sha256:a6e8916646900b12a5702a75c565d348be64e343fc51176b66f58770ff40cd5b"
],
"index": "pypi",
"version": "==1.5.1"
"version": "==0.28.0"
},
"os-service-types": {
"hashes": [
"sha256:0505c72205690910077fb72b88f2a1f07533c8d39f2fe75b29583481764965d6",
"sha256:31800299a82239363995b91f1ebf9106ac7758542a1e4ef6dc737a5932878c6c"
],
"version": "==1.7.0"
},
"oslo.i18n": {
"hashes": [
"sha256:2669908357e1e49a754dc0c279512246341ae889176c568b89fd9233e65a6ae1",
"sha256:7ecec04b682209292cf4dcfa29015956d15466af82352d92bfc442c8454f1ba2"
],
"version": "==3.23.1"
},
"oslo.serialization": {
"hashes": [
"sha256:5c7cd29c1015d3d00751cee76924923881796ba15639f949f0ff6eefdb00e185",
"sha256:a7b177e42036643b3140414111054b6eb6510c32b30351a585948186de88a3bf"
],
"version": "==2.29.1"
},
"oslo.utils": {
"hashes": [
"sha256:10cc04d6b75e57dd6e6eccd3745bbce6002567a77f8ddc4103bcea53763bca41",
"sha256:3f6ed3da33ddd1648baa6cd20b1cf64ceb6c3cb3e1c745d63e793a7e5b1520c2"
],
"version": "==3.41.0"
},
"pbr": {
"hashes": [
"sha256:0ce920b865091450bbcd452b35cf6d6eb8a6d9ce13ad2210d6e77557f85cf32b",
"sha256:93d2dc6ee0c9af4dbc70bc1251d0e545a9910ca8863774761f92716dece400b6"
],
"version": "==5.2.1"
},
"prettytable": {
"hashes": [
"sha256:2d5460dc9db74a32bcc8f9f67de68b2c4f4d2f01fa3bd518764c69156d9cacd9",
"sha256:853c116513625c738dc3ce1aee148b5b5757a86727e67eff6502c7ca59d43c36",
"sha256:a53da3b43d7a5c229b5e3ca2892ef982c46b7923b51e98f0db49956531211c4f"
],
"version": "==0.7.2"
},
"pycparser": {
"hashes": [
"sha256:a988718abfad80b6b157acce7bf130a30876d27603738ac39f140993246b25b3"
],
"version": "==2.19"
},
"pyparsing": {
"hashes": [
"sha256:1873c03321fc118f4e9746baf201ff990ceb915f433f23b395f5580d1840cb2a",
"sha256:9b6323ef4ab914af344ba97510e966d64ba91055d6b9afa6b30799340e89cc03"
],
"version": "==2.4.0"
},
"python-novaclient": {
"hashes": [
"sha256:882ae865ff5cebfaa0c323978da20486876ea17e500466cdabcd91038906a86b",
"sha256:9a4477862a77155e1267207685a4ae487ce12f0e9e37cff56a6c1b43fe390e79"
],
"index": "pypi",
"version": "==14.1.0"
},
"pytz": {
"hashes": [
...
...
@@ -69,22 +352,90 @@
],
"version": "==2019.1"
},
"pyyaml": {
"hashes": [
"sha256:1adecc22f88d38052fb787d959f003811ca858b799590a5eaa70e63dca50308c",
"sha256:436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95",
"sha256:460a5a4248763f6f37ea225d19d5c205677d8d525f6a83357ca622ed541830c2",
"sha256:5a22a9c84653debfbf198d02fe592c176ea548cccce47553f35f466e15cf2fd4",
"sha256:7a5d3f26b89d688db27822343dfa25c599627bc92093e788956372285c6298ad",
"sha256:9372b04a02080752d9e6f990179a4ab840227c6e2ce15b95e1278456664cf2ba",
"sha256:a5dcbebee834eaddf3fa7366316b880ff4062e4bcc9787b78c7fbb4a26ff2dd1",
"sha256:aee5bab92a176e7cd034e57f46e9df9a9862a71f8f37cad167c6fc74c65f5b4e",
"sha256:c51f642898c0bacd335fc119da60baae0824f2cde95b0330b56c0553439f0673",
"sha256:c68ea4d3ba1705da1e0d85da6684ac657912679a649e8868bd850d2c299cce13",
"sha256:e23d0cc5299223dcc37885dae624f382297717e459ea24053709675a976a3e19"
],
"version": "==5.1"
},
"requests": {
"hashes": [
"sha256:11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4",
"sha256:9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31"
],
"version": "==2.22.0"
},
"requestsexceptions": {
"hashes": [
"sha256:3083d872b6e07dc5c323563ef37671d992214ad9a32b0ca4a3d7f5500bf38ce3",
"sha256:b095cbc77618f066d459a02b137b020c37da9f46d9b057704019c9f77dba3065"
],
"version": "==1.4.0"
},
"simplejson": {
"hashes": [
"sha256:067a7177ddfa32e1483ba5169ebea1bc2ea27f224853211ca669325648ca5642",
"sha256:2fc546e6af49fb45b93bbe878dea4c48edc34083729c0abd09981fe55bdf7f91",
"sha256:354fa32b02885e6dae925f1b5bbf842c333c1e11ea5453ddd67309dc31fdb40a",
"sha256:37e685986cf6f8144607f90340cff72d36acf654f3653a6c47b84c5c38d00df7",
"sha256:3af610ee72efbe644e19d5eaad575c73fb83026192114e5f6719f4901097fce2",
"sha256:3b919fc9cf508f13b929a9b274c40786036b31ad28657819b3b9ba44ba651f50",
"sha256:3dd289368bbd064974d9a5961101f080e939cbe051e6689a193c99fb6e9ac89b",
"sha256:6c3258ffff58712818a233b9737fe4be943d306c40cf63d14ddc82ba563f483a",
"sha256:75e3f0b12c28945c08f54350d91e624f8dd580ab74fd4f1bbea54bc6b0165610",
"sha256:b1f329139ba647a9548aa05fb95d046b4a677643070dc2afc05fa2e975d09ca5",
"sha256:ee9625fc8ee164902dfbb0ff932b26df112da9f871c32f0f9c1bcf20c350fe2a",
"sha256:fb2530b53c28f0d4d84990e945c2ebb470edb469d63e389bf02ff409012fe7c5"
],
"version": "==3.16.0"
},
"six": {
"hashes": [
"sha256:3350809f0555b11f552448330d0b52d5f24c91a322ea4a15ef22629740f3761c",
"sha256:d16a0141ec1a18405cd4ce8b4613101da75da0e9a7aec5bdd4fa804d0e0eba73"
],
"version": "==1.12.0"
},
"sqlparse": {
"hashes": [
"sha256:40afe6b8d4b1117e7dff5504d7a8ce07d9a1b15aeeade8a2d10f130a834f8177",
"sha256:7c3dca29c022744e95b547e867cee89f4fce4373f3549ccd8797d8eb52cdb873"
],
"version": "==0.3.0"
}
},
"develop": {
"autopep8": {
"stevedore": {
"hashes": [
"sha256:4d8eec30cc81bc5617dbf1218201d770dc35629363547f17577c61683ccfb3ee"
"sha256:7be098ff53d87f23d798a7ce7ae5c31f094f3deb92ba18059b1aeb1ca9fec0a0",
"sha256:7d1ce610a87d26f53c087da61f06f9b7f7e552efad2a7f6d2322632b5f932ea2"
],
"index": "pypi",
"version": "==1.4.4"
"version": "==1.30.1"
},
"urllib3": {
"hashes": [
"sha256:b246607a25ac80bedac05c6f282e3cdaf3afb65420fd024ac94435cabe6e18d1",
"sha256:dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232"
],
"version": "==1.25.3"
},
"wrapt": {
"hashes": [
"sha256:1d7ac9b39b8c13180c1475efb315852864076113537112150c1cf523609087fa",
"sha256:4aea003270831cceb8a90ff27c4031da6ead7ec1886023b80ce0dfe0adf61533"
],
"version": "==1.11.1"
}
},
"develop": {
"certifi": {
"hashes": [
"sha256:59b7658e26ca9c7339e00f8f4636cdfe59d34fa37b9b04f6f9e9926b3cece1a5",
...
...
@@ -123,11 +474,11 @@
},
"djangorestframework": {
"hashes": [
"sha256:
1d22971a5fc98becdbbad9710ca2a9148dd339f6cbea4c3ddbed2cb84bab94e
1",
"sha256:
2884763160b997073ff1e937bd820a69d23978902a3ccd0ba53a217e196239f0
"
"sha256:
376f4b50340a46c15ae15ddd0c853085f4e66058f97e4dbe7d43ed62f5e6065
1",
"sha256:
c12869cfd83c33d579b17b3cb28a2ae7322a53c3ce85580c2a2ebe4e3f56c4fb
"
],
"index": "pypi",
"version": "==3.9.
3
"
"version": "==3.9.
4
"
},
"httpie": {
"hashes": [
...
...
@@ -196,26 +547,19 @@
],
"version": "==1.3.2"
},
"pycodestyle": {
"hashes": [
"sha256:95a2219d12372f05704562a14ec30bc76b05a5b297b21a5dfe3f6fac3491ae56",
"sha256:e40a936c9a450ad81df37f549d676d127b1b66000a6c500caa2b085bc0ca976c"
],
"version": "==2.5.0"
},
"pygments": {
"hashes": [
"sha256:
5ffada19f6203563680669ee7f53b64dabbeb100eb51b61996085e99c03b284a
",
"sha256:
e8218dd399a61674745138520d0d4cf2621d7e032439341bc3f647bff125818d
"
"sha256:
71e430bc85c88a430f000ac1d9b331d2407f681d6f6aec95e8bcfbc3df5b0127
",
"sha256:
881c4c157e45f30af185c1ffe8d549d48ac9127433f2c380c24b84572ad66297
"
],
"version": "==2.
3.1
"
"version": "==2.
4.2
"
},
"requests": {
"hashes": [
"sha256:
502a824f31acdacb3a35b6690b5fbf0bc41d63a24a45c4004352b0242707598e
",
"sha256:
7bf2a778576d825600030a110f3c0e3e8edc51dfaafe1c146e39a2027784957b
"
"sha256:
11e007a8a2aa0323f5a921e9e6a2d7e4e67d9877e85773fba9ba6419025cbeb4
",
"sha256:
9cf5292fcd0f598c671cfc1e0d7d1a7f13bb8085e9a590f48c010551dc6c4b31
"
],
"version": "==2.2
1
.0"
"version": "==2.2
2
.0"
},
"simplejson": {
"hashes": [
...
...
@@ -244,10 +588,10 @@
},
"urllib3": {
"hashes": [
"sha256:
2393a695cd12afedd0dcb26fe5d50d0cf248e5a66f75dbd89a3d4eb333a61af4
",
"sha256:
a637e5fae88995b256e3409dc4d52c2e2e0ba32c42a6365fee8bbd2238de3cfb
"
"sha256:
b246607a25ac80bedac05c6f282e3cdaf3afb65420fd024ac94435cabe6e18d1
",
"sha256:
dbe59173209418ae49d485b87d1681aefa36252ee85884c31346debd19463232
"
],
"version": "==1.2
4
.3"
"version": "==1.2
5
.3"
}
}
}
recircle/image/migrations/0001_initial.py
0 → 100644
View file @
2db0bd2a
# Generated by Django 2.2.1 on 2019-05-13 12:02
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
initial
=
True
dependencies
=
[
]
operations
=
[
migrations
.
CreateModel
(
name
=
'Disk'
,
fields
=
[
(
'id'
,
models
.
AutoField
(
auto_created
=
True
,
primary_key
=
True
,
serialize
=
False
,
verbose_name
=
'ID'
)),
(
'name'
,
models
.
CharField
(
blank
=
True
,
help_text
=
'Name of the disk'
,
max_length
=
100
,
verbose_name
=
'name'
)),
(
'remote_ID'
,
models
.
CharField
(
help_text
=
'ID, which helps access the disk'
,
max_length
=
40
,
unique
=
True
,
verbose_name
=
'remote_ID'
)),
],
),
]
recircle/image/views.py
View file @
2db0bd2a
...
...
@@ -3,7 +3,7 @@ from image.serializers import DiskSerializer
from
django.shortcuts
import
render
from
rest_framework.views
import
APIView
from
rest_framework.response
import
Response
from
implementation.image.OpenstackImageManager
import
OpenstackImageManager
from
i
nterface_openstack.i
mplementation.image.OpenstackImageManager
import
OpenstackImageManager
import
openstack
conn
=
openstack
.
connect
(
cloud
=
'openstack'
)
...
...
@@ -12,7 +12,7 @@ class DiskList(APIView):
def
get
(
self
,
request
,
format
=
None
):
#OpenStack
interface
=
OpenstackImageManager
(
conn
)
return
Response
([
disk
.
toJSON
()
for
disk
in
interface
.
list
()])
return
Response
([
disk
.
__dict__
for
disk
in
interface
.
list
()])
#Create response
disks
=
Disk
.
object
.
all
()
...
...
recircle/instance/migrations/0004_instance_remoteid.py
0 → 100644
View file @
2db0bd2a
# Generated by Django 2.2.1 on 2019-05-13 12:02
from
django.db
import
migrations
,
models
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'instance'
,
'0003_auto_20190510_1307'
),
]
operations
=
[
migrations
.
AddField
(
model_name
=
'instance'
,
name
=
'remoteId'
,
field
=
models
.
CharField
(
default
=
0
,
help_text
=
'ID of the instance on the backend'
,
max_length
=
100
),
preserve_default
=
False
,
),
]
recircle/instance/migrations/0005_auto_20190513_1203.py
0 → 100644
View file @
2db0bd2a
# Generated by Django 2.2.1 on 2019-05-13 12:03
from
django.db
import
migrations
class
Migration
(
migrations
.
Migration
):
dependencies
=
[
(
'instance'
,
'0004_instance_remoteid'
),
]
operations
=
[
migrations
.
RenameField
(
model_name
=
'instance'
,
old_name
=
'remoteId'
,
new_name
=
'remote_id'
,
),
]
recircle/instance/models.py
View file @
2db0bd2a
...
...
@@ -13,6 +13,8 @@ LEASE_TYPES = tuple([(val["name"], val["verbose_name"])
class
Instance
(
models
.
Model
):
name
=
models
.
CharField
(
max_length
=
100
,
help_text
=
"Human readable name of instance"
)
remote_id
=
models
.
CharField
(
max_length
=
100
,
help_text
=
"ID of the instance on the backend"
)
description
=
models
.
TextField
(
blank
=
True
,
help_text
=
"The description of the instance"
)
access_method
=
models
.
CharField
(
max_length
=
10
,
choices
=
ACCESS_METHODS
,
...
...
recircle/instance/serializers.py
View file @
2db0bd2a
...
...
@@ -4,25 +4,7 @@ from .models import Instance
class
InstanceSerializer
(
serializers
.
ModelSerializer
):
num_cores
=
serializers
.
SerializerMethodField
(
help_text
=
"Number of virtual CPU cores"
)
priority
=
serializers
.
SerializerMethodField
(
help_text
=
"CPU priority"
)
max_ram_size
=
serializers
.
SerializerMethodField
(
help_text
=
"Maximum RAM size"
)
class
Meta
:
model
=
Instance
fields
=
"__all__"
def
get_num_cores
(
self
,
obj
):
# get it from the cloud manager
return
4
def
get_priority
(
self
,
obj
):
# get it from the cloud manager
return
1
def
get_max_ram_size
(
self
,
obj
):
# get it from the cloud manager
return
4096
recircle/instance/views.py
View file @
2db0bd2a
...
...
@@ -4,9 +4,11 @@ from django.http import Http404
from
rest_framework.views
import
APIView
from
rest_framework.response
import
Response
from
rest_framework
import
status
from
implementation.vm.instance
import
OSVirtualMachineManager
from
i
nterface_openstack.i
mplementation.vm.instance
import
OSVirtualMachineManager
import
openstack
import
datetime
conn
=
openstack
.
connect
(
cloud
=
'openstack'
)
...
...
@@ -14,22 +16,29 @@ conn = openstack.connect(cloud='openstack')
class
InstanceList
(
APIView
):
def
get
(
self
,
request
,
format
=
None
):
instances
=
Instance
.
objects
.
all
()
# refresh OpenStack Attribs
interface
=
OSVirtualMachineManager
(
conn
)
return
Response
([
vm
for
vm
in
interface
.
list_all_vm
()])
# create response
serializer
=
InstanceSerializer
(
instances
,
many
=
True
)
return
Response
(
serializer
.
data
)
return
Response
(
InstanceSerializer
(
instances
,
many
=
True
)
.
data
)
def
post
(
self
,
request
,
format
=
None
):
data
=
request
.
data
newId
=
0
interface
=
OSVirtualMachineManager
(
conn
)
imageId
=
"da51253f-867c-472d-8ce0-81e7b7126d60"
flavorId
=
{
"name"
:
1
}
flavorId
=
'1'
networks
=
[{
"uuid"
:
"c03d0d4b-413e-4cc6-9ebe-c0b5ca0dac3a"
}]
interface
.
create_vm_from_template
(
"Integration test vm 1"
,
imageId
,
flavorId
,
networks
)
return
Response
(
newId
)
newBackendInstance
=
interface
.
create_vm_from_template
(
"Integration test vm 2"
,
imageId
,
flavorId
,
networks
)
newInstance
=
Instance
(
name
=
"Integration test"
,
remote_id
=
newBackendInstance
.
id
,
description
=
"Bütyök bála kapitány"
,
access_method
=
"ssh"
,
system
=
"cirros"
,
password
=
"12345678"
,
lease
=
"project"
,
time_of_suspend
=
datetime
.
datetime
.
now
(),
time_of_delete
=
datetime
.
datetime
.
now
(),
deleted
=
False
)
newInstance
.
save
()
return
Response
(
newInstance
.
pk
)
class
InstanceDetail
(
APIView
):
...
...
@@ -45,8 +54,15 @@ class InstanceDetail(APIView):
def
get
(
self
,
request
,
pk
,
format
=
None
):
instance
=
self
.
get_object
(
pk
)
serializer
=
InstanceSerializer
(
instance
)
return
Response
(
serializer
.
data
)
instanceDict
=
InstanceSerializer
(
instance
)
.
data
interface
=
OSVirtualMachineManager
(
conn
)
remoteInstance
=
interface
.
get_vm
(
instance
.
remote_id
)
remoteInstanceDict
=
remoteInstance
.
__dict__
merged_dict
=
{
**
instanceDict
,
**
remoteInstanceDict
}
return
Response
(
merged_dict
)
def
put
(
self
,
request
,
pk
,
format
=
None
):
instance
=
self
.
get_object
(
pk
)
...
...
recircle/views.py
0 → 100644
View file @
2db0bd2a
from
instance.models
import
Instance
from
instance.serializers
import
InstanceSerializer
from
django.http
import
Http404
from
rest_framework.views
import
APIView
from
rest_framework.response
import
Response
from
rest_framework
import
status
from
implementation.vm.instance
import
OSVirtualMachineManager
import
openstack
conn
=
openstack
.
connect
(
cloud
=
'openstack'
)
class
InstanceList
(
APIView
):
def
get
(
self
,
request
,
format
=
None
):
instances
=
Instance
.
objects
.
all
()
# refresh OpenStack Attribs
interface
=
OSVirtualMachineManager
(
conn
)
return
Response
([
vm
for
vm
in
interface
.
list_all_vm
()])
# create response
serializer
=
InstanceSerializer
(
instances
,
many
=
True
)
return
Response
(
serializer
.
data
)
def
post
(
self
,
request
,
format
=
None
):
data
=
request
.
data
newId
=
0
interface
=
OSVirtualMachineManager
(
conn
)
imageId
=
"da51253f-867c-472d-8ce0-81e7b7126d60"
flavorId
=
{
"name"
:
1
}
networks
=
[{
"uuid"
:
"c03d0d4b-413e-4cc6-9ebe-c0b5ca0dac3a"
}]
interface
.
create_vm_from_template
(
"Integration test vm 1"
,
imageId
,
flavorId
,
networks
)
return
Response
(
newId
)
class
InstanceDetail
(
APIView
):
"""
Retrieve, update or delete a snippet instance.
"""
def
get_object
(
self
,
pk
):
try
:
return
Instance
.
objects
.
get
(
pk
=
pk
)
except
Instance
.
DoesNotExist
:
raise
Http404
def
get
(
self
,
request
,
pk
,
format
=
None
):
instance
=
self
.
get_object
(
pk
)
serializer
=
InstanceSerializer
(
instance
)
return
Response
(
serializer
.
data
)
def
put
(
self
,
request
,
pk
,
format
=
None
):
instance
=
self
.
get_object
(
pk
)
serializer
=
InstanceSerializer
(
instance
,
data
=
request
.
data
)
if
serializer
.
is_valid
():
serializer
.
save
()
return
Response
(
serializer
.
data
)
return
Response
(
serializer
.
errors
,
status
=
status
.
HTTP_400_BAD_REQUEST
)
def
delete
(
self
,
request
,
pk
,
format
=
None
):
instance
=
self
.
get_object
(
pk
)
instance
.
delete
()
return
Response
(
status
=
status
.
HTTP_204_NO_CONTENT
)
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