Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
File Transfer Service
fts-rest
Commits
9a26a63a
Commit
9a26a63a
authored
Apr 28, 2014
by
Alejandro Alvarez Ayllon
Browse files
Removed logger from the context
parent
fde6bb72
Changes
3
Hide whitespace changes
Inline
Side-by-side
src/fts3/cli/base.py
View file @
9a26a63a
...
...
@@ -21,7 +21,7 @@ CONFIG_DEFAULTS = {
class
Base
(
object
):
def
__init__
(
self
,
extra_args
=
None
):
self
.
logger
=
logging
.
getLogger
()
self
.
logger
=
logging
.
getLogger
(
'fts3'
)
# Common CLI options
usage
=
None
...
...
src/fts3/rest/client/context.py
View file @
9a26a63a
...
...
@@ -10,16 +10,18 @@ import sys
from
exceptions
import
*
from
request
import
RequestFactory
log
=
logging
.
getLogger
(
__name__
)
# Return a list of certificates from the file
def
_get_x509_list
(
cert
,
logger
):
def
_get_x509_list
(
cert
):
x509_list
=
[]
fd
=
BIO
.
openfile
(
cert
,
'rb'
)
cert
=
X509
.
load_cert_bio
(
fd
)
try
:
while
True
:
x509_list
.
append
(
cert
)
log
ger
.
debug
(
"Loaded "
+
cert
.
get_subject
().
as_text
())
log
.
debug
(
"Loaded "
+
cert
.
get_subject
().
as_text
())
cert
=
X509
.
load_cert_bio
(
fd
)
except
X509
.
X509Error
:
# When there are no more certs, this is what we get, so it is fine
...
...
@@ -32,12 +34,6 @@ def _get_x509_list(cert, logger):
# Base class for actors
class
Context
(
object
):
def
_set_logger
(
self
,
logger
):
if
logger
:
self
.
logger
=
logger
else
:
self
.
logger
=
logging
.
getLogger
()
def
_read_passwd_from_stdin
(
self
,
*
args
,
**
kwargs
):
if
not
self
.
passwd
:
self
.
passwd
=
getpass
.
getpass
(
'Private key password: '
)
...
...
@@ -59,7 +55,7 @@ class Context(object):
ucert
=
os
.
environ
[
'X509_USER_CERT'
]
if
ucert
and
ukey
:
self
.
x509_list
=
_get_x509_list
(
ucert
,
self
.
logger
)
self
.
x509_list
=
_get_x509_list
(
ucert
)
self
.
x509
=
self
.
x509_list
[
0
]
not_after
=
self
.
x509
.
get_not_after
()
if
not_after
.
get_datetime
()
<
datetime
.
now
(
UTC
):
...
...
@@ -101,19 +97,18 @@ class Context(object):
raise
BadEndpoint
(
"%s (%s)"
%
(
self
.
endpoint
,
str
(
e
))),
None
,
sys
.
exc_info
()[
2
]
return
endpoint_info
def
__init__
(
self
,
endpoint
,
ucert
=
None
,
ukey
=
None
,
logger
=
None
):
def
__init__
(
self
,
endpoint
,
ucert
=
None
,
ukey
=
None
):
self
.
passwd
=
None
self
.
_set_logger
(
logger
)
self
.
_set_endpoint
(
endpoint
)
self
.
_set_x509
(
ucert
,
ukey
)
self
.
_requester
=
RequestFactory
(
self
.
ucert
,
self
.
ukey
,
passwd
=
self
.
passwd
)
self
.
endpoint_info
=
self
.
_validate_endpoint
()
# Log obtained information
self
.
logger
.
debug
(
"Using endpoint: %s"
%
self
.
endpoint_info
[
'url'
])
self
.
logger
.
debug
(
"REST API version: %(major)d.%(minor)d.%(patch)d"
%
self
.
endpoint_info
[
'api'
])
self
.
logger
.
debug
(
"Schema version: %(major)d.%(minor)d.%(patch)d"
%
self
.
endpoint_info
[
'schema'
])
self
.
logger
.
debug
(
"Delegation version: %(major)d.%(minor)d.%(patch)d"
%
self
.
endpoint_info
[
'delegation'
])
log
.
debug
(
"Using endpoint: %s"
%
self
.
endpoint_info
[
'url'
])
log
.
debug
(
"REST API version: %(major)d.%(minor)d.%(patch)d"
%
self
.
endpoint_info
[
'api'
])
log
.
debug
(
"Schema version: %(major)d.%(minor)d.%(patch)d"
%
self
.
endpoint_info
[
'schema'
])
log
.
debug
(
"Delegation version: %(major)d.%(minor)d.%(patch)d"
%
self
.
endpoint_info
[
'delegation'
])
def
get_endpoint_info
(
self
):
return
self
.
endpoint_info
...
...
src/fts3/rest/client/delegator.py
View file @
9a26a63a
...
...
@@ -3,12 +3,15 @@ from M2Crypto import X509, ASN1, m2
from
M2Crypto.ASN1
import
UTC
import
ctypes
import
json
import
logging
import
platform
import
sys
import
time
from
exceptions
import
*
log
=
logging
.
getLogger
(
__name__
)
# See https://bugzilla.osafoundation.org/show_bug.cgi?id=7530
# for an explanation on all this mess
# TL;DR: M2Crypto fails to properly initialize the internal structure, which
...
...
@@ -135,7 +138,7 @@ class Delegator(object):
# Extensions are broken in SL5!!
if
_m2crypto_extensions_broken
():
self
.
context
.
logger
.
warning
(
"X509v3 extensions disabled!"
)
log
.
warning
(
"X509v3 extensions disabled!"
)
else
:
# X509v3 Basic Constraints
proxy
.
add_ext
(
X509
.
new_extension
(
'basicConstraints'
,
'CA:FALSE'
,
critical
=
True
))
...
...
@@ -194,27 +197,27 @@ class Delegator(object):
def
delegate
(
self
,
lifetime
=
timedelta
(
hours
=
7
),
force
=
False
):
try
:
delegation_id
=
self
.
_get_delegation_id
()
self
.
context
.
logger
.
debug
(
"Delegation ID: "
+
delegation_id
)
log
.
debug
(
"Delegation ID: "
+
delegation_id
)
remaining_life
=
self
.
_get_remaining_life
(
delegation_id
)
if
remaining_life
is
None
:
self
.
context
.
logger
.
debug
(
"No previous delegation found"
)
log
.
debug
(
"No previous delegation found"
)
elif
remaining_life
<=
timedelta
(
0
):
self
.
context
.
logger
.
debug
(
"The delegated credentials expired"
)
log
.
debug
(
"The delegated credentials expired"
)
elif
remaining_life
>=
timedelta
(
hours
=
1
):
if
not
force
:
self
.
context
.
logger
.
debug
(
"Not bothering doing the delegation"
)
log
.
debug
(
"Not bothering doing the delegation"
)
return
delegation_id
else
:
self
.
context
.
logger
.
debug
(
"Delegation not expired, but this is a forced delegation"
)
log
.
debug
(
"Delegation not expired, but this is a forced delegation"
)
# Ask for the request
self
.
context
.
logger
.
debug
(
"Delegating"
)
log
.
debug
(
"Delegating"
)
x509_request
=
self
.
_get_proxy_request
(
delegation_id
)
# Sign request
self
.
context
.
logger
.
debug
(
"Signing request"
)
log
.
debug
(
"Signing request"
)
x509_proxy
=
self
.
_sign_request
(
x509_request
,
lifetime
)
x509_proxy_pem
=
self
.
_full_proxy_chain
(
x509_proxy
)
...
...
Write
Preview
Supports
Markdown
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