示例#1
0
 def testBogusObjectPath(self):
     """
     Success should occur on a bogus object path.
     """
     (_, rc, _) = checked_call(Manager.DestroyPool(self._proxy, pool="/"),
                               ManagerSpec.OUTPUT_SIGS[_MN.DestroyPool])
     self.assertEqual(rc, self._errors.OK)
示例#2
0
 def testExecution(self):
     """
     This should fail since it has a filesystem on it.
     """
     (rc, _) = checked_call(
         Manager.DestroyPool(self._proxy, name=self._POOLNAME),
         ManagerSpec.OUTPUT_SIGS[_MN.DestroyPool])
     self.assertEqual(rc, self._errors.BUSY)
示例#3
0
    def testExecution(self):
        """
        Destroy should succeed.
        """
        (rc, _) = checked_call(
            Manager.DestroyPool(self._proxy, name=self._POOLNAME),
            ManagerSpec.OUTPUT_SIGS[_MN.DestroyPool])
        self.assertEqual(rc, self._errors.OK)

        (_, rc1, _) = checked_call(
            Manager.GetPoolObjectPath(self._proxy, name=self._POOLNAME),
            ManagerSpec.OUTPUT_SIGS[_MN.GetPoolObjectPath])

        self.assertEqual(rc1, self._errors.POOL_NOTFOUND)
示例#4
0
    def testExecution(self):
        """
        This should fail since the pool has a filesystem on it.
        """
        managed_objects = get_managed_objects(self._proxy)
        (pool, _) = next(managed_objects.pools({'Name': self._POOLNAME}))

        (result, rc,
         _) = checked_call(Manager.DestroyPool(self._proxy, pool=pool),
                           ManagerSpec.OUTPUT_SIGS[_MN.DestroyPool])
        self.assertEqual(rc, self._errors.BUSY)
        self.assertEqual(result, False)

        managed_objects = get_managed_objects(self._proxy)
        (pool1, _) = next(managed_objects.pools({'Name': self._POOLNAME}))
        self.assertEqual(pool, pool1)
示例#5
0
    def testExecution(self):
        """
        The pool was just created, so it must always be possible to destroy it.
        """
        managed_objects = get_managed_objects(self._proxy)
        (pool1, _) = next(managed_objects.pools({'Name': self._POOLNAME}))

        (result, rc,
         _) = checked_call(Manager.DestroyPool(self._proxy, pool=pool1),
                           ManagerSpec.OUTPUT_SIGS[_MN.DestroyPool])

        managed_objects = get_managed_objects(self._proxy)
        pool2 = next(managed_objects.pools({'Name': self._POOLNAME}), None)

        self.assertEqual(rc, self._errors.OK)
        self.assertIsNone(pool2)
        self.assertTrue(result)
示例#6
0
    def testExecution(self):
        """
        The pool was just created and has no devices. It should always be
        possible to destroy it.
        """
        managed_objects = get_managed_objects(self._proxy)
        (pool, _) = next(managed_objects.pools({'Name': self._POOLNAME}))

        (result, rc,
         _) = checked_call(Manager.DestroyPool(self._proxy, pool=pool),
                           ManagerSpec.OUTPUT_SIGS[_MN.DestroyPool])

        self.assertEqual(rc, self._errors.OK)
        self.assertEqual(result, True)

        managed_objects = get_managed_objects(self._proxy)
        self.assertIsNone(
            next(managed_objects.pools({'Name': self._POOLNAME}), None))
示例#7
0
    def destroy_pool(namespace):
        """
        Destroy a stratis pool.

        If no pool exists, the method succeeds.

        :raises StratisCliRuntimeError:
        """
        proxy = get_object(TOP_OBJECT)

        (rc, message) = Manager.DestroyPool(proxy, name=namespace.name)

        stratisd_errors = StratisdErrorsGen.get_object()

        if rc != stratisd_errors.OK:
            raise StratisCliRuntimeError(rc, message)

        return
示例#8
0
    def testExecution(self):
        """
        The pool was just created, so must be destroyable.
        """
        (rc, _) = checked_call(
            Manager.DestroyPool(self._proxy, name=self._POOLNAME),
            ManagerSpec.OUTPUT_SIGS[_MN.DestroyPool])

        (_, rc1, _) = checked_call(
            Manager.GetPoolObjectPath(self._proxy, name=self._POOLNAME),
            ManagerSpec.OUTPUT_SIGS[_MN.GetPoolObjectPath],
        )

        if rc is self._errors.OK:
            expected_rc = self._errors.POOL_NOTFOUND
        else:
            expected_rc = self._errors.OK

        self.assertEqual(rc1, expected_rc)