def delete_catalog(catalog_name=None): if catalog_name is None: catalog_name = CATALOG_NAME org = Org(CLIENT, href=ORG_HREF) try: org.delete_catalog(catalog_name) # TODO() no way currently to wait for catalog deletion. # https://github.com/vmware/pyvcloud/issues/334 # below causes EntityNotFoundException, catalog not found. # time.sleep(15) # org.reload() except EntityNotFoundException: pass
def delete_catalog_or_item(ctx, catalog_name, item_name): try: client = ctx.obj['client'] in_use_org_href = ctx.obj['profiles'].get('org_href') org = Org(client, in_use_org_href) if item_name is None: org.delete_catalog(catalog_name) stdout('Catalog deleted.', ctx) else: org.delete_catalog_item(catalog_name, item_name) stdout('Item deleted.', ctx) except Exception as e: stderr(e, ctx)
def delete_catalog_or_item(ctx, catalog_name, item_name): try: restore_session(ctx) client = ctx.obj['client'] in_use_org_href = ctx.obj['profiles'].get('org_href') org = Org(client, in_use_org_href) if item_name is None: org.delete_catalog(catalog_name) stdout('Catalog deleted.', ctx) else: org.delete_catalog_item(catalog_name, item_name) stdout('Item deleted.', ctx) except Exception as e: stderr(e, ctx)
def delete_catalog(catalog_name=None, logger=NULL_LOGGER): if catalog_name is None: catalog_name = CATALOG_NAME logger.debug(f"Deleting catalog {catalog_name}") org = Org(CLIENT, href=ORG_HREF) try: org.delete_catalog(catalog_name) # TODO() no way currently to wait for catalog deletion. # https://github.com/vmware/pyvcloud/issues/334 # below causes EntityNotFoundException, catalog not found. # time.sleep(15) # org.reload() logger.debug(f"Successfully deleted the catalog {catalog_name}") except EntityNotFoundException: logger.warning(f"Failed to delete catalog {catalog_name}")
def delete(client, context, name): logging.debug("=== delete catalog called === \n") try: logged_in_org = client.get_org() org = Org(client, resource=logged_in_org) result = pyvcloudprovider_pb2.DeleteCatalogResult() result.deleted = False try: catalog = org.delete_catalog(name) result.deleted = True except Exception as e: error_message = "Error occured while deleting catalog {0} __ERROR_MESSAGE__ {1}".format( name, str(e)) logging.error(error_message) context.set_code(grpc.StatusCode.INVALID_ARGUMENT) context.set_details(error_message) return result except Exception as e: error_message = "Error occured while deleting catalog {0} __ERROR_MESSAGE__ {1}".format( name, str(e)) logging.error(error_message) context.set_code(grpc.StatusCode.INVALID_ARGUMENT) context.set_details(error_message)
def delete(client, context, name): logging.debug("=== delete catalog called === \n") try: logged_in_org = client.get_org() org = Org(client, resource=logged_in_org) result = pyvcloudprovider_pb2.DeleteCatalogResult() result.deleted = False try: catalog = org.delete_catalog(name) result.deleted = True except Exception as e: error_message = "Error occured while deleting catalog {0} __ERROR_MESSAGE__ {1}".format( name, str(e)) logging.error(error_message) context.set_code(grpc.StatusCode.INVALID_ARGUMENT) context.set_details(error_message) return result except Exception as e: error_message = "Error occured while deleting catalog {0} __ERROR_MESSAGE__ {1}".format( name, str(e)) logging.error(error_message) context.set_code(grpc.StatusCode.INVALID_ARGUMENT) context.set_details(error_message)
def delete(client, name): logging.debug("=== delete catalog called === \n") try: logged_in_org = client.get_org() org = Org(client, resource=logged_in_org) result = pyvcloudprovider_pb2.DeleteCatalogResult() result.deleted = False try: catalog = org.delete_catalog(name) result.deleted = True except Exception as e: logging.info("\n Not Deleted catalog [" + name + "]") return result except Exception as e: logging.warn("error occured", e)
class Catalog(VcdAnsibleModule): def __init__(self, **kwargs): super(Catalog, self).__init__(**kwargs) logged_in_org = self.client.get_org() self.org = Org(self.client, resource=logged_in_org) def manage_states(self): state = self.params.get('state') if state == "present": return self.create() if state == "absent": return self.delete() if state == "update": return self.update() def manage_operations(self): operation = self.params.get('operation') if operation == "shared": return self.shared() if operation == "read": return self.read() if operation == "list_items": return self.list_items() def create(self): catalog_name = self.params.get('catalog_name') description = self.params.get('description') response = dict() response['changed'] = False try: self.org.get_catalog(name=catalog_name) except EntityNotFoundException: self.org.create_catalog(name=catalog_name, description=description) response['msg'] = 'Catalog {} has been created.'.format( catalog_name) response['changed'] = True else: response['warnings'] = 'Catalog {} is already present.'.format( catalog_name) return response def delete(self): catalog_name = self.params.get('catalog_name') response = dict() response['changed'] = False try: self.org.get_catalog(name=catalog_name) except EntityNotFoundException: response['warnings'] = 'Catalog {} is not present.'.format( catalog_name) else: self.org.delete_catalog(catalog_name) response['msg'] = 'Catalog {} has been deleted.'.format( catalog_name) response['changed'] = True return response def update(self): catalog_name = self.params.get('catalog_name') new_catalog_name = self.params.get('new_catalog_name') description = self.params.get('description') response = dict() response['changed'] = False if not new_catalog_name: new_catalog_name = catalog_name self.org.update_catalog(old_catalog_name=catalog_name, new_catalog_name=new_catalog_name, description=description) response['msg'] = 'Catalog {} has been updated.'.format(catalog_name) response['changed'] = True return response def shared(self): catalog_name = self.params.get('catalog_name') shared = self.params.get('shared') response = dict() response['changed'] = False self.org.share_catalog(name=catalog_name, share=shared) response[ 'msg'] = 'Catalog {} shared state has been updated to [shared={}].'.format( catalog_name, shared) response['changed'] = True return response def read(self): catalog_name = self.params.get('catalog_name') response = dict() result = dict() response['changed'] = False catalog = self.org.get_catalog(catalog_name) result['name'] = str(catalog.get("name")) result['description'] = str(catalog.Description) result['shared'] = str(catalog.IsPublished) response['msg'] = result response['changed'] = False return response def list_items(self): catalog_name = self.params.get('catalog_name') response = dict() response['changed'] = False catalog_items = self.org.list_catalog_items(catalog_name) response['msg'] = [ catalog_item['name'] for catalog_item in catalog_items ] response['changed'] = False return response
def test_delete_catalog(self): logged_in_org = self.client.get_org() org = Org(self.client, resource=logged_in_org) catalog = org.delete_catalog(self.config['vcd']['catalog'])
class Catalog(VcdAnsibleModule): def __init__(self, **kwargs): super(Catalog, self).__init__(**kwargs) logged_in_org = self.client.get_org() self.org = Org(self.client, resource=logged_in_org) def manage_states(self): state = self.params.get('state') if state == "present": return self.create() if state == "absent": return self.delete() if state == "update": return self.update() def manage_operations(self): operation = self.params.get('operation') if operation == "shared": return self.shared() if operation == "read": return self.read() if operation == "list_items": return self.list_items() def create(self): catalog_name = self.params.get('catalog_name') description = self.params.get('description') response = dict() response['changed'] = False try: self.org.get_catalog(name=catalog_name) except EntityNotFoundException: self.org.create_catalog(name=catalog_name, description=description) response['msg'] = 'Catalog {} has been created.'.format(catalog_name) response['changed'] = True else: response['warnings'] = 'Catalog {} is already present.'.format(catalog_name) return response def delete(self): catalog_name = self.params.get('catalog_name') response = dict() response['changed'] = False try: self.org.get_catalog(name=catalog_name) except EntityNotFoundException: response['warnings'] = 'Catalog {} is not present.'.format(catalog_name) else: self.org.delete_catalog(catalog_name) response['msg'] = 'Catalog {} has been deleted.'.format(catalog_name) response['changed'] = True return response def update(self): catalog_name = self.params.get('catalog_name') new_catalog_name = self.params.get('new_catalog_name') description = self.params.get('description') response = dict() response['changed'] = False if not new_catalog_name: new_catalog_name = catalog_name self.org.update_catalog(old_catalog_name=catalog_name, new_catalog_name=new_catalog_name, description=description) response['msg'] = 'Catalog {} has been updated.'.format(catalog_name) response['changed'] = True return response def shared(self): catalog_name = self.params.get('catalog_name') shared = self.params.get('shared') response = dict() response['changed'] = False self.org.share_catalog(name=catalog_name, share=shared) response['msg'] = 'Catalog {} shared state has been updated to [shared={}].'.format(catalog_name, shared) response['changed'] = True return response def read(self): catalog_name = self.params.get('catalog_name') response = dict() result = dict() response['changed'] = False catalog = self.org.get_catalog(catalog_name) result['name'] = str(catalog.get("name")) result['description'] = str(catalog.Description) result['shared'] = str(catalog.IsPublished) response['msg'] = result response['changed'] = False return response def list_items(self): catalog_name = self.params.get('catalog_name') response = dict() response['changed'] = False catalog_items = self.org.list_catalog_items(catalog_name) response['msg'] = [catalog_item['name'] for catalog_item in catalog_items] response['changed'] = False return response