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()
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)
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
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_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()
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_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_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)
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
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