def test_create_configlet(self):
        cg = factory.make_resource(type_name='configuration_management.cli_configlet',
                                        rest_end_point=self.space)
        param1 = factory.make_resource(type_name='configuration_management.cli_configlet_param',
                                        rest_end_point=self.space)
        param1.parameter = 'PortName'
        param1.display_name = 'Port Name'
        param1.parameter_type = 'Text Field'
        param1.order = 1

        param2 = factory.make_resource(type_name='configuration_management.cli_configlet_param',
                                        rest_end_point=self.space)
        param2.parameter = 'Description'
        param2.display_name = 'Port Description'
        param2.parameter_type = 'Text Field'
        param2.order = 2

        pg1 = factory.make_resource(type_name='configuration_management.cli_configlet_page',
                                        rest_end_point=self.space)
        pg1.cli_text = 'interfaces { $PortName { description "$Description"; } }'
        pg1.pagenumber = 1

        cg.name = 'Set description - Pytest'
        cg.category = 'PythonTest'
        cg.execution_type = 'Single'
        cg.device_family = 'ACX/J/M/MX/T/TX/PTX/EX92xx'
        cg.cli_configlet_params = [param1, param2]
        cg.cli_configlet_pages = [pg1]

        cg = self.space.configuration_management.cli_configlets.post(cg,
                content_type='application/vnd.net.juniper.space.configuration-management.cli-configlet+xml;version=1;charset=UTF-8')

        assert cg.id > 0

        print("Created <%s, %s>" % (cg.name, cg.category))
    def test_post_method_with_empty_media_types(self):
        rls = self.space.user_management.roles.get()
        assert len(rls) > 0

        r = factory.make_resource(type_name='user_management.role',
                                        rest_end_point=self.space)
        r.href = rls[0].href

        u = factory.make_resource(type_name='user_management.user',
                                        rest_end_point=self.space)
        u.name = 'space_ez_test'
        u.firstName = 'Space'
        u.lastName = 'EZ'
        u.password = '******'
        u.primaryEmail = '*****@*****.**'
        u.roles = [r]
        u.read_only = False

        u = self.space.user_management.users.post(u,
                accept='application/vnd.net.juniper.space.user-management.user+xml;version=1',
                content_type='application/vnd.net.juniper.space.user-management.user+xml;version=1;charset=UTF-8')
        assert u.id > 0

        with pytest.raises(rest.RestException) as except_info:
            u.change_password.post(
                                    accept='',
                                    content_type='',
                                    oldPassword='******',
                                    newPassword='******')
        assert except_info.value.response.status_code == 400
    def test_post_method_with_empty_media_types(self):
        rls = self.space.user_management.roles.get()
        assert len(rls) > 0

        r = factory.make_resource(type_name="user_management.role", rest_end_point=self.space)
        r.href = rls[0].href

        u = factory.make_resource(type_name="user_management.user", rest_end_point=self.space)
        u.name = "space_ez_test"
        u.firstName = "Space"
        u.lastName = "EZ"
        u.password = "******"
        u.primaryEmail = "*****@*****.**"
        u.roles = [r]
        u.read_only = False

        u = self.space.user_management.users.post(
            u,
            accept="application/vnd.net.juniper.space.user-management.user+xml;version=1",
            content_type="application/vnd.net.juniper.space.user-management.user+xml;version=1;charset=UTF-8",
        )
        assert u.id > 0

        with pytest.raises(rest.RestException) as except_info:
            u.change_password.post(accept="", content_type="", oldPassword="******", newPassword="******")
        assert except_info.value.response.status_code == 400
    def test_post_collection_with_media_types(self):
        rls = self.space.user_management.roles.get()
        assert len(rls) > 0

        r = factory.make_resource(type_name='user_management.role',
                                        rest_end_point=self.space)
        r.href = rls[0].href

        u = factory.make_resource(type_name='user_management.user',
                                        rest_end_point=self.space)
        u.name = 'space_ez_test'
        u.firstName = 'Space'
        u.lastName = 'EZ'
        u.password = '******'
        u.primaryEmail = '*****@*****.**'
        u.roles = [r]
        u.read_only = False

        u = self.space.user_management.users.post(u,
                accept='application/vnd.net.juniper.space.user-management.user+xml;version=1',
                content_type='application/vnd.net.juniper.space.user-management.user+xml;version=1;charset=UTF-8')
        assert u.id > 0

        rls = u.roles.get()
        assert rls[0].href == r.href

        u.delete()
    def test_post_collection_with_media_types(self):
        rls = self.space.user_management.roles.get()
        assert len(rls) > 0

        r = factory.make_resource(type_name="user_management.role", rest_end_point=self.space)
        r.href = rls[0].href

        u = factory.make_resource(type_name="user_management.user", rest_end_point=self.space)
        u.name = "space_ez_test"
        u.firstName = "Space"
        u.lastName = "EZ"
        u.password = "******"
        u.primaryEmail = "*****@*****.**"
        u.roles = [r]
        u.read_only = False

        u = self.space.user_management.users.post(
            u,
            accept="application/vnd.net.juniper.space.user-management.user+xml;version=1",
            content_type="application/vnd.net.juniper.space.user-management.user+xml;version=1;charset=UTF-8",
        )
        assert u.id > 0

        rls = u.roles.get()
        assert rls[0].href == r.href

        u.delete()
Ejemplo n.º 6
0
def tag_device(spc, device, tag_name):
    try:
        # Check if a tag exists already with the given name
        tag = spc.tag_management.tags.get(filter_={'name': tag_name})[0]
    except:
        # Create a new public tag with the given name
        tag = factory.make_resource('tag_management.tag', spc)
        tag.name, tag.type = tag_name, 'public'
        tag = spc.tag_management.tags.post(tag)
    """
    Create a new target for this tag, pointing to the given device.
    In other words, assign this tag to this device
    """
    target = factory.make_resource('tag_management.target', spc)
    target.href = device.href
    tag.targets.post(target)
Ejemplo n.º 7
0
def tag_device(spc, device, tag_name):
    try:
        # Check if a tag exists already with the given name
        tag = spc.tag_management.tags.get(filter_={'name': tag_name})[0]
    except:
        # Create a new public tag with the given name
        tag = factory.make_resource('tag_management.tag', spc)
        tag.name, tag.type = tag_name, 'public'
        tag = spc.tag_management.tags.post(tag)

    """
    Create a new target for this tag, pointing to the given device.
    In other words, assign this tag to this device
    """
    target = factory.make_resource('tag_management.target', spc)
    target.href = device.href
    tag.targets.post(target)
Ejemplo n.º 8
0
    def test_create_script(self):
        s = factory.make_resource(type_name='script_management.script',
                                  rest_end_point=self.space)
        s.scriptName = 'Interface_status_space_ez.slax'
        s.scriptContents = POST_SCRIPT_CONTENT

        s = self.space.script_management.scripts.post(s)
        assert s.id
Ejemplo n.º 9
0
    def test_create_script(self):
        s = factory.make_resource(type_name='script_management.script',
                                        rest_end_point=self.space)
        s.scriptName = 'Interface_status_space_ez.slax'
        s.scriptContents = POST_SCRIPT_CONTENT

        s = self.space.script_management.scripts.post(s)
        assert s.id
    def test_create_profile(self):
        rls = self.space.user_management.roles.get()
        assert len(rls) > 0

        r = factory.make_resource(type_name='user_management.role',
                                        rest_end_point=self.space)
        r.href = rls[0].href

        p = factory.make_resource(type_name='user_management.profile',
                                        rest_end_point=self.space)
        p.name = 'test_from_space_ez'
        p.description = 'Test from space-ez'
        p.roles = [r]

        p = self.space.user_management.profiles.post(p)
        assert p.roleType

        rls = p.roles.get()
        assert rls[0].href == r.href
Ejemplo n.º 11
0
    def test_create_configlet(self):
        cg = factory.make_resource(
            type_name='configuration_management.cli_configlet',
            rest_end_point=self.space)
        param1 = factory.make_resource(
            type_name='configuration_management.cli_configlet_param',
            rest_end_point=self.space)
        param1.parameter = 'PortName'
        param1.display_name = 'Port Name'
        param1.parameter_type = 'Text Field'
        param1.order = 1

        param2 = factory.make_resource(
            type_name='configuration_management.cli_configlet_param',
            rest_end_point=self.space)
        param2.parameter = 'Description'
        param2.display_name = 'Port Description'
        param2.parameter_type = 'Text Field'
        param2.order = 2

        pg1 = factory.make_resource(
            type_name='configuration_management.cli_configlet_page',
            rest_end_point=self.space)
        pg1.cli_text = 'interfaces { $PortName { description "$Description"; } }'
        pg1.pagenumber = 1

        cg.name = 'Set description - Pytest'
        cg.category = 'PythonTest'
        cg.execution_type = 'Single'
        cg.device_family = 'ACX/J/M/MX/T/TX/PTX/EX92xx'
        cg.cli_configlet_params = [param1, param2]
        cg.cli_configlet_pages = [pg1]

        cg = self.space.configuration_management.cli_configlets.post(
            cg,
            content_type=
            'application/vnd.net.juniper.space.configuration-management.cli-configlet+xml;version=1;charset=UTF-8'
        )

        assert cg.id > 0

        print("Created <%s, %s>" % (cg.name, cg.category))
Ejemplo n.º 12
0
    def test_create_delete_tag(self):
        new_tag = factory.make_resource(type_name='tag_management.tag',
                                        rest_end_point=self.space)
        new_tag.name = 'ApiTestTag'
        new_tag.type = 'private'
        new_tag = self.space.tag_management.tags.post(new_tag)

        print("Created <%s, %s>" % (new_tag.name, new_tag.type))

        assert new_tag.id > 0, "Tag creation failed"

        new_tag.delete()
Ejemplo n.º 13
0
    def test_create_user(self):
        rls = self.space.user_management.roles.get()
        assert len(rls) > 0

        r = factory.make_resource(type_name='user_management.role',
                                  rest_end_point=self.space)
        r.href = rls[0].href

        u = factory.make_resource(type_name='user_management.user',
                                  rest_end_point=self.space)
        u.name = 'space_ez'
        u.firstName = 'Space'
        u.lastName = 'EZ'
        u.password = '******'
        u.primaryEmail = '*****@*****.**'
        u.roles = [r]
        u.read_only = False
        u.domain_id = 2

        u = self.space.user_management.users.post(u)
        assert u.id > 0
    def test_create_user(self):
        rls = self.space.user_management.roles.get()
        assert len(rls) > 0

        r = factory.make_resource(type_name='user_management.role',
                                        rest_end_point=self.space)
        r.href = rls[0].href

        u = factory.make_resource(type_name='user_management.user',
                                        rest_end_point=self.space)
        u.name = 'space_ez'
        u.firstName = 'Space'
        u.lastName = 'EZ'
        u.password = '******'
        u.primaryEmail = '*****@*****.**'
        u.roles = [r]
        u.read_only = False
        u.domain_id = 2

        u = self.space.user_management.users.post(u)
        assert u.id > 0
Ejemplo n.º 15
0
    def test_create_delete_tag(self):
        new_tag = factory.make_resource(type_name='tag_management.tag',
                                        rest_end_point=self.space)
        new_tag.name = 'ApiTestTag'
        new_tag.type = 'private'
        new_tag = self.space.tag_management.tags.post(new_tag)

        print("Created <%s, %s>" % (new_tag.name, new_tag.type))

        assert new_tag.id > 0, "Tag creation failed"

        new_tag.delete()
Ejemplo n.º 16
0
    def test_post_collection_with_invalid_accept(self):
        rls = self.space.user_management.roles.get()
        assert len(rls) > 0

        r = factory.make_resource(type_name="user_management.role", rest_end_point=self.space)
        r.href = rls[0].href

        u = factory.make_resource(type_name="user_management.user", rest_end_point=self.space)
        u.name = "space_ez_test"
        u.firstName = "Space"
        u.lastName = "EZ"
        u.password = "******"
        u.primaryEmail = "*****@*****.**"
        u.roles = [r]
        u.read_only = False

        with pytest.raises(rest.RestException) as except_info:
            self.space.user_management.users.post(
                u, accept="application/vnd.net.juniper.space.user-management.user+xml;version=111"
            )

        assert except_info.value.response.status_code == 406
Ejemplo n.º 17
0
    def test_post_collection_with_invalid_accept(self):
        rls = self.space.user_management.roles.get()
        assert len(rls) > 0

        r = factory.make_resource(type_name='user_management.role',
                                        rest_end_point=self.space)
        r.href = rls[0].href

        u = factory.make_resource(type_name='user_management.user',
                                        rest_end_point=self.space)
        u.name = 'space_ez_test'
        u.firstName = 'Space'
        u.lastName = 'EZ'
        u.password = '******'
        u.primaryEmail = '*****@*****.**'
        u.roles = [r]
        u.read_only = False

        with pytest.raises(rest.RestException) as except_info:
            self.space.user_management.users.post(u,
                    accept='application/vnd.net.juniper.space.user-management.user+xml;version=111')

        assert except_info.value.response.status_code == 406
    def test_add_user_roles(self):
        us = self.space.user_management.users.get(filter_={'name':'space_ez'})
        assert len(us) == 1
        num_roles = len(us[0].roles.get())

        rls = self.space.user_management.roles.get()
        assert len(rls) > 1
        r = factory.make_resource(type_name='user_management.role',
                                        rest_end_point=self.space)
        r.href = rls[1].href

        us[0].roles.post([r])

        rls = us[0].roles.get()
        assert len(rls) == num_roles + 1
    def test_add_user_to_domain(self):
        ds = self.space.domain_management.domains.get()
        assert len(ds) >= 1

        usrs = self.space.user_management.users.get(filter_={'name': 'space_ez'})
        assert len(usrs) > 0

        user_to_move = factory.make_resource(type_name='domain_management.user_ref',
                                        rest_end_point=self.space)
        user_to_move.href = usrs[0].href

        for d in ds[0].children.domain:
            assert d.name
            if d.name == 'test_domain':
                """ Assign user to test_domain """
                dom = factory.fetch_resource(self.space, d.get('href'))
                dom.users.post(user_to_move)
Ejemplo n.º 20
0
    def test_add_user_to_domain(self):
        ds = self.space.domain_management.domains.get()
        assert len(ds) >= 1

        usrs = self.space.user_management.users.get(
            filter_={'name': 'space_ez'})
        assert len(usrs) > 0

        user_to_move = factory.make_resource(
            type_name='domain_management.user_ref', rest_end_point=self.space)
        user_to_move.href = usrs[0].href

        for d in ds[0].children.domain:
            assert d.name
            if d.name == 'test_domain':
                """ Assign user to test_domain """
                dom = factory.fetch_resource(self.space, d.get('href'))
                dom.users.post(user_to_move)
    def test_create_quick_template(self):
        t = factory.make_resource(type_name='config_template_management.config_template',
                                        rest_end_point=self.space)
        t.name = 'Space_EZ_Test_Quick_Template_3'
        t.description = 'Quick Template for testing from space-ez'
        t.device_family = 'junos'
        t.os_version = '12.3R1.7'  # Crap: Some value must be given! Otherwise it throws exception!

        t = self.space.config_template_management.config_templates.post(
                            t,
                            xml_name='config-template-no-definition',
                            content_type='application/vnd.net.juniper.space.config-template-management.config-template-no-definition+xml;version=1;charset=UTF-8',
                            accept='application/vnd.net.juniper.space.config-template-management.config-template-no-definition+xml;version=1')
        assert t.id > 0

        time.sleep(10)
        CLI_DATA = "set interfaces $(interface) description $(description)"
        result = t.configuration.post(clis=CLI_DATA)
        assert result.status == 'SUCCESS'
    def test_add_devices_to_domain(self):
        ds = self.space.domain_management.domains.get()
        assert len(ds) >= 1

        global_devices = self.space.device_management.devices.get(filter_={'domain-id': ds[0].id})
        assert len(global_devices) > 0

        device_to_move = factory.make_resource(type_name='domain_management.device_ref',
                                        rest_end_point=self.space)
        device_to_move.href = global_devices[0].href

        for d in ds[0].children.domain:
            assert d.name
            if d.name == 'test_domain':
                """ Move one device to test_domain """
                dom = factory.fetch_resource(self.space, d.get('href'))
                report = dom.devices.post(device_to_move)
                assert report.status

                """ Move the device back to global domain """
                report = ds[0].devices.post(device_to_move)
                assert report.status
Ejemplo n.º 23
0
    def test_create_quick_template(self):
        t = factory.make_resource(
            type_name='config_template_management.config_template',
            rest_end_point=self.space)
        t.name = 'Space_EZ_Test_Quick_Template_3'
        t.description = 'Quick Template for testing from space-ez'
        t.device_family = 'junos'
        t.os_version = '12.3R1.7'  # Crap: Some value must be given! Otherwise it throws exception!

        t = self.space.config_template_management.config_templates.post(
            t,
            xml_name='config-template-no-definition',
            content_type=
            'application/vnd.net.juniper.space.config-template-management.config-template-no-definition+xml;version=1;charset=UTF-8',
            accept=
            'application/vnd.net.juniper.space.config-template-management.config-template-no-definition+xml;version=1'
        )
        assert t.id > 0

        time.sleep(10)
        CLI_DATA = "set interfaces $(interface) description $(description)"
        result = t.configuration.post(clis=CLI_DATA)
        assert result.status == 'SUCCESS'
Ejemplo n.º 24
0
    def test_add_devices_to_domain(self):
        ds = self.space.domain_management.domains.get()
        assert len(ds) >= 1

        global_devices = self.space.device_management.devices.get(
            filter_={'domain-id': ds[0].id})
        assert len(global_devices) > 0

        device_to_move = factory.make_resource(
            type_name='domain_management.device_ref',
            rest_end_point=self.space)
        device_to_move.href = global_devices[0].href

        for d in ds[0].children.domain:
            assert d.name
            if d.name == 'test_domain':
                """ Move one device to test_domain """
                dom = factory.fetch_resource(self.space, d.get('href'))
                report = dom.devices.post(device_to_move)
                assert report.status
                """ Move the device back to global domain """
                report = ds[0].devices.post(device_to_move)
                assert report.status