def create_from_packed(cls, packed):
        action = packed[cls.ACTION]
        prev = None
        curr = None

        if action == cls.Action.ADD:
            type_ = packed[cls.CURR][ComponentConnection.OBJECT_TYPE]
            if type_ == ComponentConnectionLogicAndNetwork.TYPE:
                curr = ComponentConnectionLogicAndNetwork.\
                    create_from_packed(packed[cls.CURR])
            else:
                curr = ComponentConnection.create_from_packed(packed[cls.CURR])
        elif action == cls.Action.DELETE:
            type_ = packed[cls.PREV][ComponentConnection.OBJECT_TYPE]
            if type_ == ComponentConnectionLogicAndNetwork.TYPE:
                prev = ComponentConnectionLogicAndNetwork.\
                    create_from_packed(packed[cls.PREV])
            else:
                prev = ComponentConnection.create_from_packed(packed[cls.PREV])
        elif action == cls.Action.UPDATE:
            type_ = packed[cls.CURR][ComponentConnection.OBJECT_TYPE]
            if type_ == ComponentConnectionLogicAndNetwork.TYPE:
                prev = ComponentConnectionLogicAndNetwork.\
                    create_from_packed(packed[cls.PREV])
                curr = ComponentConnectionLogicAndNetwork.\
                    create_from_packed(packed[cls.CURR])
            else:
                prev = ComponentConnection.create_from_packed(packed[cls.PREV])
                curr = ComponentConnection.create_from_packed(packed[cls.CURR])

        return cls(action, prev, curr)
Пример #2
0
    def test_get_connection_arg_ComponentConnectio_success(self):
        ComponentConnectioTmp = ComponentConnection("slicer1network",
                                                    "original",
                                                    "running")
        body = ComponentConnectioTmp.packed_object()
        with nested(
                patch('org.o3project.odenos.core.util.remote_object_interface.'
                      'RemoteObjectInterface._get_object_to_remote_object',
                      return_value=Response(Response.StatusCode.OK,
                                            body)),
                patch('org.o3project.odenos.remoteobject.manager.system.'
                      'component_connection.ComponentConnection.'
                      'create_from_packed',
                      return_value=ComponentConnection.create_from_packed(
                          body)),
                patch('org.o3project.odenos.remoteobject.manager.system.'
                      'component_connection_logic_and_network.'
                      'ComponentConnectionLogicAndNetwork.create_from_packed'),
                patch('logging.error'
                      )) as (m_get_object,
                             m_Connection,
                             m_LogicAndNetwork,
                             m_log_error):

                self.result = self.target.get_connection("slicer1network")
                self.assertEqual(m_get_object.call_count, 1)
                m_get_object.assert_any_call(SystemManagerInterface.
                                             CONNECTION_PATH %
                                             "slicer1network")
                self.assertEqual(m_Connection.call_count, 1)
                m_Connection.assert_any_call(body)
                self.assertEqual(m_LogicAndNetwork.call_count, 0)
                self.assertNotEqual(self.result, None)
                self.assertEqual(self.result.packed_object(), body)
                self.assertEqual(m_log_error.call_count, 0)
Пример #3
0
    def test_get_connection_arg_create_from_packed_NG(self):
        ComponentConnectioTmp = ComponentConnection("slicer1network", "original", "running")
        body = ComponentConnectioTmp.packed_object()
        debug_log = "GET Connection Invalid Response Message" + " KeyError: 1"

        with nested(
            patch(
                "org.o3project.odenos.core.util.remote_object_interface."
                "RemoteObjectInterface._get_object_to_remote_object",
                return_value=Response(Response.StatusCode.OK, body),
            ),
            patch(
                "org.o3project.odenos.remoteobject.manager.system."
                "component_connection.ComponentConnection."
                "create_from_packed",
                side_effect=KeyError(1),
            ),
            patch(
                "org.o3project.odenos.remoteobject.manager.system."
                "component_connection_logic_and_network."
                "ComponentConnectionLogicAndNetwork.create_from_packed"
            ),
            patch("logging.error"),
        ) as (m_get_object, m_Connection, m_LogicAndNetwork, m_log_error):

            self.result = self.target.get_connection("slicer1network")
            self.assertEqual(m_get_object.call_count, 1)
            m_get_object.assert_any_call(SystemManagerInterface.CONNECTION_PATH % "slicer1network")
            self.assertEqual(m_Connection.call_count, 1)
            m_Connection.assert_any_call(body)
            self.assertEqual(m_LogicAndNetwork.call_count, 0)
            self.assertEqual(self.result, None)
            self.assertEqual(m_log_error.call_count, 1)
            m_log_error.assert_called_once_with(debug_log)
Пример #4
0
    def create_from_packed(cls, packed):
        action = packed[cls.ACTION]
        prev = None
        curr = None

        if action == cls.Action.ADD:
            type_ = packed[cls.CURR][ComponentConnection.OBJECT_TYPE]
            if type_ == ComponentConnectionLogicAndNetwork.TYPE:
                curr = ComponentConnectionLogicAndNetwork.\
                    create_from_packed(packed[cls.CURR])
            else:
                curr = ComponentConnection.create_from_packed(packed[cls.CURR])
        elif action == cls.Action.DELETE:
            type_ = packed[cls.PREV][ComponentConnection.OBJECT_TYPE]
            if type_ == ComponentConnectionLogicAndNetwork.TYPE:
                prev = ComponentConnectionLogicAndNetwork.\
                    create_from_packed(packed[cls.PREV])
            else:
                prev = ComponentConnection.create_from_packed(packed[cls.PREV])
        elif action == cls.Action.UPDATE:
            type_ = packed[cls.CURR][ComponentConnection.OBJECT_TYPE]
            if type_ == ComponentConnectionLogicAndNetwork.TYPE:
                prev = ComponentConnectionLogicAndNetwork.\
                    create_from_packed(packed[cls.PREV])
                curr = ComponentConnectionLogicAndNetwork.\
                    create_from_packed(packed[cls.CURR])
            else:
                prev = ComponentConnection.create_from_packed(packed[cls.PREV])
                curr = ComponentConnection.create_from_packed(packed[cls.CURR])

        return cls(action, prev, curr)
Пример #5
0
    def test_get_connections_success(self):
        ComponentConnectioTmp = ComponentConnection("slicer1_network1",
                                                    "original",
                                                    "running")
        LogicAndNetworkTmp =\
            ComponentConnectionLogicAndNetwork("slicer1_network2",
                                               "original",
                                               "running",
                                               "LogicId",
                                               "NetworkId")
        ComponentConnectioTmp_packed_object =\
            ComponentConnectioTmp.packed_object()
        LogicAndNetworkTmp_packed_object =\
            LogicAndNetworkTmp.packed_object()
        body = {"slicer1network": ComponentConnectioTmp_packed_object,
                "slicer2network": LogicAndNetworkTmp_packed_object}
        with nested(
                patch('org.o3project.odenos.core.util.remote_object_interface.'
                      'RemoteObjectInterface._get_object_to_remote_object',
                      return_value=Response(Response.StatusCode.OK, body)),
                patch('org.o3project.odenos.remoteobject.manager.system.'
                      'component_connection.ComponentConnection.'
                      'create_from_packed',
                      return_value=ComponentConnection.create_from_packed(
                          ComponentConnectioTmp_packed_object)),
                patch('org.o3project.odenos.remoteobject.manager.system.'
                      'component_connection_logic_and_network.'
                      'ComponentConnectionLogicAndNetwork.create_from_packed',
                      return_value=ComponentConnectionLogicAndNetwork.
                      create_from_packed(LogicAndNetworkTmp_packed_object)),
                patch('logging.error'
                      )) as (m_get_object,
                             m_Connection,
                             m_LogicAndNetwork,
                             m_log_error):

                self.result = self.target.get_connections()
                self.assertEqual(m_get_object.call_count, 1)
                m_get_object.assert_any_call(SystemManagerInterface.
                                             CONNECTIONS_PATH)
                self.assertEqual(m_Connection.call_count, 1)
                m_Connection.assert_any_call(
                    ComponentConnectioTmp_packed_object)
                self.assertEqual(m_LogicAndNetwork.call_count, 1)
                m_LogicAndNetwork.assert_any_call(
                    LogicAndNetworkTmp_packed_object)
                self.assertNotEqual(self.result, None)
                self.assertEqual(len(self.result), 2)
                self.assertEqual(self.result["slicer1network"].packed_object(),
                                 ComponentConnectioTmp_packed_object)
                self.assertEqual(self.result["slicer2network"].packed_object(),
                                 LogicAndNetworkTmp_packed_object)
                self.assertEqual(m_log_error.call_count, 0)
Пример #6
0
 def test__connection_changed_delete_pre_NotType_False(self):
     ComponentConnectioTmp = ComponentConnection("slicer1_network1",
                                                 "original", "running")
     msg = Mock()
     msg.prev = ComponentConnectioTmp
     self.result = self.target._connection_changed_delete_pre(msg)
     self.assertEqual(self.result, False)
Пример #7
0
    def test_get_connections_success(self):
        ComponentConnectioTmp = ComponentConnection("slicer1_network1", "original", "running")
        LogicAndNetworkTmp = ComponentConnectionLogicAndNetwork(
            "slicer1_network2", "original", "running", "LogicId", "NetworkId"
        )
        ComponentConnectioTmp_packed_object = ComponentConnectioTmp.packed_object()
        LogicAndNetworkTmp_packed_object = LogicAndNetworkTmp.packed_object()
        body = {
            "slicer1network": ComponentConnectioTmp_packed_object,
            "slicer2network": LogicAndNetworkTmp_packed_object,
        }
        with nested(
            patch(
                "org.o3project.odenos.core.util.remote_object_interface."
                "RemoteObjectInterface._get_object_to_remote_object",
                return_value=Response(Response.StatusCode.OK, body),
            ),
            patch(
                "org.o3project.odenos.remoteobject.manager.system."
                "component_connection.ComponentConnection."
                "create_from_packed",
                return_value=ComponentConnection.create_from_packed(ComponentConnectioTmp_packed_object),
            ),
            patch(
                "org.o3project.odenos.remoteobject.manager.system."
                "component_connection_logic_and_network."
                "ComponentConnectionLogicAndNetwork.create_from_packed",
                return_value=ComponentConnectionLogicAndNetwork.create_from_packed(LogicAndNetworkTmp_packed_object),
            ),
            patch("logging.error"),
        ) as (m_get_object, m_Connection, m_LogicAndNetwork, m_log_error):

            self.result = self.target.get_connections()
            self.assertEqual(m_get_object.call_count, 1)
            m_get_object.assert_any_call(SystemManagerInterface.CONNECTIONS_PATH)
            self.assertEqual(m_Connection.call_count, 1)
            m_Connection.assert_any_call(ComponentConnectioTmp_packed_object)
            self.assertEqual(m_LogicAndNetwork.call_count, 1)
            m_LogicAndNetwork.assert_any_call(LogicAndNetworkTmp_packed_object)
            self.assertNotEqual(self.result, None)
            self.assertEqual(len(self.result), 2)
            self.assertEqual(self.result["slicer1network"].packed_object(), ComponentConnectioTmp_packed_object)
            self.assertEqual(self.result["slicer2network"].packed_object(), LogicAndNetworkTmp_packed_object)
            self.assertEqual(m_log_error.call_count, 0)
    def test_constructor_Not_state(self):
        self.target = ComponentConnection("slicer1->network1",
                                          "original",
                                          None)

        self.assertEqual(self.target._property[self.target.OBJECT_ID],
                         "slicer1->network1")
        self.assertEqual(self.target._property[self.target.OBJECT_TYPE],
                         "ComponentConnection")
        self.assertEqual(self.target._property[self.target.CONNECTION_TYPE],
                         "original")
        self.assertEqual(self.target._property[self.target.OBJECT_STATE],
                         "initializing")
Пример #9
0
 def test_put_connection_success(self):
     value = ComponentConnection("Component_ConnectionId1", "ObjectType",
                                 "original", "running")
     with nested(
             patch('org.o3project.odenos.core.util.remote_object_interface.'
                   'RemoteObjectInterface._put_object_to_remote_object'
                   )) as m_put_object:
             self.result = self.target.put_connection(value)
             self.assertEqual(m_put_object[0].call_count, 1)
             m_put_object[0].assert_any_call(SystemManagerInterface.
                                             CONNECTION_PATH %
                                             "Component_ConnectionId1",
                                             value)
             self.assertNotEqual(self.result, None)
    def test_create_from_packed_State_None(self):
        self.value = {"id": "slicer1->network1",
                      "type": "ComponentConnection",
                      "connection_type": "original"}

        self.result = ComponentConnection.create_from_packed(self.value)
        self.assertEqual(self.result._property[self.target.OBJECT_ID],
                         "slicer1->network1")
        self.assertEqual(self.result._property[self.target.OBJECT_TYPE],
                         "ComponentConnection")
        self.assertEqual(self.result._property[self.target.CONNECTION_TYPE],
                         "original")
        self.assertEqual(self.result._property[self.target.OBJECT_STATE],
                         "initializing")
Пример #11
0
    def get_connections(self):
        logging.debug("GET Connections")
        resp = self._get_object_to_remote_object(self.CONNECTIONS_PATH)
        if resp.is_error(Request.Method.GET):
            return None

        connections = {}
        try:
            for conn_id, connection in resp.body.items():
                if connection[ComponentConnection.OBJECT_TYPE] ==\
                   ComponentConnectionLogicAndNetwork.TYPE:
                    connections[conn_id] =\
                        ComponentConnectionLogicAndNetwork.create_from_packed(
                            connection)
                else:
                    connections[conn_id] =\
                        ComponentConnection.create_from_packed(connection)
        except KeyError, err:
            logging.error("GET Connections Invalid Response Message"
                          + " KeyError: " + str(err))
            return None
Пример #12
0
    def get_connection(self, conn_id):
        logging.debug("GET Connection ConnectionID:" + conn_id)
        path = self.CONNECTION_PATH % conn_id
        resp = self._get_object_to_remote_object(path)
        if resp.is_error(Request.Method.GET):
            return None

        connection = None
        try:
            if resp.body[ComponentConnection.OBJECT_TYPE] ==\
               ComponentConnectionLogicAndNetwork.TYPE:
                connection =\
                    ComponentConnectionLogicAndNetwork.create_from_packed(
                        resp.body)
            else:
                connection =\
                    ComponentConnection.create_from_packed(resp.body)
        except KeyError, err:
            logging.error("GET Connection Invalid Response Message"
                          + " KeyError: " + str(err))
            return None
    def get_connections(self):
        logging.debug("GET Connections")
        resp = self._get_object_to_remote_object(self.CONNECTIONS_PATH)
        if resp.is_error(Request.Method.GET):
            return None

        connections = {}
        try:
            for conn_id, connection in resp.body.items():
                if connection[ComponentConnection.OBJECT_TYPE] ==\
                   ComponentConnectionLogicAndNetwork.TYPE:
                    connections[conn_id] =\
                        ComponentConnectionLogicAndNetwork.create_from_packed(
                            connection)
                else:
                    connections[conn_id] =\
                        ComponentConnection.create_from_packed(connection)
        except KeyError, err:
            logging.error("GET Connections Invalid Response Message" +
                          " KeyError: " + str(err))
            return None
    def get_connection(self, conn_id):
        logging.debug("GET Connection ConnectionID:" + conn_id)
        path = self.CONNECTION_PATH % conn_id
        resp = self._get_object_to_remote_object(path)
        if resp.is_error(Request.Method.GET):
            return None

        connection = None
        try:
            if resp.body[ComponentConnection.OBJECT_TYPE] ==\
               ComponentConnectionLogicAndNetwork.TYPE:
                connection =\
                    ComponentConnectionLogicAndNetwork.create_from_packed(
                        resp.body)
            else:
                connection =\
                    ComponentConnection.create_from_packed(resp.body)
        except KeyError, err:
            logging.error("GET Connection Invalid Response Message" +
                          " KeyError: " + str(err))
            return None
 def setUp(self):
     self.target = ComponentConnection("slicer1->network1",
                                       "original",
                                       "running")
class ComponentConnectionTest(unittest.TestCase):

    def setUp(self):
        self.target = ComponentConnection("slicer1->network1",
                                          "original",
                                          "running")

    def tearDown(self):
        self.target = None

    def test_constructor_state_running(self):
        self.assertEqual(self.target._property[self.target.OBJECT_ID],
                         "slicer1->network1")
        self.assertEqual(self.target._property[self.target.OBJECT_TYPE],
                         "ComponentConnection")
        self.assertEqual(self.target._property[self.target.CONNECTION_TYPE],
                         "original")
        self.assertEqual(self.target._property[self.target.OBJECT_STATE],
                         "running")

    def test_constructor_Not_state(self):
        self.target = ComponentConnection("slicer1->network1",
                                          "original",
                                          None)

        self.assertEqual(self.target._property[self.target.OBJECT_ID],
                         "slicer1->network1")
        self.assertEqual(self.target._property[self.target.OBJECT_TYPE],
                         "ComponentConnection")
        self.assertEqual(self.target._property[self.target.CONNECTION_TYPE],
                         "original")
        self.assertEqual(self.target._property[self.target.OBJECT_STATE],
                         "initializing")

    def test_id(self):
        self.assertEqual(self.target.id, "slicer1->network1")

    def test_type(self):
        self.assertEqual(self.target.type, "ComponentConnection")

    def test_connection_type(self):
        self.assertEqual(self.target.connection_type, "original")

    def test_state(self):
        self.assertEqual(self.target.state, "running")

    def test_state_setter(self):
        self.target.state = "finalizing"
        self.assertEqual(self.target._property[self.target.OBJECT_STATE],
                         "finalizing")

    def test_is_read_only_key_id(self):
        self.assertEqual(self.target._is_read_only_key("id"), True)

    def test_is_read_only_key_type(self):
        self.assertEqual(self.target._is_read_only_key("type"), True)

    def test_is_read_only_key_connection_type(self):
        self.assertEqual(
            self.target._is_read_only_key("connection_type"), True)

    def test_is_read_only_key_state(self):
        self.assertEqual(self.target._is_read_only_key("state"), False)

    def test_get_property_id(self):
        self.assertEqual(self.target.get_property("id"),
                         "slicer1->network1")

    def test_get_property_type(self):
        self.assertEqual(self.target.get_property("type"),
                         "ComponentConnection")

    def test_get_property_connection_type(self):
        self.assertEqual(self.target.get_property("connection_type"),
                         "original")

    def test_get_property_state(self):
        self.assertEqual(self.target.get_property("state"),
                         "running")

    def test_set_property_state(self):
        self.target.set_property("state", "error")
        self.assertEqual(self.target._property["state"],
                         "error")

    def test_set_property_read_only_key(self):
        self.target.set_property("id", "slicer1")
        self.assertEqual(self.target._property["id"],
                         "slicer1->network1")

    def test_set_property_Same_Old(self):
        self.target.set_property("state", "running")
        self.assertEqual(self.target._property["state"],
                         "running")

    def test_get_property_keys(self):
        self.assertEqual(self.target.get_property_keys(),
                         self.target._property.keys())

    def test_create_from_packed(self):
        self.value = {"id": "slicer1->network1",
                      "type": "ComponentConnection",
                      "connection_type": "original",
                      "state": "initializing"}

        self.result = ComponentConnection.create_from_packed(self.value)
        self.assertEqual(self.result._property[self.target.OBJECT_ID],
                         "slicer1->network1")
        self.assertEqual(self.result._property[self.target.OBJECT_TYPE],
                         "ComponentConnection")
        self.assertEqual(self.result._property[self.target.CONNECTION_TYPE],
                         "original")
        self.assertEqual(self.result._property[self.target.OBJECT_STATE],
                         "initializing")

    def test_create_from_packed_State_None(self):
        self.value = {"id": "slicer1->network1",
                      "type": "ComponentConnection",
                      "connection_type": "original"}

        self.result = ComponentConnection.create_from_packed(self.value)
        self.assertEqual(self.result._property[self.target.OBJECT_ID],
                         "slicer1->network1")
        self.assertEqual(self.result._property[self.target.OBJECT_TYPE],
                         "ComponentConnection")
        self.assertEqual(self.result._property[self.target.CONNECTION_TYPE],
                         "original")
        self.assertEqual(self.result._property[self.target.OBJECT_STATE],
                         "initializing")

    def test_packed_object(self):
        self.result = self.target.packed_object()

        self.assertEqual(self.result[self.target.OBJECT_ID],
                         "slicer1->network1")
        self.assertEqual(self.result[self.target.OBJECT_TYPE],
                         "ComponentConnection")
        self.assertEqual(self.result[self.target.CONNECTION_TYPE],
                         "original")
        self.assertEqual(self.result[self.target.OBJECT_STATE],
                         "running")