本文整理汇总了Python中xosgenx.generator.XOSProcessorArgs类的典型用法代码示例。如果您正苦于以下问题:Python XOSProcessorArgs类的具体用法?Python XOSProcessorArgs怎么用?Python XOSProcessorArgs使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了XOSProcessorArgs类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Python代码示例。
示例1: test_one_to_many_in_modeldef
def test_one_to_many_in_modeldef(self):
xproto = """
option app_label = "test";
message ServiceDependency {
required manytoone provider_service->Service:provided_dependencies = 1;
required manytoone subscriber_service->Service:subscribed_dependencies = 2;
}
message Service {
required string name = 1;
}
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = "modeldefs.xtarget"
output = XOSProcessor.process(args)
# Service deps model
self.assertIn(
"{model: Service, type: manytoone, on_field: provider_service}", output
)
self.assertIn(
"{model: Service, type: manytoone, on_field: provider_service}", output
)
# Service model
self.assertIn(
"{model: ServiceDependency, type: onetomany, on_field: provider_service}",
output,
)
self.assertIn(
"{model: ServiceDependency, type: onetomany, on_field: provider_service}",
output,
)
开发者ID:opencord,项目名称:xos,代码行数:35,代码来源:test_translator.py
示例2: test_pluralize
def test_pluralize(self):
proto = """
message TestPluralize {
// The following field has an explicitly specified plural
required int anecdote = 1 [plural = "data"];
// The following fields have automatically computed plurals
required int sheep = 2;
required int slice = 2;
required int network = 2;
required int omf_friendly = 2;
}
"""
target = XProtoTestHelpers.write_tmp_target(
"""
{% for m in proto.messages.0.fields -%}
{{ xproto_pluralize(m) }},
{%- endfor %}
"""
)
args = XOSProcessorArgs()
args.inputs = proto
args.target = target
output = XOSProcessor.process(args)
self.assertEqual(
"data,sheep,slices,networks,omf_friendlies",
output.lstrip().rstrip().rstrip(","),
)
开发者ID:opencord,项目名称:xos,代码行数:28,代码来源:test_target.py
示例3: test_singularize
def test_singularize(self):
proto = """
message TestSingularize {
// The following field has an explicitly specified singular
required int many = 1 [singular = "one"];
// The following fields have automatically computed singulars
required int sheep = 2;
required int slices = 2;
required int networks = 2;
required int omf_friendlies = 2;
}
"""
target = XProtoTestHelpers.write_tmp_target(
"""
{% for m in proto.messages.0.fields -%}
{{ xproto_singularize(m) }},
{%- endfor %}
"""
)
args = XOSProcessorArgs()
args.inputs = proto
args.target = target
output = XOSProcessor.process(args)
self.assertEqual(
"one,sheep,slice,network,omf_friendly", output.lstrip().rstrip().rstrip(",")
)
开发者ID:opencord,项目名称:xos,代码行数:27,代码来源:test_target.py
示例4: test_slice_name_validation
def test_slice_name_validation(self):
xproto = """
policy test_policy < not obj.id -> {{ obj.name.startswith(obj.site.login_base) }} >
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = self.target
output = XOSProcessor.process(args)
obj = FakeObject()
obj.isolation = "container"
obj.kind = "not a container"
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_validator(obj, ctx):
i3 = obj.id
i4 = obj.name.startswith(obj.site.login_base)
i2 = ((not i3) or i4)
i1 = (not i2)
if (not i1):
raise ValidationError('Necessary Failure')
"""
with self.assertRaises(Exception):
policy_output_validator(obj, {})
开发者ID:opencord,项目名称:xos,代码行数:28,代码来源:test_xos_validation.py
示例5: test_package_fqn
def test_package_fqn(self):
args = XOSProcessorArgs()
target = XProtoTestHelpers.write_tmp_target(
"""
{% for m in proto.messages %}
{{ m.name }},{{ m.package }},{{ m.fqn }}
{% endfor %}
"""
)
xproto = """
package xos.core;
message Port (PlCoreBase,ParameterMixin) {
required manytoone network->Network:links = 1 [db_index = True, null = False, blank = False];
optional manytoone instance->Instance:ports = 2 [db_index = True, null = True, blank = True];
optional string ip = 3 [max_length = 39, content_type = "ip", blank = True, help_text = "Instance ip address", null = True, db_index = False];
optional string port_id = 4 [help_text = "Neutron port id", max_length = 256, null = True, db_index = False, blank = True];
optional string mac = 5 [help_text = "MAC address associated with this port", max_length = 256, null = True, db_index = False, blank = True];
required bool xos_created = 6 [default = False, null = False, db_index = False, blank = True];
}
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = target
output = XOSProcessor.process(args)
self.assertIn("Port,xos.core,xos.core.Port", output)
开发者ID:opencord,项目名称:xos,代码行数:29,代码来源:test_package.py
示例6: test_basic_proto
def test_basic_proto(self):
xtarget = XProtoTestHelpers.write_tmp_target("{{ proto }}")
xproto = """
message Person {
required string name = 1;
required int32 id = 2; // Unique ID number for this person.
optional string email = 3 [symphony = "da da da dum"];
enum PhoneType {
MOBILE = 0;
HOME = 1;
WORK = 2;
}
required string number = 1;
optional PhoneType type = 2;
repeated PhoneNumber phones = 4;
}
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = xtarget
output = XOSProcessor.process(args)
self.assertIn("PhoneNumber", output)
开发者ID:opencord,项目名称:xos,代码行数:26,代码来源:test_parse.py
示例7: test_controller_network_policy
def test_controller_network_policy(self):
xproto = """
policy test_policy <
ctx.user.is_admin
| (exists Privilege:
Privilege.accessor_id = ctx.user.id
& Privilege.accessor_type = "User"
& Privilege.object_type = "Slice"
& Privilege.object_id = obj.owner.id)
| (exists Privilege:
Privilege.accessor_id = ctx.user.id
& Privilege.accessor_type = "User"
& Privilege.object_type = "Site"
& Privilege.object_id = obj.owner.site.id
& Privilege.permission = "role:admin") >
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = self.target
output = XOSProcessor.process(args)
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_enforcer(obj, ctx):
i2 = ctx.user.is_admin
i4 = Privilege.objects.filter(Q(accessor_id=ctx.user.id), Q(accessor_type='User'), Q(object_type='Slice'), Q(object_id=obj.owner.id))[0]
i5 = Privilege.objects.filter(Q(accessor_id=ctx.user.id), Q(accessor_type='User'), Q(object_type='Site'), Q(object_id=obj.owner.site.id), Q(permission='role:admin'))[0]
i3 = (i4 or i5)
i1 = (i2 or i3)
return i1
"""
# FIXME: Test this policy by executing it
self.assertTrue(policy_output_enforcer is not None)
开发者ID:opencord,项目名称:xos,代码行数:35,代码来源:test_xos_security.py
示例8: test_bin
def test_bin(self):
xproto = """
policy output < (ctx.is_admin = True | obj.empty = True) | False>
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = self.target
output = XOSProcessor.process(args)
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_validator(obj, ctx):
i2 = (ctx.is_admin == True)
i3 = (obj.empty == True)
i1 = (i2 or i3)
if (not i1):
raise Exception('Necessary Failure')
"""
obj = FakeObject()
obj.empty = False
ctx = FakeObject()
ctx.is_admin = False
with self.assertRaises(Exception):
verdict = policy_output_validator(obj, ctx)
开发者ID:opencord,项目名称:xos,代码行数:29,代码来源:test_general_validation.py
示例9: test_equal
def test_equal(self):
xproto = """
policy test_policy < not (ctx.user = obj.user) >
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = self.target
output = XOSProcessor.process(args)
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_validator(obj, ctx):
i2 = (ctx.user == obj.user)
i1 = (not i2)
if (not i1):
raise Exception('Necessary Failure')
"""
obj = FakeObject()
obj.user = 1
ctx = FakeObject()
ctx.user = 1
with self.assertRaises(Exception):
policy_output_validator(obj, ctx)
开发者ID:opencord,项目名称:xos,代码行数:28,代码来源:test_xos_validation.py
示例10: test_instance_container
def test_instance_container(self):
xproto = """
policy test_policy < (obj.isolation = "container" | obj.isolation = "container_vm" ) -> (obj.image.kind = "container") >
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = self.target
output = XOSProcessor.process(args)
obj = FakeObject()
obj.isolation = "container"
obj.kind = "not a container"
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_validator(obj, ctx):
i4 = (obj.isolation == 'container')
i5 = (self.isolation == 'container_vm')
i2 = (i4 or i5)
i3 = (obj.image.kind == 'container')
i1 = (i2 or i3)
return i1
"""
with self.assertRaises(Exception):
policy_output_validator(obj, {})
开发者ID:opencord,项目名称:xos,代码行数:28,代码来源:test_xos_validation.py
示例11: test_base_class_fields
def test_base_class_fields(self):
target = XProtoTestHelpers.write_tmp_target(
"""
{% for m in proto.messages %}
{{ m.name }} {
{%- for b in m.bases %}
{%- if proto.message_table[b.fqn] -%}
{%- set model = proto.message_table[b.fqn] %}
{% for f in model.fields %}
{{ f.type }} {{ f.name }};
{% endfor %}
{%- endif -%}
{% endfor %}
}
{% endfor %}
"""
)
xproto = """
package xos.network;
message Port (PlCoreBase,ParameterMixin){
required manytoone network->Network:links = 1 [db_index = True, null = False, blank = False];
optional manytoone instance->Instance:ports = 2 [db_index = True, null = True, blank = True];
optional string ip = 3 [max_length = 39, content_type = "ip", blank = True, help_text = "Instance ip address", null = True, db_index = False];
optional string port_id = 4 [help_text = "Neutron port id", max_length = 256, null = True, db_index = False, blank = True];
optional string mac = 5 [help_text = "MAC address associated with this port", max_length = 256, null = True, db_index = False, blank = True];
required bool xos_created = 6 [default = False, null = False, db_index = False, blank = True];
}
package xos.someotherpackage;
message Instance (xos.network.Port){
optional string instance_id = 1 [max_length = 200, content_type = "stripped", blank = True, help_text = "Nova instance id", null = True, db_index = False];
optional string instance_uuid = 2 [max_length = 200, content_type = "stripped", blank = True, help_text = "Nova instance uuid", null = True, db_index = False];
required string name = 3 [max_length = 200, content_type = "stripped", blank = False, help_text = "Instance name", null = False, db_index = False];
optional string instance_name = 4 [max_length = 200, content_type = "stripped", blank = True, help_text = "OpenStack generated name", null = True, db_index = False];
optional string ip = 5 [max_length = 39, content_type = "ip", blank = True, help_text = "Instance ip address", null = True, db_index = False];
required manytoone image->Image:instances = 6 [db_index = True, null = False, blank = False];
optional manytoone creator->User:instances = 7 [db_index = True, null = True, blank = True];
required manytoone slice->Slice:instances = 8 [db_index = True, null = False, blank = False];
required manytoone deployment->Deployment:instance_deployment = 9 [db_index = True, null = False, blank = False];
required manytoone node->Node:instances = 10 [db_index = True, null = False, blank = False];
required int32 numberCores = 11 [help_text = "Number of cores for instance", default = 0, null = False, db_index = False, blank = False];
required manytoone flavor->Flavor:instance = 12 [help_text = "Flavor of this instance", default = "get_default_flavor()", null = False, db_index = True, blank = False];
optional string userData = 13 [help_text = "user_data passed to instance during creation", null = True, db_index = False, blank = True];
required string isolation = 14 [default = "vm", choices = "(('vm', 'Virtual Machine'), ('container', 'Container'), ('container_vm', 'Container In VM'))", max_length = 30, blank = False, null = False, db_index = False];
optional string volumes = 15 [help_text = "Comma-separated list of directories to expose to parent context", null = True, db_index = False, blank = True];
optional manytoone parent->Instance:instance = 16 [help_text = "Parent Instance for containers nested inside of VMs", null = True, db_index = True, blank = True];
required manytomany tags->Tag = 17 [db_index = False, null = False, blank = True];
}
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = target
output = XOSProcessor.process(args)
self.assertIn("xos_created", output)
开发者ID:opencord,项目名称:xos,代码行数:58,代码来源:test_package.py
示例12: test_xproto_lib
def test_xproto_lib(self):
target = XProtoTestHelpers.write_tmp_target(
"""
{{ xproto_first_non_empty([None, None, None, None, None, None, "Eureka"]) }}
"""
)
args = XOSProcessorArgs()
args.inputs = ""
args.target = target
output = XOSProcessor.process(args)
self.assertIn("Eureka", output)
开发者ID:opencord,项目名称:xos,代码行数:11,代码来源:test_target.py
示例13: test_message_base
def test_message_base(self):
xtarget = XProtoTestHelpers.write_tmp_target("{{ proto.messages.0.bases }}")
xproto = """
message base(Base) {
}
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = xtarget
output = XOSProcessor.process(args)
self.assertIn("Base", output)
开发者ID:opencord,项目名称:xos,代码行数:12,代码来源:test_parse.py
示例14: test_context
def test_context(self):
target = XProtoTestHelpers.write_tmp_target(
"""
{{ context.what }}
"""
)
args = XOSProcessorArgs()
args.inputs = ""
args.target = target
args.kv = "what:what is what"
output = XOSProcessor.process(args)
self.assertIn("what is what", output)
开发者ID:opencord,项目名称:xos,代码行数:12,代码来源:test_target.py
示例15: test_slice_policy
def test_slice_policy(self):
xproto = """
policy site_policy <
ctx.user.is_admin
| (ctx.write_access -> exists Privilege: Privilege.object_type = "Site" & Privilege.object_id = obj.id & Privilege.accessor_id = ctx.user.id & Privilege.permission_id = "role:admin") >
policy test_policy <
ctx.user.is_admin
| (*site_policy(site)
& ((exists Privilege:
Privilege.accessor_id = ctx.user.id
& Privilege.accessor_type = "User"
& Privilege.object_type = "Slice"
& Privilege.object_id = obj.id
& (ctx.write_access->Privilege.permission="role:admin"))
| (exists Privilege:
Privilege.accessor_id = ctx.user.id
& Privilege.accessor_type = "User"
& Privilege.object_type = "Site"
& Privilege.object_id = obj.site.id
& Privilege.permission = "role:admin"))
)>
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = self.target
output = XOSProcessor.process(args)
exec(output) # This loads the generated function, which should look like this:
"""
def policy_output_enforcer(obj, ctx):
i2 = ctx.user.is_admin
i4 = policy_site_policy_enforcer(obj.site, ctx)
i10 = ctx.write_access
i11 = (not (not Privilege.objects.filter(Q(accessor_id=ctx.user.id), Q(accessor_type='User'), Q(object_type='Slice'), Q(object_id=obj.id), Q(permission='role:admin'))))
i8 = (i10 and i11)
i14 = ctx.write_access
i12 = (not i14)
i13 = (not (not Privilege.objects.filter(Q(accessor_id=ctx.user.id), Q(accessor_type='User'), Q(object_type='Slice'), Q(object_id=obj.id))))
i9 = (i12 and i13)
i6 = (i8 or i9)
i7 = (not (not Privilege.objects.filter(Q(accessor_id=ctx.user.id), Q(accessor_type='User'), Q(object_type='Site'), Q(object_id=obj.site.id), Q(permission='role:admin'))))
i5 = (i6 or i7)
i3 = (i4 and i5)
i1 = (i2 or i3)
return i1
"""
# FIXME: Test this policy by executing it
self.assertTrue(policy_output_enforcer is not None)
开发者ID:opencord,项目名称:xos,代码行数:53,代码来源:test_xos_security.py
示例16: test_link_extensions
def test_link_extensions(self):
xtarget = XProtoTestHelpers.write_tmp_target("{{ proto.messages.0.links }}")
xproto = """
message links {
required manytoone vrouter_service->VRouterService:device_ports = 4 [db_index = True, null = False, blank = False];
}
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = xtarget
output = XOSProcessor.process(args)
self.assertIn("VRouterService", output)
开发者ID:opencord,项目名称:xos,代码行数:13,代码来源:test_parse.py
示例17: test_constant
def test_constant(self):
xproto = """
policy true_policy < True >
"""
target = XProtoTestHelpers.write_tmp_target("{{ proto.policies.true_policy }}")
args = XOSProcessorArgs()
args.inputs = xproto
args.target = target
output = XOSProcessor.process(args).replace("t", "T")
self.assertTrue(eval(output))
开发者ID:opencord,项目名称:xos,代码行数:13,代码来源:test_policy.py
示例18: test_global_options
def test_global_options(self):
xtarget = XProtoTestHelpers.write_tmp_target("{{ options }}")
xproto = """
option kind = "vsg";
option verbose_name = "vSG Service";
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = xtarget
output = XOSProcessor.process(args)
self.assertIn("vsg", output)
self.assertIn("vSG Service", output)
开发者ID:opencord,项目名称:xos,代码行数:14,代码来源:test_parse.py
示例19: test_message_options
def test_message_options(self):
xtarget = XProtoTestHelpers.write_tmp_target(
"{{ proto.messages.0.options.type }}"
)
xproto = """
message link {
option type = "e1000";
}
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = xtarget
output = XOSProcessor.process(args)
self.assertIn("e1000", output)
开发者ID:opencord,项目名称:xos,代码行数:14,代码来源:test_parse.py
示例20: test_not_default_value_in_modeldef
def test_not_default_value_in_modeldef(self):
xproto = """
option app_label = "test";
message Foo {
required string name = 1 [ null = "False", blank="False"];
}
"""
args = XOSProcessorArgs()
args.inputs = xproto
args.target = "modeldefs.xtarget"
output = XOSProcessor.process(args)
self.assertNotIn("default:", output)
开发者ID:opencord,项目名称:xos,代码行数:14,代码来源:test_translator.py
注:本文中的xosgenx.generator.XOSProcessorArgs类示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论