Support old extensions

This commit is contained in:
Yue Zhang
2015-08-03 00:36:05 +08:00
parent a3525bbe89
commit 8c02b0c4c1
7 changed files with 6131 additions and 4 deletions

3
.gitignore vendored
View File

@@ -57,3 +57,6 @@ waagentc
*.pyproj
*.sln
*.suo
waagentc
bin/waagent2.0c

View File

@@ -17,5 +17,4 @@
import azurelinuxagent.agent as agent
print "hehe"
agent.main()

View File

@@ -23,10 +23,27 @@
# http://msdn.microsoft.com/en-us/library/cc227259%28PROT.13%29.aspx
#
import os
import imp
import sys
import azurelinuxagent.agent as agent
if __name__ == '__main__' :
"""
Invoke main method of agent
"""
agent.main()
sys.exit()
if __name__ == 'waagent':
"""
Load waagent2.0 to support old version of extensions
"""
if sys.version_info[0] == 3:
raise ImportError("waagent2.0 doesn't support python3")
bin_path = os.path.dirname(os.path.abspath(__file__))
agent20_path = os.path.join(bin_path, "waagent2.0")
if not os.path.isfile(agent20_path):
raise ImportError("Can't load waagent")
agent20 = imp.load_source('waagent', agent20_path)
__all__ = dir(agent20)

6068
bin/waagent2.0 Executable file

File diff suppressed because it is too large Load Diff

View File

@@ -7,7 +7,7 @@ ConditionPathExists=/etc/waagent.conf
[Service]
Type=simple
ExecStart=/usr/sbin/waagent -daemon
ExecStart=python3 /usr/sbin/waagent -daemon
Restart=always
[Install]

View File

@@ -39,7 +39,7 @@ def get_data_files(name, version, fullname):
#Script file
script_dest = '/usr/sbin'
script_src = ['bin/waagent']
script_src = ['bin/waagent', 'bin/waagent2.0']
if name == 'coreos':
script_dest = '/usr/share/oem/bin'
data_files.append((script_dest, script_src))

View File

@@ -0,0 +1,40 @@
# Copyright 2014 Microsoft Corporation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
# Requires Python 2.4+ and Openssl 1.0+
#
# Implements parts of RFC 2131, 1541, 1497 and
# http://msdn.microsoft.com/en-us/library/cc227282%28PROT.10%29.aspx
# http://msdn.microsoft.com/en-us/library/cc227259%28PROT.13%29.aspx
import tests.env
import tests.tools as tools
import os
import imp
import sys
import uuid
import unittest
class TestImportWAAgent(unittest.TestCase):
def test_import_waagent(self):
agent_path = os.path.join(tools.parent, 'bin/waagent')
if sys.version_info[0] == 2:
waagent = imp.load_source('waagent', agent_path)
self.assertNotEquals(None, waagent.LoggerInit)
else:
self.assertRaises(ImportError, imp.load_source, 'waagent',
agent_path)
if __name__ == '__main__':
unittest.main()