docs: def sync(self, json_obj=None):
          """
          synchronize self from Ariane server according its id
          :return:
          """
          LOGGER.debug("Container.sync")
          if json_obj is None:
              params = None
              if self.id is not None:
                  params = SessionService.complete_transactional_req({'ID': self.id})
  
              if params is not None:
                  if MappingService.driver_type != DriverFactory.DRIVER_REST:
                      params['OPERATION'] = 'getContainer'
                      args = {'properties': params}
                  else:
                      args = {'http_operation': 'GET', 'operation_path': 'get', 'parameters': params}
  
                  response = ContainerService.requester.call(args)
  
                  if MappingService.driver_type != DriverFactory.DRIVER_REST:
                      response = response.get()
  
                  if response.rc == 0:
                      json_obj = response.response_content
                  else:
                      err_msg = 'Container.sync - Problem while syncing container (id: ' + str(self.id) + '). ' \
                                'Reason: ' + str(response.response_content) + ' - ' + str(response.error_message) + \
                                " (" + str(response.rc) + ")"
                      LOGGER.warning(err_msg)
                      if response.rc == 500 and ArianeMappingOverloadError.ERROR_MSG in response.error_message:
                          raise ArianeMappingOverloadError("Container.sync", ArianeMappingOverloadError.ERROR_MSG)
                      # traceback.print_stack()
          elif 'containerID' not in json_obj:
              err_msg = 'Container.sync - Problem while syncing container (id: ' + str(self.id) + '). ' \
                        'Reason: inconsistent json_obj' + str(json_obj) + " from : \n"
              LOGGER.warning(err_msg)
              # traceback.print_stack()
  
          if json_obj is not None:
              self.id = json_obj['containerID']
              self.name = json_obj['containerName']
              self.gate_uri = json_obj['containerGateURI']
              self.primary_admin_gate_id = json_obj['containerPrimaryAdminGateID']
              self.cluster_id = json_obj['containerClusterID'] if 'containerClusterID' in json_obj else None
              self.parent_container_id = json_obj['containerParentContainerID'] if 'containerParentContainerID' \
                                                                                   in json_obj else None
              self.child_containers_id = json_obj['containerChildContainersID']
              self.gates_id = json_obj['containerGatesID']
              self.nodes_id = json_obj['containerNodesID']
              self.company = json_obj['containerCompany']
              self.product = json_obj['containerProduct']
              self.type = json_obj['containerType']
              if MappingService.driver_type != DriverFactory.DRIVER_REST:
                  if 'containerProperties' in json_obj:
                      self.properties = DriverTools.json2properties(json_obj['containerProperties'])
                  else:
                      self.properties = None
              else:
                  self.properties = json_obj['containerProperties'] if 'containerProperties' in json_obj else None