예제 #1
0
def main():
    test = Vm('aws')
    # test.start('i-0fad7e92ffea8b345')
    # test.stop('i-0fad7e92ffea8b345')
    print(test.list())
    # print(test.status('i-0fad7e92ffea8b345'))
    test.mongo.close_client()
예제 #2
0
def main():
    provider = Vm('aws')

    # print(provider.list())
    # pprit(provider.start('a-b=luoyu-0'))
    # provider.stop('a-b=luoyu-0')
    # pprint(provider.stop('a-b=luoyu-0'))
    # print(provider.status('a-b=luoyu-0'))
    # pprint(vars(provider.info('a-b=luoyu-0')))

    provider = Vm('azure')
    # print(provider.list())
    # pprit(provider.start('a-b=luoyu-1'))
    # provider.stop('a-b=luoyu-1')
    # pprint(provider.stop('a-b=luoyu-1'))
    # print(provider.status('a-b=luoyu-1'))
    # pprint(vars(provider.info('a-b=luoyu-1')))

    provider = Vm('chameleon')
    # print(provider.list())
    # pprit(provider.start('a-b=luoyu-2'))
    # provider.stop('a-b=luoyu-2')
    # pprint(provider.stop('a-b=luoyu-2'))
    # print(provider.status('a-b=luoyu-2'))
    # pprint(vars(provider.info('a-b=luoyu-2')))

    provider.mongo.close_client()
예제 #3
0
def openstack_test1():
    """
    1. test for vm
    """
    vm = Vm('chameleon')
    refactor = VmRefactor(vm)

    names = vm.list()  # instances
    sizes = refactor.list_sizes()  # available sizes
    images = refactor.list_images()  # available images

    # create new instance if necessary
    # create and auto start

    print("creating instance with provider: chameleon")
    node = vm.provider.create('testgroup-experiment-01')
    node_id = node.id
    name = node.name
    while vm.info(name).state == 'pending':
        sleep(3)
    print("At time " + str(datetime.datetime.now()) + " the state is " +
          vm.info(name).state)
    print(node)
    print("Node:" + node_id + " has been set up")

    # name = vm.list()[0].name
    # print("We are testing with cloud provider: chameleon, node name: %s " % name)
    # print("At time " + str(datetime.datetime.now()) + " the state is " + str(vm.info(name).state))

    # resize test - checked
    # *** chameleon requires extra confirmation for resizing request
    input("Press Enter to continue...")
    print("resizing.........")
    sizes = refactor.list_sizes()
    print(sizes)
    refactor.resize(name=name, size=sizes[2])  # resize to medium
    print("resizing finished")

    input("Press Enter to continue...")
    node = refactor.confirm_resize(name)
    print("resizing confirmed")

    # change image test - checked
    input("Press Enter to continue...")
    print("refactoring image.............")
    print(images)
    node = refactor.rebuild(name, image=images[2])
    print("image changed")

    # rename test - checked
    input("Press Enter to continue...")
    node = refactor.rename(name, "new name")

    # destroy
    input("Press Enter to continue...")
    print("call d.destroy() function")
    vm.destroy(name)
    sleep(10)
예제 #4
0
def vm_list():
    cloud = request.args.get('cloud')
    if cloud:
        rep = Vm(cloud).list()
        return 'No node is found on {}!\n'.format(cloud) if not rep else \
               jsonify(**{'records': [db.var_to_json(x.__dict__) for x in rep]})
    else:
        return jsonify(**{
            'records':
            [db.var_to_json(x) for x in db.db['cloud'].find_image()]
        })
예제 #5
0
 def vm_manager():
     config = Config()
     default_cloud = config.data["cloudmesh"]["default"]["cloud"]
     vm = Vm(default_cloud)
     return vm
예제 #6
0
 def setup(self):
     self.config = Config()
     self.azure = Vm("azure")
     self.test_node_name = 'test1'
     self.test_node_id = ''
예제 #7
0
class TestCloudAzure:
    def setup(self):
        self.config = Config()
        self.azure = Vm("azure")
        self.test_node_name = 'test1'
        self.test_node_id = ''

    def _wait_and_get_state(self, name, how_long=15):
        time.sleep(how_long)
        node = self.azure.provider.driver._get_node(name)
        return node.state if node else None

    def test_azure_010_create(self):
        HEADING()
        vm = self.azure.create(self.test_node_name)
        assert vm is not None

    def test_azure_020_nodes(self):
        HEADING()
        results = self.azure.nodes()
        assert isinstance(results, list)

    def test_azure_025_info(self):
        HEADING()
        info = self.azure.info(self.test_node_name)
        assert info is not None

    def test_azure_030_suspend(self):
        HEADING()
        self.azure.suspend(name=self.test_node_name)
        state = self._wait_and_get_state(self.test_node_name)
        assert state == 'stopped'

    def test_azure_050_start(self):
        HEADING()
        self.azure.start(name=self.test_node_name)
        state = self._wait_and_get_state(self.test_node_name, 30)
        assert state == 'running'

    def test_azure_060_stop(self):
        HEADING()
        self.azure.stop(name=self.test_node_name)
        state = self._wait_and_get_state(self.test_node_name, 30)
        assert state == 'deallocating' or state == 'stopped'

    def test_azure_070_destroy(self):
        HEADING()
        self.azure.destroy(name=self.test_node_name)

    def test_azure_100_list_sizes(self):
        HEADING()
        vols = self.azure.provider.list_sizes()
        assert vols is not None
예제 #8
0
 def setup(self):
     self.config = Config()
     self.azure = Vm('azure')
     self.test_node_name = 'cm-test-vm-1'
     self.test_node_id = ''
예제 #9
0
class TestCloudAzure:

    def setup(self):
        self.config = Config()
        self.azure = Vm('azure')
        self.test_node_name = 'cm-test-vm-1'
        self.test_node_id = ''

    def _wait_and_get_state(self, name, how_long=15):
        time.sleep(how_long)
        node = self.azure.provider._get_node(name)
        return node.state if node else None

    def test_azure_005_getname(self):
        name = self.azure.new_name()
        assert name is not None

    def test_azure_010_create(self):
        vm = self.azure.create('cm-test-vm-1')
        assert vm is not None

    def test_azure_020_ls(self):
        ls_results = self.azure.list()
        assert isinstance(ls_results, list)

    def test_azure_030_suspend(self):
        self.azure.suspend(self.test_node_name)
        state = self._wait_and_get_state(self.test_node_name)
        assert state == 'stopped'
        # assert state == 'paused'

    def test_azure_050_stop(self):
        self.azure.stop(self.test_node_name)
        state = self._wait_and_get_state(self.test_node_name, 30)
        assert state == 'stopped'

    def test_azure_060_start(self):
        self.azure.start(self.test_node_name)
        state = self._wait_and_get_state(self.test_node_name, 30)
        assert state == 'running'

    def test_azure_070_destroy(self):
        self.azure.destroy(self.test_node_name)

    def test_azure_create_network(self):
        self.azure._create_network("cmnet")

    def test_azure_list_volumes(self):
        vols = self.azure.list_volumes()

    def test_azure_delete_network(self):
        self.azure._ex_delete_network("cmnetwork")

    def test_azure_get_node(self):
        vm = self.azure._get_node(self.test_node_name)
        assert vm is not None

    def test_azure_run(self):
        cmd = "lsb_release -a"
        res = self.azure.run(self.test_node_name, cmd)
        # getting output
        # https://stackoverflow.com/questions/38152873/how-can-i-get-the-output-of-a-customscriptextenstion-when-using-azure-resource-m

        assert res is not None
예제 #10
0
 def setup(self):
     self.config = Config()
     self.aws = Vm("aws")
     self.test_node_name = 'test1'
     self.test_node_id = ''