def delete(ctx, name, namespace): try: restore_session(ctx) ext = APIExtension(ctx.obj['client']) ext.delete_extension(name, namespace) except Exception as e: stderr(e, ctx)
def initialize_on_vcloud(self): """Check and/register the extension on vCloud. """ self.log('info', 'Checking the initialization status of extension in vCloud.') if not ( self.conf('vcloud.api_extension.namespace') and self.conf('vcloud.api_extension.exchange') and self.conf('vcloud.api_extension.routing_key') ): self.log('warning', 'Missing items in configuration to make the initialization check-up. Ignoring.') return client = login_as_system_admin() ext_manager = APIExtension(client) try: current_ext_on_vcd = ext_manager.get_extension_info( self.name, namespace=self.conf('vcloud.api_extension.namespace')) self.log('info', 'Extension is already registered on vCloud') except MissingRecordException: self.log('warning', "This extension is not (yet) declared on vCloud.") current_ext_on_vcd = None except MultipleRecordsException: self.log('error', "Multiple extensions found with same name and namespace") sys.exit(-1) # Force a fresh redeploy of the full extension (Warning: be carrefull, ID will change !) if current_ext_on_vcd and self.conf('vcloud.api_extension.force_redeploy', False): ext_manager.delete_extension( self.name, namespace=self.conf('vcloud.api_extension.namespace')) self.log('info', 'Extension is unregistered on vCloud') current_ext_on_vcd = None # Only update an existing extension (Warning: does not update the API filters/patterns!) if current_ext_on_vcd and self.conf('vcloud.api_extension.auto_update', False): current_ext_on_vcd = ext_manager.update_extension( self.name, namespace=self.conf('vcloud.api_extension.namespace'), routing_key=self.conf('vcloud.api_extension.routing_key'), exchange=self.conf('vcloud.api_extension.exchange')) self.log('info', 'Extension is updated on vCloud') # Register a new extension if not current_ext_on_vcd: ext_manager.add_extension( self.name, namespace=self.conf('vcloud.api_extension.namespace'), routing_key=self.conf('vcloud.api_extension.routing_key'), exchange=self.conf('vcloud.api_extension.exchange'), patterns=self.conf('vcloud.api_extension.api_filters')) self.log('info', 'Extension is registered on vCloud') # Ensure to enable it ext_manager.enable_extension(self.name, namespace=self.conf('vcloud.api_extension.namespace'), enabled=True) self.log('info', 'Extension is enabled on vCloud')
def test_9998_teardown(self): """Test the method APIExtension.delete_extension(). Invoke the method for the service created during setup. This test passes if no errors are generated while deleting the service. """ logger = Environment.get_default_logger() api_extension = APIExtension(TestApiExtension._client) logger.debug('Deleting service (name:' + TestApiExtension._service_name + ', namespace:' + TestApiExtension._service1_namespace + ').') api_extension.delete_extension( name=TestApiExtension._service_name, namespace=TestApiExtension._service1_namespace) logger.debug('Deleting service (name:' + TestApiExtension._service_name + ', namespace:' + TestApiExtension._service1_namespace + ').') api_extension.delete_extension( name=TestApiExtension._service_name, namespace=TestApiExtension._service2_namespace)
def test_0003_delete_extension(self): extension = APIExtension(self.client) extension.delete_extension(self.config['vcd']['extension_name'], self.config['vcd']['extension_namespace'])