CN110752946B - Method, system and device for recovering BMC (baseboard management controller) network - Google Patents

Method, system and device for recovering BMC (baseboard management controller) network Download PDF

Info

Publication number
CN110752946B
CN110752946B CN201910983199.7A CN201910983199A CN110752946B CN 110752946 B CN110752946 B CN 110752946B CN 201910983199 A CN201910983199 A CN 201910983199A CN 110752946 B CN110752946 B CN 110752946B
Authority
CN
China
Prior art keywords
bmc
network
bmc network
test
configuration information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910983199.7A
Other languages
Chinese (zh)
Other versions
CN110752946A (en
Inventor
翟汝香
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN201910983199.7A priority Critical patent/CN110752946B/en
Publication of CN110752946A publication Critical patent/CN110752946A/en
Application granted granted Critical
Publication of CN110752946B publication Critical patent/CN110752946B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0654Management of faults, events, alarms or notifications using network fault recovery
    • H04L41/0659Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities
    • H04L41/0661Management of faults, events, alarms or notifications using network fault recovery by isolating or reconfiguring faulty entities by reconfiguring faulty entities
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/50Testing arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention discloses a method, a system and a device for recovering a BMC network, wherein configuration information of the BMC network is set in advance according to a test environment of a pretest item; in the process of testing the pretest item, if the BMC network is not smooth, the BMC network is reconfigured according to the configuration information of the BMC network set in advance, so that the BMC network is recovered, the phenomenon that the smooth execution of the next batch of automation scripts is influenced by the fact that the BMC network is not smooth is avoided, and the test is further conducted smoothly.

Description

Method, system and device for recovering BMC (baseboard management controller) network
Technical Field
The invention relates to the field of automatic testing, in particular to a method, a system and a device for recovering a BMC (baseboard management controller) network.
Background
With the development of automated testing, more and more automated test cases replace manual test cases. For an automated test equipment, the precondition for successfully executing an automated test of a test item is: keep the BMC (Baseboard Management Controller) network on the device open. However, parameters of the BMC network may change due to some conditions (for example, a problem occurs in a recovery operation during a test process), so that the BMC network is not smooth, thereby affecting smooth execution of a next batch of automation scripts, and terminating the test.
Therefore, how to provide a solution to the above technical problem is a problem that needs to be solved by those skilled in the art.
Disclosure of Invention
The invention aims to provide a method, a system and a device for recovering a BMC (baseboard management controller) network, wherein if the BMC network is not smooth, the BMC network is reconfigured according to preset configuration information of the BMC network, so that the BMC network is recovered, the situation that the next batch of automatic scripts are smoothly executed due to the fact that the BMC network does not influence the smooth execution of the next batch of automatic scripts is avoided, and further, the test is smoothly carried out.
In order to solve the above technical problem, the present invention provides a method for restoring a BMC network, including:
setting configuration information of a BMC network in advance according to the test environment of the pretest project;
detecting whether the BMC network is unblocked or not in the process of testing the pre-test item;
if not, the BMC network is reconfigured according to the configuration information so as to recover the BMC network.
Preferably, the step of detecting whether the BMC network is unblocked includes:
circularly detecting whether the BMC IP can ping or not for multiple times at preset time intervals;
if yes, determining that the current BMC network is smooth;
if not, determining that the current BMC network is not smooth.
Preferably, after detecting that none of the BMC IPs can ping for a plurality of times in a loop and before determining that the current BMC network is not unblocked, the recovery method further includes:
detecting whether the system Vlan is in a closed state;
if not, closing the system Vlan, and returning to the step of circularly detecting whether the BMC IP can ping for many times;
and if so, executing the step of determining that the current BMC network is not unblocked.
Preferably, the configuration information includes an IP of the BMC network, a subnet mask, and a default gateway.
Preferably, after reconfiguring the BMC network according to the configuration information, the recovery method further includes:
re-detecting whether the BMC network is unblocked;
if not, the alarm is controlled to send out a BMC network error alarm.
Preferably, after the current test item test is completed and before the next test item test, the recovery method further comprises:
detecting whether the testing environment of the next testing item is consistent with that of the previous testing item;
if not, resetting the configuration information of the BMC network according to the test environment of the next test item;
and if so, not modifying the configuration information of the BMC network.
In order to solve the above technical problem, the present invention further provides a system for restoring a BMC network, including:
the information setting module is used for setting the configuration information of the BMC network in advance according to the test environment of the pretest project;
the network detection module is used for detecting whether the BMC network is unblocked or not in the process of testing the pretest project; if not, executing a network recovery module;
the network recovery module is used for reconfiguring the BMC network according to the configuration information so as to recover the BMC network.
Preferably, the network detection module is specifically configured to, in the process of testing the pretest item, cyclically detect whether the BMC IP can ping for many times at preset time intervals; if yes, determining that the current BMC network is smooth; if not, determining that the current BMC network is not smooth, and executing a network recovery module.
Preferably, the recovery system further comprises:
the environment detection module is used for detecting whether the test environment of the next test item is consistent with that of the previous test item or not after the test of the current test item is finished and before the test of the next test item; if not, executing the information modification module;
and the information modification module is used for resetting the configuration information of the BMC network according to the test environment of the next test item.
In order to solve the above technical problem, the present invention further provides a BMC network recovery apparatus, including:
a memory for storing a computer program;
a processor for implementing the steps of any one of the methods for restoring a BMC network described above when executing the computer program.
The invention provides a recovery method of a BMC network, which sets configuration information of the BMC network in advance according to a test environment of a pretest project; in the process of testing the pretest item, if the BMC network is not smooth, the BMC network is reconfigured according to the configuration information of the BMC network set in advance, so that the BMC network is recovered, the phenomenon that the smooth execution of the next batch of automation scripts is influenced by the fact that the BMC network is not smooth is avoided, and the test is further conducted smoothly.
The invention also provides a system and a device for restoring the BMC network, which have the same beneficial effects as the restoring method.
Drawings
In order to more clearly illustrate the technical solutions in the embodiments of the present invention, the drawings needed in the prior art and the embodiments will be briefly described below, and it is obvious that the drawings in the following description are only some embodiments of the present invention, and it is obvious for those skilled in the art to obtain other drawings without creative efforts.
Fig. 1 is a flowchart of a method for restoring a BMC network according to an embodiment of the present invention;
fig. 2 is a schematic structural diagram of a recovery system of a BMC network according to an embodiment of the present invention.
Detailed Description
The core of the invention is to provide a method, a system and a device for recovering a BMC network, wherein if the BMC network is not smooth, the BMC network is reconfigured according to the configuration information of the BMC network which is set in advance, so that the BMC network is recovered, the smooth execution of the next batch of automatic scripts is prevented from being influenced by the fact that the BMC network is not smooth, and the test is further performed smoothly.
In order to make the objects, technical solutions and advantages of the embodiments of the present invention clearer, the technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
Referring to fig. 1, fig. 1 is a flowchart illustrating a method for restoring a BMC network according to an embodiment of the present invention.
The method for restoring the BMC network comprises the following steps:
step S1: and setting configuration information of the BMC network in advance according to the test environment of the pretest project.
Specifically, considering that the test environments of different test items may be different, and the configuration information of the BMC network of the test device is different in different test environments, the configuration information of the BMC network is set in advance according to the test environment of a pre-test item (an item to be tested) to lay a foundation for subsequently configuring the BMC network.
Step S2: detecting whether the BMC network is unblocked or not in the process of testing the pretest project; if not, step S3 is executed.
Specifically, considering that the BMC network is kept smooth in the testing process of the testing equipment, otherwise the smooth testing of the testing equipment is influenced, the method and the device detect whether the BMC network is smooth in the testing process of the pretesting item. If the BMC network is unobstructed, the BMC network does not influence the smooth test of the test equipment, and the BMC network does not need to be reconfigured; if the BMC network is not smooth, which indicates that the BMC network can influence the smooth test of the test equipment, the BMC network needs to be reconfigured to provide technical support for recovering the BMC network.
Step S3: and reconfiguring the BMC network according to the configuration information so as to recover the BMC network.
Specifically, when the step S2 detects that the BMC network is not smooth, it indicates that the BMC network needs to be reconfigured, and the application reconfigures the BMC network according to the configuration information of the BMC network set in advance in the step S1, so as to recover the BMC network, thereby preventing the BMC network from affecting the smooth execution of the next batch of automation scripts, and further enabling the test to be performed smoothly.
The invention provides a recovery method of a BMC network, which sets configuration information of the BMC network in advance according to a test environment of a pretest project; in the process of testing the pretest item, if the BMC network is not smooth, the BMC network is reconfigured according to the configuration information of the BMC network set in advance, so that the BMC network is recovered, the phenomenon that the smooth execution of the next batch of automation scripts is influenced by the fact that the BMC network is not smooth is avoided, and the test is further conducted smoothly.
On the basis of the above-described embodiment:
as an alternative embodiment, the process of detecting whether the BMC network is unblocked includes:
circularly detecting whether the BMC IP can ping or not for multiple times at preset time intervals;
if yes, determining that the current BMC network is smooth;
if not, determining that the current BMC network is not smooth.
It should be noted that the preset of the present application is set in advance, and only needs to be set once, and the reset is not needed unless the modification is needed according to the actual situation.
Specifically, considering that the fact that whether the BMC IP can ping or not is detected once, and detection errors may exist, the BMC IP obtains a ping-disabled result under the condition that the BMC IP can ping or not originally, so that when the BMC IP is detected to be ping-enabled or not, the BMC IP can be cyclically detected for many times, whether the BMC IP can ping or not can be continuously cyclically detected for a short period of time (such as five minutes) all the time, and whether the BMC IP can ping or not can be cyclically detected for many times is achieved.
Considering that the unblocked condition of the BMC network is an uncertain factor, the BMC network is possibly in an unblocked state in the last period of time, and the BMC network is in an unblocked state in the next period of time, so that the method and the device can circularly and repeatedly detect whether the BMC IP can ping or not every preset time (it can be understood that the preset time is longer than a short period of time set by circularly detecting the BMC IP), and indicate that the current BMC network is unblocked if the BMC IP can ping or not under the cyclic and repeated detection; if the BMC IP can not ping under the cyclic multiple detection, the current BMC network is not smooth.
As an optional embodiment, after detecting that none of the BMC IPs can ping for a plurality of times, before determining that the current BMC network is not unblocked, the recovery method further includes:
detecting whether the system Vlan is in a closed state;
if not, closing the system Vlan, and returning to the step of circularly detecting whether the BMC IP can ping for many times;
and if so, executing the step of determining that the current BMC network is not smooth.
Further, considering that in a default condition, the system Vlan (Virtual Local Area Network) is in a closed state, and a result of whether the BMC IP can ping is not affected, but in some special conditions, the system Vlan may not be closed, so that a result of the BMC IP ping is obtained in a condition that the BMC Network is unobstructed, so that the present application further detects whether the system Vlan is in a closed state before determining that the current BMC Network is unobstructed. If the system Vlan is in a closed state, it is shown that the system Vlan does not affect the result of whether the BMC IP can ping, and at this time, if the BMC IP cannot ping repeatedly detected, it can be directly determined that the current BMC network is not smooth. If the system Vlan is not in a closed state, the result that whether the BMC IP can ping is influenced by the system Vlan is shown, the system Vlan is closed, and a step of detecting whether the BMC IP can ping is executed for many times in a loop, and at this time, if the BMC IP cannot ping for many times in the loop, it is determined that the current BMC network is not smooth; at the moment, if the BMC IP can ping under the cyclic multiple detection, the current BMC network can be determined to be unblocked.
As an optional embodiment, the configuration information includes an IP of the BMC network, a subnet mask, and a default gateway.
Specifically, the configuration information of the BMC network of the present application may include an IP (a logical address allocated to the BMC network) of the BMC network, a subnet mask (the IP address is divided into two parts, namely a network address and a host address), a default gateway (a host sends a data packet to the default gateway if an available gateway cannot be found, and the default gateway processes the data packet), and other information.
As an optional embodiment, after reconfiguring the BMC network according to the configuration information, the recovery method further includes:
re-detecting whether the BMC network is unblocked;
if not, the alarm is controlled to send out a BMC network error alarm.
Further, considering that the situation that the BMC network cannot be recovered still exists after the BMC network is reconfigured according to the configuration information of the BMC network, the method and the device detect whether the BMC network is unblocked again after the BMC network is reconfigured; if the BMC network is unblocked, the BMC network is recovered; if the BMC network is not smooth, the BMC network cannot be automatically recovered, the alarm is controlled to send out a BMC network error alarm, so that manual intervention is performed, and the BMC network is recovered.
As an optional embodiment, after the current test item test is completed and before the next test item test, the recovery method further includes:
detecting whether the testing environment of the next testing item is consistent with that of the previous testing item;
if not, resetting the configuration information of the BMC network according to the test environment of the next test item;
and if so, not modifying the configuration information of the BMC network.
Further, considering that the test environments of different test items may be different, in different test environments, the configuration information of the BMC network of the test device is not the same, and if the test device changes a new test item, the previously set configuration information of the BMC network may not be suitable for the new test item, and the configuration information of the BMC network needs to be reset, so that before the next test item is tested, the present application detects whether the test environment of the next test item is consistent with the test environment of the previous test item. If the two test environments are consistent, the configuration information of the BMC network set before is also applicable to a new test item, and the configuration information of the BMC network does not need to be modified; if the two test environments are not consistent, the configuration information of the BMC network is reset according to the test environment of the new test item, which indicates that the configuration information of the BMC network set before is not suitable for the new test item.
Referring to fig. 2, fig. 2 is a schematic structural diagram of a recovery system of a BMC network according to an embodiment of the present invention.
The system for restoring the BMC network comprises:
the information setting module 1 is used for setting configuration information of the BMC network in advance according to the test environment of the pretest project;
the network detection module 2 is used for detecting whether the BMC network is unblocked or not in the process of testing the pretest project; if not, executing a network recovery module;
and the network recovery module 3 is used for reconfiguring the BMC network according to the configuration information so as to recover the BMC network.
As an optional embodiment, the network detection module 2 is specifically configured to detect whether the BMC IP can ping for multiple times at preset time intervals in the process of testing the pretest item; if yes, determining that the current BMC network is smooth; if not, determining that the current BMC network is not smooth, and executing a network recovery module 3.
As an optional embodiment, the recovery system further comprises:
the environment detection module is used for detecting whether the test environment of the next test item is consistent with that of the previous test item or not after the test of the current test item is finished and before the test of the next test item; if not, executing the information modification module;
and the information modification module is used for resetting the configuration information of the BMC network according to the test environment of the next test item.
For the introduction of the recovery system provided by the present invention, please refer to the embodiment of the recovery method, which is not described herein again.
The invention also provides a recovery device of the BMC network, which comprises:
a memory for storing a computer program;
a processor for implementing the steps of any one of the methods for restoring a BMC network described above when executing a computer program.
For the introduction of the recovery apparatus provided by the present invention, reference is made to the above-mentioned embodiment of the recovery method, and the present invention is not described herein again.
It is further noted that, in the present specification, relational terms such as first and second, and the like are used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions. Also, the terms "comprises," "comprising," or any other variation thereof, are intended to cover a non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements does not include only those elements but may include other elements not expressly listed or inherent to such process, method, article, or apparatus. Without further limitation, an element defined by the phrase "comprising an … …" does not exclude the presence of other identical elements in a process, method, article, or apparatus that comprises the element.
The previous description of the disclosed embodiments is provided to enable any person skilled in the art to make or use the present invention. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other embodiments without departing from the spirit or scope of the invention. Thus, the present invention is not intended to be limited to the embodiments shown herein but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.

Claims (8)

1. A method for restoring a BMC network is characterized by comprising the following steps:
setting configuration information of a BMC network in advance according to the test environment of the pretest project;
detecting whether the BMC network is unblocked or not in the process of testing the pre-test item;
if not, reconfiguring the BMC network according to the configuration information to recover the BMC network;
after the current test item test is completed and before the next test item test, the recovery method further comprises:
detecting whether the testing environment of the next testing item is consistent with that of the previous testing item;
if not, resetting the configuration information of the BMC network according to the test environment of the next test item;
and if so, not modifying the configuration information of the BMC network.
2. The method of restoring a BMC network of claim 1, wherein said detecting whether the BMC network is unblocked comprises:
circularly detecting whether the BMC IP can ping or not for multiple times at preset time intervals;
if yes, determining that the current BMC network is smooth;
if not, determining that the current BMC network is not smooth.
3. The method of restoring a BMC network of claim 2, wherein after cycling through a plurality of times to detect that no BMC IP can ping, prior to determining that the current BMC network is not unblocked, the method further comprises:
detecting whether the system Vlan is in a closed state;
if not, closing the system Vlan, and returning to the step of circularly detecting whether the BMC IP can ping for many times;
and if so, executing the step of determining that the current BMC network is not unblocked.
4. The method of restoring a BMC network of claim 1, wherein the configuration information includes an IP, a subnet mask, and a default gateway of the BMC network.
5. The recovery method of a BMC network of claim 1, wherein after reconfiguring the BMC network according to the configuration information, the recovery method further comprises:
re-detecting whether the BMC network is unblocked;
if not, the alarm is controlled to send out a BMC network error alarm.
6. A system for restoring a BMC network, comprising:
the information setting module is used for setting the configuration information of the BMC network in advance according to the test environment of the pretest project;
the network detection module is used for detecting whether the BMC network is unblocked or not in the process of testing the pretest project; if not, executing a network recovery module;
the network recovery module is used for reconfiguring the BMC network according to the configuration information so as to recover the BMC network;
the recovery system further comprises:
the environment detection module is used for detecting whether the test environment of the next test item is consistent with that of the previous test item or not after the test of the current test item is finished and before the test of the next test item; if not, executing the information modification module;
and the information modification module is used for resetting the configuration information of the BMC network according to the test environment of the next test item.
7. The system for restoring a BMC network according to claim 6, wherein the network detection module is specifically configured to detect whether the BMC IP can ping for multiple times at preset intervals during the process of testing the pre-test item; if yes, determining that the current BMC network is smooth; if not, determining that the current BMC network is not smooth, and executing a network recovery module.
8. A BMC network recovery apparatus, comprising:
a memory for storing a computer program;
a processor for implementing the steps of the method for restoring a BMC network according to any of claims 1 to 5 when executing said computer program.
CN201910983199.7A 2019-10-16 2019-10-16 Method, system and device for recovering BMC (baseboard management controller) network Active CN110752946B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910983199.7A CN110752946B (en) 2019-10-16 2019-10-16 Method, system and device for recovering BMC (baseboard management controller) network

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910983199.7A CN110752946B (en) 2019-10-16 2019-10-16 Method, system and device for recovering BMC (baseboard management controller) network

Publications (2)

Publication Number Publication Date
CN110752946A CN110752946A (en) 2020-02-04
CN110752946B true CN110752946B (en) 2021-10-29

Family

ID=69278503

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910983199.7A Active CN110752946B (en) 2019-10-16 2019-10-16 Method, system and device for recovering BMC (baseboard management controller) network

Country Status (1)

Country Link
CN (1) CN110752946B (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10333771B2 (en) * 2015-10-14 2019-06-25 Quanta Computer Inc. Diagnostic monitoring techniques for server systems
CN107222586B (en) * 2017-05-03 2020-10-20 深圳市同泰怡信息技术有限公司 Method for automatically identifying BMC IP in local area network
CN109446101B (en) * 2018-11-13 2021-10-29 郑州云海信息技术有限公司 Automatic testing method and device for restarting BMC based on ipmi instruction
CN109951325B (en) * 2019-02-28 2020-11-27 华为技术有限公司 Network cable connection checking method and device

Also Published As

Publication number Publication date
CN110752946A (en) 2020-02-04

Similar Documents

Publication Publication Date Title
CN105550113B (en) Web test method and test machine
US8910172B2 (en) Application resource switchover systems and methods
EP2641179B1 (en) Method and apparatus for automatic diagnosis of software failures
CN107026760B (en) Fault repairing method and monitoring node
US10853227B2 (en) Systems and methods for modular test platform for applications
CN105302722B (en) CTS automatic testing method and device
US20190286546A1 (en) Deriving the shortest steps to reproduce a device failure condition
CN103914302A (en) Webpage loading progress monitoring method and webpage loading progress monitoring device
CN105516388B (en) A kind of Wireless Communication Equipment MAC Address test method and system
CN107947972B (en) Detection method and detection device for sensing abnormal operation state of node
CN106844213A (en) A kind of front end method of testing and device
US10169137B2 (en) Dynamically detecting and interrupting excessive execution time
KR20160000758A (en) Fault Injection testing apparatus and method
CN111225064A (en) Ceph cluster deployment method, system, device and computer-readable storage medium
CN113726553A (en) Node fault recovery method and device, electronic equipment and readable storage medium
CN111352829A (en) Memory leak test method, device and equipment
CN110752946B (en) Method, system and device for recovering BMC (baseboard management controller) network
US10860411B2 (en) Automatically detecting time-of-fault bugs in cloud systems
US8582444B2 (en) Method for detecting hardware faults by determining a ratio of released connections
CN113360366A (en) Web page testing method, testing device, electronic equipment and storage medium
US11805142B2 (en) Communication system and communication method
CN111858244A (en) Hard disk monitoring method, system, device and medium
CN109324965A (en) A kind of automated testing method that monitoring flock causes client to be collapsed
CN105204989A (en) Mobile terminal, server and system and method for detecting application
CN111338678A (en) Method and equipment for upgrading and checking storage system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant