6029N/A# Copyright (c) 2014, 2016, Oracle and/or its affiliates. All rights reserved. 2521N/A# Licensed under the Apache License, Version 2.0 (the "License"); you may 2521N/A# not use this file except in compliance with the License. You may obtain 2521N/A# Unless required by applicable law or agreed to in writing, software 2521N/A# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 2521N/A# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 2521N/A# License for the specific language governing permissions and limitations 3998N/A print "failed to retrieve hostmodel ipadm property" 3998N/A print "failed to set ipadm hostmodel property to %s" %
value 6380N/A print "failed to retrieve datalink names" 6380N/A # DHCP agent datalinks are always 15 characters in length. They start with 6380N/A # 'dh', end with '_0', and in between they are hexadecimal digits. 6380N/A # It is possible that the IP was already deleted but not the 6380N/A # datalink. So we continue and try and delete the datalink. 6380N/A print "failed to remove datalink '%s' used by DHCP agent: %s" % \
2521N/A print '%s does not exist or is not readable' % f
6380N/A # remove VNICs associated with DHCP agent if any were left over. 3998N/A # set the hostmodel property if necessary 6380N/A # Keep issuing SIGTERM until the contract is empty. This way we will catch 6380N/A # any child processes missed because they were getting forked. 6380N/A # 50 attempts will be made at intervals of 2 seconds. Typically, we 6380N/A # will only need 0 or 1 additional attempt before the contract is empty but 6380N/A # we chose to err on the side of caution. In the worst case, we will use 6380N/A # 100 seconds in the below loop which will leave 500 seconds (timeout is 6380N/A # 600s) for the other cleanup tasks, after which the service will be put to 6380N/A # maintenance state if the contract was not killed successfully. 6380N/A # remove VNICs associated with DHCP agent 3998N/A # finally reset the hostmodel property