Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
C
CONF
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
UvA
CONF
Commits
96924a93
Commit
96924a93
authored
Mar 22, 2020
by
Spiros Koulouzis
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added sure_tosca python client
parent
d32aceb8
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
178 additions
and
115 deletions
+178
-115
__main__.py
deployer/__main__.py
+41
-33
test_deployer.py
deployer/test/test_deployer.py
+64
-48
docker-compose.yml
docker-compose.yml
+41
-13
workspace.xml
sure_tosca-client_python_stubs/.idea/workspace.xml
+31
-20
setup.py
sure_tosca-client_python_stubs/setup.py
+1
-1
No files found.
deployer/__main__.py
View file @
96924a93
...
@@ -14,8 +14,8 @@ from time import sleep
...
@@ -14,8 +14,8 @@ from time import sleep
from
concurrent.futures
import
thread
from
concurrent.futures
import
thread
from
threading
import
Thread
from
threading
import
Thread
from
service
import
tosca
,
k8s_service
from
service
import
ansible_service
from
service
import
ansible_service
import
sure_tosca_client
logger
=
logging
.
getLogger
(
__name__
)
logger
=
logging
.
getLogger
(
__name__
)
...
@@ -66,6 +66,14 @@ def on_request(ch, method, props, body):
...
@@ -66,6 +66,14 @@ def on_request(ch, method, props, body):
ch
.
basic_ack
(
delivery_tag
=
method
.
delivery_tag
)
ch
.
basic_ack
(
delivery_tag
=
method
.
delivery_tag
)
def
init_sure_tosca_client
(
sure_tosca_base_path
):
configuration
=
sure_tosca_client
.
Configuration
()
sure_tosca_client
.
configuration
.
host
=
sure_tosca_base_path
api_client
=
sure_tosca_client
.
ApiClient
(
configuration
=
configuration
)
sure_tosca_client_api
=
sure_tosca_client
.
api
.
default_api
.
DefaultApi
(
api_client
=
api_client
)
# noqa: E501
return
sure_tosca_client_api
def
handle_delivery
(
message
):
def
handle_delivery
(
message
):
logger
.
info
(
"Got: "
+
str
(
message
))
logger
.
info
(
"Got: "
+
str
(
message
))
try
:
try
:
...
@@ -77,31 +85,35 @@ def handle_delivery(message):
...
@@ -77,31 +85,35 @@ def handle_delivery(message):
tosca_file_name
=
'tosca_template'
tosca_file_name
=
'tosca_template'
tosca_template_dict
=
parsed_json_message
[
'toscaTemplate'
]
tosca_template_dict
=
parsed_json_message
[
'toscaTemplate'
]
tosca_interfaces
=
tosca
.
get_interfaces
(
tosca_template_dict
)
print
(
yaml
.
dump
(
tosca_template_dict
))
tmp_path
=
tempfile
.
mkdtemp
()
vms
=
tosca
.
get_vms
(
tosca_template_dict
)
sure_tosca_client
.
upload_tosca_template
()
inventory_path
=
ansible_service
.
write_inventory_file
(
tmp_path
,
vms
)
# tosca_interfaces = tosca.get_interfaces(tosca_template_dict)
paths
=
ansible_service
.
write_playbooks_from_tosca_interface
(
tosca_interfaces
,
tmp_path
)
# tmp_path = tempfile.mkdtemp()
# vms = tosca.get_vms(tosca_template_dict)
tokens
=
{}
# inventory_path = ansible_service.write_inventory_file(tmp_path, vms)
for
playbook_path
in
paths
:
# paths = ansible_service.write_playbooks_from_tosca_interface(tosca_interfaces, tmp_path)
out
,
err
=
ansible_service
.
run
(
inventory_path
,
playbook_path
)
api_key
,
join_token
,
discovery_token_ca_cert_hash
=
ansible_service
.
parse_api_tokens
(
out
.
decode
(
"utf-8"
))
# tokens = {}
if
api_key
:
# for playbook_path in paths:
tokens
[
'api_key'
]
=
api_key
# out, err = ansible_service.run(inventory_path, playbook_path)
if
join_token
:
# api_key, join_token, discovery_token_ca_cert_hash = ansible_service.parse_api_tokens(out.decode("utf-8"))
tokens
[
'join_token'
]
=
join_token
# if api_key:
if
discovery_token_ca_cert_hash
:
# tokens['api_key'] = api_key
tokens
[
'discovery_token_ca_cert_hash'
]
=
discovery_token_ca_cert_hash
# if join_token:
# tokens['join_token'] = join_token
ansible_playbook_path
=
k8s_service
.
write_ansible_k8s_files
(
tosca_template_dict
,
tmp_path
)
# if discovery_token_ca_cert_hash:
out
,
err
=
ansible_service
.
run
(
inventory_path
,
ansible_playbook_path
)
# tokens['discovery_token_ca_cert_hash'] = discovery_token_ca_cert_hash
dashboard_token
=
ansible_service
.
parse_dashboard_tokens
(
out
.
decode
(
"utf-8"
))
#
tokens
[
'dashboard_token'
]
=
dashboard_token
# ansible_playbook_path = k8s_service.write_ansible_k8s_files(tosca_template_dict, tmp_path)
# out, err = ansible_service.run(inventory_path, ansible_playbook_path)
tosca_template_dict
=
tosca
.
add_tokens
(
tokens
,
tosca_template_dict
)
# dashboard_token = ansible_service.parse_dashboard_tokens(out.decode("utf-8"))
tosca_template_dict
=
tosca
.
add_dashboard_url
(
k8s_service
.
get_dashboard_url
(
vms
),
tosca_template_dict
)
# tokens['dashboard_token'] = dashboard_token
tosca_template_dict
=
tosca
.
add_service_url
(
k8s_service
.
get_service_urls
(
vms
,
tosca_template_dict
),
tosca_template_dict
)
#
# tosca_template_dict = tosca.add_tokens(tokens, tosca_template_dict)
# tosca_template_dict = tosca.add_dashboard_url(k8s_service.get_dashboard_url(vms), tosca_template_dict)
# tosca_template_dict = tosca.add_service_url(k8s_service.get_service_urls(vms, tosca_template_dict),
# tosca_template_dict)
response
=
{
'toscaTemplate'
:
tosca_template_dict
}
response
=
{
'toscaTemplate'
:
tosca_template_dict
}
output_current_milli_time
=
int
(
round
(
time
.
time
()
*
1000
))
output_current_milli_time
=
int
(
round
(
time
.
time
()
*
1000
))
...
@@ -127,17 +139,13 @@ if __name__ == "__main__":
...
@@ -127,17 +139,13 @@ if __name__ == "__main__":
# use safe_load instead load
# use safe_load instead load
tosca_template_json
=
yaml
.
safe_load
(
f
)
tosca_template_json
=
yaml
.
safe_load
(
f
)
interfaces
=
tosca
.
get_interfaces
(
tosca_template_json
)
vms
=
tosca
.
get_vms
(
tosca_template_json
)
ansible_service
.
run
(
interfaces
,
vms
)
k8s_service
.
write_ansible_k8s_files
(
tosca_template_json
)
else
:
else
:
logger
.
info
(
"Input args: "
+
sys
.
argv
[
0
]
+
' '
+
sys
.
argv
[
1
]
+
' '
+
sys
.
argv
[
2
])
logger
.
info
(
"Input args: "
+
sys
.
argv
[
0
]
+
' '
+
sys
.
argv
[
1
]
+
' '
+
sys
.
argv
[
2
])
global
channel
,
queue_name
,
connection
global
channel
,
queue_name
,
connection
,
sure_tosca_client
channel
,
connection
=
init_chanel
(
sys
.
argv
)
channel
,
connection
=
init_chanel
(
sys
.
argv
)
queue_name
=
sys
.
argv
[
2
]
queue_name
=
sys
.
argv
[
2
]
sure_tosca_base_url
=
sys
.
argv
[
3
]
# "http://localhost:8081/tosca-sure/1.0.0/"
sure_tosca_client
=
init_sure_tosca_client
(
sure_tosca_base_url
)
logger
.
info
(
"Awaiting RPC requests"
)
logger
.
info
(
"Awaiting RPC requests"
)
try
:
try
:
thread
=
Thread
(
target
=
threaded_function
,
args
=
(
1
,))
thread
=
Thread
(
target
=
threaded_function
,
args
=
(
1
,))
...
...
deployer/test/test_deployer.py
View file @
96924a93
...
@@ -5,34 +5,33 @@ import os
...
@@ -5,34 +5,33 @@ import os
import
os.path
import
os.path
import
tempfile
import
tempfile
import
time
import
time
import
yaml
import
unittest
import
unittest
from
service
import
k8s_service
,
tosca
,
ansible_service
import
sure_tosca_client
from
tower_cli
import
get_resource
from
tower_cli.exceptions
import
Found
from
tower_cli.conf
import
settings
class
TestDeployer
(
unittest
.
TestCase
):
class
TestDeployer
(
unittest
.
TestCase
):
def
test_parse_token
(
self
):
#
def test_parse_token(self):
tosca_path
=
"../../ansible_playbooks/"
#
tosca_path = "../../ansible_playbooks/"
example_ansible_output_file_path
=
tosca_path
+
'/example_ansible_output.out'
#
example_ansible_output_file_path = tosca_path + '/example_ansible_output.out'
if
not
os
.
path
.
exists
(
example_ansible_output_file_path
):
#
if not os.path.exists(example_ansible_output_file_path):
tosca_path
=
"../ansible_playbooks/"
#
tosca_path = "../ansible_playbooks/"
example_ansible_output_file_path
=
tosca_path
+
'/example_ansible_output.out'
#
example_ansible_output_file_path = tosca_path + '/example_ansible_output.out'
#
with
open
(
example_ansible_output_file_path
,
'r'
)
as
file
:
#
with open(example_ansible_output_file_path, 'r') as file:
out
=
file
.
read
()
#
out = file.read()
token
=
ansible_service
.
parse_dashboard_tokens
(
out
)
#
token = ansible_service.parse_dashboard_tokens(out)
def
test
(
self
):
def
test
(
self
):
logger
=
logging
.
getLogger
(
__name__
)
logger
=
logging
.
getLogger
(
__name__
)
tosca_path
=
"../../example_messages/"
tosca_path
=
"../../example_messages/"
input_tosca_file_path
=
tosca_path
+
'/message_
example_provisioned
.json'
input_tosca_file_path
=
tosca_path
+
'/message_
provision_response
.json'
if
not
os
.
path
.
exists
(
input_tosca_file_path
):
if
not
os
.
path
.
exists
(
input_tosca_file_path
):
tosca_path
=
"../example_messages/"
tosca_path
=
"../example_messages/"
input_tosca_file_path
=
tosca_path
+
'/message_
example_provisioned
.json'
input_tosca_file_path
=
tosca_path
+
'/message_
provision_response
.json'
with
open
(
input_tosca_file_path
,
'r'
)
as
stream
:
with
open
(
input_tosca_file_path
,
'r'
)
as
stream
:
parsed_json_message
=
json
.
load
(
stream
)
parsed_json_message
=
json
.
load
(
stream
)
...
@@ -42,39 +41,56 @@ class TestDeployer(unittest.TestCase):
...
@@ -42,39 +41,56 @@ class TestDeployer(unittest.TestCase):
tosca_file_name
=
'tosca_template'
tosca_file_name
=
'tosca_template'
tosca_template_dict
=
parsed_json_message
[
'toscaTemplate'
]
tosca_template_dict
=
parsed_json_message
[
'toscaTemplate'
]
tosca_interfaces
=
tosca
.
get_interfaces
(
tosca_template_dict
)
tmp_path
=
tempfile
.
mkdtemp
()
tmp_path
=
tempfile
.
mkdtemp
()
vms
=
tosca
.
get_vms
(
tosca_template_dict
)
tosca_template_path
=
tmp_path
+
os
.
path
.
sep
+
'toscaTemplate.yml'
inventory_path
=
ansible_service
.
write_inventory_file
(
tmp_path
,
vms
)
with
open
(
tosca_template_path
,
'w'
)
as
outfile
:
paths
=
ansible_service
.
write_playbooks_from_tosca_interface
(
tosca_interfaces
,
tmp_path
)
yaml
.
dump
(
tosca_template_dict
,
outfile
,
default_flow_style
=
False
)
tokens
=
{}
tosca_client
=
init_sure_tosca_client
(
'http://localhost:8081/tosca-sure/1.0.0/'
)
for
playbook_path
in
paths
:
doc_id
=
tosca_client
.
upload_tosca_template
(
tosca_template_path
)
out
,
err
=
ansible_service
.
run
(
inventory_path
,
playbook_path
)
print
(
doc_id
)
api_key
,
join_token
,
discovery_token_ca_cert_hash
=
ansible_service
.
parse_api_tokens
(
out
.
decode
(
"utf-8"
))
if
api_key
:
# tosca_interfaces = tosca.get_interfaces(tosca_template_dict)
tokens
[
'api_key'
]
=
api_key
# tmp_path = tempfile.mkdtemp()
if
join_token
:
# vms = tosca.get_vms(tosca_template_dict)
tokens
[
'join_token'
]
=
join_token
# inventory_path = ansible_service.write_inventory_file(tmp_path, vms)
if
discovery_token_ca_cert_hash
:
# paths = ansible_service.write_playbooks_from_tosca_interface(tosca_interfaces, tmp_path)
tokens
[
'discovery_token_ca_cert_hash'
]
=
discovery_token_ca_cert_hash
#
# tokens = {}
ansible_playbook_path
=
k8s_service
.
write_ansible_k8s_files
(
tosca_template_dict
,
tmp_path
)
# for playbook_path in paths:
out
,
err
=
ansible_service
.
run
(
inventory_path
,
ansible_playbook_path
)
# out, err = ansible_service.run(inventory_path, playbook_path)
dashboard_token
=
ansible_service
.
parse_dashboard_tokens
(
out
.
decode
(
"utf-8"
))
# api_key, join_token, discovery_token_ca_cert_hash = ansible_service.parse_api_tokens(out.decode("utf-8"))
# if api_key:
tokens
[
'dashboard_token'
]
=
dashboard_token
# tokens['api_key'] = api_key
# if join_token:
tosca_template_dict
=
tosca
.
add_tokens
(
tokens
,
tosca_template_dict
)
# tokens['join_token'] = join_token
# if discovery_token_ca_cert_hash:
tosca_template_dict
=
tosca
.
add_dashboard_url
(
k8s_service
.
get_dashboard_url
(
vms
),
tosca_template_dict
)
# tokens['discovery_token_ca_cert_hash'] = discovery_token_ca_cert_hash
#
response
=
{
'toscaTemplate'
:
tosca_template_dict
}
# ansible_playbook_path = k8s_service.write_ansible_k8s_files(tosca_template_dict, tmp_path)
output_current_milli_time
=
int
(
round
(
time
.
time
()
*
1000
))
# out, err = ansible_service.run(inventory_path, ansible_playbook_path)
response
[
"creationDate"
]
=
output_current_milli_time
# dashboard_token = ansible_service.parse_dashboard_tokens(out.decode("utf-8"))
logger
.
info
(
"Returning Deployment"
)
#
logger
.
info
(
"Output message:"
+
json
.
dumps
(
response
))
# tokens['dashboard_token'] = dashboard_token
print
(
json
.
dumps
(
response
))
#
# tosca_template_dict = tosca.add_tokens(tokens, tosca_template_dict)
#
# tosca_template_dict = tosca.add_dashboard_url(k8s_service.get_dashboard_url(vms), tosca_template_dict)
#
# response = {'toscaTemplate': tosca_template_dict}
# output_current_milli_time = int(round(time.time() * 1000))
# response["creationDate"] = output_current_milli_time
# logger.info("Returning Deployment")
# logger.info("Output message:" + json.dumps(response))
# print(json.dumps(response))
def
init_sure_tosca_client
(
sure_tosca_base_path
):
configuration
=
sure_tosca_client
.
Configuration
()
sure_tosca_client
.
configuration
.
host
=
sure_tosca_base_path
api_client
=
sure_tosca_client
.
ApiClient
(
configuration
=
configuration
)
sure_tosca_client_api
=
sure_tosca_client
.
api
.
default_api
.
DefaultApi
(
api_client
=
api_client
)
# noqa: E501
return
sure_tosca_client_api
if
__name__
==
'__main__'
:
if
__name__
==
'__main__'
:
...
...
docker-compose.yml
View file @
96924a93
...
@@ -9,10 +9,37 @@ services:
...
@@ -9,10 +9,37 @@ services:
-
"
4369:4369"
-
"
4369:4369"
-
"
15671:15671"
-
"
15671:15671"
mysql
:
image
:
mysql:5.6
environment
:
MYSQL_RANDOM_ROOT_PASSWORD
:
'
yes'
MYSQL_DATABASE
:
semaphore
MYSQL_USER
:
semaphore
MYSQL_PASSWORD
:
semaphore
#volumes:
# - /tmp/mysql_data:/var/lib/mysql
ports
:
-
"
3306:3306"
semaphore
:
semaphore
:
ports
:
-
"
30003:3000"
image
:
ansiblesemaphore/semaphore
image
:
ansiblesemaphore/semaphore
environment
:
SEMAPHORE_DB_USER
:
semaphore
SEMAPHORE_DB_PASS
:
semaphore
SEMAPHORE_DB_HOST
:
mysql
SEMAPHORE_DB_PORT
:
3306
SEMAPHORE_DB
:
semaphore
SEMAPHORE_PLAYBOOK_PATH
:
/etc/semaphore
SEMAPHORE_ADMIN_PASSWORD
:
password
SEMAPHORE_ADMIN_NAME
:
"
Developer"
SEMAPHORE_ADMIN_EMAIL
:
admin@localhost
SEMAPHORE_ADMIN
:
admin
SEMAPHORE_WEB_ROOT
:
http://0.0.0.0:3000
ports
:
-
"
3000:3000"
depends_on
:
-
mysql
logspout
:
logspout
:
...
@@ -58,22 +85,23 @@ services:
...
@@ -58,22 +85,23 @@ services:
environment
:
environment
:
RABBITMQ_HOST
:
rabbit
RABBITMQ_HOST
:
rabbit
#provisioner:
provisioner
:
depends_on
:
-
rabbit
-
sure-tosca
image
:
provisioner:3.0.0
environment
:
RABBITMQ_HOST
:
rabbit
SURE_TOSCA_BASE_PATH
:
http://sure-tosca:8081/tosca-sure/1.0.0
#deployer:
#depends_on:
#depends_on:
#- rabbit
#- rabbit
#- sure-tosca
#- sure-tosca
#image:
provision
er:3.0.0
#image:
deploy
er:3.0.0
#environment:
#environment:
#RABBITMQ_HOST: rabbit
#RABBITMQ_HOST: rabbit
#SURE_TOSCA_BASE_PATH: http://sure-tosca:8081/tosca-sure/1.0.0
#SURE_TOSCA_BASE_PATH: http://sure-tosca:8081/tosca-sure/1.0.0
deployer
:
depends_on
:
-
rabbit
-
sure-tosca
image
:
deployer:3.0.0
environment
:
RABBITMQ_HOST
:
rabbit
#volumes:
#volumes:
...
...
sure_tosca-client_python_stubs/.idea/workspace.xml
View file @
96924a93
...
@@ -2,11 +2,11 @@
...
@@ -2,11 +2,11 @@
<project
version=
"4"
>
<project
version=
"4"
>
<component
name=
"ChangeListManager"
>
<component
name=
"ChangeListManager"
>
<list
default=
"true"
id=
"3f84153d-6ed1-4691-94d6-53105266f15e"
name=
"Default Changelist"
comment=
""
>
<list
default=
"true"
id=
"3f84153d-6ed1-4691-94d6-53105266f15e"
name=
"Default Changelist"
comment=
""
>
<change
beforePath=
"$PROJECT_DIR$/../deployer/requirements.txt"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/../deployer/requirements.txt"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/../deployer/__main__.py"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/../deployer/__main__.py"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/../deployer/service/__init__.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/../deployer/test/test_deployer.py"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/../deployer/test/test_deployer.py"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/../deployer/service/k8s_service.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/../deployer/service/tosca.py"
beforeDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/../docker-compose.yml"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/../docker-compose.yml"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/../docker-compose.yml"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/../docker-compose.yml"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/.idea/workspace.xml"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/.idea/workspace.xml"
afterDir=
"false"
/>
<change
beforePath=
"$PROJECT_DIR$/setup.py"
beforeDir=
"false"
afterPath=
"$PROJECT_DIR$/setup.py"
afterDir=
"false"
/>
</list>
</list>
<option
name=
"SHOW_DIALOG"
value=
"false"
/>
<option
name=
"SHOW_DIALOG"
value=
"false"
/>
<option
name=
"HIGHLIGHT_CONFLICTS"
value=
"true"
/>
<option
name=
"HIGHLIGHT_CONFLICTS"
value=
"true"
/>
...
@@ -67,38 +67,38 @@
...
@@ -67,38 +67,38 @@
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
</state>
</state>
<state
x=
"723"
y=
"257"
width=
"530"
height=
"598"
key=
"FileChooserDialogImpl/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584814061190"
/>
<state
x=
"723"
y=
"257"
width=
"530"
height=
"598"
key=
"FileChooserDialogImpl/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584814061190"
/>
<state
width=
"1825"
height=
"
134"
key=
"GridCell.Tab.0.bottom"
timestamp=
"1584900161062
"
>
<state
width=
"1825"
height=
"
342"
key=
"GridCell.Tab.0.bottom"
timestamp=
"1584902089025
"
>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
</state>
</state>
<state
width=
"1825"
height=
"
134"
key=
"GridCell.Tab.0.bottom/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584900161062
"
/>
<state
width=
"1825"
height=
"
342"
key=
"GridCell.Tab.0.bottom/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584902089025
"
/>
<state
width=
"1825"
height=
"
134"
key=
"GridCell.Tab.0.center"
timestamp=
"1584900161062
"
>
<state
width=
"1825"
height=
"
342"
key=
"GridCell.Tab.0.center"
timestamp=
"1584902089024
"
>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
</state>
</state>
<state
width=
"1825"
height=
"
134"
key=
"GridCell.Tab.0.center/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584900161062
"
/>
<state
width=
"1825"
height=
"
342"
key=
"GridCell.Tab.0.center/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584902089024
"
/>
<state
width=
"1825"
height=
"
134"
key=
"GridCell.Tab.0.left"
timestamp=
"1584900161062
"
>
<state
width=
"1825"
height=
"
342"
key=
"GridCell.Tab.0.left"
timestamp=
"1584902089023
"
>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
</state>
</state>
<state
width=
"1825"
height=
"
134"
key=
"GridCell.Tab.0.left/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584900161062
"
/>
<state
width=
"1825"
height=
"
342"
key=
"GridCell.Tab.0.left/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584902089023
"
/>
<state
width=
"1825"
height=
"
134"
key=
"GridCell.Tab.0.right"
timestamp=
"1584900161062
"
>
<state
width=
"1825"
height=
"
342"
key=
"GridCell.Tab.0.right"
timestamp=
"1584902089024
"
>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
</state>
</state>
<state
width=
"1825"
height=
"
134"
key=
"GridCell.Tab.0.right/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584900161062
"
/>
<state
width=
"1825"
height=
"
342"
key=
"GridCell.Tab.0.right/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584902089024
"
/>
<state
width=
"1825"
height=
"
372"
key=
"GridCell.Tab.1.bottom"
timestamp=
"1584815771481
"
>
<state
width=
"1825"
height=
"
263"
key=
"GridCell.Tab.1.bottom"
timestamp=
"1584902065994
"
>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
</state>
</state>
<state
width=
"1825"
height=
"
372"
key=
"GridCell.Tab.1.bottom/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584815771481
"
/>
<state
width=
"1825"
height=
"
263"
key=
"GridCell.Tab.1.bottom/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584902065994
"
/>
<state
width=
"1825"
height=
"
372"
key=
"GridCell.Tab.1.center"
timestamp=
"1584815771481
"
>
<state
width=
"1825"
height=
"
263"
key=
"GridCell.Tab.1.center"
timestamp=
"1584902065993
"
>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
</state>
</state>
<state
width=
"1825"
height=
"
372"
key=
"GridCell.Tab.1.center/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584815771481
"
/>
<state
width=
"1825"
height=
"
263"
key=
"GridCell.Tab.1.center/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584902065993
"
/>
<state
width=
"1825"
height=
"
372"
key=
"GridCell.Tab.1.left"
timestamp=
"1584815771481
"
>
<state
width=
"1825"
height=
"
263"
key=
"GridCell.Tab.1.left"
timestamp=
"1584902065993
"
>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
</state>
</state>
<state
width=
"1825"
height=
"
372"
key=
"GridCell.Tab.1.left/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584815771481
"
/>
<state
width=
"1825"
height=
"
263"
key=
"GridCell.Tab.1.left/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584902065993
"
/>
<state
width=
"1825"
height=
"
372"
key=
"GridCell.Tab.1.right"
timestamp=
"1584815771481
"
>
<state
width=
"1825"
height=
"
263"
key=
"GridCell.Tab.1.right"
timestamp=
"1584902065994
"
>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
</state>
</state>
<state
width=
"1825"
height=
"
372"
key=
"GridCell.Tab.1.right/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584815771481
"
/>
<state
width=
"1825"
height=
"
263"
key=
"GridCell.Tab.1.right/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584902065994
"
/>
<state
x=
"359"
y=
"103"
key=
"SettingsEditor"
timestamp=
"1584813615342"
>
<state
x=
"359"
y=
"103"
key=
"SettingsEditor"
timestamp=
"1584813615342"
>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
<screen
x=
"67"
y=
"34"
width=
"1853"
height=
"1046"
/>
</state>
</state>
...
@@ -108,4 +108,15 @@
...
@@ -108,4 +108,15 @@
</state>
</state>
<state
x=
"563"
y=
"235"
width=
"1053"
height=
"732"
key=
"find.popup/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584900160970"
/>
<state
x=
"563"
y=
"235"
width=
"1053"
height=
"732"
key=
"find.popup/67.34.1853.1046@67.34.1853.1046"
timestamp=
"1584900160970"
/>
</component>
</component>
<component
name=
"XDebuggerManager"
>
<breakpoint-manager>
<breakpoints>
<line-breakpoint
enabled=
"true"
suspend=
"THREAD"
type=
"python-line"
>
<url>
file://$PROJECT_DIR$/test/test_default_api.py
</url>
<line>
159
</line>
<option
name=
"timeStamp"
value=
"2"
/>
</line-breakpoint>
</breakpoints>
</breakpoint-manager>
</component>
</project>
</project>
\ No newline at end of file
sure_tosca-client_python_stubs/setup.py
View file @
96924a93
...
@@ -25,7 +25,7 @@ VERSION = "1.0.0"
...
@@ -25,7 +25,7 @@ VERSION = "1.0.0"
REQUIRES
=
[
REQUIRES
=
[
"certifi==2019.11.28"
,
"certifi==2019.11.28"
,
"six==1.14.0"
,
"six==1.14.0"
,
"python_dateutl==2.5.3"
,
#
"python_dateutl==2.5.3",
"setuptools==46"
,
"setuptools==46"
,
"urllib3==1.25.8"
,
"urllib3==1.25.8"
,
"numpy==1.18.2"
"numpy==1.18.2"
...
...
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