Skip to content

Commit 487b5c2

Browse files
authored
Merge pull request #181 from fabric-testbed/delete_slice
Disabled Project Id check for delete for portal and add logs for MF
2 parents c2c6069 + 436b09d commit 487b5c2

File tree

5 files changed

+42
-8
lines changed

5 files changed

+42
-8
lines changed

Dockerfile-auth

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
FROM python:3.9.0
22
MAINTAINER Komal Thareja<[email protected]>
33

4-
ARG HANDLERS_VER=1.2.1
4+
ARG HANDLERS_VER=1.2.2
55

66
RUN mkdir -p /usr/src/app
77
WORKDIR /usr/src/app

fabric_cf/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
__VERSION__ = "1.2.1"
1+
__VERSION__ = "1.2.2"

fabric_cf/authority/vm_handler_config.yml

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,28 @@ runtime:
2626
# Attach Floating IP should be disabled for Sites which only allow IPV6 Address as (Global Unicast Address)
2727
# Refer https://docs.openstack.org/liberty/networking-guide/adv-config-ipv6.html for more details
2828
disable_fip: False
29+
ssh_retries: 10
30+
images:
31+
default_centos8_stream: centos
32+
default_centos9_stream: centos
33+
default_centos_7: centos
34+
default_centos_8: centos
35+
default_debian_10: debian
36+
default_fedora_35: fedora
37+
default_rocky_8: rocky
38+
default_ubuntu_18: ubuntu
39+
default_ubuntu_20: ubuntu
40+
default_ubuntu_21: ubuntu
41+
default_ubuntu_22: ubuntu
2942
playbooks:
3043
location: /etc/fabric/actor/playbooks
3144
inventory_location: /etc/fabric/actor/playbooks/inventory
32-
admin_ssh_key: ~/.ssh/id_rsa_nova
45+
admin_ssh_key: /root/.ssh/id_rsa_nova
3346
VM: head_vm_provisioning.yml
3447
GPU: worker_pci_provisioning.yml
3548
SmartNIC: worker_pci_provisioning.yml
3649
SharedNIC: worker_pci_provisioning.yml
3750
FPGA: worker_pci_provisioning.yml
3851
NVME: worker_pci_provisioning.yml
39-
config:
40-
SmartNIC: nmcli_config_nw_interface.yml
41-
SharedNIC: nmcli_config_nw_interface.yml
52+
post_boot_config: head_vm_post_boot_config.yml
53+
nw_config: nmcli_config_nw_interface.yml

fabric_cf/orchestrator/core/orchestrator_handler.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,15 @@ def get_logger(self):
6767
"""
6868
return self.logger
6969

70+
def decode_token(self, *, token: str) -> FabricToken:
71+
from fabric_cf.actor.core.container.globals import GlobalsSingleton
72+
oauth_config = GlobalsSingleton.get().get_config().get_global_config().get_oauth()
73+
jwt_validator = GlobalsSingleton.get().get_jwt_validator()
74+
fabric_token = FabricToken(oauth_config=oauth_config, jwt_validator=jwt_validator,
75+
logger=self.logger, token=token)
76+
fabric_token.validate()
77+
return fabric_token
78+
7079
def __authorize_request(self, *, id_token: str, action_id: ActionId,
7180
resource: BaseSliver or ExperimentTopology = None,
7281
lease_end_time: datetime = None) -> FabricToken:
@@ -400,8 +409,7 @@ def delete_slice(self, *, token: str, slice_id: str = None):
400409
fabric_token = self.__authorize_request(id_token=token, action_id=ActionId.delete)
401410

402411
project, tags = fabric_token.get_project_and_tags()
403-
slice_list = controller.get_slices(slice_id=slice_guid, email=fabric_token.get_email(),
404-
project=project)
412+
slice_list = controller.get_slices(slice_id=slice_guid, email=fabric_token.get_email())
405413

406414
if slice_list is None or len(slice_list) == 0:
407415
raise OrchestratorException(f"Slice# {slice_id} not found",

fabric_cf/orchestrator/swagger_server/response/slices_controller.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -40,24 +40,32 @@ def slices_create_post(body, slice_name, ssh_key, lease_end_time): # noqa: E501
4040
handler = OrchestratorHandler()
4141
logger = handler.get_logger()
4242
received_counter.labels(POST_METHOD, SLICES_CREATE_PATH).inc()
43+
email = None
4344

4445
try:
4546
token = get_token()
47+
decoded_token = handler.decode_token(token=token)
48+
email = decoded_token.get_email()
4649
slice_graph = body.decode("utf-8")
4750
value = handler.create_slice(token=token, slice_name=slice_name, slice_graph=slice_graph,
4851
ssh_key=ssh_key, lease_end_time=lease_end_time)
4952
response = Success()
5053
response.value = value
5154
success_counter.labels(POST_METHOD, SLICES_CREATE_PATH).inc()
55+
from fabric_cf.orchestrator.core.response_builder import ResponseBuilder
56+
slice_id = value[0][ResponseBuilder.PROP_SLICE_ID]
57+
logger.info(f"Slice {slice_id} created for user: {email}")
5258
return response
5359
except OrchestratorException as e:
5460
logger.exception(e)
5561
failure_counter.labels(POST_METHOD, SLICES_CREATE_PATH).inc()
62+
logger.info(f"Slice {slice_name} failed to create for user: {email}")
5663
msg = str(e).replace("\n", "")
5764
return cors_response(status=e.get_http_error_code(), xerror=str(e), body=msg)
5865
except Exception as e:
5966
logger.exception(e)
6067
failure_counter.labels(POST_METHOD, SLICES_CREATE_PATH).inc()
68+
logger.info(f"Slice {slice_name} failed to create for user: {email}")
6169
msg = str(e).replace("\n", "")
6270
return cors_response(status=INTERNAL_SERVER_ERROR, xerror=str(e), body=msg)
6371

@@ -76,20 +84,26 @@ def slices_delete_slice_iddelete(slice_id): # noqa: E501
7684
handler = OrchestratorHandler()
7785
logger = handler.get_logger()
7886
received_counter.labels(DELETE_METHOD, SLICES_DELETE_PATH).inc()
87+
email = None
7988
try:
8089
token = get_token()
90+
decoded_token = handler.decode_token(token=token)
91+
email = decoded_token.get_email()
8192
handler.delete_slice(token=token, slice_id=slice_id)
8293
response = Success()
8394
success_counter.labels(DELETE_METHOD, SLICES_DELETE_PATH).inc()
95+
logger.info(f"Slice {slice_id} deleted for user: {email}")
8496
return response
8597
except OrchestratorException as e:
8698
logger.exception(e)
8799
failure_counter.labels(DELETE_METHOD, SLICES_DELETE_PATH).inc()
100+
logger.info(f"Slice {slice_id} failed to delete for user: {email}")
88101
msg = str(e).replace("\n", "")
89102
return cors_response(status=e.get_http_error_code(), xerror=str(e), body=msg)
90103
except Exception as e:
91104
logger.exception(e)
92105
failure_counter.labels(DELETE_METHOD, SLICES_DELETE_PATH).inc()
106+
logger.info(f"Slice {slice_id} failed to delete for user: {email}")
93107
msg = str(e).replace("\n", "")
94108
return cors_response(status=INTERNAL_SERVER_ERROR, xerror=str(e), body=msg)
95109

0 commit comments

Comments
 (0)