Add azure data provider (#12160)
21
extensions/azurecore/resources/azureArcPostgresServer.svg
Normal file
@@ -0,0 +1,21 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
|
||||
<defs>
|
||||
<linearGradient id="b1fb58c5-adbd-490c-9397-f63a4aec6742" x1="2.94" y1="8.438" x2="14.1" y2="8.438" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#005ba1"/>
|
||||
<stop offset="1" stop-color="#005ba1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g id="b51be867-49c1-4050-afa7-3520ffba5e24">
|
||||
<path d="M17.549,15.146c-.16.7-1.035,1.391-2.617,1.929a21.585,21.585,0,0,1-12.125.017C1.35,16.578.564,15.922.441,15.25c-.022-.118,0-1.966,0-1.966l17.136-.16S17.569,15.061,17.549,15.146Z" fill="#5ea0ef"/>
|
||||
<ellipse cx="9.001" cy="13.246" rx="8.576" ry="2.965" transform="translate(-0.133 0.091) rotate(-0.575)" fill="#50e6ff"/>
|
||||
<path d="M8.52,4.067c-3.082,0-5.58-.87-5.58-2.019v10.76c0,1.106,2.455,2,5.5,2.02H8.52c3.082,0,5.58-.871,5.58-2.02V2.048C14.1,3.171,11.6,4.067,8.52,4.067Z" fill="url(#b1fb58c5-adbd-490c-9397-f63a4aec6742)"/>
|
||||
<path d="M14.1,2.048c0,1.123-2.5,2.019-5.58,2.019S2.94,3.2,2.94,2.048,5.438.028,8.52.028,14.1.9,14.1,2.048" fill="#e8e8e8"/>
|
||||
<path d="M12.8,1.882c0,.714-1.924,1.289-4.283,1.289S4.237,2.594,4.237,1.882,6.161.6,8.52.6,12.8,1.177,12.8,1.886" fill="#50e6ff"/>
|
||||
<path d="M8.52,2.2a10.054,10.054,0,0,0-3.386.5,9.941,9.941,0,0,0,3.386.472,9.684,9.684,0,0,0,3.386-.5A10.328,10.328,0,0,0,8.52,2.2Z" fill="#198ab3"/>
|
||||
<path d="M11.308,7.494v.365a4.627,4.627,0,0,0-.069.549,1.383,1.383,0,0,0,.043.4.735.735,0,0,1,0,.313,1.453,1.453,0,0,1-.217.748.311.311,0,0,0,0,.061l.087.105a9.189,9.189,0,0,0,.922-2.071h0c.244-.827.27-1.418.078-1.671A2.244,2.244,0,0,0,9.82,5.545a2.839,2.839,0,0,1,.792.583A1.981,1.981,0,0,1,11.308,7.494Zm-.269.07a1,1,0,0,0-.688.078c-.252.157-.174.478,0,.87a6.893,6.893,0,0,0,.3.74l.078.139h0c.044.069.07.13.1.174l.069.113a1.114,1.114,0,0,0,.157-.566,2.29,2.29,0,0,0,0-.287,1.325,1.325,0,0,0-.043-.426,5.247,5.247,0,0,1,.069-.6.694.694,0,0,1-.009-.262Zm-.261.356a.335.335,0,0,1-.157.087h0a.279.279,0,0,1-.122,0,.2.2,0,0,1-.061-.165h0c0-.061.1-.113.209-.13h.165s.079,0,.079.069a.174.174,0,0,1-.079.113ZM6.7,8.7V8.547a.914.914,0,0,0,0-.148,4.682,4.682,0,0,1,0-.87,4.461,4.461,0,0,1,.261-.957,2.093,2.093,0,0,1,.5-.818A4.13,4.13,0,0,0,6.288,5.58a1.62,1.62,0,0,0-.957.261,1.739,1.739,0,0,0-.549,1.583,10.727,10.727,0,0,0,.435,1.949c.3.992.636,1.6.931,1.7h0c.131.044.27,0,.409-.182.244-.3.47-.549.6-.7a1.633,1.633,0,0,1-.427-1.522Zm.226.348a1.9,1.9,0,0,0,.052.487,1.321,1.321,0,0,0,.226.383.865.865,0,0,0,.644.287,1.809,1.809,0,0,1,.2-.522,3.6,3.6,0,0,0,.183-.513,5.77,5.77,0,0,0,0-.966.5.5,0,0,0-.052-.261A.39.39,0,0,0,8.071,7.7h0a.565.565,0,0,0-.243-.139H7.654a1.356,1.356,0,0,0-.418.121,1.731,1.731,0,0,0-.278.166v.626h0a.955.955,0,0,1,0,.131v.339h0ZM7.5,7.877h0a.406.406,0,0,1,.244,0,.538.538,0,0,1,.165.052c.078,0,.087.1.078.122h0a.331.331,0,0,1-.1.113.226.226,0,0,1-.052-.035h0a.3.3,0,0,1-.244-.243Zm.644,2.61a.2.2,0,0,0-.113.052l-.122.148c-.148.183-.209.244-.635.331a.452.452,0,0,0-.226.087.5.5,0,0,0,.209.1,1.029,1.029,0,0,0,.626,0,1.518,1.518,0,0,0,.339-.226.523.523,0,0,0,.174-.27.311.311,0,0,0-.087-.244.13.13,0,0,0-.13-.017Zm4.011,0a1.409,1.409,0,0,1-.983,0,.2.2,0,0,0-.122,0,.263.263,0,0,0-.148.122,1.017,1.017,0,0,0,0,.27,1.573,1.573,0,0,0,.958-.087,1.182,1.182,0,0,0,.417-.3ZM10.064,8.625c-.122-.357-.3-.87.157-1.183A1.178,1.178,0,0,1,11,7.311a2.763,2.763,0,0,0-.557-1l-.087-.087L10.3,6.171h0a.32.32,0,0,0-.052-.052h0a2.044,2.044,0,0,0-.583-.365A2.291,2.291,0,0,0,8.7,5.562a1.335,1.335,0,0,0-.609.1,1.512,1.512,0,0,0-.261.1,1.821,1.821,0,0,0-.644.87A5.156,5.156,0,0,0,7,7.494a1.443,1.443,0,0,1,.87-.2.731.731,0,0,1,.671.787v.005a6.179,6.179,0,0,1,0,1.105,3.269,3.269,0,0,1-.2.548c-.052.148-.122.3-.156.426a.435.435,0,0,1,.33.122.577.577,0,0,1,.166.461H8.7v.209a5.682,5.682,0,0,0,.209,2.123.459.459,0,0,0,.209.183.527.527,0,0,0,.269.087,1.135,1.135,0,0,0,.871-.3.914.914,0,0,0,.252-.574c.061-.392.191-1.479.209-1.74h0a.624.624,0,0,1,.078-.383.547.547,0,0,1,.235-.209A4.663,4.663,0,0,1,10.1,8.573Z" fill="#f2f2f2"/>
|
||||
<g>
|
||||
<ellipse cx="13.771" cy="12.537" rx="2.677" ry="1.942" transform="translate(-4.839 11.835) rotate(-40.155)" fill="#76bc2d"/>
|
||||
<path d="M13.111,13.376a.939.939,0,0,1,.039-1.589c1-.719,1.065.317.262.451,0,.372,1.047.328,1.5-.5.506-.937-.98-1.53-2.269-.109-.824.909-.844,2.153-.117,2.424a2.2,2.2,0,0,0,2.822-2.3C14.65,13.373,13.661,13.609,13.111,13.376Z" fill="#fff"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 4.3 KiB |
23
extensions/azurecore/resources/azureArcService.svg
Normal file
@@ -0,0 +1,23 @@
|
||||
<svg id="b5f5c9b0-d3fa-415d-8540-6bd32b8a5433" data-name="icon" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" width="18" height="18" viewBox="0 0 18 18">
|
||||
<defs>
|
||||
<linearGradient id="a42db308-c624-4092-b558-087b84167065" x1="3.427" y1="263.506" x2="14.573" y2="263.506" gradientTransform="matrix(1, 0, 0, -1, 0, 272)" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#005ba1"/>
|
||||
<stop offset="0.07" stop-color="#0060a9"/>
|
||||
<stop offset="0.36" stop-color="#0071c8"/>
|
||||
<stop offset="0.52" stop-color="#0078d4"/>
|
||||
<stop offset="0.64" stop-color="#0074cd"/>
|
||||
<stop offset="0.82" stop-color="#006abb"/>
|
||||
<stop offset="1" stop-color="#005ba1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<title>Data_controller</title>
|
||||
<path d="M17.548,15.194c-.16.7-1.035,1.391-2.617,1.929a21.585,21.585,0,0,1-12.125.017C1.349,16.626.563,15.97.44,15.3c-.022-.118,0-1.966,0-1.966l17.136-.16S17.568,15.109,17.548,15.194Z" fill="#5ea0ef"/>
|
||||
<ellipse cx="9" cy="13.294" rx="8.576" ry="2.965" transform="translate(-0.133 0.091) rotate(-0.575)" fill="#50e6ff"/>
|
||||
<g>
|
||||
<path d="M9,4.129c-3.078,0-5.573-.869-5.573-2.017V12.859c0,1.1,2.452,2,5.5,2.017H9c3.078,0,5.573-.87,5.573-2.017V2.112C14.573,3.234,12.078,4.129,9,4.129Z" fill="url(#a42db308-c624-4092-b558-087b84167065)"/>
|
||||
<path d="M14.573,2.112c0,1.122-2.5,2.017-5.573,2.017S3.427,3.26,3.427,2.112,5.922.1,9,.1s5.573.87,5.573,2.017" fill="#e8e8e8"/>
|
||||
<path d="M13.278,1.947c0,.713-1.922,1.287-4.278,1.287S4.722,2.66,4.722,1.947,6.644.669,9,.669s4.278.574,4.278,1.278" fill="#50e6ff"/>
|
||||
<path d="M9,2.269a10.032,10.032,0,0,0-3.382.495A9.92,9.92,0,0,0,9,3.234a9.711,9.711,0,0,0,3.382-.5A10.279,10.279,0,0,0,9,2.269Z" fill="#198ab3"/>
|
||||
</g>
|
||||
<path d="M12.039,9.808v-.69h-.1l-.74-.24-.19-.47.37-.8-.48-.48-.1.05-.76.31-.48-.19-.3-.84h-.65v.1l-.24.74-.47.19-.86-.38-.48.49.05.09.43.69-.2.47-.88.36v.68h.09l.74.24.19.47-.37.8.48.48h.1l.69-.35.47.19.3.83h.69v-.09l.24-.74.47-.19.8.37.48-.48-.05-.1-.35-.69.19-.47Zm-3,1a1.33,1.33,0,1,1,1.32-1.34v.01A1.322,1.322,0,0,1,9.05,10.81l-.071,0Z" fill="#fff"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.1 KiB |
@@ -0,0 +1,21 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
|
||||
<defs>
|
||||
<linearGradient id="ef376e2c-38fd-4835-83bc-bb24ee960fff" x1="6.267" y1="13.967" x2="6.267" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#949494"/>
|
||||
<stop offset="1" stop-color="#b3b3b3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="e033a847-5835-46c3-85cf-d40f22eafd80" x1="10.135" y1="14.02" x2="10.135" y2="5.219" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#0078d4"/>
|
||||
<stop offset="1" stop-color="#5ea0ef"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<g id="f77d0813-503e-4294-a8a2-c0c5e582bfd9">
|
||||
<path d="M17.549,15.146c-.16.7-1.035,1.391-2.617,1.929a21.585,21.585,0,0,1-12.125.017C1.35,16.578.564,15.922.441,15.25c-.022-.118,0-1.966,0-1.966l17.136-.16S17.569,15.061,17.549,15.146Z" fill="#5ea0ef"/>
|
||||
<ellipse cx="9.001" cy="13.246" rx="8.576" ry="2.965" transform="translate(-0.133 0.091) rotate(-0.575)" fill="#50e6ff"/>
|
||||
<path d="M10.368,13.491a.484.484,0,0,1-.476.476H2.641a.476.476,0,0,1-.476-.476V.476A.468.468,0,0,1,2.624,0H9.892a.476.476,0,0,1,.476.476Z" fill="url(#ef376e2c-38fd-4835-83bc-bb24ee960fff)"/>
|
||||
<path d="M3.368,4.895a.893.893,0,0,1,.886-.885H8.347a.893.893,0,0,1,.918.868v.017h0a.9.9,0,0,1-.894.9H4.254A.893.893,0,0,1,3.368,4.895Zm.886-1.754h4.11a.893.893,0,0,0,.9-.885h0a.226.226,0,0,0,0-.026.893.893,0,0,0-.918-.868H4.254a.89.89,0,0,0,0,1.779Z" fill="#003067"/>
|
||||
<path d="M4.3,1.654a.6.6,0,1,1-.6.6A.6.6,0,0,1,4.3,1.654ZM3.7,4.895a.6.6,0,1,0,.6-.6A.6.6,0,0,0,3.7,4.895Z" fill="#50e6ff"/>
|
||||
<path d="M16.366,11.252a2.806,2.806,0,0,0-2.431-2.689A3.524,3.524,0,0,0,10.3,5.221,3.611,3.611,0,0,0,6.843,7.543,3.342,3.342,0,0,0,3.9,10.76a3.39,3.39,0,0,0,3.508,3.257h6.174A2.831,2.831,0,0,0,16.366,11.252Z" fill="url(#e033a847-5835-46c3-85cf-d40f22eafd80)"/>
|
||||
<path d="M13.117,11.562V8.755H12.34V12.2h2.047v-.634ZM7.186,10.183a1.852,1.852,0,0,1-.426-.259.368.368,0,0,1-.1-.267.286.286,0,0,1,.126-.251.555.555,0,0,1,.351-.1,1.387,1.387,0,0,1,.835.242V8.83a2.4,2.4,0,0,0-.835-.125,1.41,1.41,0,0,0-.911.275.92.92,0,0,0-.342.744,1.117,1.117,0,0,0,.785,1,2.089,2.089,0,0,1,.509.3.353.353,0,0,1,.126.267.286.286,0,0,1-.126.251.631.631,0,0,1-.376.1,1.358,1.358,0,0,1-.9-.351v.769a1.889,1.889,0,0,0,.861.192,1.589,1.589,0,0,0,.96-.234.9.9,0,0,0,.36-.76.837.837,0,0,0-.209-.585A1.972,1.972,0,0,0,7.186,10.183ZM11.5,11.5a1.977,1.977,0,0,0,.276-1.053,1.91,1.91,0,0,0-.209-.935,1.474,1.474,0,0,0-.576-.618A1.619,1.619,0,0,0,10.1,8.68a1.844,1.844,0,0,0-.835.242,1.562,1.562,0,0,0-.61.643,2.114,2.114,0,0,0-.226.952,1.888,1.888,0,0,0,.2.877,1.567,1.567,0,0,0,.568.619,1.674,1.674,0,0,0,.835.242l.71.835h1l-.994-.919A1.515,1.515,0,0,0,11.5,11.5Zm-.777-.209a.818.818,0,0,1-1.261-.008,1.254,1.254,0,0,1-.234-.836,1.221,1.221,0,0,1,.242-.835.769.769,0,0,1,.643-.309.72.72,0,0,1,.619.309,1.288,1.288,0,0,1,.234.835A1.228,1.228,0,0,1,10.719,11.294Z" fill="#f2f2f2"/>
|
||||
</g>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
1
extensions/azurecore/resources/postgresServer.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="fc890127-728b-4ac0-b5da-86cdfc191e86" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"><defs><linearGradient id="a28dee20-4c71-46b5-b957-804c67da725a" x1="2.44" y1="10.67" x2="15.27" y2="10.67" gradientTransform="translate(0.14 -0.5) rotate(-0.01)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#005ba1"/><stop offset="0.07" stop-color="#0060a9"/><stop offset="0.36" stop-color="#0071c8"/><stop offset="0.52" stop-color="#0078d4"/><stop offset="0.64" stop-color="#0074cd"/><stop offset="0.82" stop-color="#006abb"/><stop offset="1" stop-color="#005ba1"/></linearGradient></defs><title>Icon-databases-131</title><path d="M9,5.14c-3.54,0-6.41-1-6.41-2.32V15.18c0,1.27,2.82,2.3,6.32,2.32H9c3.54,0,6.41-1,6.41-2.32V2.82C15.41,4.1,12.54,5.14,9,5.14Z" fill="url(#a28dee20-4c71-46b5-b957-804c67da725a)"/><path d="M15.41,2.82c0,1.28-2.87,2.32-6.41,2.32s-6.41-1-6.41-2.32S5.46.5,9,.5s6.41,1,6.41,2.32" fill="#e8e8e8"/><path d="M13.91,2.63c0,.82-2.2,1.48-4.91,1.48S4.08,3.45,4.08,2.64,6.28,1.16,9,1.16s4.91.66,4.91,1.47" fill="#50e6ff"/><path d="M9,3a11.65,11.65,0,0,0-3.9.57A11.53,11.53,0,0,0,9,4.11a11.47,11.47,0,0,0,3.89-.58A11.93,11.93,0,0,0,9,3Z" fill="#198ab3"/><path d="M12,9c0,.08,0,.24,0,.42a5.12,5.12,0,0,0-.08.63c0,.12,0,.3.05.46s0,.27,0,.36a1.68,1.68,0,0,1-.25.86.43.43,0,0,0,0,.07l.1.12a10.55,10.55,0,0,0,1.06-2.38h0c.28-.95.31-1.63.09-1.92a2.58,2.58,0,0,0-2.68-.86,3.29,3.29,0,0,1,.91.67A2.28,2.28,0,0,1,12,9Zm-.31.08a1.15,1.15,0,0,0-.79.09c-.29.18-.2.55,0,1a7.77,7.77,0,0,0,.35.85l.09.16h0c.05.08.08.15.11.2l.08.13a1.28,1.28,0,0,0,.18-.65,2.86,2.86,0,0,0,0-.33c0-.17,0-.36-.05-.49a6.1,6.1,0,0,1,.08-.69C11.71,9.24,11.72,9.13,11.73,9.05Zm-.3.41a.4.4,0,0,1-.18.1h0a.33.33,0,0,1-.14,0A.23.23,0,0,1,11,9.4h0c0-.07.11-.13.24-.15h.19s.09,0,.09.08A.2.2,0,0,1,11.43,9.46Zm-4.69.89c0-.07,0-.13,0-.17a1,1,0,0,0,0-.17,5.55,5.55,0,0,1,0-1A5.22,5.22,0,0,1,7,7.94,2.41,2.41,0,0,1,7.58,7,4.78,4.78,0,0,0,6.23,6.8a1.87,1.87,0,0,0-1.1.3A2,2,0,0,0,4.5,8.92,12.27,12.27,0,0,0,5,11.16c.34,1.14.73,1.84,1.07,1.95h0c.15.05.31,0,.47-.21.28-.34.54-.63.69-.8A1.88,1.88,0,0,1,6.74,10.35Zm.26.4a2.18,2.18,0,0,0,.06.56,1.5,1.5,0,0,0,.26.44,1.07,1.07,0,0,0,.35.25,1.09,1.09,0,0,0,.39.08c0-.17.14-.38.23-.6a4.35,4.35,0,0,0,.21-.59,6.61,6.61,0,0,0,0-1.11c0-.09,0-.19-.06-.3a.45.45,0,0,0-.12-.27l0,0A.66.66,0,0,0,8,9.08H7.8a1.56,1.56,0,0,0-.48.14A2,2,0,0,0,7,9.41v.11c0,.2,0,.41,0,.61v0a.86.86,0,0,1,0,.15l0,.39H7Zm.66-1.34,0,0a.46.46,0,0,1,.28,0,.6.6,0,0,1,.19.06c.09,0,.1.11.09.14h0a.37.37,0,0,1-.12.13A.3.3,0,0,1,8,9.73h0a.34.34,0,0,1-.28-.28Zm.74,3a.23.23,0,0,0-.13.06l-.14.17c-.17.21-.24.28-.73.38a.52.52,0,0,0-.26.1.58.58,0,0,0,.24.11,1.18,1.18,0,0,0,.72,0A1.7,1.7,0,0,0,8.45,13a.61.61,0,0,0,.2-.31.36.36,0,0,0-.1-.28A.15.15,0,0,0,8.4,12.39Zm4.61,0a1.63,1.63,0,0,1-1.13,0,.22.22,0,0,0-.14,0,.3.3,0,0,0-.17.14,1.09,1.09,0,0,0,0,.31,1.8,1.8,0,0,0,1.1-.1,1.36,1.36,0,0,0,.48-.34Zm-2.4-2.14c-.14-.41-.34-1,.18-1.36a1.35,1.35,0,0,1,.89-.15A3.18,3.18,0,0,0,11,7.64l-.1-.1-.06-.06h0a.34.34,0,0,0-.06-.06l0,0,0,0A2.34,2.34,0,0,0,10.11,7,2.63,2.63,0,0,0,9,6.78a1.52,1.52,0,0,0-.7.11A1.77,1.77,0,0,0,8,7a2.1,2.1,0,0,0-.74,1,5.84,5.84,0,0,0-.21,1,1.66,1.66,0,0,1,1-.23.84.84,0,0,1,.77.91,7.26,7.26,0,0,1,0,1.27,3.87,3.87,0,0,1-.23.63c-.06.17-.14.35-.18.49a.5.5,0,0,1,.38.14.66.66,0,0,1,.19.53H9c0,.08,0,.16,0,.24a6.55,6.55,0,0,0,.24,2.44.54.54,0,0,0,.24.21.6.6,0,0,0,.31.1,1.3,1.3,0,0,0,1-.34,1.05,1.05,0,0,0,.29-.66c.07-.45.22-1.7.24-2h0a.72.72,0,0,1,.09-.44.63.63,0,0,1,.27-.24A5.36,5.36,0,0,1,10.61,10.24Z" fill="#f2f2f2"/></svg>
|
||||
|
After Width: | Height: | Size: 3.5 KiB |
1
extensions/azurecore/resources/sqlDatabase.svg
Normal file
@@ -0,0 +1 @@
|
||||
<svg id="a96792b7-ce28-4ca3-9767-4e065ef4820f" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18"><defs><linearGradient id="ef16bf9d-a8b6-4181-b6cd-66fc5203f956" x1="2.59" y1="10.16" x2="15.41" y2="10.16" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#005ba1"/><stop offset="0.07" stop-color="#0060a9"/><stop offset="0.36" stop-color="#0071c8"/><stop offset="0.52" stop-color="#0078d4"/><stop offset="0.64" stop-color="#0074cd"/><stop offset="0.82" stop-color="#006abb"/><stop offset="1" stop-color="#005ba1"/></linearGradient><radialGradient id="bf3846c3-4d74-4743-ab9a-f334c248bd92" cx="9.36" cy="10.57" r="7.07" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#f2f2f2"/><stop offset="0.58" stop-color="#eee"/><stop offset="1" stop-color="#e6e6e6"/></radialGradient></defs><title>Icon-databases-130</title><path d="M9,5.14c-3.54,0-6.41-1-6.41-2.32V15.18c0,1.27,2.82,2.3,6.32,2.32H9c3.54,0,6.41-1,6.41-2.32V2.82C15.41,4.11,12.54,5.14,9,5.14Z" fill="url(#ef16bf9d-a8b6-4181-b6cd-66fc5203f956)"/><path d="M15.41,2.82c0,1.29-2.87,2.32-6.41,2.32s-6.41-1-6.41-2.32S5.46.5,9,.5s6.41,1,6.41,2.32" fill="#e8e8e8"/><path d="M13.92,2.63c0,.82-2.21,1.48-4.92,1.48S4.08,3.45,4.08,2.63,6.29,1.16,9,1.16s4.92.66,4.92,1.47" fill="#50e6ff"/><path d="M9,3a11.55,11.55,0,0,0-3.89.57A11.42,11.42,0,0,0,9,4.11a11.15,11.15,0,0,0,3.89-.58A11.84,11.84,0,0,0,9,3Z" fill="#198ab3"/><path d="M12.9,11.4V8H12v4.13h2.46V11.4ZM5.76,9.73a1.83,1.83,0,0,1-.51-.31.44.44,0,0,1-.12-.32.34.34,0,0,1,.15-.3.68.68,0,0,1,.42-.12,1.62,1.62,0,0,1,1,.29V8.11a2.58,2.58,0,0,0-1-.16,1.64,1.64,0,0,0-1.09.34,1.08,1.08,0,0,0-.42.89c0,.51.32.91,1,1.21a2.88,2.88,0,0,1,.62.36.42.42,0,0,1,.15.32.38.38,0,0,1-.16.31.81.81,0,0,1-.45.11,1.66,1.66,0,0,1-1.09-.42V12a2.17,2.17,0,0,0,1.07.24,1.88,1.88,0,0,0,1.18-.33A1.08,1.08,0,0,0,6.84,11a1.05,1.05,0,0,0-.25-.7A2.42,2.42,0,0,0,5.76,9.73ZM11,11.32a2.34,2.34,0,0,0,.33-1.26A2.32,2.32,0,0,0,11,9a1.81,1.81,0,0,0-.7-.75,2,2,0,0,0-1-.26,2.11,2.11,0,0,0-1.08.27A1.86,1.86,0,0,0,7.49,9a2.46,2.46,0,0,0-.26,1.14,2.26,2.26,0,0,0,.24,1,1.76,1.76,0,0,0,.69.74,2.06,2.06,0,0,0,1,.3l.86,1h1.21L10,12.08A1.79,1.79,0,0,0,11,11.32ZM10,11.07a.94.94,0,0,1-.76.35.92.92,0,0,1-.76-.36,1.52,1.52,0,0,1-.29-1,1.53,1.53,0,0,1,.29-1,1,1,0,0,1,.78-.37.87.87,0,0,1,.75.37,1.62,1.62,0,0,1,.27,1A1.46,1.46,0,0,1,10,11.07Z" fill="url(#bf3846c3-4d74-4743-ab9a-f334c248bd92)"/></svg>
|
||||
|
After Width: | Height: | Size: 2.4 KiB |
24
extensions/azurecore/resources/sqlManagedInstance.svg
Normal file
@@ -0,0 +1,24 @@
|
||||
<svg id="a5c93a83-9fd9-4ccb-ba77-53d6c609a7d3" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
|
||||
<defs>
|
||||
<linearGradient id="acf2da4b-8aca-4b58-b995-ca6956cf663e" x1="5.41" y1="17.33" x2="5.41" y2="0.61" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#949494"/>
|
||||
<stop offset="0.53" stop-color="#a2a2a2"/>
|
||||
<stop offset="1" stop-color="#b3b3b3"/>
|
||||
</linearGradient>
|
||||
<linearGradient id="b152b416-25c2-4a4a-9d7f-a0bb2a13f84a" x1="10.04" y1="17.39" x2="10.04" y2="6.82" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#0078d4"/>
|
||||
<stop offset="0.16" stop-color="#1380da"/>
|
||||
<stop offset="0.53" stop-color="#3c91e5"/>
|
||||
<stop offset="0.82" stop-color="#559cec"/>
|
||||
<stop offset="1" stop-color="#5ea0ef"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<title>Icon-databases-136</title>
|
||||
<path d="M10.32,16.76a.58.58,0,0,1-.57.57H1.07a.57.57,0,0,1-.57-.57V1.18A.56.56,0,0,1,1.07.61H9.75a.57.57,0,0,1,.57.57Z" fill="url(#acf2da4b-8aca-4b58-b995-ca6956cf663e)"/>
|
||||
<path d="M1.94,6.47A1.07,1.07,0,0,1,3,5.41H7.9A1.07,1.07,0,0,1,9,6.47H9A1.07,1.07,0,0,1,7.9,7.54H3A1.07,1.07,0,0,1,1.94,6.47Z" fill="#003067"/>
|
||||
<path d="M1.94,3.31A1.07,1.07,0,0,1,3,2.24H7.9A1.07,1.07,0,0,1,9,3.31H9A1.07,1.07,0,0,1,7.9,4.37H3A1.07,1.07,0,0,1,1.94,3.31Z" fill="#003067"/>
|
||||
<circle cx="3.06" cy="3.31" r="0.72" fill="#50e6ff"/>
|
||||
<circle cx="3.06" cy="6.47" r="0.72" fill="#50e6ff"/>
|
||||
<path d="M17.5,14.08a3.36,3.36,0,0,0-2.91-3.22,4.22,4.22,0,0,0-4.35-4A4.32,4.32,0,0,0,6.1,9.64a4,4,0,0,0-3.52,3.85,4.06,4.06,0,0,0,4.2,3.9l.37,0H14l.17,0A3.39,3.39,0,0,0,17.5,14.08Z" fill="url(#b152b416-25c2-4a4a-9d7f-a0bb2a13f84a)"/>
|
||||
<path d="M13.61,14.45V11.09h-.93v4.12h2.45v-.76ZM6.51,12.8A2.23,2.23,0,0,1,6,12.49a.44.44,0,0,1-.12-.32.34.34,0,0,1,.15-.3.66.66,0,0,1,.42-.12,1.66,1.66,0,0,1,1,.29v-.86a2.89,2.89,0,0,0-1-.15,1.69,1.69,0,0,0-1.09.33,1.1,1.1,0,0,0-.41.89,1.34,1.34,0,0,0,.94,1.2,2.51,2.51,0,0,1,.61.36.42.42,0,0,1,.15.32.34.34,0,0,1-.15.3.75.75,0,0,1-.45.12,1.63,1.63,0,0,1-1.08-.42v.92A2.25,2.25,0,0,0,6,15.28,1.91,1.91,0,0,0,7.15,15a1.07,1.07,0,0,0,.43-.91,1,1,0,0,0-.25-.7A2.36,2.36,0,0,0,6.51,12.8Zm5.16,1.58A2.37,2.37,0,0,0,12,13.12,2.28,2.28,0,0,0,11.75,12a1.77,1.77,0,0,0-.69-.74A1.94,1.94,0,0,0,10,11,2.21,2.21,0,0,0,9,11.29a1.87,1.87,0,0,0-.73.77A2.52,2.52,0,0,0,8,13.2a2.26,2.26,0,0,0,.24,1.05,1.87,1.87,0,0,0,.68.74,2,2,0,0,0,1,.29l.85,1h1.2l-1.19-1.1A1.82,1.82,0,0,0,11.67,14.38Zm-.93-.25a.92.92,0,0,1-.76.35.91.91,0,0,1-.75-.36,1.5,1.5,0,0,1-.28-1,1.46,1.46,0,0,1,.29-1,.92.92,0,0,1,.77-.37.86.86,0,0,1,.74.37,1.54,1.54,0,0,1,.28,1A1.47,1.47,0,0,1,10.74,14.13Z" fill="#f2f2f2"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.6 KiB |
20
extensions/azurecore/resources/sqlServer.svg
Normal file
@@ -0,0 +1,20 @@
|
||||
<svg id="b1cfe86c-f00b-4507-bce2-50d07e45fe96" xmlns="http://www.w3.org/2000/svg" width="18" height="18" viewBox="0 0 18 18">
|
||||
<defs>
|
||||
<linearGradient id="b39dcf83-187e-4c64-98df-431bb60809d2" x1="0.5" y1="10.04" x2="13.18" y2="10.04" gradientUnits="userSpaceOnUse">
|
||||
<stop offset="0" stop-color="#005ba1"/>
|
||||
<stop offset="0.07" stop-color="#0060a9"/>
|
||||
<stop offset="0.36" stop-color="#0071c8"/>
|
||||
<stop offset="0.52" stop-color="#0078d4"/>
|
||||
<stop offset="0.64" stop-color="#0074cd"/>
|
||||
<stop offset="0.82" stop-color="#006abb"/>
|
||||
<stop offset="1" stop-color="#005ba1"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<title>Icon-databases-132</title>
|
||||
<path d="M6.84,5.09c-3.5,0-6.34-1-6.34-2.3V15c0,1.26,2.79,2.28,6.25,2.3h.09c3.5,0,6.34-1,6.34-2.3V2.79C13.18,4.06,10.34,5.09,6.84,5.09Z" fill="url(#b39dcf83-187e-4c64-98df-431bb60809d2)"/>
|
||||
<path d="M13.18,2.79c0,1.27-2.84,2.3-6.34,2.3S.5,4.06.5,2.79,3.34.49,6.84.49s6.34,1,6.34,2.3" fill="#e8e8e8"/>
|
||||
<path d="M11.7,2.6c0,.81-2.18,1.46-4.86,1.46S2,3.41,2,2.6,4.16,1.14,6.84,1.14,11.7,1.8,11.7,2.6" fill="#50e6ff"/>
|
||||
<path d="M6.84,2.94A12,12,0,0,0,3,3.49a11.25,11.25,0,0,0,3.85.57,11.25,11.25,0,0,0,3.85-.57A12,12,0,0,0,6.84,2.94Z" fill="#198ab3"/>
|
||||
<path d="M10.74,11.1V7.72H9.81v4.14h2.46V11.1ZM3.59,9.43a1.92,1.92,0,0,1-.51-.31A.44.44,0,0,1,3,8.8a.38.38,0,0,1,.16-.31.72.72,0,0,1,.42-.11,1.67,1.67,0,0,1,1,.29V7.81a2.67,2.67,0,0,0-1-.16A1.74,1.74,0,0,0,2.38,8a1.13,1.13,0,0,0-.41.9c0,.51.32.91,1,1.21a2.9,2.9,0,0,1,.61.36.4.4,0,0,1,.16.32.38.38,0,0,1-.16.31.75.75,0,0,1-.45.12A1.6,1.6,0,0,1,2,10.77v.93a2.29,2.29,0,0,0,1.07.23,2,2,0,0,0,1.18-.32,1.1,1.1,0,0,0,.43-.92,1,1,0,0,0-.25-.7A2.42,2.42,0,0,0,3.59,9.43ZM8.79,11a2.4,2.4,0,0,0,.33-1.27,2.32,2.32,0,0,0-.25-1.1,1.81,1.81,0,0,0-.7-.75,2,2,0,0,0-1-.26,2.18,2.18,0,0,0-1.09.27,1.87,1.87,0,0,0-.73.77,2.41,2.41,0,0,0-.26,1.15,2.26,2.26,0,0,0,.24,1.05,1.83,1.83,0,0,0,.68.75,2,2,0,0,0,1,.29l.85,1H9.05l-1.2-1.11A1.81,1.81,0,0,0,8.79,11Zm-.93-.26a1,1,0,0,1-1.53,0,1.51,1.51,0,0,1-.28-1,1.48,1.48,0,0,1,.29-1,.92.92,0,0,1,.78-.37.89.89,0,0,1,.75.37,1.62,1.62,0,0,1,.27,1A1.46,1.46,0,0,1,7.86,10.77Z" fill="#f2f2f2"/>
|
||||
<path d="M14.81,17.49l.24-.79.47-.27.81.36.52-.53V16.2l-.37-.71.22-.5.81-.29.09,0v-.73l-.1,0-.8-.24-.26-.46.35-.82-.53-.51H16.2l-.71.36L15,12l-.32-.89h-.74l0,.11-.24.79-.51.22-.87-.4-.51.53.05.1.38.74-.2.51L11.1,14v.74l.11,0,.79.24.22.51-.39.86.53.52.09-.05.74-.38.51.2.34.89h.73Zm-1.2-2.36a1.06,1.06,0,1,1,1.49-1.52,1.06,1.06,0,0,1-1.49,1.52Z" fill="#949494"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
@@ -6,6 +6,8 @@
|
||||
export const extensionConfigSectionName = 'azure';
|
||||
export const ViewType = 'view';
|
||||
|
||||
export const dataGridProviderId = 'azure-resources';
|
||||
|
||||
export enum BuiltInCommands {
|
||||
SetContext = 'setContext'
|
||||
}
|
||||
|
||||
@@ -43,6 +43,7 @@ import * as loc from './localizedConstants';
|
||||
import * as constants from './constants';
|
||||
import { AzureResourceGroupService } from './azureResource/providers/resourceGroup/resourceGroupService';
|
||||
import { Logger } from './utils/Logger';
|
||||
import { TokenCredentials } from '@azure/ms-rest-js';
|
||||
|
||||
let extensionContext: vscode.ExtensionContext;
|
||||
|
||||
@@ -88,6 +89,63 @@ export async function activate(context: vscode.ExtensionContext): Promise<azurec
|
||||
pushDisposable(vscode.workspace.onDidChangeConfiguration(e => onDidChangeConfiguration(e), this));
|
||||
registerAzureResourceCommands(appContext, azureResourceTree);
|
||||
|
||||
const typesClause = [
|
||||
azureResource.AzureResourceType.sqlDatabase,
|
||||
azureResource.AzureResourceType.sqlServer,
|
||||
azureResource.AzureResourceType.sqlManagedInstance,
|
||||
azureResource.AzureResourceType.postgresServer,
|
||||
azureResource.AzureResourceType.azureArcService,
|
||||
azureResource.AzureResourceType.azureArcSqlManagedInstance,
|
||||
azureResource.AzureResourceType.azureArcPostgresServer
|
||||
].map(type => `type == "${type}"`).join(' or ');
|
||||
azdata.dataprotocol.registerDataGridProvider({
|
||||
providerId: constants.dataGridProviderId,
|
||||
getDataGridItems: async () => {
|
||||
const accounts = await azdata.accounts.getAllAccounts();
|
||||
const items: any[] = [];
|
||||
await Promise.all(accounts.map(async (account) => {
|
||||
await Promise.all(account.properties.tenants.map(async (tenant: { id: string; }) => {
|
||||
try {
|
||||
const tokenResponse = await azdata.accounts.getAccountSecurityToken(account, tenant.id, azdata.AzureResource.ResourceManagement);
|
||||
const token = tokenResponse.token;
|
||||
const tokenType = tokenResponse.tokenType;
|
||||
const credential = new TokenCredentials(token, tokenType);
|
||||
const subscriptionService = appContext.getService<IAzureResourceSubscriptionService>(AzureResourceServiceNames.subscriptionService);
|
||||
const subscriptions = await subscriptionService.getSubscriptions(account, credential, tenant.id);
|
||||
try {
|
||||
const newItems = (await azureResourceUtils.runResourceQuery(account, subscriptions, true, `where ${typesClause}`)).resources
|
||||
.map(item => {
|
||||
return {
|
||||
...item,
|
||||
subscriptionName: subscriptions.find(subscription => subscription.id === item.subscriptionId)?.name ?? item.subscriptionId,
|
||||
locationDisplayName: utils.getRegionDisplayName(item.location),
|
||||
typeDisplayName: utils.getResourceTypeDisplayName(item.type),
|
||||
iconPath: utils.getResourceTypeIcon(appContext, item.type)
|
||||
};
|
||||
});
|
||||
items.push(...newItems);
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
} catch (err) {
|
||||
console.log(err);
|
||||
}
|
||||
}));
|
||||
}));
|
||||
return items;
|
||||
},
|
||||
getDataGridColumns: async () => {
|
||||
return [
|
||||
{ id: 'icon', type: 'image', field: 'iconPath', name: '', width: 25, sortable: false, filterable: false, resizable: false, tooltip: loc.typeIcon },
|
||||
{ id: 'name', type: 'text', field: 'name', name: loc.name, width: 150 },
|
||||
{ id: 'type', type: 'text', field: 'typeDisplayName', name: loc.resourceType, width: 150 },
|
||||
{ id: 'type', type: 'text', field: 'resourceGroup', name: loc.resourceGroup, width: 150 },
|
||||
{ id: 'location', type: 'text', field: 'locationDisplayName', name: loc.location, width: 150 },
|
||||
{ id: 'subscriptionId', type: 'text', field: 'subscriptionName', name: loc.subscription, width: 150 }
|
||||
];
|
||||
}
|
||||
});
|
||||
|
||||
return {
|
||||
getSubscriptions(account?: azdata.Account, ignoreErrors?: boolean): Thenable<azurecore.GetSubscriptionsResult> { return azureResourceUtils.getSubscriptions(appContext, account, ignoreErrors); },
|
||||
getResourceGroups(account?: azdata.Account, subscription?: azureResource.AzureResourceSubscription, ignoreErrors?: boolean): Thenable<azurecore.GetResourceGroupsResult> { return azureResourceUtils.getResourceGroups(appContext, account, subscription, ignoreErrors); },
|
||||
|
||||
@@ -57,6 +57,7 @@ export const resourceType = localize('azurecore.resourceType', "Resource type");
|
||||
export const resourceGroup = localize('azurecore.resourceGroup', "Resource group");
|
||||
export const location = localize('azurecore.location', "Location");
|
||||
export const subscription = localize('azurecore.subscription', "Subscription");
|
||||
export const typeIcon = localize('azurecore.typeIcon', "Type Icon");
|
||||
|
||||
// Azure Resource Types
|
||||
export const sqlServer = localize('azurecore.sqlServer', "SQL server");
|
||||
|
||||
@@ -6,6 +6,7 @@
|
||||
import { azureResource } from 'azureResource';
|
||||
import * as loc from './localizedConstants';
|
||||
import { AzureRegion } from 'azurecore';
|
||||
import { AppContext } from './appContext';
|
||||
|
||||
/**
|
||||
* Converts a region value (@see AzureRegion) into the localized Display Name
|
||||
@@ -108,6 +109,8 @@ export function getResourceTypeDisplayName(type: string): string {
|
||||
return loc.sqlDatabase;
|
||||
case azureResource.AzureResourceType.sqlManagedInstance:
|
||||
return loc.sqlManagedInstance;
|
||||
case azureResource.AzureResourceType.postgresServer:
|
||||
return loc.postgresServer;
|
||||
case azureResource.AzureResourceType.azureArcSqlManagedInstance:
|
||||
return loc.azureArcsqlManagedInstance;
|
||||
case azureResource.AzureResourceType.azureArcService:
|
||||
@@ -117,3 +120,23 @@ export function getResourceTypeDisplayName(type: string): string {
|
||||
}
|
||||
return type;
|
||||
}
|
||||
|
||||
export function getResourceTypeIcon(appContext: AppContext, type: string): string {
|
||||
switch (type) {
|
||||
case azureResource.AzureResourceType.sqlServer:
|
||||
return appContext.extensionContext.asAbsolutePath('resources/sqlServer.svg');
|
||||
case azureResource.AzureResourceType.sqlDatabase:
|
||||
return appContext.extensionContext.asAbsolutePath('resources/sqlDatabase.svg');
|
||||
case azureResource.AzureResourceType.sqlManagedInstance:
|
||||
return appContext.extensionContext.asAbsolutePath('resources/sqlManagedInstance.svg');
|
||||
case azureResource.AzureResourceType.postgresServer:
|
||||
return appContext.extensionContext.asAbsolutePath('resources/postgresServer.svg');
|
||||
case azureResource.AzureResourceType.azureArcSqlManagedInstance:
|
||||
return appContext.extensionContext.asAbsolutePath('resources/azureArcSqlManagedInstance.svg');
|
||||
case azureResource.AzureResourceType.azureArcService:
|
||||
return appContext.extensionContext.asAbsolutePath('resources/azureArcService.svg');
|
||||
case azureResource.AzureResourceType.azureArcPostgresServer:
|
||||
return appContext.extensionContext.asAbsolutePath('resources/azureArcPostgresServer.svg');
|
||||
}
|
||||
return '';
|
||||
}
|
||||
|
||||