def testFormatAddressIP4(self):
     res1 = netutils.FormatAddress(("127.0.0.1", 1234),
                                   family=socket.AF_INET)
     self.assertEqual(res1, "127.0.0.1:1234")
     res2 = netutils.FormatAddress(("192.0.2.32", None),
                                   family=socket.AF_INET)
     self.assertEqual(res2, "192.0.2.32")
 def testFormatAddressIP6(self):
     res1 = netutils.FormatAddress(("::1", 1234), family=socket.AF_INET6)
     self.assertEqual(res1, "[::1]:1234")
     res2 = netutils.FormatAddress(("::1", None), family=socket.AF_INET6)
     self.assertEqual(res2, "[::1]")
     res2 = netutils.FormatAddress(("2001:db8::beef", "80"),
                                   family=socket.AF_INET6)
     self.assertEqual(res2, "[2001:db8::beef]:80")
Ejemplo n.º 3
0
  def CopyFileToNode(self, node, port, filename):
    """Copy a file to another node with scp.

    @param node: node in the cluster
    @param filename: absolute pathname of a local file

    @rtype: boolean
    @return: the success of the operation

    """
    if not os.path.isabs(filename):
      logging.error("File %s must be an absolute path", filename)
      return False

    if not os.path.isfile(filename):
      logging.error("File %s does not exist", filename)
      return False

    command = [constants.SCP, "-p"]
    command.extend(self._BuildSshOptions(True, False, True, True, port=port))
    command.append(filename)
    if netutils.IP6Address.IsValid(node):
      node = netutils.FormatAddress((node, None))

    command.append("%s:%s" % (node, vcluster.ExchangeNodeRoot(node, filename)))

    result = utils.RunCmd(command)

    if result.failed:
      logging.error("Copy to node %s failed (%s) error '%s',"
                    " command was '%s'",
                    node, result.fail_reason, result.output, result.cmd)

    return not result.failed
Ejemplo n.º 4
0
    def url(self):
        """Returns the full URL for this requests.

    """
        if netutils.IPAddress.IsValid(self.host):
            address = netutils.FormatAddress((self.host, self.port))
        else:
            address = "%s:%s" % (self.host, self.port)
        # TODO: Support for non-SSL requests
        return "https://%s%s" % (address, self.path)
Ejemplo n.º 5
0
    def handle_accept(self):
        """Accept a new client connection.

    Creates a new instance of the handler class, which will use asyncore to
    serve the client.

    """
        accept_result = utils.IgnoreSignals(self.accept)
        if accept_result is not None:
            connected_socket, client_address = accept_result
            if self.family == socket.AF_UNIX:
                # override the client address, as for unix sockets nothing meaningful
                # is passed in from accept anyway
                client_address = netutils.GetSocketCredentials(
                    connected_socket)
            logging.info(
                "Accepted connection from %s",
                netutils.FormatAddress(client_address, family=self.family))
            self.handle_connection(connected_socket, client_address)
 def testFormatAddressWithoutFamily(self):
     res1 = netutils.FormatAddress(("127.0.0.1", 1234))
     self.assertEqual(res1, "127.0.0.1:1234")
     res2 = netutils.FormatAddress(("::1", 1234))
     self.assertEqual(res2, "[::1]:1234")
 def testFormatAddressUnixSocket(self):
     res1 = netutils.FormatAddress(("12352", 0, 0), family=socket.AF_UNIX)
     self.assertEqual(res1, "pid=12352, uid=0, gid=0")
Ejemplo n.º 8
0
 def close_log(self):
     logging.info(
         "Closing connection from %s",
         netutils.FormatAddress(self.peer_address, family=self.family))
     self.close()