author | Padma Dakoju <padma.dakoju@oracle.com> |
Mon, 10 Oct 2016 10:57:41 -0700 | |
changeset 7080 | 49b4c7a1ceca |
child 7799 | e35d3ee6d1b8 |
permissions | -rw-r--r-- |
7080
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
1 |
#!/usr/bin/python2.7 |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
2 |
|
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
3 |
# Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved. |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
4 |
# |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
5 |
# Licensed under the Apache License, Version 2.0 (the "License"); you may |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
6 |
# not use this file except in compliance with the License. You may obtain |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
7 |
# a copy of the License at |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
8 |
# |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
9 |
# http://www.apache.org/licenses/LICENSE-2.0 |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
10 |
# |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
11 |
# Unless required by applicable law or agreed to in writing, software |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
12 |
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
13 |
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
14 |
# License for the specific language governing permissions and limitations |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
15 |
# under the License. |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
16 |
|
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
17 |
import ConfigParser |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
18 |
import os |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
19 |
import sys |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
20 |
import urllib2 |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
21 |
|
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
22 |
import smf_include |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
23 |
|
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
24 |
|
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
25 |
def start(): |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
26 |
|
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
27 |
# verify metadata service is reachable |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
28 |
try: |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
29 |
parser = ConfigParser.ConfigParser() |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
30 |
parser.read('/etc/cloudbase-init.conf') |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
31 |
if parser.has_option('DEFAULT', 'metadata_base_url'): |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
32 |
url = parser.get('DEFAULT', 'metadata_base_url') |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
33 |
else: |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
34 |
url = 'http://169.254.169.254' |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
35 |
open_url = urllib2.urlopen(url, timeout=20) |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
36 |
except Exception as err: |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
37 |
print >> sys.stderr, 'No response from %s: %s' % (url, err) |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
38 |
return smf_include.SMF_EXIT_ERR_FATAL |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
39 |
|
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
40 |
# Initiate cloudbase-init service |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
41 |
cmd_str = "/usr/bin/cloudbase-init --debug" |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
42 |
smf_include.smf_subprocess(cmd_str) |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
43 |
|
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
44 |
if __name__ == "__main__": |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
45 |
os.putenv("LC_ALL", "C") |
49b4c7a1ceca
22728491 cloudbase-init service stuck after install
Padma Dakoju <padma.dakoju@oracle.com>
parents:
diff
changeset
|
46 |
smf_include.smf_main() |