Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
itminedu
synnefo
Commits
ff55e946
Commit
ff55e946
authored
Dec 03, 2013
by
Sofia Papagiannaki
Browse files
pithos: Introduce file-show command
parent
6e435450
Changes
4
Hide whitespace changes
Inline
Side-by-side
Changelog
View file @
ff55e946
...
...
@@ -185,6 +185,10 @@ Cyclades
Pithos
------
* Management commands:
* Introduced new command:
* file-show
* Refactor metadata schema (table attributes) in Pithos DB to speedup current
objects by domain attribute. This is used by Plankton for listing VM images.
...
...
docs/admin-guide.rst
View file @
ff55e946
...
...
@@ -1407,6 +1407,7 @@ Name Description
reconcile
-
commissions
-
pithos
Display
unresolved
commissions
and
trigger
their
recovery
service
-
export
-
pithos
Export
Pithos
services
and
resources
in
JSON
format
reconcile
-
resources
-
pithos
Detect
unsynchronized
usage
between
Astakos
and
Pithos
DB
resources
and
synchronize
them
if
specified
so
.
file
-
show
Display
object
information
============================
===========================
Cyclades
snf
-
manage
commands
...
...
snf-pithos-app/pithos/api/functions.py
View file @
ff55e946
# Copyright 2011-201
2
GRNET S.A. All rights reserved.
# Copyright 2011-201
3
GRNET S.A. All rights reserved.
#
# Redistribution and use in source and binary forms, with or
# without modification, are permitted provided that the following
...
...
snf-pithos-app/pithos/api/management/commands/file-show.py
0 → 100644
View file @
ff55e946
# Copyright 2013 GRNET S.A. All rights reserved.
#
# Redistribution and use in source and binary forms, with or
# without modification, are permitted provided that the following
# conditions are met:
#
# 1. Redistributions of source code must retain the above
# copyright notice, this list of conditions and the following
# disclaimer.
#
# 2. Redistributions in binary form must reproduce the above
# copyright notice, this list of conditions and the following
# disclaimer in the documentation and/or other materials
# provided with the distribution.
#
# THIS SOFTWARE IS PROVIDED BY GRNET S.A. ``AS IS'' AND ANY EXPRESS
# OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
# PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL GRNET S.A OR
# CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
# USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
# POSSIBILITY OF SUCH DAMAGE.
#
# The views and conclusions contained in the software and
# documentation are those of the authors and should not be
# interpreted as representing official policies, either expressed
# or implied, of GRNET S.A.
from
django.core.management.base
import
CommandError
from
optparse
import
make_option
from
snf_django.management.commands
import
SynnefoCommand
from
snf_django.management
import
utils
from
pithos.api.util
import
get_backend
,
update_public_meta
class
Command
(
SynnefoCommand
):
args
=
"<account> <container> <object>"
help
=
"""Show file information"""
option_list
=
SynnefoCommand
.
option_list
+
(
make_option
(
"--obj-version"
,
dest
=
"obj_version"
,
default
=
None
,
help
=
"Show information for a specific file version"
),
make_option
(
"--domain"
,
dest
=
"domain"
,
default
=
'pithos'
,
help
=
"Show file attributes from the specific domain."
),
)
def
handle
(
self
,
*
args
,
**
options
):
if
len
(
args
)
!=
3
:
raise
CommandError
(
"Invalid number of arguments"
)
success_status
=
False
try
:
b
=
get_backend
()
b
.
pre_exec
()
account
,
container
,
name
=
args
kv
=
b
.
get_object_meta
(
account
,
account
,
container
,
name
,
options
[
'domain'
],
options
[
'obj_version'
])
if
options
[
'obj_version'
]
is
None
:
_
,
path
,
permissions
=
b
.
get_object_permissions
(
account
,
account
,
container
,
name
)
if
path
is
not
None
:
kv
[
'permissions'
]
=
path
,
dict
(
permissions
)
public
=
b
.
get_object_public
(
account
,
account
,
container
,
name
)
if
public
is
not
None
:
update_public_meta
(
public
,
kv
)
kv
[
'hashmap'
]
=
b
.
get_object_hashmap
(
account
,
account
,
container
,
name
,
options
[
'obj_version'
])[
-
1
]
utils
.
pprint_table
(
self
.
stdout
,
[
kv
.
values
()],
kv
.
keys
(),
options
[
"output_format"
],
vertical
=
True
)
success_status
=
True
except
Exception
,
e
:
raise
CommandError
(
e
)
finally
:
b
.
post_exec
(
success_status
)
b
.
close
()
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