Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Handle deserialisation of <nil/> data type #13

Merged
merged 1 commit into from
May 18, 2019

Conversation

steveglen
Copy link

No description provided.

@LordVeovis LordVeovis added the enhancement New feature or request label May 8, 2019
@LordVeovis
Copy link
Owner

LordVeovis commented May 12, 2019

Hi,

  • Do you have a real case use you can share so we can define a unit test?
  • Should we also deal with the serialization part?

I've just written a test but I'm afraid it's a bit too synthetic.

@LordVeovis LordVeovis mentioned this pull request May 12, 2019
@steveglen
Copy link
Author

steveglen commented May 13, 2019

My use case is NIPAP, most of its calls return in their XML for null values. For example this call:
https://nipap.readthedocs.io/en/v0.29.6/nipap.html#nipap.backend.Nipap.list_vrf

Response XML looks like this:

<array><data>
		<value><struct>
				<member>
					<name>rt</name>
					<value><nil /></value></member>
				<member>
					<name>total_addresses_v6</name>
					<value><string>871509787656907713528983453696</string></value>
				</member>
				<member>
					<name>total_addresses_v4</name>
					<value><string>53276944</string></value>
				</member>
				<member>
					<name>description</name>
					<value><string>The default VRF, typically the Internet.</string></value>
				</member>
				<member>
					<name>free_addresses_v6</name>
					<value><string>866220736661138132752066936832</string></value>
				</member>
				<member>
					<name>used_addresses_v6</name>
					<value><string>5289050995769580776916516864</string></value>
				</member>
				<member>
					<name>used_addresses_v4</name>
					<value><string>13234488</string></value>
				</member>
				<member>
					<name>tags</name>
					<value><array><data>
							</data></array></value>
				</member>
				<member>
					<name>name</name>
					<value><string>default</string></value>
				</member>
				<member>
					<name>num_prefixes_v6</name>
					<value><string>11679</string></value>
				</member>
				<member>
					<name>avps</name>
					<value><struct>
						</struct></value>
				</member>
				<member>
					<name>num_prefixes_v4</name>
					<value><string>36705</string></value>
				</member>
				<member>
					<name>id</name>
					<value><int>0</int></value>
				</member>
				<member>
					<name>free_addresses_v4</name>
					<value><string>40042456</string></value>
				</member>
			</struct></value>
	</data></array>

Please let me know if you need more info to reproduce

@steveglen
Copy link
Author

Also it looks like another of the pull requests you have deals with the serialisation?

I came from the latest version of CookComputing.XmlRpc (not the stable version) over to this codebase, in order to work with .net core, but this was a notable regression for me (it worked with the CookComputing codebase).

@LordVeovis
Copy link
Owner

Also it looks like another of the pull requests you have deals with the serialisation?

I came from the latest version of CookComputing.XmlRpc (not the stable version) over to this codebase, in order to work with .net core, but this was a notable regression for me (it worked with the CookComputing codebase).

yeah, I'm sorry to read that. I really thought the stability was better than picking up on the beta version when I did convert the Cook's library into .netcore.
Yes #11 is about serialization, which is good as complementary to this one.
I think #13 should be ready this week with a simple unit test.

I'm also making use of this PR to configure circle ci on this project to auto-run the existing tests.

@LordVeovis LordVeovis merged commit edab371 into LordVeovis:master May 18, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants