Example #1
0
	def test_nodes(self,sh):
		print "Testing network nodes..."

		(status, nlist) = semanage.semanage_node_list(sh)
		if status < 0:
			raise Error("Could not list network nodes")
		print "Query status (commit number): ", status

		if (len(nlist) == 0):
			print "No network nodes found!"
			print "This is not necessarily a test failure."
			return
		for node in nlist:
			if self.verbose: print "Network node reference: ", node

			(status, addr) = semanage.semanage_node_get_addr(sh, node)
			if status < 0: addr = ""

			(status, mask) = semanage.semanage_node_get_mask(sh, node)
			if status < 0: mask = ""

			proto = semanage.semanage_node_get_proto(node)
			proto_str = semanage.semanage_node_get_proto_str(proto)		
			con = semanage.semanage_node_get_con(node)

			(status, con_str) = semanage.semanage_context_to_string(sh, con)
			if status < 0: con_str = ""

			print "Network Node: ", addr, "/", mask, " (", proto_str, ")", "Context: ", con_str
			semanage.semanage_node_free(node)
Example #2
0
    def test_nodes(self, sh):
        print("Testing network nodes...")

        (status, nlist) = semanage.semanage_node_list(sh)
        if status < 0:
            raise Error("Could not list network nodes")
        print("Query status (commit number): %s" % status)

        if len(nlist) == 0:
            print("No network nodes found!")
            print("This is not necessarily a test failure.")
            return
        for node in nlist:
            if self.verbose:
                print("Network node reference: %s" % node)

            (status, addr) = semanage.semanage_node_get_addr(sh, node)
            if status < 0:
                addr = ""

            (status, mask) = semanage.semanage_node_get_mask(sh, node)
            if status < 0:
                mask = ""

            proto = semanage.semanage_node_get_proto(node)
            proto_str = semanage.semanage_node_get_proto_str(proto)
            con = semanage.semanage_node_get_con(node)

            (status, con_str) = semanage.semanage_context_to_string(sh, con)
            if status < 0:
                con_str = ""

            print("Network Node: %s/%s (%s) Context: %s" %
                  (addr, mask, proto_str, con_str))
            semanage.semanage_node_free(node)
Example #3
0
    def test_nodes(self, sh):
        print "Testing network nodes..."

        (status, nlist) = semanage.semanage_node_list(sh)
        if status < 0:
            raise Error("Could not list network nodes")
        print "Query status (commit number): ", status

        if (len(nlist) == 0):
            print "No network nodes found!"
            print "This is not necessarily a test failure."
            return
        for node in nlist:
            if self.verbose: print "Network node reference: ", node

            (status, addr) = semanage.semanage_node_get_addr(sh, node)
            if status < 0: addr = ""

            (status, mask) = semanage.semanage_node_get_mask(sh, node)
            if status < 0: mask = ""

            proto = semanage.semanage_node_get_proto(node)
            proto_str = semanage.semanage_node_get_proto_str(proto)
            con = semanage.semanage_node_get_con(node)

            (status, con_str) = semanage.semanage_context_to_string(sh, con)
            if status < 0: con_str = ""

            print "Network Node: ", addr, "/", mask, " (", proto_str, ")", "Context: ", con_str
            semanage.semanage_node_free(node)
Example #4
0
    def test_nodes(self, sh):
        print("Testing network nodes...")

        (status, nlist) = semanage.semanage_node_list(sh)
        if status < 0:
            raise Error("Could not list network nodes")
        print("Query status (commit number): %s" % status)

        if len(nlist) == 0:
            print("No network nodes found!")
            print("This is not necessarily a test failure.")
            return
        for node in nlist:
            if self.verbose:
                print("Network node reference: %s" % node)

            (status, addr) = semanage.semanage_node_get_addr(sh, node)
            if status < 0:
                addr = ""

            (status, mask) = semanage.semanage_node_get_mask(sh, node)
            if status < 0:
                mask = ""

            proto = semanage.semanage_node_get_proto(node)
            proto_str = semanage.semanage_node_get_proto_str(proto)
            con = semanage.semanage_node_get_con(node)

            (status, con_str) = semanage.semanage_context_to_string(sh, con)
            if status < 0:
                con_str = ""

            print("Network Node: %s/%s (%s) Context: %s" % (addr, mask, proto_str, con_str))
            semanage.semanage_node_free(node)
Example #5
0
	def test_writenode(self,sh):
		print "Testing network node write..."

		(status, node) = semanage.semanage_node_create(sh)
		if status < 0:
			raise Error("Could not create SENode object")
		if self.verbose: print "SENode object created."

		status = semanage.semanage_node_set_addr(sh, node, semanage.SEMANAGE_PROTO_IP6, "ffee:dddd::bbbb")
		if status < 0:
			raise Error("Could not set SENode address")
	
		status = semanage.semanage_node_set_mask(sh, node, semanage.SEMANAGE_PROTO_IP6, "::ffff:ffff:abcd:0000")
		if status < 0:
			raise Error("Could not set SENode netmask")

		semanage.semanage_node_set_proto(node, semanage.SEMANAGE_PROTO_IP6);
		if self.verbose: print "SENode protocol set: ", \
			semanage.semanage_node_get_proto_str(semanage.SEMANAGE_PROTO_IP6)
		
		(status, con) = semanage.semanage_context_create(sh)
		if status < 0:
			raise Error("Could not create SEContext object")
		if self.verbose: print "SEContext object created (for node)."
		
		status = semanage.semanage_context_set_user(sh, con, "system_u")
		if status < 0:
			raise Error("Could not set context user")
		if self.verbose: print "SEContext user: "******"object_r")
		if status < 0:
			raise Error("Could not set context role")
		if self.verbose: print "SEContext role: ", semanage.semanage_context_get_role(con)
		
		status = semanage.semanage_context_set_type(sh, con, "lo_node_t")
		if status < 0:
			raise Error("Could not set context type")
		if self.verbose: print "SEContext type: ", semanage.semanage_context_get_type(con)

		status = semanage.semanage_context_set_mls(sh, con, "s0:c0.c255")
		if status < 0:
			raise Error("Could not set context MLS fields")
		if self.verbose: print "SEContext mls: ", semanage.semanage_context_get_mls(con)

		status = semanage.semanage_node_set_con(sh, node, con)
		if status < 0:
			raise Error("Could not set SENode context")
		if self.verbose: print "SENode context set: ", con

                (status,key) = semanage.semanage_node_key_extract(sh, node)
		if status < 0:
			raise Error("Could not extract SENode key")
		if self.verbose: print "SENode key extracted: ", key

		(status,exists) = semanage.semanage_node_exists_local(sh,key)
		if status < 0:
			raise Error("Could not check if SENode exists")
		if self.verbose: print "Exists status (commit number): ", status

		if exists:
			(status, old_node) = semanage.semanage_node_query_local(sh, key)
			if status < 0:
				raise Error("Could not query old SENode")
			if self.verbose: print "Query status (commit number): ", status

		print "Starting transaction..."
		status = semanage.semanage_begin_transaction(sh)
		if status < 0:
			raise Error("Could not start semanage transaction")	

		status = semanage.semanage_node_modify_local(sh,key, node)
		if status < 0:
			raise Error("Could not modify SENode")

		status = semanage.semanage_commit(sh)
		if status < 0:
			raise Error("Could not commit test transaction")
		print "Commit status (transaction number): ", status

		status = semanage.semanage_begin_transaction(sh)
		if status < 0:
			raise Error("Could not start semanage transaction")

		if not exists:
			print "Removing network node..."
                        status = semanage.semanage_node_del_local(sh, key)
			if status < 0:
				raise Error("Could not delete test SENode")
                        if self.verbose: print "Network node delete: ", status
                else:
			print "Resetting network node..."
			status = semanage.semanage_node_modify_local(sh, key, old_node)
			if status < 0:
				raise Error("Could not reset test SENode")
			if self.verbose: print "Network node modify: ", status

		status = semanage.semanage_commit(sh)
		if status < 0:
			raise Error("Could not commit reset transaction")
		print "Commit status (transaction number): ", status

		semanage.semanage_context_free(con)
		semanage.semanage_node_key_free(key)
		semanage.semanage_node_free(node)
		if exists: semanage.semanage_node_free(old_node)
Example #6
0
    def test_writenode(self, sh):
        print("Testing network node write...")

        (status, node) = semanage.semanage_node_create(sh)
        if status < 0:
            raise Error("Could not create SENode object")
        if self.verbose:
            print("SENode object created.")

        status = semanage.semanage_node_set_addr(sh, node,
                                                 semanage.SEMANAGE_PROTO_IP6,
                                                 "ffee:dddd::bbbb")
        if status < 0:
            raise Error("Could not set SENode address")

        status = semanage.semanage_node_set_mask(sh, node,
                                                 semanage.SEMANAGE_PROTO_IP6,
                                                 "::ffff:ffff:abcd:0000")
        if status < 0:
            raise Error("Could not set SENode netmask")

        semanage.semanage_node_set_proto(node, semanage.SEMANAGE_PROTO_IP6)
        if self.verbose:
            print("SENode protocol set: %s" %
                  semanage.semanage_node_get_proto_str(
                      semanage.SEMANAGE_PROTO_IP6))

        (status, con) = semanage.semanage_context_create(sh)
        if status < 0:
            raise Error("Could not create SEContext object")
        if self.verbose:
            print("SEContext object created (for node).")

        status = semanage.semanage_context_set_user(sh, con, "system_u")
        if status < 0:
            raise Error("Could not set context user")
        if self.verbose:
            print("SEContext user: %s" %
                  semanage.semanage_context_get_user(con))

        status = semanage.semanage_context_set_role(sh, con, "object_r")
        if status < 0:
            raise Error("Could not set context role")
        if self.verbose:
            print("SEContext role: %s" %
                  semanage.semanage_context_get_role(con))

        status = semanage.semanage_context_set_type(sh, con, "lo_node_t")
        if status < 0:
            raise Error("Could not set context type")
        if self.verbose:
            print("SEContext type: %s" %
                  semanage.semanage_context_get_type(con))

        status = semanage.semanage_context_set_mls(sh, con, "s0:c0.c255")
        if status < 0:
            raise Error("Could not set context MLS fields")
        if self.verbose:
            print("SEContext mls: %s" % semanage.semanage_context_get_mls(con))

        status = semanage.semanage_node_set_con(sh, node, con)
        if status < 0:
            raise Error("Could not set SENode context")
        if self.verbose:
            print("SENode context set: %s" % con)

        (status, key) = semanage.semanage_node_key_extract(sh, node)
        if status < 0:
            raise Error("Could not extract SENode key")
        if self.verbose:
            print("SENode key extracted: %s" % key)

        (status, exists) = semanage.semanage_node_exists_local(sh, key)
        if status < 0:
            raise Error("Could not check if SENode exists")
        if self.verbose:
            print("Exists status (commit number): %s" % status)

        if exists:
            (status, old_node) = semanage.semanage_node_query_local(sh, key)
            if status < 0:
                raise Error("Could not query old SENode")
            if self.verbose:
                print("Query status (commit number): %s" % status)

        print("Starting transaction...")
        status = semanage.semanage_begin_transaction(sh)
        if status < 0:
            raise Error("Could not start semanage transaction")

        status = semanage.semanage_node_modify_local(sh, key, node)
        if status < 0:
            raise Error("Could not modify SENode")

        status = semanage.semanage_commit(sh)
        if status < 0:
            raise Error("Could not commit test transaction")
        print("Commit status (transaction number): %s" % status)

        status = semanage.semanage_begin_transaction(sh)
        if status < 0:
            raise Error("Could not start semanage transaction")

        if not exists:
            print("Removing network node...")
            status = semanage.semanage_node_del_local(sh, key)
            if status < 0:
                raise Error("Could not delete test SENode")
            if self.verbose:
                print("Network node delete: %s" % status)
        else:
            print("Resetting network node...")
            status = semanage.semanage_node_modify_local(sh, key, old_node)
            if status < 0:
                raise Error("Could not reset test SENode")
            if self.verbose:
                print("Network node modify: %s" % status)

        status = semanage.semanage_commit(sh)
        if status < 0:
            raise Error("Could not commit reset transaction")
        print("Commit status (transaction number): %s" % status)

        semanage.semanage_context_free(con)
        semanage.semanage_node_key_free(key)
        semanage.semanage_node_free(node)
        if exists:
            semanage.semanage_node_free(old_node)