Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F91003357
utils.py
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Wed, Nov 6, 20:20
Size
2 KB
Mime Type
text/x-python
Expires
Fri, Nov 8, 20:20 (2 d)
Engine
blob
Format
Raw Data
Handle
22177783
Attached To
rPHAPI Phabricator API scripts
utils.py
View Options
# -*- coding: utf-8 -*-
import
logging
import
getpass
from
.
import
colored
from
phabricator
import
Phabricator
__author__
=
"Nicolas Richart"
__copyright__
=
"Copyright (C) 2016, EPFL (Ecole Polytechnique Fédérale "
\
"de Lausanne) - SCITAS (Scientific IT and Application "
\
"Support)"
__credits__
=
[
"Nicolas Richart"
]
__license__
=
"BSD"
__version__
=
"0.1"
__maintainer__
=
"Nicolas Richart"
__email__
=
"nicolas.richart@epfl.ch"
_logger
=
logging
.
getLogger
(
__name__
)
def
get_password
(
service
,
username
,
keyring
=
None
,
**
kwargs
):
service
=
'getmystuph/'
+
service
if
keyring
:
_print_service
=
colored
(
'{0}@{1}'
.
format
(
username
,
service
),
'blue'
)
_logger
.
debug
(
'Try to retrieve password from keyring
\'
{0}
\'
'
.
format
(
_print_service
))
# noqa: E501
keyring_passwd
=
keyring
.
get_password
(
service
,
username
)
if
keyring_passwd
is
None
:
_logger
.
debug
(
'Password for
\'
{0}
\'
not in keyring'
.
format
(
_print_service
))
# noqa: E501
keyring_passwd
=
getpass
.
getpass
(
"Password for {0}@{1}: "
.
format
(
username
,
service
))
store
=
ask_question
(
"Do you want to store your password "
+
"in the system keyring ?"
)
if
store
:
_logger
.
debug
(
'Adding password for
\'
{0}
\'
in keyring'
.
format
(
_print_service
))
# noqa: E501
keyring
.
set_password
(
service
,
username
,
keyring_passwd
)
else
:
_logger
.
warning
(
'To avoid this message to reappear, '
+
'remove the
\'
use_keyring
\'
from the '
+
'configuration file.'
)
else
:
_logger
.
debug
(
'Password for
\'
{0}
\'
found in keyring'
.
format
(
_print_service
))
# noqa: E501
return
keyring_passwd
else
:
getpass_passwd
=
getpass
.
getpass
(
"Password for {0}@{1}: "
.
format
(
username
,
service
))
return
getpass_passwd
def
get_phabricator_instance
(
host
=
None
,
username
=
None
,
token
=
None
):
_phab
=
None
try
:
_phab
=
Phabricator
(
host
=
host
,
username
=
username
,
token
=
token
)
_phab
.
update_interfaces
()
# this request is just to make an actual connection
_phab
.
user
.
whoami
()
except
Exception
as
e
:
_logger
.
error
(
'Could not connect to phabricator, either give the'
+
' connection with the default configuration of arc'
+
' or in the backend configuration of the configuration'
+
' file:
\n
'
+
' in/out:
\n
'
+
' username: mylogin
\n
'
+
' host: https://c4science.ch/api/
\n
'
+
' token: cli-g3amff25kdpnnv2tqvigmr4omnn7
\n
'
)
raise
e
return
_phab
Event Timeline
Log In to Comment