コード例 #1
0
 def test_remove_owner_not_found(self, get_sip_id, add_to_pool):
     get_sip_id.return_value = NUMBER_ID
     self.mock_cursor.rowcount = 0
     remove_owner(self.mock_session, SIP_URI)
     self.mock_session.execute.assert_called_with(ANY,
                                                  {"number_id": NUMBER_ID})
     self.assertFalse(add_to_pool.called)
コード例 #2
0
ファイル: numbers.py プロジェクト: biddyweb/ellis
 def _on_get_privates_failure(responses):
     # The number has no records in Homestead
     _log.debug("Failed to retrieve private IDs for a public ID")
     _log.debug("Returning %s to the pool" % sip_uri)
     numbers.remove_owner(db_sess, sip_uri)
     db_sess.commit()
     on_success({})
コード例 #3
0
ファイル: numbers.py プロジェクト: vitosans/ellis
 def on_upstream_deletion(*args):
     _log.info(
         "Deletion from Homestead and Homer was OK - returning number to pool"
     )
     numbers.remove_owner(db_sess, sip_uri)
     db_sess.commit()
     on_success(args)
コード例 #4
0
ファイル: numbers.py プロジェクト: AiprNick/ellis
def _delete_number(db_sess, sip_uri, private_id, delete_digest, on_success, on_failure, force_delete):
    """
       Deletes all information associated with a private/public identity
       pair, optionally deleting the digest associated with the private identity
    """

    def on_upstream_deletion(*args):
        _log.info("Deletion from Homestead and Homer was OK - returning number to pool")
        numbers.remove_owner(db_sess, sip_uri)
        db_sess.commit()
        on_success(args)

    # Concurrently, delete data from Homestead and Homer
    request_group = HTTPCallbackGroup(on_upstream_deletion, on_failure)

    if force_delete:
        request_group = HTTPCallbackGroup(on_success, on_failure)
        _log.info("Returning number to pool before attempting deletion from Homestead and Homer")
        numbers.remove_owner(db_sess, sip_uri)
        db_sess.commit()

    if delete_digest:
        # Deleting the private ID will delete its associated IRS (and
        # therefore any subsidiary public IDs and their service profiles)
        homestead.delete_private_id(private_id, request_group.callback())
    else:
        homestead.delete_public_id(sip_uri, request_group.callback())
    xdm.delete_simservs(sip_uri, request_group.callback())
コード例 #5
0
ファイル: numbers.py プロジェクト: vitosans/ellis
def _delete_number(db_sess, sip_uri, private_id, delete_digest, on_success,
                   on_failure, force_delete):
    """
       Deletes all information associated with a private/public identity
       pair, optionally deleting the digest associated with the private identity
    """
    def on_upstream_deletion(*args):
        _log.info(
            "Deletion from Homestead and Homer was OK - returning number to pool"
        )
        numbers.remove_owner(db_sess, sip_uri)
        db_sess.commit()
        on_success(args)

    # Concurrently, delete data from Homestead and Homer
    request_group = HTTPCallbackGroup(on_upstream_deletion, on_failure)

    if force_delete:  # pragma: no cover
        request_group = HTTPCallbackGroup(on_success, on_failure)
        _log.info(
            "Returning number to pool before attempting deletion from Homestead and Homer"
        )
        numbers.remove_owner(db_sess, sip_uri)
        db_sess.commit()

    if delete_digest:
        # Deleting the private ID will delete its associated IRS (and
        # therefore any subsidiary public IDs and their service profiles)
        homestead.delete_private_id(private_id, request_group.callback())
    else:
        homestead.delete_public_id(sip_uri, request_group.callback())
    xdm.delete_simservs(sip_uri, request_group.callback())
コード例 #6
0
ファイル: numbers.py プロジェクト: AiprNick/ellis
 def _on_get_privates_failure(response):
     if (response.code == 404) or force_delete:
         # The number has no records in Homestead
         _log.debug("Failed to retrieve private IDs for a public ID")
         _log.debug("Returning %s to the pool" % sip_uri)
         numbers.remove_owner(db_sess, sip_uri)
         db_sess.commit()
         on_success({})
     else:
         _log.warn("Non-404 response - not returning number to pool")
         on_failure(response)
コード例 #7
0
ファイル: numbers.py プロジェクト: vitosans/ellis
 def _on_get_privates_failure(response):
     if (response.code == 404) or force_delete:
         # The number has no records in Homestead
         _log.debug("Failed to retrieve private IDs for a public ID")
         _log.debug("Returning %s to the pool" % sip_uri)
         numbers.remove_owner(db_sess, sip_uri)
         db_sess.commit()
         on_success({})
     else:  # pragma: no cover
         _log.warn("Non-404 response - not returning number to pool")
         on_failure(response)
コード例 #8
0
ファイル: numbers.py プロジェクト: vitosans/ellis
    def _on_get_failure(self, sip_uri, response):  # pragma: no cover
        _log.warn("Failed to fetch private identities from homestead for %s",
                  sip_uri)
        if hasattr(response, 'code') and response.code == 404:
            # The number has no records in Homestead, so forget about it locally
            _log.warn("Returning %s to the pool", sip_uri)
            db_sess = self.db_session()
            numbers.remove_owner(db_sess, sip_uri)
            db_sess.commit()
            # Also try and remove it from Homer, but do nothing if we fail
            xdm.delete_simservs(sip_uri, lambda responses: None)

        self.forward_error(response)
コード例 #9
0
ファイル: numbers.py プロジェクト: biddyweb/ellis
def _delete_number(db_sess, sip_uri, private_id, delete_digest, on_success, on_failure):
    """
       Deletes all information associated with a private/public identity
       pair, optionally deleting the digest associated with the private identity
    """
    numbers.remove_owner(db_sess, sip_uri)
    db_sess.commit()

    # Concurrently, delete data from Homestead and Homer
    request_group = HTTPCallbackGroup(on_success, on_failure)
    if delete_digest:
        homestead.delete_private_id(private_id, request_group.callback())
    homestead.delete_public_id(sip_uri, request_group.callback())
    xdm.delete_simservs(sip_uri, request_group.callback())
コード例 #10
0
ファイル: sync_databases.py プロジェクト: biddyweb/ellis
 def delete_line():
     """
     Remove details about line from ellis, homestead and homer
     """
     print "Deleting %s %s" % (private_id, sip_uri)
     numbers.remove_owner(db_session, sip_uri)
     # Attempt to delete info about line from remotes
     global pending_requests
     if private_id:
         stats["Credentials & associations deleted"] += 1
         pending_requests += 2
         homestead.delete_password(private_id, logging_handler)
         homestead.delete_associated_public(private_id, sip_uri, logging_handler)
     stats["Simservs & iFCs deleted"] += 1
     pending_requests += 2
     homestead.delete_filter_criteria(sip_uri, logging_handler)
     xdm.delete_simservs(sip_uri, logging_handler)
コード例 #11
0
ファイル: sync_databases.py プロジェクト: vitosans/ellis
 def delete_line():
     """
     Remove details about line from ellis, homestead and homer
     """
     print "Deleting %s %s" % (private_id, sip_uri)
     numbers.remove_owner(db_session, sip_uri)
     # Attempt to delete info about line from remotes
     global pending_requests
     if private_id:
         stats["Credentials & associations deleted"] += 1
         pending_requests += 2
         homestead.delete_password(private_id, logging_handler)
         homestead.delete_associated_public(private_id, sip_uri,
                                            logging_handler)
     stats["Simservs & iFCs deleted"] += 1
     pending_requests += 2
     homestead.delete_filter_criteria(sip_uri, logging_handler)
     xdm.delete_simservs(sip_uri, logging_handler)
コード例 #12
0
ファイル: numbers.py プロジェクト: ClearwaterCore/ellis
 def test_remove_owner_not_found(self, get_sip_id, add_to_pool):
     get_sip_id.return_value = NUMBER_ID
     self.mock_cursor.rowcount = 0
     remove_owner(self.mock_session, SIP_URI)
     self.mock_session.execute.assert_called_with(ANY, {"number_id": NUMBER_ID})
     self.assertFalse(add_to_pool.called)
コード例 #13
0
ファイル: numbers.py プロジェクト: ClearwaterCore/ellis
 def test_remove_owner(self, get_sip_id):
     get_sip_id.return_value = NUMBER_ID
     self.mock_cursor.rowcount = 1
     remove_owner(self.mock_session, SIP_URI)
     self.mock_session.execute.assert_called_with(ANY, {"number_id": NUMBER_ID})
コード例 #14
0
 def test_remove_owner(self, get_sip_id):
     get_sip_id.return_value = NUMBER_ID
     self.mock_cursor.rowcount = 1
     remove_owner(self.mock_session, SIP_URI)
     self.mock_session.execute.assert_called_with(ANY,
                                                  {"number_id": NUMBER_ID})
コード例 #15
0
ファイル: numbers.py プロジェクト: AiprNick/ellis
 def on_upstream_deletion(*args):
     _log.info("Deletion from Homestead and Homer was OK - returning number to pool")
     numbers.remove_owner(db_sess, sip_uri)
     db_sess.commit()
     on_success(args)