#!/usr/bin/env python
# -*- coding: utf-8 -*-

# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#   http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

import argparse
import json
import os
import shutil
import sys
from six.moves import input as raw_input

__updated__ = "2015-12-29"
__author__ = "Aurélien Moreau"
__copyright__ = "Copyright 2015, Angus.ai"
__credits__ = ["Aurélien Moreau", "Gwennael Gate"]
__license__ = "Apache v2.0"
__maintainer__ = "Aurélien Moreau"
__status__ = "Production"

ANGUS_PATH = '~/.angusdk'

CERTIF = """-----BEGIN CERTIFICATE-----
MIIE9zCCA9+gAwIBAgIRANvjZ0MSo9cLOVPAcrZcORMwDQYJKoZIhvcNAQELBQAw
XzELMAkGA1UEBhMCRlIxDjAMBgNVBAgTBVBhcmlzMQ4wDAYDVQQHEwVQYXJpczEO
MAwGA1UEChMFR2FuZGkxIDAeBgNVBAMTF0dhbmRpIFN0YW5kYXJkIFNTTCBDQSAy
MB4XDTE1MDQwNTAwMDAwMFoXDTE2MDQwNTIzNTk1OVowWDEhMB8GA1UECxMYRG9t
YWluIENvbnRyb2wgVmFsaWRhdGVkMRswGQYDVQQLExJHYW5kaSBTdGFuZGFyZCBT
U0wxFjAUBgNVBAMTDWdhdGUuYW5ndXMuYWkwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQDJt0LCcLsMTp1l+BgTAXX0ncaRWAFJVlaBvGClKkfXFhx/NtbL
co2pqJ7bWhvesLFblFCD032NdjxVjon2khdbzDke6Rn1Eo6olkktDVV2kTYCngAQ
RoufT/drVQoa5C6eseroFCzfmTHCVJ9dW0i19kZpHjL171yTCT9XBxt9cfPcvxLy
sHDVGjaoYKAhgfSAFJGguY04Wp1CfqpCCNkUrEBulVnAPvL+Gm8G2wGmhaXQXJmr
BDuYeLTTeO6i+6+cflN50kacqS8+tB1UG6q7L0Fw0lAd9o297uFal6AJMAc3S70F
p1rh6sTUjWkTi1nFdOjpbaUcBbAp8ewE9Tr3AgMBAAGjggGzMIIBrzAfBgNVHSME
GDAWgBSzkKfYya9OzWE8n3ytXX9B/Wkw6jAdBgNVHQ4EFgQUBhlnZfECHEIvUW8y
uM1MNy73izwwDgYDVR0PAQH/BAQDAgWgMAwGA1UdEwEB/wQCMAAwHQYDVR0lBBYw
FAYIKwYBBQUHAwEGCCsGAQUFBwMCMEsGA1UdIAREMEIwNgYLKwYBBAGyMQECAhow
JzAlBggrBgEFBQcCARYZaHR0cHM6Ly9jcHMudXNlcnRydXN0LmNvbTAIBgZngQwB
AgEwQQYDVR0fBDowODA2oDSgMoYwaHR0cDovL2NybC51c2VydHJ1c3QuY29tL0dh
bmRpU3RhbmRhcmRTU0xDQTIuY3JsMHMGCCsGAQUFBwEBBGcwZTA8BggrBgEFBQcw
AoYwaHR0cDovL2NydC51c2VydHJ1c3QuY29tL0dhbmRpU3RhbmRhcmRTU0xDQTIu
Y3J0MCUGCCsGAQUFBzABhhlodHRwOi8vb2NzcC51c2VydHJ1c3QuY29tMCsGA1Ud
EQQkMCKCDWdhdGUuYW5ndXMuYWmCEXd3dy5nYXRlLmFuZ3VzLmFpMA0GCSqGSIb3
DQEBCwUAA4IBAQAyF6feUs2mORxUbRJcgHDJBACob9AbhU0rPcwHfElRqoOkUyYF
dvJLyjOQa1thSVyPEvN2LvVEFXKMy/DW2IEyfEufhQNKRdaIqS6TfDpiQnYnqy2V
SzR+TMi0MVkexnn1eH100GPkR9RDQKFpiobn+npNqddQaG/Z9O6HnddU7bJMRaf5
lukWvz+amUY7rw1gAqHu3yuOWUoVBi+Sx9RqRGhvar/Ex8KZsSFhNHDyoFubolJb
a4WzBKlzTIYZAL+J/v+9WM9kZcz7FPPzi56rd11fozyx5wIuFd9ffZJxXRhWqxRC
TTKVwwcVNwdaSy5o90IulgF+h4BwwLjDLXCN
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIF6TCCA9GgAwIBAgIQBeTcO5Q4qzuFl8umoZhQ4zANBgkqhkiG9w0BAQwFADCB
iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl
cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV
BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTQw
OTEyMDAwMDAwWhcNMjQwOTExMjM1OTU5WjBfMQswCQYDVQQGEwJGUjEOMAwGA1UE
CBMFUGFyaXMxDjAMBgNVBAcTBVBhcmlzMQ4wDAYDVQQKEwVHYW5kaTEgMB4GA1UE
AxMXR2FuZGkgU3RhbmRhcmQgU1NMIENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IB
DwAwggEKAoIBAQCUBC2meZV0/9UAPPWu2JSxKXzAjwsLibmCg5duNyj1ohrP0pIL
m6jTh5RzhBCf3DXLwi2SrCG5yzv8QMHBgyHwv/j2nPqcghDA0I5O5Q1MsJFckLSk
QFEW2uSEEi0FXKEfFxkkUap66uEHG4aNAXLy59SDIzme4OFMH2sio7QQZrDtgpbX
bmq08j+1QvzdirWrui0dOnWbMdw+naxb00ENbLAb9Tr1eeohovj0M1JLJC0epJmx
bUi8uBL+cnB89/sCdfSN3tbawKAyGlLfOGsuRTg/PwSWAP2h9KK71RfWJ3wbWFmV
XooS/ZyrgT5SKEhRhWvzkbKGPym1bgNi7tYFAgMBAAGjggF1MIIBcTAfBgNVHSME
GDAWgBRTeb9aqitKz1SA4dibwJ3ysgNmyzAdBgNVHQ4EFgQUs5Cn2MmvTs1hPJ98
rV1/Qf1pMOowDgYDVR0PAQH/BAQDAgGGMBIGA1UdEwEB/wQIMAYBAf8CAQAwHQYD
VR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUFBwMCMCIGA1UdIAQbMBkwDQYLKwYBBAGy
MQECAhowCAYGZ4EMAQIBMFAGA1UdHwRJMEcwRaBDoEGGP2h0dHA6Ly9jcmwudXNl
cnRydXN0LmNvbS9VU0VSVHJ1c3RSU0FDZXJ0aWZpY2F0aW9uQXV0aG9yaXR5LmNy
bDB2BggrBgEFBQcBAQRqMGgwPwYIKwYBBQUHMAKGM2h0dHA6Ly9jcnQudXNlcnRy
dXN0LmNvbS9VU0VSVHJ1c3RSU0FBZGRUcnVzdENBLmNydDAlBggrBgEFBQcwAYYZ
aHR0cDovL29jc3AudXNlcnRydXN0LmNvbTANBgkqhkiG9w0BAQwFAAOCAgEAWGf9
crJq13xhlhl+2UNG0SZ9yFP6ZrBrLafTqlb3OojQO3LJUP33WbKqaPWMcwO7lWUX
zi8c3ZgTopHJ7qFAbjyY1lzzsiI8Le4bpOHeICQW8owRc5E69vrOJAKHypPstLbI
FhfFcvwnQPYT/pOmnVHvPCvYd1ebjGU6NSU2t7WKY28HJ5OxYI2A25bUeo8tqxyI
yW5+1mUfr13KFj8oRtygNeX56eXVlogMT8a3d2dIhCe2H7Bo26y/d7CQuKLJHDJd
ArolQ4FCR7vY4Y8MDEZf7kYzawMUgtN+zY+vkNaOJH1AQrRqahfGlZfh8jjNp+20
J0CT33KpuMZmYzc4ZCIwojvxuch7yPspOqsactIGEk72gtQjbz7Dk+XYtsDe3CMW
1hMwt6CaDixVBgBwAc/qOR2A24j3pSC4W/0xJmmPLQphgzpHphNULB7j7UTKvGof
KA5R2d4On3XNDgOVyvnFqSot/kGkoUeuDcL5OWYzSlvhhChZbH2UF3bkRYKtcCD9
0m9jqNf6oDP6N8v3smWe2lBvP+Sn845dWDKXcCMu5/3EFZucJ48y7RetWIExKREa
m9T8bJUox04FB6b9HbwZ4ui3uRGKLXASUoWNjDNKD/yZkuBjcNqllEdjB+dYxzFf
BT02Vf6Dsuimrdfp5gJ0iHRc2jTbkNJtUQoj1iM=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFdzCCBF+gAwIBAgIQE+oocFv07O0MNmMJgGFDNjANBgkqhkiG9w0BAQwFADBv
MQswCQYDVQQGEwJTRTEUMBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFk
ZFRydXN0IEV4dGVybmFsIFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBF
eHRlcm5hbCBDQSBSb290MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFow
gYgxCzAJBgNVBAYTAlVTMRMwEQYDVQQIEwpOZXcgSmVyc2V5MRQwEgYDVQQHEwtK
ZXJzZXkgQ2l0eTEeMBwGA1UEChMVVGhlIFVTRVJUUlVTVCBOZXR3b3JrMS4wLAYD
VQQDEyVVU0VSVHJ1c3QgUlNBIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjAN
BgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAgBJlFzYOw9sIs9CsVw127c0n00yt
UINh4qogTQktZAnczomfzD2p7PbPwdzx07HWezcoEStH2jnGvDoZtF+mvX2do2NC
tnbyqTsrkfjib9DsFiCQCT7i6HTJGLSR1GJk23+jBvGIGGqQIjy8/hPwhxR79uQf
jtTkUcYRZ0YIUcuGFFQ/vDP+fmyc/xadGL1RjjWmp2bIcmfbIWax1Jt4A8BQOujM
8Ny8nkz+rwWWNR9XWrf/zvk9tyy29lTdyOcSOk2uTIq3XJq0tyA9yn8iNK5+O2hm
AUTnAU5GU5szYPeUvlM3kHND8zLDU+/bqv50TmnHa4xgk97Exwzf4TKuzJM7UXiV
Z4vuPVb+DNBpDxsP8yUmazNt925H+nND5X4OpWaxKXwyhGNVicQNwZNUMBkTrNN9
N6frXTpsNVzbQdcS2qlJC9/YgIoJk2KOtWbPJYjNhLixP6Q5D9kCnusSTJV882sF
qV4Wg8y4Z+LoE53MW4LTTLPtW//e5XOsIzstAL81VXQJSdhJWBp/kjbmUZIO8yZ9
HE0XvMnsQybQv0FfQKlERPSZ51eHnlAfV1SoPv10Yy+xUGUJ5lhCLkMaTLTwJUdZ
+gQek9QmRkpQgbLevni3/GcV4clXhB4PY9bpYrrWX1Uu6lzGKAgEJTm4Diup8kyX
HAc/DVL17e8vgg8CAwEAAaOB9DCB8TAfBgNVHSMEGDAWgBStvZh6NLQm9/rEJlTv
A73gJMtUGjAdBgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/
BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wEQYDVR0gBAowCDAGBgRVHSAAMEQGA1Ud
HwQ9MDswOaA3oDWGM2h0dHA6Ly9jcmwudXNlcnRydXN0LmNvbS9BZGRUcnVzdEV4
dGVybmFsQ0FSb290LmNybDA1BggrBgEFBQcBAQQpMCcwJQYIKwYBBQUHMAGGGWh0
dHA6Ly9vY3NwLnVzZXJ0cnVzdC5jb20wDQYJKoZIhvcNAQEMBQADggEBAJNl9jeD
lQ9ew4IcH9Z35zyKwKoJ8OkLJvHgwmp1ocd5yblSYMgpEg7wrQPWCcR23+WmgZWn
RtqCV6mVksW2jwMibDN3wXsyF24HzloUQToFJBv2FAY7qCUkDrvMKnXduXBBP3zQ
YzYhBx9G/2CkkeFnvN4ffhkUyWNnkepnB2u0j4vAbkN9w6GAbLIevFOFfdyQoaS8
Le9Gclc1Bb+7RrtubTeZtv8jkpHGbkD4jylW6l/VXxRTrPBPYer3IsynVgviuDQf
Jtl7GQVoP7o81DgGotPmjw7jtHFtQELFhLRAlSv0ZaBIefYdgWOWnU914Ph85I6p
0fKtirOMxyHNwu8=
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIFJTCCA42gAwIBAgIJAIUJ72W0oQSEMA0GCSqGSIb3DQEBCwUAMIGZMQswCQYD
VQQGEwJGUjEOMAwGA1UECAwFUGFyaXMxDjAMBgNVBAcMBVBhcmlzMREwDwYDVQQK
DAhBbmd1cy5BSTEOMAwGA1UECwwFQ2xvdWQxGjAYBgNVBAMMEWdhdGUuYW5ndXNh
cGkuY29tMSswKQYJKoZIhvcNAQkBFhxhdXJlbGllbi5tb3JlYXVAeWllbnlpZW4u
bmV0MB4XDTE1MDMxODEwMzUwNloXDTE3MDMxNzEwMzUwNlowgZkxCzAJBgNVBAYT
AkZSMQ4wDAYDVQQIDAVQYXJpczEOMAwGA1UEBwwFUGFyaXMxETAPBgNVBAoMCEFu
Z3VzLkFJMQ4wDAYDVQQLDAVDbG91ZDEaMBgGA1UEAwwRZ2F0ZS5hbmd1c2FwaS5j
b20xKzApBgkqhkiG9w0BCQEWHGF1cmVsaWVuLm1vcmVhdUB5aWVueWllbi5uZXQw
ggGiMA0GCSqGSIb3DQEBAQUAA4IBjwAwggGKAoIBgQDDMEMm1i3fAUzabepe3INN
1bzl6uqTdnGRwy6gw3pQIQs7pnMVaQ2XHbkjB84f9IvRnnBXQCVm4BSEV/jadRjZ
W7xydqb5rCJo4LkgdYiOxy0ycFpggoWdqX3HrrcZ6R/M7gonSfvw89H/NV/bw7ZO
BRshGzWfpzUIRUQabrGbDBUTLiEXzgLTRUmOlYWCOdEIqZO6krlNN3NVRflArWY0
RRKpvxRgJBTzNpJ5i5fyJ3MUWtdyt5JL99/tLT/wcUNhwz4K8CP8l0IOXP1lnpBX
jO6Xc7NVAL/kNJyEuMHFkQy0saWjDH90GjB6ScZ3DpWo8Ah5jjXIoiYEWOMdmgsh
dpMvm+x7gZIRA+N9afPkQ32ggvgH/PZkCv0X0HABLE2pd2UnAT3f/6wHb9r3Wgg8
GR78uIBP3vfWD1AMc+BDgkOEG+TwCCk6FK2bXpxGV/zNtVZe3XTDDAi5vWnptuxA
zpbSvEY8s+4UKzORdXmxyUaG06KiUju4ePVIhBQazl8CAwEAAaNuMGwwHAYDVR0R
BBUwE4IRZ2F0ZS5hbmd1c2FwaS5jb20wHQYDVR0OBBYEFHuWW9wpD8okzB1Gi5XE
NovLax6JMB8GA1UdIwQYMBaAFHuWW9wpD8okzB1Gi5XENovLax6JMAwGA1UdEwQF
MAMBAf8wDQYJKoZIhvcNAQELBQADggGBAHYFDOYYUx/j34AYJLUhbtF/sK2fdT/N
QxfHICzaReXg85CxlnoWuixMMC9qPzXmNI0GpRiM48aIGyfksavFAPWa5TqSSbDH
3v9LlJ6uYKeOk6uZXgNZzha0UOKB60KufRuRItSJ3fkUZ5yrXfFP+j2bnaxKqBxH
tBzExc6XkzZcR7HFiYORShPJ4LYMuyH1mz7vRhi/vFanav00suVY/V6las5lVAQo
M+bVx7wupGx2SWoNl2SgnmrFzKB06FpFqL0pSZtQTw7szOCyWP2rD7m7hC9U9696
3+A3ZwSJmOYae+bY14/avlzPDQIPFbp6qDSncOileyBupZzheyYgeeOcxPr1sPbA
NyBue5dbMTw5hTGITPdhhaAKc6ovNjdoVpOPewk4BH4GwdkKxaNQOBsHORQ6w7eo
RaeHdcMP5yo6WKhFnLBgx3TQjReyayin5vbC4lOH4yK9JXXvKboJWrb5s82TWSCN
TQb9q3LkrPzpP61llmcjxhrXqHaLJsG0RQ==
-----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU
MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs
IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290
MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux
FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h
bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v
dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt
H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9
uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX
mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX
a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN
E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0
WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD
VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0
Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU
cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx
IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN
AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH
YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5
6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC
Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX
c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a
mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ=
-----END CERTIFICATE-----
"""

CONFIRMATION = "Your angus configuration directory (%s) already exists, " \
    "do you want regenerate it (y/N) ?"

SUCCESS = "Configuration directory successfully created in (%s), " \
    "credentials can be modified there directly"

ANGUS_FULL_PATH = os.path.expanduser(ANGUS_PATH)
CERTIF_NAME = ''


def create_configuration():
    conf_path = os.path.join(ANGUS_FULL_PATH, 'config.json')
    ca_path = os.path.join(ANGUS_FULL_PATH, 'certificate.pem')

    client_id = None
    access_token = None

    if not os.path.exists(ANGUS_FULL_PATH):
        os.makedirs(ANGUS_FULL_PATH)
    else:
        response = raw_input(
            CONFIRMATION % (ANGUS_FULL_PATH))
        if not response == "y":
            show_configuration()
            sys.exit(0)

        if os.path.exists(conf_path):
            with open(conf_path, 'r') as f:
                conf = json.loads(f.read())
                default_root = conf.get('default_root', None)
                client_id = conf.get('client_id', None)
                access_token = conf.get('access_token', None)

    with open(ca_path, 'w') as f:
        f.write(CERTIF)

    r = raw_input(
        "Please choose your gateway (current: %s): " %
        (default_root))
    if r != "":
        default_root = r

    r = raw_input(
        "Please copy/paste your client_id (current: %s): " %
        (client_id))
    if r != "":
        client_id = r

    r = raw_input(
        "Please copy/paste your access_token(current: %s): " %
        (access_token))
    if r != "":
        access_token = r

    with open(conf_path, 'w') as f:
        f.write(json.dumps({
            'client_id': client_id,
            'access_token': access_token,
            'ca_path': ca_path,
            'default_root': default_root,
        }, indent=True))
        f.flush()
        print(SUCCESS % (ANGUS_FULL_PATH))


def show_configuration():
    conf_path = os.path.join(ANGUS_FULL_PATH, 'config.json')
    ca_path = os.path.join(ANGUS_FULL_PATH, 'certificate.pem')

    if not os.path.exists(ANGUS_FULL_PATH):
        print("No angus configuration")
        return

    print("Python version:")
    print(sys.version)
    print("My authorize certificate:")
    if os.path.exists(ca_path):
        with open(ca_path, 'r') as f:
            print(f.read())
    else:
        print("\tWarning!!!, no certificate file")

    print("My configuration:")
    if os.path.exists(conf_path):
        with open(conf_path, 'r') as f:
            print(f.read())
    else:
        print("\tWarning!!!, no configuration file")


def test_configuration():
    try:
        import angus
        from six.moves.urllib import parse as urlparse
        root = angus.connect()
        service = root.services.get_service('dummy')
        job = service.process({'echo': 'OK'})

        result = job.result

        assert "status" in result
        assert "url" in result
        assert "echo" in result

        url = urlparse.urlparse(result["url"])
        print("Server: %s://%s" % (url.scheme, url.netloc))
        print("Status: OK")
    except Exception as e:
        print("Status: KO")
        show_configuration()
        sys.exit(-1)


def delete_configuration():
    if os.path.exists(ANGUS_FULL_PATH):
        shutil.rmtree(ANGUS_FULL_PATH, ignore_errors=True)


def main():
    formattter_class = argparse.RawDescriptionHelpFormatter

    parser = argparse.ArgumentParser(description='Angus SDK configurator.',
                                     formatter_class=formattter_class)

    parser.add_argument('-s', '--show', action='store_true',
                        help='display current configuration if exits')

    parser.add_argument('-d', '--delete', action='store_true',
                        help='remove current configuration if exists')

    parser.add_argument('-t', '--test', action='store_true',
                        help='test the installation by calling a dummy service')

    args = parser.parse_args(sys.argv[1:])

    if args.show:
        show_configuration()
    elif args.delete:
        delete_configuration()
    elif args.test:
        test_configuration()
    else:
        create_configuration()

if __name__ == '__main__':
    main()
