예제 #1
0
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)
예제 #2
0
 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')
예제 #3
0
    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)
예제 #4
0
    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)
예제 #5
0
 def test_0003_delete_extension(self):
     extension = APIExtension(self.client)
     extension.delete_extension(self.config['vcd']['extension_name'],
                                self.config['vcd']['extension_namespace'])
예제 #6
0
파일: vcd_ext.py 프로젝트: vmware/pyvcloud
 def test_0003_delete_extension(self):
     extension = APIExtension(self.client)
     extension.delete_extension(self.config['vcd']['extension_name'],
                                self.config['vcd']['extension_namespace'])